1. 首页
  2. 业界观点

IOTA开发明星Hans Moog:一种新的“共识”:多界Tangle[第三部分]

这是Hans Moog今天早上发出的他的“终极共识”的第三部分说明,在这个说明中,Hans提到了事件排序的相对性,从而扩展到何为更加有效的共识这一命题,并拿#区块链# 当中的#比特币# 和#联盟链# 当中的#Hashgraph# 进行了分析。通过这篇文章的铺垫,读者将会更容易的理解后续提出的具体算法。

在上一部分中,我们讨论了账本状态,它用于跟踪和管理冲突,方法是将冲突的支出记入不同的类似git的分支。然后节点使用虚拟投票来决定哪一个分支成为账本状态的一部分。

在开始讨论新的投票方案之前(最后),请允许我再绕最后一个弯子,谈谈基于投票的共识机制的一些基本原则,因为它将帮助我们判断提议的解决方案是否可行。

每一个共识都需要某种形式的投票

分布式系统中的节点以不同的顺序查看事件。这是因为消息在网络中传播需要一些时间。

根据爱因斯坦的狭义相对论,不可能在一个绝对的意义上说,两个不同的事件发生在同一时间,如果这些事件在空间上是分开的。

​这一事实被称为同时性的相对性。由于没有关于事件顺序的“绝对真理”,无论如何,在某种顺序上达成一致的唯一方法是让节点投票。即使是那些不把自己推销为基于投票的共识协议的协议,通常仍然使用一种投票形式。

例如,在比特币中,发行新区块的矿工基本上是通过将他们新开采的区块与(从他们的角度看)似乎最长的区块连接起来,对优先选择的区块进行投票。获得最多票数(块)的链被认为是正确的链。由于采矿奖励是区块的一部分,所以矿工总是被鼓励在最长的链条上采矿。

其他的共识机制采取了一种更“民主”的方式,即不选择一位领导人来投票,而是试图考虑一群节点的意见。

“昂贵”的投票

大多数投票协议不能很好地扩展共识节点的数量,因为消息开销实在是太大了。

这就是为什么像EOS这样的协议将块生成器的数量限制在一个非常小的组中的原因。增加块生成器的数量将破坏它们的性能。它们本质上是以去中心化来换取绩效。

FPC和CA做了不同的权衡,它们不是达成“确定性”共识,而是通过只询问其他节点的随机子集来达成“概率性”共识。这使我们能够比传统的协商一致协议更有效地投票,但即使在这里,投票在某些时候也会出现问题。

例如: 假设我们使用FPC,大部分的mana由50个节点控制,我们的网络中有10,000个节点。在1000个冲突TPS时,前50个节点必须每秒回答1000万个投票请求。这就是为什么我们现在考虑让最大的法力持有者主动地gossip(传播)他们的意见(即以交易的形式)。通过这种方式,他们只需发送一条消息,而不是每秒响应1000万个请求。

但是,在我看来,这种“意见的Gossip传播”只是另一种把投票放在Tangle的形式,因此是我所提议的虚拟投票解决方案的前身。

​注意:这当然是一个极端的例子,因为每秒1000个冲突的交易很可能不是我们每天看到的冲突的数量,但它表明,即使是概率投票协议也有其局限性。

虚拟投票

虚拟投票最初是由Hashgraph提出的一个术语,它描述了一种机制,在这种机制中,节点将它们的意见包含在它们所发送的事件中。这样,实际投票就不需要额外的消息开销,因为事件已经包含了网络中参与者的意见。

即使是Hashgraph引入了这个术语,他们也绝不是第一批使用这种投票机制的人。事实上,甚至比特币也使用一种虚拟投票形式,因为这些区块包含交易和投票(区块的附件位置)。因此,比特币不需要额外的投票层来达成共识。

为了进一步优化投票过程,基于虚拟投票的协议通常依赖于在其数据结构中“继承”投票的能力(例如,在比特币中,每一个新的区块投票并为之前的整个区块链提供担保)。

结论

因此,寻求“共识的圣杯”本质上就是寻求最有效的投票机制。

虚拟投票似乎非常接近最优的消息开销,但到目前为止,我们还没有看到某种虚拟投票协议,它不需要我们首先选择一个领导者(譬如常见的区块链)或设定一个固定大小的委员会(譬如Hashgraph)。

特别是在考虑分片时,如果不必预先就固定数量的验证器来达成一致,将会非常有好处。

例如,IOTA希望能构建一个分片解决方案,允许每个节点分别决定要处理哪些数据以及需要处理多少数据。因此,每个节点都有一个非常独特的感知,即哪些节点是“验证器”(高法力节点),协议需要“收敛”,而不依赖于观察到的那片Tangle的大小。

原文来源

https://medium.com/@hans_94488/a-new-consensus-the-tangle-multiverse-part-3-394353a07c99

原创文章,作者:BruceX,如若转载,请注明出处:https://www.iota.love/201911/a-new-consensus-the-tangle-multiverse-part-3/