在沒有交易費用、難度變化和經濟影響的情況下,自私挖礦真的有優勢嗎?
我正在閱讀康奈爾自私的採礦論文。在其中,他們的主要論點是自私的礦工可以增加他開采的區塊相對於誠實礦工的比例。我對此沒有異議。但是,據我了解,僅僅否認他人的障礙對您沒有幫助。僅僅因為其他人獲得的塊數減少並不意味著您獲得的塊數更多。(也就是說,正常情況下,每個挖礦的人都應該得到一定的比率,但是如果你壓制其中一些區塊,那麼總比率就會下降。因此,拒絕其他人的區塊不是零和;只是因為其他人的比率下降並不意味著您的利率會上漲。)
這是對我的困惑的更簡單解釋。考慮一下這個思想實驗。假設有 2/3 的礦工突然退出挖礦,將一切留給擁有 1/3 算力的礦工。我們都可以同意,這個礦工至少和進行自私礦工攻擊的礦工一樣好。(原因很簡單:他可以複製自私礦工使用的完全相同的策略,只是誠實的礦工現在沒有機會在這個思想實驗中找到區塊。)儘管如此,他們只能在每 30 分鐘 1 個區塊的速率,至少在下一次難度調整之前。
因此,除非你是一個只想讓其他人變得更糟的虐待狂,否則自私挖礦似乎沒有任何優勢,除非我們至少考慮以下三個因素之一:
- 交易費用。如果您以相同的速度挖礦並導致其他人以較低的速度挖礦(因為他們的很多塊被拒絕),您仍然平均以相同的時間間隔找到塊,但由於每個塊通常需要更長的時間才能發現,它將包括更多的交易,因此更多的交易費用。
- 難度變化。如果在您進行自私挖礦時發生難度調整,那麼減少其他所有人的份額當然會增加您的份額。
- 經濟影響。隨著開采的比特幣數量減少,在其他條件相同的情況下,供應減少會導致價格上漲。所以你開采的比特幣更有價值。
我得出的結論是否正確,沒有這三個影響,就沒有自私的挖礦攻擊?如果是這樣,那麼自私挖礦在實踐中就不是問題,至少目前是這樣。與區塊獎勵相比,交易費用微不足道,難度重新定位很少,每天開采的數量與流通中的硬幣總數相比並不是那麼重要。
你漏掉了要點:當一個自私的礦工發現一個新區塊時,他會保密,不會將其廣播到網路上,而是開始私下挖礦。
網路的其餘部分仍在探勘實際上已經找到但未廣播的塊。
當網路的其餘部分最終找到這個塊時,自私的礦工廣播他的版本,試圖替換它。
通過以這種方式使區塊無效,自私的礦工實際上是在浪費其他人的周期,並為贏得下一個區塊搶占先機,因為他在其他人之前開始探勘它。
編輯
請記住,這種做法只有在您是一個擁有大約 25% 散列能力的大型礦池時才會成功。這種規模的主要礦池受到整個社區的密切關注和審查。連續多次找到連續的區塊,是礦池在進行自私挖礦的有力指標。因此,社區可以決定是否離開正在實施這種行為的礦池。
自私挖礦與你提到的三個因素無關。
基本思想是礦工可以做以下兩件事之一:
- 將她的探勘工作轉移到她聽到的任何新的合法區塊之上,並在她找到任何區塊後立即將其廣播到網路
- 當她發現一個區塊時,不是立即廣播它,而是把它留給自己,並嘗試在它之上探勘並延長區塊鏈的一個私有分支,她以後可以選擇有機會廣播並收集與該區塊相關的獎勵(或更多)塊在她的秘密分支。
第一個策略是Satoshi 論文中提出的策略。我將其稱為建議,因為軟體中沒有任何強制要求。
在某些情況下,令人驚訝的是(也許)第二種策略可以增加贏得下一個區塊的機會。
某些類型的雙花攻擊以及自私礦工的策略利用了這一點。如需更全面的分析,您可以查看這篇論文On the Phase Space of Block-Hiding Strategies in Bitcoin-like networks。
只有當礦工擁有相當大的散列能力(大約 1/3)或足夠中心以讓許多礦工在其區塊上工作以防與網路的其餘部分聯繫時,第二種策略才會變得有益。
TLDR 是:集中化不好。原則上,一旦礦工變得太大,他就可以濫用權力來獲得超過其相對份額的收益。