基于POW工作量证明的以太坊网络现在已经出现了严重的性能瓶颈

为了提高自己交易被处理的速度,以太坊网络的GAS Fee被不断提高

除此之外,由于ETH代币价格的不断上涨,单位GAS的实际成本也持续上涨

目前,在以太坊网络,如Uniswap等应用上执行一次交易,手续费已经高达数十美元

与之对应,BSC(币安智能链)网络上GAS仅为5Gwei,在去中心化交易所进行一次交易的手续费仅不到1美元

而ETH 2.0中的分片将有效实现对以太坊网络的扩容,同时POS权益证明的方法也将进一步提升以太坊网络的运行效率,节约资源

验证者

以太坊2.0中采用了权益证明的共识机制。因此必然要引入验证者这一角色。验证者将自己持有的ETH代币作为保证金,并对区块进行投票。而投票的权重则由验证者保证金的数目决定。

在ETH 2.0的现行规范中,每个验证者最多拥有32个ETH,避免了在分片中单个验证者保证金过多而“一手遮天”现象。虽然拥有超过32个ETH的参与者可以创建多个验证者,但由于验证者每轮都是随机混洗,其很难保证自己拥有的所有验证者都在一个分片上,从而无法控制分片链上的投票结果。

除此之外,验证者之间还会互相监督。如果发现其他验证者有违反规则的投票行为,则可以通过举报获得奖励。同时被举报的验证者的保证金会被扣除。当余额降低到16个ETH以下,则验证者会被信标链劝退。

验证者在服务 2048 个时段(约 9 天)之后也可以主动退出。退出时要先走完 4 个时段,质押用户才能取出自己的权益。在这 4 个时段内,该验证者的余额仍然是可以被罚没的。因此,诚实验证者的余额可以在约 27 小时之后取出。但是,如果验证者在此时被罚没,就只有再等 8192 个时段(约 36 天)之后才能取出剩余款项。

为避免验证者集合在短时间内出现大规模的变动,单个时段内能激活和退出的验证者数量是有一个机制限制的。这样可以让激活许多验证者、快速攻击系统的攻击更难发动。

分片

要扩容以太坊网络,一般有两种思路,即垂直扩展或者水平扩展,水平扩展就是加入更多的节点,而垂直扩展就是让节点变得更强大。显然前者更加适用于现有的以太坊网络。

为了让更多节点有加入网络的机会,以太坊2.0将整个网络分为64个分片,每个分片有自己的分片链,分片链通过交接链接到主链,即信标链上。

每一条分片链都只会由系统中的一部分矿工来处理。验证者也会被分配到一个个分片上,验证者只会处理自己分片中的交易。

但分片存在的最大威胁是系统整体安全性。攻击者攻击单个分片的难度显然要比攻击整个系统低。为了解决这个问题,ETH 2.0会随机混洗全网的验证者,一个验证者可能被随机分配到某个分片上。只要攻击者无法控制全网1/3以上的验证者,其攻击成功的概率就几乎为0。

时隙和时段

时隙(Slot)、时段(Epoch)是在以太坊2.0中的关键概念。一个时隙为12秒,一个时段则是32个时隙,即6.4分钟

img

理论上讲,每个时隙都是一个产生区块的机会。每一个这个区块有一个由伪随机随机选出的提议者,而没有被选为提议者的验证者则是这个区块的见证者,他们会同时为信标链区块和分片链区块投票,以便敲定信标链和分片链的最新区块。

验证者以时段为单位进行混洗,在每一个时段,一名验证者会被随机分配到一个分片的一个时隙上,该验证者会参与被分配到的分片的共识过程,以投票选择出所在分片的最新区块。验证者也会在一个时隙内把最新区块链接到信标链区块上,这个过程叫做交联,一个信标链区块不一定和所有分片链都存在交联,必须要该时隙中分片链上有区块产生才会有交联产生。由于信标链会和分片链有关联,因此信标链可以充当分片链分叉选择的一个重要风向标。

