原文作者为以太坊核心团队Carl Beekhuizen,文章主要内容是讲述以太坊eth2链上的共识机制。
金色财经整理了内容并加入了关于eth一些近期资料。
eth2是令人期待的,在上周以太坊核心团队的eth 2 AMA中,公布了预计eth2上线的日期可能会在2020年7月30日,而具体上线日期,则要目前以太坊的更新情况,其中会包含存款用户界面的开发和测试,这项工作也是本文原作者Carl Beekhuizen在主导,Carl的预计这项工作大约需要两个月,也包含第三方审核存款界面,大约需要一个月。其他的工作也是例如客户端上线以及等待用户存入最低值等时间,因此让eth2可以在2020年7月左右上线。
但eth2团队也表示了可能会遇到临时的问题延迟上线,但对2020年的上线抱有充分的信心。
eth2是以太坊POS机制的验证链,在全面转型只POS机制后,以太坊全网的出块则由beacon chain上的验证矿工来执行。而不是由目前的矿工来完成,当然,笔者认为,以太坊还会留有POA的基金会节点。
目前来看,共识机制仍旧是POW,其中的共识验证出块的流程,还是通过随机数的计算而成。矿工参与需要拥有矿机或安装全节点。
在信标链上的共识出块,是POS的,也就同样需要用一定的方式确认谁是最长链。本文主要介绍的内容原文被发布在以太坊基金会博客上。就是在介绍在eth2上怎样确认最长链。在出块过程中,可以说一直在出现分叉,是因为节点的通信,是同时向周边节点发任务消息,最终确定上,要遵循一个连续性。
我们来看原文,为了理解方便略有叙述改动,加入了少许注解。
Eth2背后的共识机制。
eth2可以通过一个新颖的方法来确定哪个块是这个链的开始,还有哪些块是与不是这个所述链的一部分。
在使用两种机制的条件下,eth2的目标是达成共识,除了在网络正常运行时,快速安全出块之外,要做到在受到攻击时也保持安全。
DASH跌破80美元关口 日内跌幅为1.75%:火币全球站数据显示,DASH短线下跌,跌破80美元关口,现报79.93美元,日内跌幅达到1.75%,行情波动较大,请做好风险控制。[2020/11/17 21:00:20]
困境
FLP不可能原理是分布式计算领域的主要结论,它指出了在分布式系统中,除非对系统做出一些不合理的假设,否则不可能同时具有安全性,活跃性和完全异步性。
安全的理念是不能放弃的,而活跃性的概念可以从一些新的事情上获取。如果消息传递的时长没有限制,则协议是可以异步的。
如果节点能够可靠地通信,始终诚实地遵守协议并且永不崩溃,那么达成共识很容易,但这不是世界正常的工作方式。如果这些假设不成立,则FLP不可能原理证明了必须打破以下至少一项:安全性,活跃性或完全异步性。
Ghost和对分叉的看法
Eth2使用 Greedy Heaviest Observed Subtree(GHOST)作为其分叉选择的规则。GHOST通过选择票数最高的分叉来选择链的开头(它通过考虑每个分叉块及其各自的子块的所有票来进行选择)。
每次有一个分叉时,GHOST都会选择一侧分叉链,在该侧上,更多最新消息支持该块的子树(即更多最新消息支持该块或其后的区块)。算法将执行此操作,直到找到没有子块的块为止。(也就是找到分叉最末的块然后确认谁是最长链)
与最长链规则相比,GHOST的优势在于降低了网络延迟高时的攻击效率,并最大程度地减少了链重组的深度。这是因为虽然攻击者可以在自己的链上有效地构建块,从而使其最长,但是GHOST会选择另一个分支,因为这一支分叉得到票数更多。
尤其是eth2使用了GHOST的一种变体,该变体适合称为最新消息驱动GHOST(LMD-GHOST)的PoS。
LMD-GHOST背后的想法是,在计算链的开头时,只考虑每个验证者的最新投票,而不考虑过去的任何投票。这大大减少了运行GHOST时所需的计算量,因为执行分叉选择所需考虑的分叉数量不能大于验证器的数量。
在GHOST的规则下,验证者/矿工始终可以尝试向区块链添加一个新块(活跃性),并且他们可以在链的历史的任何一点(异步)进行添加。由于它是实时的并且完全异步,因此感谢我们的朋友FLP,我们知道它并不安全。
安全性缺乏本身以重组形式出现,链可能突然在任意深度的分叉之间切换。显然这是不可取的,而eth1是让用户做出“矿工的区块与网络其余部分进行通信需要多长时间的假设”来处理,这采用了等待$ x $确认的形式。(笔者注:还是最长链规则,让更多矿工确认,但如果攻击者拥有大规模算力,就会成为最长链。)
相比之下,Eth2不做这样的假设。
一个友好的确认工具
没有安全概念的区块链是无用的,因为无法做出决定并且用户无法就链的状态达成共识。这就需要Casper the Friendly Finality Gadget(Casper FFG)。Casper FFG是一种在决策时偏重安全而不是活跃性的机制。这意味着尽管做出的决定是最终确认的,但在不安全的网络条件下,它可能无法做出任何决定。
Eth2不会尝试证明并最终确定每个“插槽”(预计将产生一个块的时间),而是每隔32个“插槽”,总共32个称为epoch。首先,验证者签署证明他们同意一个时期中的所有32个区块。然后,如果$ \ geq \ frac {2} {3} $(笔者注:可以理解为代表验证者)这样做,则该块是合理的。在以后的epoch中,验证者有机会再次投票,表明他们已经看到了较早的正确epoch,如果$ \ geq \ frac {2} {3} $执行此操作,则epoch将最终确定,并永远成为eth2链的一部分。
FFG运用了巧妙的技巧。投票实际上包括两个子投票,一个用于正当合理的时期,另一个用于即将定稿的时期。这节省了节点之间的大量额外通信,并有助于实现扩展到数百万个验证器的目标。
穿着风衣的两个ghost
ETH2的共识依赖于两个LMD-GHOST ,这增加了新的模块。Casper FFG可以决定链从哪里开始,决定出块是不是链的一部分。GHOST的良好活跃特性允许将新的块快速有效地添加到链中,而FFG紧随其后,通过确定epoch来提供安全性。
在正常情况下,当生成块并且$ \ geq \ frac {2} {3} $验证者对它们进行投票时,这些块将在FFG证明并最终确定后不久由GHOST添加到链的开头。
如果网络受到攻击和/或大量验证器下线,则GHOST会继续添加新块。但是,由于GHOST处于活跃状态,并不安全,所以它可能会改变对链方向的想法,这是因为不断向链中添加新块,意味着节点也将继续接受新信息。另一方面,FFG主张安全而不是活跃性,这意味着它将停止确认区块,直到网络稳定到可以让验证者完成一致投票为止。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。