PoS 验证者机制真的好吗?它可能会给区块链带来更多攻击向量

本文来自Coindesk,原文作者:Pascal Thellman

译者 | Moni

编辑 | 卢晓明

随着升级准备工作有条不紊地进行,权益证明(PoS)与工作量证明(PoW)之间的对抗似乎也日益凸显。众所周知,作为“宁静(Serenity)”升级的一部分,以太坊已经开始酝酿过渡到权益证明共识了。不仅如此,对以太坊能否保持有效共识验证机制和激励结构,也引起了社区极大的关注。

币安(Binance)最近公布了拟议的“去中心化”交易所计划详情,其中显示该交易所会依赖11个验证者节点(validator nodes)验证确认交易所交易,但这些节点全部是由币安控制的。此举引发了社区的不满,因为人们认为这么做完全不符合“去中心化”精神,并且已经开始采取一些抵制措施了。

还有一些多链/跨链项目对互用性要求较高,并使用了快速终结(fast-finality)共识区块链,这些项目同样也获得一定市场竞争力,比如 Cosmos 和 Polkadot 分别使用了 Tendermint BFT 和委托权益证明(DPoS)共识模式。虽然这些共识机制还没有被大规模采用,但已经出现了不当激励问题,而且也被一些攻击向量(attack vector)给盯上了。

攻击向量指的是攻击者用来攻击计算机或者网络服务器的一种手段,它能够帮助攻击者寻找系统可能存在的任何漏洞,包括人为因素造成的漏洞。传统攻击向量手段包括病毒、电子邮件附件、网页、弹出窗口、即时消息、聊天室等,区块链攻击向量则有长程攻击( Long-Range Attack )、变质牛奶攻击(Sour Milk Attacks)、贿赂攻击(Bribe Attack)、币龄加和攻击(Coin Age Accumulation Attack)、预计算攻击( Precomputing Attack)等。

大多数跨链/多链项目都侧重于使用验证者(Validator)来实现网络共识,不过也有一些项目仍然使用工作量证明共识机制,虽然他们可能只是会对共识机制做了一些微调。比如,Block Collider 使用的就是“中本聪共识(Nakamoto Consensus)”的优化版本,并基于此来实现多个区块链之间的互操作,无需将其安全模式更改为权益证明、或是使用验证节点。

实际上,工作量证明已经经过了“实战检验”,也是截止目前唯一一个能够为比特币提供支持的共识算法。相比之下,权益证明似乎还没有达到类似的水平,因此有必要快速启动一些评估工作,看看它是否存在一些潜在的问题。

首先,让我们简单了解一下验证者(Validator)验证形式

对于那些部署了验证者机制的网络来说,基本上使用过很多名字来“定义”共识,比如“Hub”、“主节点(masternodes)”等等。但是,这些网络共识都采用了类似的设计模型——由验证者通过“验证”或“生成”与网络中原生代币权益相匹配的区块,来保证网络处于有效状态。

实际上,验证者取代了工作量证明区块链网络里矿工的角色,由于他们在执行任务的时候,权益被锁定在网络内,因此只有在系统里诚实行事才能获得激励。验证者完成实际验证工作之后,就可以获得网络中的原生代币奖励,但是如果他们做出了一些恶意行为,那么权益就会被削减。

如果你想深入研究工作量证明验证系统的机制,“V神” Vitalik Buterin 已经在以太坊 CBC Casper(权益证明)机制和权益证明初始设计理念中做了深入解释。同样,Cosmos 也提供了一些有用的开发文档,让开发人员能够进一步了解他们的跨链验证工作原理。

权益证明机制其实是非常复杂的,因为这种共识模式需要先进的博弈论方法,而且其不变性也只能被主观解释。权益证明区块链分类账依靠验证者来验证,这样就不需要像工作量证明那样依赖能耗较大的挖矿方式来保证网络完整性。

另外,一些跨链网络框架必须插入兼容区块链,比如 Cosmos 需要使用快速终结共识的子链,从而排除将工作量证明的区块链连接到自己的网络中。

基于验证者机制的区块链网络最关注的问题,就是能否权衡、或满足安全性的可扩展要求。如果你想要分析基于验证者机制的区块链网络安全缺陷,可能需要关注以下两方面:

1、攻击向量

2、不当激励

攻击向量

基于验证者机制的区块链网络的一些不当激励铜锤直接对应于攻击向量,这些攻击向量往往需要非常复杂的工程工作才能被避免。在此,我们将分析一下验证者共识机制可能会长期所面临的两个主要攻击向量,它们分别是:长程攻击(Long-Range Attacks)和变质牛奶攻击(Sour Milk Attacks)。

1、长程攻击

长程攻击是权益证明协议中最大的威胁之一,由于权益证明协议有弱主观性并且能进行无代价模拟,这种攻击比在工作量证明协议中更为危险。长程攻击就是攻击者创建了一条从创世区块开始的长区块链分支,并试图替换掉当前的合法主链。该分支上可能存有和主链不同的交易和区块,所以这种攻击又被称 替换历史攻击或历史覆写攻击。

