Consensus

什麼是“共識”?

  • August 15, 2019

我真的很難理解比特幣/區塊鏈領域中的一個特定術語,如果有人能夠給出一些清晰的說明,我將不勝感激。我一直在做很多閱讀試圖弄清楚這一點,但是我閱讀的越多,它似乎變得越混亂。

基本上,它涉及共識和治理。

據我了解,對於區塊鏈技術,我們有以下幾點:

  • 礦工之間需要就添加到鏈中的“下一個交易塊”是什麼(最長的鏈成為網路中的有效鏈)達成“共識”。
  • 關於使用哪個版本的協議需要“共識”(導致硬分叉的分歧)

關於上述內容,我的主要問題是它們都被稱為“共識”還是有將兩者分開的術語?(每當我打開一篇關於治理和共識的新文章時,我都必須閱讀其中的一半來弄清楚作者所指的是哪種類型的“共識”。

因此,治理是否會是有權將更改合併到主要比特幣程式碼庫的開發人員?

對於給定的網路,共識意味著在所有參與者之間實現全域狀態的一致視圖。對於比特幣,這意味著所有節點/錢包都應該考慮相同的 utxo 集。對於乙太坊,它涉及所有參與者都具有相同的狀態樹。其他網路存在較小的其他變化。

挖礦和協議版本只是實現這種共識的簡單手段——礦工被激勵只選擇有效交易(花費未使用的 utxos 並滿足其他有效性要求的交易),因為如果他們產生無效交易,他們的區塊將被網路中的其他參與者丟棄堵塞。

協議版本更寬容一些。一方面,您擁有節點用來交換塊、交易和對等數據的字面 Bitcoin Wire 協議。對此的更改通常是向後兼容的,因此您可以安全地在主網上執行稍舊的版本bitcoind而不會遇到任何問題。

協議也可以指比特幣本身的概念,包括什麼是有效交易、是否啟用隔離見證等。這些可能是向後不兼容的更改,需要硬分叉,因此需要所有使用者更新他們的軟體,或向後兼容,允許某些舊版本繼續工作。

因此,簡而言之,我會說共識正在實現一致的世界觀,而挖礦和協議版本是幫助我們所有人就該觀點達成一致的實施細節。

治理更多地歸結為社會行為,而不是對項目的字面控制——如果比特幣核心開發人員明天變得流氓,並添加了將所有區塊獎勵的 50% 分配給他們的程式碼,它可能會導致快速的反抗,以及社區中的其他人將從該更改之前的某個點分叉比特幣。因此,即使一小部分人目前控制著哪些程式碼進入比特幣,他們也不是絕對權威,社區可能會選擇遵循不同的比特幣理念。

Raghav 的回答非常簡潔和全面,但我想我可以詳細說明最後一點(重要!):

因此,治理是否會是有權將更改合併到主要比特幣程式碼庫的開發人員?

自創世區塊以來的任何給定時間點,比特幣網路的節點都對網路的狀態達成共識。每個節點的程式碼都規定了節點認為什麼是有效的,並且通過遵循這些有效性規則,網路節點在任何給定時間都獨立地保持對網路狀態的共識。

因此,正如您已經意識到的那樣,程式碼很重要:對其進行更改可能會改變網路上被視為有效/無效的行為。那麼誰是開發者,他們遵循什麼樣的治理體系?

在這一點上,重要的是要理解比特幣網路是由在任何給定時間點執行的許多獨立節點定義的,而不是由某個 github 儲存庫定義的。這意味著雖然Github 可能是比特幣項目的目前所在地,如果有人將一個有爭議的更改合併到程式碼庫中(即大多數使用者不同意的更改),那麼我們應該期望大多數使用者根本不會更新他們的軟體,因此規則更改不會在網路上製定。比特幣軟體通常不是為自動更新而建構的,因為此功能將使開發人員對網路規則進行不必要的控制。事實上,我認為你很難找到了解比特幣的人推薦安裝包含自動更新(即通過應用商店、自動包管理器等)的節點軟體,通常情況正好相反(從原始碼建構,檢查pgp 簽名等)。

“不信,驗證!” 是比特幣人的流行說法,它是一種體現在軟體設計、開發和分發中的哲學。任何人都可以提議對程式碼庫進行更改,然後在公共論壇上就更改的優點進行辯論。採用了極高水平的審查,通過這些機制,比特幣網路已經變得非常有彈性來應對變化。

這一切的關鍵在於比特幣的“治理”來自自下而上(個人使用者獨立定義規則),而不是自上而下(管理員定義規則)。

我把“治理”放在引號裡是因為政府的定義是:行使權力;方向; 控制; 管理,但比特幣網路沒有這樣的地位。比特幣似乎更像是一種公地,不屬於任何人,但所有人都可以使用。

在更廣泛的“區塊鏈世界”中,治理是一個更相關的話題,因為幾乎所有項目都集中在某個公司或團隊周圍,這一事實首先阻止了它們成為貨幣公地(這是其中一個使比特幣變得有趣的關鍵點,imo)。

引用自:https://bitcoin.stackexchange.com/questions/89714