学习视频来源:https://www.bilibili.com/video/BV1Vt411X7JF/?p=21
本博客除了包含自己的在学习过程中记录的笔记外,还包含少部分自己扩展的内容,如有错误,敬请指正。
文章目录
- [1. 工作量证明(PoW)的高能耗批评](#1. 工作量证明(PoW)的高能耗批评)
-
- [1.1 比特币](#1.1 比特币)
- [1.2 以太坊](#1.2 以太坊)
- [2. PoW 的经济逻辑与安全模型](#2. PoW 的经济逻辑与安全模型)
- 3.权益证明(PoS)如何改变安全模型?
-
- [3.1 PoS 的早期挑战:Nothing at Stake(无利害冲突)](#3.1 PoS 的早期挑战:Nothing at Stake(无利害冲突))
- [4. 以太坊的 PoS 方案:Casper FFG](#4. 以太坊的 PoS 方案:Casper FFG)
-
- [4.1 核心特性:Finality(最终性)](#4.1 核心特性:Finality(最终性))
- [4.2 验证者(Validator)机制](#4.2 验证者(Validator)机制)
- [4.3 共识流程(投票类比数据库的两阶段提交)](#4.3 共识流程(投票类比数据库的两阶段提交))
- [4.4 激励与惩罚机制](#4.4 激励与惩罚机制)
- [4.5 验证者任期与退出机制](#4.5 验证者任期与退出机制)
- [4.6 安全性分析](#4.6 安全性分析)
- [5. 为何以太坊最初未采用 PoS?](#5. 为何以太坊最初未采用 PoS?)
- [6. 对 PoW 能耗的不同观点](#6. 对 PoW 能耗的不同观点)
- [7 最新以太坊PoS全流程](#7 最新以太坊PoS全流程)
-
- [7.1 质押门槛:32 ETH](#7.1 质押门槛:32 ETH)
- [7.2. 进入激活队列](#7.2. 进入激活队列)
- [7.3 出块节奏:slot 与 epoch](#7.3 出块节奏:slot 与 epoch)
- [7.4 提议者选择](#7.4 提议者选择)
- [7.5 投票验证](#7.5 投票验证)
-
- (1)检查点(Checkpoint)
- [(2)Attestation 的广播机制](#(2)Attestation 的广播机制)
- [(3)Head Vote和Target Vote](#(3)Head Vote和Target Vote)
- [(4)Finality 的触发条件](#(4)Finality 的触发条件)
- [(5) 示例](#(5) 示例)
-
- [Step 1:Epoch 10 期间(slots 320--351)](#Step 1:Epoch 10 期间(slots 320–351))
- [Step 2:Epoch 11 期间(slots 352--383)](#Step 2:Epoch 11 期间(slots 352–383))
- [Step 3:Epoch 12 期间(slots 384--415)](#Step 3:Epoch 12 期间(slots 384–415))
- [7.6 最终性(Finality):不可逆的确认](#7.6 最终性(Finality):不可逆的确认)
- [7.7 退出机制:自愿退出与强制踢出](#7.7 退出机制:自愿退出与强制踢出)
1. 工作量证明(PoW)的高能耗批评
比特币和以太坊所用的工作量证明(PoW)受到的一个显著的批评就是浪费电。 其能耗规模相当可观,但其利润空间也很大。
1.1 比特币
-
能耗 :一年能耗约 69TWh ,能耗相当于一些小国家的用电量,占全世界能耗的 0.31% 。相当于600多万百万个家庭的年用电量。 一笔交易平均耗电约 1000度。
-
收益 :一年能耗约 20 TWh ,占全球总能耗的 0.09% 。比比特币少不少,但仍很大。相当于 100多万个家庭 的年用电量,一笔交易平均耗电 67度电。
1.2 以太坊
- 能耗 :挖矿每年总收入约 60亿美元 ,费用为 35亿美元 ,占总收入的 57%,说明挖矿的利润空间仍然很大。
- 以太坊 :以太坊挖矿年总收入约 50亿美元 ,收益为 24亿美元,挖矿收益同样可观。
若将比特币和以太坊的能耗合并计算,作为一个"国家"来看,其用电量在全球排名第 34 位 。
尽管以太坊支持智能合约等更复杂功能,而比特币仅用于转账,但以太坊能耗反而更低。原因在于比特币出块时间为 10分钟 ,而以太坊仅为 十几秒 。
然而,无论是比特币还是以太坊,其单笔交易能耗仍远高于传统支付系统(如信用卡)。
2. PoW 的经济逻辑与安全模型
矿工挖矿是为了获得区块奖励。设置区块奖励的目的是激励矿工参与区块链维护、记账、打包他人交易。
- 挖矿收益由 挖到多少区块 决定。
- 区块产出概率由 算力 决定。
- 算力由 矿机性能 决定。
- 矿机由 投入资金 决定。
因此,挖矿的收益本质上是由"拼钱"决定的。
既然最终是拼钱,那为什么不直接比钱,省去买矿机、部署矿场、消耗电力等过程?
这正是 权益证明(Proof of Stake, PoS)的基本思想 : 省去挖矿过程,大幅降低能耗,保护环境。
此外,基于 PoW 的共识机制在安全资源上存在一个关键问题: Blockchain is security by minting,但 minting(挖矿)所依赖的设备是用法币从系统外部购买的。
这意味着:
- 一个资金雄厚的组织,只需用法币购买大量矿机,即可获得 51% 算力,发动 51% 攻击。
- 对于比特币这类主流币种,由于总算力巨大,所以抗攻击能力较强。但对于刚上线的小币种,若遭遇此类攻击,可能导致 "Altcoin Infanticide"(新生币屠杀) ------ 币价崩盘,项目夭折。
3.权益证明(PoS)如何改变安全模型?
在 PoS 机制下,若某人想发动攻击,他必须 持有并质押大部分代币 。 这些代币只能从 加密货币系统内部 获取(例如通过市场购买)。
- 若用大量法币买入该币以获取控制权,会直接推高币价,大幅增加攻击成本。
- 此外,为防止"富者愈富",许多 PoS 设计会限制质押币的使用方式。
例如:
- Proof of Deposit(质押证明) :为降低挖矿(验证)难度而质押的币,在使用后会被 锁定一段时间,需等待若干区块后才能取出。
3.1 PoS 的早期挑战:Nothing at Stake(无利害冲突)
在 PoW 中:
- 区块链出现分叉时,矿工会选择在 最长链 上继续挖矿。
- 不会同时在两条链上挖,因为算力分散会降低收益概率。
但在早期 PoS 设计中:
- 验证者在一个分叉上投票,不会影响其在另一个分叉上投票的能力。
- 因为质押的币可被重复用于多个分叉,几乎没有额外成本 → 导致 "两边下注"问题。
4. 以太坊的 PoS 方案:Casper FFG
以太坊准备采用的 PoS 协议是 Casper the Friendly Finality Gadget (FFG)。
这个课是2018年,当时以太坊用的还是PoW,没有切换到PoS
4.1 核心特性:Finality(最终性)
- 在 PoW(如比特币)中,没有真正的 Finality:只要有更强算力,就可以从历史某个点分叉,使原链上的交易失效。
- 而 Casper 引入了 Finality 概念 :一旦区块进入 Finality 状态,交易不可再被更改或回滚。
4.2 验证者(Validator)机制
- 要成为验证者,必须 质押一定数量的资金(ETH),这些资金会被锁定。
- 验证者的职责是 投票决定哪条链是合法的最长链。
- 投票权重取决于 质押金额的大小。
4.3 共识流程(投票类比数据库的两阶段提交)
-
初始设计 :每 100 个区块为一个 epoch。
- 每个 epoch 进行 两轮投票 :
- Prepare message(准备阶段)
- Commit message(提交阶段)
- 每轮需获得 2/3 验证者支持 才能通过。
- 每个 epoch 进行 两轮投票 :
-
优化后设计 :将 100 个区块切半,每 50 个区块为一个 epoch。
- 每个 epoch 结束时进行一轮投票:
- 对当前 epoch 是 prepare
- 对前一个 epoch 是 commit
- 连续两个 epoch 都获得 2/3 投票,才算达成 Finality。
- 每个 epoch 结束时进行一轮投票:
4.4 激励与惩罚机制
- 正常参与投票 → 获得出块奖励。
- 不良行为将被惩罚 :
- 不作为(该投票时不投票)→ 没收部分保证金。
- 双签/两边下注 (在同一高度为两个分叉投票)→ 没收全部保证金。
- 被没收的 ETH 直接销毁,相当于减少总供应量。
4.5 验证者任期与退出机制
- 验证者有 固定任期,并非永久身份。
- 任期结束后申请退出,需经过 等待期 。
- 此期间供其他节点检举揭发。
- 若无违规行为,可取回 本金 + 奖励。
4.6 安全性分析
- 一旦区块进入 Finality,普通矿工无法推翻。
- 要发动攻击,必须有 至少 1/3 的验证者合谋进行两边下注,且在每轮投票中都达成 2/3 多数。备注:为什么是1/3? 比如有2个区块都达到了2/3, 则2/3 + 2/3 - 1 = 1/3,说明至少有1/3两边下注。
- 但一旦被发现,全部质押金将被罚没并销毁,代价极高。
因此,PoS 与 PoW 在安全模型和经济激励上存在本质差异。
5. 为何以太坊最初未采用 PoS?
- PoS 在早期技术不成熟,缺乏经过验证的安全模型。
- PoW 是当时唯一被实践验证的去中心化共识机制(比特币已运行多年)。
- 因此,以太坊在启动阶段选择沿用 PoW,待 PoS 理论与工程实践成熟后再过渡。
6. 对 PoW 能耗的不同观点
尽管 PoW 被批评为"浪费能源",但也存在不同声音:
- 比特币和以太坊合计能耗约占全球 0.4%,比例不算特别高。
- 挖矿可视为一种 将电能转化为价值的手段。
- 电力本身 难以存储和远距离传输 ,而挖矿可就地消纳 过剩或弃用的电力(如水电、风电)。
- 在某些地区,挖矿产业带动了 当地经济发展,创造了就业和基础设施投资。
7 最新以太坊PoS全流程
老师讲这门课的时候,是在2018年,当时以太坊还没有从POW转型到PoS。现在,截至 2026年2月 ,以太坊早已完成从工作量证明(PoW)到权益证明(PoS)的全面转型("The Merge"发生于2022年9月)。因此,以太坊已不再存在"挖矿" (即通过算力竞争出块),取而代之的是 质押(Staking)与验证(Validation)机制。以下是当前以太坊 PoS 共识机制的完整流程详解:
7.1 质押门槛:32 ETH
要成为独立的 验证者(Validator) ,必须向以太坊官方质押合约存入 32 ETH 。必须是32ETH,不能多也不能少,想运行多个验证者,每个验证者也是需要32 ETH ,每个验证者都有独立的密钥对和运行自己的验证节点。这 32 ETH 是"入场券",也是"保证金"。 质押后,ETH 被锁定在信标链(Beacon Chain)中,无法随意取出,直到主动退出并完成流程。
7.2. 进入激活队列
即使你已发送 32 ETH 到质押合约,也不会立即成为活跃验证者,需要排队。
- 所有新验证者需进入 激活队列(Activation Queue)。
- 以太坊通过 Churn Limit(轮换限制) 控制每 epoch 新增验证者数量,防止网络突变。每个 epoch (约 6.4 分钟)最多激活 8 个新验证者(即 256 ETH)。
因此,若排队人数多,可能需等待数天甚至更久。一旦激活,验证者身份正式生效,开始参与共识。
7.3 出块节奏:slot 与 epoch
- slot(时隙) :每 12 秒 为一个 slot,系统期望在此时间内产生一个区块。
- epoch(纪元) :每 32 个 slot (即 384 秒 ≈ 6.4 分钟)构成一个 epoch。 所有关键共识操作(如投票、最终性判断、奖励结算)均以 epoch 为单位进行。
7.4 提议者选择
每个 slot 会 随机指定一名验证者 作为 区块提议者(Proposer)。
- 随机性由 RANDAO + VDF(可验证延迟函数) 机制生成,确保不可预测且可验证。
- 被选中的提议者需:
- 从内存池(mempool)收集合法交易;
- 构建新区块;
- 广播该区块给全网。
不是"谁算得快谁赢",而是"系统指派你干活"。
7.5 投票验证
为防止单一提议者作恶,每个 slot 还会 随机选出数千名其他验证者 组成 证明委员会 。委员会成员需对提议者发布的区块进行 合法性检查 。若区块合法,他们就签署 Attestation(证明),表示支持。Attestation 包含两部分投票:
- 对当前 slot 区块的投票(LMD GHOST 规则);
- 对前一个 epoch 的检查点(Checkpoint)的投票(用于 Finality)。
下面我们详细解释:
(1)检查点(Checkpoint)
- 在以太坊 PoS 中,每个 epoch 的第一个 slot 的区块头 被定义为该 epoch 的 检查点(Checkpoint)。1epoch = 32 个 slots(约 6.4 分钟) 所以 Checkpoint 出现在 slot 0, 32, 64, 96, ...
例如:
- Epoch 10 的 Checkpoint 是 slot
10 × 32 = 320的区块头。- Epoch 11 的 Checkpoint 是 slot
352的区块头。
(2)Attestation 的广播机制
- 以太坊有数十万验证者(截至 2026 年约 100 万+)。
- 每个 epoch(32 slots)中,所有验证者都会被分配到 exactly one slot 来提交 attestation。
- 因此,在每一个 slot,大约有 总验证者数 ÷ 32 ≈ 数千人 同时广播 attestation。
(3)Head Vote和Target Vote
每个验证者在自己被分配到的 slot 中提交的 attestation(证明) 必须包含2个票:Head Vote和Target Vote。
| 投票类型 | 投给谁? | 用途 |
|---|---|---|
| Head Vote | 当前看到的最新合法区块(由 LMD GHOST 选出) | 决定主链走向 |
| Target Vote | 当前 epoch 的检查点(即本 epoch 第一个 slot 的区块) | 用于 Casper FFG 最终性 |
(4)Finality 的触发条件
Finality 的触发条件依赖于连续两个 epoch对各自检查点的成功投票。
-
Justification(合理化):
- 如果一个检查点 C1 获得 ≥2/3 验证者的 target vote,它就被标记为 justified。
-
Finalization(最终确定):
- 如果 C1 是 justified,并且它的下一个检查点 C2 也被 justified ,那么 C1 就被 finalized。
(5) 示例
Step 1:Epoch 10 期间(slots 320--351)
- 所有验证者在各自被分配的 slot 中提交 attestation。
- 每个 attestation 包含:
- Head Vote:指向他们认为最新的合法区块(比如 slot 345 的区块)。
- Target Vote :全部指向 C₁₀(slot 320 的 checkpoint),因为当前是 Epoch 10。
此时,网络开始统计对 C₁₀ 的 target vote 总权重。
假设到 Epoch 10 结束时,超过 2/3 的质押 ETH 权重 投了 C₁₀,则 C₁₀ 被标记为 "justified" (合理化),但尚未 finalized。
Step 2:Epoch 11 期间(slots 352--383)
- 现在进入 Epoch 11。
- 所有 attestation 的 Target Vote 改为指向 C₁₁(slot 352 的 checkpoint)。
- Head Vote 仍指向最新区块(如 slot 370 的区块)。
注意:没有人在 Epoch 11 投 C₁₀ 作为 target!
但系统会记住:C₁₀ 已经 justified。
到 Epoch 11 结束时,假设 C₁₁ 也获得了 ≥2/3 的 target vote 。则 C₁₁ 被 justified。
此时,系统检查:
- C₁₀ 是 justified,
- C₁₁ 也是 justified,
- 且 C₁₁ 是 C₁₀ 的直接后继 checkpoint。
触发 Finality 规则 :C₁₀ 被 finalized! , 这意味着slot 320 及之前的所有区块(即整个 Epoch 10 及更早)现在不可逆。
Step 3:Epoch 12 期间(slots 384--415)
- Attestation 的 Target Vote 现在指向 C₁₂(slot 384)。
- 到 Epoch 12 结束,若 C₁₂ 获得 ≥2/3 投票 → C₁₂ justified。
- 因为 C₁₁ 已 justified,C₁₂ 也 justified → C₁₁ 被 finalized。
7.6 最终性(Finality):不可逆的确认
这是 PoS 与 PoW 的核心区别之一。
- 每个 epoch 结束时,验证者会对该 epoch 的 检查点(Checkpoint) 进行投票。
- 当 连续两个 epoch 都获得 超过 2/3 的总质押权重 支持时:前一个 epoch 内的所有区块被标记为 Finalized(最终确定)。
- Finalized 的区块无法被回滚或篡改,除非发生硬分叉。
举例:若 Epoch 10 和 Epoch 11 均达成多数投票,则 Epoch 10 中的所有区块(共 32 个)即为 Finalized。
7.7 退出机制:自愿退出与强制踢出
(1)自愿退出
- 验证者可随时发起退出请求。
- 退出也需进入 退出队列(Exit Queue),受 Churn Limit 限制(每 epoch 最多退出 8 人)。
- 退出后,还需经过 约 27 小时的延迟期(约 4 个 epoch),才能提取本金和收益。
(2)强制踢出
若验证者被发现恶意行为,将被 罚没 并强制退出:
- 双重出块:同一 slot 发布两个冲突区块;
- 双重投票:在同一高度为两个不同区块投票(即"两边下注")。
- 后果:
- 至少 1 ETH 被罚没 ,严重时 全部 32 ETH 被销毁;
- 立即进入退出队列,且 无延迟期豁免;
- 无法再重新激活该验证者密钥。
每个验证者由一对 BLS 密钥 唯一标识(公钥注册在信标链,私钥由验证者保管)。一旦该验证者因恶意行为(如双签、双重出块)被 成功罚没(slashed)。其对应的 验证者记录(validator record)会被标记为 slashed = true,即使后来把剩下的 ETH 提出来,也无法用同一对密钥再次质押 32 ETH 成为新验证者。协议会拒绝任何使用已被 slash 的公钥发起的存款请求。相当于被以太坊存款合约给拉黑了!