互聯(lián)網(wǎng)進(jìn)入生態(tài)時(shí)代,其應(yīng)用已滲透到金融服務(wù)、物聯(lián)網(wǎng)、供應(yīng)鏈管理、數(shù)字資產(chǎn)交易、電子商務(wù)等多個(gè)領(lǐng)域。區(qū)塊鏈的出現(xiàn),使得互聯(lián)網(wǎng)發(fā)展從信息互聯(lián)網(wǎng)到價(jià)值互聯(lián)網(wǎng)、秩序互聯(lián)網(wǎng)轉(zhuǎn)型,其以共享經(jīng)濟(jì)與價(jià)值鏈接為主要特征的“分布式商業(yè)”模式,將催生大量的跨機(jī)構(gòu)新型創(chuàng)新合作場景,構(gòu)建起以區(qū)塊鏈技術(shù)為虛擬中心的新產(chǎn)業(yè)生態(tài)系統(tǒng),將對(duì)經(jīng)濟(jì)社會(huì)治理、產(chǎn)業(yè)變革與創(chuàng)新產(chǎn)生顛覆式影響。因此我公司與時(shí)俱進(jìn)已開始著力布局區(qū)塊鏈。
什么叫區(qū)塊鏈呢?區(qū)塊鏈?zhǔn)切乱淮畔⒓夹g(shù)的重要組成部分,是分布式網(wǎng)絡(luò)、加密技術(shù)、智能合約等多種技術(shù)集成的新型數(shù)據(jù)庫軟件,具有數(shù)據(jù)透明、不易篡改、可追溯等優(yōu)點(diǎn)。
區(qū)塊鏈由哪些內(nèi)容構(gòu)成呢?
一、運(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è)接口?;貪L機(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)行。
我公司正在選擇一條符合自身企業(yè)情況合適的公鏈,加入企業(yè)商業(yè)聯(lián)盟構(gòu)造一個(gè)商務(wù)平臺(tái),通過商務(wù)平臺(tái)對(duì)接公鏈。
對(duì)自已的客戶建立電子檔案,客戶后續(xù)在公鏈上進(jìn)行KYC認(rèn)證,合同款支付,原料采購統(tǒng)一用數(shù)字貨幣支付?,F(xiàn)在中國已在多種商業(yè)領(lǐng)域推行數(shù)字人民幣,各種條件正在形成正是大好時(shí)機(jī)。我們一定要把握住這種風(fēng)口。正如雷軍所說:“風(fēng)口來了,豬也能起飛”。