幣安被盜事件深度分析:區塊重組,唯一受益人只有礦工!
2019 年 5月7日,幣安 (Binance) 遭遇黑客攻擊並損失了 7,000 枚 BTC。之後我們很快看到了 Jeremy Rubin (比特幣核心開發者) 釋出推文建議幣安 CEO 趙長鵬採用區塊重組的方式來“撤銷此次盜竊”:
推文譯文:@cz_binance (趙長鵬) :如果你公開那些被攻擊的幣的私鑰 (或者這些金鑰的一部分),你就可零成本去中心化地協調一次區塊重組 (reorg) 來撤銷盜竊行為。
這顯然使幣安考慮進行區塊重組,據幣安 CEO 趙長鵬所說,在與一些人進行了協商之後,重組計劃流產了:

推文譯文:@cz_binance (趙長鵬) :如果你公開那些被攻擊的幣的私鑰 (或者這些金鑰的一部分),你就可零成本去中心化地協調一次區塊重組 (reorg) 來撤銷盜竊行為。
在本文中,本文作者 (Jimmy Song) 將詳細介紹可能的鏈重組背後的激勵因素。在某種意義上,Jimmy Song 已經通過之前的推文計算過幣安如果進行區塊重組將需要花費多少成本:

最低成本:58*12.5 BTC = 725 BTC (假設每名礦工在重組的新鏈上獲得大致相同的交易費用,並且100%的礦工都同意重組,備註:當前比特幣區塊挖礦獎勵是12.5 BTC)

2/ 但是如果只有 75% 的礦工同意重組,這將平均需要 116個 區塊 (相當於幣安需要補償給這些75%的礦工的挖礦獎勵大約是 1,450 BTC,即116*12.5=1,450) 以此來趕超當前的主鏈。同理,如果 60% 的礦工同意重組,則平均需要 290 個區塊 (需要補償給這些礦工的挖礦獎勵為 3,625 BTC) 來趕超當前的主鏈;如果 55% 礦工同意,則需要 580個區塊 (需要補償給這些礦工的挖礦獎勵為 7,250 BTC)。

3/由於 7,250 BTC >7,000 BTC,因此至少需要 55% 的算力 (礦工) 同意鏈重組。如果重組的區塊數超過58個,則需要的算力至少為 60%;如果重組的區塊數為116個,則需要至少 65% 的算力;相應地,174個區塊需要至少 70% 的算力,232個區塊需要至少 75% 的算力。假設所有礦工都同意重組,那這個成本就會迅速增加。

4/但對於任何選擇重組而放棄原始主鏈的礦工來說,也存在很大的風險,因為這大大增加浪費算力的風險,而這些算力本可以有效地用於開採原先那條更長的主鏈。

5/而跟據礦工對這一風險收取的額外費用,意味著作出重組的決定的時間要比 232 個區塊產生時間短的多。如果重組,將最終從黑客手裡拿錢付費給礦工。幣安並未從中受益太多。

6/損失最小仍為725 BTC,這仍是一個不小的變化。

7/幣安受到時間和風險的雙重擠壓。每一個新的區塊都是另一個需要被趕超的區塊,最低成本為12.5 BTC。要與現有的挖礦池迅速協調起來 (進行重組) 可能並不容易。單是達成協議可能就需要超過一天(144個區塊)。(備註:當前比特幣區塊鏈平均每10分鐘產生1個區塊,24小時則是144個區塊)。
下文中,作者將繼續對重組後果進行更全面的討論。
分歧
在下方的推文中,可以看到 Ari Paul (區塊鏈投資公司 BlockTower Capital 的投資總監) 和 Adam Back (密碼朋克,區塊鏈初創公司 Blockstream 聯合創始人) 就是否進行重組存在分歧:

Ari Paul(上) 推文譯文:最後一個想法的靈感來自於 Adam Back (但我不同意他的觀點)。過去的資料在這裡是沒有用的。激勵重組是一個很難協調的問題,而相當簡單的新技術也許就能解決這個問題。
本質上,Adam 認為這樣的重組不會發生,Ari 則認為激勵措施可以使重組成為可能。那誰是對的呢?這就是我們需要進行一些博弈論分析。讓我們從最基本的場景開始:
一個簡單的模型
這是最容易分析的場景。我們假設幣安與每一個礦池取得了聯絡 (雖然這不太可能),並就每一個礦工的賠償金額達成協議 (雖然一些礦工可能同意,但另一些礦工不太可能同意),並達成共識。我們假設目前沒有人不同意 (雖然這極不可能),也沒有人會建立一個備用礦池來繼續開採當前這條更長的主鏈。
首先,讓我們看看補償礦工的合理金額是多少。假設一個礦工擁有 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次的交易確認次數。
換句話說,交易所、商家、使用者都至少要承受很大的頭疼,更糟的是,要處理更多的痛苦來應對可能的雙花問題。
等等,我們還沒講到小偷(黑客)會做什麼呢!
因此,重組的情況是非常不可能的,因為所有在這種情況下會經歷痛苦的人都會加以抵抗。
一個更有爭議的選擇
即便是擁有 99% 的算力,也需要在新鏈上挖出 101 個區塊 (約需要 20 個小時)。(備註:當前比特幣鏈平均約每10分鐘挖出一個區塊,因此101個區塊所需時間約為20小時)
在這種情況下,原始主鏈和重組的新鏈都希望吸引對方的礦工。原始的那條主鏈更具優勢,因為這條鏈在開始競爭的時候就領先了100個區塊。
支援原始的那條主鏈的是諸多不想要對這100個區塊進行重組的交易所、商家、使用者。他們都有可能會補償原始主鏈上的礦工。他們可以輕易地補償礦工:在原始主鏈上以一筆高手續費花費一個 UTXO (未使用交易輸出),而這個 UTXO 只在原始主鏈上有效。如果這筆手續費足夠高,那很多礦工都會被誘惑轉而在原始主鏈上挖礦。
這裡需要指出在原始主鏈上還有一個特殊的使用者——就是發起攻擊的黑客。他可能也會發起類似的交易 (涉及被盜交易的 UTXO 就可以),以此在原始的主鏈上通過更高的手續費來補償礦工。
另一方面是幣安。幣安必須與所有這些交易所、商家以及使用者進行鬥爭,更不用說還要與發起攻擊的黑客進行鬥爭了。
黑客已經從幣安盜取了 7,000 BTC,因此黑客可以將這個金額全部用於激勵礦工繼續在原始主鏈上挖礦,組織區塊重組。
相比之下,幣安必須花費 1,300 BTC + 黑客為了阻止重組而願意花費的金額+其他交易所/商家/使用者用於阻止重組而願意花費的金額。這顯然是一場失敗的鬥爭。除非幣安認為值得花費 1,300 BTC 來懲罰這個黑客 (或者 13 BTC * 被盜交易的確認次數),否則重組並不對幣安有利。
總結
就像一場曠日持久的訴訟實際上只對律師有利一樣,在區塊重組方案中唯一受益的人就是礦工。這些錢通過有爭議的交易 (來自幣安或者黑客) 流向礦工。從深層次上講,這就是比特幣協議的設計初衷,改變它的成本非常高昂。
人們不去嘗試重組是有原因的,即使是在大規模盜竊之後也是如此。重組不僅傷害了盜幣者,也傷害了其他人。存在一個巨大的集體動機不去改變比特幣的交易歷史。
https://medium.com/@jimmysong/reorg-scenarios-binance-hack-edition-849fc7e7df07
作者 | Jimmy Song
編譯 | Jhonny
發文時比特幣價格: ¥41044.1 版權資訊
海盜號宣告:本文由海盜號“Unitimes”上傳發布,內容為海盜號作者獨立觀點,不代表巴位元立場,點選檢視《海盜號使用者協議》