自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聯(lián)盟鏈技術(shù)對(duì)比|技術(shù)分析

原創(chuàng)
區(qū)塊鏈
區(qū)塊鏈之所以被稱(chēng)為信任的機(jī)器源于其分布式和不可篡改的兩個(gè)核心特性,這也是區(qū)塊鏈有別于傳統(tǒng)數(shù)據(jù)庫(kù)的核心特性。這里的分布式包含兩層含義:一是傳統(tǒng)的分布式存儲(chǔ),二是區(qū)塊鏈的底層協(xié)議帶來(lái)的協(xié)作性,我們這里更多的是指代其分布式協(xié)作的能力。

【51CTO.com原創(chuàng)稿件】

摘要

第46屆世界經(jīng)濟(jì)論壇達(dá)沃斯年會(huì)將區(qū)塊鏈與人工智能、自動(dòng)駕駛等一并列入“第四次工業(yè)革命”?!督?jīng)濟(jì)學(xué)人》曾在2015年10月的封面文章《信任的機(jī)器》中介紹區(qū)塊鏈——“比特幣背后的技術(shù)有可能改變經(jīng)濟(jì)運(yùn)行的方式”。

區(qū)塊鏈之所以被稱(chēng)為信任的機(jī)器源于其分布式和不可篡改的兩個(gè)核心特性,這也是區(qū)塊鏈有別于傳統(tǒng)數(shù)據(jù)庫(kù)的核心特性。這里的分布式包含兩層含義:一是傳統(tǒng)的分布式存儲(chǔ),二是區(qū)塊鏈的底層協(xié)議帶來(lái)的協(xié)作性,我們這里更多的是指代其分布式協(xié)作的能力。

黨中央在10月24日下午就區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀和趨勢(shì)進(jìn)行第十八次集體學(xué)習(xí)時(shí)指出,要抓住區(qū)塊鏈技術(shù)融合、功能拓展、產(chǎn)業(yè)細(xì)分的契機(jī),發(fā)揮區(qū)塊鏈在促進(jìn)數(shù)據(jù)共享、優(yōu)化業(yè)務(wù)流程、降低運(yùn)營(yíng)成本、提升協(xié)同效率、建設(shè)可信體系等方面的作用。我們認(rèn)為正是由于區(qū)塊鏈”可信的機(jī)器”的特性使其有在社會(huì)的諸多領(lǐng)域發(fā)揮重要作用的潛力。

在區(qū)塊鏈中主要通過(guò)共識(shí)算法、智能合約、治理、跨鏈、隱私等來(lái)實(shí)現(xiàn)其“可信協(xié)作”,所以我們將從這幾個(gè)方面并結(jié)合企業(yè)應(yīng)用場(chǎng)景來(lái)分析底層技術(shù)的差異,來(lái)幫助企業(yè)用戶(hù)更好地做出選擇。同時(shí)我們也會(huì)從傳統(tǒng)企業(yè)軟件的可維護(hù)性、性能、開(kāi)發(fā)工具、擴(kuò)展性、軟件協(xié)議等方面來(lái)進(jìn)行分析和對(duì)比。

我們選擇了市面上歷史最悠久,用戶(hù)范圍最廣的幾個(gè)開(kāi)源底層進(jìn)行對(duì)比。

FISCO BCOS誕生于2017年,由金鏈盟推出,是標(biāo)準(zhǔn)的國(guó)產(chǎn)底層。金鏈盟是由深圳市金融科技協(xié)會(huì)、深圳前海微眾銀行、深證通等二十余家金融機(jī)構(gòu)和科技企業(yè)于2016年5月31日共同發(fā)起成立的非營(yíng)利性組織。

CITA 是一個(gè)開(kāi)源的區(qū)塊鏈操作系統(tǒng)內(nèi)核,以高穩(wěn)定性,高性能,高可擴(kuò)展性為設(shè)計(jì)目標(biāo)。CITA 開(kāi)源項(xiàng)目由秘猿科技 Cryptape 于2016年發(fā)起。目前由溪塔科技等CITAHub社區(qū)企業(yè)共同維護(hù)。CITA 采用微服務(wù)架構(gòu)設(shè)計(jì),提供豐富的開(kāi)發(fā)工具集,靈活的區(qū)塊鏈治理工具,開(kāi)發(fā)者可為不同類(lèi)型的區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行二次開(kāi)發(fā)或配置。

Hyperledger Fabric是分布式賬本解決方案的平臺(tái),該平臺(tái)以模塊化架構(gòu)為基礎(chǔ),提供高度的機(jī)密性,靈活性和可擴(kuò)展性。 它旨在支持不同組件的可插拔實(shí)現(xiàn),并適應(yīng)整個(gè)經(jīng)濟(jì)生態(tài)系統(tǒng)中存在的復(fù)雜性。Fabric最早由IBM設(shè)計(jì)和開(kāi)發(fā),2015年將其源代碼奉獻(xiàn)給了Linux基金會(huì)的Hyperledger項(xiàng)目。

共識(shí)和交易流程

共識(shí)機(jī)制作為區(qū)塊鏈的靈魂,無(wú)論是公鏈還是聯(lián)盟鏈,共識(shí)機(jī)制都從根本上限制了區(qū)塊鏈的交易處理能力和擴(kuò)展性,同時(shí)也是其分布式協(xié)作能力的基礎(chǔ)。共識(shí)是分布式系統(tǒng)中節(jié)點(diǎn)對(duì)數(shù)據(jù)或網(wǎng)絡(luò)最終狀態(tài)達(dá)成的協(xié)議。由于網(wǎng)絡(luò)環(huán)境和節(jié)點(diǎn)狀態(tài)的不可控,共識(shí)機(jī)制需要同時(shí)考慮性能、可靠性、安全性等多方面問(wèn)題。共識(shí)機(jī)制從大的方面,可分為 Nakamoto Consensus等無(wú)需準(zhǔn)入的共識(shí)機(jī)制,和PBFT等需要準(zhǔn)入的共識(shí)機(jī)制兩大類(lèi)。

Nakamoto 共識(shí)在公鏈上應(yīng)用廣泛,但是它的概率模型在提供較高可靠性的同時(shí),犧牲了效率。在具體商業(yè)應(yīng)用環(huán)境中,許可機(jī)制已經(jīng)保證了一定程度上的節(jié)點(diǎn)可信度,這樣的前提下,用戶(hù)更關(guān)心執(zhí)行效率和最終確定性。這是BFT類(lèi)共識(shí)在聯(lián)盟鏈中流行的原因。

下面先分別介紹BCOS、CITA和 Fabirc共識(shí)技術(shù)實(shí)現(xiàn),我們?cè)購(gòu)男阅?,?yīng)用場(chǎng)景,擴(kuò)展性和安全性等幾個(gè)方面來(lái)進(jìn)行對(duì)比分析。

