ONS:深度丨以太坊 2.0 的信标链究竟是什么样的?_ETH2

作者:ConsenSys

翻译:凌杰

来源:加密谷

您需要了解的有关分片(shards)、质押验证者(stakingvalidators)、证明(attestations)、委员会(committees)、检查点(checkpoints)和最终性(finality)的所有信息。

还记得当你刚初窥区块链奥秘的喜悦吗?您是否渴望对信标链有类似的了解?以太坊的信标链是以太坊系统的核心,然而关于该系统的大多数内容都过于技术性、针对性或不够深入。

在这里,你可以充分理解信标链的元素和运行机理。在关键细节上会运用例子帮助你更好理解并节省时间。我们假设你有坚实的以太坊或比特币基础知识,并对权益证明有所了解。让我们来深入了解一下分片(shards)、质押验证者(stakingvalidators)、证明(attestations)、委员会(committees)、检查点(checkpoints)和最终性(finality)。

分片:宏伟蓝图

在理解信标链之前,介绍一下分片会有所帮助。目前包括以太坊在内的公链在可扩展性方面面临的主要问题是:每个节点都要验证并执行所有交易。在计算机科学中,有两种主要的扩展方法:垂直扩展:使节点越来越强大。水平扩展:添加更多的节点。为了实现去中心化,区块链需要进行水平扩展。以太坊2.0的一个目标是让节点在消费级硬件上运行。分片是对数据库进行水平扩容的方法。通常,一个分片链都有一个节点子集来处理它。验证者被分配到不同的分片链上,并且只处理和验证该分片链中的交易。

以太坊分片上的节点子集是动态的,逐块对其进行处理。

区块链实行分片机制的主要挑战在于如何确保分片安全性。由于验证者分散在不同的分片中,有的节点可能会恶意控制某个分片。解决方案的关键是:

随机分配验证者,即每个分片区块都有一个随机选择的验证者委员会,确保如果攻击者控制的验证者少于总数的三分之一,其想要攻击单个分片在数学上是不可能的。

欺诈证明,数据托管证明(custodyproofs)和数据可用性检查(dataavailabilitychecks)也是重要的安全组件。目前的eth2计划是使用64个分片。虽然分片与信标链是独立运作,但我们还是会对整个系统的关键部分进行讲解。

分片已经揭示了以太坊信标链的作用和需求。我们也理解为什么要在传统区块链上增加新的元素。分片式公链的新兴领域总是欢迎有灵感的开发者创新。

以太坊2.0阶段

简而言之,以太坊2.0分为三个阶段:

阶段0-信标链

阶段1-分片

阶段2-执行

与管弦乐队乐队进行类比:

阶段0-指挥

阶段1-乐器

浩云科技回复深交所:兆物信连在区块链核心技术指标上有领先优势:3月17日消息,日前,深交所向浩云科技下发问询函,要求浩云科技说明认为兆物信连是“国际领先的区块链底层技术服务商”的原因及相关依据,信息披露是否审慎合理,是否误导投资者。对此,浩云科技在3月17日披露的问询函回复公告中表示,兆物信连全资子公司湖南宸瀚信息科技有限责任公司成立于2015年,为中国高科技产业化研究会区块链产业联盟常务理事单位等。兆物信连区块链底层平台MT在10分片纯性能测试情况下,其TPS(注:每秒系统处理的交易数量)约为240万次。对比国际上知名的Hyperledge Fabric以及国内的头部企业,兆物信连在区块链核心技术指标上有领先优势。浩云科技认为,公司信息披露审慎合理,不存在误导投资者的情形。不过,其也指出,目前,国内联盟链主要厂商为蚂蚁金服、腾讯、京东、百度等企业,随着更多企业加入,市场竞争日趋激烈。(新京报)[2020/3/17]

阶段2-乐手

所有阶段都是系统的重要组成部分,具有不同的特点。阶段0是以太坊2020年计划的一部分。阶段1一般来说比其他阶段更静态。阶段2一般是关于执行和代理的。

时隙(slots)和时段(epochs)

信标链是以太坊2.0的心脏。它为系统的和谐与共识奠定了节奏。每个时隙是12秒,一个周期是32个时隙:6.4分钟。

