寻根:智能合约的真容 2015年以太坊出现的时候,区块链社区有着截然不同的意见。 以太坊用事实证明:相比较仅使用数字货币,人们可以用这项技术实现更多事情。全新一类的分布式应用都可以被构想出来,并部署到一个可以支持它们的区块链上。 1.本质 从本质上而言,智能合约是一种直接控制数字资产的计算机程序。通过在区块链上写入类似if-then语句的程序,使得当预先编好的条件被触发时,程序自动触发支付及执行合约中的其他条款,也就是说,它是储存在区块链上的一段代码,由区块链交易触发。 举一个简单的例子,如图所示 这样一个if-then语句,意思就是,你我约定 智能合约是部署在区块链上的计算机程序——(DAPP分布式应用)的基础单元。DAPP可以作为一组相互关联的智能合约,它们共同促成高级功能的实现——就像大型IT系统是由多个子系统或模块组成的,它们共同产生“整体大于部分之和”的效益。 DAPP是通过在区块链层部署一组智能合约,然后与这些智能合约进行交互而实现的。例如: (1)供应链跟踪和交易解决方案,如Provenance、IBM和沃尔玛的试点; ( 2 )预测市场,如Augur和Gnosis; ( 3 )分布式组织,如The DAO; ( 4 )以太猫 智能合约的实现需要底层协议支持,选择哪个协议取决于许多因素,最重要的因素是在合约履行期间被交易资产的本质。 2.工作原理 基于区块链的智能合约构建及执行分为以下几步; 第一步,多方用户共同参与制定一份智能合约 第二步,合约通过P2P网络扩散并存入区块链 第三步,区块链构建的智能合约自动执行 (1)多方用户共同参与制定一份智能合约 其过程包括以下步骤。 ①用户必须先注册成为区块链的用户,区块链返回给用户一对公匙和私匙。公匙作为用户在区块链上的账户地址,私匙作为操作该账户的唯一钥匙。 ②两个及两个以上的用户根据需要,共同商定了一份承诺,承诺中包含了双方的权利和义务,这些权利和义务以电子化的方式被编程为机器语言,参与者分别用各自的私匙进行签名,以确保合约的有效性。 ③签名后的智能合约将会根据其中的 承诺内容,传入区块链网络中。 (2)合约通过P2P网络扩散并存入区块链 其过程包括以下步骤。 ①合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份。区块链中的验证节点会将收到的合约先保存到内存中,等待新一轮共识时间,触发合约的共识并处理。 ②共识时间到了,验证节点会把最近一段时间内保存的所有合约一起打包成一个合约集合(set),并算出这个合约集合的Hash值,最后将这个合约集合的Hash值组装成一个区块结构,扩散到全网。其他验证节点收到这个区块链结构后,会把里面包含的合约集合的Hash取出来,与自己保存的合约集合进行比较,同时发送一份自己认可的合约集合给其他验证节点。通过这种多轮的发送和比较,所有的验证节点最终在规定的时间内对最新的合约集合达成一致。 ③最新达成的合约集合会以区块的形式扩散到全网,每个区块包含以下信息:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳,以及其他描述信息。同时,区块链最重要的信息是带有一组已经达成共识的合约集,收到合约集的节点,都会对每条合约进行验证,验证通过的合约才会最终写入区块链中,验证的内容主要是合约参与者的私匙签名是否与账户匹配。 (3)区块链构建的智能合约自动执行 其过程包括以下步骤。 ①智能合约会定期检查自动机状态,逐条遍历每个合约内包含的状态机、事务及触发条件。将条件满足的事务推送到待验证的队列中,等待共识,未满足触发条件的事务将继续存放在区块链上。 ②进入最新轮验证的事务,会扩散到每一个验证节点,与普通区块链交易或事务一样,验证节点首先进行签名验证,确保事务的有效性。验证通过的事务会进入待共识集合,等大多数验证节点达成共识后,事务会成功执行并通知用户。 ③事务执行成功后,智能合约自带的状态机会判断所属合约的状态,当合约包括的所有事务都顺序执行完后,状态机会将合约的状态标记为完成,并从最新的区块中移除该合约。反之将标记为进行中,继续保存在最新的区块中等待下一轮处理,直到处理完毕。整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可篡改。 —- 编译者/作者:FreeTon 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
人人都懂区块链——智能合约的本质和工作原理
2021-04-28 FreeTon 来源:区块链网络
LOADING...
相关阅读:
- 币安将面向全球用户推出NFT平台2021-04-28
- 买NFT?您需要知道的事情!2021-04-28
- 4.28午间行情:反弹放缓有回踩需求2021-04-28
- 距FBD火鸟上线Mdex倒计时6小时2021-04-28
- 玩转SokeNetwork2021-04-28