00 · Mental model
先别背规则。先看一条安全闭环
PoS 解决的是“没有中央裁判时,全球节点如何选择同一段历史”。
第十章第三课 · 当前主网 PoS 安全模型
协议基线 · 2026-07-25 · Fulu 稳定分叉,继承 Electra 的余额与罚没参数
假设纽约、柏林、新加坡的节点同时收到两条不同的区块分支。谁来决定哪一条才是以太坊? PoS 的回答不是“相信某台服务器”,而是让验证者签名表达选择,再按他们押在协议中的 有效余额计算权重。签名一旦互相矛盾,任何人都能把证据提交给网络, 让违规者损失 ETH。[2]
押上资本
ETH 被记录为可奖、可罚、可退出但不能瞬间逃走的保证金。
随机分工
每个 slot 选一名提议者;活跃验证者每 epoch 被分入委员会。
签名表态
提议区块,或证明自己看到的 head、source 与 target。
选链定案
LMD-GHOST 选当前链头,Casper FFG 推进检查点最终性。
结算后果
及时诚实获得奖励;离线受普通惩罚;矛盾签名被罚没。
以太坊 PoS 是一套把共识投票权与可损失资本绑定的协议: 验证者用 BLS 签名参与分叉选择和最终性,协议按有效余额统计投票, 并用奖励、普通惩罚、inactivity leak 与 slashing 维持安全和活性。
PoS 同时要守住两种性质
安全性
诚实节点不能把两段互相冲突的历史都当作最终历史。若冲突最终性真的发生,至少 1/3 总质押会留下可罚没证据。
活性
只要网络与足够投票权继续参与,链应持续产生区块并推进最终性,而不是永远停在争议中。
可追责性
协议不必猜谁“心怀恶意”;只处理可以由两份签名客观证明的越界行为。
“质押越多,发言声音越大”只说对了一半。验证者不是花钱买区块; 提议者仅能提出候选区块,其他验证者仍会验证其执行结果并投票。 无效区块不会因为提议者有钱就变成有效区块。
01 · Validator
验证者不是一台机器,也不等于质押平台
先拆开节点、客户端、验证者索引、运营者和资金所有者,后面才不会把“数量”误当成“去中心化”。
一个完整以太坊节点通常同时运行执行客户端与共识客户端。 共识客户端即使不挂载验证者,也能同步链头;当它连接验证者客户端并持有验证者签名密钥后, 才能代表某个验证者索引履行提议与证明职责。[3]
资金所有者
- 控制提款凭证
- 承担资本损失
- 可与运营者不同
节点与客户端
- 执行客户端:验证交易与状态
- 共识客户端:跟随 Beacon Chain
- 验证者客户端:安排签名职责
验证者索引
- 一个 BLS 公钥身份
- 一份有效余额权重
- 一组激活与退出状态
一位参与者,可能对应很多不同数量
机器数不是票数
同一运营者可以在一台机器上运行多个验证者,也可以把一个验证者跨多台设备做容灾。共识按有效余额计权。
索引数不是去中心化人数
一个大型运营者可以控制许多验证者索引。协议层看到的是签名身份,不自动知道背后的实际控制关系。
普通节点也能验证
不质押的全节点依然独立验证区块与状态,只是不参与提议、证明和共识奖励。
产品层不等于协议层
流动性质押代币、交易所余额和池份额是服务或应用记账;共识层仍由具体验证者索引签名。
为什么要分“热签名权”和“冷提款权”
验证者签名密钥必须在线,才能及时签署区块和证明,因此属于高暴露的“热”密钥; 提款凭证控制资金去向,适合更冷地保管。Pectra 启用 EIP-7002 后, 执行层提款地址还可以发起退出或部分提款请求,降低资金所有者对运营者热密钥的依赖。[4]
验证者最危险的故障不是“短暂关机”,而是同一签名密钥在两个实例上同时活跃。 两台机器若对不同分支签名,可能制造可罚没的双重提议或双投。 因此迁移验证者时要停止旧实例,并使用客户端的 slashing protection 数据。
02 · Stake
Stake 不是一个余额,而是三层数值
存入多少、账户实际有多少、协议拿多少来计票,可能是三个不同数字。
从零理解质押,最重要的不是先背“32 ETH”,而是分清 deposit、balance 与 effective balance。只有最后一个直接决定投票权重、提议概率以及大部分奖励和惩罚计算。
存入记录
通过存款机制把 ETH 与验证者 BLS 公钥绑定;进入激活队列不等于立刻开始工作。
实际余额
共识层账户当前真正拥有的 ETH,会随奖励、普通惩罚、罚没和提款改变。
有效余额
协议用于计票与结算的平滑权重,以 1 ETH 为增量,并受凭证类型上限约束。
Pectra 以后,“验证者永远只有 32 ETH”已经过时
| 提款凭证 | 激活下限 | 最大有效余额 | 奖励超过 32 ETH 后 |
|---|---|---|---|
0x00 旧 BLS 凭证 |
32 ETH | 32 ETH | 不增加权重;需先升级提款凭证才能提款 |
0x01 旧式执行地址 |
32 ETH | 32 ETH | 超额余额按协议扫到提款地址 |
0x02 复利凭证 |
32 ETH | 2048 ETH | 继续复投并提高有效余额;通常超过 2048 ETH 才自动扫出 |
Pectra 通过 EIP-7251 把最低激活余额保留在 32 ETH,同时让
0x02 复利验证者的最大有效余额提高到 2048 ETH。
旧式 0x01 可不可逆地切换为 0x02。[5]
[6]
0x01 · 40 ETH 实际余额
0x02 · 40 ETH 实际余额
有效余额以 1 ETH 为增量,并带有滞后区间(hysteresis)。 例如从 32 ETH 有效余额上调到 33 ETH,实际余额通常需超过约 33.25 ETH; 向下调整则在低于当前有效余额约 0.25 ETH 时发生。 这能避免余额在边界附近因每个 epoch 的微小奖励而反复跳动。[7]
合并验证者:减少签名,不制造新的独立主体
64 × 32 ETH
64 个索引 · 64 组职责
1 × 2048 ETH
1 个索引 · 权重按余额计
合并能减少 BLS 签名、状态条目与网络消息;但若 64 个验证者本来就由同一运营者控制, 合并不会让所有权更分散。相反,它还会让密钥与运维故障域更集中。
03 · Time & duties
12 秒一格,32 格一轮
理解 slot 与 epoch,才能知道“谁何时提议”“谁何时投票”以及“最终性为什么不是 12 秒”。
1 slot = 12 秒
1 epoch = 32 slots = 384 秒 = 6 分 24 秒
Slot 是提议区块的时间机会;epoch 是全体活跃验证者完成一轮证明职责、协议结算与检查点投票的基本周期。
每个 slot,协议按有效余额加权随机选出一名区块提议者。若它离线,这个 slot 可以是空的, 链在下一个 slot 继续;协议不会为了“补齐表格”接受迟到区块。 与此同时,验证者被随机分入委员会。每个活跃验证者通常每个 epoch 证明一次, 不是每 12 秒都投一票。[8]
走过一个 Epoch
拖动 slot。观察时间、提议机会与 epoch 边界;这是一段协议时钟,不是实时主网数据。
每个 epoch 里,三种主要职责并不等价
提议区块
每个 slot 一名提议者组装共识区块,并携带执行载荷。被选中很少见;错过通常只是失去奖励,不是 slashing。
签署证明
每名活跃验证者每 epoch 一次核心职责,对链头和检查点表达观点;大量证明可用 BLS 聚合。
同步委员会
被随机选中的验证者在一段周期内为轻客户端签署链头;这是额外职责,不是所有验证者每 epoch 都承担。
提议者选择按有效余额加权。一个 2048 ETH 有效余额验证者的提议概率, 约为一个 32 ETH 有效余额验证者的 64 倍;它的证明权重也约为 64 倍。 这不等于它能绕过区块有效性规则。
04 · Attestation
一张证明,其实同时投了三票
只把 attestation 理解为“我同意这个区块”,会错过 Gasper 最关键的双层结构。
验证者的证明同时服务于当前链头与历史最终性。
其中 beacon_block_root 参与 LMD-GHOST;
source 和 target 组成 Casper FFG 的检查点投票。[9]
为什么要把证明聚合
活跃验证者很多,如果每一份签名都作为独立大对象传播并永久记录,网络与区块空间会承受巨大压力。 BLS 签名允许多名委员会成员对相同数据的签名聚合;聚合证明携带参与位图, 节点仍能知道哪些验证者参与,同时大幅减少传输和存储负担。
{
slot,
committee_index,
beacon_block_root, // 当前链头
source: { epoch, root },
target: { epoch, root }
}
真实协议对象由 SSZ 序列化并带 BLS 签名;这里省略聚合位图与签名外壳,只保留理解共识所需的核心字段。
委员会成员先独立验证区块和它引用的状态,再签署自己的观点。 聚合只压缩相同观点的签名,不会把无效区块变有效,也不会要求验证者盲从提议者。
05 · Gasper
“现在跟哪条链”与“历史是否定案”是两件事
Ethereum 把分叉选择与最终性叠在一起:LMD-GHOST + Casper FFG = Gasper。
LMD-GHOST
从已确认的起点向下,逐层选择累计“最新消息权重”更大的子树,得到此刻的规范链头。
- LMD · Latest Message Driven,只计每名验证者最新相关消息
- GHOST · 看整棵子树权重,不只比较单个叶子
- 输出 · 当前 head,仍可能发生短程重组
Casper FFG
统计 source → target 检查点链接的有效余额,推进 justified 与 finalized 状态。
- FFG · Friendly Finality Gadget
- 阈值 · 至少 2/3 活跃有效余额
- 输出 · 密码经济最终性,不随普通分叉选择轻易回退
LMD-GHOST 如何看一棵分叉树
如果随后许多验证者更新最新消息,链头可能切到另一分支;这就是为什么“已打包”不等于“已最终化”。 但分叉选择并非从创世块每次重算:客户端会以 justified / finalized 检查点作为安全锚, 在其后选择最重分支。[10]
Head:节点此刻认为链尖在哪里,影响下一个区块接在哪里。
Finalized:哪段历史已经需要至少 1/3 总质押留下可罚没证据才能与之冲突。
06 · Finality
最终性,是两条超多数链接接力完成的
先让检查点 justified,再让后继超多数链接把它 finalized。
每个 epoch 边界都有一个检查点。验证者不是对任意区块直接喊“永远不改”,
而是对 source → target 链接投票。当支持同一有效链接的权重达到至少
2/3 活跃有效余额,target 才能 justified;在典型连续情形下,下一条超多数链接会把前一检查点 finalized。
参与该有效链接的未罚没有效余额 × 3
≥ 全部活跃有效余额 × 2
这里统计的是有效余额,不是验证者人数、机器数、IP 数或运营者品牌数。
最终性接力实验
A 已 justified。分别调节两条链接的支持权重,观察 justified 与 finalized 如何推进。
为什么冲突最终性至少暴露 1/3
想象两个互相冲突的检查点各获得 2/3 投票。两个 2/3 集合不可能完全错开: 它们至少重叠 1/3。重叠验证者必须对冲突历史签过违反 Casper 规则的消息, 因而留下可罚没证据。这叫 accountable safety。[11]
“连续两个检查点”是理解最终性的主路径。完整规范还保留最近四个 epoch 的 justification bits, 允许若干非完全连续的最终化模式,以容忍个别 epoch 的证明延迟。 这些分支不改变核心:最终性仍需要有效的超多数检查点链接。
Slot 只有 12 秒,但全体验证者要在 epoch 内轮流证明,最终性还要跨检查点接力。 正常主网通常以约 15 分钟描述最终化等待,而不是 24 秒。 仍在研究的 single-slot finality 不是本课所述当前主网规则。
07 · Incentives
不是所有错误都叫 Slashing
PoS 的经济后果有三个量级:错失奖励与普通惩罚、inactivity leak、可举证罚没。
普通离线
错失奖励,并对未及时提交的 source / target 证明承担普通惩罚。没有矛盾签名,不是 slashing。
Inactivity leak
最终性连续延迟后,未在多数链上正确投 target 的余额加速流失,让在线一方重新获得 2/3。
Slashing
签署客观冲突的区块或证明。证据可由任何人提交;违规者被扣款并强制退出。
普通惩罚:先让“在线且及时”成为理性选择
及时投出正确的 source、target 和 head 会获得不同组成的证明奖励; 错过 source / target 不只是“没拿奖金”,还会被扣除相应普通惩罚。 错过 head 通常是少拿奖励;未被选中的提议机会或未成功提议也通常不是 slashing。 奖励规模会随有效余额和全网活跃余额变化,不是固定年利率。[12]
短暂宕机
没有签署冲突消息,通常只是少赚与普通扣款;“关机一天就罚没 32 ETH”是错误说法。
提议者没上线
该 slot 可以没有区块,链在下一 slot 继续;没有第二份冲突区块头,就没有 proposer slashing 证据。
网络延迟下的旧观点
证明可能迟到或不匹配最终规范链,受到收益影响;只有满足严格冲突谓词才被罚没。
被 Eject
有效余额降至 16 ETH 或以下会被强制退出活跃集合,但“低余额退出”和“签名违规罚没”是两回事。
08 · Slashing
协议只审三类可以拿出两份签名的矛盾
Slashing 不是主观判罚。它是任何节点都能重复验证的密码学证据。
- Proposer equivocation:同一验证者为同一 slot 签署两个不同的 BeaconBlockHeader。
- Attester double vote:同一验证者签署两个不同的 AttestationData,但它们具有相同的
target.epoch。 - Attester surround vote:一条 source → target 投票在 epoch 区间上严格包围另一条投票。
同一 Slot,两份区块头
不是“提了两个相邻区块”,而是同一 proposer 在同一个 slot 对两个不同区块头签名。
block A ≠ slot 100
block B
Surround Vote
外层投票的 source 更早、target 更晚,把内层投票完全包围。
double vote:
target_epoch(a) = target_epoch(b) 且 a ≠ b
surround vote:
source₁ < source₂ < target₂ < target₁
“同一个 slot 投两次”不是 attester double vote 的完整定义;规范比较的是不同证明数据与相同 target epoch。
Slashing 法庭
选择一种行为。判断它是普通惩罚、可罚没违规,还是本身没有违规。
先看行为,再看是否存在两份冲突签名
协议不判断动机,只判断消息是否满足明确的 slashable 条件。
罚没不是一次性固定罚单,而是一条时间线
当前 Electra/Fulu 参数下,初始罚金为有效余额的 1 / 4096:
32 ETH 有效余额约 0.0078125 ETH,2048 ETH 有效余额为 0.5 ETH。
真正震慑协同攻击的是后续相关性惩罚:同一约 36 天窗口内被罚没的总权重越大,
每名违规者损失越重;若窗口内达到总活跃权重的 1/3,相关性部分可吞掉完整有效余额。[7]
证据被包含
标记 slashed、初始罚金、强制退出流程启动。
相关性惩罚
回看 8192-epoch 窗口,协同违规越多,个体损失越大。
达到可提款期
至少 8192 epochs 后,剩余余额才进入可提款状态。
S = 8192-epoch 窗口内被罚没的总有效余额
T = 全部活跃有效余额
adjusted = min(3 × S, T)
correlation penalty ≈ 本验证者有效余额 × adjusted / T
真实规范还包含 Gwei / 1 ETH 增量的整数取整。核心不是背公式,而是理解:孤立事故与集体攻击的边际代价完全不同。
09 · Recovery
如果超过 1/3 掉线,链为什么不会永远卡住?
Inactivity leak 不惩罚“坏思想”;它重新调整仍参与者与不参与者的相对权重。
最终性需要 2/3。如果 40% 有效余额在网络分区另一边,剩余 60% 即使全部诚实, 也暂时达不到阈值。Ethereum 选择先停止最终化,保护安全; 当 finality delay 超过 4 epochs,inactivity leak 启动,逐步削减不在当前多数链上正确投 target 的余额, 直到参与一方重新超过 2/3。[12]
60% 在线
诚实但不足 2/3;区块可继续出现,检查点不再最终化。
离线权重下降
未正确投 target 的 inactivity score 上升,惩罚随时间加重。
在线方 > ⅔
超多数链接再次形成,检查点恢复 justified / finalized。
每 epoch 惩罚
= effective_balance × inactivity_score
/ (4 × 2²⁴)
错误 target 或不投票时 score 每 epoch 增加;恢复正确参与后逐步下降。惩罚随持续失联时间加速,而不是固定线性扣款。
安全性优先于即时活性
网络分区时,协议无法知道哪一侧代表“世界真实意图”。如果两侧都贸然降低门槛, 可能各自最终化冲突历史。因此 Ethereum 先守住 2/3 阈值,让最终性停顿; 再通过随时间累积的经济机制恢复一侧的超多数。恢复时间取决于分区比例与参与情况, 不能承诺固定几小时或几天。
它不要求两份矛盾签名,也不会把验证者标记为 slashed。 其目标是恢复链的活性。网络大范围故障时,即便参与者没有恶意,也可能承担这种逐步增强的惩罚。
10 · Attack thresholds
1/3、51%、2/3,分别买到什么能力?
把 PoW 的“51% 攻击”口号直接套到 PoS,会把分叉选择和最终性混为一谈。
攻击能力并不是到 51% 才突然打开。不同权重跨过不同门槛: 严格超过 1/3 可以仅靠不投票阻断 2/3 最终性;超过 1/2 可主导 LMD-GHOST 的链头; 至少 2/3 才能独立形成 FFG 超多数链接。[13]
恶意权重阈值尺
拖动恶意有效余额比例。模型显示的是主要能力,不代表现实攻击必然成功或有利可图。
不能单独阻止最终性
在其他验证者正常参与的前提下,这一权重不足以单独否决 2/3 超多数,也不足以主导链头。
阻断最终性
只要集体拒绝投票,就能让其余权重低于 2/3。Inactivity leak 会逐步侵蚀不参与者的相对权重。
主导链头
可以影响 LMD-GHOST,实施审查和短程重组;但 51% 并不等于能独自形成 FFG 最终性。
独立最终化
可单独为偏好检查点制造超多数链接。若制造冲突最终性,会暴露大规模 slashable 签名。
为什么官方还会提到约 34% 的双重最终性
在攻击者能精细操纵消息传播、把诚实验证者分成两半的异步情形下, 约 34% 攻击者可以在两边双投,使每个分支都凑到约 67%。 这不是“34% 无成本改历史”:攻击者必须大规模双投,至少这 34% 权重会留下罚没证据, 极端情况下还需社区在协议外协调选择恢复分支。
51% 权重可主导链的当前与未来:链头、审查、短程重组、排序。 想独立控制最终化历史,门槛是 2/3,而不是 51%。
11 · Boundaries
Finalized 不是宇宙定律,而是极昂贵的承诺
协议给出密码经济最终性;客户端多样性、弱主观性和社会协调构成更外层的安全边界。
一个 finalized 区块不是物理上“再也不能出现另一份字节”,而是: 若想让诚实社区接受与它冲突的最终历史,攻击者至少要让 1/3 总质押留下可罚没签名, 并承受资本销毁、退出延迟、资产价格与社会响应。它是 crypto-economic finality。
执行有效性
执行客户端独立验证交易、状态转换和区块规则;共识票数不能让无效状态变有效。
链头选择
LMD-GHOST 按最新证明权重选择当前 head,处理短时分叉和消息延迟。
经济定案
Casper FFG 以 2/3 检查点链接推进最终性,并用 slashing 保证可追责安全。
极端恢复
若大规模攻击产生冲突最终性,社区、客户端与基础设施需在协议外协调选择恢复路径。
弱主观性:长时间离线的新节点需要一个近期锚点
PoS 用历史签名投票选链。已经退出并取回资本的旧验证者,理论上可能用旧密钥构造远距离分支; 他们在当下链上已没有可罚资本。为防长程攻击,新加入或离线太久的节点需要从多个可信来源取得 最近的弱主观性检查点,再从那里独立验证向前的链。[14]
主观部分只集中在取得一个近期锚点;从该点向前,客户端继续按协议规则独立验证。 节点运营者可以交叉比对多个客户端、区块浏览器、公共端点与可信节点,避免依赖单一来源。
客户端多样性也是共识安全的一部分
如果绝大多数有效余额运行同一个共识客户端,一处实现 bug 可能让大量验证者同时签错; 相关性罚没恰恰会让共同失败更昂贵。多种独立客户端、不同运营者和地理网络分布, 能降低同一故障同时跨过 1/3 或 2/3 的概率。
“最终化后绝对零风险”“只要少于 51% 就什么也做不了”“质押收益必然覆盖运维风险” 都不是协议保证。PoS 安全是阈值、资本、软件、网络和社会协调共同形成的工程系统。
12 · Synthesis
把一条链从提议走到最终化
如果下面七步能在脑中连续发生,你已经真正掌握本课。
六个问题,检查你是否真的理解
1. Pectra 之后,哪个说法正确?
2. 一份 attestation 为什么同时含 head、source、target?
3. 验证者断网半小时且没有发出冲突签名,最准确的后果是?
4. 约 51% 恶意有效余额最直接能主导什么?
5. Inactivity leak 的核心目的是什么?
6. 两段冲突历史都最终化,为什么至少 1/3 权重可被追责?
Stake 提供可损失的投票权; Validator 用签名履行职责; LMD-GHOST 选择当前链头; Casper FFG 用 2/3 检查点链接推进最终性; Slashing 让冲突签名付出与协同行为相关的资本代价。
13 · Glossary & sources
术语表与一手资料
协议会升级。涉及数值与安全边界时,优先回到当前共识规范与 ethereum.org 官方文档。
本课最小术语表
- Validator
- 在共识层拥有索引、BLS 公钥、有效余额和生命周期状态,承担提议与证明职责的协议身份。
- Effective balance
- 用于投票权、提议概率、奖励和惩罚计算的平滑余额;不一定等于实际余额。
- Slot
- 主网 12 秒的提议机会。可以有区块,也可以为空。
- Epoch
- 32 个 slots,即 6 分 24 秒;全体活跃验证者完成一轮证明职责的基本周期。
- Attestation
- 验证者签署的共识证明,同时含链头投票与 source / target 最终性投票。
- LMD-GHOST
- 按每名验证者最新消息的有效余额,逐层选择最重子树的分叉选择规则。
- Casper FFG
- 通过超多数检查点链接推进 justified 与 finalized 的最终性工具。
- Justified
- 作为有效 target 获得至少 2/3 活跃有效余额支持的检查点状态。
- Finalized
- 在后续超多数链接保护下定案的检查点;冲突最终性会暴露至少 1/3 可罚没权重。
- Slashing
- 对双重提议、double vote、surround vote 等可举证冲突签名的扣款与强制退出。
- Inactivity leak
- 最终性长期停滞时,对未正确参与 target 投票的余额施加递增惩罚,以恢复 2/3 超多数。
- Weak subjectivity
- 新节点或长期离线节点从可信渠道获得近期检查点,再从该点独立向前验证的 PoS 同步要求。
一手资料
第十章第三项:PoS 安全机制——Validator、Stake、Slashing、Finality。
验证者、slot / epoch、最终性、密码经济安全与 inactivity leak。
执行客户端、共识客户端与验证者的职责边界。
执行层提款凭证触发退出与部分提款的协议机制。
0x01 与 0x02 凭证、复利和 2048 ETH 上限。
32 ETH 激活下限、2048 ETH 最大有效余额与验证者合并。
有效余额、复利凭证、罚没与相关性惩罚的当前规范。
32 slots / epoch、8192-epoch 罚没窗口等主网常量。
证明中的 head、source、target、委员会与聚合。
Casper FFG 与 LMD-GHOST 如何共同形成 Ethereum 共识。
Double vote、surround vote、justification 与 finalization 的精确定义。
奖励组成、普通惩罚、slashing 与 inactivity leak。
1/3、约 34%、51% 与 2/3 权重的攻击能力与防御。
长程攻击、近期可信检查点与节点重新同步。
32 / 2048 ETH、初始罚金除数 4096 等当前参数。
验证者生命周期、提款凭证、普通离线与强制退出的运营说明。
Ethereum.org 某些解释页面可能滞后于协议参数。本课关于
32–2048 ETH 有效余额、初始罚金 /4096 与 8192-epoch 相关窗口的数字,
以当前稳定共识规范和主网 preset 为准;Gloas、single-slot finality 等研究方向不作为当前主网事实。