比特幣的底層激勵機制

本譯文首次以“s先生”的筆名發表于公眾號:補天遺石(ID:butianys)。譯無達詁,歡迎交流指正(微信:data-lake)。

原文鏈接:https://queue.acm.org/detail.cfm?id=3168362

文章目錄:

1 比特幣協議快速入門(A Quick Primer on the Bitcoin Protocol)

2 比特幣經濟學方法論:難度調整與挖礦經濟均衡(Bitcoin Economics 101: Difficulty Adjustment and the Economic Equilibrium of Mining)

3 挖礦的去中心化(Mining Decentralization)

? ? ? ? 3.1 ASIC挖礦(ASIC mining)

? ??? ??3.2 非ASIC的挖礦系統(Alternative systems with no ASIC mining)

? ?? ???3.3 ASICBoost算法(ASICBOOST)

? ??? ??3.4 通信基礎設施(Communication)

? ??? ??3.5 規模經濟(Economies of scale)

4 礦池和風險規避(Mining Pools and Risk Aversion)

? ?? ???4.1 礦池的形成(The formation of pools)

? ? ????4.2 礦池報酬分配和篡改可能(Reward distribution within pools and possible manipulations)

? ??? ??4.3 消除礦池(Eliminating pools)

5 攻擊和違反規則的經濟學原理(The Economics of Attacks and Deviations from the Rules)

? ? ????5.1 校驗(Validation)

? ??? ??5.2 交易傳播(Transaction propagation)

? ??? ??5.3 私自挖礦(Selfish mining)

? ??? ??5.4 雙重支出(Double spending)

6 結論(Conclusion)

7 作者簡介

8 參考文獻(References)

除了作為理財和轉賬的協議之外,比特幣還創建了一個支配其內部運行的復雜經濟激勵機制(incentives)。這些激勵機制強烈影響了協議的能力、安全保證,以及未來發展的道路。本文探討了比特幣協議的經濟暗流、優勢缺陷,以及它們如何反過來影響協議本身。

比特幣,這個建立在開放P2P(點對點)網絡結構之上的貨幣(文獻9),繼續享受人們的追捧。比特幣系統是“無許可的”——任何人都可以選擇加入網絡,轉賬,甚至參與授權交易。比特幣安全的關鍵之處在于它能夠抵御攻擊者以多重虛假身份加入系統的操縱行為。畢竟,任何人都可以下載比特幣的源代碼,成為一個比特幣節點,并根據需要為網絡添加盡可能多的計算機,而無需向其他人表明其身份。為了解決這個問題,該協議要求加入系統的節點展示出 “工作量證明”:付出算力破解密碼學難題以獲得參與比特幣協議的資格。

從事這種“工作量證明”的節點被稱為礦工。系統向礦工獎勵比特幣作為工作量的“證明”,從而也為這樣的“算力投資”設定了“激勵機制”。

通過在自己電腦上運行軟件就可以獲利(比特幣)——這帶來的第一個也是最明顯的影響是:一旦比特幣具有足夠的價值,人們就開始大肆挖礦。事實上,為了增強挖礦力度,大部分挖礦工作很快都轉移到專用的計算機農場。這些計算機農場使用定制工具來實現其目的:開始,GPU被用于大規模并行工挖礦;之后,特需設計的芯片——專門針對比特幣核心協議計算特征而量身定制的芯片——ASICs(專用集成電路)開始出現(在挖礦時, ASICs機器比普通PC快一百萬倍)。比特幣網絡迅速發展并變得更加安全,為了獲利的競爭也變得更加激烈(利益由比特幣協議周期性放出)。

比特幣的安全性和經濟性是相互作用的。在討論這個主題之前,讓我們快速回顧協議本身的規則——正是這些規則產生了這種復雜的相互作用。

1 比特幣協議快速入門(A Quick Primer on the Bitcoin Protocol)

