OFGP:開源閘道器協議實現跨鏈價值流通

買賣虛擬貨幣


(普羅斯旺的收穫,梵高)


藍狐筆記之前有過多篇跨鏈的文章,跨鏈是區塊鏈行業最重要的領域之一。網際網路的資訊流通是資訊傳遞,可以複製、貼上,自由流通,不會有什麼問題。但區塊鏈涉及的是價值的流通,價值在不同的鏈之間自由流轉,首先要解決雙重支付的問題,否則會引起價值混亂,比如一份錢可以重複使用,比如造成通貨膨脹。這會讓價值本身失去意義。

但是跨鏈又是未來區塊鍊形成真正生態的重要支撐,不同鏈之間的孤島問題必須得到解決。這讓跨鏈成為繞不過去的問題。一旦實現不同鏈之間的資產自由流通,可以釋放出不同鏈的潛力,尤其是當實際應用場景產生,資產可以自由兌換和支付,可以實現使用者體驗極佳的區塊鏈世界。就像你去歐洲旅遊,直接用人民幣而不用歐元購買咖啡的無縫體驗一樣。


目前跨鏈的解決方案有了不同的探索,包括中繼、側鏈、雜湊鎖定、公證人機制、分散式私鑰控制等。比如中繼模式(Relay),以BTC-Relay為例,簡單來說就是透過在以太坊上部署Relay合約,第三方提交btc區塊頭。區塊頭包含btc交易資料,Relay合約則校驗區塊頭合法性。該模式的主要問題是第三方提交區塊頭會涉及到大量手續費。假如呼叫Relay交易無法覆蓋該手續費,從成本角度來講較難持續。


目前來看,已有的這些側鏈模式、中繼模式、鏈下狀態通道模式等,都比較難用完全去中心化的方式來解決跨鏈問題,且需要較長的時間落地和實踐。

最近藍狐筆記關注到OFGP的跨鏈解決方案,它是通用的去中心化的閘道器係統,它採用了聯盟鏈的方式來推動跨鏈價值流通,就目前階段,落地性較好,也是藍狐筆記期待能快速落地的一個跨鏈方案,值得關注。

OFGP是開放聯盟閘道器協議,英文稱之為Open federated gateway protocol for pegged sidechain,它是側鏈模式的跨鏈,也是跨鏈解決方案的一種。側鏈模式主要原理是雙向錨定方案:主鏈token會被髮送到主鏈的一個地址,token被鎖定,該地址代幣由側鏈的最小交易證明(SPV)解鎖。OFGP透過去中心化的閘道器協議,讓跨鏈價值轉移變得方便。

OFGP從何而來

OFGP是由iBitcome釋出的開放聯盟閘道器協議,它的目標是希望實現不同鏈之間的價值轉移。iBitcome是一款去中心化的錢包。去中心化錢包發展的重要路徑之一,就是跨鏈錢包。所謂的跨鏈錢包就是不僅可以實現不同鏈資產的儲存和轉賬,還可以在錢包中實現幣幣交易和跨鏈價值轉移。去中心化錢包,最後還可以把各種不同的應用接入進來,形成一個類似於去中心化應用商店,使用者在不同應用之間可以自由實現跨鏈的資產轉移,最終形成一個價值自由流通的生態系統。

從iBitcome的發展路徑來看,它應該不僅僅有錢包的功能,還希望打造區塊鏈的生態系統。目前看,iBitcome原生接入了DEx.top去中心化交易所,實現移動端的幣幣交易功能。

按照這個發展路徑,它順勢開發出了OFGP開放聯盟閘道器協議,跟DEx.top合作,實現把BCH鏈上資產轉移到以太坊,以太坊資產也可以轉移到BCH鏈。它是透過BCH-WBCH-ETH的方式,透過錨定主鏈資產,釋出ERC-20的側鏈資產WBCH,然後實現跟以太坊之間的資產的互通。

當然OFGP是開放聯盟閘道器協議,其他主體都可以使用OFGP協議來搭建自己的去中心化跨鏈交易服務,不僅僅是iBitcome錢包,其他錢包或者交易所或其他區塊鏈專案都可以按照自己的需要來搭建。

那麼,OFGP到底是什麼?

OFGP是去中心化的開放聯盟閘道器協議