时隙(slots)是一个将区块添加到信标链和分片的机会。您可以想象,信标链和分片链是按步调编排的。当系统以最佳状态运行时,每12秒添加一个信标块和64个分片区块。验证程序需要与该时间同步。时隙(slots)类似于区块生产时间,但时隙(slots)可以是空的。信标链和分片的创世区块都在时隙0中产生。分片将在信标链时段0(Epoch0)的下一个时段开始运作,但无论是分片链还是信标链,都有自己的时段0(Epoch0),且包含其创世区块。

验证者、证明和信标链

虽然工作证明与矿工相关联,但在以太坊2.0中,验证者是权益证明的"虚拟矿工"。验证者积极参与以太坊2.0协议的共识。他们的激励机制将在后面的信标链验证者奖惩制度中讨论。

区块打包者是被随机挑选出来生产区块的验证者。大多数情况下,验证者是对信标块分片区块进行投票的证明人。这些投票记录在信标链中。投票决定信标链和分片的头部。

在每一个时段中,验证者被随机分配到一个时隙和分片中。该验证者参与到他所被分配的分片的共识中,从而他可以对该分片的分片头部进行投票。然后验证者将该时隙(slot)上的分片头和信标区块连接起来。

动态 | Libra技术指导委员会将于2020年第一季度发布技术治理框架:Facebook 领导的稳定币项目 Libra 发布最新公告宣布,其技术指导委员会 TSC 将在 2020 年第一季度发布技术治理框架及其相关文件,包括开源社区针对网络的技术升级如何进行提案的流程,以及评估这些提案的一系列透明流程。Libra 技术指导委员会 TSC 于 2019 年 12 月 16 日由 Libra 协会理事会投票决定成立,包括五名成员,分别是加密货币托管服务 Anchorage 联合创始人兼总裁 Diogo Monica、Calibra 核心产品负责人 George Cabrera III、Bison Trails 首席执行官兼创始人 Joe Lallouz、联合广场风投合伙人 Nick Grossman 和慈善组织 Mercy Corps 新兴技术总监 Ric Shreves。[2020/1/17]

证明是验证者的投票,通过验证者的余额进行加权。除区块之外,证明也会由验证者在系统中进行广播。

验证者也会互相监督,对举报其他验证者进行矛盾的投票或提出多个区块的验证者给予奖励。

信标链的内容主要是验证者地址、每个验证者状态、证明和到分片的链接。验证者由信标链激活,可以转换状态,这部分内容稍后将在信标链验证激活和生命周期中简要描述。

质押验证者:语义

验证者是虚拟的,是由质押者激活的。在PoW中,用户购买硬件成为矿工。在以太坊2.0中,用户质押ETH以激活成为验证者。我们可以将质押者和质押金,验证者和余额联系起来。每个验证者拥有的余额最多为32个ETH。不过,质押者可以质押他们所有的ETH。每质押32个ETH,就会激活一个验证者。

验证者通过利用信标节点的验证者客户端运行。一个信标节点具有跟踪和读取信标链的功能。一个验证者客户端可以实现信标节点功能,也可以对信标节点进行调用。一个验证者客户端可以执行一个或多个验证者。

交联:将分片连接到信标链

交联是将信标链和分片链相连。在一个交联中,信标链紧跟分片链的头。由于有64个分片,每个信标块可以包含最多64个交联。一个信标块可能只有一个交联。eth2第1阶段计划进行交联,将分片链连接到信标链,作为分片叉选择、分片链最终性和交叉分片通信的基础。所有分片链在任何时候都紧跟信标链。

委员会:介绍

一个委员会就是一组验证者。为了安全起见,每个slot的委员会都有至少128个验证者。恶意攻击者控制一个委员会的2/3的概率不到万亿分之一。以太坊信标链的概念来源于随机信标——为公众散发随机数这一概念。信标链在一个随机的过程中达成共识。

RANDAO随机过程根据验证者余额的权重,选择区块打包者。验证者可能是同一slot的提议者和委员会成员,但这不是常态。出现这种情况的概率为1/32,因此我们大概会在每个epoch碰到一次。上图情景中的验证者不到8192个,不然每个slot就至少包含两个委员会。

