以太坊2.0:什么是区块验证者?

第一章:Serenity,不叫 Shasper

在之前的文章《V神 Devcon4 演讲内容双语分享》,我们提到以太坊创始人Vitalik在会中明确提出不喜欢 Shasper(Sharding+Casper)这个词,并希望以太坊社区将以太坊的新阶段(即以太坊2.0)称为Serenity,以此来表示以太坊下一阶段的发展。


第二章:多个阶段

Serenity的实现将分为4个阶段,大约需要2年的时间来完成。

第一阶段为阶段0,或者称为信标链(Beacon Chain)阶段。本阶段的重点是使权益证明信标链的验证者(Validators)上线并运行信标链。有关信标链的说明,请参阅Unitimes往期文章《以太坊协议状态:信标链》;

第二阶段的重点是添加分片(shards)作为数据(数据层);

第三阶段将实现数据的跨分片传输,或者在分片内部传输。这就意味着,在全新的以太坊网络中,智能合约在一段时间内是不会运行的;

第四阶段就是,按照Vitalik的说法,对权益证明以太坊这个全新的世界计算机进行稍加改进和最优化。


第三章:验证者

验证者是指为区块链提议新区块的实体(人或公司),或者是那些确认/证明其他验证者所提议的区块的实体。需要明确的是,提议(propose)或者证明(attest)区块都是通过自动化软件实现的,不需要手动去提议什么东西。从技术角度来说,人是无法及时作出反应的。因此,无论是处于何种目的,验证者就是指一个“节点”,也即一台会提议和证明区块的计算机。我们将提议区块的验证者称为“提议者(proposer)”,将验证该提议的验证者称为“证明者(attester)”。也就是说,区块提议者和区块证明者都是区块验证者。区块验证包括两个环节,即提议区块(由提议者发起)和证明区块(由证明者完成)。

再进一步解释一下吧。

每个区块的验证者都是从一个很大的验证者集合中选择出来的,所有验证者都需要在信标链中进行登记才能成为验证者。验证者是通过随机数发生器进行随机选择的,该随机数发生器就是RANDAO+VDF,而那些被选中的验证者们将组成一个委员会(committee)。

备注:RANDAO是一种将许多参与者提供的随机数组合成一个单一的输出数字的方法;VDF 即 Verifiable Delay Functions,可验证延迟函数,参考《可验证延迟函数介绍》。

当某些验证者被选中进入委员会中的时候,他们将负责对某个状态进行证明,也即创建下一个区块。这一过程可以在一个时间段内完成,我们将这个时间段称为 slot(每个slot中涉及对某个区块进行提议,以及其他验证者证明该提议的区块一切正常),当几个slots下来之后,所有随机被选中的验证者都获得了机会对提议进行证明,我们称之为一个周期(cycle)。

呃,好多术语,太专业,好难理解...

别担心,这就是一些定义。关于验证者,知道下面这些内容就可以啦。

如何成为一名验证者?

想要成为一名验证者,你需要在当前的工作量证明以太坊主链的一个智能合约中抵押32个以太币(ETH)。之后就会生成一个类似“验证者会员卡”使你能够参与到新的权益证明系统中来。

验证者们将负责1-2个特定的分片,每个验证者都能对1-2个分片进行区块提议/证明。换句话说,一台计算机(节点)至多可以对2个分片进行验证。如果你想要抵押更多的ETH,你必须使用另一台计算机。因此,抵押池(staking pools)就变得不可行,从而才能增加整个网络的去中心化程度。

可以看出,两个系统(基于工作量证明的系统和基于权益证明的系统)将在较长的一段时间内共存,因为上文中提到的以太坊2.0的前两个阶段中,权益证明系统中不会存在任何的数据传输,因为我们依旧需要依靠当前的工作量证明链来处理数据交易。

共识机制的转变是逐步进行的,矿工们不会骤然间失业或者受困于过时的硬件设备。实际上,这种趋势对于他们是有利的。

那么,我可以做多长时间的验证者?权益证明中的Slasher算法以及抵押的ETH被罚没又是什么东东?如果我们当前没有交易,那验证者将会验证什么呢

让我们来逐个地加以说明。

任何一个验证者可以无限期地留在系统中充当验证者,前提是他行为得当。验证者会因为表现良好并发挥作用而获得奖励:这是他们参与进来的激励机制;但如果行为失当,则可能无法继续成为验证者。

如果某个验证者下线(go offline),那他将定期地损失一部分抵押的 ETH(总共抵押了32个ETH)。随着时间的推移,这种损失将大幅增加,这也就意味着,离线时间较短所遭受的损失,要比离线时间更长所遭受的损失更少。验证者不会损失其抵押的所有32个ETH,而是当验证者一直损失到某个门槛值,也即当只剩下16个ETH时,这个验证者就会被驱逐出验证者行列。被驱逐出去的验证者需要等待几个月之后,才能将剩余的ETH取出来。同时,验证者还会因为行为失当,即当验证者声称某笔交易是有效的,而实际上该笔交易并非有效时,会因此而损失抵押金。这种惩罚要严重得多,但目前还没有确定有多严重。抵押金的损失就叫做罚没(slashing,即抵押的一部分ETH被罚没),进行罚没操作的算法就叫做Slasher算法。

在全新的权益证明区块链中,基本上一开始就只有一些空块(empty blocks)。由于没有可以引用的数据或分片,在信标链中的区块将不会包含任何特别有用的东西。

很多人就会问了,为什么要将那些行为失当的验证者押注的 ETH 销毁,而不是将这些ETH分发给网络中的其他验证者呢?这是因为,销毁 ETH 能够在一定程度上为每个人带来价值(因为 ETH 将变得更加稀缺);而如果将这些ETH分发给其他的验证者,这会导致他们相互攻击,以便获得对方被罚没的 ETH。


结论

验证者(validator)就是新式的“矿工”,但验证者不会通过燃耗电力来确认交易,相反,某个验证者在被系统选中之后,会针对交易搭建区块,其他验证者将对该验证者的行为进行证明。这些验证者团队一起构建一条新链,且没有任何一个验证者要比下一个验证者拥有更多的权利。想要成为一名验证者,用户必须将32个ETH发送到当前的工作量证明链中的一个智能合约中,这样就加入到信标链中的验证者行列了,之后系统将随机选取验证者来进行区块提议(propose),委员会中的其他验证者将对该提议进行证明(attest),也即通过对被提议的区块进行投票,以此来决定这个被提议的区块是否有效。好了,有关验证者的基本知识差不多就这些了,你理解了吗?

【本文版权属于Unitimes,转载请保留版权信息。未经授权,不得以任何方式加以使用,包括转载、摘编、复制或建立镜像。Unitimes将追究侵权者的法律责任。合作或授权请联系[email protected]或添加微信unitimes2017】

你可能感兴趣的:(以太坊2.0:什么是区块验证者?)