OFGP是去中心化的通用閘道器協議,主要在主鏈和側鏈之間實現價值轉移。協議的共識機制是Braft協議,這在後續會闡述。透過Braft共識協議,OFGP可以將主鏈資產轉移到側鏈,資產在側鏈上應用於各種實際場景,可以有遊戲、房租租賃、借貸、社交、打車等高頻場景。

在某種意義上,透過跨鏈方案,也在一定程度上解決了主鏈擴充套件性的問題。透過把資產轉移到側鏈,既可以保證資產的安全,也能透過側鏈的更高的吞吐量實現更快速的交易。

OFGP的去中心化閘道器協議有哪幾個值得關注的特性?

1.可實現多公鏈價值互通和生態構建

運用OFGP協議可實現多個公鏈之間的價值流通和生態構建,比如ETH、BTC、BCH、ADAEOS、Tezos等。

比如BCH和ETH公鏈之間不僅可以價值互通,還可以實現使用者的互通,實現場景使用者的擴充套件。也就是說,使用OFGP協議有利於構建跨公鏈的生態體系。

總之,OFGP透過價值連線,可解決公有鏈的孤島問題。

2.去中心化的閘道器協議

這裡很重要的一點就是OFGP是去中心化的協議,閘道器係統是分散式的,公開可驗證,完全透明,可信任。

它不屬於任何一方,是通用的。任何機構或個人都可以搭建自己的聯盟閘道器。閘道器不是透過中心機構來擔保,而是透過共識機制實現可信任的結果,保證資產的安全。

目前Mallow是第一家執行OFGP的多節點閘道器聯盟,所以也稱之為創世閘道器聯盟。由於OFGP是開放的聯盟閘道器協議,你也可以無須許可即可利用OFGP部署自己的閘道器聯盟,完成主鏈資產抵押認證,把價值傳遞到側鏈,實現價值傳輸。

3.使用者對資產具有掌控權

使用者可以將資產自由地從主鏈移入側鏈,或從側鏈轉回主鏈,擁有資產的完全控制權。

4.提升了擴充套件性

透過把主鏈資產轉入側鏈,應用於側鏈更豐富的交易場景,實現了擴充套件性。

5.聯盟閘道器模式

在傳統的側鏈架構設計中,一般並沒有獨立的閘道器設計。它主要是透過側鏈上的節點自身完成多重簽名,大多數的側鏈都是針對單一主鏈設計開發的。

OFGP針對這種現狀,構建的是聯盟閘道器,它一方面透過維護主鏈和側鏈SPV節點來對主鏈和側鏈的交易進行驗證,一方面採用M/N的方式進行多重簽名投票,保證了資產的安全性。

OFGP這樣設計的好處是它可以接入更多的公鏈並實現它們之間的價值流通。傳統的側鏈要求主鏈代幣持有人對側鏈團隊有充分信任,這種模式不利於側鏈的發展。OFGP的聯盟閘道器則透過讓主鏈信任的節點組成聯盟閘道器來執行簽名操作,實現了資產轉移的安全和可信。


OFGP閘道器中有簽名者(signer)和觀察者(watcher)兩個不同的角色。主鏈信任的signer節點執行簽名,觀察者監控不同型別的主鏈和側鏈的出塊情況。這種情況下,側鏈開發者或其它第三方開發者可以根據協議做簡單適配即可接入聯盟閘道器,獲得更多主鏈信任。

為了實現可靠的安全,OFGP採用了Braft共識機制來構建聯盟閘道器,實現簽名、鎖定、解鎖等操作的真實、透明、可追溯、不可篡改。

也就是說OFGP一方面降低了側鏈的跨鏈價值流通門檻,另一方面也獲得更多公鏈的支援,可以支援更豐富的交易場景。

那麼,具體來說,OFGP是如何架構的,它的基本跨鏈流程是什麼樣的?

OFGP的基本跨鏈流程

要想理解OFGP的跨鏈協議,首先來看它的跨鏈基本流程。

OFGP協議負責主鏈和側鏈之間的協議通訊。它要實現把主鏈資產轉移到側鏈,在側鏈上發幣;也要實現把側鏈資產回兌到主鏈。另外,還有很重要的一點就是,在雙向錨定過程中保證資產安全和匯率合理。

