從比特幣到 Polkadot

買賣虛擬貨幣

比特幣都解決了什麼問題?

要理解為什麼容錯性對區塊鏈如此重要,有必要解釋一下比特幣解決的兩個問題 (雙重支付和貨幣制造的中心化)。

換句話說,比特幣為了防止被濫發,以一種可預測、透明且去中心化的方式製造貨幣,透過確保整個交易歷史的一致 (共識),用共識演算法來管理髮送和製造貨幣的機制。

在區塊鏈技術時代,共識演算法並不新鮮,那麼為什麼比特幣的創新度如此之高呢: 因為在公有的無許可網路中,即使可能有惡意行為者出現,比特幣也可以達成共識

比特幣的共識演算法

眾所周知,像比特幣這種工作量證明 (PoW) 的區塊鏈,節點透過嘗試贏得建立新區塊所產生的新幣獎勵,來加強網路安全。該獎勵提供了一種激勵機制,使我們可以在儘可能快地創造新區塊的同時始終表現公正

獲勝的關鍵在於創造新區塊需要解出一個唯一且計算困難的數學難題。該題的難度從根本上限制了新區塊產生的速度,且答案的唯一性可以使網路識別獲勝節點 (識別他們的地址)。惡意行為雖然不會受到懲罰,但是人們會因不誠實行為所帶來的機會成本而不去作惡

存在一個問題,節點之間的通訊不是即時的,因此處於網路中不同地理區域的節點可能會收到自稱已解出難題的不同區塊 (網路分割/分叉)。兩個不同的節點 (礦工) 有可能碰巧都合法地找到難題的解,但是由於不是全網即時通訊,網路中的不同區域就會選擇基於不同的獲勝區塊來(臨時) 構建區塊鏈。這會導致臨時分叉,但由於總有新區塊被新增到每個分支上,最終總會出現一個較長的分支

以最長的區塊分支為標準實際上是比特幣為實現共識而制定的規則,該規則被稱為最長鏈規則。

較短分支上的區塊則會被丟棄,並且所有不在主分支上的交易最終都會被新增到主分支的區塊中。請注意,非法交易 (例如那些試圖進行雙重支付的交易) 不會被包含在構成最長鏈的區塊中。包含此類交易的區塊也將被丟棄,因為任何“貨幣”都只能被花費一次。這裡需要注意的是,大多數節點都是誠實的 (至少51%),並且這些節點不會試圖破壞協議。

從理論上講,透過擁有更強的挖礦算力可以創造一條新的最長鏈。這對於靠近“鏈頭部”的區塊 (最新區塊) 來說,風險是最大的。區塊在整個鏈上的深度越深,它被逆轉的可能性就越小。

這說明,PoW 鏈上的區塊總是會有被逆轉的可能,那麼這些區塊中的交易也就可能都不會發生。在一條被惡意創造的鏈中,不應當假設交易會被儲存進新區塊中,原因如上所述。

比特幣白皮書中建議,等待 6 個區塊的時間便足以確保交易不會被拒絕,因為在那時,區塊被丟棄的可能性是非常小的。我們可以從這裡樹立起對“最終確定性”的認識:無法被逆轉的區塊可以被稱作是”最終確定的“。在比特幣及其他 PoW 區塊鏈中,最終確定性並不完美,因為區塊有被逆轉的可能。

權益證明區塊鏈

還應該注意的是,一些權益證明 (PoS) 區塊鏈的執行方式與比特幣類似。大多數 PoS 鏈都用區塊選舉代替挖礦。類似 PoW 中讓獲勝礦工建立下個區塊,這類 PoS 則由隨機選擇的節點 (“領袖”) 生產區塊。

被選中成為”領袖“的概率是由權益數量決定的。這個理念是,幣的持有量越多,說明更希望區塊鏈取得成功,因此這樣的節點將獲得更大可能性來生產下個區塊。

NXT 是最早的 PoS 鏈之一,它使用這種隨機領袖的方法生產區塊。NXT 的共識與比特幣相同:生產的新區塊都會被新增到最長鏈上。透過遵守這個規則,任何分叉問題都會被解決,節點則繼續在最長鏈上生產區塊。

容錯性

當參與者執行違反協議的操作時,就會出現錯誤。對區塊鏈來說,因為可能會有惡意行為者試圖利用協議的弱點,我們希望協議可以抵禦任意故障。任何可抵禦任意故障的協議同樣也可以防範隨機故障及惡意行為者。

