logo

V神:去中心化的意義| 熊市再讀

瀏覽數

99+

“為什麼去中心化會非常有用?對於這個問題的答案,通常會有以下幾個觀點:

1、容錯:去中心化系統很少會因為某個局部故障而導致整個系統崩潰,因為它依賴於很多獨立工作的組件;

2、阻止攻擊:想要攻擊或操縱去中心系統的成本更高,因為他們基本上沒有敏感薄弱的“中心弱點”,而中心化系統的攻擊成本則要低得多;

3、抵制合謀——去中心化系統參與者們很難合謀勾結在一起,而對於傳統企業和政府領導者而言,他們通常會為了自己的利益互相勾結,最終損害的是公民、客戶、員工和廣大人民。”

 

如果你沒有聽說過“去中心化”這個詞,在幣圈和鏈圈肯定屬於鄙視鏈的最底層,畢竟這個詞是加密經濟領域裡使用最頻繁的一個詞了。不僅如此,“去中心化”也被認為是區塊鏈存在的核心原因。

但同時,這個詞又會讓人覺得丈二和尚摸不著頭腦,畢竟到目前為止,你很難給這詞找到一個明確的定義。在區塊鏈行業裡,不少人投入了數千小時的研究,甚至是數十億美元的算力,目的只是為了實現“去中心化”,然後再不斷保護它、優化它。每次當人們的爭論遇到瓶頸,或是反對某個協議(以及協議擴展)的時候,只需要稱對方是“中心化”,就可以直接讓對方認輸。

然而,如果我們想要了解“去中心化”這個詞的真實意義時,往往又會帶來很多問題。舉個例子,讓我們首先看看下面這三張圖:

圖一:(a)中心化(b)去中心化(c)分佈式網絡

現在,讓我們現萊看看Quora論壇上曾經被熱議的一個問題,分佈式和去中心化有什麼區別?實際上,這個問題有兩個答案,第一個回答基本上撇開了上圖中的含義,而第二個回答則提出了完全不同的主張,其中提到分佈式的意思是指並不是所有交易處理都在同一個地方完成,而去中心化的意思是指沒有一個獨立實體可以控制所有的交易處理。與此同時,在以太坊堆棧交易所上給出的最佳答案中也出現了一個非常相似的圖,只不過把兩個註釋“分佈式”和“去中心化”交換了一下位子,所以現在有必要“去中心化”這個問題做一下澄清說明了。

 01 

三種去中心化類型

實際上,當人們談論軟件去中心化的時候,他們可能談論的是三種不同維度的中心化/去中心化。但有趣的是,如果沒有其他兩個維度做參照,在某些情況下你可能很難發現其中一個就是去中心化的,而且這三種維度其實也都是彼此獨立,分別包括:

1、架構性(去)中心化——比如,一個系統由多少計算機組成?當這個系統在任意一個時間點裡運行時,能夠忍受多少台計算機崩潰,同時還要確保系統不會受到影響?

2、政治性(去)中心化——有多少個體獲組織,對於組成系統的計算機擁有最終控制員?

3、邏輯性(去)中心化——從系統設計的接口和數據結構角度來看,這種維度更像是一個單一的整體對象,或者是一個由無數個體單位所組成的數據集群?一個簡單的判斷方法就是:如果你把這個系統切分成兩部分,而且每個部分裡都包含了生產者和消費者,那麼這兩部分是否能夠繼續作為獨立單元而完整地運轉下去嗎?

現在,我們可以嘗試在一個圖表中將這三個維度表現出來:

值得注意的是,上述圖表中所展示的區域可能略顯粗糙,而且具有很大爭議。但是,如果我們可以嘗試逐個分析一下,或許對於理解用這三個維度來判斷(去)中心化的概念會有一定的幫助。

  • 以傳統企業為例,他們在“政治上”是中心化的(通常一家公司會有一個首席執行官)。同時,傳統企業在架構上也是中心化的(通常一家公司會有一個總部辦公室),而且在邏輯上仍然保持了中心化狀態(也就是說,你無法把一個公司一分為二)。

  • 以大陸法系(Civil Law)為例,大陸法系通常依賴於一個中心化的立法機構,而普通法則是由許多個體法官根據先例制定做出的。此外,雖然大陸法係也有一些架構去中心化,畢竟很多許多法院擁有很大自主立法權,而普通法的去中心化程度更高。但是,這兩類法律在邏輯上都是中心化的(法律就是法律)。

  • 以語言為例,語言在邏輯上是去中心化的。比如愛麗絲和鮑勃之間說的英語,以及查爾斯和大衛之間說的英語不需要完全一致。對於存在的語言而言,不需要任何中心化的基礎設施作為支撐,而且英語的語法規則也不是由任何單一個人創造的,更不會受到哪個組織控制。當然,你可能會想到同樣具有“去中心化”特徵的世界語,世界語最初是由路德維希·柴門霍夫(Ludwig Zamenhof)發明的,但是現在它的功能更像是一個不斷進化的生活化語言,而且不受任何權威機構控制。

  • 和英語一樣,BitTorrent在邏輯上也是去中心化的,內容分發網絡也是如此,但是這裡的問題在於,這些服務和產品都是由一家獨立公司控制的。

  • 從政治角度來看,區塊鏈顯然是去中心的,因為沒有人、或是某個組織可以控制區塊鏈。不僅如此,區塊鏈在架構上也是去中心化的,首先區塊鏈沒有一個非結構中央節點,而且就算某個節點失敗也不會影響整個網絡。但實際情況真是如此嗎?在邏輯上,你會發現區塊鏈確實也具備中心化的特點,因為每個區塊鍊網絡都有一個共識,系統運行的行為也更像是一台獨立的計算機。

實際上,當人們談論區塊鏈各種優勢的時候,他們大多時候所闡述的理論更像是在說——擁有“一個中央數據庫”反而更便捷一些,中心化是合乎邏輯的中心化,而且這種中心化在很多情況下其實都挺好的,雖然來自星際文件系統IPFS的Juan Benet會盡可能地推動去中心化,但邏輯上去中心化系統往往在網絡分區上有更強的生存能力。

架構性中心化通常會導致政治中心化,當然也不是絕對的——因為即便是在民主化得環境裡,政治家也需要在一些實體管理機構內召開會議、並持有或獲取人民的選票,但是這種管理體係並不會影響任何大規模的決策權力。

而在計算機系統裡,如果一個網上社區為了方便而使用中心化論壇,都是基於一種廣泛、統一的社會契約之下的,然而一旦論壇所有者做出一些惡意行為,那麼論壇上的用戶就會轉移到其他論壇上。

邏輯性中心化使得架構性去中心化變得更加困難,但也這種情況也並非完全無法存在——如果你看看去中心化共識如何被證明具有一定可行性,就會明白其中道理了。但是,相比於維護BitTorrent這樣的文件共享系統,架構性去中心化難度可能會更大一些。邏輯性中心化也會使政治性去中心化變得更加困難——因為在邏輯性中心化的系統中,解決爭端也更困難。

 02

去中心化的三個理由

下面一個問題是,為什麼去中心化首先會非常有用?對於這個問題的答案,通常會有以下幾個觀點:

  • 容錯——去中心化系統很少會因為某個局部故障而導致整個系統崩潰,因為它依賴於很多獨立工作的組件。

  • 阻止攻擊——想要攻擊或操縱去中心系統的成本更高,因為他們基本上沒有敏感薄弱的“中心弱點”,而中心化系統的攻擊成本則要低得多。

  • 抵制合謀——去中心化系統參與者們很難合謀勾結在一起,而對於傳統企業和政府領導者而言,他們通常會為了自己的利益互相勾結,最終損害的是公民、客戶、員工和廣大人民。

上述這三點原因都是非常重要且有效的,如果你仔細思考的話,所有三個論點都會導致一些有趣但不同的結論。下面,就讓我們逐一展開,仔細研究一下這三點。

首先是容錯,核心問題其實很簡單。你覺得哪一種故障更容易出現:是十台計算機中一台計算機出現故障,還是有五台計算機同時出現故障?實際上,討論這個問題的答案也沒有什麼意義,因為在許多情況下其實也適用於現實生活,包括噴氣發動機、備用發電機,特別是在醫院、軍事基礎設施、多樣化金融投資組合、以及計算機網絡等領域裡都會面臨上述類似的問題——哪一種“故障”更容易出現?

然而去中心化系統所具備的這種容錯能力雖然比較有效且非常重要,但在某些情況下,它甚至不如一個簡單的數學模型顯得有用。這裡的問題在於一個所謂“共模故障”的原因。相比於一個噴氣發動機,四個噴氣發動機確實更不容易出現故障,但問題是,假如這四台噴氣發動機都由同一家製造廠生產的,或者是由同一個不負責任的員工加工的,那麼結果又會是什麼樣呢?

