1. 首页
  2. 业界观点

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

Hans Moog个人宣称他已经找到了解决#区块链# 问题的“终极共识”,这个共识诞生于他有次在梦中与Popov的讨论,笔者从最初他在discord中的描述到粗略查看他的原型代码,心理过程有点像面对#美国大选# 候选人#杨安泽# 提出的政见一样,粗听很荒谬,仔细一想却似乎真的有用,今天凌晨,Hans用文章首次阐述了他的这个想法诞生的过程,坦白说,我已经初步了解并已经被说服了,为了不先入为主,请大家还是阅读他的原文。注意,这个共识尚未经过验证,且不影响目前Coordicide的原有计划。

长期以来,我一直在思考如何向更广泛的受众恰当地展示和解释这种新方法背后的思想。我最初想做一个视频来解释它背后的所有原因,但视频可能不够简洁,让人们正确地看待并“挑战”这些新提出的想法。那么用文字把它描述清楚肯定会有帮助!

通常,新的共识机制会以白皮书的形式出现,其中包含大量的数学分析和适当的形式语言,但即使我能够阅读和理解这些正式的术语和概念,这不是我(和其他人)思考的方式。我真的很希望读这篇文章的人能理解一个共识机制是如何被提出的,而不管他/她/它是否具有大学水平的数学背景。

动机

我想先谈谈“动机”,因为我可以看到人们问这样的问题:“如果coordicide已经解决了“不可能三角形”的问题,为什么我们还需要另一种方法呢?”

答案非常简单:“因为它在任何方面都要更好!

这当然是一个相当鲁莽的声明,在我继续之前,我想说这篇博客文章绝对没有得到IOTA基金会的“批准”,也没有经过“大量研究”。这是一个非常新的想法,很可能仍然有改进的空间(或者甚至是一些严重的缺陷),但无论如何,我感觉它已经足够成熟,可以与你分享。

话虽如此,我说的“更好”到底是什么意思呢?

  1. 它具有较少的“活动部件”,而且更容易实现。
  2. 它要安全得多。
  3. 由于我们使用“虚拟投票”来达成共识,因此它的消息开销更小。
  4. 它消除了交易重新附加和提升的需要。
  5. 它能完全容忍分区和弹性对大规模的网络分裂。
  6. 它适用于物联网和网格网络环境。
  7. 它不受网络中的“坏节点”数量影响,并且不需要特定的网络拓扑(如CA)。

​我可以继续这个列表,并提出更多的东西,但是现在让我们保持这个状态,并在第2部分的末尾重新讨论“这些特性”。

本该最后才说的话:这整个想法很大程度上受到了一些人的影响,他们对当前的coordicide提案提出了批评,比如 Eric Wall (和其他人)。你们向我提出了挑战,让我思考如何处理大规模的网络分裂和其他更奇特的攻击向量。没有这些批评,这篇博客文章很可能就不存在了。因此,感谢您以建设性的方式表达您的关注。

基本思想

这项建议的基本思想可以用一句话来描述:

如果我们能找到一种有效的方式,在Tangle中对我们的投票(以交易的形式)公开的进行“编码”,并允许节点使用“虚拟投票”的形式达成共识,那么很多事情就会变得容易得多。

​我具体指的是什么:

  1. 节点永远不会失去同步,因为它们的观点不再是“本地化的”。每个节点看到相同的Tangle,会自动得出相同的结论。协议失败的可能性基本上是0。
  2. 如果攻击者提供了冲突的版本,新加入网络的节点将有一种客观的方法来检测哪个Tangle是正确的,而不必“信任”外部的投票层。例如,他们可以选择具有较高经济活动的版本。因此,可以使用相同的机制来处理网络分裂(稍后详细介绍)。
  3. 我们不需要在交换额外的投票意见上浪费带宽,并且可以极大地减少投票的消息开销。
  4. 如果所有的投票都是公开的,作弊将会更加困难,甚至是不可能的,我们最终可以摆脱许多额外的攻击检测机制(稍后会详细介绍)。
  5. 网络拓扑可以完全保密,这甚至会使自动对等监视更容易实现,而日蚀攻击将变得更加困难,因为我们可以使用现成的协议。

这些好处几乎都是压倒性的,所以我决定开始更多地思考这个问题。

在无许可的环境中进行虚拟投票

我开始阅读关于虚拟投票的论文,并分析了几个竞争对手的算法,但看起来他们都需要某种形式的许可委员会,因此并不真正适用于IOTA。

