正在加载图片...
1368 工程科学学报,第41卷,第11期 自己知道,即委员会成员在参与共识以前,其他节 明(DPoS)的执行速度和吞吐量(TPS)低于PBFT 点无法知晓节点的委员身份,所以敌手无法进行 和Raft,但可扩展性强于两者;Raft不支持拜占庭 事前攻击:委员会成员在参与共识,投出票之后, 容错,安全性方面低于PBFT,但TPS高于PBFT 再次投票需要重新抽签,这使敌手的事后攻击失 事实上,共识算法性能在效率、可扩展性和安全性 去了意义 方面确实存在博弈的过程,难以全面提高,由此才 表1给出常见的5种共识算法性能对比,可见 有各种共识算法共存,应用于不同的场景,而不是 共识算法各有优势,比如PoW、PoS及委托权益证 种共识算法取代其他所有算法, 表1共识算法对比网 Table 1 Comparison of consensus algorithm 共识算法 执行速度 可扩展性 拜占庭容错 TPS 代表应用 PoW >100s 强 <1/2 <100 比特币 PoS <100s 强 <1/2 <1000 点点币 DPoS <100s 强 <1/2 <1000 比特股 PBFT <10s 弱 <1/3 <2000 Hyperledger Raft <10s 弱 不支持 >10000 Etcd 6 智能合约 执行这些承诺的协议” 6.1智能合约概述 广义的智能合约指的是:数字形式的可自动 智能合约(smart contract).这个术语由跨领域 执行的协议:狭义上的智能合约一般是指:部署在 法律学者尼克萨博(Nick Szabo)在1995年提出IB, 区块链上可以自动执行的代码.智能合约大致分 他给出的智能合约的定义是“一套以数字形式定 为合约模块、执行模块和区块链模块三个模块,如 义的承诺(promise),包括合约参与方可以在上面 图7所示 合约模块 执行模块 区块链模块 法律效力 强制执行 自然语言 资源挖矿门 挖利奖励] 交易费用 机器 逐句 语言 解释 激励机制 合同语言 执行 PoW PoS DPoS 法律效力 便于阅读 书写规范 编译执行 解释执行 结果 共识机制 规约语言 P2P协议 多播☐ 接人管理 网路通信 自动执行 数字资产 身份认证 沙盒 虚拟机 容器 链上 分布式账不 数据结构 数字签名 智能合约编程语言 执行环境 数据 数据 图7智能合约执行过程 Fig.7 Execution process of smart contracts (1)区块链模块:区块链层封装了支持智能合 状态,计算出执行结果.然后,将调用参数与计算 约运行,赋予智能合约去中心化、不可篡改等特性 结果广播至全网,由所有挖矿节点执行验证,在达 的关键技术 成共识之后与其他交易组装成区块,记录在区块 (2)执行模块:执行层封装了智能合约的执行 链中 环境 区块链与智能合约结合主要体现在以下几点: (3)合约模块:合约层封装了参与方从沟通协 (1)智能合约采用区块链的共识机制,由所有 商到编写出一份智能合约中的语言 挖矿节点运行智能合约程序,程序运算结果经过 6.2区块链层与智能合约关系 P2P网络传播并达成共识上传到区块链上. 智能合约执行是基于事件触发机制的,区块 (2)区块链为智能合约提供存储空间.区块链 链中保存智能合约的一个中间状态,当有外部事 中的数据是经过共识的且不可篡改的,保证了智 件时如账户调用、定时器自动调用等,调用者会先 能合约数据来源的可信性 在本地执行合约,通过从区块链中获取代码、合约 (3)区块链的激励机制促使挖矿节点参与运行自己知道,即委员会成员在参与共识以前,其他节 点无法知晓节点的委员身份,所以敌手无法进行 事前攻击;委员会成员在参与共识,投出票之后, 再次投票需要重新抽签,这使敌手的事后攻击失 去了意义. 表 1 给出常见的 5 种共识算法性能对比,可见 共识算法各有优势,比如 PoW、PoS 及委托权益证 明 (DPoS)的执行速度和吞吐量(TPS)低于 PBFT 和 Raft,但可扩展性强于两者;Raft 不支持拜占庭 容错,安全性方面低于 PBFT,但 TPS 高于 PBFT. 事实上,共识算法性能在效率、可扩展性和安全性 方面确实存在博弈的过程,难以全面提高,由此才 有各种共识算法共存,应用于不同的场景,而不是 一种共识算法取代其他所有算法. 6    智能合约 6.1    智能合约概述 智能合约(smart contract)这个术语由跨领域 法律学者尼克萨博(Nick Szabo)在 1995 年提出[38] , 他给出的智能合约的定义是“一套以数字形式定 义的承诺(promise),包括合约参与方可以在上面 执行这些承诺的协议[39] . ” 广义的智能合约指的是:数字形式的可自动 执行的协议;狭义上的智能合约一般是指:部署在 区块链上可以自动执行的代码. 智能合约大致分 为合约模块、执行模块和区块链模块三个模块,如 图 7 所示. (1) 区块链模块:区块链层封装了支持智能合 约运行,赋予智能合约去中心化、不可篡改等特性 的关键技术. (2) 执行模块:执行层封装了智能合约的执行 环境. (3) 合约模块:合约层封装了参与方从沟通协 商到编写出一份智能合约中的语言. 6.2    区块链层与智能合约关系 智能合约执行是基于事件触发机制的,区块 链中保存智能合约的一个中间状态,当有外部事 件时如账户调用、定时器自动调用等,调用者会先 在本地执行合约,通过从区块链中获取代码、合约 状态,计算出执行结果. 然后,将调用参数与计算 结果广播至全网,由所有挖矿节点执行验证,在达 成共识之后与其他交易组装成区块,记录在区块 链中. 区块链与智能合约结合主要体现在以下几点: (1) 智能合约采用区块链的共识机制,由所有 挖矿节点运行智能合约程序,程序运算结果经过 P2P 网络传播并达成共识上传到区块链上. (2) 区块链为智能合约提供存储空间. 区块链 中的数据是经过共识的且不可篡改的,保证了智 能合约数据来源的可信性. (3) 区块链的激励机制促使挖矿节点参与运行 表 1 共识算法对比[36] Table 1 Comparison of consensus algorithm[36] 共识算法 执行速度 可扩展性 拜占庭容错 TPS 代表应用 PoW >100 s 强 <1/2 <100 比特币 PoS <100 s 强 <1/2 <1000 点点币 DPoS <100 s 强 <1/2 <1000 比特股 PBFT <10 s 弱 <1/3 <2000 Hyperledger Raft <10 s 弱 不支持 >10000 Etcd 合同语言 法律效力 强制执行 自然语言 规约语言 法律效力 便于阅读 书写规范 智能合约编程语言 自动执行 数字资产 身份认证 合约模块 共识机制 PoW PoS DPoS 网络通信 P2P协议 多播 接入管理 数据 分布式账本 数据结构 数字签名 区块链模块 激励机制 资源挖矿 挖矿奖励 交易费用 代码 链上 数据 执行 编译执行 结果 机器 语言 执行环境 沙盒 执行模块 解释执行 逐句 解释 虚拟机 容器 转化 图 7    智能合约执行过程 Fig.7    Execution process of smart contracts · 1368 · 工程科学学报,第 41 卷,第 11 期
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有