作者:Kalle Rosenbaum & Linnéa Rosenbaum

本章節分析了什麼是 “去中心化”、為什麼它對比特幣的功能如此關鍵。我們區分了 “礦工的去中心化” 與 “全節點的去中心化”,還討論了它們給 “審查抗性”(比特幣最核心的屬性之一)帶來了什麼。隨後,這些討論轉移到理解 “中立性” —— 或者說面向用戶、礦工和開發者的 “免許可行” ——是任何去中心化系統的必要屬性。最後,我們也提到了理解比特幣這樣的去中心化系統的難度,並提出了一些可以幫助你理解它的思維模型。
一個沒有任何中心控制點的系統就被稱為是 “ 去中心化的 ”。比特幣被設計成避免擁有一箇中心控制點,或者更準確地說,一箇中心審查點。去中心化是實現 審查抗性 的工具。
比特幣的去中心化有兩個主要的方面:礦工去中心化和全節點去中心化。“礦工去中心化” 指的是一個事實:交易的處理既不是通過任何一種中心實體來執行的,也不是靠這樣的中心實體來協調的。“全節點去中心化” 指的是另一個事實:區塊(礦工輸出的數據)的驗證,會在網絡的邊緣完成,也即最終由網絡的用戶完成,而非由少數受信任的權威機構來完成。
1.1 礦工去中心化
在比特幣之前,也有人嘗試過創造電子貨幣,但它們中的絕大部分都因為缺乏治理去中心化和審查抗性而失敗。
在比特幣中,礦工去中心化意味著 交易的排序 不是由任何一個單一實體或固定的團體來完成的,而是由所有希望參與交易排序的行動者集體完成的;這樣的礦工集體是動態的用戶集合。任何人都可以按自己的意願加入或離開。這種屬性讓比特幣具備審查抗性。
如果比特幣是中心化的,在想要審查它的人(比如政府)面前它就有漏洞。它將跟以往的創建電子貨幣的嘗試遭遇相同的命運。在一篇名為 “使用錨定的側鏈開啟區塊鏈創新” 的論文的引言部分,作者解釋了為什麼更早的電子貨幣在敵意環境中無法生存(亦見本書第六章):
David Chaum 在 1983 年提出 digital cash(電子現金)作一個研究課題,其設定是信任一個中心服務器來防止 “重複花費”[Cha83] 。為了緩解個人對這個受信任的中心參與者的隱私風險,也是為了強制執行可互換性,Chaum 引入了盲簽名,它可供了一種密碼學工具來防止這個中心化服務商的簽名(本身就代表錢幣)被關聯起來,同時依然允許這個中心化服務商防止重複花費。這種對中心化服務器的依賴就變成了 digital cash 的阿喀琉斯之踵 [Gri99] 。雖然可以通過將單箇中心服務商的簽名替換成多個簽名人的閾值簽名,從而將這種單點故障分散化,但對於可審計性來說,能夠識別並保證簽名人不是同一個人,依然是重要的。這依然讓整個系統在故障面前脆弱,因為每個簽名人都可能出故障,或者被製造出故障,一個接一個地出錯。
—— 多位作者,《使用錨定的側鏈開啟區塊鏈創新》(2014)
顯然,使用一箇中心化的服務器來排序交易並不是一個可行的選擇,因為高度的審查風險。即使將中心化服務商替換成一個固定的 N 個服務商的聯盟、要求其中至少 M 個服務商來批准一次排序,依然會有困難。問題將在實質上轉變成:用戶必須一致認可這 N 為服務商的集合,以及,在出現惡意服務商時,用戶們如何不依賴於一箇中心權威來更換服務商。
我們再設想一下,如果比特幣是可以審查的,那會怎麼樣。審查者將迫使用戶報告自己的身份、自己的錢從哪兒來、買了東西,否則他的交易就無法進入區塊鏈。
同樣地,缺乏審查抗性也讓審查者能夠迫使用戶接受新的系統規則。比如說,他們可以施加一項變更,讓他們可以膨脹貨幣供應量,從而讓他們自己變富。在這樣的事件中,驗證區塊的用戶可以有三種應對選擇:
- 接受:接受這項變更、在他們的全節點中採用這項新規則。
- 拒絕:拒絕這一變更;這將讓他們留在一個不再處理交易的系統中,因為審查者的區塊會被這個用戶的全節點當成無效的。
- 遷移:提名一個新的中心控制點;所有的用戶必須搞清楚如何協作、如何對這個新的中心控制點達成一致一眼。即使他們這一次成功了,相同的問題也可能在未來再一次上演,因為整個系統跟原來一樣是可以審查的。
沒有任何一個選項能讓用戶受益。
通過去中心化來實現審查抗性,正是讓比特幣有別於其它貨幣系統的因素,但因為 “ 重複花費問題 ”,這並不是一件容易做到的使。重複花費問題是說,要保證一個人無法重複花費自己的同一個錢幣;許多人都曾認為,這個問題是無法用去中心化的方式解決的。中本聰(Satoshi Nakamoto)在他的《比特幣白皮書》中討論瞭如何解決重複花費問題:
在本文中,我們為重複花費問題提出了一種解決方案:使用一種點對點的、去中心化的時間戳服務器,來為交易的時間順序生成計算性證據。
—— 中本聰,《比特幣:一種點對點的電子現金系統》(2008)
在這裡,他使用了尤為奇怪的短語 “點對點的、去中心化的時間戳服務器”。關鍵詞其實是 “ 去中心化的 ”,在這個語境下意味著沒有單一控制點。然後,中本聰解釋了為什麼工作量證明是解決方案。迄今為止,還沒有人的解釋比 Gregory Maxwell 在 Reddit 上的更好;在那個場合,有人提議要限制礦工的哈希算力來避免可能的 51% 攻擊:
比特幣這樣的去中心化系統使用公開的選舉。但你無法在去中心化系統中讓 “人們” 擁有選票,因為這將要求一箇中心化的參與者允許人們來投票。相反,比特幣將計算能力當作選票,因為計算能力無需任何中心化第三方的幫助就能夠驗證。
—— Gregory Maxwell,r/Bitcoin subreddit(2019)
這篇帖子也解釋了去中心化的比特幣網絡為什麼能夠通過使用工作量證明來對交易的排序達成共識。然後,他作出結論,相比於並不關心也不理解比特幣的去中心化屬性的人,51% 攻擊並不特別值得擔心:
對於比特幣來說,一個大得多的風險是,公眾並不理解、也不關心、更不會保護去中心化屬性;而去中心化才是比特幣對比其中心化的替代品真正有價值的地方。
—— Gregory Maxwell,r/Bitcoin subreddit(2019)
這個結論很重要。如果人們並不保護比特幣的去中心化 —— 它是審查抗性的代理 —— 比特幣可能會成為中心化權力的受害者,直到它變得非常中心化、審查成為可能。到了那一刻,比特幣的絕大部分價值(甚至是全部價值)就將不復存在。這將我們帶到下一個話題:全節點的去中心化。
1.2 全節點去中心化
在上文中,我們主要討論的是礦工去中心化,以及中心化的礦工將允許審查。但去中心化還有另一方面,叫做 “ 全節點的去中心化 ”。
全節點去中心化的重要性與 “免信任性” 有關(亦見本書第二章)。假設一個用戶因為(比如說)運營成本的急劇升高而停止運行自己的全節點。此後,他們將不得不用其它方式來跟比特幣網絡交行是,可能是使用網頁版錢包,或者是輕量級錢包,都在一定程度上要求用戶信任這些服務的供應商。用戶也會從自己直接強制執行網絡公式規則,變成信任其他人會執行。現在,假設絕大部分用戶都將共識規則的強制執行委託給了一個受信任的主體。這時候,網絡可能會迅速陷入中心化,規則也可能會被陰謀的惡意參與者改變。
在 Bitcoin Magazine 的一篇文章中, Aaron van Wirdum 訪談了一些比特幣開發者,詢問他們對去中心化和提高比特幣的區塊體積上限的風險的看法。這樣的討論在 2014 至 2017 年期間是熱門的話題,許多人都在主張提高區塊體積上限來提高交易的吞吐量。
一種反對提高區塊體積的有力理由是,這會增加驗證區塊的成本(亦見本書關於可擴展性的章節)。如果驗證成本提升,它就會讓一些用戶停止運行自己的全節點。而這又會反過來,讓更多人無法以免信任的方式使用比特幣。文章引用 Pieter Wuille 的話解釋了全節點中心化的風險:
如果大量公司都運行了自己的全節點,那麼,想在比特幣網絡中實現另一套規則集,就必須說服他們所有人。換句話說,區塊驗證的去中心話,讓共識規則具有了重量。但如果全節點的數量變得非常稀少,比如說因為每個人都使用同樣的網頁端錢包、交易所和 SPV 錢包或者移動端錢包,管制就成為了可能。而且,如果權威機構可以管制共識規則,那也意味著他們可以改變一切讓比特幣成為比特幣的東西,甚至包括 2100 萬 BTC 的數量限制。
—— Pieter Wuille,《去中心化主義者的觀點》(2015)
就是這樣。比特幣的用戶應該運行自己的全節點,以阻止監管者和大公司嘗試改變比特幣的共識規則。
1.3 中立性
比特幣是中立的,或者,用人們常見的說法:它是免許可的。這意思是說,比特幣不在乎你是誰、你用它來做什麼。
比特幣是中立的,這是一個優點,也是它能夠工作的唯一方式。如果它被某一個組織控制了,那它就只是另一種虛擬物品,我就不會有任何興趣了。
—— wumpus 在 freenode 在線聊天中(添加了標點符號),#bitcoin-core-dev 2012-04-04T17:34:04 UTC
只要你遵守它的規則,你就可以自由地用它來做你想做的事,無需向任何人請求許可。這包括:挖礦、交易、在比特幣上 開發協議和服務。
- 如果挖礦需要申請許可,我們就需要一箇中心權威來選擇誰能挖礦。這很有可能會讓礦工不得不簽訂法律合同、同意根據這個中心權威的心血來潮來審查交易,而這就已經違背了挖礦的初衷。
- 如果人們用比特幣來交易需要提供個人信息、申明自己的交易的目的,或者,如不申明表要證明自己的交易是值得的,那我們就需要一箇中心權威來批准用戶和交易。再說一次,這樣又會帶來審查和排外。
- 如果開發者需要請求許可才能在比特幣上開發協議,那就只有中心開發者委員會所批准的協議才會得到開發。由於政府的介入,這將不可避免會排除所有保護隱私的協議以及所有提升去中心化的嘗試。
在所有層面上,嘗試對誰能使用比特幣、出於什麼目的而使用比特幣的限制,都會傷害比特幣,使之不再符合其價值主張。
Pieter Wuille 在 Stack Exchange 網站上回答了一個關於區塊鏈與常規的數據庫有何關係的問題。他解釋了免許可性是符合通過使用工作量證明以及經濟激勵來實現的。他的結論是:
使用工作量證明(PoW)這樣的免信任的共識算法,確實給了你一些別的算法無法給你的東西(免信任的參與權,意味著沒有參與者團體能夠審查你的變更),但也帶來了一項高昂的成本,它的經濟假設使之幾乎只適合於定義自己的密碼貨幣。這可能也是為數不多真正使用過它的地方。
—— Pieter Wuille,Stack Exchange (2019)
他解釋道,為了實現免信任性,這個系統很可能需要自己的貨幣,從而 “限制了其用途,幾乎只剩密碼貨幣”。這是因為免信任的參與,或者說挖礦,需要系統自身有內置的經濟激勵。
1.4 理解去中心化
比特幣的一個引人注目的方面是,人們很難理解它不是由誰來控制的。比特幣中沒有委員會,也沒有執行官。Gregory Maxwell,在另一個論壇帖子中,以一種有趣的方式,將它與英語作比:
許多人都要艱難跋涉一段時間才能理解自治的系統,但他們生活中也有這樣的東西,比如英語 —— 只是人們當它是理所當然的,從來沒有將它理解成一個系統。他們被困在一種思維方式中,以為他們思考的所有 “東西” 都有一個權威來控制它。
比特幣沒有目標。許多采用它的人都是出於自己的自由意志而推動它,而他們為什麼要這樣做則純粹是他們自己的事。執迷於權威思想的人可能會以為這全部都是出於某個比特幣權威的操縱,但這樣的權威並不存在。
—— Gregory Maxwell,r/Bitcoin subreddit (2022)
比特幣通過去中心而得以生存的方式,類似於在自然界的許多物種中形成的非凡集體智慧。計算機科學家 Radhika Nagpal 曾經在一個 Ted 演講中講到魚群的集體行動,以及科學家們如何使用機器人來模仿它們。