恶意攻击者可以购买大量代币余额私钥,这些代币余额已经在验证过程中被使用了。接下来,恶意攻击者可以使用这个代币余额生成一个区块链替代历史,从而基于权益证明让他们获得更多激励。

针对这个问题的解决方案是引入“检查点(checkpointing)”的概念,但是检查区块链状态不仅需要节点一直在线,而且也是一种复杂且中心化的解决方案,因此一直饱受社区诟病。此外,长程攻击也表明如果从长远来看,基于验证者机制的权益证明网络无法确保分类账的有消息——特别是那些在区块链中处于过去状态(past states)的分类账。

结果就是,验证者网络没有基于共识创建一个永久的、不可变的分类账,只是在给定时间范围内实现了一种“临时共识(temporary consensus)“。

2、变质牛奶攻击

变质牛奶攻击是指基础验证者把他们的同伴推送到一些被怀疑不诚实的验证者哪里,基础验证者一般会向其他验证者同时发布一些真实区块和虚假区块来迷惑同伴。与此同时,一些基础节点(base node)也会与想要进行恶意攻击的其他节点携手做这件事,让那些诚实的验证者无法充分辨别有效区块和无效区块。

可怕的是,实施这些攻击的门槛非常地,因为只需要很少一部分网络验证者就能有效冻结网络,并创建分叉、锁定共识。

3、其他攻击向量

对于权益证明验证网络来说,还有一些其他主要的攻击向量,比如“虚假权益攻击(Fake Stake attack)“、权益研磨(stake grinding)、以及 DDOS 攻击,但这些攻击向量都只有在验证者在线才能实施攻击,并造成资金损失。

(注:“权益研磨” 是一种攻击类型,在这种攻击中,验证者通过执行一些计算或者采取某些其他措施使得随机性更偏向他们,也就是说,让他们有更大概率成为产生下一个区块的验证者。)

在此要特别提一下虚假权益攻击,这种攻击让我们意识到权益证明验证在扩展方面并没有我们预想的那么好,之所以会这样,主要是因为和工作量证明相比,检查权益证明区块链的成本会更高。以最近披露的几个攻击向量为例,攻击者花费很少成本就能让运行网络软件的节点崩溃,主要原因就是权益证明区块链无法对每个节点进行全面检查(参考阅读:PoS 加密货币存致命安全隐患,详解最新“虚假权益”攻击)。

不当激励

基于验证者机制的权益证明区块链网络其实还存在另一个需要引起重视的问题,就是——“富者愈富,穷者俞穷”,即只有拥有更多权益的验证者才有机会获得更大的回报。也就是说,谁拥有的权益越多,谁就更有可能参与验证,继而控制相当大一部分的区块链网络代币供应,而那些权益较少的验证者参与网络交易验证的机会将变得越来越少。

假设基于验证者机制的权益证明区块链网络不当激励问题愈发严重,由此引发的最直接问题就是投入权益的参与用户数量会下降,而这种低参与度所带来的下游影响就是——区块链网络将变得越来越中心化,甚至会出现内幕交易、老鼠仓等更多无法预知的不利后果。

验证者机制区块链网络所采用的博弈论,也因为其晦涩的复杂性而饱受诟病。举个不太恰当的例子,如果把博弈论中的工程师和激励结构看作是锤子,那么权益证明共识所设计的一切看起来就像是个钉子。所以,如此复杂的模型,类似于给那些因为旧解决方案所产生的问题设计一些新解决方案。事实上,之所以会产生不当激励这个问题,其实和系统复杂性有着莫大关系。

另外,基于验证者机制的权益证明区块链网络还有一个“Nothing at Stake”问题。在工作量证明机制中,当区块链出现分叉时,使用工作量证明这种“算力敏感”共识机制意味着矿工必须选择一个方向进行挖矿。而在权益证明 这种算力不敏感的时候 矿工往往会两个方向都挖,以争取实现利益最大化。通过设立一个“最多能耗工作链”的随机机制,工作量证明很好地解决了这个问题。然而,权益证明把这个问题传递给了验证者,导致一个区块可能比另一个区块具有更多权益,当验证者发现在两个竞争区块链上一起挖矿的时候,问题就出现了,因为这样很容易会出现“双重花费(double spend)”攻击。

总结

由于依赖验证者机制的权益证明区块链网络获得的支持越来越多,因此在开发下一代区块链平台时,明智的做法是在实用背景下去设计共识机制。

工作量证明是区块链网络唯一经过“实际检验”的分布式共识机制,而对于权益证明的验证者机制而言,只有时间才能证明它是否能在可扩展区块链上获得持续性成功。当然,如果我们可以早点意识到其中存在的一些缺点,或许也能为区块链创新带来帮助。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();