还记得自己第一次对区块链世界发出 “原来如此” 感叹时候的喜悦吗? 想不想对信标链(Beacon Chain)也有这么透彻的理解? 信标链是整个 Eth2 系统的核心;但关于信标链的内容,大多都仅仅是在搬弄技术词汇,很琐碎,也不够深刻。 在这里,我们会提供对信标链诸要素和机制的透彻解读。我们也会提供例子,恰如其分地点出关键细节,使你能事半功倍。 我们假定,你已经拥有对以太坊区块链或者比特币区块链的坚实理解,也熟悉权益证明(Proof of Stake)。 先来看看分片(shard)、验证者(staking validator)、见证消息(attestation)、委员会(committee)、检查点和最终确定性(finality)所组成的全景。 分片:远大理想 要理解信标链,先了解一下分片的概念会有所帮助。区块链(包括以太坊)当前在提高可扩展性(scalability)上面临的主要难题是:每个节点都必须验证和执行所有交易。 而从计算机科学的角度来看,要扩展吞吐量,主要有两种办法: A. 垂直扩展:大意是加强节点,让节点变得越来越强大。 B. 水平扩展:大意是,加入更多节点。 为了去中心化,区块链系统只能水平扩展。以太坊 2.0(也叫 Eth2 或者 Serenity)的其中一个目标是,让普通的消费级硬件就能运行节点。分片这个术语的本意,就是对数据库进行水平分区(horizontally partitioning)。 基本上,一条分片链会由一部分节点(即全网节点的一个子集)来处理。而系统中的虚拟矿工,验证者(validator),会被分配到不同的分片上,仅仅处理和验证自己所在分片链上的的交易。 在这个系统中,按块处理某个分片的节点群是会不断更换的。 要对一个区块链系统做分片,主要的挑战就是分片的安全性。因为验证者分散在各个分片上,恶意验证者攻陷单个分片的难度会降低。 因此,分片解决方案的关键是:随机混洗验证者,让每个分片区块都由一组(伪)随机选出的验证者所组成的委员会来处理,使得一个所控制权益少于全体验证者权益 1/3 的攻击者的成功概率为 0(mathematically improbable)。 错误性证明(fraud proof),数据托管证明(custody proof)和数据可用性检查(data availability check)同样也是重要的安全组件,但要专门写文章才能解释清楚。 Eth2 现在的计划是启用 64 个分片。虽然分片跟信标链在概念上是相互独立的,我们还是准备讲讲整个系统的一些关键元素。 分片概念反映出了信标链的功能和需要;通过分片这个概念,我们可以理解为什么需要在传统的区块链系统中加入这些额外的部分。这个全新的领域也欢迎有所感悟的读者提出创新。 以太坊 2.0 各阶段 以太坊 2.0 会分三个阶段部署: Phase 0:信标链Phase 1:分片Phase 2:执行可以类比为人体的三个部分:Phase 0:心脏Phase 1:四肢Phase 2:大脑也可以类比为一支气势磅礴的管弦乐团:Phase 0:指挥家Phase 1:乐器Phase 2:乐手每个阶段都会整合到系统中,分别担任不同的角色。比起其它阶段,Phase 1 所引入的功能会更加波澜不惊,而 Phase 2 会更关乎执行。时隙和时段(Slot and Epoch) - 时段 0 的 32 个时隙。创世块就在时段 0 产生 - (本文中所用的参数数据都来自信标链技术规范 v0.10.1)时隙是用来标记产生信标链区块及分片区块的机会的:在信标链和各分片上,每一个时隙就有一次产生新区块的机会。你可以想象信标链和各分片链是精心设计、紧密同步的。理想情况下,每 12 秒,就会产生 1 个信标链区块,和分布在不同分片链上的 64 个分片区块。验证者之间确实需要在时间上达成同步。因此,时隙就像区块时间一样,只不过,时隙也有可能出空块。信标链和分片链的创世块是在时隙 0 时产生的;不过,各分片链会在信标链的时段 0 完成之后才开始运行,而且各有各的时段 0(产生创世块的起点)。 验证者、见证消息以及信标链 - 在某个时段的第 28 个时隙处,没有出现相应的区块提议(被分配为提议者的验证者因为一些原因而没有提出区块)- 在一个时段中,一名验证者会被伪随机地分配到一个时隙和一个分片上。该验证者会参与被分配到的分片的共识过程,以投票选择出所在分片的最新区块。验证者也会在一个时隙内把最新区块链接到信标链区块上。所谓见证消息(attestation),就是一名验证者发起的投票,其权重由验证者的余额决定。见证消息会被验证者附加到区块内,随着区块一起传播。验证者之间还会互相监督,可以报告其它验证者做出互相冲突的投票或者提议多个区块的不轨行为,如果报告属实则可以得到奖励。信标链的主要内容就是一份验证者地址的注册表、每个验证者的状态、见证消息、以及链接到分片的信息。验证者在参与前需经过信标链激活,也可以转变自己的状态,在下文的 “信标链验证者激活及生命周期” 部分有述。 参与质押的验证者:术语含义 在工作量证明区块链上,用户成为矿工的方式就是控制硬件参与共识。而在以太坊 2.0 中,用户可以通过质押 ETH 获得验证者资格,并通过控制验证者来参与网络。所以说验证者是虚拟的,是由质押者来主动激活的。把质押者(staker)和权益(stake)、验证者和余额(balance)关联起来会更容易理解。每个验证者的余额最大为 32 ETH,虽然质押者可以把自己全部的 ETH 都质押进去。每存入 32 个 ETH,就可以获得 1 个验证者资格。验证者的运行靠的是验证者客户端,这种客户端会利用信标链节点来执行正常功能。信标链节点拥有追随信标链运作及读取信标链信息的功能。验证者客户端既可以自己运行信标链节点的功能,也可以连接到其他人的信标链节点。交联(crosslink):让分片扎根到信标链上 委员会简介 - 在每一个时段,伪随机过程 RANDAO 都会选出所有时隙的提议者,并且混洗验证者到不同的委员会去 - 验证者是由 RANDAO 以验证者的余额为权重选择出来的。一个验证者可能在一个时隙中同时又是提议者,又是委员会成员,但这并非常态。发生这种事情的概率是 1/32,所以我们估计每个时段会看到一次。上面这个示意图描绘的是验证者数量少于 8192 个时的情形,不然一个时隙至少会有两个委员会。本文着重考察的信标链委员会:为信标链服务的验证者。一个信标链委员会会被随机分配到一个分片上,在一个信标链区块链上产生交联。而且委员会成员不是长期不变的,负责产生交联的委员会都是逐块逐块替换的。仅仅为分片链产生区块的委员会留待日后解释。分片链验证者可能在不与信标链交互的情况下产生许多信标链区块,但是,如果一个分片要跟其它分片通信,它就需要信标链委员会把分片区块交联到一个信标链区块上。 - 协议假设验证者总是给自己认为是区块链顶端的区块投票 - 上面这个图片综合了三个时隙内产生的情况。在时隙 1,有验证者提议了一个区块,并且该块得到了两个验证者的见证;委员会 A 中的一个验证者离线了。在时隙 2,又有人提议了一个区块,而委员会 B 里面的一个验证者没有看到,所以其见证消息表示 TA 认为信标链的顶端(最新区块)仍然是时隙 1 处产生的区块。注意,这个验证者跟时隙 1 时的离线验证者不是同一个。对信标链顶端区块的投票称作 “LMD GHOST 投票”。在时隙 3,委员会 C 中的所有验证者都运行 LMD GHOST 分叉选择规则,并独立地投票同一个区块为信标链顶端。一个验证者在一个时段中只会参加一个委员会。一般来说,系统中的验证者会超过 8192 个,所以每个时隙会有多于一个委员会。委员会的规模都是一样大的,都至少有 128 个验证者。当系统中的验证者少于 4096 个时,安全性就会下降,因为委员会的规模将少于 128 个验证者。 委员会:关键 信标链检查点 检查点就是位于一个时段的第一个时隙内产生的区块。如果某个时段的第一个时隙内没有产生区块,则将最近的一个符合要求的区块认定为检查点区块。每个时段都会有一个检查点区块;一个区块有可能同时是多个时段的检查点。 - 单时段包含 64 个时隙时的检查点示意图 - 注意,从时隙 65 到时隙 128 之间都是空块。时段 2 的检查点本来应该是时隙 128 处产生的区块,但因为该时隙被跳过了,所以时段 2 的检查点仍然是时隙 64 处产生的区块。时段 3 也类似,时隙 192 被跳过了,因此将时隙 180 处产生的区块认作时段 3 的检查点。 时段边界区块(epoch boundary block)是一些文献(比如 Gasper 论文,也是上面这张示意图的来源)中用到的一个术语,可以认为是检查点的同义词。 在发起一次 LMD GHOST 投票时,验证者也要为最近时段的检查点投票,投票者希望确立的新检查点叫做 “目标检查点”(target)。这种投票叫做Casper FFG 投票,而且投票中也会包含投票者认定的上一个检查点,叫做 “来源检查点”(source)。在上图中,时段 1 中的一个验证者的投票将创世块作为来源检查点,然后推举时隙 64 处产生的区块为目标检查点。在时段 2,同一个验证者又为相同的检查点投票了。 只有被分配到某个时隙的验证者才需要为该时隙的区块投票,但是,所有验证者都要为每一个时段的检查点发起 FFG 投票。 大多数 由所有活跃验证者总余额的 2/3所支持的投票内容就是多数票。 我们举简单一点的例子来说明一下,假设有 3 个活跃验证者,两个的余额是 8 ETH,另一个的验证者余额为 32 ETH。那么,只有包含了那个最大验证者的投票才可能是多数票;虽然另外两个验证者可能都投了另一个检查点,但是他们的余额总和只占 50%,形成不了多数。 确定性 一个时段结束的时候,如果其检查点得到了 2/3 的总余额支持(形成了多数票),那么该检查点就被合理化(justified)了。 如果一个检查点 B 已经得到合理化,其下一个时段的检查点也被合理化了,那么 B 就被敲定(finalized)了。一般来说,一个检查点会在两个时段内得到敲定,大概就是12.8 分钟。 从平均的角度来看,用户的交易总是打包在一个时段的中间部分(的区块中);那么距下一个检查点就还有半个时段的时间,因此,一笔交易经过 2.5 个时段(16 分钟)就可以得到确定性(finality)。理想化情况下,超过 2/3 的见证消息会在一个时段的前 22 个时隙内完成打包。因此,交易敲定的平均时长是 14 分钟(16 + 32 + 22 个时隙)。区块确认则从区块见证消息,一步步升级到合理化,再到确定性。用户自己可以觉得他们要不要等到交易确定,还是更低一点的安全性就足够了。 - 时隙 64 处的检查点被合理化,同时敲定时隙 32 处产生的上一个区块 - 为简化叙述难度,下文假设所有验证者的余额都相同。 信标链的顶端 (上图中)时隙 96 处产生了一个时段边界区块,而且包含了对时段 2 检查点的见证消息(投票)。见证消息的数量达到了 2/3 的多数要求。然后时段 2 的检查点就得到了合理化,同时,上一个合理化的检查点,也就是时段 1 的检查点,就被敲定了。时隙 32 处的区块得到确定性,会使得之前所有区块都得到确定性。在敲定检查点的时候,并没有对同时得到敲定的区块在数量上的限制。所以,虽然确定性仅在时段边界的时候产生,见证消息是逐个逐个区块累加的,下文的 “从创世块到区块链顶端的历程” 部分提供了另一种描述。 从时隙 1 到时隙 32 的信标链区块所包含的所有交联,也会使分片链产生确定性。换句话来说,当一个信标链区块得到确定性时,该块所包含的交联所对应的分片链区块也得到敲定。交联本身不足以使一个分片区块得到敲定,只是对分片链的分叉选择有所帮助。 从创世块到信标链顶端的历程 用同样的办法,可以观察到从创世块开始的一条故事线。所有的提议者,从时隙 1 到时隙 36,一一提议了一个区块,而且这些区块都显现在链上。对于时段 1的所有区块来说,其检查点(时隙 32 处的区块)累积获得了 55% 的验证者的见证。在验证者提议时隙 64 处的区块时,它也纳入了对时段 1 检查点的见证消息。现在,有 70% 的验证者都见证了时段 1 的检查点,因此时段 1 检查点得到了合理化。完成时段 2 时,时段 2 的检查点(时隙 64 处的区块)累积的见证消息还达不到 2/3 的多数要求。时隙 96 处的区块在提议时,也纳入了对区块 2 检查点的见证消息,所以,这时候,时段 2 的检查点也达到 2/3 的多数要求,被合理化了。合理化时段 2 的检查点同时也会敲定时段 1 的检查点及所有此前的区块。 有时,合理化一个区块会敲定两个甚至多个时段以前的区块。Gasper 论文讨论了这种情况,预计只有网络高延迟、网络隔离、遭遇强大攻击者的极端情况下,才会出现这种事。 确定性对于分片及以太坊区块的用户来说是重中之重,因为确定性使他们能够确定,交易已经永远写在链上,不可更改了。确定性也降低了跨分片通信的复杂性。没有确定性,分片内部和分片之间交易的回滚会具有破坏性,甚至让分片的好处荡然无存。 深入理解见证消息 一条见证消息里面包括了一个 LMD GHOST 投票和一个 FFG 投票。理想情况下,所有的验证者每个时段都会发出一条见证消息。一笔见证消息有 32 个时隙的机会被打包到链上。这就意味着,一个验证者可能在单个时段内有两笔见证消息被打包上链。见证消息打包上链的时间也决定了验证者可得的奖励幅度:在自己所在的时隙就打包上链可以得到最多的奖励;要是等到后续时隙才打包上链,验证者得到的奖励就会下降。为了给验证者足够的时间来准备见证消息,他们会在一个时段以前就预先知道自己所在的委员会。区块提议者则仅在时段开始之时分配一次。此外,隐蔽领袖选举研究还致力于减轻对区块提议者的攻击和贿赂。 委员会机制使得汇总所有的见证人签名、变成单个聚合签名在技术上的优化成为可能。如果同一委员会中的所有验证者都作了同样的 LMD GHOST 和 FFG 投票,则他们的签名可以聚合起来(成为单个签名)。 信标链验证者奖惩措施 为避免过度深入,我们仅讨论验证者激励相关的 6 种措施: 见证人奖励见证人惩罚对质押者来说典型的贬值风险罚没(slashing)及举报人奖励区块提议者奖励怠惰惩罚(inactivity penalty)当期见证消息(包含 LMD GHOST 投票和 FFG 投票)与其它多数验证者一致时,验证者可以得到奖励。在 Eth2 Phase 1 阶段,验证者发送交联也可以得到奖励。当区块得到敲定时,验证者奖励也就确定下来了。另一方面,如果验证者没有提交见证消息,或者投票支持了一个最终不能得到敲定的区块,他们也会受到惩罚。在列举不太常见的惩罚和奖励之前,你可能还想知道,成为质押者会面临怎样的贬值风险。答案是,你可能失去的 ETH,恰好跟你能赚取的 ETH 数量对称。如果一个验证者一年的奖励回报率是 10%,则作恶验证者在最坏情况下可能会失去 10%。举个例子,如果一个验证者总是离线,或者总是给那些不能得到敲定的区块投票,则其损失的 ETH 数量,恰与一位总是及时提交见证消息,且所支持的区块总是得到敲定的验证者所得的奖励,在数额上相等。罚没(Slashing)的力度下至 0.5 ETH,上至一位验证者的全部权益。如果一位验证者所提交的见证消息触犯了协议所定义的罚没条件,则 TA 会损失自身权益的至少 1/32,并被驱逐出验证者队伍。惩罚的力度就像该验证者离线了 8192 个时段一样。协议还会根据相近时间内被罚没的验证者数量施加一个额外的惩罚。此种额外惩罚的计算公式是:验证者余额 × 3 × 被罚没的验证者占比。那么,如果占全体验证者 1/3 数量的验证者都触犯了罚没条件,则他们会失去全部余额。相应地,检举这些不轨行为的验证者将会得到检举人奖励。区块提议者在所提议区块得到敲定之后,也会得到一个成比例奖励。总是在线,并且提议工作做得很好的验证者,其总奖励可增加约 1/8。出现罚没事件的时候,提议者也会因为打包罚没证据而得到一小笔奖励。在 Eth2 Phase 0 中,所有的检举人奖励都会给予区块提议者。以太坊 2.0 系统中机制众多,对这些机制的评价应从所有机制的整体效果出发。最末一种奖惩措施是所谓的 “怠惰惩罚”。基本上,如果距上一次敲定区块已过去了 4 个时段(还没有新检查点得到敲定),所有验证者都会遭受怠惰惩罚,而且惩罚力度会呈平方级上升,直至新的检查点得到敲定。怠惰惩罚保证了:即使 50% 的验证者都离线了,系统也会在 21 天后重新开始敲定区块。罚没条件 罚没条件主要有三个,分别是:双重提议、FFG 双重投票,FFG 环绕投票。LMD GHOST 投票是不会招致罚没的。双重提议是指区块提议者于所在时隙提议了多于一个区块。双重投票是指验证者在提交 FFG 投票时,多个投票指向同一个目标检查点,但引用的来源检查点却各不相同。环绕投票指的是验证者在提交 FFG 投票时,多个投票所指向的检查点恰成环绕形状。举个例子,假定一位验证者在时段 5 投票时,以时隙 32 的区块为来源检查点,以时隙 128 的区块为目标检查点:如果该验证者在时段 6 的投票以时隙 64 的区块为来源检查点,以时隙 96 的区块为目标检查点,那么该票就被 TA 自己在时段 5 的投票给包围(环绕)起来了。如果该验证者在时段 6 的投票以时隙 0 的区块为来源检查点,以时隙 160 的区块为目标检查点,则该投票把 TA 自己在时段 5 的投票给包围起来了。如果这位验证者在时段 6 又给时隙 128 的区块投票,除非其来源检查点仍是时隙 32 的区块,否则就成了双重投票,也会被罚没。相同的 FFG 投票倒是不会被罚没的。拥有相同来源检查点的 FFG 投票也不会招致罚没。这是维持网络活性的重要条件。举个例子,如果两条分叉链各自都有 50% 的验证者余额支持,协议应该鼓励验证者通过投票给相同来源检查点、不同目标检查点,在分叉间切换(而不是惩罚他们切换分叉,这样会导致网络继续分裂)。能够安全地在分叉间切换,验证者们就能打破僵局,尝试形成 2/3 的多数。检举他人的验证者需要在见证消息中纳入相互冲突的投票,以证明另一个验证者应该受到惩罚。要高效地从一长段历史中找出相互冲突的投票,在算法和数据结构上也是一种挑战。因此,开放工程挑战·罚没探测器也在寻找贡献者。得到良好控制的验证者一般是可以避免被罚没的:只需记得自己曾经签名过哪些见证消息就好。诚实的验证者也不会因为其它验证者的行为而受到波及。只要验证者不签名相互冲突的见证消息,不作出双重提议,就不会被罚没。为得到更好的运行体验、更值得信任的信息来源,乃至更好的 DoS 保护,验证者客户端可能会同时使用多个信标链节点。在这种模式中,包括使用备份的验证者客户端的时候,需要小心不要让验证者签署相互冲突的消息。信标链验证者激活及生命周期 为避免验证者集合在短时间内出现大规模的变动,单个时段内能激活和退出的验证者数量是有一个机制限制的。这样可以让激活许多验证者、快速攻击系统的攻击更难发动。信标链还使用了一个叫做 “有效余额” 的概念,这个有效余额回避验证者余额的变化更小,使得技术上的最优化成为可能。 总结 (完) 原文链接:https://ethos.dev/beacon-chain/ 作者: ethos.dev 翻译: 阿剑 —- 编译者/作者:EthFans 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
科普 | Eth2 信标链:你首先该知道的事
2020-12-02 EthFans 来源:区块链网络
- 上一篇:12.2晚间比特币策略
- 下一篇:TronLegend一场颠覆传统金融的创新实验
LOADING...
相关阅读:
- TronLegend一场颠覆传统金融的创新实验2020-12-02
- ETH2.0创世区块产生现神秘标记Libra更名为Diem寻求监管批准2020-12-02
- 2020年ipfs最新消息:filecoin币会涨到多少钱?2020-12-02
- 金玥拾币:合约比特币以太坊如何操作才能稳健盈利?2020-12-02
- 区块链3.0的终局:万龙链VS以太坊2020-12-02