技術(shù)實(shí)現(xiàn)

BCOS共識(shí)機(jī)制效率相對(duì)較低

BCOS的共識(shí)機(jī)制采用了傳統(tǒng)的PBFT共識(shí),其共識(shí)流程主要包括Pre-prepare, Prepare和Commit三個(gè)階段:

1.Pre-prepare:Leader節(jié)點(diǎn)執(zhí)行區(qū)塊,產(chǎn)生簽名,并將Proposal廣播給其他共識(shí)節(jié)點(diǎn);

2.Prepare:共識(shí)節(jié)點(diǎn)驗(yàn)證Proposal并廣播簽名,同時(shí)收集其他節(jié)點(diǎn)簽名,節(jié)點(diǎn)收集到2f + 1的簽名后,開(kāi)始廣播Commit包;

3.Commit:Leader節(jié)點(diǎn)收集Commit包,節(jié)點(diǎn)收集滿(mǎn)2*f + 1的Commit包后,更新本地?cái)?shù)據(jù)庫(kù)并廣播給其他節(jié)點(diǎn),其他節(jié)點(diǎn)收到之后更新本地?cái)?shù)據(jù)庫(kù)。

下圖為標(biāo)準(zhǔn)的一次PBFT的過(guò)程:

在區(qū)塊鏈中因?yàn)楣沧R(shí)節(jié)點(diǎn)之間需要統(tǒng)一Commit階段的投票,所以最后的Commit階段略為不同:Leader節(jié)點(diǎn)收到2*f + 1 的Commit 包之后會(huì)將最終的Commit 包廣播給其他共識(shí)節(jié)點(diǎn)來(lái)統(tǒng)一投票。

在整個(gè)共識(shí)流程中,交易在Pre-prepare階段執(zhí)行一次,在Prepare階段驗(yàn)證一次,BCOS中使用的傳統(tǒng)PBFT流程為先執(zhí)行再驗(yàn)證的模式,包含了兩個(gè)執(zhí)行交易的時(shí)間長(zhǎng)度。

CITA采用高效的自主研發(fā)的共識(shí)協(xié)議

CITA實(shí)現(xiàn)了根據(jù)區(qū)塊鏈連續(xù)共識(shí)特點(diǎn)而優(yōu)化的CITA-BFT。區(qū)塊鏈?zhǔn)且粋€(gè)連續(xù)共識(shí)的過(guò)程,CITA將交易的執(zhí)行和共識(shí)進(jìn)行拆分,避免了兩次執(zhí)行的問(wèn)題。根據(jù)復(fù)制狀態(tài)機(jī)的原理:起始狀態(tài)一致,執(zhí)行交易順序一致,執(zhí)行過(guò)程是確定的,三個(gè)條件都滿(mǎn)足的情況下就可以保證最終結(jié)果一定會(huì)一致。在區(qū)塊鏈中起始狀態(tài)由創(chuàng)世塊來(lái)保證一致,虛擬機(jī)是完全確定的,所以只要保證交易順序一致就可以保證其最終結(jié)果一定一致。在區(qū)塊鏈中Block的preHash已經(jīng)包含了上個(gè)塊交易處理之后的世界狀態(tài)信息。CITA-BFT對(duì)當(dāng)前區(qū)塊的交易順序和上個(gè)區(qū)塊的執(zhí)行結(jié)果進(jìn)行共識(shí)。這樣在共識(shí)過(guò)程中不需要去執(zhí)行交易,而只需要在共識(shí)完之后進(jìn)行一次交易處理,大大提高了整個(gè)鏈的吞吐量。CITA-BFT是針對(duì)區(qū)塊鏈連續(xù)共識(shí)的特點(diǎn)進(jìn)行了優(yōu)化,采用了先共識(shí)后處理的方式,使得共識(shí)的過(guò)程不必執(zhí)行交易,只需要共識(shí)完成之后執(zhí)行一次交易即可。經(jīng)過(guò)驗(yàn)證,在最簡(jiǎn)單的存證交易時(shí),共識(shí)性能有35%左右提升。

CITA-BFT避免了共識(shí)協(xié)議最后一輪Leader廣播的過(guò)程。在傳統(tǒng)的PBFT中在最后的Commit階段,需要Leader收到足夠的Commit包并廣播給其他節(jié)點(diǎn)。區(qū)塊鏈?zhǔn)且粋€(gè)連續(xù)共識(shí)的過(guò)程,在CITA-BFT中,Block中共識(shí)投票是上一個(gè)區(qū)塊的投票,所以合并了Commit階段的Leader廣播最終區(qū)塊過(guò)程和下一個(gè)高度的Proposal階段,這樣節(jié)省了一輪廣播過(guò)程,通過(guò)下一個(gè)高度Proposal的過(guò)程統(tǒng)一了Commit投票信息。

CITA-BFT采用Proposal預(yù)處理技術(shù)使共識(shí)和執(zhí)行能夠并行進(jìn)行,極大地提高的系統(tǒng)性能。由于聯(lián)盟鏈在多數(shù)情況下,網(wǎng)絡(luò)狀況良好能在一輪共識(shí)流程中完成共識(shí),CITA中引入了Proposal預(yù)處理的技術(shù):在Pre-prepare階段,節(jié)點(diǎn)在收到Proposal之后可以直接處理交易,而不必等到共識(shí)流程完成,等到共識(shí)流程完成之后再將共識(shí)結(jié)果通知交易處理器。在傳統(tǒng)的PBFT的過(guò)程中,交易處理和共識(shí)是串行的,引入Proposal預(yù)處理之后,可以使得共識(shí)的Prepare階段Commit階段和交易處理并行進(jìn)行,大大提高了整個(gè)系統(tǒng)的吞吐量。經(jīng)測(cè)試,對(duì)于簡(jiǎn)單的交易處理,有10%到20%左右的性能提升。

在CITA中采用了CompactBlock的技術(shù)來(lái)壓縮共識(shí)區(qū)塊的大小,提高網(wǎng)絡(luò)帶寬利用率。Block中的交易已經(jīng)單獨(dú)廣播過(guò)一次,所以共識(shí)Block中只需要包含交易ID即可,這樣可以大大降低區(qū)塊消息的大小。經(jīng)測(cè)試在網(wǎng)絡(luò)條件較好的情況下,對(duì)于簡(jiǎn)單的交易處理,有5%到10%的性能提升。

Fabric共識(shí)機(jī)制限制業(yè)務(wù)效率提升

