科普 | Cosmos 區塊鏈的工作原理,Part-2:如何跨鏈,為何要跨鏈?

買賣虛擬貨幣

在第一部分中,我們從開發一條單獨的區塊鏈以及區塊鏈應用程式的視角介紹了 Cosmos 。但如前所述,Cosmos 最關建的特性之一是互操作性,即賦能多種區塊鏈之間的互動。為了更好地理解這一特性的運作原理,我們首先需要了解 Cosmos 中用於支撐其互操作性的基礎架構:“ Hub 以及 Zone ”。

Hub 和 Zone

Cosmos 網路中的區塊鏈應用了一種中心輻射模型:

位於中心的是 Hub(“中心樞紐”)。Hub 管理著許多被稱為 “Zone” 的獨立區塊鏈(下文 “ Zone ” 指代區塊鏈),由 Hub 來追蹤記錄各個 Zone 的狀態,而每一個 Zone 有義務不停地把自身產出的新區塊反向彙報給 Hub 。類似地,每一個 Zone 也需要同步 Hub 的狀態。

但這裡有個棘手的問題—— Zone 之間並不直接同步各自的狀態,而是透過發向 Hub 的資料包間接通訊。要想弄清楚這一流程,我們首先需要調研其背後的支撐機制:跨鏈通訊(IBC)。

IBC 是如何工作的

Hub 與 Zone 直接通訊,而 Zone 與 Zone 之間透過 IBC 間接通訊。當 Zone 對 Hub 建立起一個 IBC 連線,它可以自動訪問其他連線到該 Hub 上的 Zone ,這意味著 Zone 無需與其他 Zone 連線,而僅僅連線到 Hub 上即可。

透過保持各種跨 Zone 代幣的固定總額,Hub 可以預防雙重支付問題(Double Spend)。這些代幣可以透過一種被稱為“幣包” 的特殊 IBC 資料包而實現 Zone 之間的跨鏈轉移。

當一個 Zone 透過 Hub 收到來自其他 Zone 的代幣時,它只需要信任 Hub 以及代幣來源的 Zone,而不需要信任網路中所有其它的 Zone 。

讓我們看個例子:

假設當前由兩條區塊鏈:Zone 1 以及 Zone 2 。現在如果我們想要從 Zone 1 上傳送代幣到 Zone 2 ,會發生什麼呢?

要讓資料包從 Zone 1 傳送到 Zone 2 ,Zone 1 首先要向 Hub 傳送一個指向 Zone 2 的資料包。

緊接著 Hub 向 Zone 2 傳送一則證明,表示 Zone 1 向其釋出了一個資料包。

在此之後,Zone 2 必須驗證關於 Zone 1 的證明是否真實。為此,Zone 2 要利用 Zone 1 儲存在 Hub 中的區塊頭。我們前面提到過 Hub 幫助 Zone 同步記錄其它每一個 Zone 的狀態,而 Hub 是透過記錄其它 Zone 的區塊頭實現這一功能的。

現在你可能會疑問:為什麼 Cosmos 不直接利用 IBC 建立 Zone 與 Zone 之間的連線?為什麼需要進行 Hub 和 Zone 的設計?事實上,隨著接入到網路中 Zone 的數量上升,以直連方式實現通訊會導致鏈路數量呈平方級上升。以 100 個 Zone 接入到網路中為例,如果各個 Zone 直接都要建立起 IBC 連線,則網路中需要有 4950 條通訊鏈路!如此快速的增長顯然會令網路不堪重負。

採用“ Hub 與 Zone ”模型令 Cosmos 能夠無視 Zone 的數量而實現跨鏈通訊,並支援網路的不斷拓展

Cosmos 網路的正常運轉離不開 IBC ,正是因為它才能讓多條承載著不同應用和驗證者集的獨立區塊鏈(即 Zone )實現互操作

創世 “Hub”: Cosmos Hub

如前所述,Hub 是連線不同 Zone 的元件,而 Cosmos Hub 正是 Cosmos 網路中第一個 Hub ,它透過 IBC 連線其它的 Zone 。Cosmos 網路上構建的第一個區塊鏈(或者說 Zone )會應用該主 Hub 來與網路中其他的 Zone 進行互動。這就意味著 Cosmos Hub 必須具備足夠高的安全性(即許多驗證者)來保證使用它的 Zone 能安全地進行互操作。

橋接非 Tendermint 共識的區塊鏈

目前為止,我們探討了基於 Tendermint 共識的區塊鏈(即 Zone )是如何利用 IBC 和 Hub 進行互動的。然而 Cosmos 並不侷限於 Tendermint 共識鏈的跨鏈操作。

