区块重组,唯一受益人只有矿工!| 币安被盗事件分析

[复制链接]
11541 |0
发表于 2019-5-14 12:00:28 | 显示全部楼层 |阅读模式
点击上方“Unitimes”可以订阅哦!
unitimes.io

全球视角,独到见解


作者|JimmySong
编译|Jhonny

2019年5月7日,币安(Binance)遭遇黑客攻击并损失了7,000枚比特币。之后我们很快看到了JeremyRubin(BTC核心开发者)发布推文建议币安CEO赵长鹏采用区块重组的方式来“撤销此次盗窃”:


推文译文:@cz_binance(赵长鹏):如果你公开那些被攻击的币的私钥(或者这些密钥的一部分),你就可零成本去中心化地协调一次区块重组(reorg)来撤销盗窃行为。

这显然使币安考虑进行区块重组,据币安CEO赵长鹏所说,在与一些人进行了协商之后,重组计划流产了:


推文译文:@cz_binance(赵长鹏):如果你公开那些被攻击的币的私钥(或者这些密钥的一部分),你就可零成本去中心化地协调一次区块重组(reorg)来撤销盗窃行为。

在本文中,本文作者(JimmySong)将详细介绍可能的链重组背后的激励因素。在某种意义上,JimmySong已经通过之前的推文计算过币安如果进行区块重组将需要花费多少成本:


1/通过数学计算对58个区块进行重组的成本(根据目前已经得到的有关币安被盗交易的确认哈希值):
最低成本:58*12.5比特币=725比特币(假设每名矿工在重组的新链上获得大致相同的交易费用,并且100%的矿工都同意重组,备注:当前BTC区块挖矿奖励是12.5比特币)


2/但是如果只有75%的矿工同意重组,这将平均需要116个区块(相当于币安需要补偿给这些75%的矿工的挖矿奖励大约是1,450比特币,即116*12.5=1,450)以此来赶超当前的主链。同理,如果60%的矿工同意重组,则平均需要290个区块(需要补偿给这些矿工的挖矿奖励为3,625比特币)来赶超当前的主链;如果55%矿工同意,则需要580个区块(需要补偿给这些矿工的挖矿奖励为7,250比特币)。


3/由于7,250比特币>7,000比特币,因此至少需要55%的算力(矿工)同意链重组。如果重组的区块数超过58个,则需要的算力至少为60%;如果重组的区块数为116个,则需要至少65%的算力;相应地,174个区块需要至少70%的算力,232个区块需要至少75%的算力。假设所有矿工都同意重组,那这个成本就会迅速增加。


4/但对于任何选择重组而放弃原始主链的矿工来说,也存在很大的风险,因为这大大增加浪费算力的风险,而这些算力本可以有效地用于开采原先那条更长的主链。


5/而跟据矿工对这一风险收取的额外费用,意味着作出重组的决定的时间要比232个区块产生时间短的多。如果重组,将最终从黑客手里拿钱付费给矿工。币安并未从中受益太多。


6/损失最小仍为725比特币,这仍是一个不小的变化。


7/币安受到时间和风险的双重挤压。每一个新的区块都是另一个需要被赶超的区块,最低成本为12.5比特币。要与现有的挖矿池迅速协调起来(进行重组)可能并不容易。单是达成协议可能就需要超过一天(144个区块)。(备注:当前BTC区块链平均每10分钟产生1个区块,24小时则是144个区块)。

下文中,作者将继续对重组后果进行更全面的讨论。


分歧

在下方的推文中,可以看到AriPaul(区块链投资公司BlockTowerCapital的投资总监)和AdamBack(密码朋克,区块链初创公司Blockstream联合创始人)就是否进行重组存在分歧:


AdamBlack(下)推文译文:BTC重组是不会发生的。我对任何BTC领域、矿工或者是开发者会考虑重组表示怀疑。想想2014年(Mt.Gox)遭遇的4.73亿美元损失,2016年Bitfinex被攻击导致7,200万美元损失,还有2019年币安的4,000万美元损失等等,(重组)#都没有发生

