观点 | 为什么我不喜欢权益证明( PoS )
图片来自 Unsplash 网站的 Kvistholt Photography
密码学货币挖矿过程中,使用权益证明(PoS)机制能够大大降低能源消耗,但这么做有什么代价呢?
代价是 —— 要在 PoS 机制中达成共识,得依靠庞大的数据中心,而非人们日常使用的设备。
波卡、Near Protocol、以太坊 2.0 ,还有目前其他知名的区块链平台,大多选择使用权益证明机制(PoS)取代工作证明机制(PoW,驱动比特币及以太坊的原始共识机制)。因为 PoS 的某些优势能解决现有区块链遇到的一些阻碍及限制,我们完全能理解当前这些项目方的选择。
首先,与 PoW 相比,PoS 消耗的能源要少得多。其次,PoS 链的社区可以直接销毁攻击者的资金,因此(理论上来说)PoS 能够让攻击(51% 算力攻击)的成本变得更加高昂,因此受到攻击的概率更小;PoW 抵御攻击的手段相对就比较有限。配合其它流行技术(就是分片机制),PoS 还能提高可扩展性:动态地将验证者围绕不同分片随机分组,可阻遏针对任一分片的攻击。
但必须说,PoS 也存在一些容易被忽视的短板。我一直向大家表示我不喜欢 PoS ,我认为有必要在此列出理由并附上说明。
PoS 不能用于初始的代币分发,但 PoW 能办到 —— 因为 PoW 可以通过完全中立、无需许可的机制分发代币。PoS 要求人为地提前将代币分发给潜在的权益人(staker),这可能会导致代币最终集中在项目方的朋友或投资人手上,这是我们不希望看到的。
从技术上来说,PoS 无法实现 “免准入门槛”(permissionless),因为任何想成为 PoS 链的权益人都必须在一开始说服某人(包括项目方)把代币卖给自己,这使得进入 PoS 链的门槛变得更高 —— 相比于能用已有的硬件挖矿获得代币的 PoW 链(比如比特币,或是即将上线的 Spacemesh);光是为了取得最初代币,每个想成为 PoS 链的代币持有者必须先在交易所创建账户,完成 KYC/AML 流程,关联银行账户,等待验证通过,等等一系列流程;好不容易获得代币后,才能开展 PoS 链上的其他行为。
上个问题还会衍生出:一旦出现有一方(或多方合谋)控制了超过全网 50% 的代币,该网络就会陷入永久的操控。更糟的是,因为任何一方都能将资金分散放在无数的小额账户中,所以这个 “挟持” 过程很可能不会被其他人发现;PoW 的 “无需许可” 属性让其免于出现这个问题。
作为验证者,参与 PoS 共识机制的门槛很高。验证者通常需要持有价值大于 $1000 的质押代币,并且必须精通整个系统的复杂架构;这种高参与门槛将许多潜在的验证者拒之门外,并造成整个系统更加中心化 —— 事实上,现今绝大多数 PoS 链的验证者就只由少数几家公司担任。
除了要面对技术上的挑战,支持整个网络的验证者运作还需要持续进行大量的社会协调——包含对验证者持续进行文档传递、教育、以及常规的沟通;在真正的实践中则需要整个区块链生态系的多个组织来配合完成。对于有委托机制的网络(用户可委托出块权给其他人),验证者需要开展活动来吸引质押资金加入,而大的资金方需要同步知道验证者的声誉、故障状态、更新状态、开发状态等等信息,并可能需要转移资金。“无需许可” 的网络能简化大部分的过程,但在 PoS 网络上就显得非常复杂。
想要完整验证 PoW 链所需的数据就存在链上:主链始终是计算量最大的链。举例来说,你不需要任何外部信息,就能完整地、独立地、客观地验证整个比特币网络及其包含的交易。但对于 PoS 链并非如此,因为 PoS 的 “无利害关系” 特性会导致弱主观性问题。在 PoS 机制下,伪造一条完整的链不需要涉及任何工作量证明,因此除非你从创世区块开始就关注着某条链,或是 100% 信任某个节点给你发送的关于该链的数据,不然你无法确定当前收到的 PoS 链的消息是否真正来自主链。(具体来说 —— 当验证者在取回其质押的资金后,不论是被利诱或是自己主动,他都能随时、无成本地构建一条分叉链。)
PoS 的安全性像个衔尾蛇:整个 PoS 网络的安全性依托于用于质押的代币价值;但是,代币的价值也取决于网络的安全性。一旦发生黑天鹅事件(如,代币的市场价格暴跌),则整个 PoS 系统很有可能崩溃。[注1]
对于区块链来说,有个可靠的随机数来源非常重要。PoW 在运作的过程中,能够自然地以 nonce 和区块哈希的形式,持续为系统注入伪随机数的 seed 。相比之下,PoS 必须想办法自行构建随机数;从安全性的角度出发,在这种情况下很难同时保证随机数的安全性、无偏性,及分布式特性。
要在 PoW 链发起分叉的代价很高昂,因为分叉链如果要稳定运行,则必须控制足够多的算力避免攻击(存在分叉链遭到算力攻击的先例)。相反,在 PoS 系统中,只要攻击者在分岔的当下更改验证者集,就能完成对 PoS 链的分叉。这使得在 PoS 链发起分叉更为轻松,代价也更低。[注2]
因为代币持有者通常会将代币放在大交易所,所以对 PoS 链来说,交易所通常会把持大量的话语权及获得大量的区块奖励,问题是交易所通常不会将这些收益和真正的持有人分享,所以 PoS 网络往往会被大交易所把控。
PoW 在抵御攻击方面,表现得更为简单自然:即便网络无法同步,或是某些矿工掉线,其他矿工还是能继续出块,并且始终知道哪一条是主链。PoS 比较复杂的原因在于,如果过多的验证者掉线,整个网络可能无法出块,而且要从错误的共识状态恢复更加困难。[注3]
简单来说,PoS 让人感觉像是区块链出现之前的旧玩意儿 ——— 少数的富人控制着大量的资金,并搜刮走大部分的区块奖励。虽然为了特定目的选择 PoS 的行为没错,但这有违我投身区块链领域的初衷。
PoW 当然也有自身的问题,最严重的莫过于它巨大的能耗,而且区块奖励已经完全被专业矿工垄断 —— 这意味着 PoW 挖矿存在严重的中心化(我们再也不可能在家中自行挖矿)。所以我选择加入 Spacemesh 的开发工作,其中一个主要原因就是 Spacemesh 采用一种新的共识机制 ——Proof of Spacetime(PoST) ,它解决了 PoW 的问题,同时也避免了 PoS 的短板。虽然 Proof of Spacetime 比较复杂,但 Spacemesh 测试网已经成功运行数月,至少在理论上证明该机制可行。
区块链技术还处于初期阶段,我认为 PoW 或 PoS 都不是最终或最好的共识机制,我们还有很大的提升空间。我对 PoST 的前景,以及其他在区块链领域不断的创新感到无比兴奋。
你对本文有什么认同或反对之处,或是认为遗漏了哪些内容?最令你觉得感兴趣的共识机制是什么?请留言告诉我!
注:
1、同样的,对比特币来说也是如此 —— 比特币价格暴跌会导致矿工停止挖矿,进一步会使整个比特币网络的价值在负循环中崩溃;法币也是,如果美国政府失去人们的信任,则美元相对于其他货币会贬值,美元贬值会造成政治和经济动荡,接着使得更多人对美元失去信心......对于所有不具备内在价值的东西来说,都有可能陷入这种死循环。PoS 还很新颖,缺乏足够的验证,时间会告诉我们 PoS 在市场极端情形中的表现。
2、这是缺点,还是特性?—— 取决于你怎么看待分叉链。我其实还挺喜欢分叉链,所以我更倾向于将它视为一种特性;但如果你站边 “分叉破坏价值” 的想法,那你可能会不同意我的观点。(我在本文将其描述为缺点,是因为大部分人认为分叉会破坏网络的价值。)(译者注:作者在这里对两类 “分叉” 缺乏辨析。分叉有两种,一种不会使人们陷入辨识的疑难,比如 BTC/BCH 分叉,因为共识规则不同,而且两条链都各有主链,因此不会有辨识的疑难;但另一种会使人们陷入辨识的疑难,比如链运行中的 reorg,以及 51% 攻击,还比如这里说的对 PoS 共识的长链攻击。后者很明显会削弱乃至破坏网络的价值,因此后者的难易程度是安全性的指标之一。但前者不必然会破坏网络价值,也不是安全性的指标。作者喜欢的是前者,但文中比较的是后者的难易程度)
3、从直觉判断,对于 PoW 我们可以随时围绕客观上最长的链重新建立共识;但如果PoS 网络出现延宕导致无法在正确的验证者集上达成共识,并没有简单的方法可以马上重新建立共识(p.s. 我还未找到关于此议题的相关研究,还请大家协助,谢谢)。当然,PoS 本身不是一种共识算法,不同的机制对于此问题的处理方式不同,具体实现细节取决于整体的系统架构。
END
原文链接:
https://www.etherean.org/blockchain/consensus/2020/06/27/why-i-dislike-proof-of-stake.html
作者: Lane Rettig
翻译&校对: IAN LIU & 阿剑
转载来源:以太坊爱好者