TMT观察网_独特视角观察TMT行业

去中心化:比特幣如何實現權力下放區塊鏈

火星財經 2018-08-19 13:23
分享到:
導讀

比特幣實現去中心化的機制并非純技術問題,而是技術手段和智能激勵工程的結合。

去中心化:比特幣如何實現權力下放

在本章中,我們將討論Bitcoin中的權力下放(去中心化)。在第一章中,我們研究了比特幣基礎的加密基礎,并以我們稱之為ScroogeCoin的簡單貨幣來結束。ScroogeCoin在基于分類帳的加密系統中實現了很多我們想要的功能,但它有一個明顯的問題——它依賴于稱為Scrooge的集中式權限。我們在如何下放或者去中心化這個貨幣中結束了這個問題,問答這個問題將成為本章的重點。

在閱讀本章時,請注意,比特幣實現去中心化的機制并非純技術問題,而是技術手段和智能激勵工程的結合。在本章結尾,您應該很贊賞這種權力是如何下放的,更一般來說,Bitcoin是如何工作的,以及為什么它是安全的。

2.1中心化與去中心化

去中心化不是比特幣唯一一個重要的概念。在各種不同的數字技術中,出現了中心化與去中心化競爭范式的概念。為了更好地了解它是如何在比特幣發揮作用的,在其他各種情況下理解中央沖突(這兩種范式之間的緊張關系)是有用的。

一方面,我們有了互聯網,一個有名的去中心化系統,歷史上競爭并戰勝了“圍墻內的花園”,比如AOL和CompuServe的信息服務。然后,出現了電子郵件,其核心是基于簡單郵件傳輸協議(SMIP)的分散系統,這是一種開放標準。雖然它有來自Facebook或LinkedIn郵件等專有郵件系統的競爭,但電子郵件仍然是個人與個人在線通信的默認工具。就即時消息和短信來說,我們有一個不能被明確描述為集中式或分散式的混合模型。最后還有社交網絡:盡管業余愛好者、開發者和企業家為了創造出主流中心化系統的替代品做了多次努力,但像Facebook和LinkedIn這樣的集中式系統仍然主宰著這個空間。事實上,這個沖突早在數字時代就有了,我們看到電話、廣播、電視和電影的歷史上也有這兩個模式間的類似斗爭。

去中心化并非全部或什么都沒有;幾乎沒有一個系統是完全分散式的或純粹集中的。例如,電子郵件基本上是基于標準化協議(SMTP)的分散式系統,任何想的人都可以操作自己的電子郵件服務器。然而,市場上發生的情況是,少數集中的網絡郵件提供商已成為主流。同樣,雖然Bitcoin的協議是分散式的,像Bitcoin交易的服務,你可以將Bitcoin轉換成其他貨幣,而錢包軟件或允許人們管理其Bitcoin的軟件可能會在不同程度上集中或分散。

考慮到這一點,讓我們將Bitcoin協議如何實現去中心化分解成為五個更具體的問題:

1.誰維護交易的分類賬?

2.誰擁有決定哪些交易有效的權力?

3.誰創造新的比特幣?

4.誰決定系統規則如何改變?

5.比特幣如何獲得交換價值?

前三個問題反映了比特幣協議的技術細節,正是這些問題將成為本章的重點。

比特幣的不同方面落在中心化/去中心化范圍的不同點上。對等網絡(p2p)接近于純粹的分布式,因為任何人都可以運行Bitcoin節點,并且進入門檻相當低。你可以上網,輕松下載Bitcoin客戶端,并在筆記本電腦或PC上運行節點。目前有數千個這樣的節點。本章稍后研究的比特幣礦業在技術上也適用于任何人,但需要非常高的資本成本。因此,在比特幣礦業生態系統中,集權力或權力集中度較高。Bitcoin社區的許多人都認為這是非常不方便的。第三個方面是比特幣節點運行軟件的更新,這關系到系統規則如何以及何時更改。可以想象,與電子郵件一樣,協議有許多互操作的實現。但在實踐中,大多數節點運行參考實現,其開發人員被社區充分信任并具有很大的權力。

2.2分布式共識

我們以通用的方式討論了集權和去中心化。現在我們來看看比特幣在更技術層面的去中心化。在本次討論中將出現的一個關鍵術語是共識,具體而言,是分布式共識。建立分布式電子現金系統解決的關鍵技術問題是實現分布式共識。直觀地,你可以想到我們的目標是分散ScroogeCoin,這是我們在第一章看到的假想貨幣。

分布式共識具有多種應用,并已在計算機科學方面進行了數十年的研究。傳統的激勵應用是可靠的分布式系統。想象一下,您負責Facebook等大型社交網絡公司的后端。這種系統通常具有數千甚至數百萬臺服務器,這些服務器一起形成一個大量的分布式數據庫,記錄系統中發生的所有動作。每條信息必須記錄在該后端的幾個不同的節點上,并且節點必須與系統的整體狀態保持一致。

具有分布式共識協議的含義遠遠超出了這一傳統應用。如果我們有這樣一個協議,我們可以使用它來構建一個龐大的,分布式的鍵值存儲,將任意鍵或名稱映射到任意值。一個分布式的鍵值存儲又可以實現許多應用。例如,我們可以使用它來構建一個分布式的域名系統,它只是人類可理解的域名與IP地址之間的映射。我們可以建立一個公共密鑰目錄,它是電子郵件地址(或某種其他形式的真實身份)與公共密鑰之間的映射。

這是最直觀的分布式共識,但對于提供技術定義是有用的,因為這將有助于我們決定給定的協議是否符合要求。

分布式共識協議:有n個節點,每個都有一個輸入值。其中有一些節點有故障或惡意。分布式共識協議具有以下兩個屬性:

·它必須終止于所有在價值上達成一致的誠實節點

··該值必須由一個誠實的節點生成

在比特幣的背景下這是什么意思?要了解分布式共識如何在比特幣中發揮作用,請記住Bitcoin是一個點對點系統。當Alice想支付給Bob時,她實際上做的是將交易通過對等網絡廣播到所有比特幣節點。見圖2.1

第2章:比特幣如何實現權力下放(去中心化)

圖2.1廣播一個交易為了支付Bob,Alice將交易廣播到整個Bitcoin對等網絡

順便提一句,你可能已經注意到,Alice將交易廣播到所有比特幣點對點節點,但是Bob的電腦在這張圖中沒有位置。Bob當然可以運行對等網絡中的一個節點。事實上,如果他希望被告知這個交易確實發生了,并且他得到了報酬,那么運行一個節點可能是個好主意。盡管如此,Bob并不需要在網絡上偵聽;Bob不必要通過運行一個節點來收到資金。不管他是否在網絡上操作一個節點,比特幣都將是他的。

究竟什么樣的節點可能希望在比特幣網絡上達成共識呢?鑒于各種用戶正在將這些交易廣播到網絡,節點必須準確同意廣播哪些交易以及這些交易發生的順序。這將導致系統的單個全局分類賬。回想一下,在ScroogeCoin中,為了優化,我們將交易放在區塊中。同樣,在比特幣方面,我們在逐區塊的基礎上達成共識。