我试着去修改算法和头脑风暴新的算法,但他们在开放和无许可的设置下都有一些严重的缺陷和攻击向量,当我即将得出结论,这是最可能不可能的,忽然我有了一个新的启发:

最初的白皮书版本已经使用了一种“虚拟投票”的形式,每个看到相同Tangle的人都会自动同意“权重最重的”分支,而不需要交换任何额外的选票。

​实际上,这种Tangle的精确定义是“每个交易批准两个其他交易”。因此,交易已经是发出节点对它更喜欢哪个分支的投票

白皮书版本最大的问题不是它的基本原则失败了,而是它低估了攻击者的潜在散列能力的大小。如果我们最终能找到一种基于有限的且不像散列能力那样容易被攻击的东西来计算权重的方法,那么这将解决最初的IOTA白皮书中最大的一个问题。

由于我们已经有mana的概念,这是一个相当针对性的决定,试图建立一个基于法力的原始版本的白皮书Tangle,同时修复所有其他的问题(像分裂攻击,回贴的必要性和促销等等)。

作为投票层的Tangle

有些读者可能会看到这个视频,在这个视频当中我阐述了一个事实:Tangle是最有可能的在一个不可靠的介质实现分布式通信的最可靠有效的方法。但现在我开始理解,是Tangel的作用比这个要大得多。

它也是一种高效的虚拟投票机制:由于投票和批准可以继承,单个交易能够对可能无限多个其他交易进行投票。这似乎是一个小而明显的细节,但了解这个事实(及其重要性)彻底改变了我的想法:

到目前为止,我们一直认为Tangle是账本状态的直接表现。与区块链类似,在区块链中,区块只能包含不冲突的事务,我们也一直假设Tangle也只能包含不冲突的事务。

然而,这与Tangle的本质形成了鲜明的反差:既然任何人都可以在Tangle中附加任何东西,我们就不能真正地阻止它时不时地包含冲突。因此,对付“不赞成”的唯一办法就是放弃Tange中“不好的部分”,并迫使每个人在自己的交易碰巧附在错误的分支上时能够重新附回去。

通过试图“强迫”Tangle“像一个区块链一样”工作,所以在它前面设置某种“验证机制”,我们基本上忽略了它的本质,也阻止它发挥其真正的潜力,即成为一个非常有效的虚拟投票机制。

账本状态:Tangle中的Tangle

如果我们仔细观察这些Tangle的情况,我们很快就会发现大部分交易甚至都不是有值的数据交易。这些数据交易对账本状态没有影响,很明显,账本状态和Tangle是两个完全不同的东西

我记得与Paul Handy有过一个谈话(他是和cfb一起的最早的IOTA开发者),我们讨论了经济集群,他告诉我有值交易在Tangle内部以某种本体方式形成一个“看不见的Tangle”。

他描述的是什么意思?他谈到了这样一个事实,资金从起源流向今天有结余的地址。这种资金流动在Tangle的内部形成了一个“隐藏的”的DAG,它不是通过分支和主干连接的,而是连接使用相关资金的交易(见图)。

有值交易被“嵌入”到在许多不相关的数据交易当中。

有值交易被“嵌入”到在许多不相关的数据交易当中。

这个隐藏的DAG形成了实际的账本状态,这与Tangle本身是不同的。

按照Paul的说法,IOTA的“最终愿景”是,分支和主干只用于在Tangle中“查找相关事件”,但是如果一个事务被接受或不被接受,则应该由另一个“本体”(解读Tangle的方式)独立于“附件位置”来决定。

​这恰好是对我要表述的机理的一个非常准确的描述。

通过将Tangle从账本状态中解耦,并将Tangle纯粹用作“沟通和投票的机制”,我们可以利用到Tangle能做好的所有的事情,而不必因为它们包含一个冲突的交易而放弃其中的某些部分。

冲突将通过虚拟投票解决,每个节点将能够通过观察Tangle中的交易来独立地重建“正确的账本状态”。

结论

第二部分将介绍新的投票方案,并描述具体的算法(非常简单),用来把Tangle变成这个“虚拟的投票机”。

这个第一部门所描述的重点是:账本状态和Tangle是相互独立的两个东西,最初白皮书版本的Tangle已经描述了一个虚拟的投票形式,我们将略微修改和扩展,来建立基于mana的版本。

原文来源https://medium.com/@hans_94488/a-new-consensus-the-tangle-multiverse-part-1-da4cb2a69772​​​​

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