解析 | PoW挖矿的风险分析与应对策略
摘要: 2019年是51%攻击之年。这个问题曾经只出现在价值微不足道的加密货币身上,而现在,名声大、市值高的加密货币现在也发现自己成为了双花攻击的受害者,而交易所首当其冲。
随着攻击事件发生的频率越来越高,程度越来越严重,交易所开始采取措施以此来自我保护。起初,他们只是增加交易确认次数,但是随着受攻击的区块从几十个增加到几百个,这个策略的有效性开始受到质疑。
如果不对应对策略进行大幅度修整,我们可以预计,损失会继续增加,甚至事情会发展到交易所支撑不下去的地步。这些51%攻击之所以能成功,其原因在于加密货币协议从根本上来说存在软肋,因此交易所在选择上线的加密货币时,需要格外严谨。
挖矿博弈论和威胁模型
很多去中心化协议都存在这样的假设,即至少有51%的参与者是诚实的。比特币之所以成功,是因为协议设计者意识到这种假设不适用于现实世界的去中心化协议。在匿名且不受监管的互联网中,参与者作为经济主体是自由的,就算做了不当行为也通常不会受到什么影响。与其假设有超过51%的参与者会诚实参与,比特币提出的假设是,超过51%的参与者会从自身利益最大化的角度来行事。这种威胁模型(即假设至少有51%的参与者是诚实的)要更不具安全保障得多。与其假设大多数参与者会依照协议诚实行事,比特币开发者的假设是,如果有利可图,参与者会自发寻找路径来不按照比特币协议行事。虽然这种假设会极大地限制协议设计的灵活性,但事实证明,这种假设是在开放式互联网中取得成功的关键要求。比特币开发者在努力实现激励相容性(incentive compatibility)。如果某个协议具有激励相容性,则意味着每个人从自己的角度出发做出的最佳决策,对整个群体来说也是最佳决策。当协议具有激励相容性时,人们可以是完全自私的,因为这些自私行为也会使整个群体受益。维持比特币安全运行的博弈论很复杂,且相当微妙。许多试图复制比特币协议设计的加密货币,都对协议进行了一些修改,这些修改破坏了维持比特币安全性的激励相容性。结果,这些加密货币并不安全,频繁出现的双花攻击就是问题出现的明确指示。虽然山寨币的设计师们破坏激励相容性的招数五花八门,但从近期的双花攻击事件来说,最具安全威胁的方式就是使用共享硬件(shared hardware)作为保障区块链安全的手段。当同一台挖矿硬件可以在多种加密货币上进行挖矿作业,性命攸关的激励兼容性就荡然无存了。
使用共享硬件的加密货币主要有两大类。第一类(也是最突出的一类):抗ASIC挖矿的加密货币。抗ASIC挖矿的加密货币的目标实际就是使用共享硬件;他们相信这样做会增加安全性,因为他们认为可选的挖矿硬件的范围越广泛,则越可能带来更大的算力集中化的可能性(算力过于集中便可能带来51%攻击)。
第二类使用共享硬件挖矿的加密货币使用的是ASIC设备来挖矿,但与其它加密货币使用相同的挖矿算法。当多种加密货币使用相同的PoW算法时,同款挖矿硬件(即便是专用挖矿硬件)就能够对这些加密货币中的任何一种发起攻击,如此一来,和第一种抗ASIC加密货币一样,这种加密货币也破坏了激励相容性。
PoW挖矿自2017年以来发生了什么变化
共享硬件多年来一直是加密货币领域中的一个主题,但直到最近(针对ETC等的)51%高调攻击才成为一个真正的大问题。 实话说,最近出现这些攻击的原因很简单,就是这个行业变得越来越复杂了。这个行业出现了更好用的工具,更聪明的攻击者,同时,大体上说,这个行业的基础设施也变得更多更好了。虽然基础设施很大程度上造福的是诚实参与者,但它也使攻击者受益,并使得老练的攻击者更轻易地对不安全的加密货币发起攻击。下文中,我们将探究一些对51%攻击来说重要的发展,但即使没有这些特定的发展,我认为针对共享硬件的加密货币的 51% 攻击无论如何都会高调登场。从根本上来说,共享挖矿硬件是一种不安全的方式,无法保护区块链免受双花攻击。算力市场 造成近期攻击事件的关键发展因素中,有一点是算力市场(hashrate marketplaces)的日趋成熟。对于共享挖矿硬件的加密货币来说,要了解在哪个时刻挖掘哪种加密货币最有利可图,这需要矿工拥有老练的经验。算力市场允许挖矿硬件所有者将其硬件出租给更为老练的矿工,从而提高算力市场中所有参与者的利润。算力市场带来的副作用是攻击者可以拥有大量的硬件,当他们想发动攻击时,他们可以暂时迅速地利用到这些硬件聚集算力来。在算力市场出现之前,对一种有着10万台 GPU设备保护着的加密货币发动攻击,攻击者自身也大约需要拥有10万台GPU设备。这种规模的攻击,需要数千万美元的支撑才能发动,也就是说,由巨型规模的GPU设备挖矿的加密货币大体上是安全的。在算力市场出现之后,同样是10万台GPU挖矿设备,租用几个小时的费用只需要数万美元。算力市场的出现把使用共享挖矿硬件的加密货币的安全性降低了好几个等级。往后,我们只能预见针对共享挖矿硬件的算力市场将继续扩大,因为参与到算力市场中的所有人都能从中受益——算力市场使得挖矿更加高效。这些算力市场对于使用专用挖矿硬件(ASIC)的加密货币来说并没有多大的意义。算力市场的好处是他们能帮助挖矿硬件所有者不用费心来决定挖掘哪种币才能赚取最多钱。而在使用专用挖矿硬件进行挖矿的加密货币网络上,可以挖的币只有一种,所以硬件所有者加入这种专用挖矿硬件算力市场也就没什多大好处了。
算力市场还有另一个关键的博弈论元素。当矿工给算力市场提供共享硬件时,该挖矿硬件有可能被滥用于发动攻击。然而,运行这台共享挖矿硬件的运营者并不会在乎硬件是否用于发起攻击,因为(由于是突发需要)攻击者可能只为这些硬件支付一小笔费用,并且即便使用该共享硬件的一种加密货币遭遇了一场大型攻击,这些共享硬件也不会贬值,因为它可以挖的加密货币还有好多种。
相比之下,专用挖矿硬件只能从对指定的一个加密货币进行挖矿中获得价值。向攻击者提供专用挖矿硬件的风险会更大,因为成功发起的攻击将对在此次攻击中使用的专用挖矿硬件的价值产生直接的负面影响。加入算力市场的所有专用挖矿硬件提供商都有可能因为一场成功的攻击而断送了其唯一的收入来源。因此,他们不会参加这种会削弱该加密货币安全壁垒的算力市场中。
大型矿场
大型矿场的出现也大大降低了使用共享硬件进行挖矿的加密货币的安全性。许多大型矿场拥有超过1万台GPU挖矿设备,也有许多矿场拥有超过10万台GPU挖矿设备,最大的矿场则拥有超过50万台GPU挖矿设备。从安全角度来看,这意味着仅最大的矿场就可以发动51%攻击,干倒任何一个总算力低于 50万GPU挖矿设备的加密货币。而对于只有少于10万台GPU矿机进行挖矿的加密货币,不仅可能被算力最大的矿场干倒,也可能被那些有能力单独发起51%攻击和双花攻击的矿场干倒。而那些只有少于1万台GPU矿机进行挖矿的加密货币,其总算力真的太过微小,几乎很容易受到攻击。大多数GPU矿场是纯粹受利益驱使,他们几乎没有吸收到任何加密货币领域的意识形态。对于某些矿场来说,能赚更多的钱的方式就是最好的工作方式,即便这会对整个生态系统带来额外的伤害,但他们可不在乎。专用挖矿硬件通过两种方式解决这个问题。首先,对于使用专用挖矿硬件进行挖矿的加密货币来说,基本上有能力发动51%攻击的矿场最多只可能存在一个。虽然这并不令人欣喜,但使用专用挖矿硬件进行挖矿的加密货币必须保证信任至少一个实体。这与绝大多数抗ASIC硬件的加密货币形成鲜明对比——大多数抗ASIC挖矿硬件的加密货币在任何时候都有可能受到不同矿场的攻击。专用挖矿硬件更重要的优势是带来的激励联盟(incentive alignment)效应。对于利润最大化的矿场来说,对使用专用挖矿硬件进行挖矿的加密货币发动攻击通常不可能获得利润,因为攻击会减少矿场的专用硬件能获得的利润。即使一个使用专用挖矿硬件进行挖矿的矿场拥有足够的算力来发动51%攻击,该矿场也不去发动攻击,因为该矿场的专用挖矿硬件的总值大于该矿场能从攻击中偷取出来的价值。增加攻击者的预算和攻击困难度
2019年加密货币领域与2017年之间的一个主要区别是,2019年加密领域的总体价值更高,攻击理论得到了更好的理解,也有更多老练的专家。2017年,了解加密货币存在上文这些漏洞的人不是很多。此外,主要加密货币的价值也不是很高,也就是说,即使有人知道怎么发动攻击,他们通过发动攻击能获得的利润也不高。而在2019年,有更多的人了解加密货币是如何运作的,也有更多的人知道怎么攻击有重大缺陷的加密货币。此外,如今发动攻击能获得的潜在收益变得更高了,这意味着有能力发动攻击的人中有很大一部分人正在伺机发动攻击。回报的上涨也意味着攻击者会愿意投入更多时间、金钱和资源来发动攻击。这种趋势还会持续下去。今天,我们看到了51%攻击的发生,是因为它们是出最少力能获得最大利润的事情(性价比最高的事情)。然而,当今许多主流Dapp (去中心化应用)都存在重大的软肋,随着这些Dapp越来越具有价值,且攻击者越来越老练,这些软肋被利用的次数将变得越来越多。特别是,我担心大多数涉及新的共识算法、链上治理、预言机、稳定币、预测市场等等的加密货币项目。往往这些项目的核心理念并不会被破坏,而是具体的设计和实现可能被攻破。当前,很多在加密货币领域中部署的高调项目都还未曾经过充分的审核,可能存在重大的活跃安全漏洞。
挖矿硬件的熊市
挖矿硬件遭遇熊市,不管对于使用共享硬件还是使用专用硬件进行挖矿的加密货币来说,都会对这些加密货币产生负面的影响。如果挖矿硬件的价值下降到挖矿不再有利可图,那么对攻击者来说会挖矿硬件就会变得十分廉价。最近的加密货币熊市已经大大降低了挖矿硬件的价值,这同时意味着为加密货币保驾护航的活跃总算力也变少了,同时还意味着攻击者租赁或购买的硬件资源变得更加低廉。GPU设备市场正在遭受第二场冲击:现在针对ETH和Zcash都出现了ASIC挖矿设备。显然,之前这两种加密货币消耗了大部分是GPU挖矿算力,这种算力正慢慢被ASIC设备逼出市场,这大大降低了租用GPU设备以对低市值的加密货币发动攻击的成本。随着ASIC硬件慢慢渗透到由GPU硬件支持的高价值加密货币市场中,我们可以预见这种冲击会加剧,51%攻击也会越来越普遍和廉价。即使有新的抗ASIC芯片的加密货币出现,我也不觉得种趋势会发生逆转。比特币也正在受到挖矿硬件熊市的打击。据估计,破产矿场低价出售的比特币算力达到了比特币总算力的三分之一。当前,S9矿机的价格远低于其制造成本,虽然目前这暂未对比特币造成安全问题,但如果价格再下跌 2-4 倍,这很可能会变成一个实际问题。挖矿硬件制造商本身也受到熊市重创。据估计,比特大陆、芯动科技、TSMC,甚至三星都因为挖矿硬件价格的突然下跌而遭到了重创,因此我们不太可能会在未来看到挖矿设备的生产过剩现象——人们已经明白,大量生产的风险性非常高。比特币的规模如此之大,公司们不愿意承担这么高的风险。我推测,这是比特币有史以来经历过的最严峻的硬件熊市。
然而,其它使用专用挖矿硬件进行挖矿的加密货币并没有比特币那么大的规模。专用挖矿硬件的制造商或许会更愿意承担过度生产所带来的风险,但可能会因加密货币价格突然下跌或其他动荡,导致这些专用硬件遭遇熊市。
区块奖励的影响
由于挖矿硬件在购买和操作方面的成本非常昂贵,因此加密货币应对双花攻击问题的安全性,很大程度上取决于其区块奖励的多少。加密货币能获得的保护力度和保护它的挖矿硬件数量成正比。如果区块奖励太少,会导致大量挖矿硬件不再对该种加密货币进行挖矿,那么该加密货币就不再具备相同程度的安全性。总的来说,我们在考虑安全性的时候需要考虑到发起51%攻击的成本是多少。如果针对某种加密货币的挖矿设备的总值为100万美元,那么我们可以预想到任何一笔超过100万美元的交易都非常容易受到51%攻击,因为该笔交易的交易对方仅仅只需要花100万美元来购买或者制造足够多的挖矿硬件来发动双花攻击就行了。
要估算出针对某种加密货币的挖矿设备的总价值并非易事,估算出制造足够数量的新硬件用于发起51%攻击所带来的成本也很难。但一般来说,这个数值应在某种加密货币的6到24个月的区块总奖励之间。挖矿硬件的开放性竞争通常能够确保这个数值就在这个范围内。这种估算有助于我们设定加密货币最大的安全交易值。然而,在设定这个数值之前,我们需要讨论一下“双重花费”这个词。事实是,双重花费也可以是三重花费或四重花费,或者是攻击者可以成功花费某一笔资金的任何次数。单个双花攻击可以同时在十几个不同的交易所中进行。因此,在考虑针对双花攻击的安全性问题时,仅考虑单个交易价值实际上是不够的,我们还需要考虑其他可能同时发生的攻击。每种加密货币都将有其各自专属的实际交易值上限,决定因素也有很多,并不仅限于区块奖励。但从以往经验上看,如果使用专用挖矿硬件进行挖矿的加密货币上的交易值大于该链一个月的区块奖励价值,那就需要提高警惕了;如果某种加密货币建立在已有的大型算力市场之上,且交易价值大于1个小时的区块总奖励,那也需要注意了。
加密货币做空
加密卖空本质上是一种贷款。当你对一笔加密货币卖空时,你实际上就是在接入一项资产(并以当前的市场价格出售),你同意将来会归还同等数量的币(通常需要支付一点利息)。通常情况下,当某人对一笔加密卖空时,他们瞬间卖掉币,然后希望币价下跌,这样他们就可以以更低的价格买回并归还之前借的那些币,从而在这个过程中获得利润。加密货币卖空有两方面要求。要有人想要卖空或贷款,然后也要有提供贷款的人。当谈及到加密货币时,贷款的人和提供贷款的人之间存在一种重要的红利分配紧张关系:贷款的人可能利用这笔贷款对加密货币发动攻击并致使价格崩塌。这种攻击可能是双花攻击,或者仅是不使用某种服务的攻击,也就是攻击者永远只挖空块。或者,他们会根据加密货币的不同对其实施其他谋划好的更为高级的攻击。我提出这个问题有两方面原因:首先是警告交易所和市场参与者反抗加密卖空市场。如果您在提供加密货币贷款,那么你是变相给攻击者提供资金,这些攻击者将使你希望取回的资产贬值。提供加密货币卖空贷款比为传统市场提供卖空贷款的风险要大得多。
另一个原因是,大型卖空市场会增加其他方的风险,具体取决于该加密货币的安全性。如果一种加密货币出现大型卖空市场,则潜在的攻击者就有了获取大量资金的来源以发动攻击,而如果攻击成功,他们就不需要归还大量资金。因此,交易所和其它用户应该特别警惕,避免持有那些拥有大型做空市场的加密货币。
增加交易确认时间的局限性
当区块链网络出现动荡时(即遭遇攻击时),人们常见的反应就是增加交易确认时间。在很多情况下,这确实是一个很好的建议:有时候,增加交易确认时间有助于避免某些类型的风险。但是,有时增加确认时间根本毫无作用,并不会对交易提供任何额外的实际保护。增加交易确认时间最为有用的一个领域就是在对等网络中出现动荡情况时。如果由于某种原因,区块广播的速度过于缓慢,或者如果区块链网络被分裂成两个网络,亦或者如果某些对等端试图阻止某些区块被广播出去或发起路由层攻击,在这些情况下,通过增加确认时间将非常有用。比如,将60分钟的确认时间更改为24小时的确认时间,这将意味着最长的链将有更多的时间来进行传播,有更多的时间来修复网络的分裂,或者有更多的时间来解决路由层的攻击。增加交易确认时间在另一个情况中也非常有用,即出现自私挖矿(selfish mining,比特币网络上的一种攻击形式)或出现接近50%的算力被单个矿工掌控时。当网络中出现大量的自私挖矿,或者由于某种原因,大型矿场或矿池以一种非常态的方式挖矿或生成无效区块时,对区块链实施大量重组的可能性将大大增加。可能刚开始就可以看到多大十几个区块被重组,而不是通常情况下看到的2-3个区块被重组。但是,由于不存在51%攻击,所以我们不太可能看到超过几十个区块被重组。网络通常仍旧会朝着同一个方向运行。
对于实际的51%算力攻击,增加确认时间所带来的影响往往小得多。将确认时间从60分钟延长至6个小时,这将会增加攻击者借用算力的时间,或者增加某个矿场的攻击时间,尽管这只是针对那些存在很大的被攻击可能性的加密货币。需要记住的重要一点是,当某种加密货币遭遇51%攻击时,攻击者会获得他们挖出的区块的所有区块奖励。如果遭遇51%攻击之后,这种加密货币的价格只是稍微有点下降,那攻击者实际上将获得足够的回报,完全可以抵消发起攻击的成本费用。对于通过小型的GPU挖矿的加密货币来说,这就是为何增加交易确认时间并不怎么有用的关键原因之一。攻击者也许只需要从市场中租用几个小时的算力就能够挖出价值相当于一整周的区块量,尤其是如果被攻击的加密货币市值很小或者区块奖励很小时。
地址黑名单的局限性
之前,用于打击攻击者的其中一个方式就是交易所应用的紧急黑名单。当某个攻击者执行双花攻击是,他们必须以某种方式提取出资金。这通常就涉及到将资金从某个交易所转移到另一个交易所,然后对这笔资金发起交易。在过去,交易所通过将任何涉嫌参与双花攻击的地址列入黑名单的方式,以此来阻止盗窃或双花问题——交易所之间会相互传递有问题的账户地址,然后这些交易所团结在一起找回资金。尽管这种方式有时是很有效的,但攻击者越来越多地能够规避这种安全措施。无论是使用具有隐私保护的加密货币,还是通过延迟实际的双花,一直等到这些盗来的加密货币被转移到更广范围的钱包中,亦或者是通过使用去中心化交易所,而不是通过传统的中心化交易所来提取资金,这些手段都使得通过将地址加入黑名单的方式变得越来越无效,攻击者正变得越来越老练。
这并不意味着交易所应该停止使用地址黑名单的方式。这是一项很好的技术,已经成功地索回了大量被盗的资金。但在遭遇攻击时,交易所不应只依靠地址黑名单来挽回资金,因为很多时候地址黑名单将无法找回被盗的资金。
降低风险的建议
尽管形势严峻,尤其对于传统的中心化交易所来说更是如此,但我们依旧可以采取一些措施,至少能暂时降低使用PoW方式挖矿的主要加密货币面临的风险。尽管最终这些缓解措施可能也会被足够老练的攻击者所规避,并且随着加密货币领域中的去中心化交易所和去中心化算力市场实现重大发展,这些缓解措施也最终将变得无效。唯一的既定长期解决方案就是要求所有加密货币都切换到专用硬件——每种加密货币都使用一种ASIC友好型挖矿算法,且每种加密货币都使用的ASIC友好型挖矿算法都不一样。
追踪全球挖矿硬件的可用性
交易所可以用于管控风险的一种方式就是密切关注全球范围内针对每种加密货币的挖矿硬件的可用性情况。有效挖矿硬件在某种特定加密货币上挖矿所占的百分百,是反应出该种加密货币的安全性的良好指标。对于使用专用挖矿硬件进行挖矿的加密货币,你唯一需要注意的就是低区块奖励和挖矿硬件熊市时期的出现。比如,如果曾经针对某种加密货币的挖矿硬件,由于这种加密货币的挖矿盈利过低,使得大多数这种挖矿硬件不再对这种币进行挖矿,那此时对这种加密货币发起攻击的成本就很可能非常低,因为此时攻击者可以以相当便宜的价格购入这些挖矿硬件设备。除此以外的其他所有情况下,采用专用挖矿硬件进行挖矿的加密货币都应该可以抵御算力攻击。对于采用同样的挖矿算法,并使用ASIC或其他高度专业化硬件进行挖矿的加密货币,需要注意的关键是这些加密货币所占的算力比重是多少。对于拥有70%以上的专业挖矿硬件算力的加密货币,那没有太多可担心的;对于拥有的算力只占所有专业挖矿硬件总算力的10%-70%之间的加密货币,保证交易确认时间不少于24个小时是谨慎的做法。即便拥有70%的算力,也存在大型矿场发起攻击并成功执行双花的可能性。通过使用24小时的确认时间,这些攻击就会变得不那么可行。对于使用相同的挖矿算法的加密货币,但其算力只占所有专业挖矿硬件总算力的10%不到,那这种加密货币就是很不安全的。当然,对这种加密货币的存取决定总是取决于交易所的风险承受能力和其他因素,但我的建议就是停止继续存取这种加密货币,直到这种加密货币的哈希算法变得更加安全。
对于使用GPU硬件挖矿的加密货币,风险管控中确实需要了解当前算力市场的分布情况,以及运营中的大型矿场的情况。
尽管本人并没有花大量时间来准确研究出相关的价值,但据我估计,当前在全球的算力市场中,存在价值约为1亿到2.5亿美元的GPU设备被用于挖矿。这个数据对于测定某种加密货币是否可能遭遇51%攻击是至关重要的。尽管单靠这个数据并不够,但有报道强烈地表示某些大型的矿场也已经参与到了一些针对小型加密货币的51%算力攻击事件中。特别是,在所有拥有价值在1000万美元到1亿美元的GPU挖矿设备的矿场中,有一个矿场似乎曾企图发起算力攻击。
鉴于上述这种情况,当前我的建议就是,对于使用GPU挖矿的加密货币,但在这种币上挖矿的GPU设备的价值在500万到2.5亿美元之间,这些加密货币应该实施24小时的交易确认时间;对于所有低于这个阈值的加密货币,交易所应该禁止所有针对这些加密货币的存储。
随着生态系统的发展以及大型矿场和算力市场情况的改变,针对不同规模和使用不同算法的加密货币的分析也会相应发生变化。能够掌握这些变化的交易所往往能进行更为准确的分析,并能更好地做出最佳的商业决策。
与矿场和算力市场建立关系
交易所可以通过与大型矿场和重要的算力市场建立关系来减少一些风险。算力市场一直都是大多数攻击事件的源头。中心化的算力市场能够随时对可以出租的算力总量进行限制,甚至可以为任何试图购买大量算力的人进行KYC (了解你的客户)等操作。交易所通过与算力市场建立关系,至少当大量算力突然指向某种特定的加密货币时,算力市场也许可以警告交易所该种加密货币可能存在51%攻击。但一个非常老练的攻击者也许能够利用女巫攻击(Sybil attacks)等方式来规避这些掌控。当然,中心化市场的控制力越大,就会有越多的用户转向采用去中心化的解决方式,因为这些方式中不会存在中心化的控制力。因此,这些控制力充其量只是一种暂时的解决方案,尽管这种暂时的解决方案也许能够为某些加密货币争取足够的时间来寻找更好的解决方案。与很多大型的矿场建立关系可能也是非常有益的。如果不出意外,通过这些关系可以更深入地了解当前各种加密货币的挖矿状态,让交易所清楚哪种加密货币更易于/更不易于遭受攻击。在风险缓解方面,我认为这些关系能够带来的益处将比预期到大许多。
自动暂停交易&将地址列入黑名单
当检测到某种加密货币存在大量重组时,应该自动停止有关该种加密货币的交易,且如果检测到了双花问题,涉嫌的地址应该自动列入黑名单。这应该在尽可能多的交易所中实现,而不仅仅是那些受到双花攻击影响的交易所。尽管当资金已经被盗之后,立即暂停交易已经晚了,但这种方式确实在很大程度上减少了攻击者处理被盗资金所能采取的方式。同时,通常攻击者可以预测攻击后的价格变动,并通过进行大额交易来抵御这种价格变动,如果冻结交易,潜在攻击者能够获得的盈利来源就会减少。将地址列入黑名单也能带来类似的效果:这种方式也能减少攻击者处理被盗资金的方式,这就能够增加找回这些被盗资金的概率。从以往的经验可以看出,通常攻击者并不是那么老练,往往会有一些很大的疏忽。即便对于那些理论上来说无懈可击的攻击者,你所能做的微乎其微,但真正的攻击者远非无懈可击。通过积极地追踪攻击者并试图寻找出他们的疏忽,往往能够带来非常有效的成果。
焦土策略:发起反击
存在一种更为高级但也更具风险的处理双花攻击的方式,即发起反击。当某个攻击者在某种加密货币上发动双花攻击时,受影响的交易所可以购买大量的算力来延长原始的那条链,从而巩固原有的交易,抵御攻击者的双花攻击。当然攻击者也可以发起反击,即通过延长受攻击的链来应对原始链的延长。这种情况带来的难题就是,交易所需要花费更多的资金来延长原始链,攻击者也需要花费更多的资金来延长受攻击的那条链。即便当交易所和攻击者所付出的资金成本已经超过了可能被盗的资金的价值,双方依旧有必要继续延长各自的那条链以便索回资金,这是很有必要的。
想象一下,当攻击者花费了1万美元的成本从某个交易所中盗取了价值5万美元的加密货币,这种情况下攻击者相当于赚到了4万美元,交易所损失了5万美元。此时,这家交易所的最佳应对方式就是花费1万美元来将原始的那条有效链恢复成最长的链,此时意味着攻击者损失了1万美元,交易所也损失了1万美元。如果我们将这个情况加以延伸一下,我们可以得出一下结果:
当攻击者不再能够从整个攻击中获利时,交易所在抵御攻击中损失了相同数量的资金,而如果交易所一开始就放弃抵抗,这笔资金也同样会损失。在这场算力的游戏中,交易所在任何时候都不占优势,只会损失越来越多的资金,攻击者亦是如此。这场游戏实际上可以没有尽头。在所有的时间点,双方都有理由继续尝试夺回最开始的那5万美元,因为在每一步中,双方都需要花费额外的1万美元来夺回那5万美元。这就是为何这种策略被称为“焦土策略”——没有赢家,双方损失的资金越来越多(两败俱伤)。这种策略的价值在于,至少在理论上来说,交易所能够阻止攻击者从攻击中获利。如果攻击者在发动攻击之前就知道他将攻击的交易所将愿意采取焦土策略来应对攻击,那发动攻击就没有任何意义,而交易所也很可能免于遭受好几次攻击。焦土策略还有另一个很大的复杂因素。攻击者在攻击准备方面具有很大优势,他可以花好几周或好几个月来准备某次攻击,而交易所几乎需要立即对攻击做出回应。比如,如果攻击者使用的代码更加优化,那每轮中攻击者可能只需花费5,000美元,而交易所每轮则可能需要花费10,000美元。在这种对峙的情况下,交易所无法判断攻击者是否具有这方面的优势。如果多个交易所也试图同时执行焦土策略,那此策略就会存在问题。交易所之间可能最终陷入算力之战,而不是与攻击者进行算力之战,这对于参与进来的交易所将是一笔机器高昂的支出。对此种策略的最后考量因素就是,它将可能对生态系统造成巨大的附带伤害。实际上,许多加密货币都无法处理大量的连续重组:节点可能崩溃,其他交易可能在这场算力战中被遗失或被双花,且一般来说,用户将在这场焦土之战期间承担更大的风险。
由于上述原因,本人并不推荐交易所采用焦土策略来反击双花攻击。
开发者仲裁
我想提出的最后的策略就是开发者仲裁,因为这种策略有过成功的案例。当盗窃发生时,开发者总是可以通过发起一个用于索回被盗资金的硬分叉。这种方式将需要引入开发者的高度集中化,但开发者本身也是人来,也可能被欺骗而误解某次攻击,因此可能出现开发者将合法的加密货币转移到攻击者的账户中,而不是索回被盗的加密货币。同时,开发者也可以通过签署区块的方式应对双花问题。一旦某个区块被开发者们签名了,这个区块就是永久性区块了,该区块中的交易也不可能被双花。这种方式在很多加密货币中都得以成功地应用过,但这种方式也存在一定风险:如果开发者的密钥被盗,那各种问题也接踵而至了。而且,开发者能够有效地决定哪些交易允许在网络中进行,这可能让人觉得有些类似传统金融监管机构。
因此,开发者在采取这种方式时,应当保持谨慎的态度,因为如果开发者在试图索回被盗资金时做出了错误的决定,对错误的区块进行了签名,或者允许一个未知的恐怖组织进行交易,这就可能引发严重的法律责任。特别是现在加密货币领域得到了越来越多的监管机构的关注,因此本人并不推崇这种途径,即便忽略相关的中心化问题。
总结
随着加密货币领域的不断发展,我们将会继续看到更为复杂的攻击事件。在接下来的6至12个月中,大多数的攻击事件将可能针对那些安全性较差的PoW机制加密货币的双花攻击,但越来越多的由开发者做出的易被攻击的决定将会被攻击者利用。安全的加密货币设计并非易事,且大多数的加密货币和去中心化应用都还没有完全成功地保障自身项目的安全性。当前由于共享的硬件算力攻击所导致的价值数百万美元的加密货币被盗事件,能够很好地反应这一点;但这些攻击事件只是我们经历的第一波高调的攻击,未来加密货币社区可能会经历更多的攻击。
为了阻止更多的损失,需要在短期内采取措施来保护交易所免受共享硬件算力的攻击。在某些情况下,将交易确认时间延长至24小时就足够了;而在其他情况下,应该禁止某种加密货币的交易,直至该种加密货币能够分叉出一种更为安全的范式。长期来看,交易所将需要对自身的风险模式采取更加保守审慎的态度,并且对于选择上线的币种做出根据前瞻性的尽职调查。
(作者:曲速未来安全区,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)
评论(0)
Oh! no
您是否确认要删除该条评论吗?