所以,在任何一個給定的點上,對等網絡(p2p)中的所有節點都有一個由一系列區塊組成的分類賬,每個區塊都包含一個已經達成共識的交易列表。此外,每個節點都有一個聽說了,但尚未被包含在區塊鏈中的未完成交易池。對于這些交易,共識尚未產生,因此根據定義,每個節點可能有稍微不同版本的未完成交易池。實際上,這是因為對等網絡不完美,所以一些節點可能已經聽說過其他節點沒有聽說過的交易。

節點如何在區塊上達成共識?一種做到這點的方法是:定期每隔10分鐘,系統中的每個節點都會提議自己未完成的交易池作為下一個區塊。然后節點執行一些共識協議,其中每個節點的輸入是它自己提出的區塊。現在,一些節點可能是惡意的,并將無效的交易放入其區塊中,但是我們可以假定其他節點是誠實的。如果共識協議成功,則將選擇有效的區塊作為輸出。即使所選區塊僅由一個節點提議,只要該區塊有效,則它也是一個有效的輸出。現在可能有一些有效的但未完成的交易未被包含在塊中,但這不是問題。如果某些交易以某種方式沒有進入這個特定的塊,那么它只能等待進入下一個塊。

前一段中的方法與Bitcoin如何工作有一些相似之處,但它并不完全如此。這種方法有一些技術問題。首先,一般來說,共識是一個難題,因為節點可能會崩潰或者完全是惡意的。其次,特別是在比特幣上下文中,網絡是非常不完美的。它是一個對等系統,并不是所有的節點對都相互連接。例如,由于互聯網連接不良,網絡中可能會出現故障,而且運行協商一致的協議,其中所有節點都必須參與,這是不可能的。最后,系統中會有很多延遲,因為它遍布互聯網。

側欄:比特幣協議必須對兩種障礙達成一致:網絡中的缺陷,如延遲和節點崩潰,以及一些節點故意破壞進程的企圖。

這種高延遲的一個特定后果是沒有全球時間的概念。這意味著并不是所有的節點都能夠簡單的基于觀察時間戳來同意事件的常見排序。因此,共識協議不能包含形式的指令,“步驟1中發送第一個消息的節點必須在步驟2中執行X”。這根本不起作用,因為并不是所有的節點都將同意在協議的步驟1中首先發送哪條消息。

不可能的結果全球時間的缺乏嚴重限制了可被用于共識協議的算法集。事實上,由于這些限制,大多數分布式共識的文獻有點悲觀,許多不可能的結果已被證明。一個非常有名的不可能的結果涉及拜占庭將軍的問題。在這個經典問題上,拜占庭的軍隊被分為師,各由一個將軍指揮。將軍通過信使溝通,制定聯合行動計劃。一些將領可能是叛徒,有可能故意試圖破壞進行,以便使忠誠的將軍無法達成一個統一的計劃。這個問題的目標是讓所有忠誠的將軍達成同樣的計劃,沒有叛國的將軍能致使他們采取壞的計劃。已經證明,如果有三分之一以上的將軍是叛徒,計劃是不可能實現的。

一個更為微妙的不可能的結果,因首先證明了它的作者的名字而廣為人知,被稱為費舍爾-林奇-帕特森不可能的結果。在某些條件下,包括以確定性方式行事的節點,他們證明即使是單一的錯誤進程,共識也是不可能達成的。

盡管有這些不可能的結果,文獻中也有一些共識協議。這些協議中更廣為人知的一個是Paxos。Paxos做出了一些妥協。一方面,它從不產生不一致的結果。另一方面,它接受在某些條件下,即使罕見的條件下的交易,該協議可能會卡住,不取得任何進展。

打破傳統假設但有一個好消息:這些不可能的結果在一個非常特殊的模型中被證明。它們旨在研究分布式數據庫,且該模型對比特幣的設置并不非常好,因為比特幣違反了模型中許多內置的假設。在某種程度上,結果告訴我們更多關于模型,而不是關于分布式共識的問題。

具有諷刺意味的是,隨著目前的研究狀況,Bitcoin的共識在實踐中比在理論上更好。也就是說,我們觀察到了工作的共識,但沒有發展理論來充分解釋它為什么工作。但是,發展這樣的理論是重要的,因為它可以幫助我們預測不可預見的攻擊和問題,只有當我們對比特幣共識如何工作的有了很大的理解,才能保證比特幣的安全性和穩定性。

傳統模式下,比特幣違約的共識假設是什么?首先,它介紹了激勵的思想,這對于分布式共識協議是新穎的。這只能在比特幣上可能實現,因為它是一種貨幣,因而具有激勵參與者誠實行事的自然機制。所以比特幣在一般意義上并不能很好地解決分布式共識問題,但在貨幣體系的具體情況下能得到解決。

第二,比特幣信奉隨機性的概念。我們將在接下來的兩節中看到,比特幣的共識算法在很大程度上依賴于隨機化。另外,它擺脫了共識的特定出發點和結束點的概念。相反,共識在很長一段時間內發生,在實際系統中大約一個小時。但即使在那個時間結束時,節點也不能確定任何特定的交易或區塊已經成為分類賬。相反,隨著時間的推移,你對任何區塊的看法將與最終的共識視圖相匹配的可能性增加,視圖分歧的幾率也將呈指數下降。模型中的這些差異是比特幣如何繞過分布式共識協議的傳統不可能結果的關鍵。

2.3使用區塊鏈的無身份共識

在本節中,我們將研究比特幣共識算法的技術細節。回想一下,比特幣節點沒有持久的長期身份。這是與傳統的分布式共識算法的另一個區別。缺乏身份的一個原因是,在對等的系統中,沒有中央權力機構為參與者分配身份,并確保他們不會隨意創建新的節點。這個技術術語是Sybil攻擊。Sybils只是惡意的對手創建的節點副本,它看起來像有很多不同的參與者,實際上所有這些偽參與者都是由同一個對手控制的。另一個原因是匿名本質上是比特幣的一個目標。即使可能或容易為所有節點或所有參與者建立身份,我們也不一定要這樣做。雖然Bitcoin并沒有提供強有力的匿名保證,因為一個人所做的不同交易通常可以聯系在一起,但它確實有這樣的特性:沒有人被迫透露他們的現實身份,比如他們的名字或IP地址,以便參加。這是Bitcoin設計的一個重要特性和核心特征。

如果節點確實有身份,那么設計會更容易。對于初學者來說,身份將允許我們放入表單的協議指令:“現在具有最低數字ID的節點應該采取一些步驟。”沒有身份,可能的指令集更受約束。但是,對于節點來說,具有身份更重要的原因是為了安全。如果節點被識別,且創建新的節點身份不再微不足道,那么我們就可以對惡意節點的數量做出假設,從中派生出安全屬性。

