区块链的合约层

区块链的合约层

如果说数据、网络和共识三个层次作为区块链底层“虚拟机”分别承担数据表示、数据传播和数据验证功能的话,合约层则是建立在区块链虚拟机之上的商业逻辑和算法,是实现区块链系统灵活编程和操作数据的基础。合约层主要封装区块链系统的各类脚本、算法以及由此生成的更为复杂的智能合约。这些代码部署后无需人工干预,可以在达到约束条件时自动触发执行,也可以在不满足条件时自动解约,就像一份智能的电子合同,所以又被成为智能合约。这也是区块链能够解放信用体系最核心的技术之一。

以往区块链没有合约层,所以最初区块链只能进行最简单的交易,无法用于其他领域或是进行复杂逻辑处理,包括比特币在内的数字加密货币大多采用非图灵完备的简单脚本代码来编程控制交易过程。随着技术的发展,已经出现以太坊等图灵完备的可实现更为复杂和灵活的智能合约的脚本语言,使得区块链能够支持宏观金融和社会系统的诸多应用。

一、脚本代码

早期区块链应用,如比特币,仅支持一种简单的、基于堆栈的、从左向右处理的脚本语言,这种脚本本质上是附着在比特币交易上的一组指令的列表。比特币交易依赖于两类脚本来加以验证,即锁定脚本和解锁脚本,二者的不同组合可在比特币交易中衍生出无限数量的控制条件。其中,锁定脚本是附着在交易输出值上的“障碍”,规定以后花费这笔交易输出的条件;解锁脚本则是满足被锁定脚本在一个输出上设定的花费条件的脚本,同时它将允许输出即被消费。举例来说,大多数比特币交易均是采用接受者的公钥加密和私钥解密,因而其对应的 P2PKH (Pay to public key hash) 标准交易脚本中的锁定脚本即是使用接受者的公钥实现阻止输出功能,而使用私钥对应的数字签名来加以解锁。

图 1 比特币脚本实现转账

比特币脚本是智能合约的雏形,催生了人类历史上第一种可编程的全球性货币。然而,比特币脚本系统是非图灵完备的,其中不存在复杂循环和流控制,这在损失一定灵活性的同时能够极大地降低复杂性和不确定性,并能够避免因无限循环等逻辑炸弹而造成拒绝服务等类型的安全性攻击。为提高脚本系统的灵活性和可扩展性,研究者已经尝试在比特币协议之上叠加新的协议,以满足在区块链上构建更为复杂的智能合约的需求。以太坊已经研发出一套图灵完备的脚本语言,用户可基于以太坊构建任意复杂和精确定义的智能合约与去中心化应用,从而为基于区块链构建可编程的金融与社会系统奠定了基础。

二、智能合约

智能合约概念最早在1994年由学者尼克·萨博 (Nick Szabo) 提出,最初被定义为一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。由于缺乏能够支持可编程合约的数字系统和技术,智能合约并未受到研究者的广泛关注。区块链技术的出现解决了该问题,区块链不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合于智能合约。因此,也可以说,智能合约是区块链技术的特性之一。

智能合约看上去就是一段计算机执行程序,满足条件可自动执行即可,那么为什么要用到使用区块链的新技术呢?因为传统技术即使通过软件限制、性能优化等方法,也无法实现区块链的特性:一是数据无法删除、修改,只能新增,既保证了历史的可追溯,又提高了作恶的成本;二是去中心化,避免了中心机构的影响。

图 2 智能合约运作原理

智能合约封装了预定义的若干状态及转换规则、触发合约执行的情景(如到达特定时间或发生特定事件等)、特定情景下的应对行动等。签署合约的各参与方就合约内容、违约条件、违约责任和外部核查数据源达成一致,检查和测试合约代码以确保无误后,以智能合约的形式部署在区块链上,即可自动化地执行合约。区块链可实时监控智能合约的状态,并通过核查外部数据源、确认满足特定触发条件后激活并执行合约。

三、智能合约特点和意义

智能合约具有自治、自足和去中心化等特征。自治表示合约一旦启动就会自动运行,而不需要其他签署方进行任何干预;自足则意味着合约能够通过提供服务或发行资产来获取资金,并在需要时使用这些资金;去中心化则意味着智能合约是由去中心化存储和验证的程序代码而非中心化实体来保障执行的合约,能在很大程度上保证合约的公平和公正性。

智能合约对于区块链技术来说具有重要的意义。一方面,智能合约是区块链的激活器,为静态的底层区块链数据赋予了灵活可编程的机制和算法,智能合约的自动化和可编程特性使其可封装分布式区块链系统中各节点的复杂行为,成为区块链构成的虚拟世界中的软件代理机器人,这有助于促进区块链技术在各类分布式人工智能系统中的应用,使得基于区块链技术构建各类去中心化应用 (Decentralized applica-tion,Dapp)、去中心化自治组织 (Decentralized autonomous organization,DAO) 、去中心化自治公司(Decentralized autonomous corporation,DAC) 甚至去中心化自治社会 (Decentralized autonomous society, DAS) 成为可能。

就现状而言,区块链和智能合约技术的主要发展趋势是由自动化向智能化方向演化。现存的各类智能合约及其应用的本质逻辑大多仍是根据预定义场景的 “IF-THEN” 类型的条件响应规则,能够满足自动化交易和数据处理的需求。未来的智能合约应具备根据未知场景的 “WHAT-IF”推演、计算实验和一定程度上的自主决策功能,从而实现由“自动化”合约向真正的“智能”合约的飞跃。

参考资料:

  1. 百家号:从0到1学习区块链.什么是智能合约,区块链和智能合约的关系及原理.
  2. 袁勇,王飞跃.区块链技术发展现状与展望[J].自动化学报,2016,42(04):481-494.

致谢

此文由南京大学软件学院2018级硕士巫浩然翻译转述。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

微信号已复制,请打开微信添加咨询详情!
-->