持有比特幣并希望轉賬的用戶可以將交易信息(通過他們安裝在計算機或智能手機上的軟件)發送到比特幣網絡上的一個節點。比特幣網絡中的活躍節點從用戶那里收集這些交易信息并將它們分發到網絡中的對等節點——分發方式是每個節點僅通知那些與請求轉賬所關聯的節點。交易信息被批量的匯聚,稱為區塊,而區塊又被鏈接在一起形成區塊鏈,從而形成所有被接受的比特幣交易記錄。區塊鏈中的每個區塊都通過一個加密哈希值(實際上也是前驅區塊的唯一標識符)引用其前驅區塊。比特幣網絡中的每個節點都保存著完整的區塊鏈副本。區塊創建的過程被稱為挖礦,挖礦的作用之一相當于新幣的印刷,也就是所謂的造幣。

比特幣的協議規則使區塊的創建非常困難:只有當區塊包含密碼學難題的答案時,才被認為是合法的。作為報酬,每當礦工成功創建區塊時,他們都會得到比特幣獎勵。報酬由兩部分組成:一部分是新造比特幣,一部分是從區塊所包含的交易中抽取的挖礦手續費。目前的造幣率是12.5比特幣每區塊,這一數額大約每四年減半。隨著這一數額的減少,比特幣開始越來越依賴挖礦手續費來支付礦工。

因此比特幣運行的關鍵是讓所有節點就區塊鏈的內容(區塊鏈記錄系統內的所有轉賬信息)達成一致。因此,區塊更新會迅速傳播到網絡中的所有節點。不過,節點有時可能會收到兩個不同版本的區塊鏈。例如,如果兩個節點同時創建了一個區塊,則它們可能會持有區塊鏈的兩個不同更新(鏈的增長chang)。這些區塊可能包含不同的支付操作,因此比特幣系統必須決定要接受哪個版本。

比特幣協議規定每個節點只接受最長鏈作為交易事件的正確版本(主鏈),如圖1所示(更確切地說,節點選擇包含最多累積計算工作的鏈作為主鏈,這通常也是最長鏈)。這條著名的“最長鏈規則”為比特幣提供了安全性。一個攻擊者——如果試圖愚弄其他節點,讓他們相信系統發生了不同的支付事件——需要產生比網絡其余部分更長的區塊鏈。由于“工作量證明”是一個區塊一個區塊的創建出來的,“產生更長區塊鏈”的任務將是異乎尋常的困難。事實上,只要攻擊者的計算能力低于整個比特幣網絡的總和,區塊鏈中的區塊和交易將越來越難以取代(因為攻擊者和整個比特幣網絡的鏈一起增長chang)。

替換主鏈的困難性意味著攻擊者需要多次嘗試才能夠偷天換日。這些失敗的嘗試意味著巨大的代價——在最長鏈之外挖礦,不會得到任何挖礦報酬。對于攻擊者來說,初級的攻擊確實代價昂貴(稍后將討論更高級的攻擊)。

圖1展示區塊鏈的演變情況:分叉開始出現,直到其中一個鏈比另一個鏈更長才能解決。解決的辦法是丟棄最長鏈之外的區塊:被丟棄的區塊不再增長(chang);其內容(紅色部分)也被忽略;創建它們的礦工也不會得到任何報酬。在時間點1,由于一個區塊在創建時沒有鏈接到最新的區塊,導致產生兩個可選的鏈,即發生了分叉。在時間點2,分叉被解決,因為一個鏈比另一個鏈長。在時間點3,有另一個持續時間更長的分叉,在時間點4第二個分叉被解決。

2 比特幣經濟學方法論:難度調整與挖礦經濟均衡(Bitcoin Economics 101: Difficulty Adjustment and the Economic Equilibrium of Mining)

根據比特幣協議,區塊創建速率大致保持不變,也就是期望區塊的創建間隔大約為10分鐘。如果塊創建得太快,則生成區塊所需的工作量證明的難度會自動增加。這種機制已經存在,以確保區塊不會因為系統算力的增加而在節點之間“洪泛”。因此系統以相對恒定的速率向礦工提供報酬,和投資于挖礦的算力總量無關。

顯然,隨著比特幣的價值上升(以美元計),挖礦生意(產生面值為比特幣的支付)變得更加有利可圖。隨著更多的人為了利益加入礦工群體,區塊的創建難度持續增加。而難度增加又導致挖礦代價變得更加昂貴。在理想情況下,當區塊的創建成本等于所得的報酬時,系統將達到平衡。事實上,挖礦總是微利的,有風險的——而且還需要對設備進行初始投資,報酬中的一些盈余也必須補償這些投資。因此,比特幣協議的安全性可以根據價值調整自身:更高的價值也意味著更高的安全性。