OFGP開放聯盟閘道器協議有兩個關鍵角色:Signer、Watcher。

Signer主要負責資產從側鏈轉回主鏈的回兌交易簽名,還有閘道器的共識協議,是開放式聯盟閘道器的核心角色。Watcher則主要負責閘道器和鏈之間的互動,監聽鏈上的交易資訊,同時適配不同的主鏈和側鏈。

具體流程來說,使用者要完成一筆跨鏈交易,首先使用者把主鏈資產傳送到主鏈上的特定地址。該特定地址是多重簽名地址,由去中心化閘道器生成。多重簽名地址的好處是,可以保證資產被安全的鎖定在該地址上。因為只有某一個或幾個閘道器成員無法完成這筆資產的轉賬,根據多籤演算法而定,需要達到一定比例的相關成員簽名才能解鎖該資產。

一旦使用者把主鏈資產傳送到特定地址後,監聽鏈上交易資訊的watcher就會監控到該主鏈交易,然後它會把這筆交易的資訊傳送給Signer,資訊包括了主鏈交易的tid、特定地址的address、交易金額、側鏈相應的充值地址。

在收到資訊之後,signer會透過tid來驗證交易的真實性和準確性,一旦確定交易不會被撤銷,signer會在聯盟鏈上儲存這筆跨鏈交易的資訊。此外,signer還會向側鏈發起請求,要求發幣。這樣完成了資產從主鏈向側鏈轉移的過程。

舉個例子,代幣從BCH轉移到ETH的基本流程:首先BCH鏈上向特定的多籤地址轉入一定數量的BCH,然後相應的閘道器會到ETH鏈上的合約裡面給特定賬戶進行充值一定數量的代幣。仔細來說,leader(Braft演算法的角色,後面會提及)建立ETH的交易輸入,廣播給網路中的所有節點,節點收到簽名請求,對交易內容進行校驗。如校驗透過,則會呼叫合約介面,發起充值交易。節點簽名後去ETH鏈上監聽交易是否完成,如完成,則建立一筆閘道器內部交易,記錄兩條公鏈的交易資訊。

那麼,如果使用者想把自己的資產從側鏈轉移到主鏈呢?使用者首先需要在側鏈發起回兌請求。發起回兌請求之後,會在側鏈上完成燃燒代幣的交易。這個時候watcher把監控到的資訊傳送給signer,signer會在側鏈驗證該交易是否真實和準確,在確定交易不會被撤銷後,透過Braft共識演算法來達成共識。如果共識達成,則signer會發起主鏈交易,解鎖使用者的部分代幣。同時,Signer會在鏈上儲存相關資訊。

舉個例子,從ETH把代幣回兌到BCH的基本操作:首先在ETH合約上進行代幣燃燒,相應的閘道器會在BCH上發起一筆從多籤地址到使用者地址的交易。具體來說,leader建立一個待簽名的BCH交易,廣播給網路中的其他節點,節點收到簽名請求,對交易內容進行校驗,如校驗透過,則簽名並把簽名廣播給網路中的其他節點。一旦,簽名數達到要求,則傳送交易到BCH鏈。同時,節點還從鏈上監聽交易是否最終被確認,一旦交易確認,會建立一筆閘道器內部交易,記錄兩條公鏈的交易資訊。

OFGP協議要求主鏈能夠支援多重簽名的地址或合約。比如BTC、BCH等鏈是原生支援的,ETH等透過智慧合約也可以實現多籤的合約支援。對側鏈的要求是,Signer能夠控制發幣和銷燬代幣的操作,為了保證資產安全,也需要加入多重簽名的驗證。



(整體流程圖)

總的來說,就是在主鏈上鎖定一定數量的代幣,然後根據鎖定代幣在側鏈發行新的代幣。反過來,就是側鏈上進行回兌,銷燬一定數量代幣後,在主鏈上解鎖相應數量的代幣。這裡涉及到的匯率,不管是從主鏈到側鏈的發幣,還是側鏈回主鏈的回兌的匯率都會由去中心化的閘道器來確定。主鏈和側鏈透過去中心化閘道器實現雙向錨定。

OFGP的獨有共識機制:Braft