Fabric將其節(jié)點(diǎn)角色分為:排序節(jié)點(diǎn),背書(shū)節(jié)點(diǎn),提交節(jié)點(diǎn)??蛻?hù)端首先將交易請(qǐng)求發(fā)送給背書(shū)節(jié)點(diǎn),背書(shū)節(jié)點(diǎn)執(zhí)行后將read/write set及其簽名返回給客戶(hù)端,客戶(hù)端收集到足夠相同的結(jié)果后,將read/writeset、多組簽名和交易請(qǐng)求組成簽名后的交易,發(fā)送給排序節(jié)點(diǎn),排序節(jié)點(diǎn)組成區(qū)塊之后,廣播給提交節(jié)點(diǎn),提交節(jié)點(diǎn)驗(yàn)證read/write set和簽名數(shù)是否滿(mǎn)足,標(biāo)記結(jié)果并保存合法的結(jié)果到各自的賬本。

在Fabric中由于交易的執(zhí)行是非確定性的,這點(diǎn)不同于BCOS和CITA的設(shè)計(jì)理念。所以需要背書(shū)節(jié)點(diǎn)先執(zhí)行交易,并由客戶(hù)端根據(jù)背書(shū)策略進(jìn)行對(duì)比結(jié)果,再發(fā)給排序節(jié)點(diǎn),最終由提交節(jié)點(diǎn)驗(yàn)證并更新各自的數(shù)據(jù)庫(kù)。我們可以理解為:共識(shí)狀態(tài)的過(guò)程是由客戶(hù)端、背書(shū)節(jié)點(diǎn)、提交節(jié)點(diǎn)共同參與完成的;排序節(jié)點(diǎn)只負(fù)責(zé)交易順序的共識(shí),而不負(fù)責(zé)狀態(tài)共識(shí)。在交易狀態(tài)共識(shí)和排序可以分別采用不同的策略。比如交易狀態(tài)可以采用超過(guò)3/4的狀態(tài)一致,而排序節(jié)點(diǎn)的共識(shí)使用傳統(tǒng)的Raft或者Solo共識(shí),采用傳統(tǒng)CFT共識(shí)即可滿(mǎn)足多數(shù)場(chǎng)景。這里的問(wèn)題是交易中需要包含用戶(hù)的簽名,以及多個(gè)背書(shū)節(jié)點(diǎn)的簽名,以及read/write set,這樣導(dǎo)致交易非常大。

Fabric在交易狀態(tài)有沖突時(shí),例如A和B之間頻繁轉(zhuǎn)帳這種場(chǎng)景,因?yàn)槊抗P交易都會(huì)修改AB賬戶(hù)的余額,所以會(huì)造成交易沖突。沖突交易每個(gè)塊最多只能有一個(gè)交易被處理,這將大大限制業(yè)務(wù)合約的場(chǎng)景。

性能對(duì)比

最佳">CITA共識(shí)性能最佳

BCOS:

•傳統(tǒng)的PBFT

•共識(shí)過(guò)程中會(huì)重復(fù)執(zhí)行交易,共識(shí)效率較低

CITA:

•先共識(shí)再執(zhí)行,只執(zhí)行一次交易,整體效率較高

•優(yōu)化Commit階段的Leader廣播過(guò)程,減少共識(shí)時(shí)間

•Proposal預(yù)執(zhí)行技術(shù)使得共識(shí)和執(zhí)行并行,提高整體性能

•CompactBlock技術(shù)提高帶寬利用率

Fabric:

•執(zhí)行(驗(yàn)證)和排序可以采用不同的共識(shí)策略,比較靈活

•交易需要多個(gè)背書(shū)節(jié)點(diǎn)簽名和read/write集合會(huì)導(dǎo)致交易非常大

對(duì)比可以看出BCOS采用傳統(tǒng)PBFT,共識(shí)效率較低;CITA采用了自主研發(fā)的CITA-BFT,共識(shí)和交易處理有50%以上的性能提升;Fabric將整個(gè)流程拆分為執(zhí)行、排序、驗(yàn)證,增加了靈活性,但是驗(yàn)證和執(zhí)行的分離導(dǎo)致交易非常大。

應(yīng)用場(chǎng)景

Fabirc共識(shí)機(jī)制限制了業(yè)務(wù)場(chǎng)景

BCOS/CITA:都是BFT類(lèi)共識(shí),適合多數(shù)的聯(lián)盟鏈場(chǎng)景,由參與方、監(jiān)管方和可信第三方組成共識(shí)節(jié)點(diǎn)。

Fabric:將共識(shí)的流程拆分為執(zhí)行,排序和驗(yàn)證,具有更好的靈活性,但是由此帶來(lái)交易結(jié)構(gòu)非常大,而且沖突交易每個(gè)塊只能上鏈一個(gè)交易,大大限制了業(yè)務(wù)合約的場(chǎng)景。比如對(duì)于一個(gè)統(tǒng)計(jì)投票的合約,有N個(gè)投票者,每個(gè)投票人員通過(guò)發(fā)送交易進(jìn)行投票,因?yàn)榭偟耐镀苯Y(jié)果是共享狀態(tài),這種情況下每個(gè)區(qū)塊只能處理一筆交易。

擴(kuò)展性

 

BCOS

CITA

Fabric

節(jié)點(diǎn)擴(kuò)展性

方便節(jié)點(diǎn)的增刪

方便節(jié)點(diǎn)的增刪

背書(shū)節(jié)點(diǎn)增刪方便,排序節(jié)點(diǎn)增刪方便,

背書(shū)策略易修改,

排序策略易修改。

節(jié)點(diǎn)模塊化

共識(shí)/執(zhí)行耦合,不易替換和定制化

共識(shí)和執(zhí)行模塊分離,方便替換和定制化

執(zhí)行、排序、驗(yàn)證分離,節(jié)點(diǎn)功能可以根據(jù)情況自由組合

安全性

 

BCOS

CITA

Fabric

執(zhí)行共識(shí)

BFT類(lèi)算法只要保證2/3+1個(gè)節(jié)點(diǎn)誠(chéng)實(shí)即可正常出塊,保證1/3個(gè)共識(shí)節(jié)點(diǎn)誠(chéng)實(shí)即可保證結(jié)果正確。

BFT類(lèi)算法只要保證2/3+1個(gè)節(jié)點(diǎn)誠(chéng)實(shí)即可正常出塊,保證1/3個(gè)共識(shí)節(jié)點(diǎn)誠(chéng)實(shí)即可保證結(jié)果正確。

不同的背書(shū)策略安全性不同,既可以是安全性較高的背書(shū)節(jié)點(diǎn)全部通過(guò),也可以是單一背書(shū)節(jié)點(diǎn)通過(guò)的策略。

交易排序上鏈

BFT類(lèi)算法只要保證2/3+1個(gè)節(jié)點(diǎn)誠(chéng)實(shí)即可保證交易會(huì)上鏈

BFT類(lèi)算法只要保證2/3+1個(gè)節(jié)點(diǎn)誠(chéng)實(shí)即可保證交易會(huì)上鏈

