验证者生命周期概述

Eth2 验证者的生命流程


以太坊 2.0 使用权益证明机制来保护网络,也就是由许多叫做 “验证者” 的计算机线程来投票决定哪一个区块能够上链(即所谓的 “attesting”,作见证),当然也会自己提出备选区块。不过,验证者不是仅仅只有 “开” 和 “关” 两种状态:从成为验证者到退出验证者的整个生命周期中,其状态会经过多次转换。本文会深入研究验证者的生命周期,展示各阶段和转换过程的实质、如何触发转换,以及每种转换的历时 1


先说明一下时间单位:

以太坊 2.0 中的时间通常是用 “epoch(时段)” 这种单位来度量的,1 个时段是 384 秒,也就是六分半钟。为便于理解,基于这一度量的时间我都转化成了以分钟、小时、天为单位,并在附录的脚注中提供详细信息。

验证者生命周期概述

在深入细节以前,我们先来看看验证者生命周期的概况、了解一下用于表述不同状态的术语。

图 1:验证者生命周期一览

各标签所示的阶段如下:

  • 已存入保证金(Deposited):保证金要约已被以太坊 1.0 区块链打包

  • 等待激活(Pending):保证金要约被以太坊 2.0 网络接受

  • 活跃(Active):验证者要见证区块及提议区块

  • 即将退出(Exiting):验证者即将停止见证及提议区块

  • 被罚没(Slashing):因为作弊被抓,验证者停止见证和提议区块

  • 完全退出(Exited):验证者完全退出,不再参与任一流程

也可由此定义出一种基本状态:“正在见证(attesting)”,激活、主动退出及完全退出都在该状态中,处于该状态的验证者被指望去见证及提议区块。这个状态是最重要的,在此状态下,验证者需要连接以太坊 2.0 网络、同步数据,以履行责任,避免被惩罚。

图 2:“正在见证” 状态

定义完了这些阶段之后,我们就来详细考察它们之间的转换过程。

保证金存入阶段

保证金要约被接受是验证者生涯的开始;这个接受过程是在以太坊 1.0 链上发生的,因为验证者资金原本就放在以太坊 1.0 链上。但 1.0 链接受之时,2.0 链还不能感知到这笔存款。

验证者的保证金存入阶段大概要历时 7.5 个小时 2,以保证链重组影响到 Eth1 交易的顺序乃至保证金要约无效化的概率足够小。这个阶段完成后,验证者就进入等待激活阶段 3

图 3:从保证金存入阶段转到等待激活阶段

等待激活阶段

保证金在 Eth1 链上存入足够久之后,它就会被 Eth2 链接受。这标志着验证者正式开始接受 Eth2 的组织。假设一位验证者存入了至少 32 ETH 4,那么 TA 就可以开始作见证了。

等待激活的验证者会组成一个队列:在一个时间点,Eth2 链上能激活和能退出的验证者数量都是一个比较小的数量(所以要排队)5,以保证验证者集合的稳定性。如果队列是空的,那么等待激活的验证者会在大约 25 分钟以后激活 6;如果队列很长,那可能要几天甚至几周才能激活。不过,排完队之后,验证者就可以直接激活、参与见证。

图 4:从等待激活到活跃阶段

活跃阶段

一般来说,一名验证者的绝大部分时间都处于这个阶段。活跃验证者大约每 6 分钟要发出一条见证消息,偶尔要自己提议区块 7。验证者会一直保持在活跃状态,除非出现下列三种情况:

  • 该验证者因没有及时发出见证消息而遭受惩罚,最终其余额低于 16 ETH

  • 该验证者主动要求退出,方法是发送相应的一笔交易(在刚激活的 9 天内不能发出此种交易)

  • 该验证者被证明作恶

在前面两种情况中,验证者都会被加入退出队列(一段时间内能离开活跃状态的验证者数量也是有限的,就跟能进入的验证者数量受限一样,大概是每几分钟可以离开 1 个)。

图 5:从激活状态到即将离开

在第三种情况下,验证会被加入作恶者队列,接受惩罚。

图 6:从激活状态到被罚没状态

值得注意的是,如果有需要,验证者总是能够发送额外的保证金要约(包含相同的验证者信息)来 “充值” 余额(但是有效余额的上限是 32)。这样就能避免验证者余额低于 16 然后被放到退出队列里去。

即将退出阶段

虽然主动退出的验证者表达了停止验证的意愿(不论是自愿还是被迫的),但是,他们是不能立即退出的。相反,虽然处于即将退出状态,他们还是要照常承担职责,跟活跃状态时候一样要见证和提议区块。这样保证了网络的稳定性,避免了验证者立即退出会造成的冲击。

就像验证者想激活的时候有个等待激活状态和队列,想要退出的验证者也有一个队列,一段时间里仅允许少量验证者退出。同样地,主动退出阶段要花费的时间取决于排在前面的验证者有多少。

图 7:从正在退出到完全退出

