Scarce weight
PoW 给权重,不给身份投票账号可以免费复制,持续算力却必须付出硬件、电力与运维。协议用稀缺资源抵抗女巫攻击。
从0到深入理解以太坊
第十章 · 第一课
Ethereum learning path · 10.01
没有中心裁判,任何人都能加入,身份还能无限复制。 早期以太坊把“谁的历史更可信”变成一场昂贵、公开、容易复验的概率竞赛: 想改写账本,就必须追上全网不断累积的真实工作。
矿工不断改变输入并重算。结果落入目标区间就广播;其他节点会重算证明并重新执行区块, 不会因为“矿工说有效”就直接相信。
Scarce weight
PoW 给权重,不给身份投票账号可以免费复制,持续算力却必须付出硬件、电力与运维。协议用稀缺资源抵抗女巫攻击。
Lottery
算力买概率,不买确定席位某矿工的长期出块份额约等于它的算力份额;单轮仍是随机事件,验证结果却非常便宜。
History
安全来自持续累积的工作节点先检查规则,再在有效分支中选择累计总难度最高者;确认增加的是概率安全,不是魔法式不可逆。
00 · Boundary
理解 PoW 是理解以太坊安全设计演进的必修课,但不能把历史时态写成现在时。
Ethereum Mainnet 从 2015 年 7 月 30 日创世起使用 PoW, 到 2022 年 9 月 15 日 The Merge 时永久停用主网挖矿。 今天的以太坊使用 PoS;不存在“继续挖 ETH 主网”这件事。[1][8]
那为什么还要学 PoW?因为它把三个原本容易混在一起的问题分得很清楚: 交易是否有效、谁有机会提议区块、 多个有效历史出现时跟随哪一个。PoS 改变了资源与投票方式, 却仍在回答同一组分布式协调问题。
Validity
签名、余额、nonce、Gas、EVM 状态转换都必须正确。算力再大也不能把无效块变有效。
Sybil resistance
PoW 让影响力与持续付费的计算资源相关,而不是与可以无限复制的网络身份相关。
Fork choice
节点只在有效候选中比较累计工作,选择总难度更高的分支作为规范历史。
日常会把 PoW 叫作“共识机制”,但更精确地说,它是完整共识栈中的 抗女巫机制与出块竞争方式。网络传播、有效性规则、分叉选择和经济激励也缺一不可。[3]
01 · The coordination problem
共识的难点不是看懂一笔交易,而是在不可靠网络里为冲突历史排出同一个顺序。
假设 Alice 的账户只有 1 ETH。她几乎同时签出两笔都合法的交易: 一笔付给 Bob,另一笔付给 Carol。两笔签名都是真的,单独看也都可能通过余额检查; 但世界状态只能选择一种先后顺序。谁来裁决?
证明 Alice 授权了两份消息
同一余额不能被花两次
网络延迟造成先后视图差异
所有节点最终收敛到同一顺序
因为网络身份很便宜。攻击者可以在一台机器上创建一万个节点地址, 让“人数多数”完全失去意义,这就是女巫攻击。PoW 的关键不是阻止你创建身份, 而是让每一份影响力背后都要持续提供不可免费复制的计算工作。
Identity count · cheap
Work weight · costly
工作量证明是一种难以生成、容易验证的稀有计算证明。 它让任何人都能无许可参与出块,同时把大规模影响网络的成本锚定到现实世界资源。
02 · Hash puzzle
每次试探都容易计算;难点是事先不知道哪一个 nonce 会让输出落进极小的合格区间。
哈希函数把任意输入压成固定长度输出。同样输入总得到同样结果; 输入哪怕只改一位,输出也会像被重新洗牌。对安全哈希而言, 矿工没有已知捷径能提前算出“中奖 nonce”,最实用的策略就是不断试。
Deterministic
节点拿到区块头、nonce 与相关数据后可以重算,结果不依赖矿工的设备或说法。
Avalanche
改变 nonce、交易排序或时间戳都会改变输入,让输出看起来重新随机分布。
Asymmetry
全网矿工可能合计试很多次;验证者只需对胜出的候选重算并检查一次条件。
result = Ethash(header_without_seal, blockNonce, DAG)
valid ⇔ result ≤ target
target ≈ floor(2²⁵⁶ / difficulty)
难度 difficulty 越高,target 越小,合格输出占整个 256 位空间的比例越低。 历史 Ethereum 比较的是 Ethash 最终 result;不是照搬 Bitcoin 的“双 SHA-256 区块哈希”, 也不能把中间的 mixHash 与 final result 混为一谈。[4]
Interactive lab · 01
优先使用浏览器 SHA-256,只演示“输出落入目标区间”的通用结构。 历史 Ethereum 实际使用 Ethash;这不是挖矿工具。
调整目标后开始。难度提高一档,平均尝试次数约乘 16,但单轮可能第一次就命中,也可能久等。
区块 PoW nonce 是矿工试探的 64 位块头字段;账户 transaction nonce 是防重放、确定同账户顺序的计数器; nonce 也不是密码或被“解密”的答案。有效证明只说明这个结果统计上稀有, 不会记录矿工真实试了多少次或精确消耗了多少焦耳。
03 · Mining loop
挖矿不是“替全网算一遍交易”这么简单,也不是找到 nonce 后别人就无条件接受。
跟随当前累计总难度最高的有效分支
从本地交易池组装候选区块
验证并计算新状态与收据
承诺交易根、状态根、难度等字段
使用当前 Ethash epoch 的数据集
反复运行 Ethash 并比较 target
合格后尽快传播给全网节点
重算 PoW、交易与最终状态根
矿工先执行交易,是为了构造一个内部一致的候选区块;其他全节点收到后仍会独立复验。 如果父块不对、难度字段不合法、PoW 不达标、交易无效或状态根不匹配, 节点就拒绝它。PoW 从来没有取消“不要信任,要验证”。[2]
改一笔交易会改变交易根与状态根,继而改变块头;原模板上的搜索不能直接证明新模板。 当另一个矿工先广播新链头时,诚实矿工会切换父块、更新候选内容,再开始新一轮。
矿工是历史 PoW 中争夺出块权的节点角色;大量不挖矿的全节点同样能检查区块。 共识安全不要求普通验证节点也烧掉与矿工相同的电力,正是“寻找昂贵、验证便宜”让独立监督成为可能。
04 · Hashrate & difficulty
更强的矿机不会排到更靠前的位置;它只是每秒能买更多张互相独立的概率彩票。
矿工下一块胜出概率 ≈ h / H
长期区块份额 ≈ h / H
期望出块间隔 ∝ difficulty / network hashrate
h 是该矿工算力,H 是全网算力。这些是长期期望,不保证短期平均分配。 30% 算力可能连续赢两块,也可能十轮都没赢;随机波动正是小矿工加入矿池的原因之一。
Hashrate
单位通常写 H/s、MH/s、GH/s。它描述搜索速度,不描述节点数或矿工人数。
Difficulty
难度升高会缩小 target。它是协议规则,不是某个矿工可以随便填写的报价。
Block time
算力突然增加会暂时加快出块;难度随后调整,让平均间隔回到目标附近。
Interactive lab · 02
以历史约 13.3 秒为基准做比例教学。真实 Ethereum PoW 难度按块调整, 还曾包含独立的 difficulty bomb 项;这里不复刻完整公式。
算力与难度都在基准值,示例期望出块间隔约 13.3 秒。
如果全网算力翻倍而难度不变,区块会暂时更快出现;难度调整后,平均间隔回归。 区块 Gas 上限、传播与执行负担并不会因为矿机增加而自动翻倍。 PoW 算力主要改变的是重写历史所需追赶的工作速率,不是主网 TPS。
05 · Fork choice & confirmations
网络延迟会短暂制造多个有效链头;共同规则让节点在新工作到来后重新收敛。
两名矿工可能几乎同时在同一父块上找到有效 PoW。靠近矿工 A 的节点先看到 A, 靠近矿工 B 的节点先看到 B。此时没有谁作弊,网络只是暂时拥有两个局部视图。
TotalDifficulty(block) = TotalDifficulty(parent) + difficulty(block)
历史 Ethereum 的节点先拒绝无效块,再在有效分支中选择累计总难度最高的链。 不能靠填写一个夸张 difficulty 作弊:难度字段必须按协议从父块等信息算出, 同时更高难度意味着必须满足更小 target。[3][11]
交易所在块后每多一个规范链后继块,攻击者就要从更早的分叉点重做更多工作, 同时诚实链仍在继续增长。如果攻击者算力占比低于诚实网络, 追上的概率会随确认深度快速下降,但不会在某个固定数字突然严格归零。
Interactive lab · 03
使用 Bitcoin 白皮书中的经典 Poisson 追赶模型展示方向。 它不是历史 Ethereum 的运营保证,也不意味着“六确认绝对安全”。
q = 20%、收款方等待 6 个后继块时,理想化攻击成功概率约 1.43%。增加确认会继续降低概率。
PoW Ethereum 依赖概率性结算:后继工作越多,重组越不可能。 今天 PoS Ethereum 还拥有 justified / finalized 检查点与罚没条件下的明确最终性概念。 不要把现代区块浏览器里的 “finalized” 反向投射到历史 PoW。
06 · Energy competition
链上只记录胜出证明;安全却来自攻击者必须追上所有诚实竞争者持续投入的总工作速率。
某个矿工可能第一次就命中,PoW 证明不会附上一张电表读数。 但在整个网络层面,稳定产生稀有结果需要持续大量试探。矿工为了争取预期收入购买设备和电力, 竞争把一部分奖励转化成现实成本,也把改写历史变成昂贵工程。
发行、可得费用与其他收入
利润吸引更多设备上线
全网每秒尝试次数增加
目标缩小,节奏回归附近
竞争压缩利润并提高追赶门槛
expected revenue ≈ hashrate share × block opportunities × reward
profit = expected revenue − electricity − hardware − operations
协议只检查计算结果,不读取矿场电表。币价、奖励、硬件效率、电价、散热和融资条件共同塑造均衡; 因此难度不是由协议直接设置的“耗电配额”。
从计算产出看,绝大多数未命中的哈希不会进入链上;从安全机制看, 正是无法回收的外部成本让大规模造假难以免费复制。你可以认为这种安全设计的环境代价不可接受, 也可以研究它当时提供的开放参与与攻击成本;但不要把“有安全作用”误写成“没有环境成本”, 也不要把“耗能很高”误写成“每笔交易单独烧掉固定电量”。
The Merge 停用 PoW 后,ethereum.org 的高层估计是网络能耗下降约 99.95%。 这并不否定 PoW 曾提供的安全,而是说明 PoS 改用可罚没的质押资本承担抗女巫与安全成本, 不再要求全网持续进行哈希竞赛。[8]
07 · Ethereum-specific PoW
Ethereum Mainnet 的历史 PoW 不等于 Bitcoin 挖矿;它只使用过 Ethash 这一套主网算法。
Ethash 是 Dagger-Hashimoto 的演化版本。它让每次试探都要伪随机读取一个很大的数据集, 试图降低专用 ASIC 相对通用 GPU 的数量级优势,让更多普通硬件能参与。 这是 memory-hard / ASIC-resistant 的设计目标,不是“永远不可能做 ASIC”的数学承诺。[4][5]
确定所属 PoW epoch
从历史确定性派生
较小数据供生成与轻验证
大量伪随机内存读取
mix 后得到最终比较值
Epoch
Ethash epoch 会切换 seed 与数据集。它与 PoS 中 32 slots 的 epoch 完全不是同一个概念。
Dataset
它不是账户、合约存储或交易历史副本,而是由 seed 确定生成的挖矿数据集。
Verification
验证者可用较小 cache 按需重建访问项,使独立验证仍远便宜于全网搜索。
专用硬件仍可以优化内存布局、能效和并行度,Ethash ASIC 后来也确实出现。 算法能做的是改变优势来源、提高专用设计成本、缩小相对优势, 不能取消规模采购、低电价、散热与资本带来的集中化压力。
本页交互哈希实验用 SHA-256 只是因为浏览器原生可计算它,展示统一的 target 直觉。 Ethereum Ethash 结合 Keccak 系列运算、cache、DAG 与混合过程; 不能据此写成“Ethereum 也像 Bitcoin 一样不断做双 SHA-256”。
08 · Variance & latency
随机收益与网络传播让 PoW 不只是算法问题,也产生组织与地理层面的集中化压力。
单个小矿工即使长期期望合理,也可能几个月都碰不到一块。 矿池协调许多设备共同搜索,要求成员提交满足较低内部门槛的 “share” 来证明贡献, 再按规则分配真正区块奖励。它降低收入方差,却也可能把候选区块模板与算力协调权集中到少数运营者。
随机出块与网络延迟会让两名矿工在相近时刻从同一祖先产生有效块。 其中一支最终成为规范链,另一块没有承载规范状态。 历史 Ethereum 允许后续规范块引用符合亲缘与深度条件的落败有效块头,称 ommer, 旧资料也写 uncle,并给予部分奖励。[2]
What is included
ommer 中的交易不会因为被引用就进入规范状态;后继规范块只是记录其 header 并触发奖励规则。
What is not weight
分叉选择仍累计规范父子链上的 difficulty。ommer 奖励缓和传播劣势,不等于把其工作直接加进 TD。
09 · Majority attack
多数算力攻击很严重,但把它说成“可以随便偷任何人的币”会模糊真正的防线。
在理想模型里,攻击者持续控制超过一半的活跃算力,就能让自己的有效私有分支 长期平均增长得比其余网络更快。这使深度重组与持续审查成为现实威胁。 但全节点仍逐项检查规则;算力只能在有效历史之间争夺权重。
“51%”是对多数优势的口语化表达,指活跃网络算力份额, 不是节点数、电脑数、矿工人数、持币量或电力份额。低于 50% 的攻击者仍可能凭短期运气完成浅重组; 高于 50% 表示在理想长期模型中获得正的追赶漂移,不代表一秒钟内解锁所有能力。
PoW 没有像 PoS slashing 那样把攻击者的协议内抵押物自动罚没。 矿机、电力合同与已付成本都在协议之外;重大攻击后的恢复可能依赖交易所响应、矿工迁移、 客户端升级或更广泛的社会协调。这正是比较 PoW 与 PoS 安全模型时的重要分界。
10 · Transition
这就是 PoW 自然引出的下一问,也是以太坊多年研究 PoS、最终执行 The Merge 的主线。
Ethash 矿工以硬件和电力竞争区块;链按累计总难度收敛。
PoS 验证者系统先独立运行,不处理原主网的用户交易。
Beacon Chain 成为主网共识引擎,执行状态与全部历史完整保留。
| 同一个问题 | 历史 PoW Ethereum | 今天 PoS Ethereum |
|---|---|---|
| 抗女巫资源 | 持续算力、硬件、电力与运维 | 锁定并承担风险的 ETH stake |
| 出块角色 | 矿工竞争找到合格 Ethash 结果 | 协议按 slot 选择验证者提议区块 |
| 分叉权重 | 有效链的累计总难度 | 按质押余额加权的验证者证明 |
| 结算性质 | 随确认增长的概率安全 | fork choice 加 justified / finalized 检查点 |
| 作恶惩罚 | 外部成本、失去收益与可能的设备机会成本 | 协议内奖励、惩罚与可验证的 slashing |
| 能源形态 | 持续大规模哈希竞争 | 普通服务器运行验证;不再挖矿 |
The Merge 的触发采用 Terminal Total Difficulty:当 PoW 链累计到规定总难度, 共识切换到 Beacon Chain。它没有创建“新 ETH”替换“旧 ETH”,没有丢失账户、合约或交易历史; 也不是一次直接扩容升级,目标不包括显著降低 Gas 费或提高 L1 TPS。[8][9]
PoW 让参与者持续购买外部资源,证明“我为这份历史付出了不可免费复制的成本”; PoS 则让验证者先把内部资本放到协议的刀口下,作恶时可以直接惩罚。 下一课将完整拆解 The Merge 如何在不停机、不清空状态的情况下更换这台“共识引擎”。
11 · Synthesis
如果你能从左到右讲清这六格,就已经掌握了矿工、算力、电力与历史安全的主骨架。
请选择一个答案。
请选择一个答案。
请选择一个答案。
请选择一个答案。
请选择一个答案。
请选择一个答案。
完成任意一题后,这里会显示进度。
12 · Reference
这是一堂历史协议课:精确资料要同时标明机制、版本与今天是否仍在使用。
本页对应《从0到深入理解以太坊:系统学习目录》PDF 第七篇“共识机制”、 第 10 章“从 PoW 到 PoS”的第一项:“PoW:矿工、算力与电力竞争”。 下一项是 The Merge,第三项是 PoS 的 Validator、Stake、Slashing 与 Finality。
Lesson complete · 10.01