每位验证者都会发见证消息,其实也就是其发出的投票,这个消息会被记录在信标链中。除此之外,信标链中还记录了验证者的注册信息、验证者的状态、链接到各个分片的信息等。

验证者的见证消息一般会在对应时隙内打包到区块,如果后续才提交也是有效的,但验证者的奖励会减少。

委员会

委员会就是一组验证者。出于安全考虑,每一个时隙,在信标链和每一条分片链上,都会有一个委员会,由至少 128 位验证者组成。且一个验证者在一个时段内只能参加一个委员会。为了满足上述基本要求,在一条分片链中需要至少 128 * 32 = 4096 个验证者。如果有超过8192个验证者,则每个时隙可以有2个委员会,进一步提升安全性。

理论上讲,攻击者只有万亿分之一不到的几率,能控制一个委员会中 2/3 的验证者。

委员会的选定由信标链上一个叫做 RANDAO 的伪随机过程决定,每一个时段,这个伪随机过程都会选出每个区块的提议者,并且随机混洗验证者到对应的委员会。

其中,还会产生一个或多个(根据验证者数目决定)为信标链产生区块的信标链委员会,这个委员会会被随机分配到一个分片上。这里也主要讨论信标链委员会。

信标链委员会的验证者的验证消息会包含下面的内容:

  1. LMD GHOST 投票

    即时隙中的每个验证者独立对信标链当前顶端区块的投票。是以时隙为单位的。

  2. FFG 投票

    对信标链检查点的投票。检查点就是位于一个时段的第一个时隙内产生的区块。如果第一个时隙没有产生区块,则找与其最近的区块作为检查点。

    每次投票会产生一个“目标检查点”,即最近时段的检查点。和一个“来源检查点“,即最近检查点的上一个检查点。

    一个时段结束的时候,如果其检查点得到了 2/3 的总余额支持,那么该检查点就被合理化了。如果一个检查点 B 已经得到合理化,其下一个时段的检查点也被合理化了,那么 B 就被敲定了。因此敲定一个检查点需要大约13分钟。

  3. 交联投票

    每个信标链委员会会尝试将自己所在的分片和信标链产生交联,这是委员会内部的投票过程。

    因而,ETH 2.0信标链需要至少128 * 32 * 64 = 262144 名验证者(质押的 ETH 数量超过 800 万)才能使得单个信标链区块能包含 64 个交联。

当然,一个验证者可能同时被分配到信标链委员会和分片链委员会中,如果其是分片链委员会成员,则其验证消息还会包括对分片链最新区块的投票。

奖励与惩罚

区块提议者在所提议的区块得到敲定后会得到奖励。总是在线,并且提议工作做得很好的验证者,其总奖励可增加约 1/8。出现罚没事件的时候,提议者也会因为打包罚没证据而得到一小笔奖励。

除此之外,和大多数人投票一致的验证者也可以获得奖励。

但如果有下述行为的验证者会被惩罚:

双重提议指区块提议者于所在时隙提议了多于一个区块。

双重投票指验证者在提交 FFG 投票时,多个投票指向同一个目标检查点,但引用的来源检查点却各不相同。

环绕投票指验证者在提交 FFG 投票时,多个投票所指向的检查点 恰成环绕形状。举个例子,假定一位验证者在时段 5 投票时,以时隙 32 的区块为来源检查点,以时隙 128 的区块为目标检查点:

  • 如果该验证者在时段 6 的投票以时隙 64 的区块为来源检查点,以时隙 96 的区块为目标检查点,那么该票就被 TA 自己在时段 5 的投票给包围(环绕)起来了。
  • 如果该验证者在时段 6 的投票以时隙 0 的区块为来源检查点,以时隙 160 的区块为目标检查点,则该投票把 TA 自己在时段 5 的投票给包围起来了。