我們可以通過做出較弱的假設來彌補身份缺失。假設在某種程度上有能力在系統中選擇一個隨機節點。一個很好的激勵類比是彩票或抽獎,或者任何數量的很難追蹤人的現實生活的系統,給他們身份,然后驗證這些身份。我們在這些情況下所做令牌(代幣)或者類似的東西。這使我們隨后能夠選擇一個隨機的令牌ID,并調用該ID的所有者。所以現在呢,要有一個信念的飛躍,并且假設有可能以這種方式從比特幣網絡中選擇一個隨機節點。進一步假設,目前這個代幣生成和分配算法足夠智能,所以如果對手要嘗試創建很多Sybil節點,那么所有這些Sybils一起只會得到一個令牌。這意味著對手無法通過創建新的節點來增加他的權力。如果你認為這里有很多假設,別擔心。在本章的后面,我們將刪除這些假設,并詳細顯示如何在Bitcoin中實現與之相當的屬性。

隱含的共識這種隨機節點選擇的假設有可能成為隱含的共識。我們的協議中有多個回合,每個對應于區塊鏈中的不同塊。在每一輪中,一個隨機節點以某種方式被選擇,并且該節點提議鏈中下一個區塊。沒有一致的算法來選擇區塊,也沒有任何類型的投票。所選節點單方面提議區塊鏈中的下一個區塊將是什么。但是,如果那個節點是惡意的呢?那么有一個處理這問題的過程,但它是一個隱含的過程。其他節點將通過選擇是否在其頂部構建區塊來隱含的接受或拒絕該區塊。如果它們接受該區塊,它們將通過擴展包含接受區塊的塊鏈來表示它們的驗收。相比之下,如果他們拒絕該區塊,他們將通過忽略該區塊來擴展鏈,并建立在他們接受的前一個區塊之上。回想一下,每個區塊包含它擴展的區塊的哈希。這是一種技術機制,允許節點示意哪個區塊是它們正在擴展的區塊。

比特幣共識算法(簡)

該算法得到了簡化,假設它具有以不易遭受Sybil攻擊的方式選擇隨機節點的能力。

1.新的交易將廣播到所有節點

2.每個節點將新的交易收集到區塊中

3.在每一輪中,一個隨機節點開始廣播它的區塊

4.其他節點只有在區塊中所有的交易都有效(未使用,有效簽名)時才接受該區塊

5.節點通過將其哈希包含在所創建的下一個區塊中來表示對該區塊的接受

現在讓我們來看看為什么這個共識算法有效。為了做到這一點,讓我們考慮一個惡意對手——我們稱之為Alice——可能會顛覆這個過程。

竊取Bitcoin Alice可以在她無法控制的地址上簡單地竊取屬于另一個用戶的比特幣嗎?不,即使是由Alice來提議區塊鏈的下一個區塊,她也不能竊取其他用戶的比特幣。這樣做將需要Alice創建一個使用該硬幣的有效交易。這將需要Alice偽造所有者的簽名,如果該簽名使用的是安全數字簽名方案,則她不能這樣做。所以只要底層的加密是堅實的,她就不能簡單地竊取比特幣。

拒絕服務攻擊 讓我們考慮另一次攻擊。說Alice真的不喜歡其他像Bob一樣的用戶。然后,Alice可以決定,她不會將任何鮑伯地址的交易包含在她提議進入區塊鏈的任何區塊中。換句話說,她拒絕為Bob服務。雖然這是Alice可以嘗試的一個有效的攻擊,但幸運的是這只是一個小煩惱。如果Bob的交易沒有進入Alice提議的下一個區塊,那么他只要等到一個誠實的節點有機會提出一個區塊,然后他的交易將進入該區塊。所以這也不是一個很好的攻擊。

雙重攻擊Alice可能會嘗試發起雙重攻擊。為了理解這個工作原理,讓我們假設Alice是由Bob管理的一些在線商家或網站的客戶,他提供一些在線服務來換取比特幣的支付。比方說,Bob的服務允許下載一些軟件。這里可能是雙重花費攻擊如何工作的。Alice在Bob的網站上向她的購物車添加了一個項目,服務器請求付款。然后,Alice從她的地址創建一個比特幣交易到Bob的地址,并將其廣播到網站。比方說,一些誠實的節點創建下一個區塊,并在該區塊中包括此交易。所以現在有一個由一個誠實的節點創建的區塊,它包含代表從Alice向商人Bob付款的一個交易。

回想一下,一個交易是一個包含Alice簽名的一個數據結構,一個支付給Bob的公鑰指令,和一個哈希。這個哈希表示一個Alice收到的先前交易輸出的指針,現在正在消費。該指針必須引用在共享鏈中先前區塊中的交易

注意,順便說一句,這里有兩種容易混淆的不同類型的哈希指針。區塊包括一個哈希指針,指向他們正在擴展的上一個區塊。交易包括一個或多個哈希指針,這些指針指向正在贖回的前一個交易輸出。

讓我們回到Alice如何發起雙重支付攻擊。最新的區塊由一個誠實的節點生成,并包括一個Alice支付給Bob進行軟件下載的交易。在看到這個包含在區塊鏈中的交易的時候,Bob斷定Alice已經支付給了他,并允許Alice下載軟件。假設下一輪中選擇的下一個隨機節點恰好由Alice控制。現在,既然Alice提議下一個區塊,她可以提出一個忽略了包含對Bob付款的區塊,取而代之的是一個指向前一個區塊的指針。此外,在她提議的區塊中,Alice包含一個交易,將她發送給鮑伯的硬幣轉移到她自己控制的另一個地址。這是一個經典的雙重支付模式。由于兩筆交易花費相同的硬幣,所以只有其中之一可以包含在區塊鏈中。如果Alice成功的在區塊鏈中將付款包含在自己的地址中,那么她支付Bob的交易是無用的,因為它永遠不會被包含在區塊鏈中。

第2章:比特幣如何實現權力下放(去中心化)

圖2.2雙重支付嘗試 Alice創造了兩個交易:一個是她發送比特幣給Bob,另一個是她通過發送到她控制的不同地址來雙重支付這些比特幣。當他們花費相同的比特幣時,這些交易中只有一個可以包含在區塊鏈中。箭頭中是從一個區塊到前一個區塊的指針,其擴展在它自己的內容中包含前一個區塊的哈希。Ca用于表示Alice擁有的硬幣。

我們怎么知道這個雙重支付的嘗試是否會成功?這取決于哪一個區塊將最終導致長期共識鏈——一個與Alice→Bob交易或一個與Alice→Alice交易。什么決定哪個區塊將被包含進去?誠實節點遵循延長最長有效分支的政策,那么分支機構將擴展哪一個?這沒有正確的答案!在這一點上,兩個分支擁有相同的長度——它們只在最后一個區塊中有所不同同,而這兩個區塊都是有效的。選擇下一個區塊的節點可能決定在其中一個區塊上進行構建,然后,這個選擇將在很大程度上決定雙重支付是否能夠成功。

