有了PoW,为何还需要PoS?

- 编辑:admin -

有了PoW,为何还需要PoS?

有人觉得:只有PoW才能靠谱地打通现实世界和虚拟世界的价值;PoS是凭空造币,以不公平的方法分配,注定会导致垄断等等。还有更直截了当的怎么看:所有PoS链都是骗子。这部分论断没法反驳,或者说既不可以证明,也没办法证伪。我觉得PoS拥有一些PoW没的性质,这部分性质至少对部分加密协议应用尤为重要。本文试图以非技术预言呈现PoS的部分特征。

大伙常说的PoW和PoS,分别指基于工作量证明的中本聪共识,和基于权益证明的BFT共识,后面还是简称为PoW和PoS。设计共识协议不是为了公平地把币发出去,而是为了维护区块链互联网安全。本文所说的区块链都是指公链,不包括网盟链和私有链。啥是区块链互联网安全?这个问题好像非常基础,其实很复杂。但反过来讲解容易不少,啥是不安全的区块链?或者说区块链可能发生什么安全事故,假如发生了会有哪些问题?

区块链是分布式账本技术,是生产信赖的机器。区块链的数据结构和互联网协议设计,都是为了在无中心协调的条件下,在互联网不靠谱、参与节点不靠谱的拜占庭环境下,安全可验证地记账。可以说区块链天然就比其他种类的互联网构造安全。不考虑软件缺点,区块链可能发生的安全事故只有两种,一是被DDOS分布式拒绝服务攻击,二是被双花攻击。DDOS攻击就是给互联网捣乱,让互联网整体或者局部不可以正常工作,但捣乱并不可以直接获利。对于传统的互联网,DDOS攻击的盈利模式是勒索或者收钱办事。要么有人烧钱雇佣黑客去给角逐对手、或者他不喜欢的互联网捣乱。要么攻击者先捣乱,然后向运营方要钱,不给钱就继续捣乱。区块链是去中心化互联网,勒索就不知晓该向哪个要钱。而且区块链是分布式自组织的互联网,假如规模比较大而且设计好,要让它失效非常难,本钱非常高。所以区块链安全要考虑DDOS服务攻击,但不是重点。

重点是双花攻击,它是区块链互联网现实存在的威胁。按字面的意思,双花就是一笔钱花了两遍。那样一笔钱如何能花两遍呢?现在已经发生成功的双花攻击,都是如下步骤:

把币卖出,钱提出来;

发动攻击分叉区块链,新链不包括第一步转币的买卖。等于币又回到攻击者的地址上。

双花攻击需要提前进行精心筹备,不是临时起意发动的。而且要分叉区块链,而且从一段时间之前的区块开始分叉,是有本钱的,对于PoW就是要有算力,你得把分叉链挖成最长链,被别的人同意才行。所谓成功的双花攻击,就是攻击获得收益,要大于花费的本钱,攻击者从中获利了。假如折腾半天,买算力的本钱比双花的收益还高,那还是是捣乱的范畴。所以推行双花攻击并困难,成功的案例也不多。

区块链历史上成功的双花攻击,有两点特别值得注意。第一是被成功攻击的都是PoW链。我期望那些每天说PoS不安全的人注意这个事实,PoS链就算是早期不太成熟的PoS,都没被双花攻击过。这不是说PoS链不可以被攻击,是攻击PoS链无利可图,缘由我后面会讲。所以对PoS攻击方法的研究都是理论,现实环境中没人干。第二点是双花攻击对币价的影响。可能大多数人跟我一样,双花攻击证明了链不安全,那一定币价狂跌啊。现实状况不是如此,大伙去查查ETC、BTG币、Verge遭遇双花攻击的行情,币价只跌了一点点。为何呢?由于双花吃亏的是交易平台,等于攻击者骗走了应该是交易平台的币。大多数持币者会想:跟我有哪些关系?我手里的币没少也没被稀释。交易平台赚那样多钱,活该他出血。所以你资金投入的币,假如被双花攻击了,不要觉得天塌了,立刻跑。但注意,不要立刻就跑,等风头过去了,还是应该跑。为何呢?由于保障加密货币安全,是区块链非常重要的能力。这次攻击倒霉的是他,下次攻击倒霉的可能是我。所以一条区块链被贴上了不安全这个标签,基本上就走上了缓慢归零的道路,除非它能证明安全问题解决了,但很不简单。大伙可以查一查ETC、BTG币、Verge被攻击后市值排行榜的变化。由于价格变化是跟整体市场有关的,市值排行榜反应了在行业内的地位。

