Cosmos 簡介
以傳統網際網路的角度來看,正是由於 IP 協議的中繼左右,讓我們熟知的 HTTP、P2P、IEEE、WiFi 等協議相互連線,才有了我們可以在 HTTP 協議上登入網頁版微信,利用 P2P 協議將檔案透過網頁版微信傳輸等應用場景。而以 Cosmos、Polkadot 為代表的跨鏈技術正在構建區塊鏈領域的 IP 協議,故而有人將跨鏈技術視為區塊鏈 3.0 時代。
Cosmos 原理
圖中最左側和最右側的 4 條公鏈在沒有 Hub 的情況下要實現連線,就必須在彼此之間新建一條通道,但如果有了 Hub ,它們都只需要與 Hub 連線,由 Hub 實現跨鏈的中轉。
Hub 本身也是一條公鏈,使用 Cosmos SDK 開發,具備 tendermint 結構;Hub 連線的公鏈以及公鏈的代理鏈被稱作「Zone」,所有的 Zone 都需要實現 IBC 通訊標準。
Cosmos SDK 架構
- baseapp :定義了一個基本ABCI應用的模版,與 Tendermint 通訊。開發者也可以根據自己的需求重寫。
- 應用程式 :包括 gaia、basecoin、democoin 。其中 gaia 就是 hub 主程式,basecoin 以及 democoin 是提供的兩個示例應用。
- plugins :cosmos-sdk 的基本單元,每個 plugin 都是 baseapp 的功能擴充套件,包含各自的訊息和交易處理邏輯。
目前 SDK 已經整合了一些重要的 plugin :
- staking :POS 相關的實現,包括:繫結,解綁,通貨膨脹,費用等操作。
- ibc :跨鏈協議 IBC 的實現,也是 Cosmos 支援跨鏈的主要外掛。
- governance :治理相關的實現,如提議、投票等。
- auth :定義了一個標準的多資產賬戶結構(BaseAccount),開發者可以直接嵌入自己的賬戶體系中。
- bank :定義資產的轉移。
PegZone 原理
基於 Cosmos-sdk 開發的區塊鏈能夠輕鬆滿足實時最終性,然而現存的 Bitcoin 和 Ethereum 這類使用 POW 共識的區塊鏈並不具備此特點,只能屬於概率最終性,無法防止區塊鏈的回滾。對於這類鏈,團隊採用 PegZone 方案來解決。
上圖我們可以看出 PegZone 可以分為 5 個部分:
- Smart Contract :資產託管的角色,保管以太坊中的代幣和 Cosmos 中的代幣。主要提供了 lock、unlock、mint、burn 四個方法。
- Witness :是一個以太坊全節點,監聽以太坊合約的 event ,並等待 100 個區塊產生後,封裝 WitnessTx 提交到 PegZone 中來證明在以太坊內狀態更改。
- PegZone :PegZone 是基於 Tendermint 的區塊鏈,負責維護使用者的賬戶資訊,允許使用者之間資產的轉移,並提供交易查詢。
- Signer :使用 secp256k1 對交易進行簽名,以便籤名能夠高效的被智慧合約驗證,對應於智慧合約的校驗者公鑰集合。
- Relayer : 中繼器負責交易轉發。將所有 Signer 簽名後的 SignTx 轉發到 smart contract 中。
乙太網到 Cosmos 的傳輸過程
- 合同在 Cosmos 端接收 lock 帶有 ERC20 令牌和目的地地址的交易。它將收到的資金鎖定在掛鉤區域的共識,記錄通知轉發器的事件。
- 中繼器透過 RPC 連線到以太坊完整節點,監聽 Lock 事件。
- 一旦節點收到智慧合約的存款,它就等待 100 個街區(最終門檻),然後生成並簽署 SignWitnessMsg 證明宇宙釘區正在監聽的事件的證據。
- 掛鉤區域接收證人交易,直到超級大多數投票權見證了事件。每個 BeginBlock 呼叫 peg 區域檢查是否有任何傳入的以太坊傳輸已達到超過大多數確認。
- 然後,節點使用內部事務更新狀態,以反映某人想要從以太坊傳送令牌並生成 IBCWitness 將令牌轉換為指定的目標鏈.
合約操作過程如下圖
Cosmos到乙太網的傳輸過程
- ABCI 應用程式收到 IBCRelay 要求燒錄以太坊令牌的請求,並根據 IBC 規範處理它。ABCI 應用程式生成一個有效的以太坊交易,其中包含{地址,令牌地址,金額,非現金},並將其寫入其狀態。
- 每個簽名應用程式正在監視 ABCI 狀態中的新事務,並檢測新事務。
- 每個簽名應用程式使用 secp256k1 使用以太坊智慧合約已知的金鑰簽署交易。
- 每個簽名應用程式都將其中繼提交回 ABCI 應用程式以 SignRelayMsg 進行復制。
- 定期查詢 ABCI 應用程式事務的中繼程序看到事務已達到所需的中繼閾值。
- 其中一箇中繼器透過呼叫該 unlock 函式將事務傳送到智慧合約
- 智慧合約用於 ecrecover 檢查它是否由與交易高度相對應的超級大多數驗證器集簽名(這可能已被更新)。智慧合約釋放交易中指定的令牌,使其可用於目標地址。
標準共識分析
Cosmos 目前有 Cosmos Hub 模組 跨鏈 PegZone 模組 IBC 模組 治理相關模組 等一系列全生態環境,從願景上看,Cosmos 希望打造成一個區塊鏈網際網路。所以需要解決跨鏈的問題,目前未知並未在跨鏈方面看到成熟方案,這個目標還是很遠大,但很難實現,類比網際網路網路沒有共識層,只要解決好傳輸問題,就可以完成基本的通訊,但區塊鏈不一樣,它的特色就是有不同的共識模型,這是它的生命力,也是它進步的方向。