引介 | OFGP 協議跨鏈解決方案
一. 現階段跨鏈技術的發展現狀
(一)概述
跨鏈技術的目的為了實現不同區塊鏈下資產的互動,Vitalik曾在跨鏈互動報告[1]中提出三種跨鏈方式:公證人機制(Notary schemes)、側鏈/中繼(Sidechains/relays)和雜湊鎖定(Hash-locking)。下圖展示了三種跨鏈方式的特性比較
公證人機制削弱了安全性,而雜湊鎖定機制的技術難度過高,側鏈/中繼模式由於具有可信化共識機制,且技術實現具有可行性因而得到廣泛的發展。
(二)現有側鏈/中繼實現跨鏈解決方案
中繼作為不同區塊鏈互動的實現手段,側鏈作為載體通過不同共識協議保證跨鏈可以持續穩定的實現。
需要解決問題:
-
鏈間互動問題:不同區塊鏈之間的資訊傳遞,代幣的鎖定,兌換與釋放。
-
互動的信任問題;增加互動過程中跨鏈使用者的作惡成本,降低或杜絕跨鏈使用者的作惡情況。
-
拜占庭容錯;側鏈節點的信任問題,在由少數節點作惡的情況下依然保證整條側鏈的安全。
-
中間人攻擊;當普通跨鏈使用者增多,節點數量無法滿足需求,使用者通過向中間人提交資訊,中間人再將資訊傳遞至節點。為了保證中間人不作惡資訊傳遞的安全,大多數跨鏈專案早期沒有中間人的存在。
不同跨鏈專案為解決上述問題給出了不同的解決方案,下面將舉例各專案的不同解決方案。
本文將重點介紹 Mallow 的實現方案
二. OFGP簡介
Mallow:創世閘道器聯盟,名字來源於《基地》中的一位行商 Hober Mallow, 行商在星球之間進行貿易,通過商業貿易幫助化解了謝頓危機,Mallow 希望通過自由的商業貿易來建立跨鏈的價值傳輸。
OFGP:是一套開放的聯盟閘道器協議, 任何組織可以通過開原始碼部署自己的閘道器聯盟,完成主鏈上的資產抵押認證,將價值傳遞到側鏈,實現跨鏈的價值傳輸,解決部分割槽塊鏈拓展問題,並實現多個公有鏈孤島的價值傳輸。
Mallow 與 OFGP 的關係:
Mallow 作為 OFGP 的率先實踐者,聯盟中節點部署 OFGP 協議,作為 Mallow 節點,處理 OFGP 各項事務。
(一)OFGP框架圖及框架圖解釋
網路層(Networking)
網路層作為 OFGP 基礎部分,分為 Mallow 節點及公鏈兩部分。Mallow 節點作為OFGP協議軟體程式的執行節點,承擔資料驗證,維護節點的責任;公鏈是具有獨立區塊資料,共識協議的公共區塊鏈系統,OFGP 協議便承擔著連線各個公鏈的責任。
- Mallow節點
節點多籤地址生成
多籤私鑰的安全管理
- 公鏈
共識層(Consensus)
共識層作為各條公鏈資訊互動及 Mallow 節點需要遵守的協議,維護著整個 OFGP 協議系統資訊保安傳遞及穩定執行。各 Mallow 節點依託 Braft 演算法,達到拜占庭容錯的目的;跨鏈協議包括監聽,資訊傳遞,合約註冊,許可權管理等多事務。
- Braft
Braft 節點
共識流程
節點動態加入退出機制
- 跨鏈協議
主/側鏈監聽(watcher)
交易簽名,簽名信息傳遞(signer)
交易廣播,驗證,主/側鏈相應
業務層(Application)
在網路層及共識層外還需要業務層提供使用者入口及查詢的基礎應用和以 OFGP 為技術基礎的拓展應用,從而發揮出 OFGP 最大的附加價值。
- 基礎應用
錢包,為使用者提供 OFGP 協議使用入口。
區塊鏈瀏覽器,為使用者提供 OFGP 協議交易信息查詢工具。
- 拓展應用
DEX,增加去中心化交易所的資產流通種類。
支付場景,OFGP 的高效 TPS 為區塊鏈應用場景的應用提供了可能。
智慧合約,打破由於主鏈技術限制造成智慧合約應用發展瓶頸。
三. OFGP框架詳解
(一)網路層(Networking)
Mallow 節點
多重簽名:多重簽名技術就是多個使用者同時對一個數字資產進行簽名。可以理解為,一個數字資產賬戶多個人擁有簽名權和支付權。多重簽名的表現形式是 m/n(m<n),一共有 n 個私鑰可以給一個賬戶簽名,而當 m 個地址簽名時就可以支付一筆交易。在 OFGP 中 n 為 Mallow 節點總數,m 為保證拜占庭容錯的節點數目,m=(2n+1)/3。
由於 OFGP 協議中 Mallow 多節點將掌握一個賬戶的簽名權利(持有私鑰),為了均衡各節點權利,採用多籤技術實現。
為了保證側鏈發幣交易請求的簽名安全,以及多節點的私鑰管理安全,OFGP 設計了完善複雜的私鑰管理結構。
OFGP使用了軟體私鑰管理方案,節點可以根據該方案在雲端或者本地主機搭建服務。
私鑰管理方案分為三大部分,金鑰儲存服務,金鑰管理服務,私鑰代理服務。具體方案詳見 ofollow,noindex">OFGP白皮書 3.6 。
OFGP 的多簽名流程實現複雜,保障了在私鑰安全的情況下完成簽名,加強了多籤地址中資產的安全性。
- 外部服務向私鑰代理服務發出簽名請求(需提供必要的引數:待簽名的資料以及用到的金鑰的識別符號)。
- 私鑰代理服務檢測請求方和請求內容合法後,將請求傳送給私鑰管理服務。
- 金鑰管理服務執行簽名。
- 金鑰管理服務根據提供的識別符號獲取金鑰的儲存訪問路徑和解密金鑰。
- 金鑰管理服務通過儲存訪問路徑從儲存服務通過取得加密後的金鑰,利用解密金鑰解出原始金鑰,對資料執行加簽,完成後安全移除載入的金鑰資訊,返回加簽後的資料給私鑰代理服務。
- 私鑰代理服務返回相關資料給外部服務請求方。
注:摘自 OFGP 白皮書
(二)共識層(Consensus)
Braft
BraftChain 共識協議基於 Raft 演算法,支援 Byzantine Fault Tolerance,在不超過(n-1)/3個節點(節點總數為n,n>=4)出現異常的情況下可以正常執行。協議保證在正常執行時區塊鏈不會出現暫時或永久的分叉,一次確認即為可靠確認。且交易確認速度可以達到秒級, 節點運營方均為實名 ,並且有嚴格的增刪節點機制,以保證網路質量以及異常情況可追責。
Braft 節點數最少為 4 個,且需要滿足 3f+1(f >0,且為整數)的限制,惡意節點數小於等於 f 時,網路可以正常執行;當需要有新的資料寫入區塊時必須有超過2f+1個節點的驗證同意。
Braft 節點分為 Leader,Candidate,Follower。伺服器節點一定處於在三種狀態之一,正常狀態下只有一個伺服器作為 Leader,剩下的節點都可以被定義為 Follower,Candidate 從 Follower 中產生,Candidate 作為一個狀態,在正常執行沒有出現選舉的情況下節點中不會產生 Candidate,且 Candidate 過程非常短暫。
Leader 負責打包區塊並廣播給所有的 Follower,Follower 負責對打包區塊進行驗證。
Follower 在正常情況下不會發出任何請求,只接收相應來自 Leader,Candidate 的請求。當 Follower 在資料驗證過程中發現錯誤,會發起重新 Leader 選舉,收到多數票的候選節點會成為新的 Leader。
任期(term)從一個新的 Leader 選舉開始,結束於 Follower 的資料的失敗,便會開始新的一輪投票選舉。
Braft 協議的區塊打包過程可以理解為 Raft 的複製狀態機(一致性演算法的實現一種方式),目前 Mallow 中區塊的出塊的時間間隔為 10s/塊。
區塊打包過程分為三個狀態:
- 廣播狀態 ;節點需要對比驗證本地Term,區塊高度,確認自己為合法節點並廣播自身節點有效訊息。
- 驗證狀態 ;當已經驗證過的節點數達到 2f+1(總數 3f+1),說明節點接受資訊通過全網確認,資訊有效,可以新增新的區塊,Leader 並廣播新區塊。
- 上鍊狀態 ;廣播區塊鏈上鍊,並開始新區塊的新增工作。
節點的加入/退出必須得到大多數節點的認可;當有新節點請求加入或退出時,Leader會將下一個區塊設定為 Reconfig 型別。
具體方案詳見 OFGP白皮書 3.6 。
跨鏈協議
跨鏈協議指主鏈(ETH,BCH…)與側鏈之間的通訊協議,負責主鏈到側鏈的發幣,也負責側鏈到主鏈的回兌,並且保證雙向錨定過程中的資產安全和匯率合理穩定。
下圖為跨鏈協議示意圖:
Watcher:每一個公鏈都有 Watcher 對其進行監控,當用戶有代幣跨鏈兌換請求時,將請求資料及交易資料傳送給 Signer。
Signer:對 Watcher 傳遞的交易請求資訊進行驗證簽名,並在主鏈上驗證使用者在主鏈傳送的請求交易。
Mallow 區塊瀏覽器: https://explore.ofgp.io
BCH 多籤地址:pp3eju4zt9g3xpfps94s08vh9kfqh4t7zgcghf00uf
各節點以太坊地址:
0x6bcb244c6eb027ffed5c99943491637bc4824171
0x862775d4b99075883a18eed2cafcf0d9ae839e03
0x18945052716c87a4ab53063488f34f1a11b05ed2
0xb42c436da7ece89914f75bd7239105bcba13590d
GatewayVote 合約地址:
0xd9c422d2205248e7ec4d4c21a6b270baa66784c0
WBCH Token 合約地址:
0x286748cae9ee8f98a399032cf45cbbad8de3cb8a
BCH — ETH 跨鏈流程
以該筆交易為例:
使用者兌換 0.01BCH 為 WBCH
- BCH 主鏈請求交易
當用戶需要發起 BCH 兌換,目前需要通過 iBitcome 錢包發起一筆交易,將需要轉化的 BCH 傳送至 BCH 多籤地址(pp3eju4zt9g3xpfps94s08vh9kfqh4t7zgcghf00uf)
該筆交易詳情資訊: https://bch.btc.com/a38883fddd593f1e08ecd68c4d7b9e68ab2294070632ab8efdc1802aabe22b8a
包含接受 WBCH 的 ETH 地址在該交易的輸入指令碼中,Watcher 監控到多籤地址中有新交易轉入並檢測交易指令碼中資訊。
- Mallow節點投票
Mallow 節點在得到 Watcher 的資訊後,後通過以太坊 GatewayVote 智慧合約地址發起投票。
投票通過向 GatewayVote 合約傳送交易實現,目前 Mallow 四個節點中只需要三個節點投票通過交易便得到通過確認。
Follower 節點發起投票交易:
https://etherscan.io/tx/0xb10963de4bde948c2d58a1508e6dfcd12588062bc5fcc14216eb0183a466a0a1
https://etherscan.io/tx/0x507cd9b007f23fa7de66300cac1cbcb5a69f5d291bf5070d72169aef584b0577
可以看到Follower節點投票的交易只有一個Confirmation的Event。
節點投票&發幣交易:
https://etherscan.io/tx/0x188cc0b3045cba078067ee1b1d5b2d3b486dcd67f8703f8cb14759161b928edc
可以看到 4 個 Event 中,Confirmation 進行投票,OperationDone 表示投票結束, MintByGateway 表示網關同意該筆兌換操作。Mint Event 呼叫 WBCH Token 的合約,輸入引數為 WBCH 接收地址及兌換數量,同時可以在 WBCH Token 的合約地址中看到該Event。
發幣合約呼叫交易根據節點投票交易的上鍊順序決定,第三個投票上鍊交易同時進行發幣。
- 側鏈交易確認
在開啟 Mallow 中該筆交易的 ETH 的 Tx 時,看到的交易為呼叫 GatewayVote 的交易,該筆交易呼叫了 WBCH Token 合約,進行 WBCH Token 的發放。同時在 Mallow 側鏈中會對該交易進行記錄生成 Hash 並寫入區塊。這樣便完成了一次完整的 BCH-WBCH 兌換過程。
ETH — BCH跨鏈流程
以該筆交易為例:
- WBCH 燃燒
使用者發起一筆 WBCH 燃燒交易:
https://etherscan.io/tx/0x494b74400505b343479e4c00f9bc869e475b97e21b35343ac1942a11bdb76302
該筆交易通過 Burn Event 對 WBCH 進行燃燒,並通過 BurnForGateway Event 與 GatewayVote 節點進行通訊。可以在 GatewayVote 合約的 Events 中看過該筆燃燒交易。
- 多籤指令碼投票驗證
Watcher 對 Ethereum 區塊鏈進行監聽,當有燃燒交易生成,Leader 便建立一個待簽名的 BCH 交易,廣播給網路中的所有節點進行簽名,節點收到簽名請求後,對交易內容進行合法性校驗,如果校驗通過,簽名,並將簽名內容廣播給網路中的所有節點,否則廣播拒絕簽名節點收集其他節點的簽名結果,如果成功收集到滿足多籤個數的簽名結果,則簽名,併發送交易到 BCH 鏈。
- BCH 交易傳送
當 3 個節點簽名通過後,多籤地址便會發送一筆 BCH 轉賬交易,同時在 Mallow 側鏈上記錄該筆交易。 https://bch.btc.com/9231cded28b78adcf85fa43bec517b1ab9d0a0e62fb5a577fc2a16ef1a6e5a48
(三)業務層(Application)
基礎應用
- 錢包
錢包作為普通使用者儲存數字資產以及與區塊鏈互動的工具,作為 OFGP 跨鏈入口最為合適。
iBitcome 為目前首家利用 OFGP 集合成 Mallow 聯盟實現跨鏈的去中心化錢包。
- 區塊鏈瀏覽器
區塊鏈瀏覽器作為區塊鏈資料的視覺化工具,使用者可以通過區塊鏈瀏覽器查詢 Mallow 交易資料。
Mallow 區塊鏈瀏覽器地址: https://explore.ofgp.io
拓展應用
- 去中心化交易所
OFGP 作為跨鏈的實現方案,解決了公鏈之前的資訊和價值互動的問題,更高的流動性將有機會增加更多的附加價值。
主流的去中心化交易所在以太坊上通過智慧合約實現。Mallow 所實現的 BCH-WBCH 方案,為 BCH 的去中心化交易提供了可能,並且打通了 BCH/ETH 的價值傳輸通道,對於 BCH,ETH 的價值拓展具有推動作用。
四. 拓展與發展
目前 Mallow 實現了 OFGP 的穩定匯率單向跨鏈互動,Bitcoin Cash 鏈上資產兌換為 Ethereum 鏈上等價資產及 Ethereum 鏈上資產反向兌換為 Bitcoin Cash 鏈上等價資產。雙向資產不同匯率的原子交換將成為 OFGP 的拓展及發展的有力方向。
(一)應用拓展
- OTC 交易提供 Atomic swap的服務
對於經驗豐富的加密貨幣使用者,大多數更願意避免使用中心化交易所,希望能夠避免通過第三方進行交易。OTC 交易雙方通過場外平臺達成交易意向(如利於 ETH 兌換BCH),OFGP 可以作為去中心化閘道器提供安全穩定的 Atomic swap 服務。交易雙方將兌換數字貨幣打入特定多籤地址,在通過 OFGP 協議驗證認可後實現交換。
- BCH側鏈提供閘道器支援
Bitcoin Cash 基於 OmniLayer 開發出 wormhole 協議,使用 OP_RETURN 操作碼實現了智慧合約的發幣方案,極大拓展了 Bitcoin Cash 的應用場景。OFGP 可以作為 BCH 側鏈,為在 BCH 鏈上發行數字資產提供穩定的閘道器服務,提高 BCH 鏈上資產與其他數字資產的互動能力。
- 眾籌
目前眾籌多采用以太坊智慧合約實現,且眾籌大多接受ETH數字貨幣,OFGP 為眾籌方提供接受 BCH 及 BCH 鏈上資產的可能,以及利用 WHC 發起眾籌接受 ETH 鏈上資產的可能。
目前單一的眾籌渠道,限制了專案方的可選擇性。但數字貨幣的發展難以預料,跨鏈技術的存在,可以豐富專案方的發幣公鏈的選擇,同時在 ETH,BCH 等公鏈發行等價數字貨幣。
- 代幣對映
公鏈眾籌專案早期多選擇在以太坊發行代幣,但專案主鏈開發完成,以太坊代幣向專案主鏈的代幣對映往往技術實現複雜,利用 OFGP 可以輕鬆實現代幣的對映。
(二)發展展望
- 公鏈資產互通
數字貨幣的發展對於數字貨幣的流動性要求越來越高,目前公鏈的價值孤島將隨著跨鏈技術的完善而逐漸打破。
公鏈下多幣種的等價代幣對映兌換。等價數字資產的互通僅是 OFGP 實現的第一階段,BCH 利用 OP_RETURN 操作碼發行的數字貨幣,在以太坊中可以實現代幣對映發行等價的 ERC20 代幣,同時ERC20 代幣可以在 BCH上 對映發行 OP_RETURN 代幣。
- 動態匯率的資產互通
目前在不同公鏈間生成等價值的跨鏈代幣,雖實現了價值的跨鏈互動但具有很強的侷限性。使用者需要以去中心化的模式將 BCH 兌換為 ETH,讓需要先兌換為 WBCH 再通過去中心化交易所交易為 ETH,這中間將產生大量損耗,增加使用者兌換成本。
OFGP 協議在技術升級中可以增加動態匯率的資產兌換功能,打破目前實現的等價代幣兌換限制,實現去中心化機制的原子互換功能。
五. FAQ
(一)通識方面
Q:側鏈與跨鏈之間的關係?
A:側鏈是一種與主鏈(公鏈)的互動手段,作為多條主鏈互動載體,從而達到跨鏈的目的。
Q:跨鏈的實現的意義?
A:跨鏈的根本意義增加了數字貨幣的流動性價值並豐富了公鏈的互動拓展能力,從而可以衍生出更多具有實際價值的拓展應用,如OTC交易,眾籌等。
Q:Mallow 是什麼?OFGP 是什麼?
A:Mallow 是第一家執行 OFGP 的多節點組成的閘道器聯盟,聯盟希望通過自由的商業貿易來建立跨鏈的價值傳輸。
OFGP是一套開放的聯盟閘道器協議, 任何組織可以通過開原始碼部署自己的閘道器聯盟,完成主鏈上的資產抵押認證,將價值傳遞到側鏈,實現跨鏈的價值傳輸,解決部分割槽塊鏈拓展問題,並實現多個共有鏈孤島的價值傳輸。
Q:Mallow 和 OFGP 的關係?
Mallow是一家執行OFGP協議實現跨鏈技術的閘道器聯盟。
Q:Mallow 側鏈是聯盟鏈嗎?
A:Mallow 側鏈是聯盟鏈,採用 Braft 共識協議。
Q:Mallow 和 Liquid 有什麼區別?
A:Liquid是一個私有聯盟的比特幣側鏈,意在提高比特幣網路的交易速度及使用者體驗。Liquid 建立在Elements 區塊鏈平臺之上,隨著更多公連結入Elements,Liquid的跨鏈功能將得到豐富,但目前僅能實現側鏈與比特幣主鏈的跨鏈功能。
Mallow 是致力於實現跨鏈功能的聯盟閘道器側鏈,意在建立公鏈間的互動渠道,打破公鏈的價值孤島。目前已經實現 BCH 與 ETH 之前的數字貨幣價值互動。
(二)技術方面
Q:任何人都可以使用OFGP協議,開發自己的閘道器嗎?
A:OFGP作為開源協議,任何人都可以利用OFGP建立自己的聯盟閘道器。
OFGP開源協議地址: https://github.com/ofgp
Q:OFGP選在Braft協議的原因?Braft協議具有哪些優勢?
A:Braft協議保證在正常執行時區塊鏈不會出現暫時或永久的分叉,一次確認即為可靠確認。且交易確認速度可以達到秒級,節點運營方均為實名,並且有嚴格的增刪節點機制,以保證網路質量以及異常情況可追責。
Q:為什麼在WBCH的轉賬記錄中僅能查到Burn及Transfer記錄,沒有代幣生成的交易記錄?
A:因為WBCH代幣的生成過程是當Leader向GatewayVote合約發起投票交易,在該筆交易中同時呼叫WBCH的合約地址,實現發幣過程。
Q:GatewayVote智慧合約具有哪些作用?
節點投票通過向GatewayVote合約傳送交易實現;呼叫WBCH Token合約實現WBCH發放。
Q:以目前4個Mallow節點,BCH兌換為WBCH總共需要在BCH及ETH上發起多少筆交易?
A:
- 使用者向BCH多籤地址轉賬需要兌換為WBCH的BCH
- 節點投票,向GatewayVote合約發起交易
- 節點投票,向GatewayVote合約發起交易
- 發起投票並呼叫WBCH合約發放WBCH代幣,向GatewayVote合約發起交易
Q:為什麼在BCH兌換WBCH投票過程通過合約實現,WBCH兌換BCH投票過程通過多籤指令碼實現?
A:因為BCH為UTXO結構,無法向ETH一樣通過智慧合約實現投票過程。
(三)使用方面
Q:目前有哪些錢包支援Mallow協議?
A:目前iBitcome錢包支援Mallow協議,可以現實BCH對WBCH的兌換。
iBitcome錢包地址: https://www.ibitcome.com
Q:在兌換時需要支付手續費嗎?
A:目前Mallow屬於測試階段,在測試階段使用者不需要支付手續費,但需要支付區塊鏈網路的礦工費用。在正式釋出後用戶需要正常支付兌換手續費。
Q:在交易過程中,需要一定的區塊確認高度嗎?如需要BCH是幾個?ETH是幾個?
A:需要,BCH需要2個區塊確認,ETH需要30個區塊確認。
Q:Mallow側鏈的區塊鏈瀏覽器地址?
Q:最小BCH兌換WBCH額度?
A:0.01BCH
引用:
[1]: https://blockstream.com/technology/sidechains.pdf
[2]: https://blockstream.com/technology/sidechains.pdf
[3]: https://plasma.io/
[4]: https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298
[5]: https://ethresear.ch/t/minimal-viable-plasma/426
[6]: https://github.com/cosmos/ethermint
[8]: https://tendermint.com/static/docs/tendermint.pdf
[9]: https://polkadot.network/
[10]: https://medium.com/@davekaj/blockchain-interoperability-cosmos-vs-polkadot-48097d54d2e2
[11]: https://blockstream.com/technology/sidechains.pdf
[12]: https://medium.com/crypto-economics/what-is-plasma-plasma-cash-6fbbef784a
[13]: https://ethresear.ch/t/plasma-cash-plasma-with-much-less-per-user-data-checking/1298
[14]: https://github.com/w3f/polkadot-white-paper/blob/master/PolkaDotPaper.pdf
[16]: https://github.com/ofgp/ofgp-core/wiki/Open-federated-gateway-protocol-%28OFGP%29-whitepaper-en
[17]: https://ramcloud.atlassian.net/wiki/download/attachments/6586375/raft.pdf
[18]: https://github.com/ofgp/ofgp-core/wiki/Open-federated-gateway-protocol-%28OFGP%29-whitepaper-en
作者:DEx.top 區塊鏈研究院
DEx.top區塊鏈研究院,旨在打造一個與 DEx.top使用者、區塊鏈世界參與者共同研究、分享、互動的平臺。我們的團隊來自全球頂級的諮詢、金融、科研等機構,擁有深厚的學術背景。研究內容包括:區塊鏈領域的技術探究、行業調研、應用創新、模式探索等。