前言
智能合约是区块链实现可编程化的重要工具,它的出现使得基于区块链的DAPP得到空前的发展。在比特币时期,脚本仅限于描述交易的内容和状态。随着智能合约(smart contract)的出现,可定义任何数据对象的状态操作,使其成为网络上的“法律条文”或“商业共识”。它就像网络中的道德准则,不被第三方操控,但公道自在人心。
本blog是对由贺海武等撰写的《基于区块链的智能合约技术的应用综述》的总结,将采用Q&A的方式对整篇论文进行总结。
智能合约是什么?
智能合约是由事件驱动的、具有状态的、部署于可共享的分布式数据库上的计算机程序,多用IF-THEN语句。狭义来说,智能合约是设计相关商业逻辑和算法的程序代码,把人、法律和网络的复杂关系代码化;广义来说,智能合约是一种可以实现自我执行和自我验证的计算机协议。乍一看,与数据库中的触发器颇为相似。
基于智能合约的区块链3.0时代将会是全新的一个时代。
智能合约的生命周期如何?
智能合约的全生命周期包括:合约生成、合约发布和合约执行。
合约生成:其中合约规范和合约验证至关重要。合约规范是领域专家协定的,合约验证则需要在虚拟机上进行,这两部分必须保证合约文本和代码的一致性。
合约发布:类似于BTC中的交易发布,需要多个节点进行共识和验证。
合约执行:基于“事件触发”,智能合约会定期遍历每个合约的状态机和触发条件,将满足触发条件的合约推送到验证队列。
合约实现:通过赋予对象数字特性,将对象程序化并部署在区块链上,同时改变数字对象的状态(如分配转移)和数值。
智能合约的优点有什么?
确定性:不论何时何地,相同输入必有相同输出。
一致性:合约代码和合约文本一致,具有法律效应。
可终止性:在有限时间结束。利用非图灵完备(BTC)或计价器(以太坊)。
可观察和可验证性:通过数字签名和时间戳,保证合约不可篡改和可溯源。
去中心化:通过合约的监督和仲裁,减低人为干预风险。
高效实时性:无需三方中心机构参与
低成本:智能合约可以自我执行和自我验证
智能合约的基本架构
区块链智能合约包括数据层、传输层、智能合约主体、验证层、执行层以及应用层这6个要素。
数据层:包括链上和链下,是智能合约运行的必要数据源
传输层:支撑“链上-链上”和“链上-链下”进行通信及数据传输
验证层:用于保证合约代码和合约文本的一致性
执行层:封装了智能合约运行环境的相关软件
应用层:为智能合约于其他计算机的进程通信服务
结语
智能合约打通了区块链的任督二脉。使其从货币交易的区块链1.0时期进化到金融领域的区块链2.0时期和可编程社会的3.0时期。智能合约具有确定性、实时性等特点,在数字支付、金融资产处理、云计算、物联网、共享经济等方面有着广阔的应用场景,将是未来智慧城市实现的重要工具。