LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 以太坊2.0是什么,它会比EOS更优秀吗?

以太坊2.0是什么,它会比EOS更优秀吗?

2020-01-14 婷婷玉立 来源:区块链网络

关于Ethereum 2.0如何工作的许多细节现在已经可以得到,多个团队已经在着手实现它。

1.委员会及其组成

Ethereum网络的任何参与者都可以成为验证器,只要在现有的POW链上将32ETH绑定到一个专用的智能合约中就足够了。


一旦参与者进入验证者池,就可以将他们分配给某个分片。该分配是完全随机的,并充分利用了可验证延迟函数(VDFs)来实现无偏随机性。

如果投注额明显超过32 ETH(例如320 ETH),则他们将获得验证者席位的比例。这些席位之间没有任何联系,特别是每个席位都被分配给一个独立的分片,因此在最坏的情况下,押注320 ETH的参与者在任何时候都可以成为10个分片的验证者。不这样做将增加对手超越分片的可能性,并且更高的赌注通常意味着获得更多的资源,从而获得更多的计算能力。

2.在POS系统中进行批量生产

Ethereum 2.0是一个POS系统。在本节中,我将回顾在许多现有的和提议的POS区块链中如何创建区块的一般框架:

在这样的框架中,块按固定的时间表生成,比如每5秒生成一次。有一组产生和验证块的验证器。对于每个5秒的时隙,分配一个验证器,该验证器应在该时隙产生一个块。如果验证者的赌注不相等,则赌注更大的验证者通常会有更多的时隙来提议区块。

当出现分叉时,诚实验证者希望建立的所选链是其中包含最多块的链。只要诚实的成员控制着所有验证者的一半以上,那么就很难逆转一大堆区块。即使整个不诚实的少数验证者有意选择在诚实链上的时段内不生产块,并秘密地建立分叉链,他们的链条也会比诚实链短,类似于POW系统,只要超过一半的哈希运算力是由诚实的参与者掌握,反转长块的可能性就很小。

然而,如果天真地执行这样的框架,就会有许多问题。首先,短期的分叉仍然是非常可能的。如果少数人仅控制所有验证者的10%,那么即使是最后的6个块,反转的可能性也会变得非常高。其次,各种审查问题层出不穷。例如,如果不诚实的参与者刚好有两个插槽,他们可以审查紧接在他们之前的插槽:


在上图中,不诚实的验证器控制时间槽3和4。他们故意从时间槽1开始,在块的顶部产生块,有效地审查了时间槽2的块。槽5中的诚实验证器将选择3和4在生成它们的块时构建的更长的链。

一个不诚实的验证者还可以尝试检查前一个时隙中的块。考虑下图。X轴是时间,每个验证器的时隙在底部标记。每个块上的数字是预期发布该块的插槽。分配给插槽0和2的诚实验证器及时发布了其块,但是分配给插槽1的不诚实验证器延迟了其块,并且仅在发布了时隙2的块之后才发布了该块(因此,时隙2中的验证器不知道并在时隙0的块顶部构建其块):


槽3的诚实验证器应该建立在哪个块上?考虑4个可能的规则:

总是从前面的位置开始构建块。这样,前一个槽中的不诚实的验证器可以延迟发布它们的块,直到后一个槽中的验证器发布它们的块,从而有效地审查它们(正是上面描述的场景);

总是从后面的位置构建块。这样,槽X中不诚实的验证器可以选择忽略槽X-1发布的块,并确保槽X+1中的验证器将选择它们的块,有效地审查槽X-1中的块;

总是在较早收到的块上构建。这样,如果不诚实的验证器与下一个槽中的验证器有更好的网络连接,则上述任何一种情况都是可能的;

随机选择块。通过这种方式,不诚实的验证者永远不能确定地审查(除非他们有多个插槽在一行),但如果审查对他们来说比块奖励有更高的价值,仍然可以自然地尝试审查,并有50%的机会成功。

上述所有情况都是不可取的。

3.BFT的方法

解决上述问题的一系列建议在验证器中的每个块上使用某种BFT一致算法。最早提出这种方法的论文之一是ByzCoin,但从那时起,许多其他的协议都是建立在这个想法上的。

