前言:這兩天關(guān)于黑客盜幣后,是否應該通過重組區(qū)塊來取回資金的討論非常熱烈。一方認為技術(shù)上可以通過區(qū)塊重組取回資金,而另外一方則認為這會導致社區(qū)分裂和并損害人們對比特幣不可逆轉(zhuǎn)交易的信心。而這里最關(guān)鍵的問題不是要不要重組,而是能不能重組,或者重組在實踐上是否可行,這也是大家需要關(guān)心的地方,因為它事關(guān)比特幣和PoW鏈的未來。從實踐上,除非行動非常迅速,在事件發(fā)生后的少數(shù)幾個區(qū)塊時采取行動,否則從博弈論角度,重組不是一個理性行為選擇。
通過給礦工激勵重組區(qū)塊
鑒于幣安黑客盜幣事件,關(guān)于重組區(qū)塊來恢復比特幣交易被提起。從技術(shù)和PoW經(jīng)濟學角度,他們可以做到。以下是關(guān)于通過給予礦工好處,然后他們可以聯(lián)合起來重組。
比特幣交易只有記錄在最多工作量的鏈上才有經(jīng)濟上的意義。截止到撰寫本文時,包含幣安黑客盜幣交易的區(qū)塊上已經(jīng)新構(gòu)建了111個區(qū)塊,基本上,這7000btc交易很難追回了。
區(qū)塊575011包含了黑客的交易,隨后的區(qū)塊照常在它上面增加。如果礦工在包含黑客交易的區(qū)塊之前構(gòu)建另一條替代的鏈,則有機會重新取回被黑客盜走的比特幣。這條替代延續(xù)鏈不會包含黑客的交易,并且必須比當前鏈增長更快,并在某個時間點它展示出更多的工作量,并且所有的比特幣客戶端都重組它。在重組后,該黑客交易將不會存在于網(wǎng)絡中。也就是說,區(qū)塊575012和其之后的區(qū)塊將不會在網(wǎng)絡中存在。
對于網(wǎng)絡來說,用更多工作量(算力)重組到替代鏈本身并不特別,它是解決獨立礦工之間競爭的常規(guī)方法。替換最新區(qū)塊的重組非常頻繁。
對于不在最長鏈上挖礦的礦工來說,重組成本很高,因為這些礦工要失去這些區(qū)塊中開采的比特幣。這就是為什么礦工熱衷于在最長鏈上挖礦而避免在替代鏈上挖礦的主要原因。
也就是說,有一種可能是可以在替代鏈上把資金給礦工,如果在有準備且快速的情況下,可以實現(xiàn)把被盜取的資金取回。
如何激勵礦工?
如果一旦發(fā)現(xiàn)被黑客攻擊,可以快速:
1.在網(wǎng)站上公布從他們最后控制地址到被盜地址的交易
2.在網(wǎng)站上發(fā)布被盜地址的私鑰
由于資金在黑客的地址中,所以交易在當前的現(xiàn)實中毫無價值。但在可替代的鏈中,則非常有價值,如果該替代鏈從替代區(qū)塊575012開始。
為什么有價值,因為礦工構(gòu)建了另外一條替代575012區(qū)塊的鏈,同時因為有了被盜幣地址的私鑰,那么它可以把該地址上的比特幣轉(zhuǎn)入自己的地址。這樣,公開了私鑰,相當于給到了礦工好處。
對于礦工來說,如果被盜幣地址的比特幣總量高于其從區(qū)塊575011開始挖礦所得的比特幣總量,那么,礦工構(gòu)建一個可替代的區(qū)塊鏈是理性的行為。也就是說,這條可替代的區(qū)塊鏈會比當前的鏈吸引更多的工作量。
請注意,礦工可以通過不拿走所有好處而是給其他礦工留出足夠資金的方式來顯著提高可替代的區(qū)塊鏈取代現(xiàn)有鏈的概率。
好處足夠高,且不是太貪婪的瓜分,可以快速建立一個構(gòu)建可替代鏈的聯(lián)盟,因為任何礦工都可以被邀請并有動力加入。
最終參與構(gòu)建可替代鏈的礦工們超越了當前鏈,構(gòu)建出最長鏈。在重組之后,新的最長鏈現(xiàn)實中,被盜的資金可以獎勵給礦工,同時,自己還保有一部分資金,而礦工則比正常挖礦的所獲的比特幣更多。
這種救援行動在技術(shù)層面是可行的。如果失去資金的人準備提供好處,并且同時礦工準備采取行動做出理性選擇的話,這種行動是奏效的。當然,隨著時間的推移,成功的概率呈指數(shù)級的減少。(藍狐筆記注:就是說,時間越長,隨著區(qū)塊高度增加,后續(xù)重組的費用越高,重組可能性越小。)如果能事先承諾使用這一個程序,就能讓礦工可以迅速采取行動。
結(jié)果是什么?
如果礦工進行重組,后果可能會非常嚴重,因為重組可能會擾亂正常的交易處理,并削弱人們對區(qū)塊鏈不變性的信任。
這種損害是跟重組的長度成正比的。如果救援行動在幾個小時候內(nèi)實施,那么損失是微不足道的,因為幾個區(qū)塊的重組在技術(shù)意義上不算一個事件,且不會明顯延遲正常的交易處理。
附錄:從博弈論角度,重組區(qū)塊不是理性的選擇。
關(guān)于盜幣事件,首先有社區(qū)成員提議可以通過公開私鑰的方式來激勵礦工重組區(qū)塊鏈實現(xiàn)取回資金。有人認為通過激勵礦工重組是很難協(xié)調(diào)的事情,但并非不可能。也有人認為重組不太現(xiàn)實,不僅對于社區(qū)對比特幣的信心有很大的傷害,且在現(xiàn)實上的操作也不是理性的選擇。
Jimmy Song認為重組區(qū)塊損害的是整個網(wǎng)絡,因而大家有很大的動力不去改變交易歷史。
他提到用最簡單場景來分析,假如丟幣者愿意用丟失的BTC激勵礦工重組區(qū)塊鏈,如果有10%的算力用于重組,要重組攻擊開始后的100個區(qū)塊,那么,這意味著礦工需要放棄大約10個區(qū)塊的獎勵,也就是125BTC的區(qū)塊獎勵。也就是說,一旦礦工要重組,本身首先要放棄之前獲得的獎勵和交易費用,假如每個區(qū)塊0.5BTC的交易費用,那么,也就是說,至少要放棄130個BTC。
此外,如果事情出現(xiàn)了偏差,還會有風險溢價。如果其他人不支持新的替代鏈,那么可能是在浪費本來可以在原鏈上挖礦的算力。也就是說,對于礦工來說,如果沒有成功重組,丟幣者要給予獎勵的不僅是130BTC,還有潛在的挖礦所得激勵。
如果要動用礦工來成功重組,丟幣者需要支付1300BTC來恢復,丟幣總額為7000BTC,那么還有5700BTC的純利。表面上看,似乎是合理的選擇。
但這個場景的最大問題是,如果一個主體可以這么做,那么其他有資金的主體也可以這么做,這包括盜幣者。這會導致有很多雙重支付的嘗試,在盜幣后的100個區(qū)塊內(nèi)進行過交易的人都很頭痛到底發(fā)生什么事情。這對于比特幣網(wǎng)絡上進行交易的每個人來說,都是嚴重的干擾。因此,這種場景讓所有人都感動痛苦,其操作會存在阻力。
更有爭議的選擇是,這涉及到有爭議的分叉和競爭最長鏈。對100個區(qū)塊重組而言,超過55%的哈希算力意味需要花費平均1000個區(qū)塊(2周時間)。偏差也很高,500和1500個區(qū)塊也有可能。就是99%的算力優(yōu)勢,也需要花費101個區(qū)塊(20小時)來超越原來的鏈。
如果雙方競爭,雙方都試圖吸引更多礦工。這個時候,原鏈有先發(fā)優(yōu)勢,因為已經(jīng)有了100個區(qū)塊的領先。在原鏈上的交易所、商家或用戶如果不希望進行100個區(qū)塊的重組,他們可以采用補償原鏈礦工的方式進行爭奪。方法很簡單:就是提高在原鏈上發(fā)送交易的費用。如果交易費用足夠高,很多礦工可能就會轉(zhuǎn)移到原鏈上挖礦。尤其是盜幣者可以通過在原鏈上發(fā)起高額費用的交易吸引礦工繼續(xù)在原鏈上挖礦。
如果一旦出現(xiàn)這種情況,會導致盜幣者和被盜幣方之間的礦工補貼大戰(zhàn),雙方必須花費資金爭奪最長鏈。這時候盜幣者有天然優(yōu)勢,因為擁有之前盜取的資金,他們有動力動用這筆資金進行補貼大戰(zhàn)。這意味著,最終的結(jié)果是,被盜資金拿不回來,同時還至少需要消耗同等資金加上補貼礦工的區(qū)塊獎勵資金以及交易費用。按照簡單的公式來說,如果發(fā)生大規(guī)模盜幣事件后,考慮到博弈論,要重組區(qū)塊的成本很高:假設說被盜走了X個BTC,需要重組Y個區(qū)塊才能拿回資金,那么這意味著重組區(qū)塊鏈的成本至少不低于X個BTC+Y個區(qū)塊的挖礦獎勵。
從這個角度,通過激勵礦工重組區(qū)塊鏈追回被盜代幣的方式從經(jīng)濟上來說,也不是最理性的選擇。最終受益者只有礦工。這也是比特幣設計的初衷,要改變它交易的成本非常高的。
評論
查看更多