由于挖礦報酬持續下降(根據比特幣協議的挖礦時間表),預計創建區塊的動機將更多依賴于交易費用。如果比特幣交易量突然下降,這些交易費用將不足以補償礦工的計算資源。一些礦工可能因此暫時停止他們的區塊創建。這可能會危及整個系統,因為交易的安全性取決于所有誠實的礦工積極參與。(關于挖礦人數下降后的比特幣激勵機制,參見Carlsten等人的文獻3)

許多人抱怨說,創建區塊的算力是在浪費資源(特別是電力):為系統投入大筆費用,除了防范潛在攻擊者之外,沒有任何經濟目標。工作量證明的確是在求解毫無用處的密碼學難題——當然,除了為比特幣網絡安全保駕護航。但是,如果某些工作可能有用呢?或者可能以更高效的方式工作?如果挖礦不浪費每個節點的資源,那么攻擊者也不會為攻擊系統付出任何代價。事實上,如果工作量證明的成本較低,隨著更多誠實參與者加入挖礦群體(獲得報酬),難度調整機制將再次提高難度系數。因此,從某種意義上說,比特幣的工作量證明機制就是為了“浪費”一定數量的資源,而不管個體礦工的效率如何。為了從挖礦中獲得實質性收益而又不會因為成本的增加而抵消,就需要“工作量證明”——這對整個社會是有用的,但對個體礦工毫無價值。(更多使用其他難題作為工作量證明基礎的嘗試,參見Ball等人,Miller等人和Zhang等人的文獻:2,8,13)

3 挖礦的去中心化(Mining Decentralization)

比特幣協議的關鍵是其去中心化:對于整個系統,沒有單一的實體先驗地具有比其他人更多的權威或控制。這增強了系統的抗毀能力:沒有單一的信任錨點或單一故障點;礦工之間采用競爭的方式獲得挖礦手續費。

為了保持這種去中心化,最重要的是要保證挖礦活動是由許多小型實體完成,并且沒有一個礦工的算力明顯超過其他礦工。理想情況下,給予礦工的報酬應反映他們投入的工作量:貢獻了計算資源α%的礦工創建一個區塊的α%,并因此按比例抽取所有分配手續費和區塊報酬的α%。

在實踐中,出于幾個不同的原因,礦工可能從挖礦中獲得不成比例的報酬。這種報酬分配的不平衡讓利益偏向具有更多算力的大型礦工(使大型礦工獲得比小型同行更多的利潤),并為系統的中心化創造了持續不斷的經濟暗流。哪怕微弱的不平衡也可以危及系統:由于礦工可以使用額外回報來購買更多的算力,并因此而變得更加強大,繼而提升挖礦的難度,最終將其他小型(因而利潤較低)礦工排擠出這場游戲。由此產生的“贏家通吃”“動力學過程”將不可避免地導致系統的中心化,然后整個系統將受到優勢礦工的支配,安全性也無法保證。

3.1 ASIC挖礦(ASIC mining)

ASIC的首次出現讓比特幣社區感到驚慌和擔憂。在挖掘比特幣方面,ASIC的效率比以前的系統高幾個數量級。最初,這種特殊的硬件并不容易獲得,因此它為擁有者提供了比其他礦工更大的優勢——以更低的成本挖礦。那些擁有這種優勢的人為系統添加基于ASIC的工作量證明,直到難度級別高到其他人都放棄挖礦。當時的風險是:一個能夠訪問ASIC的大型礦工將最終主宰比特幣系統。一段時間以后,隨著ASIC的商業化并廣泛分布,擔憂逐漸消退。