AriPaul(上)推文译文:最后一个想法的灵感来自于AdamBack(但我不同意他的观点)。过去的数据在这里是没有用的。激励重组是一个很难协调的问题,而相当简单的新技术也许就能解决这个问题。

本质上,Adam认为这样的重组不会发生,Ari则认为激励措施可以使重组成为可能。那谁是对的呢?这就是我们需要进行一些博弈论分析。让我们从最基本的场景开始:

一个简单的模型

让我们假设一个非常简单的模型,其中100%的算力(矿工)都愿意帮助币安进行区块重组。

这是最容易分析的场景。我们假设币安与每一个矿池取得了联系(虽然这不太可能),并就每一个矿工的赔偿金额达成协议(虽然一些矿工可能同意,但另一些矿工不太可能同意),并达成共识。我们假设目前没有人不同意(虽然这极不可能),也没有人会建立一个备用矿池来继续开采当前这条更长的主链。

首先,让我们看看补偿矿工的合理金额是多少。假设一个矿工拥有10%的网络算力,并且此次攻击之后要对100个区块进行重组,这就意味着该矿工将要放弃自己已经在原始链上挖出的那10个区块的奖励(即100*10%=10)和相应的交易费用,也即放弃125枚比特币(即10*12.5=125)以及相应的区块交易费用。

(备注:区块重组(reorg)也即交易回滚,只要有超过51%算力,在盗币交易区块前,重新开始挖一个分叉,并且只剔除掉那笔被盗交易(和后续的交易),正常打包原链上的其它交易,那在新分叉长度超过原来被盗链后,就会发生区块重组。重组可以简单理解为:新分叉覆盖了原被盗链,效果是:在不影响其它交易的情况下,单独回滚那一笔盗币交易。)

你也许会认为,该矿工将能够在那条重组的链上挖矿并获得大约10%的区块奖励,这样就可以抵消了,但事实并非如此。因为该矿工如果在区块重组的这段时间内,他本来就可以通过自己的算力在原始的那条主链上继续挖矿并获得10%的区块奖励(以及交易费用),同时不用放弃之前在原始链上已经挖出的那10个区块的奖励(以及交易费用),这就意味着该矿工会因为帮助币安进行区块重组而损失至少125枚比特币。

因此,帮助币安重组的矿工会要求币安将这些矿工在原始链上已经挖出的区块的奖励 (以及交易费用)补偿给他们。在这个场景中,假设每个区块有0.5个比特币费用,也即总共需要补偿给这位拥有10%算力的矿工130枚比特币(即125+0.5*10=130)。

这还不是全部!此外还存在风险溢价(riskpremium),以防出现问题。如果除了这个拥有10%算力的矿工之外,没有其他人愿意使用币安的那条新的重组链,那就浪费了这名矿工本来可以用于对原始链进行挖矿的算力。

如果重组的努力没有成功,币安将不得不同意要么补偿这种溢价风险,要么承担被浪费的算力带来的损失。这将是补偿的一个重要部分,但是为了让本文简短易懂,我们暂时忽略这方面的因素。

因此,如果币安在盗窃后开始试图重组100个区块,他们将不得不支付1,300比特币的成本(即100*12.5+100*0.5=1,300,其中12.5是BTC链的区块奖励,0.5是矿工每挖出1个区块之后能获得的交易费用),以此来回收被盗的7,000比特币,也即币安能挽回5700比特币。从币安的角度来看,你可以认为这是一个理想的场景,因为他们可以挽回一大笔钱。

这种情况的后果是什么?最明显的是,这样的事情将证明BTC是中心化的,因为如果币安可以强制对这100个区块进行重组,任何其他足够强大的实体也都可以做同样的事情。