声音 | 彭博社:BTC处于超卖区域,GTI关键技术指标自2018年末以来首次发出买入信号:据彭博社报道,GTI全球强度指标显示,BTC目前处于超卖区域。该指标自2018年12月末以来,首次发出买入(看涨)信号。并且,BTC若能稳在8000美元以上,这是另一个展示其价格强势的迹象。彭博资讯分析师Mike McGlone表示,“比特币的成熟过程将在年底加速,因为其处在一个更温和的价格升值过程中,波动性将下降。”(dailyhodl)[2019/10/6]

这篇信标链的解释主要是关于信标链委员会:服务于信标链的验证者。一个委员会被随机地分配了一个分片,以便交叉链接到一个信标区块。没有固定的委员会。负责交联一个区块的委员会随每个区块的变化而变化。单独构建区块链区块的分片链委员会将留作日后讨论。许多分片区块可以由不与信标链交互的分片链验证者来构建,但是,一个分片要想与其他分片进行通信,就需要一个信标链委员会将其与信标区块进行交联。

该图是对三个slot中发生的情况的描述。

在slot1中,一个区块被提出,然后由两个验证者验证,而委员会A中的一个验证者离线。slot1的验证和区块在网络中传播并到达许多验证者。

在slot2中,一个区块被提出,而委员会B中的一个验证者没有看到它,因此它证明信标链头就是slot1的块。注意这个验证者与slot1中的离线验证者不同。证明信标链头的验证者被称为LMDGHOST投票。在Slot3中,委员会C中的所有验证者都运行LMDGHOST分叉选择规则,并独立地验证同一个头。

在每个epoch中,验证者只能在一个委员会中。通常,有超过8,192个验证者:即每个slot有多个委员会。所有委员会的规模相同,并且至少有128个验证者。当验证者者少于4,096时,安全概率会降低,因为委员会的验证者少于128个。

委员会(Committees):关键

在每个epoch中,验证者被均匀地划分为各个slot,然后再细分为适当大小的委员会。来自该slot的所有验证者都对信标链头进行验证。该slot中的每个委员会都试图交叉连接一个特定的分片。随机分配(shuffling)算法会按比例增加或减少每个slot的委员会数量,以使每个委员会至少得到128个验证者。

举个例子,假定有16384名验证者,其中512名验证者被随机分配到slot1中,另外512名被分配到slot2中,以此类推。slot1中的512名验证者被进一步分成4个委员会,并被随机分配到分片中。假设分片33、55、22、11是这四个委员会所分配到的分片。所有512名验证者都要在slot1中发起LMDGHOST投票;其中一个委员会的128名验证者试图和分片33产生交联;另一个委员会的128名验证者试图与分片55产生交联;剩余两个委员会则试图与分片22和分片11产生交联。在slot2中,这个过程会重复一遍,512名验证者同样分成4个委员会,然后被随机分配到分片中。假定他们被分配到分片41、20、17、15中。所有的512名验证者都要在slot2中投票选出信标链头;同时这几个委员会也试图与分片41、20、17、15产生交联。这个过程也会在该epoch剩下的slot中再三重复。每个验证者在自己所处的slot中,可以进行投票、证明以及交联。在该epoch结束之后,所有16384名验证者都已发出过投票并且和分片进行过交联。

声音 | Josh Rager:技术指标信号确认牛市:加密货币分析师Josh Rager 5月28日发推表示:“BTC的3天顾氏均线流翻绿。我已经等了几个星期这个信号出现来确认牛市趋势。1天顾氏均线流翻绿可能是假信号,但是3天顾氏均线流翻绿是一个很好的延续信号,建议逢低买入。要记得,上一次BTC历史价格的3天顾氏均线流的最后一次翻绿导致了之后长达25个月的上升趋势。”[2019/5/28]

但到目前为止,验证者投票都是特定于slot而不是特定于epoch的。这就像给当地政府投票,而不是在更广泛的全国选举中投票。所有的验证者都没有对同一件事进行投票。接下来关于检查点(checkpoints)和最终性(finality)的部分,描述了验证者投下的特定于epoch的选票。在指定的时间段,所有的16,384个验证者也将对epoch的检查点进行投票。

