比特币用 PoW:想记账先烧算力、烧电。以太坊后来改用 权益证明(PoS):不拼算力,改成先锁一笔币当押金,谁押得多、谁就有机会被选中打包区块并拿奖励;乱来就罚没押金。下面用最直白的方式讲清楚:PoS 为啥省电、质押和验证者是啥、提议与认证(投票)怎么进行、什么叫最终性,以及罚没(Slashing) 如何让作恶不划算。
一、从 PoW 到 PoS:少烧电,多押钱
PoW 靠矿工算难题、拼算力,谁先算出来谁打包区块。安全是安全,但全网一直在「疯狂算题」,非常耗电。
PoS 的思路是:不靠算力,靠经济权益。
- 想参与记账?先质押一定数量的链上原生币(例如以太坊上要 32 ETH)。
- 被选中的验证者负责打包区块、给区块签名,其他验证者投票认不认这个块。
- 诚实干活有奖励,作弊(比如同一高度提两个块、或乱投票)会被发现,押金被罚没,甚至踢出网络。
「同一高度提两个块」是啥?
链上每个位置(每个时隙 / 区块高度)按规定只能有一个合法区块。如果你作为这一轮的提议者,在同一高度先提了一个块 A,又提了另一个块 B(内容不同),就等于在「同一个坑里挖了两份答案」,会被视为双重提议。其他验证者可以把这两份签名都提交上链,链上规则一比对就能证明你违规,从而触发罚没。
「踢出网络」怎么实现?
罚没时,协议不仅会扣掉或销毁你的一部分(甚至全部)质押,还会把你的验证者身份强制退出:从「活跃验证者集合」里移除,在一段时间内(或按规则永久)不能再参与提议和投票,相当于被「踢出」共识层。想再参与,通常要重新排队、满足条件后才能再入,所以作恶代价很高。
一句话:PoW 用「烧电」当门票,PoS 用「锁币当押金」当门票,都能把捣乱成本拉高,从而抗女巫、保安全。
二、区块链身份与签名:验证者凭什么代表「你」?
PoS 里「谁有权打包、谁在投票」都跟身份和签名绑在一起。这块用最简版说清楚。
- 私钥:只有你自己有的秘密,用来签名。签了名就代表「你授权了这条消息」。
- 公钥 / 地址:从私钥推出,可以公开,别人用它们来验证「这个签名是不是你的」。从公钥推不回私钥,所以公开也没事。
- 数字签名:用私钥对一段数据(比如一笔交易、或整个区块)做一次运算,得到一串唯一结果。别人用你的公钥 + 这段数据 + 签名,能验证两件事:真实性(确实是你签的)、完整性(数据没被改过)。
整个过程是怎样的?怎么用公钥验证?
可以分两步想:
-
签名(你来做):你手上有私钥和要签的数据(例如一笔交易或整个区块)。把「数据」和「私钥」一起送进签名算法(如椭圆曲线里的 ECDSA),算法会算出一串固定格式的结果,这就是签名。签名只跟「这份数据 + 这把私钥」有关:同一份数据、同一把私钥,每次签出来的结果可以相同(或按协议带随机数);数据或私钥变一点,签名就完全不一样。
-
验证(任何人来做):验证者手上有公钥、原始数据和签名这三样。把这三样一起送进验证算法(和签名算法成对,是公开的)。验证算法不会去「反推私钥」,而是做一道数学上的检查:「这个签名,是不是由持有与这把公钥配对的私钥的人,对这段数据签出来的?」
- 若是:算法输出「通过」→ 说明真实性成立(确实是你签的)、完整性成立(数据没被改过,改过的话验证会失败)。
- 若否:算法输出「不通过」→ 要么签名不是你的,要么数据被改过,要么公钥和签名不匹配。
所以:私钥 = 只有你能用的「盖章」,签名 = 盖完章留下的痕迹,公钥 = 人人都有的「验章器」——谁都可以用公钥 + 数据 + 签名来验证「这个痕迹是不是你的章盖的、纸有没有被换过」,但没人能从公钥或签名反推出你的私钥。
在 PoS 里,被选中的验证者用私钥对区块签名,全网用对应的公钥 + 区块内容 + 签名做上述验证,就能确认:这个块是不是这位验证者出的、内容有没有被篡改。
钱包安全:私钥和助记词绝对不能泄露或告诉任何人,否则别人可以完全控制你的资产。
三、谁可以当验证者?质押与「被选中」
- 门槛:在链上质押一定数量的原生币。以太坊上目前是至少 32 ETH。这些币会被锁定,不能随便转走。
- 角色:锁了币、跑节点、按协议参与提议和投票的人,就是验证者。
- 谁出块:协议按时隙(slot)(例如以太坊约 12 秒一个时隙)运行,在每一个时隙里,用伪随机方式选出一名验证者作为提议者,由他打包并提交一个新区块。
- 为啥是「权益」证明:你押的越多(或押的越久),被选中的概率和影响力越大,所以叫「权益」证明——权益 = 你在链上的押金。
这里的「打包」和比特币的「挖矿」一样吗?以太坊还有矿工吗?
- 打包:把一批交易装进一个区块、算出区块哈希、把区块广播出去——这一步在 PoW 和 PoS 里都有,形式类似。
- 差别在「谁有权出块、怎么拿到这个权」:
- 比特币(PoW):全网矿工一起算题(猜 nonce、拼算力),谁先算出来谁就有权出块。所以「挖矿」= 算题 + 打包,新区块来自矿工。
- 以太坊(PoS,2022 年合并后):已经没有矿工了,只有验证者。每个时隙由协议选定一名验证者当提议者,他不用算题,直接打包交易、对区块签名、广播。新区块就来自这位被选中的验证者,不来自「挖矿」。
所以:PoS 里没有「矿工」这个概念,只有验证者;打包的活儿类似,但出块权不是算出来的,而是按规则被选中的。
四、提议与认证:一个块怎么被大家认账?
- 提议:当前时隙被选中的验证者,把收集到的交易打成一个区块,用自己的私钥对区块签名,然后广播出去。
- 认证(Attestation):其他验证者收到这个区块后,检查合法性(签名对不对、交易是否合规、是否接在最长链上等)。觉得没问题就投一票(也用自己的私钥签名),表示「我认这个块」。这个投票过程就叫认证。
- 通过条件:一个区块要被接纳,通常需要拿到至少 2/3 质押权益对应的验证者的认证。达到这个比例,大家就认为「共识达成」,这个块算被确认。
这样,提议者负责出块,其余验证者负责投票,没有「算力竞赛」,只有「按规则提议 + 按规则投票」。
五、最终性:什么时候算「再也不能改」?
- 确认:一个区块拿到足够多(例如 2/3)的认证后,就处于已确认状态。
- 最终区块:在多数 PoS 设计里,当这个块后面又接上了后续的、也被确认的区块时,这个块就从「已确认」升级为最终——即被视为永久写入历史,不可回滚。
- 所以:先确认,再随着后续块被确认而变成最终。你在链上收到款,等区块「最终」后,就可以认为这笔钱不会再被链本身推翻。
六、罚没(Slashing):作恶就扣押金
PoS 的安全不靠算力,靠经济惩罚。
- 什么叫罚没:验证者如果被证明违规(例如同一高度提两个块——在同一时隙提议两个不同区块、或对两条冲突的链都投票),协议会扣掉甚至全部没收其质押的币,并把他踢出验证者集合(强制退出,一段时间或永久不能参与共识)。这就是 Slashing(罚没)。
- 谁举证:其他验证者可以把「你作恶」的密码学证据(比如你签名的两个不同区块)提交给链上,链上自动执行罚没。
- 效果:作恶的收益远小于被罚没的损失,所以理性验证者不会乱来。押的币越多,网络越安全;想攻击就要控制大量质押,成本极高。
一句话:用押金当担保,一违规就烧钱,所以大家不敢乱来。
七、和 PoW 对比 + 小结
| 对比项 | PoW(如比特币) | PoS(如以太坊) |
|---|---|---|
| 参与门槛 | 算力 + 电费 | 质押一定数量原生币 |
| 「工作」形式 | 算哈希、猜 nonce | 提议区块 + 签名 + 投票 |
| 能耗 | 高(全网持续算题) | 低(只跑节点、签名) |
| 安全来源 | 算力分散、51% 难达到 | 押金分散、罚没威慑 |
| 攻击成本 | 控制超过一半算力 | 控制超过一半质押 |
小结:
- PoS = 用**押金(质押)**换「提议权 + 投票权」,不拼算力,省电。
- 验证者 = 质押足够币、按协议提议或认证区块的节点;被选中提议的人用私钥对区块签名,其他人认证(投票)。
- 共识 = 达到一定比例(如 2/3)的认证,区块被确认;再随后续块确认而变成最终,不可回滚。
- 罚没 = 违规就扣押金甚至踢出,让作恶不划算,从而保证安全。
这样你就把 PoS 从「为啥不用烧电」到「押金、验证者、提议、认证、最终性、罚没」串成一条线了——用押金当门票,用签名和投票达成共识,用罚没守住安全。