事實上,ASIC挖礦的實際影響(對安全性的貢獻)是深遠的。本文稍后將討論礦工如何進行雙重支付(雙花)和私自挖礦攻擊,以獲取利益。然而,有人可能會爭辯說,即使是自私和投機性的礦工也最好避免這種攻擊。事實上,一位礦工投資數百萬美元購買挖礦設備(比如ASIC),相當于重金投資了比特幣的未來價值:期望設備將在未來帶來比特幣回報。如果礦工使用這種設備攻擊該系統,那么會降低人們對該貨幣的信心,并且降低比特幣的價值和未來的回報。因此,礦工的利益在某種意義上與整個系統的健康保持一致。

總而言之,ASIC挖礦提高了系統的準入門檻:普通人無法輕易地加入挖礦工作,也因此減少了系統的去中心化。另一方面,ASIC挖礦也引入了一種退出的“門檻”:礦工無法將他們的設備用于其他經濟活動,因此有助于提供系統的安全性。

加密貨幣(例如萊特幣Litecoin,本質上是比特幣的克隆)之間出現的相互競爭——其中一些使用與比特幣相同的工作量證明機制——為想要轉移挖礦算力的礦工提供了選擇方案。這讓市場的“動力學過程”更為復雜。例如,當特定貨幣失去價值時,礦工會將挖礦算力轉移到另一個加密貨幣,直到挖礦難度級別被提高。這可能會導致區塊創建的波動,使礦工較少的加密貨幣系統變得不穩定。

3.2 非ASIC的挖礦系統(Alternative systems with no ASIC mining)

有趣的是,一些加密貨幣系統使用不同的難題求解(工作量證明)機制。這些難題難以設計成專用硬件,因而對ASIC挖礦更具抵抗性。例如,以太坊使用的Ethash難題。這通常是通過設計需要大量訪問其他資源(例如內存等商用硬件)的算法難題來實現。

這些替代系統原則上更加去中心化,但另一方面它們缺乏“退出門檻”及其對安全的貢獻。

當云挖礦服務變得高度可用時,也會產生類似去中心化的效果。一些實體通過云服務出租他們的挖礦設備。租賃云挖礦服務的客戶才是真正的礦工,并且他們在系統中沒有長期利益。隨著這些云挖礦服務變得更加便宜和易于訪問,任何人都可以輕松成為臨時礦工。類似的是,云挖礦服務同樣缺乏“退出門檻”及其對安全的貢獻。

3.3 ASICBoost算法(ASICBOOST)

回想一下,創建一個區塊需要解決特定于該區塊的密碼學難題。這相當于猜測加密哈希函數的輸入。求解這樣的難題主要是通過強力枚舉不同的輸入來完成的。

礦工可以采用比同行更高效創建區塊的方法來獲得優勢。除了采用更好的硬件外,算法是獲得優勢的主要形式。事實上,一個被ASICBoost的算法“trick”最近成為頭條新聞。ASICBoost使礦工能夠重用一個輸入猜測的算力到另外一個輸入猜測。該算法是專有的,目前正在申請專利,尚不清楚誰可以用,誰不可以用。這樣的算法帶來的優勢是可以降低每個哈希的算力消耗。ASIC挖礦的大型制造商Bitmain最近被指控秘密部署ASICBoost的硬件變體以增加其利潤。指控說,該公司在政治上阻礙了一些協議的改進,而這些改進很可能會讓他們無法使用ASICBoost。

3.4 通信基礎設施(Communication)

另外一種提高礦工效率的方法是投資通信基礎設施。通過更快地傳播區塊,并通過更快地接收其他區塊,礦工可以減少其區塊不屬于最長鏈并被丟棄(“成為孤兒”)的機會。由于脫離主鏈的區塊無法獲得報酬,更好的網絡通信意味著降低損失。無可否認,在比特幣區塊目前的創建速度下,這種優勢微乎其微。 區塊并不經常創建,并且交付加速幾秒只能帶來很小的優勢。盡管如此,更好的網絡通信是獲得更多利潤的一種相對便宜的方式。

此外,當比特幣協議覆蓋節點數增大并且交易處理加速時,通信優化帶來的效果變得更加明顯。目前比特幣系統平均每秒處理三到七筆交易。改變比特幣系統的參數——每秒處理更多的交易——將會增加孤兒區塊的比率,并且會放大網絡通信更好的礦工的優勢。

3.5 規模經濟(Economies of scale)