排序可以采用Raft或者Solo共識(shí),Leader節(jié)點(diǎn)具有較大權(quán)限可以拒絕交易。

交易記錄的不可篡改

鏈?zhǔn)浇Y(jié)構(gòu)保證交易記錄不會(huì)篡改

鏈?zhǔn)浇Y(jié)構(gòu)保證交易記錄不會(huì)篡改

鏈?zhǔn)浇Y(jié)構(gòu)保證交易記錄不會(huì)篡改

交易狀態(tài)一致性

BFT類(lèi)算法只要保證2/3+1個(gè)節(jié)點(diǎn)誠(chéng)實(shí)即可正常出塊,保證1/3個(gè)共識(shí)節(jié)點(diǎn)誠(chéng)實(shí)即可保證結(jié)果正確。

BFT類(lèi)算法只要保證2/3+1個(gè)節(jié)點(diǎn)誠(chéng)實(shí)即可正常出塊,保證1/3個(gè)共識(shí)節(jié)點(diǎn)誠(chéng)實(shí)即可保證結(jié)果正確。

排序和驗(yàn)證都不進(jìn)行最終狀態(tài)的共識(shí),由提交節(jié)點(diǎn)來(lái)驗(yàn)證交易,并分別更新各自狀態(tài)。只有等待下一個(gè)相關(guān)交易讀取狀態(tài)或者客戶(hù)端主動(dòng)查詢(xún),由客戶(hù)端判斷狀態(tài)是否一致。

可以看到,BCOS和CITA都使用類(lèi)BFT的共識(shí),所以在安全性方面分析現(xiàn)有的BFT協(xié)議即可,有用比較高的安全邊界。

對(duì)于Fabric,由于執(zhí)行、排序、提交節(jié)點(diǎn)職能的分離,且執(zhí)行(驗(yàn)證)和排序可以分別采用不同的共識(shí)策略,安全策略可以由用戶(hù)自由把握,客戶(hù)端參與狀態(tài)和執(zhí)行的共識(shí)。

智能合約

智能合約一詞有一定的誤導(dǎo)性,智能往往給人帶來(lái)一定的神秘色彩,就其合約功能本身來(lái)講并無(wú)”智能性”。在區(qū)塊鏈出現(xiàn)之前,所有的系統(tǒng)都是采用中心化的架構(gòu),監(jiān)管機(jī)構(gòu)和用戶(hù)無(wú)法驗(yàn)證和保證系統(tǒng)功能的正確性,無(wú)法確保數(shù)據(jù)未被惡意修改,無(wú)法保證數(shù)據(jù)的安全性。由于區(qū)塊鏈的出現(xiàn),使得在不依賴(lài)于第三方的情況下,能夠可信地進(jìn)行交易,而且交易可追蹤無(wú)法逆轉(zhuǎn)。智能合約的核心含義在于:在區(qū)塊鏈基礎(chǔ)上實(shí)現(xiàn)可信計(jì)算,并由區(qū)塊鏈協(xié)議保證的可追蹤和無(wú)法逆轉(zhuǎn)。

在比特幣中交易主要用于點(diǎn)對(duì)點(diǎn)的現(xiàn)金支付,以太坊由于引入圖靈完備的智能合約被稱(chēng)為區(qū)塊鏈2.0。雖然理論上以太坊上的智能合約是圖靈完備的,但是受限于交易手續(xù)費(fèi)、合約指令、區(qū)塊Gas上限、節(jié)點(diǎn)可信度等,公鏈智能合約并不適用于現(xiàn)有的企業(yè)開(kāi)發(fā)。

聯(lián)盟鏈由于節(jié)點(diǎn)數(shù)量有限,且節(jié)點(diǎn)運(yùn)營(yíng)方可以采用高性能的硬件設(shè)備,以及底層協(xié)議支持等,更適合企業(yè)開(kāi)發(fā)。首先我們介紹三者智能合約的技術(shù)實(shí)現(xiàn),再分別從安全性、易用性、可用性三方面進(jìn)行對(duì)比分析。

技術(shù)實(shí)現(xiàn)

BCOS和CITA均支持EVM和預(yù)編譯合約。借助于Ethereum 智能合約的完善的生態(tài)系統(tǒng),兩者都在其基礎(chǔ)之上做了定制化,有豐富的合約編寫(xiě)和測(cè)試工具。

對(duì)于預(yù)編譯合約需要開(kāi)發(fā)者對(duì)區(qū)塊鏈系統(tǒng)有一定的了解,需要較高的門(mén)檻。當(dāng)前支持EVM的語(yǔ)言主要是Solidity,Solidity合約可以通過(guò)交易進(jìn)行部署,在調(diào)用時(shí)將合約代碼加載到虛擬機(jī)中。

Fabric的合約通過(guò)ChainCode的方式以Docker的方式進(jìn)行線(xiàn)下安裝,然后通過(guò)交易進(jìn)行激活。ChainCode合約的部署相對(duì)較重,但支持多種語(yǔ)言(Go,Javascript等),合約的部署和更新以線(xiàn)下方式進(jìn)行更新,合約代碼并沒(méi)有進(jìn)行共識(shí),可以將合約看成黑盒,只需要保證其輸入和輸出正確即可,并不關(guān)心其內(nèi)部邏輯的具體實(shí)現(xiàn)。

由于Fabric采用了傳統(tǒng)的語(yǔ)言進(jìn)行合約編寫(xiě),雖然開(kāi)發(fā)者不需要學(xué)習(xí)新的語(yǔ)言,但是由于虛擬機(jī)的不確定性,ChainCode的方式只適合Fabric的先執(zhí)行再共識(shí)再驗(yàn)證的共識(shí)方式,并不具備通用性。

安全性

安全性是智能合約有別于其他程序的主要特征,這里的安全性,包含確定性、可驗(yàn)證、可審計(jì)、可追蹤等特性。

由于BCOS和CITA在智能合約設(shè)計(jì)理念上接近,我們將兩者放入同一欄中。

 

BCOS/CITA

Fabric

確定性

完全確定

由于合約采用通用語(yǔ)言,合約執(zhí)行存在不確定性,且執(zhí)行環(huán)境有存在差異的可能性,所以不能100%保證合約計(jì)算的一致性和正確性。

可驗(yàn)證、可審計(jì)

鏈上部署、調(diào)用合約,合約代碼保存在鏈上,可以對(duì)合約執(zhí)行進(jìn)行驗(yàn)證、審計(jì)

合約部署分別由背書(shū)節(jié)點(diǎn)獨(dú)自部署和運(yùn)行,不在鏈上進(jìn)行部署和共識(shí),鏈下共識(shí),存在節(jié)點(diǎn)誤部署和修改代碼的風(fēng)險(xiǎn),無(wú)法通過(guò)區(qū)塊鏈協(xié)議保證合約的不可篡改,對(duì)驗(yàn)證和審計(jì)不夠友好。

