2018年《云鹏区块链读书会》已累计学习30余本区块链和投资方面的书籍,这些书籍的观点和知识使我受益匪浅。为了让更多的朋友们也能获得这些高价值的知识,我在2019年规划整理精读成《区块链知识精读宝典》。
该系列分基础知识系列、应用系列、技术系列、项目系列、政策系列等,将多本书同类内容汇总成一个总系列,总系列分多个不同知识点的小系列。例如智能合约知识,我会将多本书里面最精华的智能合约内容汇总成一个系列,尽可能将智能合约的知识点都涵盖,这样便于读者系统学习,同时也是自己对知识点的完整梳理。每篇文章都经过选文、读文、解文步骤,在自己学习的过程中,力求给大家奉献有价值的内容。
希望这套《区块链知识精读宝典》能够再次给大家带来高价值。
学有余力尚能助人,快哉也!
- 01 -
智能合约工作原理
基于区块链的智能合约包括事务处理和保存的机制,以及一个完备的状态机,用于接 受和处理各种智能合约,而且事务的保存和状态处理都在区块链上完成。
事务主要包含需要发送的数据,而事件则是对这些数据的描述信息。事务及事件信息传入智能合约后,合约资源集合中的资源状态会被更新,进而触发智能合约进行状态机判断。如果自动状态机中某个或某几个动作的触发条件满足,则由状态机根据缺省信息选择合约动作自动执行。
智能合约系统根据事件描述信息中包含的触发条件,当满足触发条件时,从智能合约 自动发出缺省的数据资源,以及包括触发条件的事件;整个智能合约系统的核心,就在于智 能合约以事务和事件的方式经过智能合约模块的处理,输出还是一组事务和事件;智能合约只是一个事务处理模块和状态机构成的系统,它不产生智能合约,也不会修改智能合 约;它的存在只是为了让一组复杂的、带有触发条件的数字化承诺能够按照参与者的意 志,正确执行。
基于区块链的智能合约构建及执行分为如下几步。
①多方用户共同参与制定一份智能合约。
②合约通过P2P网络扩散并存入区块链。
③区块链构建的智能合约自动执行。
1.1 步骤①“多方用户共同参与制定一份智能合约”的过程,包括如下步骤:
A.用户必须先注册成为区块链的用户,区块链返给用户一个公钥和私钥;公钥作为用 户在区块链上的账户地址,私钥作为操作该账户的唯一钥匙。
B.两个以及两个以上的用户根据需要,共同商定了一份承诺,承诺中包含了双方的权 利和义务;这些权利和义务以电子化的形式,编程机器语言;参与者分别用各自私钥进行 签名,以确保合约的有效性。
C.签名后的智能合约,将会根据其中的承诺内容,传入区块链网络中。
1.2 步骤②“合约通过P2P网络扩散并存入区块链”的过程,包括如下步骤:
A.合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份;区块链中的验 证节点会将收到的合约先保存到内存中,等待新一轮的共识时间,触发对该份合约的共识 和处理。
B.共识时间到了,验证节点会把最近一段时间内保存的所有合约,一起打包成一个合 约集合(set),并算出这个合约集合的Hash值,最后将这个合约集合的Hash值组装成一 个区块结构,扩散到全网;其他验证节点收到这个区块结构后,会把里面包含的合约集合 的Hash取出来,与自己保存的合约集合进行比较;同时发送一份自己认可的合约集合给 其他的验证节点;通过这种多轮的发送和比较,所有的验证节点最终在规定的时间内对最新的合约集合达成一致。
C.最新达成的合约集合会以区块的形式扩散到全网,如图1.2所示。每个区块包含以 下信息:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳以及其他描述信 息;同时区块链最重要的信息是带有一组已经达成共识的合约集;收到合约集的节点,都 会对每条合约进行验证,验证通过的合约才会最终写入区块链中,验证的内容主要是合约 参与者的私钥签名是否与账户匹配。
图1.2 合约区块链示意图
1.3 步骤③“区块链构建的智能合约自动执行”的过程,包括如下步骤:
A.智能合约会定期检查自动机状态,逐条遍历每个合约内包含的状态机、事务以及触 发条件;将条件满足的事务推送到待验证的队列中,等待共识;未满足触发条件的事务将 继续存放在区块链上。
B.进入最新轮验证的事务,会扩散到每一个验证节点,与普通区块链交易或事务一 样,验证节点首先进行签名验证,确保事务的有效性;验证通过的事务会进入待共识集 合,等大多数验证节点达成共识后,事务会被成功执行并通知用户。
C.事务执行成功后,智能合约自带的状态机会判断所属合约的状态,当合约包括的所 有事务都顺序执行完后,状态机会将合约的状态标记为完成,并从最新的区块中移除该合 约;反之将标记为进行中,继续保存在最新的区块中等待下一轮处理,直到处理完毕;整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可篡改。
- 02 -
文章解读
1. 基于区块链的智能合约包括事务处理和保存的机制,以及一个完备的状态机,用于接 受和处理各种智能合约,而且事务的保存和状态处理都在区块链上完成。
2. 事务主要包含需要发送的数据,而事件则是对这些数据的描述信息。
3. 整个智能合约系统的核心,就在于智能合约以事务和事件的方式经过智能合约模块的处理,输出还是一组事务和事件;智能合约只是一个事务处理模块和状态机构成的系统,它不产生智能合约,也不会修改智能合约。
4. 基于区块链的智能合约构建及执行分:
①多方用户共同参与制定一份智能合约。
②合约通过P2P网络扩散并存入区块链。
③区块链构建的智能合约自动执行。
5. 整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可篡改。
内容来源:《从数字货币到信用社会》
认识云鹏老师
《区块链读书会》创始人;
007er、EOS引力区引力节点;
币车合伙人、官方认证大V;
Beta货币基金项目顾问;
《币乎应用指南》《区块链精读好书》系列教程作者;
任多家IT公司技术总监,深耕IT领域10年+,专注电商和医疗架构;
云鹏老师微信 yg160160 邀你进《区块链读书会》一起读书!
进群一起学习,共同进步!
「力场」——公链挖矿第一社区
网友评论