被罚没状态

验证者违反协议后被抓,就要立即被罚没 1 ETH(从其余额中扣除),然后进入被罚没状态,这跟即将退出状态类似,但是还要遭受惩罚。这一点我们在下文的 “完全退出” 部分讨论。

图 8:从被罚没到完全退出

处于即将离开状态乃至已经完全退出的验证者,都有可能被罚没(验证者完全退出到可以取出资金以前有一段间隔,在此期间是可以被罚没的)。这样能防止作恶的验证者利用正常的退出机制、在作恶被发现以前逃之夭夭。结果就是状态模型变得更加复杂:

图 9:补充罚没条件之后

完全退出

转到完全退出状态之时,验证者就正式结束了自己的工作,不再需要见证和提议区块,也不再需要紧跟 Eth2 区块链的实时动态了。

转成完成退出状态之后,大概还有一天的延迟 8,之后才能取出验证者余额。不过,如果一个验证者是从被罚没状态中完全退出的,那还要接受两项额外的惩罚。

第一项,从完全退出到能够取款的间隔会长得多,要 36 天 9。第二项,在这 36 天期间,系统还会根据该验证者作恶被抓的时间点前后 18 天内被罚没的验证者数量对该验证者施加进一步的惩罚。那么该验证者的有效余额损失比例 10 将如下图所示:

图 10:被罚没的有效余额与同期被罚没的验证者比例的关系

36 天的周期走完,被罚没验证者剩下的余额就能拿走了。

从这个生命流程图中可以看出,没有额外的机制让一个完全退出的验证者重新激活。因此,一旦某个验证者退出,其资金就会一直休眠,等待验证者前来取走。不过,Eth2 Phase 0 时候,资金是不能转账的 —— 因此所有完全退出的验证者的资金都仍保存在质押系统中,直至开启转账功能。没有转账功能,是因为用户帐户模式还未引入。

补充后的验证者生命流程

把上面所有详细信息补充到流程图中,可以得到一个完整的图:

图 11:补充后的验证者生命流程图

请细看其中补充的条件、各阶段的历时、转换过程,这些细节对成功运行 Eth2 验证设施非常关键。从初始化保证金到取出保证金,这个生命流程图点出了各阶段可能发生的情况,也为验证者在全时段中的表现提供了清晰的解释。

注 1:要注意的的是,以太坊 2.0 的规范没有一个显式的状态机,因此,各阶段的名称都是作者为便于描述而给出的。

注 2:1024 个以太坊 1.0 区块的时间加上 32 个以太坊 2.0 的时段。

注 3:这里假设验证者存够了 32 ETH。如果没有存够,则该验证者会一直停留在保证金存入阶段,直到该验证者另外发起保证金要约,使其余额超过 32 ETH。

注 4:如果不到 32 ETH,那还可以另外再存入,提高该验证者的余额。

注 5:每个时段有 (激活验证者数量 + 主动退出验证者数量 + 被罚没验证者数量)/63356 个名额,下限是 4 个。

注 6:即 4 个时段的长度。

注 7:每一个验证者都需要在一个时段中的某个时隙(slot)发出见证消息,而每一个时隙都会有一名验证者被随机选中作为区块提议者。

注 8:256 个时段。

注 9:8192 个时段。

注 10:注意,罚没力度最高是 100% 的有效余额,但有效余额的上限是 32 ETH,无论该验证者的实际余额是多少。


24小时热点

热点专题

NFT艺术品到底是什么?

Beeple,“EVERYDAYS: THE FIRST 5 ...

2320904

Opera House

了解CHIA这篇就够了

这些清单旨在作为信息来源和研究的出发点,为你的研究提供常识性 ...

636559

Kusama 测试网

什么是 Infura?

11 月 11 日,因以太坊和 IPFS 的 API 服务供 ...

626973

IDG资本

OpenSea 为例子教大家如何购买 NFT

就如同流动性挖矿刚起步时候一样,大多数用户并不了解 NFT ...

609663

CryptoSpells

绿地集团数字化战略的NFT形象——8302款无聊猿!

30年前,绿地还是一家注册资本2000万元的小型绿化公司,历 ...

493829

Bybit

什么是私钥?

私钥是怎么来的,它跟你的密码学货币资产有何关联。

486042

芝麻开门交易所

2024年模因币牛巿SHIB是否能达到1美元?市场另外3个meme币也在热卖

SHIB是仅次于DOGE的第二大流行模因币,它能否达到1美元 ...

476086

Business2Community

数字人直播软件多少钱

数字人直播软件根据您使用的平台、功能范围不同,价格也不尽相同 ...

459247

MXC交易所

被朋友骗去弄数字货币

  有一次,一个朋友突然给我说他有一种可以赚钱的新方法,他说 ...

449990

DigiFinex

链圈百科:环境影响评价信用平台

环境影响评价信用平台是指一种使用信用技术来评估环境影响并对社 ...

417532

Tokhun