與任何大型實體一樣,大型礦工可以享受規模經濟效益。隨著大規模挖礦業務的發展,大型礦工很可能投資于各種不同的優化方案,比如尋找成本更低的電力來源;或將挖礦設備放置在寒冷地區,為其設備提供更高效的冷卻系統(挖礦帶來大量電力消耗和機器冷卻成為真正的挑戰)。大型礦工也可以以更低的價格批量購買ASIC硬件設備。所有這些都轉化為規模的自然優勢——這種現象并非特定于比特幣,而實際上出現在許多行業中。這些效應為大型礦工帶來了優勢,并慢慢地,將系統拉向中心化。

許多人擔心,目前大部分比特幣挖礦是由中國礦工完成的。與其他地區的挖礦相比,他們享有更好的ASIC訪問,更便宜的電力和更低的監管。中國政府嚴格控制進出中國的互聯網流量,并可能會破壞比特幣系統,甚至沒收境內的挖礦設備。

4 礦池和風險規避(Mining Pools and Risk Aversion)

比特幣挖礦產生非常高的回報,但小礦工獲得回報的可能性非常低。一個全時運行的ASIC設備挖掘到下一個區塊的概率不到六十萬分之一,這意味著幾年內發現不了一個區塊。這種高風險/高回報的收益并不適合大多數人。許多人會選擇較長時期的小規模固定收入(這實質上是風險規避,文獻6)。例如,可以使用固定收入來支付挖礦的電費。

4.1 礦池的形成(The formation of pools)

礦池是礦工聯盟。聯盟將礦工的計算資源整合在一起,挖礦報酬在成員之間共享。由于礦池比每個礦工單打獨斗挖掘到的區塊要多得多,聯盟能夠更經常地向每個礦工支付小額的報酬。

從比特幣網絡的角度來看,礦池也只是一個挖礦節點。礦池成員與礦池服務器交互,礦池服務器將正在處理的下一個區塊頭發送給所有成員。每個成員都試圖求解相應區塊的密碼學難題(事實上,他們使用同一個區塊的變體,并且工量證明也略有不同,以避免重復工作)。每當成員找到一個區塊的難題答案時,就會將該區塊發送給礦池管理節點,管理節點又將該區塊發布到比特幣網絡。該區塊向礦池提供報酬,管理節點隨后將報酬分配給礦池中的所有成員(扣除一部分小額費用)。

4.2 礦池報酬分配和篡改可能(Reward distribution within pools and possible manipulations)

大多數礦池是公開礦池,并向任何有意愿參與的人開放。顯然,礦池必須采取措施,確保只有真正貢獻算力的成員才能享受相應的回報。為此,每個礦池成員發送部分難題求解答案(工作量證明)給礦池—— 這些部分答案“接近”成為區塊的完整難題求解答案。部分答案比完整答案更加普遍,而且任何求解這個難題的成員都可以提供持續穩定的算力(低于目標)。這可以表明成員確實在工作,并且可以評估每個成員能夠貢獻的算力。因此,礦池按照份額數量占比支付成員報酬(每份提交的部分難題求解答案都會獲得一定份額)。

幸運的是,找到難題求解答案的礦池成員無法竊取報酬。密碼學難題取決于區塊頭,該區塊頭由礦池的管理員控制。密碼學難題對區塊本身的內容(通過加密哈希)進行編碼,包括區塊報酬的接收者。在找到特定區塊頭的難題求解答案之后,除非使難題求解答案失效,否則不能篡改區塊頭。

盡管如此,礦池還是可能被策略礦工的篡改。

跳池(Pool hopping)。在比特幣的早期階段,礦池分局每個礦工提交的部分難題求解答案數量的份額,簡單地將所有礦工挖掘的最新塊的報酬按比例分配給所有礦工。份額數量是通過對同一個池創建的前一區塊進行測量得到的。

