忘记你太难啊3星评价
2020-04-26 14:22:46
自从Vitalik Buterin和其他的联合创始人在2014年推出以太坊以来,可伸缩性问题一直都是讨论的一部分,在一段时间的讨论之后,以太坊开发人员一致认为,挑战以太坊 2.0”版本可以对这个问题有所帮助,它解决了扩展问题,并实现了创建一台庞大的分布式世界计算机”的承诺。
以太坊2.0
目前,以太坊仍然使用其主网上的工作量证明(PoW)挖掘协议进行操作。然而,以太坊2.0将主要由一个股权证明(Pos)框架支持,其中Beacon链将是网络上所有发生的一切的中心。Beacon链被指定为即将交付的以太坊2.0框架的第一个组件,它将有效地充当新系统的脊梁,将提供大量所需可伸缩性的碎片捆绑在一起。以太坊开发商希望解决PoW开采和网络拥堵造成的能源消耗过大的问题,这些问题以高昂的天然气费用扼杀了Dapp。碎片链最初将通过聚合事务就其订单达成共识,从而在以太坊2.0上实现规模,同时将实际哈希留给主链。以太坊2.0系统的最后一层是VM层,它将提供一个框架,以当前以太坊主网的方式执行智能合约和事务。
Beacon链的重要性可以通过描述它为整个系统提供维持的跳动的心脏来解释。它的主要功能是监督和管理POS协议本身的执行,以及大量的碎片链的执行,以确保以太坊2.0的扩展。它的职能包括提名块投标人、批准和管理验证者、监督定期对拟议区块进行表决的验证委员会、使用惩罚和奖励来执行网络规则,以及为碎片定期报告提供一个中心锚点,以便快速执行交叉碎片交易。
Beacon链的众多功能
Beacon链的许多功能之一是将一组节点维护为块验证器。每个节点都需要32个ETH的总和,它们基本上是整个以太坊2.0系统运行的核心。当一个节点将32支ETH股份发送到现有POW主干网上的智能合约时,经过几次有效性检查后,它将被锁定,并将信息传送给Beacon链客户端。然后,Beacon链将节点插入到Beacon链上的验证器集中,通过在Beacon链和碎片链上提出块,它在PoS协议中起着关键作用。
Beacon链管理验证器退出系统的退出过程。根据pos协议,初始股权加上其累积的奖励和惩罚,在由Beacon链从一端管理到最后的过程中,在97天后返回到碎片链。如前所述,Beacon链管理其本身和主碎片链上的pos框架。与POW不同的是,不存在块挖掘竞争,因此块提议者由Beacon链随机选择来进行散列。这也许是整个pos系统的核心,因为如果没有真正的随机性,就会有渎职或集中的风险。
Beacon链所做的其他事情是在规则的16秒间隔内产生块,而不是在PoW系统上看到的不规则间隔。在每个16秒插槽期间,随机选择的块提议者从Beacon链验证器接收所有关于以前块的信息,并将它们组织成一个块,然后在链上发布。当以太坊2.0切分框架完全启动并运行时,据说每个碎片都会有一个随机选择的提议者在Beacon链过程的一个缩影中收集该特定碎片的事务信息。然后,这些信息将形成一个块,由碎片委员会投票表决。
Beacon链功能的另一个关键部分是通过适当分配奖励和惩罚来维护pos系统的规则。它不断地跟踪和更新验证者的余额,并为他们在系统规则范围内保持自己的行为分配奖励,这是对良好行为的激励。如果他们违反了规则,Beacon链从他们的32 ETH余额中移除一部分,并将他们从系统中驱逐出去。它还对没有出席投票的验证者处以轻微的惩罚。如果验证器的定金低于16 ETH,Beacon链也会自动将它们从验证器集中弹出。
Beacon链的最终功能是处理交叉链接,通过将每个碎片连接到中央Beacon链脊柱将一个切分的网络连接在一起的线程。通常,每个碎片的当前状态被记录为Beacon链块上的一个交联链。当块完成时,碎片块也会自动被认为是最终完成的,这使得它成为对交叉碎片事务中其他碎片的支持。目前,Beacon链背后的开发框架已经完成了大约60%的工作,而在加密圈内预测开发时间是一项众所周知的困难工作。尽管如此,市场上的消息是,Beacon链开发应该在年底前完成,一个多客户的Beacon链测试网可以在2019年第一季度开始运行。
对于任何对以太坊2.0的开发感兴趣的人来说,这意味着这一愿景可能最早在明年实现。这是否真的会发生在给定的时间范围内呢?只有时间才能说明问题。
小鸡炖蘑菇8星评价
2020-04-26 14:23:46
以太坊2.0并不是一个新主意,早在2014年,Vitalik就提到了以太坊2.0的概念,他说:
“我们要么解决可扩展性和共识问题,要么就死于尝试,” 好吧,我们还活得不错,而他几周前发布的最新观点是:
“对于以太坊2.0来说,理论上已没有明显未解决的问题。”
现在正是实现这些理论的时候了,而Beacon链正是以太坊2.0交付计划的第一个组成部分。在这篇文章当中,我们将讨论它的作用、它为什么是这样做的,以及开发者们是如何开发它的。
关于Beacon链的介绍
在之前的一篇文章当中,作者介绍了以太坊2.0的概念,在这里我们通过Hsiao-Wei Wang提供的以太坊2.0系统 架构图进行展示:
在这里插入图片描述
此图还可作为开发和交付以太坊2.0的分步路线图,顺序为从上到下:
PoW 主链是今天以太坊存在的部分:即当前的以太坊主网。在以太坊2.0系统当中,它会继续像今天那样运行。而下面的所有东西都是新的。
Beacon链目前正在开发当中,它也将成为第一个被交付的组件;
分片链会是下一个交付组件,它也是可扩展性的来源。最初,分片链将简单地聚合交易,并就其排序达成共识,而不会执行它们。这将是对系统基础设施以及安全性的一个良好测试;
VM层是以太坊2.0系统的最后一个重要组成部分,它将提供合约以及交易的执行;
为什么我们需要一个“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个以太币存款会减少(被削减),到达一定程度的情况下,这些验证者会被系统剔除。如果验证者出现缺席的状况(不对区块进行投票),系统也会有小小的惩罚,我们将其称为“二次泄漏”(quadratic leak)。其原因很微妙,即使在大量验证器脱机时(例如在发生灾难时),系统也能够继续处理区块。
如果验证者的存款低于16以太币,则Beacon链会把验证者从验证者集当中剔除出去;
交联(Crosslinks)
最后,Beacon链会执行交联的处理。交联负责将整个分片系统连接在一起,其负责将每个分片锚定在Beacon链的脊柱当中。
周期性地,每个分片的当前状态(“组合数据根”)会被记录到Beacon链当中,并作为交联。当Beacon链区块完成时,相应的分片区块就被认为是最终确定的,而其它分片则可确信它们可依赖它进行跨分片交易。
在这里插入图片描述
可视化的Beacon链(蓝色部分),它有8个分片链(碧绿色部分)以及相关交联(浅蓝色线)。所有链上的完成区块都是黄色的,时间从左到右增加。
构建Beacon链
很快,我们就要结束我们的Beacon链闪电之旅了!就其本身而言,Beacon链可能看起来并不是特别有用。它无法处理任意交易:它没有智能合约,它没有 EVM虚拟机。你没法用它做任何事情。但是,它作为以太坊2.0的第一个组成部分,它是整个系统的基础。整个壮观的以太坊2.0建筑都将以此为基础。所以,它必须是坚实的。
如果你想深入了解细节,那么目前有一份正在进行当中的Beacon链规范。这份规范的所有创建和维护过程都是公开进行的:欢迎有兴趣的人加入。
在这里插入图片描述
(在开发 Beacon链的团队)为了运行Beacon链,你就需要用到一个Beacon链客户端。而很多大家所熟知的以太坊客户端(Geth,Parity,Pantheon等)都在进行相关的开发。你可以在此处查看我所知道的列表,其中包含指向其GitHub代码库的链接。 Prysmatic和Lighthouse正在定期更新它们的客户端开发进度,也有一些团队正在向贡献者提供奖励。
关于进度…… 在撰写本文时,Beacon链的技术规范完成度接近了60%。尽管如此,开发者们预计会在今年年底前合理地完成这份规范,并且可能到2019年第一季度末运行多客户端的Beacon链测试网络。最近几周,相关的开发非常迅速,关于以太坊2.0的真正讨论正在拉开序幕!