- 圖 1. 魚群沒有領導。 -
其次,也是一件我認為最了不起的事情:我們知道魚群是沒有領導的。相反,這樣令人難以置信的集體思維活動,完全是從一條小魚與另一條小魚的互動中出現的。一定程度上,正是這些相鄰的小魚之間互動,或者說它們之間的約會規則,使得它們的集體活動成為現實。
——Radhika Nagpal,《智能機器可以從魚群中學到什麼》 (2017)
她指出,不論自然的還是人工的,許多系統都能在沒有領導的模式下工作,而且它們是強大且有韌性的。每一個個體都只跟自己鄰接的個體交互,就這樣集合在一起形成了巨大的東西。
不論你怎麼理解比特幣,它的去中心化屬性使得它難以被控制。比特幣存在,對此你無計可施。它是值得你學習的東西,不是等待你否定的東西。
1.5 結論
我們區分了全節點去中心化和礦工去中心化。礦工去中心化是一種實現審查抗性的工具,而全節點去中心化則讓網絡的共識規則難以脫離用戶的廣泛支持而變更。
比特幣的去中心化屬性允許面向開發者、用戶和礦工的中立性。任何人都能自由參與,無需請求許可。
去中心化系統可能難以理解,但有一些思維模型可以幫助你,比如英語,比如魚群。