我將在下文粗略解釋 Cosmos 如何相容其它不同共識演算法的區塊鏈。

一般來說,區塊鏈可以分成兩種型別:不可逆鏈和概率鏈。

不可逆鏈(Determinmistic chain)指的是每個區塊的狀態都是確定的(finalized),在未來的任意時刻你都可以從創始塊開始復現推演每個區塊的狀態(例如基於 Tendermint 共識的區塊鏈);概率鏈(Probabilistic chain)是指你只能根據區塊鏈網路參與者在不同分叉鏈上的比例,而以一定概率認為某條鏈是主鏈(例如比特幣)。Cosmos 中的 Hub 理論上可以接入上述兩者,只不過對於概率鏈的支援在實踐中要相對麻煩一些。

這是因為從底層設計來講,IBC 發揮作用的前提在於區塊鏈的不可逆。如果區塊鏈是概率鏈,Hub 就不能保證跨 Zone 的代幣總額固定。如前所述,Hub 如果想要實現無雙重支付的跨 Zone 代幣轉移,就必須保證在 Zone 與 Zone 之間某一代幣的總額是固定的。

Cosoms 試圖透過 “Peg Zone” 來實現概率鏈的互操作性。

Peg Zone 是追蹤記錄另一條區塊鏈狀態的區塊鏈,它要將自己橋接的某條概率鏈上的狀態確定為不可逆的,使得這些狀態得以與 IBC 相容。

還跟得上嗎,少年?現在我只剩下最後一個(同時也是最重要的)問題要跟你探討:區塊鏈究竟為什麼需要要互操作性?

為什麼互操作性如此重要?

眾所周知,區塊鏈是不可逆賬本。然而和其他軟體一樣,隨著時間推移,用於構建區塊鏈的軟體也需要進行迭代和升級。一蹴而就、無懈可擊的軟體簡直是天方夜譚,所以軟體的改動不可避免。“治理”問題就是討論如何對區塊鏈底層軟體的改動進行提案、決議以及應用。

以比特幣為例,由比特幣基金會、比特幣核心開發者、礦工以及使用者來發起底層改動的提案,並以協作的方式實現升級。而以太坊則依靠開發者和使用者社羣的群策群力來做出此類決議。

Cosmos 的做法與上述兩者大相徑庭。不同於常見的、統攝全網的治理機制,Cosmos 允許每個 Hub 構建自己的治理策略。

任何持幣人都可以發起變更提案,由該 Zone 或 Hub 的驗證者和持幣委託人對提案進行投票。提案的內容包括但不限於對系統預置引數的變更(例如區塊 gas 上限)、軟體更新,甚至是 hub 在處理竊幣、入侵或漏洞時所採取的政策性升級。

同樣每個 Zone 也具備各自的治理機制。

舉例而言,Cosmos 支援在 Hub 端強制應用不可逆性的同時,每一個 Zone 都可以根據自身需要設定是否不可逆。想要了解更多,可以閱讀這篇文章《 Cosmos 中的 Hub 治理機制流程》。

在我看來這種設計十分強大,同時也被大大低估了。如果非要從本篇博文中提取出什麼核心論點的話,也就是下面這一段話了:

Cosmos 在底層設計上不認為能透過有限的規則治理大千世界中形形色色的經濟網路,不認為存在特定的一個規則集合讓大家都稱心如意。這一道理不言自明,看看比特幣自執行以來由於哲學和政治分歧引起的眾多分叉。另一方面,從以太坊的治理中我們可以看出,持幣人無法以規範的形式實現治理或是形成合力拒絕不規範的治理,這對生態的發展起到了副作用,阻礙了以太坊的更新升級。

Cosmos 試圖透過獨立區塊鏈之間的互操作性解決這一問題,即使並且尤其這些區塊鏈擁有不同的治理政策。因此 Cosmos 最核心的價值屬性就是在社會和經濟領域的可拓展性。它為其生態之上的使用者和開發者提供了無限的自由,以及不加約束的實驗潛能。

感謝你陪我討論了一路 Cosmos(網路)!

難以置信你聽我叨叨了這麼多,佩服!本文就到此為止了,期待在下一篇文章與你相遇!🤗

發表於 2019 年 6 月 6 日

原文連結:

https://ethfans.org/posts/how-does-cosmos-work-part2

作者: Preethi Kasireddy

翻譯&校對: 安仔 Clint & 阿劍

本文由作者授權 EthFans 翻譯及再出版。

免責聲明:

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

推荐阅读

;