美文网首页前端技术
【初探区块链技术】智能合约

【初探区块链技术】智能合约

作者: 一俢 | 来源:发表于2019-05-25 10:20 被阅读3次

    什么是智能合约

    智能合约是运行在区块链网络的特定代码,用尼克·萨博(Nick Szabo,概念的提出者)的话讲:“一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。”

    承诺

    承诺是指合约参与方同意的权利和义务,这些承诺定义了合约的本质和目的。

    数字形式

    数字形式意味着合约不得不写入计算机可读的代码中。这是必须的,因为只要参与方达成协定,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。

    协议

    协议是技术实现,在这个基础上,合约承诺被实现,或者合约承诺实现被记录下来。选择哪个协议取决于许多因素,最重要的因素是在合约履行期间,被交易资产的本质。

    工作原理

    基于区块链的智能合约构建及执行分为如下几步:

    • 多方用户共同参与制定一份智能合约;
    • 合约通过P2P网络扩散并存入区块链;
    • 区块链构建的智能合约自动执行。

    “多方用户共同参与制定一份智能合约”的过程:

    • 首先用户必须先注册成为区块链的用户,区块链返回给用户一对公钥和私钥;公钥做为用户在区块链上的账户地址,私钥做为操作该账户的唯一钥匙;
    • 两个或两个以上的用户根据需要,共同商定了一份承诺,承诺中包含了双方的权利和义务;这些权利和义务以电子化的方式,编程机器语言;参与者分别用各自私钥进行签名;以确保合约的有效性;
    • 签名后的智能合约,将会根据其中的承诺内容,传入区块链网络中。

    “合约通过P2P网络扩散并存入区块链”的过程:

    • 合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份;区块链中的验证节点会将收到的合约先保存到内存中,等待新一轮的共识时间,触发对该份合约的共识和处理;
    • 共识时间到了,验证节点会把最近一段时间内保存的所有合约,一起打包成一个合约集合(set),并算出这个合约集合的Hash值,最后将这个合约集合的Hash值组装成一个区块结构,扩散到全网;其它验证节点收到这个区块结构后,会把里面包含的合约集合的Hash取出来,与自己保存的合约集合进行比较;同时发送一份自己认可的合约集合给其它的验证节点;通过这种多轮的发送和比较;所有的验证节点最终在规定的时间内对最新的合约集合达成一致;
    • 最新达成的合约集合会以区块的形式扩散到全网,如下图所示,每个区块包含以下信息:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳、以及其它描述信息;同时区块链最重要的信息是带有一组已经达成共识的合约集;收到合约集的节点,都会对每条合约进行验证,验证通过的合约才回最终写入区块链中,验证的内容主要是合约参与者的私钥签名是否与账户匹配。

    应用场景

    • 数字身份
    • 供应链
    • 证券
    • 土地所有权记录

    问题和风险

    • 区块链和外部世界之间的互动都需要受信任的服务。但是尽管技术上说是可行的,却可能歪曲去中心化系统的目标;
    • 区块链没办法解决风险和回报之间的关联;
    • 量子计算对区块链的威胁;

    相关文章

      网友评论

        本文标题:【初探区块链技术】智能合约

        本文链接:https://www.haomeiwen.com/subject/qwrazqtx.html