一個微妙的觀點:從道德的角度來看,包含支付給Bob的交易的區塊和包含Alice將這些硬幣花費到自己地址的交易的區塊之間有明顯的區別。但是,這個區別只是基于我們對Alice首先支付Bob,并試圖雙重支付的故事的了解。然而,從技術角度來看,這兩個交易完全相同,兩個區塊同樣有效。正在看這一點的節點確實無法告訴我們哪個是合乎道德的合法交易。

在實踐中,節點通常遵循擴展它們在對等網絡中首先聽到的區塊的啟發式方法。但是,這不是一個可靠的規則。在任何情況下,由于網絡延遲,可能很容易的是,節點首先聽到的區塊實際上是第二個創建的區塊。因此,至少有一些機會,下一個獲得提議區塊的節點將擴展包含雙重支付的區塊。Alice還可以進一步嘗試通過賄賂下一個節點來增加這種情況發生的可能性。如果下一個節點以任何原因構建在雙重支付區塊上,那么這個鏈現在將比包含Bob交易的那個鏈長。此時,下一個誠實節點更有可能繼續在這條鏈上構建,因為它更長。這個過程將會持續下去,包含雙重支付的區塊將越來越有可能成為長期共識鏈的一部分。另一方面,包含與Bob交易的區塊被網絡完全忽略,現在稱之為孤立區塊。

現在讓我們從Bob——商人的角度重新考慮這個整體情況。了解Bob如何保護自己免受這種雙重支付攻擊是理解Bitcoin安全性的關鍵部分。當Alice廣播代表她付給Bob的交易時,Bob正在網絡上收聽,甚至在下一個塊被創建之前聽到關于這個事務的消息。如果Bob比我們之前描述的更愚蠢,他可以在網站上完成結賬過程,并允許Alice在當時下載軟件。這被稱為零確認交易。這導致了比之前描述的更多更基本的雙重支付攻擊。以前,為了進行雙重支付攻擊,我們不得不假設一個惡意參與者控制提議的下一個區塊的節點。但是如果Bob允許Alice在交易接收到區塊鏈上的單個確認之前下載軟件,則Alice可以立即廣播雙重支付交易,而誠實節點可能將其包含在下一個區塊中,而不是支付Bob的交易。

第2章:比特幣如何實現權力下放(去中心化)

圖2.3 Bob商人的觀點 這是Alice從Bob商人的角度看的雙重支付攻擊

為了保護自己免受此攻擊,Bob應該等到Alice支付給他的交易包含在區塊鏈中,并且有幾個確認后再交易。

另一方面,即使交易被包含在一個區塊中,一個謹慎的商人不會將該軟件發布給Alice,并將繼續等待。如果Bob看到Alice成功地發動了雙重支付攻擊,他意識到包含Alice對他支付的那塊已經被孤立了。他應該放棄交易,不讓Alice下載軟件。相反,盡管發生了雙重支付攻擊這種情況,接下來的幾個節點將Alice→Bob的交易創建在區塊上,Bob將獲得這一交易將在長期共識鏈上創建的信心。

一般來說,一個交易得到的確認越多,就越有可能在長期共識鏈上。回想一下,誠實節點的行為總是擴展它們看到的最長的有效分支。包含雙重支付的較短分支趕上更長分支的機會變得越來越小,因為長分支比任何其他分支長得多。如果只有少數節點是惡意的,這一點尤其如此——對于較短的分支要迎頭趕上,必須連續挑選幾個惡意節點。

事實上,雙重支付的概率隨著確認的數量呈指數下降。那么,如果你感興趣的交易已經收到K確認,那么雙重支付交易出現在長期共識鏈上的概率指數下降為k的函數。在比特幣生態系統中使用的最常見的啟發式是等待六次確認。數字六并沒有什么特別的。這僅僅是一個很好的,在你等待的時間和保證你感興趣的交易最終出現在共識區塊鏈上的折衷方案。

總而言之,防范無效的交易是完全加密的。但它是以共識的方式執行的,這意味著如果一個節點嘗試包含一個加密無效的交易,則交易不會在長期共識鏈中最終出現的唯一原因是因為大部分節點是誠實的且不會將無效交易包含在區塊鏈中。另一方面,防止雙重支付也純粹是共識的。密碼學對此毫無意義,兩個代表雙重支付嘗試的交易從加密的角度來看都是有效的。但是,共識性決定了哪一個最終將在長期共識鏈上。最后,你永遠不會百分之百地確定你感興趣的交易是在共識分支上。但是,這個指數概率保證是相當好的,經過約六次交易,幾乎沒有出錯的機會。

2.4獎勵和工作證明

在上一節中,我們對Bitcoin的共識性算法進行了基本的了解,并解釋了為什么我們相信它安全是一個很好的自覺。但從本章開始的地方回想起來,Bitcoin的分布化部分是技術性機制,部分是聰明的激勵工程。到目前為止,我們主要關注的是技術機制。現在讓我們談談在Bitcoin上發生的激勵工程。

我們要求你早日實現信念的飛躍在假設我們能夠選擇一個隨機節點,也許更成問題的是,至少有50%的時間,這個過程會挑選一個誠實的節點。這種誠實的假設是特別有問題的,如果有資金鼓勵參與者顛覆這個過程,在這種情況下,我們不能真的假定一個節點將是誠實的。那么問題就變成了:我們能給節點一個誠實行為的激勵嗎?

再次考慮確認一次后的雙重支付攻擊(圖2.3)我們可以以某種方式懲罰創建包含雙重支付交易的節點嗎?嗯,這不是真的。正如我們前面提到的,很難知道哪個是道義上合法的交易。但即使我們這樣做了,由于沒有身份,仍然很難懲罰節點。所以反過來,讓我們把問題拋到一邊,問我們可以獎勵那些創建了長期共識鏈最終區塊的節點嗎?那么,再一次,由于這些節點沒有透露他們的真實身份,我們不能把他們的現金郵寄到他們的家庭住址。如果有某種數字貨幣,我們可以用它來代替…你可能會看到這是怎么回事。我們將使用Bitcoin獎勵創建了這些區塊的節點。

我們先暫停一會。我們迄今為止所描述的一切只是一種實現分布式共識的抽象算法,它并不是特定于哪個應用。現在我們要突破這個模式,我們將使用這樣一個事實,即我們通過這種分布式共識過程構建的應用實際上是一種貨幣。具體來說,我們將通過支付這種貨幣單位來鼓勵節點表現誠實的態度。

區塊獎勵 這怎么做?Bitcoin有兩種獨立的激勵機制。第一個是區塊獎勵。根據Bitcoin的規則,創建區塊的節點將在該區塊中包含一個特殊交易。這個交易是一個硬幣創建交易,類似于Scroogecoin中的CreateCoins,節點也可以選擇此交易的收件人地址。當然,該節點通常會選擇屬于自己的地址。你可以獎此視為對節點的支付,以換取在共識鏈上創建區塊的服務。