上面议了不安全的区块链。BTC很安全,这个大伙都认可,但BTC安全不代表PoW安全。下次听到有人说PoW比PoS安全,你可以用事实来反驳他。为何同为PoW链,有些安全有些不安全?由于PoW链安全的首要条件是:区块奖励高于同期租用51%算力的本钱。(应该是区块奖励+买卖费,但买卖费一般比区块奖励低两个数目级,在此忽视不计,下同)。很简短的首要条件,但实质状况很复杂,需要分几种状况来讲明。第一是通用计算机挖矿为主,还是专用矿机为主。若是通用计算机挖矿为主,理论上来讲都是不安全的。为何呢?由于挖数字货币的通用计算机,只占网络计算机非常小非常小一部分。假如攻击者控制的僵尸互联网(像以非常低本钱租用了大量通用计算机)比诚实挖矿互联网的算力高,就可以发动双花攻击。

专用矿机是固化了某种Hash算法,比如SHA256的矿机,所有使用SHA256的链都可以挖。对于同一类专用矿机,算力占比最大的链是最安全的。算力分配是由区块奖励金额决定的。假设每一个小时比特币/比特币现金/比特币SV三条链提供的出块奖励分别是100元、3元、2元,那样算力就会按100:3:2的比率分配。假如有利可图,攻击者就可能租用总算力的一小部分来攻击比特币SV,但租用大多数算力来攻击比特币则很不简单。

这里有两个问题。第一为何要租算力,矿工自己不可以直接攻击吗?通常来讲不会,由于矿工和矿场做双花攻击,可能单独看是获利了。但链不安全了,币会贬值,相应的矿机也跟着贬值。所以手里有大量专业矿机的人,不会攻击链,至少不会攻击区块奖励最大的链。第二个问题是,多数状况下,挖矿是有利可图的,所以算力租用本钱非常高,攻击不成立。但特殊状况是,币价狂跌,前期扩张的算力过多,很多的矿机关机。这个时候租用矿机的价格仅仅高于运行本钱,也就是电费,区块奖励低的币就非常危险。综合上面的推荐,可以把PoW的安全首要条件大致变成:专用矿机挖矿,而且算力占比最高。

知名数字货币研究者Nic Carter用上图说明:A链在相同种类算力占一小部分。B链占了相同种类算力的一大多数。虽然A链的算力的绝对值(即Hash Rate)高于B链,但B链比A链更安全。

到这一步,大家可以回到主题,说说为何需要PoS。一个前置的问题是:除去比特币以外,其他链还有没必要?BTC最大化主义者觉得,BTC是唯一有用的数字货币,其他区块链,包括ETH都是在瞎搞。假如你赞同这个看法,当然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万USD,而且Staking比率非常低,只有30%。跟市场上流通市值数千万USD以上、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的结算保证呈阶梯状,后面每多一个块,对块(内所有买卖)的结算保证金额增加一个区块的奖励金额。比特币目前价格是8000USD,每一个块奖励12.5个比特币,也就是大约10万USD。BTC平均10分钟出一个块,结算保证增加10万USD。粗略地说,PoS链结算保证可以觉得不随时间变化。某个PoS链流通市值1000万USD,Staking比率30%,使用出块即敲定的BFT协议(比如Tendermint)。买卖只须被包含进合法区块,立即获得1000万*30%*1/3=100万美金的结算保证。迅速获得可量化的结算保证,对于不少加密协议的应用场景是有意义的。这是我觉得PoS有必要性的第二个理由。除此之外,基于PoS可以进步高效的加密协议社区治理,这方面的剖析可参见拙作《加密协议治理之道》。

转币进交易平台;

此文出于传递更多信息之目的,并不意味着同意其看法或证实其描述。本网站所提供的信息,只供参考之用。

你会喜欢下面的文章?