这种协议的主要特点是,一旦委员会确定了一个区块,只要不诚实的参与者控制的验证者少于1/3,该区块就不可逆,因此分叉和审查都不可能。

那么,两个主要缺点是:a)大多数现有的BFT算法都非常慢,并且不是为试图达成共识的大量参与者而设计的,并且b)处于离线状态被认为是对抗行为,因此如果小于?的参与者在线,无法达成共识,并且该系统至少在一段时间内停滞不前。

4.证明者

Ethereum 2.0使用前一种方法,每个时间槽有一个特定的验证器,它被分配在那个时间槽创建一个块。这样的验证器称为提议者。但是,Ethereum 2.0扩展了这种方法,它鼓励委员会中的每个验证器通过签名来“验证”块。签名是使用BLS签名聚合来累积的,这可以防止块大小随着证明者的数量而爆炸。此外,如果对于给定的槽,验证器没有看到正在产生的块,或者在验证器没有将其视为当前链的链上产生的块,则鼓励验证器验证所谓的“跳转块”。通过这种方式,一个可靠的验证器被期望在每个时隙中准确地验证一个块,要么是由提议者生成的实际块,要么是一个“跳转块”。

通过使用证明者和智能分叉选择规则,以太坊2.0分片链设法避免了普通PoS方法和BFT共识算法家族中的大多数问题。

5.最新消息

在目前的分叉选择规则设计中,只考虑每个测试者的最大插槽数的认证。例如,在下图中,Alice对插槽3中的一个块进行了验证,并且在分叉选择规则中只使用来自Alice的验证。特别是,她不再考虑插槽2中的证明,因此,在决定插槽0的分支时,将选择上链,因为它具有三个证明(Alice,Bob和 Elaine),而下链只有两个(Carol和Dave):


请注意,不管Alice的两个认证是由她第一个提交的,还是由某个特定的观察者以什么顺序收到的,只有插槽号最高的认证(在本例中为3)才会被考虑。

6.认证条件

诚实的证明者必须仅在满足以下条件时才能为一个块作证:

a.该块属于证明者认为是当前选择链的链;

b.证明者没有在同一时间段内验证任何其他块。请注意,诚实的提议者决不会为同一个插槽提出两个块,因此只有当恶意的提议者试图通过为同一个插槽生成多个块来创建分叉时,这条规则才会生效,这种情况可以立即消除。

如果证明者没有收到一个特定时间段的块,那么他们就证明了一个时间段的跳转块。由证明者来决定他们等待的时间槽有多远,直到他们决定停止等待块并验证跳过块。Danny Ryan建议一个诚实的证明者等待到时间段的中间,但是最终他们应该做他们认为能够优化他们的机会的事情,即他们能够像大多数其他证明者一样验证相同的块(不管是实际的还是跳过的)。

7.分析

7.1.活性

与BFT共识算法系列不同,即使超过三分之二的所有验证器都处于脱机状态,上面讨论的方法仍继续有效。网络中的参与者将观察到,这些块没有获得1/3的证明,并且将对块的终结性更加谨慎,等待额外的安全性(例如,等待直到该块与信标链交叉链接,然后再进行其他操作)。由Casper FFG在此处完成,主题超出了本文的范围),但重要的是,这些区块将继续发布,并且系统不会停止。

7.2.审查

如果不要求证明者仅在相应时隙的时间范围内进行证明,则第二种情况(其中一个区块的提议者将其延迟到下一个区块发布之前)仍然可行。可以延迟其块,直到发布块X + 1,然后再发布它们。证明者将无法在恶意意图和单纯的网络延迟之间进行区分,并且没有特定的要求,即在时间 窗口内不进行证明,相应插槽仍可以证明阻塞插槽X,从而有效地检查X + 1。

如果所有参与者之间的时钟完全同步,则在时间范围内进行证明的要求将完全解决该问题。如果时钟不同步(但彼此之间的时间间隔最多不超过几秒钟),则可能会发生某种定时攻击,尽管这种可能性极小。