在撰寫本文時,區塊獎勵的價值固定為25Bitcoin。但實際上,每隔21萬個區塊就減半。根據我們即將看到的區塊創建速度,這意味著大概每四年下降一次。我們現在處于第二個時期。Bitcoin存在的頭四年,區塊獎勵的是50個Bitcoin,現在是25個。它將要保持減半的速率。我們很快就會看到,這有一些有趣的意義。

你可能想知道為什么區塊獎勵誠實的行為。根據我們迄今為止所說的,可能會出現無論節點是提議有效的區塊還是惡意行為,這個節點都會獲得區塊獎勵。但是,這是錯誤的!想一想——這個節點怎么“收集”它的獎勵?只有在有爭議的區塊結束于長期共識分支的情況下才會發生這種情況,因為就像其他所有交易一樣,只有最終達成共識鏈,硬幣創建的交易才會被其他節點接受。這是激勵機制背后的核心理念。這是一個非常微妙但異常強大的技巧。它激勵節點以任何他們認為將獲得其他節點來擴展它們的區塊的方式來表現(活動)。因此,如果大多數網絡遵循最長的有效分支規則,則會激勵所有節點繼續遵循該規則。這是Bitcoin的第一個激勵機制。

我們提到,每隔21萬個區塊(或大約四年),區塊獎勵減半。在圖2.4中,該曲線的斜率要減半。這是一個幾何級數,你可能知道它意味著有一個有限和。它計算出來共計2100萬Bitcoin。

第2章:比特幣如何實現權力下放(去中心化)

圖2.4 區塊獎勵每四年減半,將比特幣的總供應量限制在2100萬

值得注意的是,這是允許創建新比特幣的唯一途徑。沒有其他硬幣產生機制,這就是為什么2100萬是有多少比特幣可以存在的一個最終和總數(至少按照現在的規則)。這個新的區塊創建獎勵實際上將在2140年用完,就像現在一樣。這是否意味著系統將在2140年停止工作,變得不完全,因為節點不再有誠實行為的動機?不完全是。區塊獎勵只是比特幣的兩個激勵機制中的第一個。

交易費用第二種激勵機制被稱為交易費。任何交易的創建者都可以選擇使交易輸出的總值小于其輸入的總值。無論是誰創建的區塊,首先將交易嵌入到區塊鏈中去收集差額,這將扮演交易費用。所以,如果你是一個創建一個包含200個交易區塊的節點,那么所有這200個交易費用的總和將被支付給你放入該區塊的地址。交易費純粹是自愿的,但我們預計,根據對系統的了解,隨著區塊獎勵開始消耗殆盡,對于用戶來說,為了獲得合理的服務質量,包含交易費用將變得越來越重要,幾乎是強制性的。在一定程度上,這已經開始發生了。但目前尚不清楚系統將如何演變;這真的取決于很多還沒有完全解決的游戲理論。這是比特幣公開研究的一個有趣的領域。

我們描述的共識機制仍然存在一些問題。第一個主要的是信念的飛躍,我們要求你采取某種方式,使我們可以選擇一個隨機節點。第二,我們創造了一個新的問題,讓節點參與這些激勵。該系統可能會變得不穩定,因為激勵導致對于所有人都能免費地運行比特幣節點,每一個人都希望去運行來捕獲這些獎勵。第三個是一個更棘手的版本問題,一個對手可能會創建大量的Sybil節點來嘗試顛覆共識過程。

采礦和工作證明事實證明,所有這些問題都是相關的,所有這些問題都有相同的解決方案,這就是所謂的工作證明。工作證明背后的關鍵思想是,我們通過選擇與資源成比例的節點來近似選擇隨機節點,同時我們希望沒有人可以壟斷。例如,如果這個資源是計算能力,那么它就是一個工作系統證明。或者,它可能與貨幣的所有權成比例,這就是所謂的股權證明。雖然它不在比特幣中使用,但股權證明是一個合法的替代模型,它用于其他加密貨幣。我們將在第8章中看到關于股權證明和其他工作證明變體的更多信息。

回到工作證明。讓我們嘗試更好地了解根據計算能力按比例選擇節點的含義。理解這種情況的另一種方法是,我們允許節點通過使用其計算能力相互競爭,這將導致節點以該比例自動選擇。另一種工作證明的觀點是,我們正在適度地創造新的身份。這對身份創造是一種征稅,因此對Sybil的攻擊也是一種負擔。 這可能看起來有點模糊,所以讓我們來看看Bitcoin中使用的工作系統證明的細節,這應該使事情變得更加清晰。

比特幣使用哈希謎題實現工作證明。為了創建一個區塊,建議該區塊的節點需要找到一個數字,或者是隨機數,這樣當你連接了隨機數,先前的哈希和包含該區塊的交易列表,采用這整個字符串的哈希,那么哈希輸出應該是一個數字,它落入一個相對于該哈希函數大得多的輸出空間的相當小的目標空間。我們可以將這樣的目標空間定義為低于某個目標值的任何值。在這種情況下,隨機數必須滿足以下不等式:

H(nonce || prev_hash || tx || tx || ... || tx)

正如我們前面看到的,通常一個區塊包含節點提出的一系列交易。另外,一個區塊還包含一個指向前一個區塊(我們松散地使用哈希指針術語。這個指針在這個上下文中只是一個字符串,因為它不需要告訴我們在哪里找到這個區塊。我們將通過向網絡上的其他對等端查詢該區塊。重要的部分是在請求區塊的其他對等端時哈希作為一個ID,一旦我們獲得了該區塊,我們就可以驗證該區塊)的哈希指針。此外,我們現在要求一個區塊也包含一個隨機數。這個想法是,我們希望適度難的找到滿足這個必須屬性的隨機數,就是將整個區塊哈希在一起,包括該隨機數,這將導致特定類型的輸出。如果哈希函數滿足第1章中的謎題友好的屬性,那么成功解決這個哈希謎題的唯一方法就是一個接一個地嘗試足夠多的隨機數,直到你幸運地得到它。具體地說,如果這個目標空間只占整體輸出空間的百分之一,那么你必須在你得到幸運之前嘗試100個隨機數。實際上,這個目標空間的大小幾乎不到輸出空間的百分之一。它比我們稍后看到的要小得多。

這種哈希謎題和工作證明的概念完全不需要神奇地選擇一個隨機節點。相反,節點一直簡單獨立地競爭,以解決這些散列謎題。有一段時間,其中一個節點將會幸運地找到一個滿足這個屬性的隨機數。那個幸運的節點隨后就提議下一個區塊。這就是系統完全分散化的原因。沒有人決定是哪個節點提議下一個區塊。

難以計算哈希謎題有三個重要的屬性。第一個是他們需要很難計算。我們說適當的難度,你會明白為什么這個隨著時間會有所變化。截止2014年年底,每個區塊的難度級別為10個哈希。換句話說,目標空間的大小只是哈希函數輸出空間大小的1/10。這是一個很大的計算量——例如,對于商用筆記本電腦來說,這是不可能的。因此,只有一些節點甚至勞神地在這個區塊創建過程中競爭。這個反復嘗試和解決這些哈希謎題的過程被稱為比特幣挖礦,我們稱之為參與節點的礦工。盡管技術上任何人都可以稱為礦工,但由于采礦成本高,采礦生態系統中的權力很集中。