信标链检查点

检查点(checkpoints)是位于epoch第一个slot里的区块。如果这个slot内没有产生区块,则最近的前一个区块即为检查点。每个epoch都会有一个检查点区块;一个区块可能同时是多个epoch的检查点。需要注意的是,从slot65到slot128之间是空缺的。Epoch2的检查点本来应该是位于slot128。但因为该slot丢失了,所以epoch2的检查点还是slot64处产生的区块。Epoch3同理,slot192处空缺,因此epoch3的检查点为slot180处产生的区块。时段边界区块是一些文献中用到的一个术语,可以认为是检查点的同义词。在发起一次LMDGHOST投票时,验证者也要为最近的epoch的检查点投票,投票者希望确立的新检查点叫做“目标检点”。这种投票叫做CasperFFG投票,而且投票中也会包含投票者认定的上一个检查点,叫做“来源检查点”。在上图中,epoch1中的一个验证者的投票将创世块作为来源检查点,然后推举slot64处产生的区块为目标检查点。在epoch2,同一个验证者又为相同的检查点投票了只有被分配到某个slot的验证者才需要为该slot的区块投票,但是,所有验证者都要为每一个epoch的检查点发起FFG投票。

绝对多数

由所有活跃验证者总余额的2/3所支持的投票内容就是绝对多数。举例说明,假设有三个活跃的验证者:两个验证者的余额为8ETH,一个验证者的余额为32ETH,绝对多数投票必须包含拥有32个ETH验证者的投票:尽管其他两个验证者的投票可能与该验证者不同,但它们没有足够的余额形成绝对多数。

最终性

当一个epoch结束之后,如果其检查点得到了2/3余额的票数,也就是形成了绝对多数,那么该检查点就被证明(justified)了。如果检查点B已经被证明,且位于其下一个epoch的检查点也被证明了,那么B就被最终确定了(finalized)。一般来说,一个检查点会在两个epoch内得以最终确定,即12.8分钟。

动态 | 英特尔技术主管将担任Hyperledger技术指导委员会主席:据coindesk消息,英特尔技术主管Dan Middleton被选为Hyperledger技术指导委员会(TSC)主席,他将接替来自IBM的Christopher Ferris。[2018/9/7]

平均来看,用户的交易总是发生在一个epoch的中间部分,那么距下一个检查点就还有半个epoch的时间,因此,一笔交易经过2.5个epoch就可以得到最终性。理想化情况下,超过2/3的证明会在一个时段的前22个slot内完成打包。因此,交易确认的平均时长是14分钟。区块确认则从区块证明,到被证明,再到最终性。用户可以自己选择是否等待交易最终确定,或者较低一点的安全性对他们也足够了。

信标链头发生了什么?

一个时段边界区块(EBB)在slot96处被提议,且包含了对epoch2中检查点的证明。Epoch2检查点的证明投票现达到了2/3的绝对多数,这意味着epoch2的检查点被证明了,因此epoch1的检查点也得到了最终性。slot32的最终性保证了之前所有区块的最终性。当对检查点进行确定时,对确定的区块的数量并没有限制。虽然最终性仅在时段边界的时候产生,但证明(attestations)是逐个区块累加的,下文的“从创世区块到区块链头会发生什么”提供了另一种描述。从slot1到slot32的信标块中包含的所有交联将导致分片链的确定。换句话说,当一个分片区块被交联到一个完成的信标块中时,它就得到了最终性。交联本身不足以使分片区块被确定,但有助于分片链的分叉选择。

从创世区块到区块链头会发生什么

用同样的方法,我们可以从创世区块发现一条故事线。从slot1到slot63的所有提议者都提议了一个区块,并且这些区块都被添加到链上。对于Epoch1中的每个块,它的检查点(在Slot32处的块)累积了55%的验证者证明。验证者提议slot64的区块的同时也包括了Epoch1检查点的认证。现在,70%的验证者已经验证了Epoch1检查点:这导致了它被证明。epoch2的检查点(slot64)在epoch2的证明达不到2/3的绝对多数。验证者在slot96处提议区块时,同时也对epoch2处的检查点发起投票,所以这时候,epoch2检查点的投票达到了2/3的多数要求,也就是被证明了。Epoch2的检查点被证明的同时,epoch1的检查点以及所有此前的区块被最终确定了。