OFGP的共識機制是基於Raft上改進的演算法,稱之為BFT RAFT演算法(Byzantine Fault Tolerant Raft),簡稱為Braft演算法。

Raft演算法是基於leader選舉的一種協議。Raft有leader、follower和candidate三種角色,這些角色是可以相互轉換的。

透過加入BFT的改進,Braft可實現閘道器多個節點的一致性,同時也提供容錯性,包括一般性的網路故障,如節點不能工作,以及拜占庭故障等。目前的設計是在節點數量為3f+1的網路中,失效節點數為f,網路仍然可以保持正確執行。

Braft節點也有跟raft類似的leader、follower、candidate三種角色,同時它把時間劃分為term,而不是系統時鐘。每個term期間從選舉leader開始,選出leader後進行請求訊息同步。如果當前term沒有可用的leader,會進入新的term。

不同節點之間透過RPC進行通訊,其中有兩個核心的RPC:RequestVote和AppendEntries。RequestVote RPC由candidate節點傳送給其他節點,請求其他節點為自己投票。如果某個candidate節點獲得了多數票,則該candidate角色轉變為leader角色。AppendEntries PRC則是由leader節點傳送給其他節點,一是提供心跳機制,證明其還在工作;另外就是使用者複製log。

Braft共識演算法的核心之一是選舉leader,那麼leader是如何選出來的?Braft的選舉跟raft演算法類似,當leader宕機或廣播假訊息,節點會對leader進行校驗,同時廣播校驗結果。當所有節點收集到其他節點發過來的異常校驗結果,一旦收集的節點數達到f+1,就會觸發leader的選舉。觸發leader選舉後,candidate開始向其他節點傳送RequestVote RPC的投票請求,節點獲得足夠的票數(2f+1),candidate即可轉換成為leader角色。為驗證合法性,新leader當選後需要向其他節點展示自己的投票資訊。

當leader選舉完成後,節點如何同步共識?Leader主要負責打包區塊並廣播出去。

區塊打包過程有三種狀態,一是廣播狀態,節點校驗本地term以及區塊高度,確認交易並廣播有效訊息;二是驗證狀態,一旦驗證透過的節點數達到2f+1(總節點數為3f+1),則資訊被確認為有效。最後是上鍊提交狀態。節點達成驗證狀態,被2f+1節點確認後,就可以廣播區塊上鍊,同時開始新增新區塊。

在Braft協議中,節點是動態加入或退出,但節點的加入或退出必須得到大多數節點的認可。

節點加入前需要設定引導節點,透過引導節點獲取所有節點資訊。新節點向所有節點廣播自己的加入請求資訊,leader收到加入請求後,會把下一個區塊設定為Reconfig型別,用於節點資訊的變更;而其他節點收到加入請求後,會等待leader資訊的Reconfig區塊。一旦Reconfig區塊共識達成,各節點把新節點資訊加入到叢集資訊。同時,為了防止任意節點加入叢集,新節點加入前需要在叢集節點加上自己的host和pubkey資訊,只有透過叢集節點的校驗後才能發起加入請求。

節點的退出也需要通知其他節點。節點廣播退出請求後,leader會把下一個區塊設定為Reconfig型別,其他節點開始等待leader的Reconfig區塊。一旦Reconfig型別的區塊共識完成,各節點把該節點的標記為退出。

最後需要關注的一點是交易過程存在異常情況的處理:比如leader建立的交易輸入和輸出作弊、leader不發起交易、不同節點之間的全節點不完全同步、雙花、網路異常(傳送簽名失敗或交易上鍊失敗等)。OFGP針對這些異常情況,有自己的解決方案,這裡不再詳述。

其他需要關注的點

在OFGP協議中需要客戶端,比如錢包來操作閘道器交易。使用者透過錢包可以完成充值和回兌的請求。充值本質上就是在主鏈上發起一筆交易。不過,在交易過程中,還需要使用者提供側鏈地址。此外,構造交易資料時,需要按照OFGP協議的資料格式填充相關的側鏈地址資訊。

還有一點是關於私鑰管理。signer負責解鎖主鏈代幣及側鏈發幣的簽名。這裡涉及到維護多重簽名地址的私鑰管理。為了兼顧安全和實用,OFGP採用了私鑰隔離加密儲存、私鑰生成及簽署服務獨立執行,並透過私鑰代理服務層對整體業務流程提供簽名資料輸出服務。

