Annchain小哥哥手把手教你搞懂区块链共识机制
作者:Ann.OG
该文章由annchain团队原创首发,未经允许不得转载,否则将追究法律责任
生活中的共识:
我们是如何达成共识的:
提出议案——消除分歧——统一认识
e.g. 今天中午吃什么、家庭决策、总统选举
中心化的共识 VS 去中心化的共识
中心化的共识:少数人决定大方向
优缺点:高效、但由于高度集权,容易导致权利的泛滥,且易被但单点**。
去中心化的共识:大多数人共同参与决策
优缺点:权利分散,不容易作恶,但是效率很低
区块链共识:
举个栗子,
在区块链的世界里,假设在某一时间点,ABCD四人拥有一致的账本。这时,B发起一笔向C转账10元的交易。这笔由B发起的交易会被B广播给网络中的其他人。
但此时,ACD三人在收到这笔交易后并不会马上写入各自的账本。因为如果各人都只管自己记账,那么就没法保证所有人的账本保持一致。
为了达成账本的顺序一致,就需要一个人来确认这个交易顺序并告知大家,这样的人就被称作 Miner (矿工)。
Miner 在记账过程中需要做两件事:
- 校验收到的交易的合法性
- 付出大量的算力来计算找到“数值”值,使得 B 到 C 转账的这笔交易可以写入账本中。
Miner 将找到的值广播给全网。B 和 C 收到这个广播后验证这个数值是否可行。验证通过后将这笔交易记录在自己的账本上。同样作为 Miner 的 A 在收到这个广播后,意识到已经有人找到这个“数值”了,那么自己继续找下去也不会成为第一个,也就没法得到奖励了。所以他会选择接受并通过这个广播并马上开始争取下一轮的算力竞赛。
以上这些过程走完之后,ABCD 就都完成了对 B → C 这笔交易的记录。
上述的整个流程让全网的参与人都保持了自己本地账本的同步。这种同步的机制我们便称之为共识。这种矿工参与的挖矿的共识方式我们称作工作量证明(Proof of Work)。
共识的演进
除了工作量证明,最近几年还演进出了一些其他的共识方式。比如通过权益分配权利权重的权益证明(Proof of Stake),通过持有的权益进行投票选出代表进行决策的代理权益证明(Delegated Proof of Stake),具有1/3容错性的拜占庭容错算法等。有兴趣的可以去查阅资料了解下。
共识之不可能三角
现有公链架构在性能上,一般只能满足以下三者中的两个:去中心化、安全性、可扩展性
停下脚步反思一下,我们想要让全网的分布式账本统一,为此我们选择让一个人出块,然后全网都得听他的。在选出这个唯一的出块人之后,我们却被这个“人”所限制住了。
Annchain在共识上的研究和突破
如果不选这个“人”、不争夺出块权、不用区块会怎样?
Annchain技术团队正在寻找一种乱中有序的办法。
基于DAG(有向无环图),Annchain重新定义了各个节点的交易结构。
在Annchain的网络中,每笔交易依赖于前一笔交易,除了这样一个链状结构之外,我们还允许交易进行一个并发的广播。这样一来,一个交易很可能会被多个交易进行跟随,慢慢地形成一个不存在回路、却有方向的结构,即上文提到的DAG。
在这个结构中,
交易即验证:发送自己的交易前,需要验证两笔其它最新的未被验证的交易。验证完成之后,将自己链接到前置交易后面去一起广播。
交易即出块:一笔交易就是一个区块,产生每一笔交易都产生一个块,区块之间互相没有依赖关系。
交易即确认:交易一旦被足够的其他交易跟随,该交易即得到事实上的认可。
交易即共识:可以达成异步的共识,所有节点对于图的认知最终会逐渐走向一致。
这样做突破了区块链的架构桎梏,使得Annchain具有高扩展性,支持异步通讯,同时降低了交易成本。Annchain性能提高的背后,对接入物联网等区块链落地应用更加环境友好,未来大规模的区块链落地运用,需要一个更轻更快的整体架构。
更多关于annchain:
Website: www.annchain.io
Github: github.com/annchain
Twitter: twitter.com/Annchain007
Official Account: Annchain
********: t.me/Annchain
t.me/AnnchainChannel