巴比特专栏 | 有了PoW,为什么还需要PoS?
有人认为:只有PoW才能可靠地打通现实世界和虚拟世界的价值;PoS是凭空造币,以不公平的方式分配,注定会造成垄断等等。还有更直截了当的看法:所有PoS链都是骗子。这些论断没法反驳,或者说既不能证明,也无法证伪。我认为PoS具备一些PoW没有的性质,这些性质至少对部分加密协议应用非常重要。本文试图以非技术预言呈现PoS的部分特点。
大家常说的PoW和PoS,分别指基于工作量证明的中本聪共识,和基于权益证明的BFT共识,后面还是简称为PoW和PoS。设计共识协议不是为了公平地把币发出去,而是为了维护区块链网络安全。本文所说的区块链都是指公链,不包括联盟链和私有链。什么是区块链网络安全?这个问题似乎很基础,其实非常复杂。但是反过来解释简单很多,什么是不安全的区块链?或者说区块链可能发生什么安全事故,如果发生了会有什么问题?
区块链是分布式账本技术,是生产信任的机器。区块链的数据结构和网络协议设计,都是为了在无中心协调的条件下,在网络不可靠、参与节点不可靠的拜占庭环境下,安全可验证地记账。可以说区块链天然就比其他类型的网络架构安全。不考虑软件缺陷,区块链可能发生的安全事故只有两种,一是被DDOS分布式拒绝服务攻击,二是被双花攻击。DDOS攻击就是给网络捣乱,让网络整体或者局部不能正常工作,但是捣乱并不能直接获利。对于传统的网络,DDOS攻击的盈利模式是勒索或者收钱办事。要么有人花钱雇佣黑客去给竞争对手、或者他不喜欢的网络捣乱。要么攻击者先捣乱,然后向运营方要钱,不给钱就继续捣乱。区块链是去中心化网络,勒索就不知道该向谁要钱。而且区块链是分布式自组织的网络,如果规模比较大而且设计良好,要让它失效很难,成本很高。所以区块链安全要考虑DDOS服务攻击,但不是重点。
重点是双花攻击,它是区块链网络现实存在的威胁。按字面的意思,双花就是一笔钱花了两遍。那么一笔钱怎么能花两遍呢?目前已经发生成功的双花攻击,都是如下流程:
- 转币进交易所;
- 把币卖出,钱提出来;
- 发动攻击分叉区块链,新链不包括第一步转币的交易。相当于币又回到攻击者的地址上。
区块链历史上成功的双花攻击,有两点特别值得注意。第一是被成功攻击的都是PoW链。我希望那些天天说PoS不安全的人注意这个事实,PoS链哪怕是早期不太成熟的PoS,都没有被双花攻击过。这不是说PoS链不能被攻击,是攻击PoS链无利可图,原因我后面会讲。所以对PoS攻击方式的研究都是理论,现实环境中没人干。第二点是双花攻击对币价的影响。可能很多人跟我一样,双花攻击证明了链不安全,那肯定币价暴跌啊。现实情况不是这样,大家去查查ETC、比特黄金、Verge遭遇双花攻击的行情,币价只跌了一点点。为什么呢?因为双花吃亏的是交易所,相当于攻击者骗走了应该属于交易所的币。大部分持币者会想:跟我有什么关系?我手里的币没少也没被稀释。交易所赚那么多钱,活该他出血。所以你投资的币,如果被双花攻击了,不要认为天塌了,马上跑。但是注意,不要马上就跑,等风头过去了,还是应该跑。为什么呢?因为保障加密资产安全,是区块链最重要的能力。这次攻击倒霉的是他,下次攻击倒霉的可能是我。所以一条区块链被贴上了不安全这个标签,基本上就走上了缓慢归零的道路,除非它能证明安全问题解决了,但是非常困难。大家可以查一查ETC、比特黄金、Verge被攻击后市值排名的变化。因为价格变化是跟整体市场有关的,市值排名反应了在行业内的地位。
上面谈了不安全的区块链。比特币非常安全,这个大家都认同,但是比特币安全不代表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以外,其他链还有没有必要?比特币最大化主义者认为,比特币是唯一有用的加密货币,其他区块链,包括以太坊都是在瞎搞。如果你同意这个观点,当然PoS就没必要。另外一些人(包括我)认为,去中心化加密协议定义高效的市场,能够降低交易成本。世界需要很多加密协议,很多条区块链。
新运行一条区块链,如果采用PoW协议,会遇到冷启动困难。其实不只新PoW链,比特币也遭遇过冷启动难题。就是币不值钱,没什么人挖矿,所以网络不安全,网络不安全所以币没法升值。比特币之后的三年,币价低,网络脆弱,关注的人很少。由于挖矿收益 = 市值 * 增发率。PoW币要有很高的市值和增发率,才能吸引矿机厂商设计ASIC矿机(一次性成本很高)、矿工大量购置部署矿机。这就陷入了先有鸡还是先有蛋的冷启动难题:新生网络不安全,应用少;而且增发率高,不被当作价值存储;市值难以扩大。市值低挖矿收益就低,算力无法增长。
设计新的PoW链要选择用哪种Hash算法。如果选已经有专用矿机的算法,那么初期初期币价,算力占比低,链不安全。如果选择还没有专用矿机的算法,就要经历一段时间的通用硬件挖矿,这段时期网络也不安全。当我只是说困难,不是说不可行。例如Nervos,他们团队有很好的口碑,做了很多创新。所以主网上线的时候,CKB已经有比较高的市值,区块奖励很高,可以吸引很多算力来挖矿。Nervos设计了独特的Hash算法,由于区块奖励很高,可能很快就会出现专用的矿机,这是Nervos社区乐于见到的。因为Hash算法是新的,新矿机只能用来挖CKB,网络的安全性大幅提高。但是,Nervos应该被视为特例,它的启动过程恰恰证明了,新链采用PoW非常困难。很难想象,未来几年会出现十几条、几十条甚至更多PoW链,能够完成自举。
PoS链即便处于早期也可以很安全。因为对PoS链做双花攻击,需要掌握至少1/3 Staking的币。手里有那么多币,应该是数一数二的大户了,双花攻击引发币价下跌,损失最大的是自己。跟最大的矿工不会攻击比特币是一个道理。那么有没有可能,攻击者两次卖出双花的币,快速获利离场呢?我们来看一个例子:
假设一条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万美元。比特币平均10分钟出一个块,结算保证增加10万美元。粗略地说,PoS链结算保证可以认为不随时间变化。某个PoS链流通市值1000万美元,Staking比例30%,采用出块即敲定的BFT协议(例如Tendermint)。交易只要被包含进合法区块,立即获得1000万*30%*1/3=100万美金的结算保证。快速获得可量化的结算保证,对于很多加密协议的应用场景是有意义的。这是我认为PoS有必要性的第二个理由。此外,基于PoS可以发展高效的加密协议社区治理,这方面的分析可参见拙作《 加密协议治理之道 》。
Avalanche Rumbles 21% Amid Record-Breaking Address Activity
Avalanche’s native token rose in tandem with a surge in on-chain activity. AVAX has been able to sus...

Cardano Whales On Buying Spree as ADA Emerges as One of the Top Gainers in Grayscale’s Digital Large Cap Fund
Cardano Whales On Buying Spree as ADA Emerges as One of the Top Gainers in Grayscale’s Digital Large Cap Fund
Aspecta to Offer $4B in RWA Liquidity in Partnership with Plume Network
The core target of this collaboration between Plume Network and Aspecta is to provide more than $4 b...