Hyperledger 项目中对动态共识的需求是什么

What is the need for dynamic consensus in hyperledger projects

我读到 hyperledger sawtooth 支持动态共识,意味着共识算法可以动态更改。我的问题是需要什么或何时需要动态更改共识?是什么迫使我们动态改变共识?

我阅读了 Fabric 和 Sawtooth 文档。找不到动态共识的必要性

没有什么可以强制任何区块链改变共识——你可以永远保持相同的共识算法。

然而,共识算法是一个活跃的研究领域。正在提出新的和更有效的算法。可能是区块链可能想要切换到新算法。或者可能是当前的算法不合适。例如,某些算法对少数节点(例如 PBFT)很有效,但复杂度为 O(n^2),这意味着它们会随着节点的增加和不扩展而创建呈指数增长的消息数量。

一些共识算法是 BFT,拜占庭容错,这意味着它们可以抵御坏人或恶意行为者(节点)。其他算法只是 CFT,Crash Fault Tolerant,这意味着它们可以承受节点崩溃,但不能承受坏人。因此,人们可能希望从一种对 BFT 友好的算法(例如 PoET SGX)进行更改。

顺便说一下,Hyperledger Sawtooth 支持 PoET、RAFT 和 DevMode 共识。最后一个仅供实验和测试使用——不用于生产。即将添加的是 PBFT 共识。有关锯齿共识的更多详细信息,请参阅 https://github.com/danintel/sawtooth-faq/blob/master/consensus.rst