參數化成本第二個屬性是我們希望成本是可參數化的,而不是所有時間的固定成本。實現的方式是,比特幣對等網絡中的所有節點將自動重新計算目標,即目標空間的大小,作為每個2016塊的輸出空間的一小部分。他們重新計算目標,使得比特幣網絡中產生的連續區塊之間的平均時間約為10分鐘。平均間隔時間為10分鐘,2016塊區塊的工作時間為兩周。換句話說,目標的重新計算大概每兩周發生一次。

我們來想想這是什么意思。如果你是一個礦工,而且你已經將一定數量的硬件投入比特幣礦業,但整體采礦生態系統正在增長,更多的礦工正在進軍,或者他們正在部署更快的硬件,這意味著在兩個星期的時間里,比預期的區塊要多一些。因此,節點將自動重新調整目標,并且你能夠找到一個區塊需要做的工作量將會增加。所以如果你投入固定的硬件投資,你發現區塊的速度實際上取決于其他礦工在做什么。有一個非常好的公式來捕獲這一點,這就是說,任何給定的礦工Alice將要贏得下一個區塊的概率相當于她控制的全局哈希能力的百分比。這意味著如果Alice的采礦硬件占總哈希能力的大約百分之零點一,那么每1000個區塊中大約會有一個區塊被她發現。

這次調整的目的是什么?為什么要保持這個10分鐘的不變量?原因很簡單。如果區塊之間的距離非常接近,那么會有很多低效率,我們將失去在一個區塊中放置大量交易的優化優勢。對于數字10,沒有什么神奇的,如果你想從10分鐘降到5分鐘,那可能會很好。有很多關于山寨幣或其他加密貨幣應該具有的理想塊延遲有很多討論。但是,盡管對理想的延遲有一些分歧,但每個人都同意應該是一個固定的數額。它不能被允許沒有限制的下降。這就是為什么我們有自動目標重新計算功能的原因。

這種成本函數和工作證明的設置方式使我們能夠重新構建我們的安全假設。在這里,我們終于擺脫了我們要求你早些時候采取的最后的信念飛躍。而不是不知何故地說,大多數甚至沒有身份,也不清楚那意味著什么的節點在上下文中都是誠實的,我們現在可以爽快地聲明,如果大多數礦工遵照協議或者誠實的通過哈希加權,比特幣的很多攻擊是不可行的。這是真的,因為如果大多數被哈希加權的礦工都是誠實的,則提議下一個區塊的競爭將自動確保至少有50%的機會在任何時候提出的下一個區塊來自一個誠實的節點。

邊欄在分布式系統和計算機安全性的研究領域,通常假設有一定百分比的節點是誠實的來表明系統的工作原理,即使其他節點的行為是任意的。這基本上是我們在這里所采取的方法,除了我們通過哈希加權計算節點的多數。原始的比特幣白皮書對這種類型也有分析。

但博弈論領域提供了一個完全不同的,可以說是更為復雜,更為現實的方式來確定系統的行為方式。在這種觀點下,我們不會講節點分解為誠實的和惡意的。相反,我們假設每個節點根據它的獎勵來行動。每個節點選擇一個(隨機)策略以最大化其收益,同時考慮到其他節點的潛在策略。如果協議和激勵設計的很好,那么大多數節點絕大多數時候都遵循這些規則。“誠實”的行為只是許多人的一個策略,我們沒有特別的道德觀念。

在博弈論的觀點中,最大的問題是默認的礦工行為是否是“納什均衡”,也就是說,它是否代表了一個穩定的情況,即礦工不能通過偏離誠實的行為來實現最高的回報。這個問題仍然是存有爭議的,也是一個積極的研究領域。

解決哈希謎題是概率性的,因為沒有人可以預測哪個隨機數能解決哈希謎題。唯一的辦法是一個接一個地嘗試隨機數,希望一個能成功。在數學上,這個過程被稱為伯努利試驗。伯努利試驗是一個具有兩個可能結果的實驗,每個結果發生的概率在連續試驗中是固定的。這里,兩個輸出結果就是哈希是否落在目標中,并假定哈希函數的行為像一個隨機函數,這些輸出結果的概率是固定的。通常,節點嘗試伯努利試驗的許多隨機數,一個離散的概率過程,可以很好地被連續概率過程近似地稱為泊松過程,過程中所發生的事件以恒定的平均速率獨立發生。所有這些的最終結果是,顯示找到下一個區塊的時間的相對可能性的概率密度函數如圖2.5所示。

第2章:比特幣如何實現權力下放(去中心化)

圖2.5發現下一個區塊的時間的概率密度函數

這被稱為指數分布。有一個很小的可能性,如果一個區塊現在被發現,下一個區塊將在幾秒鐘或一分鐘之內被發現。而且還有一些很小的可能性,要花一個較長的時間,比如說一個小時,才能找到下一個區塊。但總的來說,網絡會自動調整難度,以便區塊的間隔時間長期維持在一個平均時間——10分鐘。請注意,圖2.5顯示了整個網絡創建區塊的頻率,不關心哪個礦工真正找到區塊。

如果你是一個礦工,你可能對花多長時間才能找到一個區塊感興趣。這個概率密度函數是怎么樣的?它將具有相同的形狀,但它只是在x軸上將具有不同的刻度。再次,它可以用一個很好的方程表示。

對于特定的礦工:

第2章:比特幣如何實現權力下放(去中心化)

如果你擁有全網絡0.1%的哈希能力,這個方程式告訴我們,你將每隔10000分鐘找到一個區塊,這只需要一個星期。不僅你們之間區塊的平均時間是非常高的,而且你發現的區塊之間的時間差異也將非常高。這有一些重要的后果,我們將在第5章中看到。

簡單的驗證

現在讓我們看看這個工作證明函數的第三個重要屬性,即驗證一個節點是否正確計算了工作證明是微不足道的。即使它需要一個節點,平均來說,10嘗試找到一個使區塊哈希落在目標下的隨機數,該隨機數必須作為區塊的一部分發布。因此,任何其他節點都可以查看區塊內容,將它們全部哈希在一起,并驗證輸出是否小于目標。這是一個相當重要的財產,因為它再次允許我們擺脫集權。我們不需要任何集中的權力來驗證礦工正在做正確的工作。任何節點或任何礦工都可以立即驗證另一個礦工發現的區塊是否符合工作性能證明。

2.5把一切放在一起

開采成本現在讓我們來看看礦業經濟學。我們提到作為一個礦工經營相當昂貴。在目前的困難水平上,找到一個單獨的區塊需要大約10個哈希的計算能力,區塊獎勵大約是25比特幣,這在當前的匯率下是一筆可觀的金額。這些數字可以輕松計算一個人是否有利可圖,我們可以用簡單的語句來獲得這個決定:

假如

挖礦獎勵>挖礦成本

礦工盈利