一些礦工提出了一種提高報酬的方法:如果一個礦池運氣不好,并且一段時間沒有挖到區塊,那么很多部分難題求解答案(份額)就會積累起來。如果礦池發現一個區塊,它的報酬將被分成許多小份。產生額外的份額的工作量與以前一樣,但由于這個原因產生更低的預期回報。相反,礦工可以跳到最近找到一個區塊的另一個礦池,并且每個額外的份額都會獲得更高的預期回報。如果這種行為被大量采用,那么實際上,暫時不成功的礦池會被所有理性的礦工完全拋棄。對抗跳池的報酬計劃很快被開發出來,并被大多數礦池所采用(文獻10)。

區塊發布抑制攻擊(Block-withholding attacks)。雖然礦工無法竊取難題求解答案的區塊報酬,但他/她仍然可以否決對礦池中其他礦工的報酬。礦工可以選擇只向礦池管理者提交部分難題求解答案,但放棄所有成功的難題求解答案。因此,當其他人找到難題求解答案時,礦工會收到一定比例的獎勵,但不會為該礦池提供任何實際貢獻。拋棄成功的難題求解答案破壞了礦池,攻擊者僅損失少量的收入作為代價。

盡管攻擊者蒙受了損失,但在某些情況下,礦池有必要利用自己的一些挖礦能力破壞競爭對手:攻擊礦池通過將其中一些礦工注冊為受害礦池中的工人,滲透到受害礦池中。這些工人然后執行區塊發布抑制攻擊。通過成本和報酬的詳細計算,表明在某些情況下(取決于攻擊礦池和受害礦池的大小),攻擊礦池是有利可圖的(文獻4)。為了防止這種攻擊,人們已經提出了對挖礦協議的輕微修改。在修改后的版本中,礦工無法辨別部分難題求解答案和完整難題求解答案,以解決工作量證明問題,并且無法選擇性地抑制完整的難題求解答案。

4.3 消除礦池(Eliminating pools)

雖然礦池適合小型礦工,可以減少礦工的風險和不確定性,但礦池會給系統引入一些中心化。礦池管理員本質上是大量礦工的整合計算資源的控制者,因此權力非常大。一些研究人員提出挖礦協議的技術修改方案,徹底破壞公共礦池的存在(文獻7)。在該方案下,在找到區塊有效的難題求解答案后,挖掘該區塊的礦池成員仍然可以將報酬重定向到自己(而不會使難題求解答案失效)。假設大量礦工會為自己申請報酬,那么礦池將不會有利可圖,因此會解散。

5 攻擊和違反規則的經濟學原理(The Economics of Attacks and Deviations from the Rules)

本文前面描述了一種礦工在比特幣協議中取得支配地位的方法——既可以獲利超過他/她應得的份額,也可以在鏈中產生更多的區塊。迄今為止討論的方法沒有違反協議的任何規則;從某種意義上說,允許礦工充分利用他們的硬件和基礎設施。本節討論直接違反協議規則的行為——礦工謀取自身利益以犧牲他人利益為代價。從某種意義上說,這種策略的存在意味著協議的激勵結構中存在根本性的缺陷:為了利潤最大化的理性參與者不會遵循比特幣協議。

非正式地,協議規定任何節點:(1)驗證它接收的每個新消息(區塊/交易);(2)將所有有效消息傳播給其對等節點; (3)新區塊一旦創建立即廣播出去; (4)在節點本地已知的最長鏈上構建新區塊。對協議的攻擊對應于這些規定中的一個或多個偏差/違反。

5.1 校驗(Validation)

不校驗傳入消息的礦工是脆弱的——下一個區塊可能包含他/她未校驗的無效交易,或無效的前驅塊引用。其他節點會認為這個新區塊是無效的并忽略它。這明確地激勵礦工在他們的區塊中只嵌入有效的交易并在接受之前校驗每個新區塊。

有趣的是,盡管有這樣的邏輯,但有時礦工會在一個區塊之上挖掘,而沒有完全校驗該區塊。這種做法被稱為SPV挖礦(SPV:simplified payment verification,代表簡化的支付校驗,通常指使用不讀取區塊完整內容的瘦客戶端)。

