從比特幣到波卡:比特幣如何解決雙重支付和貨幣發行問題?

買賣虛擬貨幣

從比特幣到波卡:比特幣如何解決雙重支付和貨幣發行問題?為了更好地理解為什麼我們需要在區塊鏈技術中引入共識演算法,我們需要了解比特幣的區塊鏈技術都解決了哪些問題?最為關鍵的問題有兩個:雙重支付、中心化的貨幣發行,本文首先介紹比特幣解決上述問題的方法,其次討論共識的一些精妙之處,如容錯性和最終性(最終確定性的簡稱),最後以一些專案為例子進行討論,以及探討未來的方向。

比特幣如何解決雙重支付和貨幣發行問題?

要理解為什麼容錯性對區塊鏈如此重要,有必要解釋一下比特幣解決的兩個問題(雙花和中心化貨幣發行)。換句話說,為了防止任意超發,比特幣以一種可預測、透明且去中心化的方式發行貨幣。管理貨幣轉賬和發行過程的機制的就是共識演算法,能夠確保整個交易歷史的一致性(共識)。

共識演算法在區塊鏈技術時代並不是新玩意兒,強調比特幣為什麼具有創新性是很重要的:因為在公有的無須許可的網路中,即使有潛在的惡意行為者出現,比特幣也可以達成共識。

PoW 的共識演算法

眾所周知,像比特幣這種 PoW 的區塊鏈,節點透過獲得建立新區塊所產生的新幣獎勵,來維護整個網路的安全。該獎勵提供了一種激勵機制,使礦工在儘可能快速創造新區塊的同時,始終表現誠實。

獲勝的關鍵在於,創造新區塊需要解出一個獨特且計算困難的數學難題。它數學題的難度從根本上限制了新區塊產生的速度,且答案的唯一性可以使網路識別出獲勝節點(透過他們的地址)。雖然惡意行為不會受到特意懲罰,但並沒有動力去做,因為不誠實的行為存在機會成本。

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

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

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

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

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

以上說明,比特幣具有強大的抵抗故障的魯棒性,並且可以在公共和無須許可的網路中以去中心化的方式發行貨幣。透過探索確保最終性的方法,能夠確保更高水平的安全性。這一觀點將在後文的容錯部分中進行探討。

PoS 區塊鏈

還應該注意的是,一些權益證明(PoS) 區塊鏈的執行方式與比特幣類似。大多數 PoS 鏈用選舉產生區塊來代替挖礦。與 PoW 鏈讓獲勝礦工建立下個區塊不同,PoS 鏈的新區塊是由隨機選擇的節點(「領導者」)來建立。

被選中(建立新區塊)的概率是由權益的數量來決定的。這個理念是,持有的幣越多,說明更希望區塊鏈取得成功,因此這樣的節點將獲得更大概率來建立下個區塊。

NXT 是最早的 PoS 鏈之一,使用這種隨機(選舉)領導者的方法來建立新區塊。NXT 的共識機制與比特幣相同:建立的新區塊都會被新增到最長鏈上。透過遵守這個規則,任何分叉問題都能夠被解決,節點則繼續在最長鏈上建立區塊。

拜占庭協議與容錯性

當參與者出現違反協議的操作時,(網路)就會出現錯誤。對區塊鏈來說,因為可能存在惡意行為者試圖利用協議的弱點,所以我們希望協議足夠安全,可以抵禦任何故障。任何可抵禦任意故障的協議,也足夠安全去防範隨機故障及惡意行為者。

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

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

顯然這與比特幣和其他 PoW 鏈不同。如上所述,那些鏈僅能達成一定概率的確定性。比特幣的共識型別通常被稱為「中本聰共識」,很容易看出來,為什麼它會和拜占庭容錯混淆,因為二者都是可容錯的,但只有後者才能保證最終確定性。更深層次的混淆,來自於比特幣的區塊建立與共識演算法高度重疊。但事實上並不需要這樣。

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

發展探索

大多數正在開發的新專案都將區塊建立與共識進行分離。未來的一些區塊鏈也將採用混合共識演算法。這一部分將介紹一些正在探索的未來方向。

Cosmos (ATOM)

Cosmos 的區塊建立也是由(透過權益的權重比例)隨機選擇的領導者完成,但是 Cosmos 的共識中沒有最長鏈規則。相應地,它採用了被稱為 Tendermint 的拜占庭演算法。這意味著每個區塊都能保證最終確定性。此外,如果驗證者不能就單個區塊達成共識,按照 Cosmos 的設計,Cosmos 將會暫時停下來,以防止分叉。

Polkadot 波卡(DOT)

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

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

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

Cardano (ADA)

簡單來說,Cardano 的共識演算法類似於比特幣(最長鏈規則)。與 NXT 相同,區塊的生產由隨機選擇的領導者完成。Cardano

團隊已竭盡全力解決了一些在隨機選擇領導者時出現的問題。他們已經確保選擇領導者的隨機性與目前比特幣出塊方式一致。

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

Ethereum 以太坊

以太坊也曾經嘗試透過加入一個在出塊後保證最終確定性的步驟,來加強共識演算法的方式。區塊仍舊透過 PoW 生成,但是會有一組驗證者節點對已出區塊的正確性進行投票。這就是所謂的「最終確定性元件」。也就是說,該方法結合了最長鏈規則和拜占庭容錯演算法:即兩種共識演算法的混合。

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

最佳化方法

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

免責聲明:

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

推荐阅读

;