5 月 8 日幣安被盜走 7000BTC 之後,很快有比特幣核心開發者向趙長鵬建議採用區塊重組的方式追回被盜的損失。在本文中,Jimmy Song 將詳細介紹可能的鏈重組背後的激勵因素。

原文標題:《Reorg Scenarios: Binance Hack Edition》
原文作者:Jimmy Song
編譯:Jhonny

2019 年 5 月 7 日,幣安 (Binance) 遭遇黑客攻擊並損失了 7,000 枚 BTC。之後我們很快看到了 Jeremy Rubin (比特幣核心開發者)發佈推文建議幣安 CEO 趙長鵬採用區塊重組的方式來「撤銷此次盜竊」:

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

推文譯文:Jeremy Rubin:@cz_binance (趙長鵬)如果你公開那些被攻擊的幣的私鑰 (或者這些密鑰的一部分),你就可零成本去中心化地協調一次區塊重組(reorg)來撤銷盜竊行爲。

這顯然使幣安考慮進行區塊重組,據幣安 CEO 趙長鵬所說,在與一些人進行了協商之後,重組計劃流產了:

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

推文譯文:cz_binance (趙長鵬):在與多方對話之後,包括 @JeremyRubin (比特幣核心開發者),@_prestwich (跨鏈服務提供商 Summa 創始人),@bcmakes (去中心化交易所 RadarRelay 產品負責人),@hasufl (獨立加密貨幣分析師),@JihanWu (比特大陸聯合創始人)等,我們決定不通過區塊重組的方式追回被盜的資金。

在本文中,本文作者 (Jimmy Song) 將詳細介紹可能的鏈重組背後的激勵因素。在某種意義上,Jimmy Song 已經通過之前的推文計算過幣安如果進行區塊重組將需要花費多少成本:

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

1、通過數學計算對 58 個區塊進行重組的成本 (根據目前已經得到的有關幣安被盜交易的確認哈希值):

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

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

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

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

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

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

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

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

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

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

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

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

7、幣安受到時間和風險的雙重擠壓。每一個新的區塊都是另一個需要被趕超的區塊,最低成本爲 12.5 BTC。要與現有的挖礦池迅速協調起來(進行重組)可能並不容易。單是達成協議可能就需要超過一天(144 個區塊)。(備註:當前比特幣區塊鏈平均每 10 分鐘產生 1 個區塊,24 小時則是 144 個區塊)。

下文中,作者將繼續對重組後果進行更全面的討論。

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

分歧

在下方的推文中,可以看到 Ari Paul (區塊鏈投資公司 BlockTower Capital 的投資總監)和 Adam Back (密碼朋克,區塊鏈初創公司 Blockstream 聯合創始人)就是否進行重組存在分歧:

區塊重組的經濟學分析:選擇重組,幣安的花費可能不止 7000BTC

Adam Black(下) 推文譯文 : 比特幣重組是不會發生的。我對任何比特幣領域、礦工或者是開發者會考慮重組表示懷疑。想想 2014 年(Mt. Gox)遭遇的 4.73 億美元損失,2016 年 Bitfinex 被攻擊導致 7,200 萬美元損失,還有 2019 年幣安的 4,000 萬美元損失等等,(重組)都沒有發生

Ari Paul(上) 推文譯文:最後一個想法的靈感來自於 Adam Back (但我不同意他的觀點)。過去的數據在這裏是沒有用的。激勵重組是一個很難協調的問題,而相當簡單的新技術也許就能解決這個問題。

本質上,Adam 認爲這樣的重組不會發生,Ari 則認爲激勵措施可以使重組成爲可能。那誰是對的呢?這就是我們需要進行一些博弈論分析。讓我們從最基本的場景開始 :

一個簡單的模型

讓我們假設一個非常簡單的模型,其中 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 * 被盜交易的確認次數),否則重組並不對幣安有利。

總結

還存在更復雜的情況,尤其是還有很多離線採礦設備,但所有這些都很容易分析。黑客可以激勵礦工,因此所以對幣安來說,這是一場失敗的戰鬥,幣安必須承擔重組每一個區塊以及在此次盜竊中損失的資金。

就像一場曠日持久的訴訟實際上只對律師有利一樣,在區塊重組方案中唯一受益的人就是礦工。這些錢通過有爭議的交易(來自幣安或者黑客)流向礦工。從深層次上講,這就是比特幣協議的設計初衷,改變它的成本非常高昂。

人們不去嘗試重組是有原因的,即使是在大規模盜竊之後也是如此。重組不僅傷害了盜幣者,也傷害了其他人。存在一個巨大的集體動機不去改變比特幣的交易歷史。

來源鏈接:medium.com