这将会导致许多双花(doublespending)的尝试,而且任何在这100个区块中进行了交易的人,都将不得不为了弄清楚到底发生了什么事情而劳心费神。事实上,通过重组有可能会导致出现比当前损失的7,000比特币更大规模的双花问题!对于在BTC网络上进行交易的所有人来说,这都将造成重大的干扰,因为考虑到币安本来能够做到的事情,没有人会接受3-6次的交易确认次数。

换句话说,交易所、商家、用户都至少要承受很大的头疼,更糟的是,要处理更多的痛苦来应对可能的双花问题。

等等,我们还没讲到小偷(黑客)会做什么呢!

因此,重组的情况是非常不可能的,因为所有在这种情况下会经历痛苦的人都会加以抵抗。

一个更有争议的选择

重组将会带来一次受争议的分叉和一场争夺成为更长链的竞争。拥有55%的算力对这100个区块进行重组,并赶超当前的主链,这意味着需要大约在新链上挖出1,000个区块(这种情况下需要2周时间)。这个数字的变化幅度也相当大,在这个场景中,不管是需要挖出500个区块还是1,500个区块都不足为奇。

即便是拥有99%的算力,也需要在新链上挖出101个区块(约需要20个小时)。(备注:当前BTC链平均约每10分钟挖出一个区块,因此101个区块所需时间约为20小时)

在这种情况下,原始主链和重组的新链都希望吸引对方的矿工。原始的那条主链更具优势,因为这条链在开始竞争的时候就领先了100个区块。

支持原始的那条主链的是诸多不想要对这100个区块进行重组的交易所、商家、用户。他们都有可能会补偿原始主链上的矿工。他们可以轻易地补偿矿工:在原始主链上以一笔高手续费花费一个UTPundiO(未使用交易输出),而这个UTPundiO只在原始主链上有效。如果这笔手续费足够高,那很多矿工都会被诱惑转而在原始主链上挖矿。

这里需要指出在原始主链上还有一个特殊的用户——就是发起攻击的黑客。他可能也会发起类似的交易(涉及被盗交易的UTPundiO就可以),以此在原始的主链上通过更高的手续费来补偿矿工。

另一方面是币安。币安必须与所有这些交易所、商家以及用户进行斗争,更不用说还要与发起攻击的黑客进行斗争了。

黑客已经从币安盗取了7,000比特币,因此黑客可以将这个金额全部用于激励矿工继续在原始主链上挖矿,组织区块重组。

相比之下,币安必须花费1,300比特币+黑客为了阻止重组而愿意花费的金额+其他交易所/商家/用户用于阻止重组而愿意花费的金额。这显然是一场失败的斗争。除非币安认为值得花费1,300比特币来惩罚这个黑客(或者13比特币*被盗交易的确认次数),否则重组并不对币安有利。

总结

还存在更复杂的情况,尤其是还有很多离线采矿设备,但所有这些都很容易分析。黑客可以激励矿工,因此所以对币安来说,这是一场失败的战斗,币安必须承担重组每一个区块以及在此次盗窃中损失的资金。

就像一场旷日持久的诉讼实际上只对律师有利一样,在区块重组方案中唯一受益的人就是矿工。这些钱通过有争议的交易(来自币安或者黑客)流向矿工。从深层次上讲,这就是BTC协议的设计初衷,改变它的成本非常高昂。

人们不去尝试重组是有原因的,即使是在大规模盗窃之后也是如此。重组不仅伤害了盗币者,也伤害了其他人。存在一个巨大的集体动机不去改变BTC的交易历史。

参考链接:
https://medium.com/@jimmysong/reorg-scenarios-binance-hack-edition-849fc7e7df07

【文章版权归原作者所有,其内容与观点不代表Unitimes立场。转载文章仅为传播更有价值的信息,合作或授权联系请发邮件至[email protected]或添加微信unitimes2017】

区块重组,唯一受益人只有矿工! 币安被盗事件分析.jpg

区块重组,唯一受益人只有矿工! 币安被盗事件分析.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表