為什么礦工會在未經校驗的區塊上創建新區塊?答案還是在于激勵機制。甚至在接收到區塊全部內容之前,一些礦工采用這樣的方法來得到新創建區塊的哈希ID(一種稱為間諜挖礦spy-mining的方法:加入另一個礦池來檢測區塊創建事件)。即使接收到一個區塊,校驗其包含的交易也需要時間。在此期間,礦工意識到區塊鏈已經長了一個區塊。因此,為了避免挖礦設備在該區塊校驗完成之前(極有可能是有效的)處于閑置狀態,礦工決定在該區塊之上繼續挖礦, 為了避免下一個區塊與未驗證區塊的交易沖突的風險,礦工不會在下一個塊中嵌入新的交易,以期仍然能夠收集區塊的報酬。

確實有證據表明有礦工正在采取這種方法。首先,被挖掘的區塊中有一小部分是空的(即使許多交易正在等待批準)。另一個證據與2015年7月發生的一起不幸事件有關。一個無效區塊(無意)由于bug而被挖掘,SPV礦工在其上增加了五塊額外的塊,而未做校驗。當然,其他校驗礦工拒絕該區塊和任何引用它的區塊,導致網絡中有六塊長的分叉。在分叉中丟棄的區塊可能包含雙重支出的交易。

這個事件顯示了SPV挖礦的危險之處:SPV挖礦降低了比特幣的安全性,并可能在區塊鏈中引發分叉。幸運的是,礦工大大提高了區塊的傳播和校驗時間,所以SPV挖礦效果越來越差。空置區塊獎勵的下降(計劃中)也會降低礦工參與此類行為的動機。

5.2 交易傳播(Transaction propagation)

比特幣協議的第二個重要方面與信息傳播有關:新的交易和區塊應發送給網絡中所有對等節點。這里對遵守協議規定的激勵并不那么清楚。礦工甚至可能會抑制發送尚未被納入區塊的未確認交易,特別是交易費用較高的交易(文獻1)。礦工有很強的動力來保持這種交易,直到他們成功創建一個區塊。向他人發送交易允許他們搶先獲得交易提供的報酬。迄今為止,大多數交易費用相對較低,而且沒有證據表明高手續費交易以這種方式被扣留。

接下來,讓我們把注意力轉到有意操縱區塊鏈的協議違反/偏差上。

5.3 私自挖礦(Selfish mining)

每當礦工創建一個新區塊時,比特幣協議表示新區塊應該在礦工觀察到的最長鏈條的頂部(即,最長鏈的頂端為前驅),并且礦工應該立即將新區塊發送給網絡中的對等節點。

不幸的是,礦工可以通過違反這些規則并有策略的行動而受益(文獻5,11)。礦工的總體策略是不發布區塊并私自延伸公共鏈作為其私鏈。同時,公共鏈也被其他(誠實)節點延伸。策略礦工只有在其私鏈長度不能勝出的概率較低時才發布其私鏈。當策略礦工這樣做時,所有節點都采用礦工突然釋放的較長的鏈,如協議所規定的那樣,并且他們放棄了以前的公共鏈。

重要的是,這種行為增加了礦工在最長鏈中的份額——也就是說,它增加了最終產生的最長鏈上的區塊的百分比。回想一下,比特幣系統會自動調整工作量證明的難度,以保持區塊的創建速率不變。因此,從長遠來看,在區塊鏈中占有相對較大的塊數比例意味著礦工絕對報酬的增加。

沒有準確的辦法來驗證礦工是否從事私自挖礦。鑒于只有極少數區塊是孤立的,似乎私自挖礦還沒有被孤立區塊采納,至少沒有被大型礦工采納(能夠從私自挖礦中獲利最多的礦工)。一種解釋是,長期嘗試這種操縱的礦工可能會損失他們的聲譽并引起社區的憤慨。另一種解釋是,這種方案需要在最初失去一些自己的區塊,并且只有長期運行才能盈利(協議重新調整難度級別大約需要兩周)。

5.4 雙重支出(Double spending)

雙重支出是對比特幣用戶的基本攻擊:攻擊者向網絡發布合法支付,等待它嵌入區塊鏈并讓受害者確認,然后發布更長的私自挖掘區塊鏈不包含這筆款項。這筆款項不再是最長鏈條的一部分,就像“從未發生過”。

