作者 | 刘毅
来源 | 野花说
本文为加密媒体型社区“野花说”对 Random Capital 合伙人刘毅的采访实录。源自线上分享活动“PoS 区块链投资精进:为何 PoS 通证是未来?”。 刘毅是 Cdot Network 创始人,Random Capital 合伙人,清华大学硕士,区块链和大数据技术专家,有 20 年多种资本市场投资经验,是 BTC 早期投资者,也是 Web 3 和 Polkadot 的布道者。
以下是分享全文:
大家晚上好,我叫刘毅,研究方向是 Web3、区块链技术和加密经济学。今天我将给大家分享关于 PoS 的内容。
原来是打算讲 PoS 通证分析的,后来改主意了,我想跟大家讨论为什么有了 PoW,区块链还需要 PoS。
有人说:只有 PoW 才能可靠地打通现实世界和虚拟世界的价值;PoS 是凭空造币,以不公平的方式分配,注定会造成垄断等等。还有更直截了当的看法:所有 PoS 链都是骗子。这些论断没法反驳,或者说既不能证明,也无法证伪。我只想谈事实,以及可以被证明或证伪的理论。
大家常说的 PoW 和 PoS,分别指基于工作量证明的中本聪共识,和基于权益证明的 BFT 共识,后面还是简称为 PoW 和 PoS。设计共识协议不是为了公平地把币发出去,而是为了维护区块链网络安全。本文所说的区块链都是指公链,不包括联盟链和私有链。
什么是区块链网络安全?这个问题似乎很基础,其实非常复杂。但是反过来解释简单很多,什么是不安全的区块链?或者说区块链可能发生什么安全事故,如果发生了会有什么问题?
区块链是分布式账本技术,是生产信任的机器。区块链的数据结构和网络协议设计,都是为了在无中心协调的条件下,在网络不可靠、参与节点不可靠的拜占庭环境下,安全可验证地记账。可以说区块链天然就比其他类型的网络架构安全。
不考虑软件缺陷,区块链可能发生的安全事故只有两种,一是被 DDOS 分布式拒绝服务攻击,二是被双花攻击。DDOS 攻击就是给网络捣乱,让网络整体或者局部不能正常工作,但是捣乱并不能直接获利。对于传统的网络,DDOS 攻击的盈利模式是勒索或者收钱办事。要么有人花钱雇佣黑客去给竞争对手、或者他不喜欢的网络捣乱。要么攻击者先捣乱,然后向运营方要钱,不给钱就继续捣乱。区块链是去中心化网络,勒索就不知道该向谁要钱。而且区块链是分布式自组织的网络,如果规模比较大而且设计良好,要让它失效很难,成本很高。所以区块链安全要考虑 DDOS 服务攻击,但不是重点。
重点是双花攻击,它是区块链网络现实存在的威胁。按字面的意思,双花就是一笔钱花了两遍。那么一笔钱怎么能花两遍呢?目前已经发生成功的双花攻击,都是如下流程:
转币进交易所;
把币卖出,钱提出来;
发动攻击分叉区块链,新链不包括第一步转币的交易。相当于币又回到攻击者的地址上。
双花攻击需要提前进行精心准备,不是临时起意发动的。要分叉区块链,而且从一段时间之前的区块开始分叉,是有成本的,对于 PoW 就是要有算力,你得把分叉链挖成最长链,被其他人接受才行。所谓成功的双花攻击,就是攻击获得收益,要大于花费的成本,攻击者从中获利了。如果折腾半天,买算力的成本比双花的收益还高,那还是属于捣乱的范畴。所以实施双花攻击并不容易,成功的案例也不多。
区块链历史上成功的双花攻击,有两点特别值得注意。第一点是被成功攻击的都是 PoW 链。我希望那些天天说 PoS 不安全的人注意这个事实,PoS 链哪怕是早期不太成熟的 PoS,都没有被双花攻击过。这不是说 PoS 链不能被攻击,是攻击 PoS 链无利可图,原因我后面会讲。所以对 PoS 攻击方式的研究都是理论,现实环境中没人干。第二点是双花攻击对币价的影响。可能很多人跟我一样,双花攻击证明了链不安全,那肯定币价暴跌啊。现实情况不是这样,大家去查查 ETC、比特黄金、Verge 遭遇双花攻击的行情,币价只跌了一点点。
为什么呢?因为双花吃亏的是交易所,相当于攻击者骗走了应该属于交易所的币。大部分持币者会想:跟我有什么关系?我手里的币没少也没被稀释。交易所赚那么多钱,活该他出血。所以你投资的币,如果被双花攻击了,不要认为天塌了,马上跑。但是注意,不要马上就跑,等风头过去了,还是应该跑。为什么呢?因为保障加密资产安全,是区块链最重要的能力。这次攻击倒霉的是他,下次攻击倒霉的可能是我。所以一条区块链被贴上了不安全这个标签,基本上就走上了缓慢归零的道路,除非它能证明安全问题解决了,但是非常困难。大家可以查一查 ETC、比特黄金、Verge 被攻击后市值排名的变化。因为价格变化是跟整体市场有关的,市值排名反应了在行业内的地位。
上面谈了不安全的区块链。BTC 非常安全,这个大家都认同,但是 BTC 安全不代表 PoW 安全。下次听到有人说 PoW 比 PoS 安全,你可以用事实来反驳他。为什么同为 PoW 链,有的安全有的不安全?因为 PoW 链安全的前提是:区块奖励高于同期租用 51% 算力的成本。(应该是区块奖励+交易费,但是交易费通常比区块奖励低两个数量级,在此忽略不计,下同)。非常简短的前提,但实际情况非常复杂,需要分几种情况来说明。首先是通用计算机挖矿为主,还是专用矿机为主。如果是通用计算机挖矿为主,理论上来说都是不安全的。为什么呢?因为挖加密货币的通用计算机,只占互联网计算机很小很小一部分。如果攻击者控制的僵尸网络(类似于以很低成本租用了大批通用计算机)比诚实挖矿网络的算力高,就可以发动双花攻击。
专用矿机是固化了某种 Hash 算法,例如 SHA256 的矿机,所有采用 SHA256 的链都可以挖。对于同一类专用矿机,算力占比最大的链是最安全的。算力分配是由区块奖励金额决定的。假设每个小时 BTC/BCH/BSV 三条链提供的出块奖励分别是 100 元、3 元、2 元,那么算力就会按 100:3:2 的比例分配。如果有利可图,攻击者就可能租用总算力的一小部分来攻击 BSV,但是租用大部分算力来攻击 BTC 则非常困难。
这里有两个问题。第一为什么要租算力,矿工自己不能直接攻击吗?一般来说不会,因为矿工和矿场做双花攻击,可能单独看是获利了。但是链不安全了,币会贬值,相应的矿机也跟着贬值。所以手里有大批专业矿机的人,不会攻击链,至少不会攻击区块奖励最大的链。第二个问题是,多数情况下,挖矿是有利可图的,所以算力租用成本很高,攻击不成立。但是特殊情况是,币价暴跌,前期扩张的算力过多,大量的矿机关机。这时候租用矿机的价格仅仅高于运行成本,也就是电费,区块奖励低的币就很危险。综合上面的分享,可以把 PoW 的安全前提大致变成:专用矿机挖矿,而且算力占比最高。
知名加密货币研究者 Nic Carter 用上图说明:A 链在同类算力占一小部分。B 链占了同类算力的一大部分。虽然 A 链的算力的绝对值(即 Hash Rate)高于 B 链,但是 B 链比 A 链更安全。
到这一步,我们可以回到主题,说说为什么需要 PoS。一个前置的问题是:除了 BTC 以外,其他链还有没有必要?BTC 最大化主义者认为,BTC 是唯一有用的加密货币,其他区块链,包括以太坊都是在瞎搞。如果你同意这个观点,当然 PoS 就没必要。另外一些人(包括我)认为,去中心化加密协议定义高效的市场,能够降低交易成本。世界需要很多加密协议,很多条区块链。
新运行一条区块链,如果采用 PoW 协议,会遇到冷启动困难。其实不只新 PoW 链,BTC 也遭遇过冷启动难题。就是币不值钱,没什么人挖矿,所以网络不安全,网络不安全所以币没法升值。BTC 之后的三年,币价低,网络脆弱,关注的人很少。由于挖矿收益 = 市值 * 增发率。PoW 币要有很高的市值和增发率,才能吸引矿机厂商设计 ASIC 矿机(一次性成本很高)、矿工大量购置部署矿机。
这就陷入了先有鸡还是先有蛋的冷启动难题:新生网络不安全,应用少;而且增发率高,不被当作价值存储;市值难以扩大。市值低挖矿收益就低,算力无法增长。
设计新的 PoW 链要选择用哪种 Hash 算法。如果选已经有专用矿机的算法,那么初期币价低,算力占比低,链不安全。如果选择还没有专用矿机的算法,就要经历一段时间的通用硬件挖矿,这段时期网络也不安全。
当然我只是说困难,不是说不可行。例如 Nervos,他们团队有很好的口碑,做了很多创新。所以主网上线的时候,CKB 已经有比较高的市值,区块奖励很高,可以吸引很多算力来挖矿。Nervos 设计了独特的 Hash 算法,由于区块奖励很高,可能很快就会出现专用的矿机,这是 Nervos 社区乐于见到的。因为 Hash 算法是新的,新矿机只能用来挖 CKB,网络的安全性大幅提高。但是,Nervos 应该被视为特例,它的启动过程恰恰证明了,新链采用 PoW 非常困难。很难想象,未来几年会出现十几条、几十条甚至更多 PoW 链,能够完成自举。
PoS 链即便处于早期也可以很安全。因为对 PoS 链做双花攻击,需要掌握至少 1/3 Staking 的币。手里有那么多币,应该是数一数二的大户了,双花攻击引发币价下跌,损失最大的是自己。跟最大的矿工不会攻击 BTC 是一个道理。那么有没有可能,攻击者两次卖出双花的币,快速获利离场呢?我们来看一个例子:
假设一条 PoS 链,总流通市值只有 1000 万美元,而且 Staking 比例很低,只有 30%。跟市场上流通市值数千万美元以上、Staking 比例达到 50% 甚至更高的 PoS 链相比,显然更容易被攻击。攻击者已经准备好了条件,他控制了 1/3 的 Staking (总量的 10%),同时还拥有占总量 10% 的流通筹码。于是攻击者首先把流通的 10% 转入交易所 1,卖出后把钱提出来。然后发动攻击逆转了存币交易。为了不承担攻击暴露币价下跌损失,他快速地把恢复到自己地址的 10% 存入交易所 2,卖出后提款。如果整个过程中币价都没有下跌。攻击者的成本(10% Staking 被罚没)和收益(10% 流通筹码卖了两次)恰好持平。
上述是对攻击者最有利的情况,但现实环境中不可能出现。因为攻击者卖出受到市场流动性的限制。先不说第一个 10% 卖出给币价的冲击。专业安全公司发现 BFT 链分叉并发出警告,只需要几分钟时间。攻击者不可能在不引起交易所关注、不影响币价的条件下卖出第二个 10%。
所以 PoS 的链,无论币值高低,只要软件没有缺陷,都是安全的。多说一句,软件缺陷跟协议本身没有关系,是实现的问题。但是不可否认,新一代的 PoS 链上线时间还太短,可能存在隐匿的缺陷,需要时间来验证其安全性。
除了安全启动外,PoS 跟 PoW 相比还有一个优势,就是快速最终性。最终性就是区块不会被链放弃,成为孤块。PoW 链只有概率最终性,刚出来的块不太可靠,可能被放弃掉(重组)。随着区块后面不断附加区块(深度增加),被放弃的可能性越来越低。当深度增长一定量,用户可以确信区块不会被放弃了,区块里的交易不会被逆转。
基于 PoS 的 BFT 共识通常具有快速最终性,合法(对出块和敲定分开的混合共识是指被敲定)区块一出来就具有最终性,如果被逆转意味着出大事儿了,有 1/3 Staking 的币被系统罚没。比较快速最终性和概率最终性,需要找到可以比较的维度。就像梨和苹果,有人喜欢吃梨、有人喜欢吃苹果,比较它们的味道不会有大家都认可的结论。如果比较价格就容易了,在一个市场里,哪个贵哪个便宜一目了然。
还是 Nic Carter 写的《这叫交易结算保证,小傻瓜》,这篇文章本来是比较 PoW 链的。但是他所提出的结算保证的概念,同样适用于比较 PoW 和 PoS 链。
如上图,PoW 的结算保证呈阶梯状,后面每多一个块,对块(内所有交易)的结算保证金额增加一个区块的奖励金额。BTC 当前价格是 8000 美元,每个块奖励 12.5 个 BTC,也就是大约 10 万美元。BTC 平均 10 分钟出一个块,结算保证增加 10 万美元。粗略地说,PoS 链结算保证可以认为不随时间变化。某个 PoS 链流通市值 1000 万美元,Staking 比例 30%,采用出块即敲定的 BFT 协议(例如 Tendermint)。交易只要被包含进合法区块,立即获得 1000 万30%1/3=100 万美金的结算保证。快速获得可量化的结算保证,对于很多加密协议的应用场景是有意义的。这是我认为 PoS 有必要性的第二个理由。
此外,基于 PoS 可以发展高效的加密协议社区治理,这方面的分析可参见拙作《加密协议治理之道》。好的,今天的分享就到此结束,感谢大家的聆听!
刘毅 作者
Sonny Sun 编辑
Roy **排版******
内容仅供参考 不作为投资建议 风险自担
版权所有 未经允许 严禁转载
本文转自“野花说”
原标题为《对话野花说 | 刘毅:有了 PoW,为什么还需要 PoS?》
☟☟☟
声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。
简介:分享区块链领域专业、前沿、有趣的内容
评论0条