區塊鍊是否能夠設法防止共模故障出現呢?也許可以,但也許也不行。下面再讓我們考慮以下幾種情況:

  • 區塊鏈中所有節點都運行同一種客戶端軟件,並且這個客戶端軟件已經被證明存在漏洞(bug);

  • 區塊鏈中所有節點都運行同一種客戶端軟件,並且這個客戶端軟件的開發團隊存在互相勾結合謀的情況;

  • 提議升級協議的研發團隊存在互相勾結合謀的情況,甚至有腐敗問題;

  • 在一個基於工作量認證共識算法的區塊鏈中,70%的礦工都來自於同一個國家,而這個國家政府以維護國家安全為理由,把所有礦場都接管了;

  • 大多數採礦硬件設備都來自於同一家公司,而這家公司可能已經受到指使,在其推出的設備裡強制部署了後門軟件,導致所有加密貨幣挖礦硬件設備可以被隨意關閉;

  • 在一個基於權益認證共識算法的區塊鏈中,70%的代幣都是由同一個加密貨幣交易所持有。

另一方面,如果從“容錯去中心化”這一整體觀點去思考問題的話,你需要考慮到涉及相關問題的各個方面,而且這些問題需要盡可能地被減到最少。一些自然而然產生的結論也非常明顯,比如:

  • 擁有多個競爭執行是至關重要的;

  • 對於協議升級背後的技術考量和認識,必須要做到民主化,以便讓更多人能夠一起參與到研究、討論和批評活動中,特別是涉及到一些有明顯的協議變化等問題時;

  • 核心開發人員和研究人員必須要來自多個不同公司或組織(或者,至少,其中大多數都是志願者);

  • 挖礦算法的設計思路,​​必須要遵循最低程度的中心化;

  • 理想情況下,我們使用權益認證共識來擺脫“硬件中心化”風險(但是,我們也應該謹慎對待由於權益認證而出現的新風險)。

然而需要注意的是,當處於容錯要求的初級階段時,我們處理問題往往會側重於架構性去中心化。不過,一旦你開始考慮更長遠的系統升級和發展時的容錯性,那麼政治性去中心化也是非常重要的。

現在,讓我們再來看看去中心化抵禦攻擊的能力。在一些純粹的經濟模型之中,去中心化其實並不那麼重要。舉個例子,如果你創建了一個協議,只要發生51%的攻擊,驗證者就肯定會損失5000萬美元,那麼此事,這個驗證者是被一家公司、還是被一百家公司控制都已經不那麼重要了。此時,這個“5000萬美元”其實就是確保這個協議安全穩定運行的邊際成本。實際上,如果從博弈論的角度來看,中心化系統甚至可以最大化這種安全邊際成本的概念,而最早出現的區塊鏈交易選擇模型,其實也反映出了這一想法,因為礦工和區塊提議者會將交易打包到區塊鏈中,這也算是一種非常快速運轉的中心化過程。

不過,一旦你採用了更豐富的經濟模型,特別是如果這個經濟模型裡存在脅迫的可能(或者出現稍微溫情一點的事情:比如針對節點的DoS攻擊),去中心化就會變得更加重要。再舉個例子,如果有壞人威脅到一個人的什麼,那麼上述“5000萬美元”對他們來說就更加無關緊要了。但是如果把這個“5000萬美元”去中心化到十個人中,那麼壞人如果要威脅勒索的話,就需要勒索威脅十個人,並且還要同時完成勒索這項“工作”。一般來說,現代社會裡有一個特點就是攻擊防禦的不對稱性,而在這方面攻擊者反而常更有優勢。比如,一棟價值1000萬美元的高層建築,摧毀它的成本可能還不到10萬美元。不過,這種防禦攻擊的槓桿常常是次線性的,也就是說,如果花費1000萬美元的建築能夠用10萬美元的成本被摧毀,而100萬美元的建築可能需要3萬美元的成本被摧毀,最終,建築成本更低的建築可能需要更高的成本才能被摧毀。

不過,這個推理還會導致出現什麼問題呢?

第一,儘管支持工作量認證,但顯然權益認證機制是更加安全的,因為計算機硬件容易被監測、調節和攻擊,而代幣相比於硬件設備更容易被隱藏;

第二,開發區塊鏈技術的團隊可以分佈在世界各地,分佈的範圍越廣就越有利,包括地理位置分佈;

第三,這也意味著在設計共識協議的時候,需要同時考慮經濟模型和容錯模型。

最後,讓我們再來看看上述三個原因中最複雜的一個:抵制合謀。事實上,合謀這個概念本身是很難界定的,能夠驗證所謂“合謀”唯一真正有效的方法,就是給出一個簡單的共識:合謀就是一種每個人都不喜歡的協調方式。在現實生活中的很多情況,每個人之間的完美協調其實都是理想話的,但是當某一組人可以協調,而其他人無法協調,此時就會非常危險了。