挖礦獎勵=區塊獎勵 交易費用

挖礦成本=硬件投入 運營成本(電力,冷卻,等等.)

從根本上來說,礦工獲得的礦業獎勵是按照區塊獎勵和交易費來計算的。礦工問自己如何與總支出(硬件和電費)進行比較。

但是,這個簡單方程式有一些復雜。首先,你可能已經注意到,硬件成本是固定成本,而電費是隨時間推移的可變成本。另一個復雜的因素是,礦工獲得的獎勵取決于他們發現區塊的速率,這不僅取決于硬件的能力,還取決于他們的哈希率與全局哈希率的比值。第三個復雜因素是,礦工的成本通常以美元或其他傳統貨幣計價,但他們的報酬是用比特幣計算的。所以這個方程在任何給定的時間都有比特幣匯率的隱藏依賴。最后,到目前為止,我們假設礦工有興趣誠實地遵守協議。但礦工可能會選擇使用其他一些采礦策略,而不是總是試圖延長最長的有效分支。所以這個方程式并沒有抓住礦工可以采用的不同策略的所有細微差別。實際上,分析它是否有意義的是一個不容易回答的復雜的博弈論問題。

在這一點上,我們已經很好地理解了比特幣是如何實現分散化的。現在我們將再回顧一下高層次的觀點,把它們放在一起,以便更好的理解。

讓我們從身份開始吧。據我們所知,參與比特幣協議并不需要現實世界的身份。任何用戶都可以隨時創建任意數量的假名密鑰對。當Alice想在比特幣中支付Bob時,比特幣協議并未提及Alice如何得知Bob的地址。給定這些假名密鑰對以身份,交易基本上是廣播到比特幣對等網絡的消息,這些消息是將硬幣從一個地址傳送到另一個地址的指令。比特幣只是交易輸出,我們將在下一章中更詳細地討論這一點。

邊欄比特幣沒有像美元這樣的固定面額,特別是沒有“1比特幣”的特殊名稱。比特幣只是交易輸出,而在當前的規則中,它們可以具有8位小數位精度的任意值。最小可能值為0.00000001BTC(比特幣),稱為1中本聰。

比特幣對等網絡的目標是將所有新交易和新區塊傳播到所有比特幣對等節點。但是網絡是非常不完善的,并且盡最大努力來傳遞這些信息。系統的安全性不是來自于對等網絡的完善。相反,安全來自于本章大部分章節研究的區塊鏈和共識協議。

當我們說一個交易被包含在區塊鏈中時,我們真正的意思是交易已經取得了大量的確認。在我們充分相信其包含之前,沒有固定的數字來定義需要多少確認是必要的,但是六個是一種常用的啟發式。交易獲得的確認越多,你可以更確定此交易是共識鏈的一部分。經常會有孤兒區塊或區塊不能進入共識鏈。有各種各樣的原因可能導致區塊成為孤兒區塊。該區塊可能包含無效的交易或雙重支付的嘗試。它也可能只是網絡延遲的結果。也就是說,兩個礦工可能只相差幾秒鐘之內找到新的區塊。所以這兩個區塊幾乎同時廣播到網絡上,其中一個將不可避免地被孤立。

最后,我們看看哈希謎題和挖礦。礦工是特殊類型的節點,他們決定在這場創建新區塊的游戲中競爭。只要其他礦工建立在他們的區塊上,他們就會獲得新造幣比特幣(新區塊獎勵)和現有比特幣(交易費)的獎勵。一個微妙但至關重要的一點:說Alice和Bob是兩個不同的礦工,Alice的計算能力是Bob的100倍。這并不意味著Alice將永遠贏得比賽,找到下一個區塊。相反,Alice和Bob找到下一個塊的概率,基本符合100比1的比例。從長遠來看,Bob平均發現區塊的數量是Alice的百分之一。

我們預計礦工通常會處于靠近經濟均衡的地步,在這個意思上,它們在硬件和電力方面的支出大致等于他們獲得的回報。原因是如果礦工一直虧損,她可能會停止采礦。另一方面,對比采礦硬件和電力成本,如果采礦非常有利可圖,則采礦硬件將進入網絡。哈希率的增加將導致難度增加,每個礦工的預期獎勵將會下降。

這種分布式共識的概念滲透到比特幣相當深層次。在傳統貨幣中,共識確實在一定程度上發揮作用。具體來說,由一個共識程序決定了貨幣的匯率。在比特幣的世界也是如此;我們需要對比特幣的價值達成共識。但是在比特幣方面,另外,我們需要對分類賬的狀態達成共識,這就是靠區塊鏈來實現的。換句話說,即使你擁有再多比特幣賬戶,也要達成共識。當我們說Alice擁有一定數額或數量的比特幣時,我們實際上意味著,在比特幣對等網絡,如在區塊鏈中記錄的那樣,考慮所有Alice地址擁有比特幣數量的總和。這是比特幣真實性的本質:比特幣的所有權只不過是其他節點同意給定的一方擁有這些比特幣。

最后,我們需要對系統的規則達成共識,因為偶爾,系統的規則必須改變。比特幣的規則有兩種類型的變化,分別被稱為軟叉和硬叉。我們將把這些差異的討論推遲到后面的章節,我們將詳細討論這些差異。

獲取一個加密的外來物品。另一個微妙的概念是引導。比特幣的三個不同想法之間存在棘手的相互作用:區塊鏈的安全性,采礦生態系統的健康狀況以及貨幣的價值。我們顯然希望區塊鏈可以保證比特幣成為一種可行的貨幣。為了使區塊鏈得到安全,對手必須無法壓倒共識程序。這反過來意味著對手不能創建大量的采礦節點,占據新區塊創建的50%或更多。

但是什么時候會實現呢?一個先決條件是擁有一個健康的采礦生態系統,由大量誠實的協議跟隨節點組成。但是,這是一個前提條件——我們什么時候可以確定很多礦工會把很多的計算能力投入到這個解決哈希謎題的競爭中呢?那么,如果比特幣的匯率相當高,那么他們只可能這樣做,因為他們收到的回報是以比特幣計算的,而他們的支出則是美元。因此,貨幣的價值越高,這些礦工的競爭將會越激烈。

但是什么能確保貨幣的高價值和穩定的價值呢?這只有在一般用戶都信任區塊鏈的安全性的情況下才會發生。如果他們認為網絡可能在任何時候被攻擊者淹沒,那么比特幣作為貨幣就不會有很大的價值。所以在區塊鏈的安全性,健康的采礦生態系統和匯率之間有這種互相依賴、相互依存的關系。

由于這種三向依賴的自然循環,每一種的存在取決于其他方面的存在。當比特幣第一次被創造時,這三個都不存在。除了Nakamoto自己經營采礦軟件之外,沒有其他礦工。比特幣作為一種貨幣沒有很多價值。事實上,這個區塊鏈是不安全的,因為沒有大量的采礦工作,任何人都可以輕而易舉地完成這個過程。