7.3.Forkfulness

在两种证明方式的可能解决方法之间(LMD仅考虑每个证明者的最大插槽号证明,而IMD考虑所有证明),后者提供了更好的分叉性保证。

使用LMD方法,也就是本文中描述的Ethereum 2.0的当前提议,叉性更弱(即更可能是分叉)。要理解为什么要考虑一个有60个认证的分支(其中一些是由恶意的认证人员提供的)和另一个有40个认证的分支。在IMD中,对第一个分支进行认证的测试人员中有21人需要执行一个恶意的意图,并为竞争链中的一个块进行认证,以使该链击败所选的链(最终有61个认证,而先前选择的链上有60个)。在LMD中,11个测试者进行恶意行为就足够了(最终在之前选择的链上有51个测试者,而不是49个)。尽管存在LMD的这一弱点,但它并不能帮助您减轻叉感,尽管并不能完全消除叉感,即使累积了超过三分之二的证明,而存在的三分之二的对手却不足。考虑以下示例:

假设有7个验证者,Alice (A)、Bob (B)、Carol (C)、Dave (D)和Elaine (E)是诚实的,而Xavier (X)和Yasmine (Y)是恶意的。

(i)插槽2和插槽3的生产者都在插槽1的块上构建一个分叉。Alice和Bob都在时间槽2中看到了这段代码,并对其进行了验证;

(2) Carol在发表时看到了时间槽3中的block,但还没有看到槽2中的block和它的认证,从而证明了block在时间槽3中,Xavier和Yasmine也是如此;

(iii)现在time slot 3中的block有三个认证,Alice和Bob认为它是被选中的block,并对其进行认证(假设认证的时间还没有过期);时间段3中的块此时?多所有的验证证明它和理想的不可逆的。

(iv)未知的其他测试者Dave和Elaine证明,在插槽2时,仍然是合法的,但他们的认证由于网络速度慢而延迟,并没有看到Alice和Bob之前没有看到;

(v) Xavier和Yasmine实施恶意意图,构建并证明在时间槽2的一个块上构建的时间槽4中的块。此时上链有更多的证明(Dave,Elaine,Xavier和Yasmine)比低链(Carol,Alice和Bob),并成为当前,即使低链有超过?以前的证明。

(vi)所有诚实的验证器现在也验证槽4中的新块。

请注意,这种情况需要大量的不太可能发生的事件(例如,Dave和Elaine的证明被延迟,除非对手控制网络通信,否则数百名验证者将变得极为不可能),并诉诸恶意行为(Xavier和Yasmine证明一个块)他们知道不在选定的链上,但是仍然表明认证框架不能提供像BFT共识算法系列一样强大的理论保证。

8.与TxFlow的比较

TxFlow是一种公认的算法,它几乎可以用于其分片链。可以在这里找到TxFlow的非正式规范。

Ethereum方法的两个缺点是,即使经过非常多的认证,仍然可能使用分叉,并且验证器之间依赖于同步时钟。在目前的提案中,每8秒发布一次,所以时钟需要同步到几秒。Ethereum基金会进行的模拟显示,即使时钟误差高达10秒,链条仍在继续增长。大多数块被证明是跳跃块,但这种跳跃块指向规则块,有效地使规则块链继续增长。

TxFlow保留了以太坊方法的大多数保证和属性,但不依赖于同步时钟,并且在所有验证器中只有不到1/3是恶意的假设下,保证了块的不可逆性。然而,在本设计中,如果超过三分之二的验证器处于离线状态,直到验证器旋转,它的确会失去生命。

脚注:请注意,当分片数量高且对手具有适应性时,假设分片中恶意验证程序的数量少于1/3,这是不合理的,因此包括TxFlow在内的BFT协议家族最终也有可能产生分叉。

TxFlow和证明框架之间的选择缩小到下表:


声明:本文为译文,内容不代表译者观点。

阅读原文请戳 Detailed overview of Ethereum 2.0 shard chains: Committees, Proposers and Attesters

和婷婷一起来充电8!

—-

编译者/作者:婷婷玉立

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...