OFGP協議可以應用到哪些場景?

隨著區塊鏈增多,不同鏈之間有天然的價值流通需求。畢竟不可能一條鏈一統世界,這意味著不同的鏈會滿足不同的場景需求。不同的場景需求都會涉及到價值的使用。這樣,使用者的資產就有了在不同鏈之間進行流通的需求。

OFGP是去中心化的聯盟閘道器協議,它可以實現資產跨鏈流通,透過把資產從主鏈轉移到側鏈實現更高的擴充套件性和更豐富的落地場景。OFGP作為跨鏈模式的一種,它也可以在整個跨鏈價值生態中發揮出自己的作用。

讓我們假設Bob是一位共享出行打車鏈的司機,該打車鏈是基於以太坊的側鏈,Bob擁有打車鏈的token;Alice是共享房屋租賃鏈的房主,該租賃鏈是基於BCH的側鏈,Alice擁有該租賃鏈token;不管是Bob要租賃Alice房間,還是Alice要打Bob的車,雙方都可以使用自己的打車鏈token或租賃鏈token來支付服務費用,而無須為了打車或租賃房屋專門去交易所購買該打車token或租賃token。這中間可以透過OFGP協議進行價值的兌換和流通。

這樣的場景下,透過跨鏈價值流通,實現無縫交易和支付,使用者體驗更好。因為資產流通的摩擦變小,這會釋放出不同區塊鏈之間的潛力,最終帶來整個生態體系的成長。

最終來說,在跨鏈流通的過程中,同時完成使用者、資料、使用場景的連線,會構建出一個更大的價值生態。

除了跨鏈價值流通,具體來說,OFGP的側鏈模式在支援側鏈創新、去中心化交易所等方面也有自己的應用場景。

由於OFGP閘道器可以實現主鏈資產向側鏈轉移,在保證側鏈資產安全性的同時,也允許側鏈有更高的吞吐量來完成更高頻的場景需求。側鏈可以把重心放在使用者的實際需求上,不用擔心資產的安全。現實中的各種應用,比如遊戲、金融、社交、共享經濟都可以在側鏈上進行更多創新的探索,比如遊戲領域的loom network正在積極探索側鏈的應用場景。

又比如,可在側鏈構建更高效的去中心化交易所。傳統的去中心化交易所一般是依賴某一條主鏈,如基於以太坊的去中心化交易所。而透過OFGP的去中心化閘道器協議可以將不同幣種對映到同一條側鏈,可以實現價值流通,例如建立BCH-ETH的閘道器,把BCH對映到ETH上的一種代幣上,假設名為“BGE”的token,“BGE”是基於以太坊的ERC20 token。那麼,在基於以太坊上開發的去中心化交易合約中加入BGE和ETH的交易對,就可以實現BCH和ETH的交易。

結語

跨鏈是解決區塊鏈孤島問題的重要方法。透過去中心化的閘道器模式來解決跨鏈問題,有相對較好的落地性,同時它透過側鏈模式,實現主鏈和側鏈資產的雙向錨定,在某種程度上,它也實現了區塊鏈的擴充套件性。

一方面它保證了資產的安全,另外一方面,給了側鏈更大的擴充套件空間,在吞吐量上有了很大提升,同時,讓側鏈可以更專注於實際需求的探索和落地。這也是區塊鏈未來發展的重要探索方向。

OFGP側鏈模式的跨鏈可以加速不同鏈資產之間的流通,也可以推動更多側鏈的探索,有利於形成更加豐富的區塊鏈生態場景。目前一些側鏈的探索逐漸有了一些進展,比如loom network的遊戲應用探索等,未來還會有金融、社交、共享經濟等領域的探索。

這些基於側鏈的探索越多,場景越豐富,不同鏈之間的價值跨鏈需求就越大,OFGP的聯盟閘道器協議的需求也會越大。這是一個相互促進和共榮共進的關係。期待OFGP的跨鏈和區塊鏈的側鏈探索一起能夠儘快取得突破,從而推動整個區塊鏈生態體系的進展。

免責聲明:

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

推荐阅读

;