区块链算法与智能合约
区块链是分布式系统,各个节点是分布式分类账本,其不只记录其他节点传递来的信息。作为共识系统的一部分,其必须确保记录的交易已经完成,与共识相匹配。就比特币而言,这意味着系统会自动执行财务汇款。用户不能在发起比特币的交易后又反悔,汇款对账和达成的同步也是交易程序的一部分。这一机制被称为智能合约。权利和义务规定以及契约协议的执行都在该平台有所体现。
智能合约的出现远远早于区块链技术,是Nick Szabo在20世纪90年代提出的。Nick Szabo认为智能合约是一组以数字形式指定的承诺,包括各方当事人在其中执行这些承诺的协议,由计算机系统自动执行。智能合约是信息化时代电子化、理想化的契约形式,但囿于技术发展水平,在很长一段时间内,其仅仅停留在概念上,直到区块链技术的出现。作为区块链技术的最早应用形式,比特币交易过程完全是自动执行的。比特币系统建立在“可复制、共享的账本”之上,每个参与者均拥有一个完整交易账本的副本。智能合约是运行在区块链系统可复制、共享账本上的计算机程序,可以处理信息,接收、储存和发送价值。基于区块链技术的智能合约,不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可篡改。同时,由区块链自带的共识算法构建出一套状态机系统,使智能合约能够高效地运行。
如果把区块链看作是一个数据库,智能合约就是能够使区块链技术应用到现实中的应用层,是利用计算机代码构建并存储在区块链中的去中心化协议,一旦满足代码所设定的条件便会自动触发合约执行。可以说,智能合约与区块链技术两相成全,前者拓展了后者的应用领域,后者保证了前者的性能。最新发展趋势是区块链允许人们将小的代码片段,即智能合约上传至区块链,这样就可以实现智能合约在互联网每个节点上分散执行的效果,即区块链作为基础技术可以自动执行智能合约条款,即使这些条款与法律或合同条款并不存在实质性关系。
智能合约的运行机制
作为自动决策程序,智能合约既具有计算机程序代码,也具有传统合同元素,二者相对独立又相互联系。智能合约的运行机制一般包括三方内容:
一是每一个智能合约都必须有特定的条件框架(Conditional Framework),这一条件框架既符合合同法规则,也是计算机编码必需的。在合同法中,当事人作出允诺以换取其他当事人承诺:如果x这样做,y就会这样做。同样,在智能合约和构成它的计算机代码中,条件框架是其核心。在智能合约的编写中,条件语句是必不可少的。本质上,智能合约的自动运行是按照一定条件框架设计的计算机代码执行其编写的程序而已。条件框架由多方参与者共同制定,完成智能合约的构建。
二是架构在区块链系统上的智能合约通过哈希算法进行数据存储。用户在某一区块链系统上部署智能合约以后,系统会自动分配给其一个合约账户,该账户里保存着智能合约的可执行字节码。一旦编码完成,智能合约就会被上传到区块链系统,全网验证节点都会收到相关信息,交易数据存储在区块链上,智能合约账户的状态数据存储在自己的账户内。所有数据均会在区块链系统中永久留下历史记录。
三是智能合约的执行是通过验证程序代码完成的。各个节点收到交易信息后,自动会对其进行签名验证,以确保交易的有效性。各验证节点对某一交易达成共识后,智能合约将自动执行,并通知交易当事人及全网。同时,智能合约自带的状态机会判断所属合约的状态,当合约中所有事务都顺序执行完后,状态机会将合约的状态标记为完成,并从最新的区块中移除该合约;反之将标记为进行中,继续保存在最新的区块中等待下一轮处理,直至处理完毕。
2016年诺贝尔经济学奖授予了奥利弗・哈特和本特・霍尔姆斯特伦。哈特的主要贡献在于不完全契约理论方面。所谓不完全契约是指缔约双方不能完全预见契约履行期内可能出现的各种情况,从而无法达成内容完备、设计周详的契约条款。一般而言,导致不完全契约的原因有二:一是有限理性;二是交易成本。这是所有传统合同难以避免的问题。智能合约将当事人之间的权利义务转化成计算机代码,通过区块链系统保证其运行的客观理性与自动化。一方面,智能合约是基于软件的比特算法,可以排除掉影响合同履行的人为因素,保障了交易安全;另一方面,区块链算法的自动化决策大大提高了合同履行的效率,降低了交易成本。从这个意义上说,智能合约中的代码不同于现有合同形式,与其说代码代表了合同,还不如说代码本身就是合同。
此文由 中国比特币官网 编辑,未经允许不得转载!:首页 > 比特币新闻 » 一文详解区块链技术的算法规制