区块链/等级 VI · 比特币之后/6.2 山寨币时代/课程 4
Peercoin与权益证明机制
币龄、投票的权益,以及随之而来的分叉
材料PPCoin白皮书副本维塔利克·布特林的《权益证明:我如何学会爱上弱主观性》(2014年)用于记录币龄计算的电子表格
好奇
- 为什么网络会奖励持有代币,而不是奖励消耗电力呢?
- 攻击者如何在不投入新资源的情况下,利用十年前掌握的密钥来改写历史记录?
- 是什么阻止了验证者同时签署两个不同的区块?
探索
- 权益证明最早于2011年在比特币论坛上被讨论;第一个可运行的版本来自化名开发者Sunny King与Scott Nadal,他们的PPCoin使用“币龄”来选择区块生产者。在这一模式下,未花费交易输出(UTXO)仅凭存在于链上就能累积权重。一枚币在钱包中闲置的时间越长,被选中铸造下一个区块的概率就越高,从而将共识权直接与长期持有行为挂钩,而非与算力挂钩。
- PPCoin后更名为Peercoin,于2012年8月以混合模式上线:工作量证明负责发行新币,而权益证明区块为质押的币提供约每年1%的奖励,承担了大部分安全保障。多年来,它还依赖由开发者中心化签署的检查点,这一保障措施被批评者视为一个控制点。
- 早期分析揭示了一个被称为“无利害关系”(nothing at stake)的严重漏洞。由于除了最初购币之外,铸造区块不消耗任何物理资源,验证者可以低成本地同时支持链上多个相互竞争的分叉。如果攻击者持有大量权益,就可以在分裂的两侧都签署有效区块,在不为额外工作付出任何边际成本的情况下,让哪段历史才是规范历史变得模糊不清。
- 这引出了长程攻击的问题。攻击者若获得了数年前的旧私钥,理论上就可以从那个时间点起改写整条链的历史。由于验证这些历史区块不需要新的计算,从零开始同步的节点可能会接受攻击者的版本,只要它在数学上看起来有效,从而破坏数月乃至数年前已结算交易的最终性。
- 2014年,维塔利克·布特林提出“弱主观性”来应对这一问题。加入网络的新节点必须信任现有参与者提供的一个最近检查点。通过约定某个特定的区块高度作为验证起点,网络可以防止依赖改写该检查点之前历史的长程攻击。这一权衡使初始同步阶段需要依赖可信的对等节点,但能防范对历史的篡改。
- 后来的设计加入了罚没(slashing)机制来惩罚不当行为。如果验证者签署了相互冲突的区块或采取恶意行为,其质押的币将被没收。Nxt于2013年上线,是早期的纯权益证明链,完全舍弃了混合成分。这些发展奠定了现代基于权益的共识的基本参数:经济惩罚确保诚实,弱主观性则负责网络启动阶段的信任问题。
关键事实
- Peercoin于2012年8月推出,采用工作量证明与权益证明相结合的混合机制。
- 权益证明机制是根据锁定的代币价值来选择区块生产者,而非根据所消耗的计算资源。
- “无利害关系”问题使验证者能够以几乎可以忽略的成本支持多个分叉。
- 长程攻击利用旧密钥改写链的历史,而无需投入新的资源。
- “弱主观性”要求新节点信任最近的检查点,以防止对历史记录的修改。
- 罚没(slashing)机制是后来加入的,用于没收签署冲突区块的验证者的质押。
练习 九、六、三、一
9收集列出早期山寨币(2011-2015年)所使用的9种共识机制或参数。请说明区块选择的特定规则以及任何惩罚机制。
6归类根据处理验证者诚信问题的方式,将这9种分为6类:无惩罚、罚没(slashing)、混合启动、纯权益、基于工作量,或其他。
3提炼将这6类归纳为纯权益证明相较于工作量证明必须化解的3个根本风险。
1凝结用一句话说明:为什么持有资本会形成与消耗能源不同的激励结构。
事实核查
日期、数字及数据均依据下方列出的已发表资料进行核实。
- S. King & S. Nadal, 'PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake' (2012)
- V. Buterin, 'Proof of Stake: How I Learned to Love Weak Subjectivity' (2014)
- Nxt documentation and release notes (2013)