作者/LongHashJeffChang
来源/LongHash
LongHash在之前的两篇文章》和《如何获取最大收益——搞懂Staking商业中的五个基本元素》)提过一些与持币人直接相关的PoS风险问题,本文将深入探讨安全风险问题。
-Nothingatstake
简单理解当有节点发起攻击,在同一个区块高度同时出两个块进行分叉,对攻击者而言因为出块成本较低,只需要stake,对其它节点而言最佳策略就是对分叉的两条链都进行签名获得双倍奖励,也只需要stake,这就会造成链很大的危机,PoS里的出块成本远远小于PoW里的大量算力成本,而且stake可以同时用在两条链上,这个问题一度被广泛讨论,目前已经通过“stake质押+slash惩罚”解决了,也就是PoS共识的区块链里出块成本不仅仅是有stake就好,这个stake一定比例是必须被系统锁定一段时间,如果节点作恶那stake就会被系统没收,通过经济学的设计,PoS共识的安全性又进一步提升。
-Longrangeattack
Longrangeattack指的是从创世区块开始,创建一条比原来主链还要长的链,并篡改全部或部分交易历史,来代替原有的主链。
Longrangeattack利用的是,新加入的节点或是长期不在线的节点在同步数据时不能清楚知道哪一条链是正确的主链,因为攻击者的链是从创世区块开始伪造,如果根据最长链原则来决定主链,那被篡改的链有概率成为真正的主链,使后续节点都认定错误的链。
因为在一条分叉链上产生区块是几乎没有成本的,只需要stake,而且攻击者不需要太多的区块确认时间,使得分叉链的形成速度可以快过主链,有很多理论证明了这样的攻击可行,但实际执行却非常困难,可以看这篇《RewritingHistory:ABriefIntroductiontoLongRangeAttacks》。
以上两个是PoS里最知名的攻击方式,其它还包含SimpleAttack、PosteriorCorruption、StakeBleeding、CartelAttack、SybilAttack、GrindAttack等,这些攻击也都有人提出相对应的解决办法。
为什么PoS共识也可以是一个很好的维护网路安全的策略?
区块链这个分布式系统与传统中心化系统最大的不一样就是,安全是由散布在全世界各地的节点进行保证,只要多数节点是安全的,那链上的数据就是安全的,PoW通过高算力,增加了攻击者控制51%以上节点的成本;而PoS通过了币本身的价值来维护区块链的安全,攻击者要攻击PoS区块链必须购买一定数量的代币。
PoS里有各种攻击上面也提到过包含nothingatstake,longrangeattack等,这一部分攻击存在学术讨论一部分社区已经有应对与解决之道,我们就只讨论最常见也是最不应该发生的攻击DoubleSpend,一旦发生DoubleSpend那就说明这个网路的账本是不够安全不可信任的,更遑论搭建在上层的应用,PoW里的51%攻击成本是相对高昂的,需要控制该网路中超过一半的运算能力,PoS里的51%攻击只需要持有一半以上的币,但实际上我认为攻击成本也相当高,上述提到过攻击就必须买币,币价随攻击上升(这个边际成本上升是一条非常陡峭的曲线),即使攻击成功本身币价也会受损,反倒不如在外面市场进行做空,这是一个经济学上的防御。
详细一点说攻击行为会受到的抵制
-社区中会知道某些地址正在在大量进行币的买入,可能是攻击行为,可以防微杜渐;
-攻击者购买代币过程中,代币的价格将不断上升,而这又进一步提高了攻击者的购买成本;
-一旦攻击者成功攻击了链本身,该链的代币价值将会大幅下降,此时攻击者为了攻击所持有的代币价值将会大量下跌,很难高于攻击者想篡改数据的价值。
总结
PoS共识改变了PoW共识中竞争而浪费的算力与效率,通过stake加上选举算法,达成了更高效的共识,而stake本身则代表了持币人的权益,衍生出的staking经济将与每个持币人直接相关,知道如何评估不同项目的经济机制、使用工具、挑选验证人节点会是将来很重要的课题,PoS还需要接受更多社会实验的检验,安全问题将随着不同新项目的解决知道完善,更严峻的是关于PoS中心化及治理问题,这两个也同时是所有共识都会遇到的问题,我们期待PoS共识带给区块链生态的改变,也期待staking创造出来的经济能更加活络整个金融系统。
转载本文请务必联系并注明作者,欢迎分享!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。