BTC共识:共识-传输-验证-共识
PBFT(实用拜占庭容错):共识-验证-传输 同时进行
把共识和交易(区块内容)脱钩。交易的输出不再受限于POW,而只受限于BFT的输出。而无论是在做BFT还是做完BFT把交易广播到全网的时间里,都不影响POW继续进行下一轮共识。
目前常见的共识算法多数是PBFT共识算法,先选取委员会再进行BFT和先选取区块发布者的这种思路。
可扩展的两种思路——领袖选择和DAG,以及可扩展BFT的思路同时详细分析了HotStuff BFT的三阶段共识。殊途同归地达到了O(N)的消息复杂度。
Hotstuff BFT
Algorand中不是一个BFT算法,而只是拜占庭共识(BA)的一种优化版。在Algorand之中,采用的是VRF+同步假设的出块节点轮换机制。相比于Hotstuff,不仅在表现上不如,而且实现上也远没有那么简洁优雅。
Avalanche来自于和Hotstuff相同的作者,采用了“随机抽样BFT”和DAG代替链式结构来降低在大网络中的通信复杂度。
链下方案实际上只是用更复杂的方案实现了一个依赖于可信第三方的认证或者仲裁系统而已。
Rollup的OR、ZR,仍旧是一个基于抵押的链下方案。Rollup又是这么一个已经被公众接受,技术上可行,而且不那么“中心化”的中心化方案。
两者都是在尽量不改变区块链原有结构和规则的基础上,把区块中最“大”,最占用输出的部分给挪到链外,同时,保证链本身的自洽性。
分片就是如何让每个节点不需要接收每一笔交易,都要做出安全性或者去中心化上牺牲。
1.根据网络分片;
2.随机分片;
3.新的分片:在实际中经常被使用的“经济学”保证。
NEAR:让分片固定,而随机选取每个分片的验证者,并定期进行轮换。而一个更好的思路是——这些验证者不仅是随机的,还是隐藏的,即可以采用可验证随机数(VRF)的机制,让攻击者没法知道一个分片的当前验证者是谁,直到他们完成验证并且对结果签名之后。这样,既保证分片对交易分割的有效性,又能够保证每个分片的安全性。
以太坊2.,Polkadots,顺理成章地采用Hotstuff中的三阶段共识来解释和证明——这点得益于Hotstuff本身非常接近中本聪共识的结构。