Hi 游客

更多精彩,请登录!

比特池塘 区块链技术 正文

以太坊2.0协议核心Beacon链详解

卡哇伊嘉人
120 0 0
以太坊2.0并不是一个新主意,早在2014年,Vitalik就提到了以太坊2.0的概念,他说:“我们要么解决可扩展性和共识问题,要么就死于尝试,”好吧,我们还活得不错,而他几周前发布的最新观点是:“对于以太坊2.0来说,理论上已没有明显未解决的问题。”现在正是实现这些理论的时候了,而Beacon链正是以太坊2.0交付计划的第一个组成部分。在这篇文章当中,我们将讨论它的作用、它为什么是这样做的,以及开发者们是如何开发它的。关于Beacon链的介绍在之前的一篇+ Z  {$ |3 w0 c( r4 d& V6 M& J
6 f  S3 c; o8 Y
    文章
7 ?2 A" I6 g+ r( p& o9 k& A2 A$ p) Z8 D* M# v6 D: }
    当中,作者介绍了以太坊2.0的概念,在这里我们通过Hsiao-WeiWang提供的以太坊2.0系统架构图进行展示:​此图还可作为开发和交付以太坊2.0的分步路线图,顺序为从上到下:# V0 W' E) s6 [9 _2 m

/ W2 l5 N- T; o+ l$ ~" o1 h9 P    PoW主链是今天以太坊存在的部分:即当前的以太坊主网。在以太坊2.0系统当中,它会继续像今天那样运行。而下面的所有东西都是新的。  h1 j5 L# I5 X+ s6 c& I" g4 `6 O

" E% M6 h& H: ~' p    Beacon链目前正在开发当中,它也将成为第一个被交付的组件;
+ [) Q6 K8 S( f$ M8 H8 h7 t0 ?
. D% l0 I7 Q" U5 e  \9 m    分片链会是下一个交付组件,它也是可扩展性的来源。最初,分片链将简单地聚合交易,并就其排序达成共识,而不会执行它们。这将是对系统基础设施以及安全性的一个良好测试;
+ ?' K) d5 v! z' G8 S2 o" I
6 ?. C! Z/ c5 H& L& y9 k0 `    VM层是以太坊2.0系统的最后一个重要组成部分,它将提供合约以及交易的执行;
4 ~3 H( u* B! _. C
- o$ m- L9 X+ W8 k* m+ D    为什么我们需要一个“Beacon”链?Beacon链是一个全新的PoS区块链。它是支撑整个新以太坊2.0系统的脊柱。它的存在,使得整个系统能够保持活力,其负责指挥以太坊2.0系统所有的组成部分。Beacon链指挥整个以太坊2.0系统,Beacon链的关键功能是管理PoS协议(Casper)以及所有的分片链。它有很多方面的工作要做:管理验证者以及他们的权益(stakes);在每一步为每个分片指定所选的区块提议者;组织验证者进入委员会,对拟议的区块进行投票;应用共识规则;对验证者实施奖励和处罚;并且,作为一个锚点,其中分片会注册它们的状态,以促进跨分片交易;在我们更深入地研究这些功能之前,请先了解一下术语。Beacon链的名字起源于“随机beacon”的概念,它为系统的其他部分提供随机性来源,而Dfinity项目在其区块链环境中也采用了随机beacon的概念。每个参与节点都会维护自己的本地Beacon链,努力与其它节点保持同步。也许上面带有指挥的图像是有误导性的,虽然Beacon链确实指挥了系统的其余部分,但其指挥者是去中心化的,这就像每个音乐家都有自己的节奏感一样。关于Beacon链的一些功能让我们来看看Beacon链的一些功能。管理验证者Beacon链的主要工作之一就是维护验证者集合,这些验证者节点需通过抵押以太币申请加入,他们会负责运行以太坊2.0系统。验证者可以具有多种状态,但只有那些被标记为“active”的节点才可以参与运行以太坊2.0协议。而想要加入验证者集的参与者,可通过当前的以太坊PoW主链,向一个Beacon链合约发送32以太币,在经历一些有效性检查之后,这些币会被锁定,而合约则会发出日志条目(Solidity中的“事件”),它们可被Beacon链客户端所接收。然后被选中的节点就可以导入到Beacon链的验证者集当中。一旦激活之后,验证者就可以提出区块并参与以太坊2.0协议,当这些区块被选中之后,它们就会同时出现在Beacon链以及分片链上(一旦它们被实现的情况下)。如下所述,这些验证者还会加入对区块进行投票的委员会。验证者也可以发出信号,表明他们希望退出系统,并停止参与协议的运行。经过一段时间(目前为97天,但可能会更灵活),他们的押金(32以太币)加上奖励再减去罚款,将被退回到一个分片链当中。解锁PoW主网上的初始权益,是不太可能的,除非整个系统失败,并且社区同意给退出者退款。以上的所有工作,都是由Beacon链在负责管理的。提供随机性在区块链系统中很难产生良好的随机性,而一个权益证明(proof-of-stake)协议的关键要求,就是随机性的来源,它必须是分布式的、可验证的、不可预测的,并且是不可剥夺的。而Beacon链就是负责向系统的其余部分提供这种随机性:下面所描述的几个协议功能就取决于这种随机性。区块链上的随机性是一个很棘手的问题。当前的随机数生成是通过RANDAO结构完成的,验证者会提供一个“哈希洋葱”。而RANDAO结构只是将很多参与者提供的贡献(单个随机数)组合成单个输出数字的一种方式。为了防止任何一个参与者显着地操纵随机性,开发者使用了一种提交泄露(commit–reveal)方案。当验证者注册时,它会提供一个承诺值,该值是其选择的原始数字经多次哈希后产生的。每次选择验证者作为提议者时,它通过提供最后一个揭示数字的原像来剥离“洋葱”的一层或多层。其它人都可以检查这是否是正确完成的,因此提出者不能通过改变其贡献来欺骗系统。虽然这种方案并不是不可替代的,如果提出者不喜欢这个随机数,他可以选择跳过它,但对于当前的协议设计来说,这已经是足够健壮的。区块提出者Beacon链会管理它的PoS协议,以及每个分片链。在工作量证明系统当中,矿工节点会负责选出下一个区块。而在PoS系统当中,是不存在挖矿这个过程的,因此区块生产者是基于上述协议内的随机性,随机地选择区块提出者。PoW系统的另一个特性是,区块时间是不规则的,尽管以太坊的区块生成时间平均约为15秒。相比之下,我们将Beacon链的区块生成描述为心跳(heartbeat)。以太坊2.0的区块是每16秒定期生成一次的(如果测试可行,也可能减少到8秒)。这个16秒的周期被称为“slot”(时隙);在每个时隙(slot),Beacon链所选择的提出者,会收集来自先前区块的Beacon链验证者集的所有协议投票(证明),并将它们纳入其发布的区块。一旦分片链准备就绪,每个分片在每个时隙(slot)中都会有自己选择的提出者,它们将收集该分片的交易,并将它们纳入一个由分片委员会投票得出的区块当中;委员会验证者委员会的投票活动,在确保以太坊2.0系统安全性方面起到了关键作用。权益证明(proof-of-stake)区块链的一个重要安全来源是委员会,它们负责对构成区块链真实历史的区块进行投票。而Beacon链就依赖于计算来自其委员会的投票,我们将其称为“证明”,以便同意并最终确定其历史。在理想的情况下,如果能够快速收集证明,则该委员会的成员,都可以成为系统中的有效验证者。此外,Beacon链将随机为每个分片指定较小的子委员会,这将在适当的时候负责确认分片的提出者行为是正确的。奖励和惩罚Beacon链的另一个管理角色,是跟踪和更新验证者的存款。如果验证者表现良好,并发挥出了自己的作用,则他们会获得奖励:这是验证者参与以太坊2.0系统的动力。但是,如果验证者违反了规则。那么他们的32个以太币存款会减少(被削减),到达一定程度的情况下,这些验证者会被系统剔除。如果验证者出现缺席的状况(不对区块进行投票),系统也会有小小的惩罚,我们将其称为“二次泄漏”(quadraticleak)。其原因很微妙,即使在大量验证器脱机时(例如在发生灾难时),系统也能够继续处理区块。如果验证者的存款低于16以太币,则Beacon链会把验证者从验证者集当中剔除出去;交联(Crosslinks)最后,Beacon链会执行交联的处理。交联负责将整个分片系统连接在一起,其负责将每个分片锚定在Beacon链的脊柱当中。周期性地,每个分片的当前状态(“组合数据根”)会被记录到Beacon链当中,并作为交联。当Beacon链区块完成时,相应的分片区块就被认为是最终确定的,而其它分片则可确信它们可依赖它进行跨分片交易。可视化的Beacon链(蓝色部分),它有8个分片链(碧绿色部分)以及相关交联(浅蓝色线)。所有链上的完成区块都是黄色的,时间从左到右增加。构建Beacon链很快,我们就要结束我们的Beacon链闪电之旅了!就其本身而言,Beacon链可能看起来并不是特别有用。它无法处理任意交易:它没有智能合约,它没有EVM虚拟机。你没法用它做任何事情。但是,它作为以太坊2.0的第一个组成部分,它是整个系统的基础。整个壮观的以太坊2.0建筑都将以此为基础。所以,它必须是坚实的。如果你想深入了解细节,那么目前有一份正在进行当中的
5 w; S% Q7 X! z) e! R4 n
; |2 l- f/ t  \8 {! C. S" e    Beacon链规范7 ~* D1 {5 H; K9 F7 b
9 [/ g9 J3 R7 P, d; x& b/ F( b
    。这份规范的所有创建和维护过程都是公开进行的:欢迎有兴趣的人加入。(在开发Beacon链的团队)为了运行Beacon链,你就需要用到一个Beacon链客户端。而很多大家所熟知的以太坊客户端(Geth,Parity,Pantheon等)都在进行相关的开发。你可以在
! Z# @3 M) F! [) C; B1 Q" g% M5 N5 j/ E. Z

- k8 g9 a, h* C+ n    查看我所知道的列表,其中包含指向其GitHub代码库的链接。Prysmatic和Lighthouse正在定期更新它们的客户端开发进度,也有一些团队正在向贡献者提供奖励。关于进度……在撰写本文时,Beacon链的技术规范完成度接近了60%。尽管如此,开发者们预计会在今年年底前合理地完成这份规范,并且可能到2019年第一季度末运行多客户端的Beacon链测试网络。最近几周,相关的开发非常迅速,关于以太坊2.0的真正讨论正在拉开序幕!
BitMere.com 比特池塘系信息发布平台,比特池塘仅提供信息存储空间服务。
声明:该文观点仅代表作者本人,本文不代表比特池塘立场,且不构成建议,请谨慎对待。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

成为第一个吐槽的人

卡哇伊嘉人 初中生
  • 粉丝

    0

  • 关注

    0

  • 主题

    11