不可逆

區(qū)塊鏈協(xié)議和數(shù)據(jù)結(jié)構(gòu)保證

區(qū)塊鏈協(xié)議和數(shù)據(jù)結(jié)構(gòu)保證

可追蹤

通過(guò)交易追蹤合約的部署、調(diào)用、更新

通過(guò)交易追蹤合約的激活和調(diào)用,但是合約代碼變更不可追蹤。

對(duì)比可以看出由于BCOS/CITA交易是鏈上執(zhí)行的,所以BCOS/CITA的智能合約更具有確定性、可驗(yàn)證、可審計(jì)、不可逆、可追蹤的特點(diǎn)。

Fabric在合約代碼由背書(shū)節(jié)點(diǎn)各自部署和升級(jí),驗(yàn)證性、審計(jì)性、可追蹤性無(wú)法保證。但是由于在Fabric的設(shè)計(jì)理念中,合約執(zhí)行后再由客戶(hù)端進(jìn)行驗(yàn)證,我們可以認(rèn)為合約最終的結(jié)果是由客戶(hù)端和背書(shū)節(jié)點(diǎn)共同決定的,只要交易結(jié)果符合背書(shū)策略并且符合用戶(hù)預(yù)期,對(duì)于合約代碼的驗(yàn)證性要求相對(duì)就沒(méi)有那么重要了。

易用性

BCOS/CITA在合約易用性上略勝于Fabric

 

BCOS/CITA

Fabric

語(yǔ)言友好度

多數(shù)場(chǎng)景下使用Solidity語(yǔ)言,經(jīng)過(guò)長(zhǎng)時(shí)間發(fā)展,Solidity已較為成熟,易上手

支持傳統(tǒng)語(yǔ)言,易上手

工具鏈

兩者都基于Solidity的工具鏈進(jìn)行了深度定制化,工具鏈完善

傳統(tǒng)語(yǔ)言,工具鏈完善

部署

通過(guò)交易,方便部署,鏈上部署

由背書(shū)節(jié)點(diǎn)通過(guò)Docker分別部署,部署成本高

調(diào)用

合約之間可以方便調(diào)用

合約調(diào)用必須在同一個(gè)ChainCode中

升級(jí)

通過(guò)部署新合約的方式進(jìn)行升級(jí)

背書(shū)節(jié)點(diǎn)分別去升級(jí)

BCOS/CITA支持以太坊EVM并且對(duì)其工具鏈進(jìn)行深度優(yōu)化,對(duì)開(kāi)發(fā)者更友好,合約的部署、調(diào)用、升級(jí)都通過(guò)交易進(jìn)行,更輕量和方便。

可用性

 

BCOS

CITA

Fabric

復(fù)雜合約

通過(guò)設(shè)置區(qū)塊交易上限使區(qū)塊鏈可以處理復(fù)雜度非常高的合約

通過(guò)設(shè)置區(qū)塊交易上限使區(qū)塊鏈可以處理復(fù)雜度非常高的合約

背書(shū)節(jié)點(diǎn)分別執(zhí)行合約,并不對(duì)合約時(shí)間和復(fù)雜度進(jìn)行限制

并行計(jì)算

支持并行計(jì)算,但是需要在交易中預(yù)先設(shè)置沖突狀態(tài),場(chǎng)景有限且使用難度比較高

不支持并行計(jì)算,交易依次執(zhí)行

不支持并行計(jì)算,交易依次執(zhí)行。同一個(gè)區(qū)塊中不允許有沖突交易,否則后續(xù)交易會(huì)失敗

指令擴(kuò)展

通過(guò)預(yù)編譯合約進(jìn)行指令擴(kuò)展

通過(guò)預(yù)編譯合約進(jìn)行指令擴(kuò)展

傳統(tǒng)語(yǔ)言,指令豐富,不需要擴(kuò)展。

定時(shí)任務(wù)

不支持

區(qū)塊鏈內(nèi)置合約定時(shí)執(zhí)行功能

不支持

BCOS/CITA/Fabric都可以應(yīng)對(duì)企業(yè)復(fù)雜的業(yè)務(wù)邏輯,支持比較復(fù)雜的合約計(jì)算和處理,同時(shí)CITA支持鏈上定時(shí)任務(wù)。

性能

經(jīng)過(guò)區(qū)塊鏈底層技術(shù)最近幾年的發(fā)展,聯(lián)盟鏈的性能已經(jīng)不再是其最主要的瓶頸。

BCOS官方文檔并未提供性能數(shù)據(jù),我們只能根據(jù)第三方提供的數(shù)據(jù)來(lái)判斷,我們找到了兩個(gè)相對(duì)可靠的信息來(lái)源。中國(guó)信通院可信區(qū)塊鏈最新評(píng)測(cè)(2019年11-19日),BCOS單鏈TPS超2萬(wàn)。在2019年7月底的一篇新聞稿”當(dāng)測(cè)試團(tuán)隊(duì)說(shuō)區(qū)塊鏈性能達(dá)到10000TPS的那一刻,張開(kāi)翔在微信群里給團(tuán)隊(duì)發(fā)出了人生中最大的紅包。“。因?yàn)閮纱螠y(cè)試數(shù)據(jù)均未提供測(cè)試用的環(huán)境、節(jié)點(diǎn)數(shù)、使用的共識(shí)協(xié)議(BCOS支持Raft)等,推測(cè)這里可能是分別使用了不同的共識(shí)方法和節(jié)點(diǎn)數(shù)進(jìn)行的測(cè)試。

CITA在官方文檔中最新版本的交易性能已經(jīng)可以達(dá)到 15,000+ TPS,數(shù)據(jù)來(lái)自 CITA 0.16 版本(2018年5月15日),在四臺(tái) 32 核,64G 的云服務(wù)器上部署 4個(gè)節(jié)點(diǎn),每臺(tái)服務(wù)器配置百兆帶寬。

