新闻开发人员企业区块链解释事件和会议新闻时事通讯
订阅我们的新闻.
电子邮件地址
我们尊重您的隐私
主页博客区块链开发
以太坊2.0信标链解释
您需要了解的有关分片,加注验证程序,证明,委员会,检查点和确定性的所有信息。由ConsenSys 2020年2月25日发布于2020年2月25日
还记得您开始了解区块链时的感受吗?您是否渴望对信标链有类似的了解?以太坊的信标链是大多数内容过于技术,利基或不够深入的系统的核心.
在这里,您将对信标链的元素和机制有个令人愉悦的了解。示例将在正确的级别上解释关键细节,以使您精通并节省时间。我们假设您具有以太坊或比特币的坚实基础,并且对权益证明有所了解。让我们深入了解分片,抵押验证者,证明,委员会,检查点和最终结果的全局图.
分片:大图
要欣赏信标链,分片简介会有所帮助。包括以太坊在内的区块链目前面临的可扩展性主要问题是:每个节点都必须验证并执行每笔交易.
在计算机科学中,有两种主要的扩展方法:
- 垂直扩展:基本上,使节点变得越来越强大.
- 水平扩展:基本上,添加更多节点.
为了去中心化,区块链需要水平扩展。以太坊2.0(也称为eth2或Serenity)的目标是使节点在消费类硬件上运行。分片是用于水平分区数据库的术语.
通常,分片链具有处理它的节点的子集。虚拟矿工,验证器被分配给分片,并且仅处理和验证该分片(链)中的交易.
以太坊的分片具有节点的动态子集,逐块对其进行处理.
分片区块链的主要挑战是分片的安全性。由于验证程序分散在各个分片上,因此恶意验证程序可以接管单个分片.
解决方案的关键部分:
验证者的随机改组(每个分片块都有一个(伪)随机选择的验证者委员会)可确保从数学上讲,控制少于1/3的所有验证者的攻击者可以攻击单个分片
欺诈证明,保管证明和数据可用性检查也是重要的安全组件,但需要它们自己的解释器.
当前的eth2计划是针对 64个碎片. 尽管碎片与信标链是分开的,但我们将介绍整个系统的一些关键要素.
分片揭示了有关以太坊信标链功能和需求的线索。我们将了解为什么经典区块链中还有其他组件。分片式区块链的新兴领域总是欢迎有灵感的读者的创新.
以太坊2.0阶段
简而言之,以太坊2.0分为三个阶段:
- 阶段0 –信标链
- 第1阶段-分片
- 第2阶段-执行
与人体类比:
- 阶段0 –心
- 第一阶段–四肢
- 第二阶段–大脑
难以比拟的管弦乐队的类比:
- 阶段0 –导体
- 第一阶段–仪器
- 第二阶段–音乐家
所有阶段都是系统不可或缺的,并且具有不同的特性. 阶段0是2020年以太坊的一部分. 阶段1通常比其他阶段更加无生命和静态。第二阶段通常与行动和代理有关.
插槽和时代
信标链为以太坊2.0提供了心跳。它为系统的和谐与共识提供了节奏和节奏。每个时段为12秒,一个纪元为32个时段:6.4分钟.
前32个插槽位于时代0。创世块位于插槽0.
插槽是将块添加到信标链和分片的机会。您可以想象,信标链和分片链是按步调编排的。当系统以最佳状态运行时,每12秒添加一个信标(链)块和64个分片块。验证者确实需要大致 与时间同步.
插槽就像是块时间,但是插槽可以为空。信标链和碎片的创世块位于插槽0。碎片将在比信标链的纪元0更高的未来纪元开始,但将具有自己的纪元0,其中包括其创世块.
验证器,证明和信标链简介
虽然工作证明(PoW)与矿工相关,但在以太坊2.0中,验证者是权益证明“虚拟矿工”。验证者正在积极参与以太坊2.0协议的共识。他们的动机将在后面讨论 信标链验证器奖励和处罚.
一个街区 提议者 是已被伪随机选择以构建块的验证器.
大多数时候,验证者是 证明人 对信标块和分片块进行投票。这些选票记录在信标链中。选票决定了信标链的头和碎片的头.
错过了第28个时段的提案.
在每个时期,将验证器伪随机地分配给插槽和分片。验证者正在参与分配的分片的共识,以便其可以投票给该分片的头。验证器将碎片头链接到信标块以获取插槽.
一个 证明 是验证者的投票,由验证者的余额加权。除块外,验证者还广播证明.
验证者还会互相监督,并通过举报其他产生冲突票或验证多个区块的验证者而获得奖励。.
信标链的内容主要是验证者地址的注册表,每个验证者的状态,证明以及分片的链接。验证器由信标链激活,并且可以转换为状态,稍后在本文档中简要介绍 信标链验证器激活和生命周期.
权益验证者:语义学
验证程序是虚拟的,并由涉众激活。在PoW中,用户购买硬件即可成为矿工。在以太坊2.0中,用户抵押ETH来激活和控制验证器.
将利益相关者与利益相关联,将验证者与利益相关联,这一点更加清晰。 平衡. 每个验证者的最大余额为32 ETH,但投资人可以抵押其所有ETH。每投入32个ETH,就会激活一个验证器.
验证程序由使用信标(链)节点的验证程序客户端执行。信标节点具有跟踪和读取信标链的功能。验证程序客户端可以实现信标节点功能或调用信标节点。一个验证器客户端可以执行一个或多个验证器.
交叉链接:将碎片扎根到信标链
交叉链接是信标块中对碎片块的引用。交叉链接是信标链跟随分片链头的方式。由于有64个分片,每个信标块最多可以包含64个交叉链接。一个信标块可能只有一个交叉链接,如果在那个插槽中没有为63个分片提议的块。 eth2第1阶段计划进行交叉链接,以将分片链扎根到信标链,作为分片叉选择,分片链终结性和跨分片通信的基础。所有分片链始终在遵循信标链.
委员会:简介
委员会是一组验证人。为了安全起见,每个插槽(信标链和每个分片中)都有至少128个验证者的委员会。攻击者拥有少于 万亿分之一 控制⅔委员会的概率.
向公众发出随机数的随机信标的概念使它的名字带给以太坊信标链。信标链在称为RANDAO的伪随机过程上达成共识.
在每个时期,伪随机过程RANDAO都会为每个时段选择提议者,并将验证者拖到委员会中.
提案人由RANDAO选择,并在验证者的余额上加权。验证人可能是同一广告位的提议者和委员会成员,但这不是规范。发生这种情况的可能性为1/32,因此我们每个时期大约会看到一次。草图描述了一个验证程序少于8,192个验证程序的场景,否则每个插槽至少有两个委员会.
该信标链解释器专注于信标委员会:为信标链服务的验证程序。 (信标)委员会被伪随机分配了一个分片以交叉链接到信标块中。没有常设委员会。负责交联碎片块的委员会逐块进行更改.
仅构建碎片链块的碎片委员会将成为未来的主题。不与信标链交互的分片链验证程序可能会构建许多分片块。但是,要使一个分片与其他分片进行通信,它需要一个信标委员会来将其交叉链接到一个信标块.
该图是三个插槽中发生的情况的组合描述。在插槽1中,提出了一个区块,然后由两个验证者证明。甲委员会中的一名验证者处于离线状态。插槽1上的证明和阻止传播了网络并到达了许多验证器。在插槽2中,提议了一个区块,但B委员会中的验证者没有看到它,因此它证明信标链头是插槽1中的区块。注意此验证者不同于插槽1中的离线验证者. 向信标链负责人进行证明被称为LMD GHOST投票. 在广告位3中,委员会C中的所有验证者都运行LMD GHOST分支选择规则,并独立证明同一个头.
验证者每个时期只能在一个委员会中。通常,有超过8,192个验证者:每个插槽一个以上的委员会。所有委员会的规模均相同,并具有至少128个验证者。当验证者少于4,096时,安全概率降低,因为委员会的验证者少于128.
委员会:关键
在每个时期,验证者均会在各个时段平均分配,然后再细分为适当规模的委员会。该插槽中的所有验证器均向信标链头证明。该插槽中的每个委员会都试图将特定的分片交联。改组算法按比例缩小或缩小每个广告位的委员会数量,以便每个委员会至少获得128位验证者.
例如,假设有16384个验证器。将512个验证器伪随机分配给插槽1,将512个验证器伪随机分配给插槽2,依此类推。然后将插槽1的512个验证器细分为四个委员会,并伪随机地分配给分片。假设分片33、55、22、11是分片分配。所有512个验证器都进行了Slot 1 LMD GHOST投票。四个委员会之一中的128个验证者尝试使Shard 33交叉链接。在另一个委员会中,128个验证者尝试使Shard 55交叉链接。另一个委员会中的128个验证者尝试使Shard 22交叉链接。另外128个验证者尝试使Shard 11交叉链接。.
对于插槽2,重复该过程。插槽2的512个验证器分为四个委员会,并伪随机地分配给分片。假设分片41、20、17、15是分片分配。插槽2的所有512个验证者都证明了他们对插槽2的信标链负责人的看法。委员会试图使碎片41、20、17、15相互链接.
对时代中的剩余时隙重复该过程。每个验证器都有一个可以说出,证明和交叉链接的位置。在该阶段结束时,所有16,384个验证者都有机会证明和交叉链接。但是到目前为止,验证者的投票是特定于时段而非特定于时段的。这就像为您的地方政府投票,而不是在更广泛的全国大选中投票。所有16,384个验证者都没有对同一件事进行投票。即将到来的有关检查点和确定性的部分描述了验证者在发言时所进行的特定时代的投票。在指定的时段,所有16,384位验证者也投票给该纪元的检查站.
信标链检查站
检查点是一个时期的第一个时隙中的一个块。如果没有这样的块,则检查点是前一个最近的块。每个时期始终只有一个检查点块。一个块可以是多个时期的检查点.
纪元包含64个插槽的方案的检查点.
注意插槽65至插槽128为空。时代2检查点将是插槽128中的块。由于缺少该插槽,时代2检查点是插槽64中的前一个块。时代3与之类似:插槽192为空,因此插槽180中的前一个块是时代3检查站.
时代边界块(EBB)是某些文献(例如 加气纸, 上图的来源),并且可以将它们视为检查点的同义词.
在进行LMD GHOST投票时,验证者还会在其当前时代(称为目标)中为检查点投票。这项投票称为卡斯珀(Casper) FFG投票, 并且还包含一个称为“源”的先前检查点。在该图中,时代1中的验证者投票赞成创世块的源检查点,并在插槽64上投票了该块的目标检查点。在时代2中,同一验证者对相同的检查点投了赞成票。只有分配给该插槽的验证程序对该插槽进行LMD GHOST投票。但是,所有验证人都会为每个纪元检查站投出FFG票.
多数
进行的表决 所有有效验证者的总余额中的⅔, 被认为是绝大多数。从教学上讲,假设有三个有效的验证器:两个验证器的余额为8 ETH,唯一的验证器的余额为32 ETH。多数票必须包含唯一验证人的投票:尽管其他两个验证人对唯一验证人的投票可能不同,但他们没有足够的平衡来形成多数票.
终结性
当一个纪元结束时,如果其检查点获得了⅔多数,则该检查点将被证明是合理的.
如果检查点B被证明是合理的,并且紧接下一个纪元中的检查点被证明是合理的,那么B将被最终确定。通常,检查点将在两个时期(12.8分钟)内完成.
平均而言,用户交易将在一个时期的中间处于一个区块中。距离下一个检查点只有半个世纪,表明交易完成时间为2.5个纪元:16分钟。理想情况下,一个时期的第22个插槽中将包含超过1/3的证明。因此,事务完成的平均时间为14分钟(16 + 32 + 22时隙)。区块确认来自区块的证明,证明的合理性和最终性。用例可以决定是否需要确定性或更早的安全性阈值已足够.
一个检查点得到证明(插槽64)并最终确定一个先前的检查点(插槽32)的示例.
信标链头发生了什么
提出了在时隙96的纪元边界块,其中包含纪元2检查点的证明。现在,Epoch 2检查点的证明数量达到了1/3。这导致纪元2检查点的合理性,并因此导致先前合理的纪元1检查点的确定性。插槽32的确定性立即导致其前面所有块的确定性。最终确定检查点时,可以最终确定的块数没有限制。尽管仅在时代边界计算最终性,但每个块都累积了证明,如以下备用叙述“从创始到头部可能发生的事情”中所述.
从插槽1到插槽32的信标块中包含的所有交联将导致分片链的确定性。换句话说,分片块在被交联到最终确定的信标块时完成。交联本身不足以完成分片块,但有助于分片链的分叉选择.
从创世纪到头可能发生了什么
使用相同的插图,这里是一个故事情节,可以从创始中观察到。从插槽1到插槽63的所有提议者都提议一个块,这些提议者出现在链上。对于时代1中的每个区块,其检查点(插槽32处的区块)会累积55%的验证者的证明。建议在插槽64处使用该块,其中包括针对纪元1检查点的证明。现在,已有70%的验证者证明了纪元1的检查点:这引起了证明。 Epoch 2检查点(插槽64)在整个Epoch 2中累积了证明,但没有达到1/3的多数。提议在插槽96处的区块,其中包括针对纪元2检查点的证明。这导致达到⅔多数,并确定了Epoch 2检查点的合理性。证明时代2检查点将最终确定时代1检查点和所有先前的块.
这是另一种可能的情况。仅考虑到时代1。在提出时代2的检查点之前,时代1的检查点可以获得1/3的多数。例如,由于提议了插槽32至插槽54中的块,证明检查点(插槽32)合理的证明可能已经达到1/3的多数。在这种情况下,检查点应该在纪元2之前被证明是正确的。检查点可以在其当前纪元中被证明是正确的,但是其完成至少需要在其后的纪元。.
区块的合理性有时可以在两个或更多个纪元之前完成。 Gasper论文讨论了这些情况。仅在高延迟,网络分区或强烈攻击的特殊情况下才可以使用它们.
对于以太坊区块链的分片和各方来说,拥有交易的保证至关重要。最终确定性通过跨分片通信降低了复杂性。如果没有确定性,则分片内和跨分片的级联交易回退将是破坏性的,并且可能使分片的利益无效.
证明:细看
证明同时包含LMD GHOST投票和FFG投票。最佳情况下,所有验证者每个纪元提交一份证明。证明有32个插槽机会包含在链上。这意味着验证者可能在单个纪元中链上包含两个证明。当验证者的证言包含在指定位置的链上时,他们将获得最高的奖励;后来的包容是一种递减的奖励。为了让验证者有时间进行准备,他们需要提前一个时期分配给委员会。提案人仅在纪元开始后才分配给广告位。尽管如此, 秘密领导人选举 研究旨在减轻提议者的攻击或贿赂.
委员会允许对技术进行优化,以将每个证明者的签名合并为单个汇总签名。当同一委员会中的验证者对LMD GHOST和FFG进行相同的投票时,其签名可以汇总.
信标链验证器奖励和处罚
不必太深入,我们将讨论有关验证者激励的六个主题:
- 证明者奖励
- 证明人处罚
- 风险承担者的典型下行风险
- 大幅削减和举报人的奖励
- 提议者奖励
- 停工处罚
验证者在做出其他大多数验证者都同意的证明(LMD GHOST和FFG投票)时会得到奖励。在eth2阶段1中,验证者还将获得交叉链接的奖励。奖励在结块完成时固化.
另一方面,验证器因未证明或证明未完成的区块而受到惩罚.
在概述不太常见的惩罚和奖励之前,您可能想知道成为赌注者的下行风险。作为一个担心您可能损失多少ETH的风险承担者,它是您可以赚取多少的镜子。如果验证者在一年内能赚取10%的报酬,那么(诚实的)验证者如果做得最糟糕,就会失去10%的报酬。例如,始终离线的验证者或始终对未最终确定的区块进行投票的验证者,将受到因最终确定的守时证明而获得的验证者奖励的金额。.
大幅削减的惩罚范围是从超过0.5 ETH到验证者的全部股份。对于提交 严厉的进攻 验证者至少会失去其余额的1/32并被停用。验证器将被罚款,好像它在8 192个时代一样处于脱机状态。该协议还基于几乎在同一时间削减了多少其他对象而施加了额外的罚款。额外罚款的基本公式是:validator_balance * 3 * fraction_of_validators_slashed。结果是,如果所有验证者中有1/3犯有严重的罪行,他们将失去全部平衡。报告严重攻击的验证者将获得举报人的奖励.
最终确定区块的提议者将获得可观的回报。一直在线上都表现出色的验证者,其提出区块的总奖励提高了约1/8。当发生大幅削减时,提议者还可以通过将大幅削减的证据包括在一个区块中而获得少量奖励。在eth2阶段0中,举报人的所有奖励实际上都交给了提议者.
以太坊2.0是一个具有许多机制的系统,其中一些可以通过其整体效果得到更多理解。设计的奖惩措施最终导致 停工处罚. 基本上,如果自确定性以来已存在四个以上的纪元,则所有验证器的不活动性损失将成倍增加,直到确定检查点为止。不活动的罚款保证了这种结果:如果50%的验证者下线,封锁将在21天后重新开始.
严重罪行
验证者有三个大幅削减条件。可以将它们描述为重复提案,FFG两次投票和FFG围棋投票。 LMD GHOST投票不可削减.
一种 双重建议 是一个提议者,为其分配的插槽建议一个以上的块.
一种 两次投票 是一个验证人,它为同一目标投了2张FFG票,但来源不同.
一种 环绕投票 是一个验证者,其投票结果是围绕FFG投票,或者被他们之前进行的FFG投票所包围。这是两个示例,基于以下场景:验证者在时代5中进行了FFG投票,投票源为插槽32,目标为插槽128:
- 在时代6中,FFG投票的来源为64号槽位,目标为96号槽位,这将是 被…围绕 他们的时代5投票.
- FFG投票会在第6阶段中以0号广告位和160号广告位为目标 环绕 他们的FFG在时代5投票.
在目标6的第6个时代进行的FFG投票将是两次投票,并且可以进行投票,除非来源是第32插槽。相同的FFG投票是不可削减的。.
具有相同出处的两张FFG票绝对不可砍价。这对于活泼很重要。例如,如果有两个分叉,每个分叉都支持约50%的验证者余额,则协议需要鼓励(而不是惩罚)验证者通过对同一来源和不同目标进行投票来切换分叉。验证者可以在叉子之间安全地切换,以尝试达到 ⅔ 多数.
举报人需要包含有争议的选票,以证明应该大幅削减其他验证人。在大型历史中有效地发现有争议的表决是算法和数据结构的挑战。这 大幅提高探测器的开放性工程挑战 正在寻找贡献者.
验证程序完全可以控制,以免被大刀阔斧:它只需要记住已签名的内容即可。诚实的验证者不能被其他验证者的行为大刀阔斧。只要验证者没有签署有冲突的证明或提议,验证者就不能被削减.
验证者客户端可能将多个信标节点用于诸如更好的正常运行时间,信任和拒绝服务保护之类的因素。在这些设置中,或者在使用备份验证器客户端的位置,用户需要注意验证器不会对冲突消息进行签名.
信标链验证器激活和生命周期
每个验证器都需要余额为32 ETH才能被激活。用户在以太坊主网上存入32 ETH的入金合同,将激活一个验证器.
信标链退出(停用)所有余额达到16 ETH的验证器;放款人将能够提取任何剩余的验证者余额,但不能在eth2阶段0中提取.
验证者还可以在服务9天内(约2,048个纪元)后自愿退出。退出时,放样者可以撤回放样之前要有四个时期的延迟。在四个时期内,仍然可以捕获并削减验证器。然后,诚实验证者的余额可以在大约27小时内提取。但是,如果验证者遭到大幅削减,则放款人必须等待8,192个纪元(约36天)才能撤回.
有关更多技术细节,请参见 关于以太坊2.0阶段0验证程序生命周期的说明 包括以下流程图:
为了避免在短时间内验证器集发生大的更改,有一些机制限制了在一个纪元内可以激活或退出多少个验证器。例如,这些使快速激活许多验证器以攻击系统变得更加困难.
信标链使用更深层的有效余额概念,其变化比验证者余额少,并且可以进行技术优化.
包起来
在每个时期,验证者均会在各个时段平均分配,然后再细分为适当规模的委员会。验证者只能在一个位置和一个委员会中。集体:
- 一个时代中的所有验证者都试图敲定相同的检查点:FFG投票
- 分配给插槽的所有验证者均试图对同一信标链头进行投票:LMD GHOST投票
- 分配给委员会的所有验证者都试图使特定分片相互链接
最佳行为会使验证者获得最大回报.
信标链的激活至少需要至少16,384个验证器。验证者的数量可以随着斜线或自愿退出的减少而减少,或者放样者可以激活更多的内容。随着系统逐步升级到eth2阶段1和更高版本,预计将有更多的验证器。信标链至少需要262,144个验证器(超过800万个ETH被抵押)才能具有包含64个交叉链接的区块.
以前,全球从未有过适用于去中心化系统和应用程序的可扩展平台。如果您想深入研究,请参考权威参考 以太坊2.0规格. 它包括信标链规范,到其他关键资源的链接以及赏金问题。当前,最紧迫的需求是 对等网络. 贡献或推荐他人 挑战, ethresear.ch或以太坊魔术师的论坛,并成为创造历史的一部分!
订阅ConsenSys新闻
直接在收件箱中获取最新的以太坊2.0新闻和解释器. 订阅 以太坊2.0通讯订阅我们的时事通讯以获取最新的以太坊新闻,企业解决方案,开发人员资源等信息。网络研讨会
如何构建成功的区块链产品
网络研讨会
如何设置和运行以太坊节点
网络研讨会
如何构建自己的以太坊API
网络研讨会
如何创建社交令牌
网络研讨会
在智能合约开发中使用安全工具
网络研讨会