即使有一小部分參與者的行為表現異常,拜占庭容錯 (BFT) 協議也能正常工作。行為不當的節點可能發生了意外故障或者是惡意的。當然,這裡假設大多數參與者都在正確遵守協議。這種觀點是在一篇名為“拜占庭將軍問題”的研究論文中提到的。該問題討論的是多個參與者如何就一個簡單的資訊達成一致的問題。

當在拜占庭協議中達成共識時,商定好的結果一定是正確的。也就是說,商定的結果可以被看作是確定性的正確,而不是概率性的。當用於區塊鏈時,拜占庭演算法保證了交易的最終確定性。這意味著一旦在區塊中達成協議,區塊就會變得最終確定,其中的交易也不會被逆轉。

很明顯,這與比特幣和其他 PoW 鏈都不同。如上所述,那些鏈僅能達成概率確定性。比特幣的共識型別通常被稱為“中本聰共識”,很容易看出為什麼它可以和拜占庭相混淆,因為二者都是可容錯的,但只有後者才能保證最終確定性。進一步的混淆來自於比特幣的區塊生產與共識演算法高度重疊的事實。但事實上不一定非得這樣處理

以太坊的未來路線提案之一就是像現在一樣繼續由礦工生產區塊,但會讓一些節點充當驗證者來提供最終確定性,從而加強共識。驗證者在已出的區塊上進行投票。給某個區塊投票即表示他們認為該區塊是正確的。一旦有三分之二的驗證者已投票,那麼這個區塊就可以被認為是最終確定的了。這種在挖礦後進行的拜占庭共識機制被稱為“最終確定性元件(Finality Gadget)”。

未來的發展方向

大多數正在開發的新專案都將區塊生產與共識相分離。一些將要出現的區塊鏈也將使用混合共識演算法。這一部分將介紹一些正在探索的未來方向。

Cosmos

Cosmos 的區塊生產也是由隨機選擇的領袖完成,但是 Cosmos 沒有將最長鏈規則用於共識。而它採用了被稱為 Tendermint 的拜占庭演算法。這意味著每個區塊都能保證最終確定性。此外,如果驗證者不能就單個區塊達成共識,按照設計,Cosmos 會為了防止分叉而停機。

Polkadot

Polkadot 的方案是採用混合共識演算法。區塊將由隨機領袖生產,該領袖會將下個區塊新增到最長鏈上。Polkadot 還將採用拜占庭協議,但不是每輪投票只產生一個區塊,而是可以在一次投票中最終確定多個區塊。

使用混合共識機制的一個好處是區塊鏈可以以最長鏈為標準連續生產區塊,同時在不影響鏈活性(即鏈永遠不會停止)的情況下,最終實現拜占庭最終確定性。

目前在 Polkadot 當前的測試網路 PoC-2 (也叫做 Krumme Lanke) 中,其共識類似於 Cosmos。區塊由隨機選擇的驗證者節點生成,在透過拜占庭協議將其最終確定化之後,再生產下個區塊。

Cardano

簡單來說,Cardano 的共識演算法類似於比特幣(最長鏈規則)。與NXT 相同,區塊的生產由隨機選擇的領袖完成。Cardano 背後的團隊已竭盡全力解決了一些在隨機選擇領袖時出現的問題。他們已經確保隨機選擇領袖的規則與目前比特幣出塊方式一致。

然而比特幣是沒有領袖的,區塊由隨機礦工生產。挖礦難題的解集將分佈在這些具有最大雜湊算力的礦工附近。

以太坊

以太坊曾經也嘗試透過加入一個在出塊後保證最終確定性的步驟來尋求加強共識演算法的方式。

區塊仍舊透過 PoW 生成,但是會有一組驗證者節點對已出區塊的正確性進行投票。這就是所謂的“最終確定性元件”。也就是說,該方法結合了最長鏈規則和拜占庭容錯演算法:即兩種共識演算法的混合。

最近似乎有跡象表明,以太坊將可能使用權益證明 (PoS) 取代 PoW,使以太坊與正在開發的新鏈保持一致。區塊將由一個隨機領袖生產,而後由最終確定化元件使其最終化。

改進區塊鏈的方法不止一種

區塊鏈的“舊”時代主要圍繞使用 PoW 挖礦及使用最長鏈規則,來增強網路共識。後來為了用更節能的方式取代挖礦,開始嘗試使用 PoS。過去的 PoS 鏈仍然依賴於最長鏈規則;然而,近年來的趨勢是將拜占庭容錯協議也納入共識機制:而不使用最長鏈規則 (Cosmos) 或是兩者共存 (以太坊和 Polkadot)。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;