這種攻擊會帶來一定的風險:如果攻擊者的區塊不能成為最長鏈的尾部,則可能失去對他/她的數據塊的報酬。令人驚訝,而且不幸的是,持久的攻擊者可以通過遵循更復雜的攻擊方案來消除這種風險(文獻12)。這些方案通過頻繁的放棄攻擊,發布私有的攻擊鏈,并為它的區塊收集報酬。通過在每次失去報酬的風險過高時重置攻擊,攻擊者可以彌補攻擊成本,甚至長期盈利。這些方案本質上是私自挖礦和雙重支出攻擊的組合。

目前,網絡中的雙重支出并不常見。這可能是因為成功執行的雙重支出是非常困難的,或者因為能夠成功執行此類攻擊的礦工也對系統聲譽擁有重大利益。

6 結論(Conclusion)

激勵機制確實在比特幣協議中發揮著重要作用。激勵機制對于比特幣協議的安全性、及其日常運行的有效性至關重要。正如本文所指出的,礦工為了最大限度地增加收入而費盡心機,并且經常會找到一些創造性的方法,而這些方法與比特幣協議并不符合。

加密貨幣的協議應該建立在更加堅實的激勵基礎之上。還有很多領域需要改進,包括基本的挖礦報酬機制,交互共識機制,礦池的報酬分配機制,以及交易手續費市場本身的方方面面。

7 作者簡介

Dr. Aviv Zohar is a faculty member at the School of Computer Science and Engineering at the Hebrew University of Jerusalem, and a cofounder and chief scientist of QED-it. He has been researching the scalability, security, and underlying incentives of cryptocurrencies for several years.

Yonatan Sompolinsky is a Ph.D. student (final year) at the School of Computer Science and Engineering at the Hebrew University of Jerusalem, under the supervision of Dr. Aviv Zohar. He obtained an M.Sc. in computer science and a B.Sc. in mathematics from the Hebrew University. He is cofounder and chief scientist of DAGlabs.

8 參考文獻(References)

1. Babaioff, M., et al. 2012. On Bitcoin and Red Balloons. Proceedings of the 13th ACM Conference on Electronic Commerce: 56-73.

2. Ball, M., et al. 2017. Proofs of Useful Work. IACR Cryptology ePrint Archive: 203.

3. Carlsten, M., et al. 2016. On the Instability of Bitcoin Without the Block Reward. Proceedings of the ACM SIGSAC Conference on Computer and Communications Security: 154-167.

4. Eyal, I. 2015. The Miner's Dilemma. IEEE Symposium on Security and Privacy.

5. Eyal, I., Sirer, E. G. 2014. Majority is not Enough: Bitcoin Mining is Vulnerable. International Conference on Financial Cryptography and Data Security. Springer Berlin.

6. Fisch, B. A., Pass, R., Shelat, A. 2017. Socially Optimal Mining Pools. arXiv preprint.

7. Miller, A., et al. 2015. Nonoutsourceable Scratch-off Puzzles to Discourage Bitcoin Mining Coalitions. Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security.

8. Miller, A., et al. 2014. Permacoin: Repurposing Bitcoin Work for Data Preservation. IEEE Symposium on Security and Privacy.

9. Nakamoto, S. 2008. Bitcoin: A Peer-to-peer Electronic Cash System. Bitcoin.org; https://bitcoin.org/bitcoin.pdf.

10. Rosenfeld, M. 2011. Analysis of Bitcoin Pooled Mining Reward Systems. arXiv preprint.

11. Sapirshtein, A., Sompolinsky, Y., Zohar, A. 2016. Optimal Selfish Mining Strategies in Bitcoin. International Conference on Financial Cryptography and Data Security. Springer Berlin.

12. Sompolinsky, Y., Zohar, A. 2017. Bitcoin's Security Model Revisited. International Joint Conference on Artificial Intelligence, Workshop on A.I. in Security. Melbourne.

13. Zhang, F., et al. 2017. REM: Resource-Efficient Mining for Blockchains. Cryptology ePrint Archive. https://eprint.iacr.org/2017/179.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,362評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,013評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,346評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,421評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,146評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,534評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,585評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,767評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,318評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,074評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,258評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,828評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,486評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,916評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,156評論 1 290
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,993評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,234評論 2 375

推薦閱讀更多精彩內容