BUMO 多鏈驚豔亮相 分層擴容突破“不可能三角”
近日,BUMO 釋出Orbits多鏈技術MVP(Minimal Viable Product)版本,該技術可大幅提高公鏈的擴充套件性和效能並突破“不可能三角”,所謂的區塊鏈“不可能三角”,也稱為“三元悖論”,通常指區塊鏈系統無法同時兼顧去中心(Decentralization)、可擴充套件性(Scalability)、安全性(Security),至多隻能三者取其二。
(不可能三角示意圖)
BUMO釋出的Orbits技術基於主鏈保證去中心化及安全的同時,通過建立子鏈來提升可擴充套件性,最大限度的兼顧“不可能三角”的三要素。同時Orbits對使用者十分友好,使用者只需要填寫幾個關鍵引數,即可便捷靈活的建立一條安全可靠的子鏈。實際測試中,BUMO建立3000條子鏈,TPS可突破百萬,其效能和擴充套件性已經處於全球領先水平。
(BUMO Orbits架構圖)
BUMO Orbits在提升可擴充套件性的同時,還可極大提升公鏈的效能。Orbits依據網路ID將主鏈擴充套件至多個子鏈,每一個子鏈只需要執行該子鏈的共識協議,網路上的交易可以分散到子鏈中來進行處理。因此子鏈越多,就有越多的交易被並行處理和驗證。通過這種平行處理的方式,將大任務拆分成多個可並行處理小任務,從而有效提升整體網路效能。
Orbits除了實現效能和可擴充套件性的提升,也在其它很多方面取得了很多技術突破:
a、共識方面採用多鏈隔離共識的方式,有效避免不同鏈共識相互影響。
b、P2P通訊方面對Gossip協議進行了有效的改進,大幅度減少了不同鏈之間的訊息冗餘。
c、節點方面提出了觀察者角色,觀察者能夠準確的識別子鏈節點做惡,有效的提升了子鏈的安全。
d、激勵機制,主鏈驗證節點不僅可以去參與主鏈的的挖礦也能去子鏈挖礦,這樣驗證節點不僅可以獲得主鏈的獎勵也可以獲得子鏈的收益。
目前主流的擴容技術方案按照層次分可以分成3層:
(擴容分層圖)
Layer 0:該層也叫資料傳輸層可擴充套件方案,主要解決優化網路傳輸速度,減少網路延時。目前有BDN分發、組播鎖定組、QUIC UDP 協議等。
Layer 1:這層主要是對鏈本身做改變,主要是通過網路層、資料層、共識層去改變鏈本身的特性,目前在這層的技術有隔離見證、分片、DAG等技術。
Layer 2:Layer2也叫鏈下擴充套件,構建在主鏈上。它們不要求對基層協議的更改,相反的,它們只是以智慧合約或者其他的形式存在,與鏈下網路進行互動。目前的解決方案有狀態通道、主子鏈技術、側鏈等。
BUMO對以上三層擴容技術方案經過深入的研究,最終採用Layer2主子鏈技術。原因在於:Layer0 可以很好的改善網路傳輸問題,但是對於公鏈的TPS來說改變的微小甚微。Layer1 的分片和DAG的方式需要對公鏈底層做大修改,會帶來很多潛在的問題,目前來看分片和DAG等技術雖然也有很多專案,到現在為止大部分還處於研究階段,能夠上POC測試的用例都還沒有,還不太成熟。關於Layer2技術,BUMO為什麼使用主子鏈技術不選狀態通道呢?由於狀態通道過於中心化,安全性還得不到太多保障。
經過BUMO團隊的架構設計,Orbits技術具備如下特性:
安全性高: 子鏈的安全可以藉助於主鏈安全得到保證,子鏈不要部署很多節點,這樣不僅提升了安全也節約了資源。
可擴充套件性高: 理論上可以無限擴充套件子鏈,且每條子鏈都是一個獨立的生態系統,通過BU關聯,具有極強擴充套件性。
效能高: 子鏈擴充套件後獨立執行,且相互之間效能不會影響,效能成線性增長。
按照網際網路正常頻寬中位數13Mbps為例,子鏈構成每筆交易實際大小為0.5k,則一個區塊打包一萬筆交易大小為5MB,理論吞吐量極限最大值約為3120TPS(10000 × 13Mbps / 5MB),實際測量的情況可以由下圖反應,當子鏈的條數掛載20條的時候TPS達到了66532,掛載300條子鏈的時候達到了904256,一直到掛載3000條子鏈的時候達到了峰值9398623,達到3000後再增加鏈的條數tps反而有所下降。 從下圖測試資料可以說明 BUMO 的子鏈掛載條數在3000這個極值範圍,TPS大概能夠突破900萬, 超過3000條子鏈整個網路就不會太穩定。
隔離性: 對於不同的業務場景可以構建不同子鏈,對不同資料進行了隔離。如果子鏈出現了問題也不會影響其它子鏈的執行。
如何搭建一條屬於自己的子鏈?
BUMO多鏈具備上述這麼多優勢,相信會有非常多開發者想嘗試構建一條自己的子鏈,以下就為BUMO開發者提供構建子鏈的方式。
在BUMO上搭建子鏈非常簡單便捷, 開發者需要在主鏈上進行註冊,繳納消費金(一定數量的BU,用於子鏈向主鏈提交區塊頭資訊所消耗的手續費),並把自己的子鏈節點加入到主鏈,這樣就構建了一條子鏈。
(開發者自主搭建子鏈示意圖)
上述是對BUMO多鏈技術的簡單介紹,如果想要詳細瞭解BUMO多鏈提供的功能,歡迎去演示環境(地址: https://multichain.bumo.io/ )體驗。假如你是開發者,對區塊鏈技術有非常深的理解,歡迎研究我們多鏈原始碼(地址: https://github.com/bumoproject/bumo/tree/feature/multichain )。