还有一种可能性,我们只考虑到epoch1。epoch1的检查点可能在epoch2提议之前已经获得了绝对多数投票。譬如说,当slot32和slot54的区块被提议出来时,slot32的检查点的证明投票可能已经达到多数要求了。因而在这种情况下,检查点可能在epoch2之前就已经被证明了。最后一点,检查点可以在它现在的epoch中被证明,但是至少隔一个epoch才能被最终确认。有时,一个区块被证明意味着两个甚至多个epoch以前的区块被最终确定。Gasper论文里讨论了一些情形,只有在网络高延迟、网络隔离或遭遇强大攻击的情况下会出现这种状况。对于分片及以太坊区块上的用户来说,最终性是非常重要的,它保证用户们的交易安全,降低了跨分片通信的复杂性。如果没有最终性,分片内部和分片之间的交易回滚会具有破坏性,甚至会使分片的好处作废。

证明(attestations):细究

证明包含一个LMDGHOST投票和一个FFG投票。理想情况下,每个epoch中所有验证者提交一份证明。每一个证明有32个slot的机会被打包进链,这意味着在单个epoch,一名验证者可能有两份证明被打包上链。如果验证者在其所分配的slot里发送证明,且该证明被打包上链,那么验证者获得的奖励为最大值;随后打包上链所获得的奖励就会不断减少。为了留给验证者准备的时间,他们被提前一个epoch分配到委员会中。一旦epoch开始,提议者只会被分配到各slot中。尽管如此,秘密领导人选举旨在降低攻击和贿赂提议者的风险。委员会使得联合签名的技术达到最优化状态,将每一名证明者的签名聚合成一个签名。当同一委员会中的验证者进行相同的LMDGHOST和FFG投票时,他们的签名可以被汇总。

信标链验证者奖惩机制

证明者奖励

证明者惩罚

质押者特有下行风险

罚没和举报者奖励

提议者奖励

不作为惩罚

当验证者做出大多数其他验证者都同意的认证(LMDGHOST和FFG投票)时,他们就会得到奖励。在eth2第一阶段,验证者也会因为交叉链接而得到奖励。当区块最终确定,奖励也随之确定。另一方面,如果验证者没有提交证明,或者投票支持了一个最终不能得到确定的区块,他们也会受到惩罚。在描述相对来说不那么常见的奖惩制度之前,你可能想知道成为一名质押者所面临的下行风险。

作为一名质押者,损失ETH的风险与回报并存。如果一名验证者在一年中能赚取10%的报酬,那么一名(诚实)验证者因为工作糟糕则可能面临10%的损失。比如说,一名验证者总是不在线,或者其投票的区块总是无法被最终确定,他将会受到惩罚,而罚款数额等于一名验证者投出有效区块所获得的奖励数额。罚没的力度下至0.5ETH,上至一位验证者的全部权益。一名验证者如果受到了罚没(slashing)惩罚,其将至少损失余额的1/32,并被停止工作。惩罚的力度就像该验证者离线了8192个epoch一样。协议还会根据相近时间内被罚没的验证者数量施加一个额外的惩罚。

此种额外惩罚的计算公式是:验证者余额×3×被罚没的验证者占比。

也就是说,如果1/3的验证者同时受到了罚没,他们会损失所有余额。而对罚没行为举报成功的验证者,则可以获取检举者奖励。区块一旦得以最终确定,区块打包者便可以获得相当可观的奖励。一直在线且很好完成工作的验证者提议的区块所能获得的奖励将提高1/8。如果发生罚没行为,提议者还可以将罚没证据打包进区块,从而获得少量报酬。在eth2阶段0,所有举报者的奖励实际上都归于提议者。以太坊2.0系统有许多机制,对这些机制的评价应从所有机制的整体效果出发。奖惩制度的最后一是不作为的的惩罚。简单来说,如果有超过4个epoch没有获得最终性,那么所有验证者都要受到翻倍的不作为惩罚,直到下一个检查点被最终确定。不作为惩罚设立的意义在于:如果50%的验证者掉线了,在21天后会重新对区块进行最终确定。