Fabric官方并未提供其性能數(shù)據(jù)。根據(jù)第三方提供的數(shù)據(jù)(https://arxiv.org/pdf/1801.10228.pdf),在32核CPU,10節(jié)點(diǎn)的情況下,性能可以到3400左右。根據(jù)這份報(bào)告背書(shū)節(jié)點(diǎn)數(shù)對(duì)性能影響并不大,因?yàn)楸硶?shū)節(jié)點(diǎn)并不實(shí)際參與共識(shí)。

現(xiàn)階段聯(lián)盟的性能已經(jīng)有了長(zhǎng)足的進(jìn)步,相對(duì)落地場(chǎng)景而言,性能已經(jīng)不再是最主要的瓶頸。同時(shí)國(guó)產(chǎn)聯(lián)盟鏈在性能方面已經(jīng)不輸于國(guó)外的大品牌,甚至已經(jīng)領(lǐng)先于國(guó)外。

存儲(chǔ)

區(qū)塊鏈的存儲(chǔ)從內(nèi)容方面講主要包括兩個(gè)方面:區(qū)塊和交易存儲(chǔ)、世界狀態(tài)存儲(chǔ)。我們先分別介紹各自的實(shí)現(xiàn)方式,再?gòu)闹С謹(jǐn)?shù)據(jù)庫(kù)類(lèi)型、存儲(chǔ)效率、可擴(kuò)展性、數(shù)據(jù)維護(hù)等方面進(jìn)行對(duì)比分析。

實(shí)現(xiàn)方式

BCOS的狀態(tài)存儲(chǔ)支持兩種存儲(chǔ)模式

對(duì)于區(qū)塊的保存,BCOS交易列表,交易回執(zhí)等都采用了傳統(tǒng)的MPT方式保存。對(duì)于世界狀態(tài),BCOS采用了兩種存儲(chǔ)模式:storage state和MPT state。MPT state支持RocksDB和External存儲(chǔ),MPT存儲(chǔ)在保存歷史狀態(tài)的同時(shí),最大化減少存儲(chǔ)數(shù)據(jù)。Storage State 支持RocksDB、MySQL、External,使用storage state存儲(chǔ)時(shí),犧牲了部分的可追溯性,但帶來(lái)了性能上的提升,同時(shí)能支持SQL語(yǔ)句的查詢(xún)和統(tǒng)計(jì)。因?yàn)槭澜鐮顟B(tài)始終是可以通過(guò)交易進(jìn)行還原,所以對(duì)于犧牲部分可追溯性而換取性能的提升和狀態(tài)查詢(xún)是可以接受的。

CITA支持RocksDB、External存儲(chǔ)。使用MPT保存狀態(tài),使用Simple Merkle Tree保存交易和交易回執(zhí)。對(duì)于狀態(tài)存儲(chǔ)CITA選擇了經(jīng)典的MPT存儲(chǔ),保存歷史狀態(tài)的同時(shí),最大化減少存儲(chǔ)數(shù)據(jù)。而對(duì)于交易和交易回執(zhí)使用Simple Merkle Tree存儲(chǔ),可以?xún)?yōu)化存儲(chǔ)數(shù)據(jù)量和減少Hash計(jì)算。

Fabric的區(qū)塊存儲(chǔ),同樣采用了MPT的方式進(jìn)行保存。對(duì)于世界狀態(tài)的存儲(chǔ)支持KV和CouchDB存儲(chǔ),在世界狀態(tài)存儲(chǔ)時(shí),F(xiàn)abric不支持歷史狀態(tài)的保存,同時(shí)有性能上的提升,并支持豐富的條件查詢(xún)和統(tǒng)計(jì)。

對(duì)比分析

 

BCOS

CITA

Fabric

分布式數(shù)據(jù)庫(kù)支持

支持

支持

支持

交易/回執(zhí)存儲(chǔ)

支持KV數(shù)據(jù)庫(kù)

支持KV數(shù)據(jù)庫(kù)

支持KV數(shù)據(jù)庫(kù)

交易/回執(zhí)存儲(chǔ)性能

使用MPT存儲(chǔ),性能一般

使用Simple Merkle Tree,存儲(chǔ)和計(jì)算性能略好于MPT

使用MPT存儲(chǔ),性能一般。每個(gè)交易均需要保留背書(shū)節(jié)點(diǎn)的簽名,交易數(shù)據(jù)要大很多

KV狀態(tài)存儲(chǔ)

支持兩種模式:

KV數(shù)據(jù)庫(kù),保留歷史可追溯;

SQL數(shù)據(jù)庫(kù),不保留歷史數(shù)據(jù)不可追溯,支持條件查詢(xún)

支持KV數(shù)據(jù)庫(kù),保留歷史可追溯。

支持KV數(shù)據(jù)庫(kù),不保留歷史不可追溯。

支持CouchDB,不保留歷史不可追溯,支持條件查詢(xún)

狀態(tài)快照

不支持

支持快照,對(duì)世界狀態(tài)歷史進(jìn)行裁剪,減少歷史狀態(tài)的存儲(chǔ)

不支持

對(duì)比來(lái)看:

CITA在交易的存儲(chǔ)結(jié)構(gòu)上做了優(yōu)化和改進(jìn),提供了快照功能對(duì)世界狀態(tài)的歷史進(jìn)行裁剪。

BCOS世界狀態(tài)的存儲(chǔ)模式上,支持兩種不同的模式,允許在犧牲一部分狀態(tài)可追溯性上,提升性能和支持豐富的SQL查詢(xún)。

Fabric的世界狀態(tài)存儲(chǔ)不保留歷史狀態(tài),支持世界狀態(tài)的條件查詢(xún)。

我們認(rèn)為在交易存儲(chǔ)方面,節(jié)點(diǎn)必須要保留歷史記錄,而對(duì)于世界狀態(tài)的歷史存儲(chǔ),可以通過(guò)交易進(jìn)行還原,在這種情況下BCOS/Fabric為用戶(hù)提供較好的查詢(xún)功能和較高的性能是一個(gè)不錯(cuò)的取舍。

治理

聯(lián)盟鏈不同于公鏈的最大不同之處在于其治理方式的不同,對(duì)于公鏈來(lái)講由于其是開(kāi)放的系統(tǒng)需要一定的經(jīng)濟(jì)激勵(lì)來(lái)協(xié)調(diào)不同角色間的關(guān)系,而聯(lián)盟鏈由于節(jié)點(diǎn)是準(zhǔn)入機(jī)制,所以其治理方式與公鏈有非常大的不同。對(duì)于聯(lián)盟鏈來(lái)講,其治理主要包含:節(jié)點(diǎn)管理、帳號(hào)權(quán)限、經(jīng)濟(jì)模型。

節(jié)點(diǎn)管理

對(duì)于BCOS和CITA來(lái)講,節(jié)點(diǎn)主要分為兩類(lèi):共識(shí)節(jié)點(diǎn)和普通節(jié)點(diǎn)。共識(shí)節(jié)點(diǎn)負(fù)責(zé)共識(shí)出塊,普通節(jié)點(diǎn)只能同步數(shù)據(jù)并驗(yàn)證數(shù)據(jù)而沒(méi)有打包交易的權(quán)力。

