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