一個簡單的例子是反托拉斯法——為了讓市場一方的參與者更加難以走到一起,並且像壟斷者一樣形式,並損害另一方市場和一般社會福利來獲得超額利潤。反壟斷法的目的,就是要在市場運行中設置監管障礙。另一個例子是反積極協調規定,主要用在美國總統候選人和超級政治行動委員會上,防止在總統候選的時候互相勾結合謀。但是這些規則在實踐證明中其實是很難被執行的。還有一些更微不足道的例子,就是在某些國際象棋比賽的時候,會有一個規則,用來防止兩名棋手互相和對方進行比賽來試圖幫助其中一名棋手獲得更多積分。所以你會發現,無論從何種角度去看,試圖防止複雜系統內出現勾結合謀問題的嘗試已經很多了。

在區塊鏈協議的情況下,共識安全背後的數學和經濟推理通常非常依賴於非協調選擇模型,或者假設“遊戲”是由許多獨立作出決策的小型參與者組成的。如果任何一個“玩家”在工作量認證系統中獲得超過三分之一的採礦權,他們就可以通過私自採礦獲得巨大利潤。但是,我們真的可以說,當90%的比特幣網絡的挖礦能力足夠協調,這種不協調的選擇模式還有存在的必要嗎?

不僅如此,區塊鏈的倡議者始終覺得區塊鏈的結構更安全,因為它們不能隨意更改規則。但如果軟件和協議的開發者都服務於同一家公司、或者同屬於同一個家族、甚至都在同一個辦公大樓上班,又會發生些什麼呢?而且,在大多數情況下,很多問題其實是很難防範的。總之,這些系統不應該像自私自利的單一壟斷者那樣被應用。因此,如果區塊鏈更加不協調的話,每個人都可以提出讓區塊鏈更安全的要求。

但是,這其中還存在著一個根本性矛盾。包括以太坊在內的很多社區之所以存在,是因為它們擁有一個強大的社區精神,而且在執行、發布和激活硬分叉上具備快速協調的優勢,基本上能在六天內快速完成協調實施、發布和激活硬分叉以修復協議中拒絕服務的問題。但是,我們需要思考的問題是,應該如何去培育和改善這種良好的協調關係,同時又要防範那些糟糕的協調關係,防止它們不小心演變成“互相勾結合謀” 。舉個例子,假如礦工們試圖通過互相合謀反復進行51%攻擊的時候,我們需要作出什麼樣的協調反應?

對於上面這個問題,實際上有三種解決方案可以回答:

  • 不要嘗試去減少勾結合謀,而是要去構建一個能夠抵制勾結合謀的協議;

  • 嘗試找到一個令人滿意的媒介,讓協議本身俱有有充分的協調關係,繼而讓協議獲得更好地發展前景且不會被輕易攻擊;

  • 嘗試區分有益的協調和有害的協調,盡量讓有益的協調更容易執行,讓有害的協調更難實現。

第一種解決方案其實也是構成了以太坊Casper的設計理念,但它本身在很多方面仍然不太充分,因為僅僅依靠經濟學的方式是不能解決去中心化的其他兩種類型的問題;第二種解決方案則更加難以被明確的設計出來,而且從長遠來看,這種解決方案也經常會發生意外。比如,比特幣的核心開發人員一般說英語,而礦工一般說中文,這樣導致在無意中創造出了一種類似“兩院制”的治理機制,一方面它讓彼此之間的勾結變得很困難,另一方面則減少了共模故障的風險,因為英語和華語社區由於距離和交流困難至少會有所分開,因此不太可能犯同樣的錯誤。

第三種解決方案則是一個社會性的挑戰,其中涉及的問題可能包括:

  • 社會干預措施,提升參與者對整個區塊鏈社區的忠誠度,以取代或遏制市場其他參與者對彼此直接產生影響忠誠度的可能性;

  • 在同一背景下,促進不同市場參與者進行溝通,以減少驗證者、開發人員、或是礦工開始審視自己是某一“階層”。這樣的話,他們也就不會為了保護自己對其他“階層”的利益,而對抗其他“階層”;

  • 在設計協議的時候,需要減少驗證者和礦工參與“一對一特殊關係”的激烈,同樣也要避免出現中心化中繼網絡和其他類似的超級協議機制;

  • 明確規範協議應具備的基本屬性有哪些,不應該做什麼類型的事情,或者哪些事情只能在非常極端的情況下才能做。

這三種類型的去中心化可能是最難實現的,因此出現一些權衡也是不可避免的。也許,最好的解決方案只能依賴於去中心化程度最高的一個群體:協議的用戶。