對(duì)于Fabric,節(jié)點(diǎn)分為背書(shū)節(jié)點(diǎn),排序節(jié)點(diǎn),提交節(jié)點(diǎn)。背書(shū)節(jié)點(diǎn)負(fù)責(zé)執(zhí)行交易并返回結(jié)果,排序節(jié)點(diǎn)負(fù)責(zé)對(duì)交易排序并打包出塊,提交節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證交易并更新?tīng)顟B(tài)。

 

BCOS

CITA

Fabric

共識(shí)節(jié)點(diǎn)

通過(guò)系統(tǒng)合約進(jìn)行管理,節(jié)點(diǎn)管理員通過(guò)發(fā)送交易進(jìn)行共識(shí)節(jié)點(diǎn)的增刪

通過(guò)系統(tǒng)合約進(jìn)行管理,節(jié)點(diǎn)管理員通過(guò)發(fā)送交易進(jìn)行共識(shí)節(jié)點(diǎn)的增刪

通過(guò)配置文件進(jìn)行管理排序節(jié)點(diǎn)管理,節(jié)點(diǎn)管理員通過(guò)發(fā)送交易激活新的配置文件,通過(guò)CA來(lái)認(rèn)證

普通節(jié)點(diǎn)

通過(guò)白名單和黑名單管理鏈接,通過(guò)CA來(lái)判斷節(jié)點(diǎn)是否為普通節(jié)點(diǎn)

每個(gè)節(jié)點(diǎn)通過(guò)各自的白名單/黑名單來(lái)管理各自的普通節(jié)點(diǎn),不判斷普通節(jié)點(diǎn)身份

通過(guò)配置文件來(lái)管理背書(shū)節(jié)點(diǎn)和提交節(jié)點(diǎn),Channel管理員通過(guò)發(fā)送交易來(lái)激活新的配置文件,通過(guò)CA來(lái)認(rèn)證

對(duì)于共識(shí)節(jié)點(diǎn)BCOS/CITA均采用了系統(tǒng)合約的方式進(jìn)行管理,節(jié)點(diǎn)的增刪需要共識(shí)節(jié)點(diǎn)進(jìn)行共識(shí)。而Fabric的節(jié)點(diǎn)增刪,可以由節(jié)點(diǎn)管理員修改配置,無(wú)需共識(shí),但是激活新的配置文件需要發(fā)送交易并進(jìn)行共識(shí)。

我們認(rèn)為通過(guò)白名單/黑名單的方式或者CA的方式管理節(jié)點(diǎn)身份,均能滿(mǎn)足聯(lián)盟鏈的大多數(shù)場(chǎng)景,CA在對(duì)節(jié)點(diǎn)身份的驗(yàn)證方面更加嚴(yán)格。

用戶(hù)權(quán)限管理

對(duì)于聯(lián)盟鏈來(lái)將,聯(lián)盟各個(gè)角色以及聯(lián)盟內(nèi)均需要比較復(fù)雜的權(quán)限管理,這樣不同的角色只能訪(fǎng)問(wèn)屬于自己授權(quán)的資源。

在CITA/BCOS中都通過(guò)復(fù)雜的權(quán)限管理,來(lái)對(duì)用戶(hù)的交易權(quán)限進(jìn)行管理,包括發(fā)送交易,創(chuàng)建合約,合約方法調(diào)用權(quán)限等等。

Fabric通過(guò)配置文件的方式(Policy)的方式進(jìn)行管理用戶(hù)的權(quán)限。

BCOS/CITA權(quán)限管理通過(guò)交易的方式進(jìn)行管理,比Fabric通過(guò)配置文件的方式修改,更加區(qū)塊鏈化,治理操作會(huì)保留痕跡。

經(jīng)濟(jì)模型

CITA支持兩種不同的經(jīng)濟(jì)模型

在公鏈中,礦工打包用戶(hù)的交易往往需要用戶(hù)支付一定的手續(xù)費(fèi);對(duì)于聯(lián)盟鏈來(lái)講,情況有所不同。

 

BCOS

CITA

Fabric

免費(fèi)模式

用戶(hù)免費(fèi)發(fā)送交易,但是會(huì)限制用戶(hù)每個(gè)區(qū)塊內(nèi)交易復(fù)雜度,雖然免費(fèi)但是也在一定程度上限制用戶(hù)濫用資源

用戶(hù)免費(fèi)發(fā)送交易,但是會(huì)限制用戶(hù)每個(gè)區(qū)塊內(nèi)交易復(fù)雜度,雖然免費(fèi)但是也在一定程度上限制用戶(hù)濫用資源

不考慮交易復(fù)雜度和交易數(shù)量,只要有權(quán)限,背書(shū)節(jié)點(diǎn)一定會(huì)執(zhí)行,用戶(hù)可以隨意使用系統(tǒng)資源

收費(fèi)模式

無(wú)

用戶(hù)發(fā)送交易需要支付系統(tǒng)原生Token給出塊節(jié)點(diǎn),管理員可以通過(guò)系統(tǒng)合約調(diào)整共識(shí)節(jié)點(diǎn)出塊權(quán)限

無(wú)

BCOS、CITA和Fabric均支持向用戶(hù)提供免費(fèi)服務(wù)的模式,同時(shí)在BCOS/CITA中會(huì)通過(guò)系統(tǒng)合約控制用戶(hù)單個(gè)區(qū)塊內(nèi)對(duì)系統(tǒng)資源的使用情況,防止對(duì)系統(tǒng)濫用。

而CITA又可以支持收費(fèi)模式,節(jié)點(diǎn)對(duì)用戶(hù)交易精確計(jì)費(fèi)并收取Token手續(xù)費(fèi)。而Token即可以是節(jié)點(diǎn)免費(fèi)分配給用戶(hù),也可以需要用戶(hù)有償使用,這樣可以更加精細(xì)地控制用戶(hù)對(duì)系統(tǒng)資源的使用情況。

跨鏈和隱私

跨鏈和隱私方案,距離生產(chǎn)環(huán)境依然有可優(yōu)化空間

BCOS引入了群組的方式,使一個(gè)節(jié)點(diǎn)可以屬于不同群組,而群組的消息、交易、存儲(chǔ)、執(zhí)行等等完全隔離。

Fabric 的群組概念和BCOS類(lèi)似,一個(gè)節(jié)點(diǎn)可以屬于不同群組,不同群組可以使用不同的背書(shū)策略。

在BCOS和Fabric中,群組的數(shù)據(jù)和通信等都是隔離的,并且可以使用不同的共識(shí)策略,所以可以將其看成多鏈。當(dāng)前對(duì)于多鏈最大的問(wèn)題在于鏈間通信,兩者在這方面均沒(méi)有非常成熟方案。

在CITA中,引入了側(cè)鏈技術(shù),側(cè)鏈和主鏈之間可以互相通信,側(cè)鏈技術(shù)距離生產(chǎn)環(huán)境依然有可優(yōu)化的空間。