罚没对于验证者来说,罚没条件主要有三个,分别是:双重提议、FFG双重投票,FFG环绕投票。LMDGHOST投票是不会招致罚没的。双重提议(doubleproposal)指一名区块打包者在他所分配到的slot里提议多于一个区块。双重投票(doublevote)指验证者在提交FFG投票时,多个投票指向同一个目标检查点,但引用的来源检查点却各不相同。

环绕投票(surroundvote)指验证者在提交FFG投票时,多个投票所指向的检查点恰成环绕形状。下面有两个例子,背景是一名验证者在epoch5内,为slot32处的源检查点和slot128处的目标检查点发起了一次FFG投票:

在epoch6内,为slot64处的源检查点和slot96处的目标检查点发起的FFG投票,被其在epoch5中的投票环绕。

在epoch6内,为slot0处的源检查点和slot160处的目标检查点发起的FFG投票,则环绕了其在epoch5中的FFG投票。

在epoch6内,针对slot128目标检查点的FFG投票是双重投票,除非slot32为源检查点,否则要受到罚没。相同的FFG投票不会遭到罚没。拥有相同来源检查点的FFG投票也不会招致罚没。这是维持网络活性的重要条件。举个例子,如果两条分叉链各自都有50%的验证者余额支持,协议应该鼓励验证者通过投票给相同来源检查点、不同目标检查点,在分叉间切换。能够安全地在分叉间切换,验证者们就能打破僵局,尝试形成2/3的多数。

一名举报者者提出举报时,需要打包冲突投票的相关信息来证明该验证者应受到罚没。要在一个庞大的记录系统里,有效地找出冲突投票,是对算法和数据结构的一项巨大挑战。目前“罚没检测工程挑战”正在寻求参与者。验证者完全有能力使自己避免被罚没:只需要记住其对哪些证明和提议进行了签名。一名诚实的验证者不会因为其他验证者的行为而受到罚没。只要验证者没有对冲突的证明或提议进行投票,就不会受到罚没。

一个验证者客户端可以运行多个信标节点,从而延长系统的正常运行时间、增强信任和DoS攻击抵御。在运行节点或是运行备份验证者客户端时,用户需要注意,验证者有无对冲突的信息进行签名。信标链验证者和生命周期(BeaconChainValidatorActivationandLifecycle)每一个想成为验证者的用户都要先有32ETH才能获得验证者资格。用户质押32ETH到以太坊主网上的保证金合约中,就能获得一个验证者资格。另一方面,信标链也会劝退所有余额降低到16ETH的验证者;质押用户可以取出剩余的验证者余额,不过在Eth2Phase0还做不到。验证者在服务2048个epochs之后也可以主动退出。退出时要先走完4个epoch,质押用户才能取出自己的权益。在这4个epoch内,该验证者的余额仍然是可以被罚没的。因此,诚实验证者的余额可以在约27小时之后取出。"以太坊2.0阶段0验证者生命周期"中有更详细的技术说明,内含以下示意图:

为避免验证者集合在短时间内出现大规模的变动,单个epoch内能激活和退出的验证者数量是有一个机制限制的。这样可以让激活许多验证者、快速攻击系统的攻击更难发动。信标链还使用了一个叫做“有效余额”的概念,这个有效余额回避验证者余额的变化更小,使得技术上的最优化成为可能。

总述:

在每一个时段,验证者都被均匀分配到不同slot中,并进一步划分成相同规模的委员会。验证者只有1个应召的slot,也只会存在于1个委员会中。因此:

同一个epoch里的所有验证者尝试最终确定同一个检查点:这是FFG投票;

所有验证者被分配到一个slot中,尝试投票选出同一个信标链头:这是LMDGHOST投票;

所有验证者被分配到一个委员会中,尝试交联某个分片;

采取最优行为的验证者获得的奖励最多。激活信标链至少需要16,384个创世验证者。验证者的数量可能会因为罚没或者自动退出而减少,也会随质押者的激活而增加。当系统升级到eth2阶段1或以上时,将需要更多的验证者工作。信标链需要至少262,144个验证者(质押金额将超过800万ETH)来生产区块,每个区块包含64条交联。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-9:824ms