2019 年 5月7日,币安 (Binance) 遭遇黑客攻击并损失了 7,000 枚 BTC。之后我们很快看到了 Jeremy Rubin (比特币核心开发者) 发布推文建议币安 CEO 赵长鹏采用区块重组的方式来“撤销此次盗窃”:
推文译文:@cz_binance (赵长鹏) :如果你公开那些被攻击的币的私钥 (或者这些密钥的一部分),你就可零成本去中心化地协调一次区块重组 (reorg) 来撤销盗窃行为。
这显然使币安考虑进行区块重组,据币安 CEO 赵长鹏所说,在与一些人进行了协商之后,重组计划流产了:
推文译文:@cz_binance (赵长鹏) :如果你公开那些被攻击的币的私钥 (或者这些密钥的一部分),你就可零成本去中心化地协调一次区块重组 (reorg) 来撤销盗窃行为。
一个简单的模型
让我们假设一个非常简单的模型,其中 100% 的算力 (矿工) 都愿意帮助币安进行区块重组。
这是最容易分析的场景。我们假设币安与每一个矿池取得了联系 (虽然这不太可能),并就每一个矿工的赔偿金额达成协议 (虽然一些矿工可能同意,但另一些矿工不太可能同意),并达成共识。我们假设目前没有人不同意 (虽然这极不可能),也没有人会建立一个备用矿池来继续开采当前这条更长的主链。
首先,让我们看看补偿矿工的合理金额是多少。假设一个矿工拥有 10% 的网络算力,并且此次攻击之后要对100个区块进行重组,这就意味着该矿工将要放弃自己已经在原始链上挖出的那10个区块的奖励 (即 100*10%=10) 和相应的交易费用,也即放弃 125 枚 BTC (即 10*12.5=125) 以及相应的区块交易费用。
(备注:区块重组(reorg)也即交易回滚,只要有超过51%算力,在盗币交易区块前,重新开始挖一个分叉,并且只剔除掉那笔被盗交易 (和后续的交易),正常打包原链上的其它交易,那在新分叉长度超过原来被盗链后,就会发生区块重组。重组可以简单理解为:新分叉覆盖了原被盗链,效果是:在不影响其它交易的情况下,单独回滚那一笔盗币交易。)
你也许会认为,该矿工将能够在那条重组的链上挖矿并获得大约10%的区块奖励,这样就可以抵消了,但事实并非如此。因为该矿工如果在区块重组的这段时间内,他本来就可以通过自己的算力在原始的那条主链上继续挖矿并获得10%的区块奖励 (以及交易费用),同时不用放弃之前在原始链上已经挖出的那10个区块的奖励 (以及交易费用),这就意味着该矿工会因为帮助币安进行区块重组而损失至少 125 枚 BTC。
因此,帮助币安重组的矿工会要求币安将这些矿工在原始链上已经挖出的区块的奖励 (以及交易费用) 补偿给他们。在这个场景中,假设每个区块有 0.5 个 BTC费用,也即总共需要补偿给这位拥有10%算力的矿工 130 枚 BTC (即 125 + 0.5*10=130)。
这还不是全部!此外还存在风险溢价 (risk premium),以防出现问题。如果除了这个拥有10%算力的矿工之外,没有其他人愿意使用币安的那条新的重组链,那就浪费了这名矿工本来可以用于对原始链进行挖矿的算力。
如果重组的努力没有成功,币安将不得不同意要么补偿这种溢价风险,要么承担被浪费的算力带来的损失。这将是补偿的一个重要部分,但是为了让本文简短易懂,我们暂时忽略这方面的因素。
因此,如果币安在盗窃后开始试图重组 100 个区块,他们将不得不支付 1,300 BTC 的成本 (即 100*12.5+100*0.5=1,300,其中 12.5 是比特币链的区块奖励,0.5 是矿工每挖出1个区块之后能获得的交易费用),以此来回收被盗的 7,000 BTC,也即币安能挽回 5700 BTC。从币安的角度来看,你可以认为这是一个理想的场景,因为他们可以挽回一大笔钱。
这种情况的后果是什么?最明显的是,这样的事情将证明比特币是中心化的,因为如果币安可以强制对这100个区块进行重组,任何其他足够强大的实体也都可以做同样的事情。
这将会导致许多双花 (double spending) 的尝试,而且任何在这100个区块中进行了交易的人,都将不得不为了弄清楚到底发生了什么事情而劳心费神。事实上,通过重组有可能会导致出现比当前损失的 7,000 BTC 更大规模的双花问题!对于在比特币网络上进行交易的所有人来说,这都将造成重大的干扰,因为考虑到币安本来能够做到的事情,没有人会接受3-6次的交易确认次数。
换句话说,交易所、商家、用户都至少要承受很大的头疼,更糟的是,要处理更多的痛苦来应对可能的双花问题。
等等,我们还没讲到小偷(黑客)会做什么呢!
因此,重组的情况是非常不可能的,因为所有在这种情况下会经历痛苦的人都会加以抵抗。
一个更有争议的选择
重组将会带来一次受争议的分叉和一场争夺成为更长链的竞争。拥有55%的算力对这100个区块进行重组,并赶超当前的主链,这意味着需要大约在新链上挖出 1,000 个区块 (这种情况下需要2周时间)。这个数字的变化幅度也相当大,在这个场景中,不管是需要挖出 500 个区块还是 1,500 个区块都不足为奇。
即便是拥有 99% 的算力,也需要在新链上挖出 101 个区块 (约需要 20 个小时)。(备注:当前比特币链平均约每10分钟挖出一个区块,因此101个区块所需时间约为20小时)
在这种情况下,原始主链和重组的新链都希望吸引对方的矿工。原始的那条主链更具优势,因为这条链在开始竞争的时候就领先了100个区块。
支持原始的那条主链的是诸多不想要对这100个区块进行重组的交易所、商家、用户。他们都有可能会补偿原始主链上的矿工。他们可以轻易地补偿矿工:在原始主链上以一笔高手续费花费一个 UTXO (未使用交易输出),而这个 UTXO 只在原始主链上有效。如果这笔手续费足够高,那很多矿工都会被诱惑转而在原始主链上挖矿。
这里需要指出在原始主链上还有一个特殊的用户——就是发起攻击的黑客。他可能也会发起类似的交易 (涉及被盗交易的 UTXO 就可以),以此在原始的主链上通过更高的手续费来补偿矿工。
另一方面是币安。币安必须与所有这些交易所、商家以及用户进行斗争,更不用说还要与发起攻击的黑客进行斗争了。
黑客已经从币安盗取了 7,000 BTC,因此黑客可以将这个金额全部用于激励矿工继续在原始主链上挖矿,组织区块重组。
相比之下,币安必须花费 1,300 BTC + 黑客为了阻止重组而愿意花费的金额+其他交易所/商家/用户用于阻止重组而愿意花费的金额。这显然是一场失败的斗争。除非币安认为值得花费 1,300 BTC 来惩罚这个黑客 (或者 13 BTC * 被盗交易的确认次数),否则重组并不对币安有利。
总结
还存在更复杂的情况,尤其是还有很多离线采矿设备,但所有这些都很容易分析。黑客可以激励矿工,因此所以对币安来说,这是一场失败的战斗,币安必须承担重组每一个区块以及在此次盗窃中损失的资金。
就像一场旷日持久的诉讼实际上只对律师有利一样,在区块重组方案中唯一受益的人就是矿工。这些钱通过有争议的交易 (来自币安或者黑客) 流向矿工。从深层次上讲,这就是比特币协议的设计初衷,改变它的成本非常高昂。
人们不去尝试重组是有原因的,即使是在大规模盗窃之后也是如此。重组不仅伤害了盗币者,也伤害了其他人。存在一个巨大的集体动机不去改变比特币的交易历史。
所以矿工是最大的受益者,而目前PLST在招节点和超级节点,每日挖矿,你害怕风险可以不参与二级市场炒币,每日挖矿即可,因为到最后,无论是涨跌,矿工才是最大的受益者。涨,你比别人赚的更多,跌,你比别人亏得更少,因为你没有在二级市场去折腾,PLST爆发了,你也就跟着实现财务自由了。