來源:鏈得得
一、運行結構
聯盟鏈是一個支持平行鏈和側鏈的區塊鏈網絡。在聯盟鏈網絡中,有一條特殊的鏈——Zero 鏈。Zero 鏈管理聯盟鏈 網絡的其它平行鏈,并提供跨鏈服務。其中基于 Zero 鏈誕生的超級燃料 聯盟鏈是整個聯盟鏈 網絡運行消耗的燃料。Zero 鏈有以下功能:
(1)創建獨立的一條鏈;
(2)支持與各個鏈的數據交換;
(3)管理整個聯盟鏈網絡的運行參數。
聯盟鏈是一個能包容一切區塊鏈技術的區塊鏈網絡, 其平行鏈可以支持聯盟鏈 的解決方案,也同時支持其它開源區塊鏈網絡技術方案。
二、共識機制
(1)可插拔共識機制
在當前的技術背景下,沒有哪一種共識機制是完美無缺的,每一種共識機制都有其優點和缺點,不同的應用場景可能需要不同共識機制。為了應對不同的應用需求,聯盟鏈設計了一套可插拔的共識機制,主要體現在兩點:
1.聯盟鏈不同的平行鏈允許采用不同的共識機制,以此來滿足不同的共識應用需求,用戶可通過 API 創建自己的區塊鏈, 并指定初始的共識機制。
2.聯盟鏈還支持在任意時刻通過投票表決機制實現共識的升級,從而實現共識機制的熱升級。
聯盟鏈的共識機制包括但不限于 POW、POS、PBFT、中心化共識(Raft)等。
(2)DPOS 共識算法創新
基于POS 基礎上衍生出了很多改進算法,DPOS 就是其中一種。DPOS算法是用戶通過投票選出代表進行區塊的生產。
聯盟鏈 在已有的 DOPS 算法基礎上自主創新研發了一套DPOS 共識,我們稱之為 CDPOS,依據這種算法,全網持有通證的人都可以給候選人投票。
CDPOS 的參數包括每輪的 proposer 個數、出塊間隔、節點每輪出塊個數等,在創建平行鏈的時候可以指定,也可以通過提案機制升級。通過GPS 和原子鐘保證時鐘同步。
(3)自定義共識機制
用戶可通過智能合約和共識機制的編程接口,編寫自己的共識, 并以智能合約的形式發布到聯盟鏈中 。聯盟鏈在啟動用戶創建的這條鏈的時候,會注入自定義共識,成為該鏈的共識機制。
三、主節點
主節點是一種分布式計算技術,保證每個節點的存儲和計算是可擴展的。從而為區塊鏈網絡提供源源不斷的存儲和計算支持。
(1)存儲支持
主節點會存儲所有的歷史事務的完整信息,如何支撐 PB 級別的容量非常具有挑戰。
(2)計算支持
在非POW 的共識機制下,主節點的主要計算量為交易上鏈和合約執行。很多區塊鏈軟件對交易的執行以及合約的執行都是串行執行的,優化到極致也只能使用單核,對硬件的利用率很低。主節點采用多核并行計算與分布式計算相結合的方式以提升計算效率。
四、智能合約
(1)UTXO base 的智能合約模型
我們認為UTXO(Unspent Transaction Output)相對于Account余額模型, 并發性能更好, 對熱門賬戶的性能也更優秀。
聯盟鏈底層是基于UTXO 模型,因此任何針對比特幣系統的優化都適用于聯盟鏈。
聯盟鏈在 UTXO 的基礎上做了智能合約的擴展,在擴展區可加載各種不同的合約虛擬機,每個合約機需要實現運行合約和回滾合約兩個接口。回滾機制是為了應付分叉設計的,用戶可以選擇以下優化去實現:
1)自定義回滾邏輯;
2)利用區塊鏈數操作日志,生成反向回滾日志,自動生成回滾邏輯;
3)引入MPT,分叉無需回滾支持。
(2)智能合約兼容
1)聯盟鏈內嵌合約機制
內嵌合約機制,規定智能合約編寫的接口,可直接用編程語言
(Go,C++,Java 等)編寫智能合約放到聯盟鏈 里面。當前聯盟鏈 的 Kernel API 和共識機制算法都是用這種方式實現的。
未來會引入智能合約 Store 和對智能合約的安全審計,保證發布的智能合約是安全的,從而讓公開節點放心支持。
2)第三方兼容
聯盟鏈直接支持以太坊的Solidity 語言。以太坊的智能合約代碼可以在聯盟鏈部署和 執行 。聯盟鏈同時支持 WebAssembly,并通過其支持任意語言。理論上聯盟鏈支持任何虛擬機的運行。
作者:香港國際新經濟研究院;
網上經營許可證號:京ICP備18006193號-1
copyright?2005-2022 www.5568108.com all right reserved 技術支持:鋼鏈云(北京)科技發展有限公司
服務熱線:010-59231580