首先,交易发起方构造交易,加上数字签名,广播到
区块链P2P网络之中。然后, 区块链网络中的“矿工”节点陆续收到这笔交易。然后,所有矿工都会把交易打包到自己构建的备选区块之中,然后将自己的备选区块广播。
这时候,全网根据”共识机制“来决定哪个矿工负责写入这个区块。然后这个矿工将会负责把这个区块添加到区块链上,完成该区块中的所有交易。最后交易完成,交易参与方可以查询到交易执行结果。
那么, “共识机制”是从什么时候出现的?
1982年, Lamport首次发表了关于拜占庭将军问题解决方案的论文,后来获得了计算机界的最高奖:图灵奖。
1999年,Jakobsson发表了关于PoW的论文。
2008年11月,中本聪发表了
比特币的论文,并用了PoW作为共识机制。
2012年,PeerCoin项目开始采用PoS作为共识机制。
2016年,Tendermint项目开始采用PBFT作为公示机制。
2018年,
以太坊项目提出在2.0版本中,通过Casper方法采用PoS作为共识机制。实际上,V神今天正在欧洲介绍这方面的最新进展。
共识机制的基本要求和不可能三角
这里需要提的是,任何分布式系统(包括比特币甚至货币),都存在一个不可能三角形:性能、可扩展性和去中心化。
譬如人民币,性能和可扩展性很高(每天无数人用它来交易),但是去中心化低(央行想印多少就印多少)。对于比特币,去中心化程度高,可扩展性也高,但是性能低。
所以在设计、选择共识机制时候,我们必须记住这三点:我们应该优化哪一方面,牺牲哪一方面,因为你不可能同时达到这三点。另外,所有的共识算法必须具备三个基本要求:
1.一致性 (safety):所有参与共识的诚实的节点,得到的计算结果是相同的,而且是符合共识协议的。
2. 终局性 (liveness):所有参与共识的诚实的节点,最终可以达成一致性结果。
3. 容错性 (fault tolerance):在共识算法的成功执行过程中,可以容许参与共识的节点发生一些错误。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。