重组区块取回被盗资金是好方法吗?
前言:这两天关于黑客盗币后,是否应该通过重组区块来取回资金的讨论非常热烈。一方认为技术上可以通过区块重组取回资金,而另外一方则认为这会导致社区分裂和并损害人们对比特币不可逆转交易的信心。而这里最关键的问题不是要不要重组,而是能不能重组,或者重组在实践上是否可行,这也是大家需要关心的地方,因为它事关比特币和PoW链的未来。从实践上,除非行动非常迅速,在事件发生后的少数几个区块时采取行动,否则从博弈论角度,重组不是一个理性行为选择。本文作者是Tamas Blummer,由“蓝狐笔记”社群的“SL”翻译。
通过给矿工激励重组区块
鉴于币安黑客盗币事件,关于重组区块来恢复比特币交易被提起。从技术和PoW经济学角度,他们可以做到。以下是关于通过给予矿工好处,然后他们可以联合起来重组。
比特币交易只有记录在最多工作量的链上才有经济上的意义。截止到撰写本文时,包含币安黑客盗币交易的区块上已经新构建了111个区块,基本上,这7000btc交易很难追回了。
区块575011包含了黑客的交易,随后的区块照常在它上面增加。如果矿工在包含黑客交易的区块之前构建另一条替代的链,则有机会重新取回被黑客盗走的比特币。这条替代延续链不会包含黑客的交易,并且必须比当前链增长更快,并在某个时间点它展示出更多的工作量,并且所有的比特币客户端都重组它。在重组后,该黑客交易将不会存在于网络中。也就是说,区块575012和其之后的区块将不会在网络中存在。
对于网络来说,用更多工作量(算力)重组到替代链本身并不特别,它是解决独立矿工之间竞争的常规方法。替换最新区块的重组非常频繁。
对于不在最长链上挖矿的矿工来说,重组成本很高,因为这些矿工要失去这些区块中开采的比特币。这就是为什么矿工热衷于在最长链上挖矿而避免在替代链上挖矿的主要原因。
也就是说,有一种可能是可以在替代链上把资金给矿工,如果在有准备且快速的情况下,可以实现把被盗取的资金取回。
如何激励矿工?
如果一旦发现被黑客攻击,可以快速:
1.在网站上公布从他们最后控制地址到被盗地址的交易
2.在网站上发布被盗地址的私钥
由于资金在黑客的地址中,所以交易在当前的现实中毫无价值。但在可替代的链中,则非常有价值,如果该替代链从替代区块575012开始。(蓝狐笔记注:作者的意思是从不包含盗币交易的区块开始重组最长链。)
为什么有价值,因为矿工构建了另外一条替代575012区块的链,同时因为有了被盗币地址的私钥,那么它可以把该地址上的比特币转入自己的地址。这样,公开了私钥,相当于给到了矿工好处。
对于矿工来说,如果被盗币地址的比特币总量高于其从区块575011开始挖矿所得的比特币总量,那么,矿工构建一个可替代的区块链是理性的行为。也就是说,这条可替代的区块链会比当前的链吸引更多的工作量。
请注意,矿工可以通过不拿走所有好处而是给其他矿工留出足够资金的方式来显著提高可替代的区块链取代现有链的概率。
好处足够高,且不是太贪婪的瓜分,可以快速建立一个构建可替代链的联盟,因为任何矿工都可以被邀请并有动力加入。
最终参与构建可替代链的矿工们超越了当前链,构建出最长链。在重组之后,新的最长链现实中,被盗的资金可以奖励给矿工,同时,自己还保有一部分资金,而矿工则比正常挖矿的所获的比特币更多。
这种救援行动在技术层面是可行的。如果失去资金的人准备提供好处,并且同时矿工准备采取行动做出理性选择的话,这种行动是奏效的。当然,随着时间的推移,成功的概率呈指数级的减少。(蓝狐笔记注:就是说,时间越长,随着区块高度增加,后续重组的费用越高,重组可能性越小。)如果能事先承诺使用这一个程序,就能让矿工可以迅速采取行动。
结果是什么?
如果矿工进行重组,后果可能会非常严重,因为重组可能会扰乱正常的交易处理,并削弱人们对区块链不变性的信任。
这种损害是跟重组的长度成正比的。如果救援行动在几个小时候内实施,那么损失是微不足道的,因为几个区块的重组在技术意义上不算一个事件,且不会明显延迟正常的交易处理。
附录:从博弈论角度,重组区块不是理性的选择。
关于盗币事件,首先有社区成员提议可以通过公开私钥的方式来激励矿工重组区块链实现取回资金。有人认为通过激励矿工重组是很难协调的事情,但并非不可能。也有人认为重组不太现实,不仅对于社区对比特币的信心有很大的伤害,且在现实上的操作也不是理性的选择。
Jimmy Song认为重组区块损害的是整个网络,因而大家有很大的动力不去改变交易历史。
他提到用最简单场景来分析,假如丢币者愿意用丢失的BTC激励矿工重组区块链,如果有10%的算力用于重组,要重组攻击开始后的100个区块,那么,这意味着矿工需要放弃大约10个区块的奖励,也就是125BTC的区块奖励。也就是说,一旦矿工要重组,本身首先要放弃之前获得的奖励和交易费用,假如每个区块0.5BTC的交易费用,那么,也就是说,至少要放弃130个BTC。
此外,如果事情出现了偏差,还会有风险溢价。如果其他人不支持新的替代链,那么可能是在浪费本来可以在原链上挖矿的算力。也就是说,对于矿工来说,如果没有成功重组,丢币者要给予奖励的不仅是130BTC,还有潜在的挖矿所得激励。
如果要动用矿工来成功重组,丢币者需要支付1300BTC来恢复,丢币总额为7000BTC,那么还有5700BTC的纯利。表面上看,似乎是合理的选择。
但这个场景的最大问题是,如果一个主体可以这么做,那么其他有资金的主体也可以这么做,这包括盗币者。这会导致有很多双重支付的尝试,在盗币后的100个区块内进行过交易的人都很头痛到底发生什么事情。这对于比特币网络上进行交易的每个人来说,都是严重的干扰。因此,这种场景让所有人都感动痛苦,其操作会存在阻力。
更有争议的选择是,这涉及到有争议的分叉和竞争最长链。对100个区块重组而言,超过55%的哈希算力意味需要花费平均1000个区块(2周时间)。偏差也很高,500和1500个区块也有可能。就是99%的算力优势,也需要花费101个区块(20小时)来超越原来的链。
如果双方竞争,双方都试图吸引更多矿工。这个时候,原链有先发优势,因为已经有了100个区块的领先。在原链上的交易所、商家或用户如果不希望进行100个区块的重组,他们可以采用补偿原链矿工的方式进行争夺。方法很简单:就是提高在原链上发送交易的费用。如果交易费用足够高,很多矿工可能就会转移到原链上挖矿。尤其是盗币者可以通过在原链上发起高额费用的交易吸引矿工继续在原链上挖矿。
如果一旦出现这种情况,会导致盗币者和被盗币方之间的矿工补贴大战,双方必须花费资金争夺最长链。这时候盗币者有天然优势,因为拥有之前盗取的资金,他们有动力动用这笔资金进行补贴大战。这意味着,最终的结果是,被盗资金拿不回来,同时还至少需要消耗同等资金加上补贴矿工的区块奖励资金以及交易费用。按照简单的公式来说,如果发生大规模盗币事件后,考虑到博弈论,要重组区块的成本很高:假设说被盗走了X个BTC,需要重组Y个区块才能拿回资金,那么这意味着重组区块链的成本至少不低于X个BTC+Y个区块的挖矿奖励。
从这个角度,通过激励矿工重组区块链追回被盗代币的方式从经济上来说,也不是最理性的选择。最终受益者只有矿工。这也是比特币设计的初衷,要改变它交易的成本非常高的。
------
本文来源:蓝狐笔记