無(wú)論群組或者側(cè)鏈等技術(shù),本質(zhì)上都是一種多鏈技術(shù),當(dāng)前多鏈技術(shù)只能解決節(jié)點(diǎn)的隱私問(wèn)題,暫時(shí)無(wú)法處理交易和用戶(hù)級(jí)別的隱私。

CITA已經(jīng)開(kāi)源其零知識(shí)證明和SGX的實(shí)現(xiàn)。

對(duì)于同態(tài)加密、零知識(shí)證明,SGX等等,都處于發(fā)展階段,距離生產(chǎn)環(huán)境依然有可優(yōu)化的空間。

密碼學(xué)支持

CITA在密碼學(xué)支持上更全面

 

BCOS

CITA

Fabric

Hash算法

Keccak

Keccak/blake2b

SHA3

簽名算法

Secp256k1

Secp256k1/ED25519

Secp256k1

國(guó)密支持

支持

支持

對(duì)比可以看到BCOS/CITA均支持國(guó)密,對(duì)國(guó)內(nèi)監(jiān)管需求較友好;在密碼學(xué)算法支持上CITA更全面,除了支持常見(jiàn)的Keccak/Secp256k1之外,也支持更安全性能更好的Keccak/Secp256k1。

系統(tǒng)架構(gòu)

CITA采用了微服務(wù)架構(gòu)

BCOS和Fabric均采用了單一系統(tǒng)的架構(gòu),這種架構(gòu)要求節(jié)點(diǎn)必須在單一的物理機(jī)器上。

而CITA采用了微服務(wù)架構(gòu),而且CITA也是全球第一個(gè)使用微服務(wù)架構(gòu)的開(kāi)源區(qū)塊鏈。采用微服務(wù)架構(gòu),可以使節(jié)點(diǎn)不僅僅限制在單個(gè)物理機(jī)器上,這樣對(duì)于企業(yè)用戶(hù)可以用更好的硬件設(shè)備去支持節(jié)點(diǎn),有更好的擴(kuò)展性。由于微服務(wù)間通過(guò)消息訂閱進(jìn)行通信,企業(yè)用戶(hù)可以方便地替換或者增加定制化的服務(wù),方便進(jìn)行功能擴(kuò)展。

開(kāi)源協(xié)議

BCOS的開(kāi)源協(xié)議對(duì)商業(yè)應(yīng)用不夠友好

 

BCOS

CITA

Fabric

開(kāi)源協(xié)議

GPL-3.0

Apache-2.0

Apache-2.0

這里簡(jiǎn)單介紹下相關(guān)的開(kāi)源協(xié)議。

GPL協(xié)議的主要內(nèi)容是只要在一個(gè)軟件中使用(”使用”指類(lèi)庫(kù)引用,修改后的代碼或者衍生代碼)GPL 協(xié)議的產(chǎn)品,則該軟件產(chǎn)品必須也采用GPL協(xié)議,既必須也是開(kāi)源和免費(fèi)。這就是所謂的”傳染性”。由于GPL嚴(yán)格要求使用了GPL類(lèi)庫(kù)的軟件產(chǎn)品必須使用GPL協(xié)議,對(duì)于使用GPL協(xié)議的開(kāi)源代碼,商業(yè)軟件或者對(duì)代碼有保密要求的部門(mén)就不適合集成/采用作為類(lèi)庫(kù)和二次開(kāi)發(fā)的基礎(chǔ)。

Apache Licence也是對(duì)商業(yè)應(yīng)用友好的許可。使用者也可以在需要的時(shí)候修改代碼來(lái)滿(mǎn)足需要并作為開(kāi)源或商業(yè)產(chǎn)品發(fā)布/銷(xiāo)售。

由此可以看出,BCOS的開(kāi)源協(xié)議對(duì)商業(yè)應(yīng)用不夠友好。

語(yǔ)言實(shí)現(xiàn)

CITA使用更現(xiàn)代的語(yǔ)言Rust,性能更高同時(shí)安全性更可靠

BCOS:使用C++進(jìn)行開(kāi)發(fā),C++性能高,但是由于其歷史原因,系統(tǒng)容易有內(nèi)存安全的隱患;

Fabirc:Go實(shí)現(xiàn),由于垃圾回收機(jī)制性能比C++弱;

CITA:Rust實(shí)現(xiàn),現(xiàn)在相對(duì)主流的區(qū)塊鏈界的語(yǔ)言,Rust在內(nèi)存安全方面有保證,性能可以和C++媲美。

總結(jié)

經(jīng)過(guò)以上的分析,我們匯總其最主要的優(yōu)缺點(diǎn):

 

BCOS

CITA

Fabric

優(yōu)點(diǎn)

•     兩種不同的存儲(chǔ)模式

•     智能合約方便易用

•     自主研發(fā)高效的共識(shí)算法

•     智能合約方便易用

•     支持CouchDB存儲(chǔ)

•     共識(shí)協(xié)議更加靈活

缺點(diǎn)

•     開(kāi)源協(xié)議對(duì)商業(yè)應(yīng)用不友好

•     數(shù)據(jù)庫(kù)不支持條件查詢(xún)

•     共識(shí)和交易流程限制其業(yè)務(wù)場(chǎng)景

 【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】

責(zé)任編輯:Captain 來(lái)源: 51CTO
相關(guān)推薦

2010-06-24 21:35:33

2013-01-17 16:11:11

數(shù)據(jù)中心交換機(jī)網(wǎng)絡(luò)虛擬化

2018-09-21 12:52:43

阿里云脫貧

2021-09-13 15:40:37

區(qū)塊鏈教育技術(shù)

2015-05-27 10:01:43

WAPI產(chǎn)業(yè)聯(lián)盟信銳

2011-12-20 13:19:00

LifeSizeVMware

2011-04-07 10:16:12

虛擬化技術(shù)成本

2018-02-06 05:03:00

2022-01-24 14:44:06

區(qū)塊鏈跨鏈技術(shù)

2009-09-16 22:42:22

BVMware技術(shù)應(yīng)用交付網(wǎng)絡(luò)Blue Coat

2022-05-30 11:47:49

數(shù)據(jù)技術(shù)監(jiān)測(cè)

2018-05-10 12:55:51

大數(shù)據(jù)對(duì)比分析面試

2017-06-27 18:01:39

互聯(lián)網(wǎng)

2022-10-26 08:42:28

2021-04-09 06:25:41

區(qū)塊鏈區(qū)塊鏈技術(shù)

2018-12-17 14:00:44

公有鏈聯(lián)盟鏈私有鏈

2018-05-11 16:30:03

2022-04-20 14:35:59

區(qū)塊鏈生物技術(shù)NFT

2018-08-24 15:25:58

2022-02-21 00:07:53

區(qū)塊鏈技術(shù)5G
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)