比特幣是如何從沒有任何這些屬性到擁有所有的三個的,這沒有一個簡單的解釋。媒體的關注是故事的一部分——越多人聽到比特幣,他們對采礦的興趣就越大。他們對采礦越感興趣,人們對區塊鏈的安全性就越有信心,因為現在有更多的采礦活動在進行,等等。順便說一句,每個想要成功的新的Altcoin也都必須以某種方式來解決這個由自舉引起的問題。

51%的攻擊最后,讓我們考慮一下如果共識失敗會發生什么,比如,實際上51%的攻擊者控制了Bitcoin網絡中的51%或以上的采礦能力。我們會考慮各種可能的攻擊,看看這些攻擊者實際上可以執行哪些攻擊。

首先,這個攻擊者可以從現有的地址竊取硬幣嗎?你可能已經猜到了,答案是否定的,因為除非你顛覆了加密技術,否則從現有的地址竊取是不可能的。僅僅顛覆共識進程是不夠的。這并不完全明顯。假設51%的攻擊者創建一個無效的區塊,它包含一個無效的交易,代表從攻擊者不會控制的現有地址中竊取Bitcoins,并將其轉移到自己的地址。攻擊者可以假裝這是一個有效的交易,并繼續在這個區塊上建立新的區塊。攻擊者甚至可以成功地使其成為最長的分支。但是其他誠實的節點根本不會接受這個無效交易的區塊,并且將繼續基于他們在網絡中找到的最后一個有效區塊進行挖掘。那么,將會發生的是,出現我們稱之為鏈中的分叉。

現在,從攻擊者試圖花費這些無效硬幣的角度來想象這一點,并將其發送給一些商人比如Bob作為某些商品或服務的支付方式。Bob自己可能運行一個比特幣節點,它將是一個誠實的節點。Bob的節點將拒絕該分支并將其視為無效,因為它包含無效的交易。它是無效的,因為簽名沒有簽出。所以Bob的節點將簡單地忽略最長的分支,因為它是一個無效的分支。因此,顛覆共識是不夠的。你必須顛覆加密技術來竊取比特幣。所以我們得出結論,51%的攻擊者進行這個攻擊是不可能的。

我們應該注意,這只是一個思想實驗。實際上,如果有51%的攻擊跡象,可能會發生的情況是開發人員會注意到這一點,并作出反應。他們將更新Bitcoin軟件,我們可能期望系統的規則(包括對等網絡)可能以某種形式發生變化,從而使此攻擊更難成功。但我們不能很好的進行預測。所以我們在一個發生了51%的攻擊的簡化模型中工作,但除此之外,系統的規則沒有任何變化或調整。

讓我們考慮另一次攻擊。51%的攻擊者可以抑制一些交易嗎?假設有一些用戶,卡羅爾,攻擊者真的不喜歡他。攻擊者知道卡羅爾的一些地址,并希望確保這些地址中的任何一個硬幣都不可能花費掉。那可能嗎?由于他控制了區塊鏈的共識過程,攻擊者可以簡單地拒絕創建任何包含卡羅爾地址的交易的新區塊。攻擊者可以進一步拒絕創建基于包含這些事務的區塊。然而,他不能阻止這些交易被廣播到對等網絡,因為網絡不依賴于區塊鏈或共識,我們假設攻擊者并沒有完全控制網絡。攻擊者無法阻止交易到達大多數節點,因此即使攻擊成功,至少攻擊正在發生也很明顯。

攻擊者可以改變塊獎勵嗎?也就是說,攻擊者可以開始假裝進行區塊獎勵,而不是25比特幣,說100比特幣?這是對系統規則的更改,并且因為攻擊者不能控制所有誠實節點正在運行的Bitcoin軟件的副本,這也是不可能的。這類似于攻擊者不能包括無效交易的原因。其他節點根本無法識別區塊獎勵的增加,因此攻擊者將無法使用它們。

最后,攻擊者能否以某種方式破壞比特幣的信心?好吧,我們來想象會發生什么。如果存在各種各樣的雙重支付嘗試,即節點沒有擴展最長有效分支,以及其他嘗試攻擊的情況,那么人們可能會決定,比特幣不再作為他們可以信任的分散分類帳。人們將會對貨幣失去信心,我們預計比特幣的匯率將會暴跌。事實上,如果單單知道有一個控制51%哈希能力的組織,那么即使攻擊者不一定要試圖發動任何攻擊,人們也可能失去對比特幣的信心。所以這不僅是可能的,但實際上可能的是,任何一個51%的攻擊者都會摧毀對貨幣的信心。事實上,如果51%的襲擊能夠實現,這將是主要的實際威脅。考慮到對手必須投入支出攻擊比特幣并實現51%的大多數,我們所描述的其他攻擊沒有一個從財務角度來看是真的有意義的。

希望在這一點上,你已經真正了解Bitcoin如何實現分權化。你應該對Bitcoin中的身份如何工作,交易如何傳播和驗證,P2P對等網絡在比特幣中的作用,如何使用區塊鏈來實現共識以及如何解決哈希謎題和挖掘工作有一個很好的指導。這些概念為理解比特幣的更細微細節和細微差別提供了堅實的基礎和良好的啟發點,我們將在下一章中看到。

區塊 節點 比特幣 交易 共識
分享到:

1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。


專題報道

主站蜘蛛池模板: 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 螺旋叶片_螺旋叶片成型机_绞龙叶片_莱州源泽机械制造有限公司 | 旋片真空泵_真空泵_水环真空泵_真空机组-深圳恒才机电设备有限公司 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 合肥白癜风医院_合肥治疗白癜风医院_合肥看白癜风医院哪家好_合肥华研白癜风医院 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 比亚迪叉车-比亚迪电动叉车堆垛车托盘车仓储叉车价格多少钱报价 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 节流截止放空阀-不锈钢阀门-气动|电动截止阀-鸿华阀门有限公司 | 云南成考网_云南成人高考报名网 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 中开泵,中开泵厂家,双吸中开泵-山东博二泵业有限公司 | 气动隔膜阀_气动隔膜阀厂家_卫生级隔膜阀价格_浙江浙控阀门有限公司 | 科普仪器菏泽市教育教学仪器总厂| 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 南京泽朗生物科技有限公司| 快速门厂家-快速卷帘门-工业快速门-硬质快速门-西朗门业 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 【黄页88网】-B2B电子商务平台,b2b平台免费发布信息网 | 税筹星_灵活用工平台_企业财务顾问_财税法薪综合服务平台 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 工业洗衣机_工业洗涤设备_上海力净工业洗衣机厂家-洗涤设备首页 bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 空气净化器租赁,空气净化器出租,全国直租_奥司汀净化器租赁 | 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 奥运星-汽车性能网评-提供个性化汽车资讯 | 恒温槽_恒温水槽_恒温水浴槽-上海方瑞仪器有限公司 | 流水线电子称-钰恒-上下限报警电子秤-上海宿衡实业有限公司 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 紧急泄压人孔_防爆阻火器_阻火呼吸阀[河北宏泽石化] |