BSN
國家信息中心、中國移動通信集團設(shè)計院有限公司、中國移動通信有限公司政企客戶分公司、中國銀聯(lián)股份有限公司、中移動金融科技有限公司、北京紅棗科技有限公司。
BSN的直接參與方有三類:
- 一是云服務(wù)商,通過安裝免費的區(qū)塊鏈服務(wù)網(wǎng)絡(luò)BSN公共城市節(jié)點軟件,將其云服務(wù)資源(CPU、存儲和帶寬)接入BSN,并在BSN上進行銷售;
- 二是區(qū)塊鏈底層框架商(特指聯(lián)盟鏈),根據(jù)BSN底層框架適配標(biāo)準(zhǔn)將框架進行適配后,可以部署到服務(wù) 網(wǎng)絡(luò),供開發(fā)者選擇使用;
- 三是門戶商,可以在已有的云服務(wù)門戶或開發(fā)者門戶內(nèi),通過BSN快速并低成本地建立BaaS(Blockchain as a Service)平臺,并向自己的客戶提供基于BSN的區(qū)塊鏈應(yīng)用開發(fā)、部署和運行服務(wù)。

目前,BSN已經(jīng)支持Hyperledger Fabric,正在適配的聯(lián)盟鏈底層框架有Fabric國密、FISCO BCOS、CITA、XuperChain、梧桐鏈和 Brochain等。針對公鏈框架,目前支持以太坊和EOS等。
火幣創(chuàng)始人李林曾表示,BSN網(wǎng)絡(luò)最大的競爭優(yōu)勢之一就是價格成本十分低廉,因此能夠觸及到更多用戶
CITA
Cryptape Inter-enterprise Trust Automation
CITA 將區(qū)塊鏈節(jié)點的必要功能解耦為六個微服務(wù):RPC,Auth,Consensus,Chain,Executor,Network。
各組件之間通過消息總線交換信息相互協(xié)作。
- 水平擴展性
在 CITA 的微服務(wù)架構(gòu)中,“節(jié)點”是一個邏輯概念,有可能是一臺服務(wù)器(一臺服務(wù)器上面運行一組微服務(wù)), 也有可能是一組服務(wù)器組成的集群,同時 CITA 還支持部署在云服務(wù)器上,充分利用了各種服務(wù)器硬件來提升處理能力。 節(jié)點與節(jié)點之間通過 P2P 通信,節(jié)點內(nèi)部各模塊通過消息總線通信,這一點與 Fabric 僅僅在共識模塊運用消息總線通信完全不同。
- 組件可插拔
松耦合的微服務(wù)架構(gòu),便于各組件將來平滑遷移至更好的算法(比如新的共識算法)或者更好的技術(shù)方案(比如新的 DB 或者新的隱私方案); 也有利于針對一些具體的業(yè)務(wù)場景,定制一些特定的功能。
- 高性能
微服務(wù)架構(gòu)將 Chain 與 Executor 獨立出來,Executor 僅負(fù)責(zé)計算和執(zhí)行交易,Chain 負(fù)責(zé)存儲交易, 使得計算和存儲分離,極大程度的提高了交易處理能力; 編程語言采用 Rust,Rust 強調(diào)并秉持零開銷抽象的理念在提供諸多高級語言特性的同時,沒有引入額外的開銷,性能可以媲美 C++。 最新版本的交易性能已經(jīng)可以達到 15,000+ TPS(數(shù)據(jù)來自 CITA 0.16 版本,在四臺 32 核,64G 的云服務(wù)器上部署 4 個節(jié)點,每臺服務(wù)器配置百兆帶寬)
- 穩(wěn)定可靠
CITA 提供快照工具來對區(qū)塊鏈的數(shù)據(jù)進行備份,可在較短時間內(nèi)恢復(fù)鏈數(shù)據(jù)。 同時,Rust 借鑒了編程語言領(lǐng)域最新的研究成果,針對 C++中最頭疼的內(nèi)存問題(內(nèi)存泄漏,野指針)進行編譯器靜態(tài)檢查。 只要代碼編譯通過,就可以保證沒有以上問題,大大提高了應(yīng)用運行階段的可靠性。
- 兼容性
CITA 上支持使用 Solidity,Go 語言,Rust 開發(fā)智能合約,同時也支持以太坊的所有開發(fā)工具(Truffle,Zeppeling,Remix 等)。
- 鏈間互動
在區(qū)塊鏈?zhǔn)澜缋铮鞣N各樣的鏈在不斷的涌現(xiàn)出來。這些鏈如何互相配合形成區(qū)塊鏈網(wǎng)絡(luò)? CITA 目前提供了一個簡單的跨鏈協(xié)議來支持主鏈與側(cè)鏈之間的通信。我們也正對跨鏈通信做更多的探索,旨在擴大在各種鏈上運行的應(yīng)用程序的價值。
快速入門 https://docs.citahub.com/zh-CN/0.18/cita/chain/getting-started
共識
共識算法解決的是針對某個提案 (proposal),系統(tǒng)中的節(jié)點達成一致的過程。在 區(qū)塊鏈系統(tǒng)中,共識算法確保所有正確節(jié)點的交易順序是一致的。CITA 共識模塊 包括 Raft 和 CITA-BFT 的實現(xiàn),共識模塊負(fù)責(zé)接收交易并進行簡單驗證,然后打 包出塊。在 CITA 的實現(xiàn)中,共識以相對獨立的形式存在,其他共識算法的實現(xiàn)可 以很方便地集成到 CITA 中。
在眾多的分布式算法中, 我們選擇實現(xiàn)了非拜占庭容錯的 Raft 算法和拜占庭容錯的的 CITA-BFT 算法。
Chain
Chain 模塊可以認(rèn)為是一個 Append only 的 KV 數(shù)據(jù)庫,它以塊為單位,不斷添加新 的區(qū)塊到鏈上,并存儲交易以及交易執(zhí)行后的狀態(tài)到數(shù)據(jù)庫。
VM Engine
智能合約是運行在可復(fù)制、共享的賬本上的計算機程序,可以處理信息,接收、 儲存和發(fā)送價值。而合約引擎則為智能合約提供了一個簡單、確定、高效、安全 的執(zhí)行環(huán)境。CITA 提供了多種形式的合約引擎,用戶使用接口與 EVM 兼容:
- EVM 合約引擎
- 原生合約引擎
交易處理
CITA 采用微服務(wù)架構(gòu),各個服務(wù)之間通過消息通道進行消息的傳遞,服務(wù)間的消息采用 Protobuf 格式進行編碼。各個服務(wù)在收到消息后,根據(jù)實際情況將消息轉(zhuǎn)化為服務(wù)內(nèi)的結(jié)構(gòu),進行相應(yīng)處理。
在 CITA 中交易的生命周期內(nèi),用戶在客戶端按照 Protobuf 結(jié)構(gòu)進行交易構(gòu)造,將 Protobuf 結(jié)構(gòu)序列化為 bytes 結(jié)構(gòu),將消息以 JSON-RPC 格式發(fā)送到 RPC 模塊。RPC 模塊對消息進行簡單驗證,驗證通過后將消息發(fā)送到 Auth 模塊。Auth 模塊進行簽名驗證等,將驗證結(jié)果通過消息通道返回給 RPC 模塊,與此同時,如果驗證通過,會將消息插入交易池。最終共識模塊打包交易,發(fā)送給 Chain&Auth 進行處理。
RPC
RPC(Remote Procedure Call Protocol) 即遠(yuǎn)程過程調(diào)用協(xié)議,它是一種通過網(wǎng) 絡(luò)從遠(yuǎn)程計算機程序上請求服務(wù),不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議,是基于可靠 性、可控制 TCP 的應(yīng)用層協(xié)議,從而保證了用戶數(shù)據(jù)的傳輸完整。
在 CITA 內(nèi)部專門提供了 RPC 模塊,用于處理用戶的 RPC 請求。其作用,一方 面對用戶的請求數(shù)據(jù)進行簡單的校驗,對不符合格式的數(shù)據(jù)進行友好錯誤狀態(tài)返 回,對于內(nèi)部模塊,過濾了部分雜亂請求,減少了共識模塊等部分壓力;
另一方面,從用戶角度來說,它是唯一與 CITA 節(jié)點進行數(shù)據(jù)交互的模塊,用戶不 需要關(guān)注其它模塊的運行狀態(tài)即可得到相應(yīng)的服務(wù),在一定程度保證了 CITA 其它 模塊的運行安全。
帳號
常見的視圖狀態(tài)模型有 UTXO 及賬戶兩種。在 UTXO 模型中,由 UTXO 構(gòu)成賬本視圖,每個交易在銷毀舊有 UTXO 的同時創(chuàng)造新的 UTXO;在賬戶模型中,由賬戶構(gòu)成世界狀態(tài)視圖,交易在處理過程中可以讀寫多個賬戶。 賬戶模型相對更加簡單,實現(xiàn)通用任務(wù)更有效率。在企業(yè)級應(yīng)用中往往存在身份驗證與授權(quán)的需要,這些服務(wù)所依賴的數(shù)據(jù)可以自然的與賬戶模型關(guān)聯(lián)。CITA 默認(rèn)支持賬戶模型。用戶可以自定義包括 UTXO 在內(nèi)的其他狀態(tài)模型。
在 CITA 中存在兩種賬號:外部賬號和合約賬號。外部賬號通常情況下代表用戶的身份,用戶可以通過外部賬號來發(fā)送交易。與公鏈不同,CITA 具有用戶準(zhǔn)入機制。首先用戶自行生成私鑰和公鑰,私鑰由用戶妥善保存; 然后將公鑰通過鏈外的方式提交給 CITA 系統(tǒng)中的 KYC 系統(tǒng);通過申請之后,系統(tǒng)管理員將用戶公鑰通過操作賬戶管理合約,發(fā)送交易將用戶加入 CITA 網(wǎng)絡(luò)中。對于未準(zhǔn)入的外部賬戶,無法向 CITA 發(fā)送交易。同時,CITA 內(nèi)置了基于角色的權(quán)限管理,系統(tǒng)管理員(角色)可以根據(jù)實際情況靈活配置賬戶的權(quán)限。
存儲
區(qū)塊鏈本質(zhì)上去中心化的分布式復(fù)制狀態(tài)機,每個節(jié)點通過持久化的方式來保存自身的狀態(tài)。CITA 使用 KV 持久化數(shù)據(jù)存儲,支持 RocksDB、LevelDB。節(jié)點將 Block 結(jié)構(gòu),交易以及合約狀態(tài)等持久化保存到 KV 數(shù)據(jù)庫中。
為了更高效的檢索和更新數(shù)據(jù),區(qū)塊鏈一般會在內(nèi)存中維護某種數(shù)據(jù)結(jié)構(gòu)的視圖模型。對于傳統(tǒng)的區(qū)塊鏈,如 Bitcoin 采用了 Merkle Tree 來保存交易;Ethereum 采用了 Merkle Patricia Tree,一種改進的 Merkle Tree 來保存狀態(tài)和交易。 CITA 采用了一種更高效的 AVL 來保存賬戶狀態(tài),并且采用了 Simple Merkle Tree 來保存交易列表和交易回執(zhí)。
XuperChain
第一,提供多組件、可實現(xiàn)定制化開發(fā)。
智能合約、共識機制等能力被拆解成單個模塊,開發(fā)者根據(jù)場景應(yīng)用需求進行靈活調(diào)用,讓區(qū)塊鏈應(yīng)用搭建更加高效。
第二,支持全球部署,可在高效的廣域網(wǎng)數(shù)據(jù)交換。
第三,性能行業(yè)領(lǐng)先,采用獨創(chuàng)的鏈內(nèi)并行技術(shù),實現(xiàn)單鏈6.5萬TPS,整體網(wǎng)絡(luò)20萬TPS。
第四,提供了多私鑰保護的賬戶體系,且賬戶系統(tǒng)是內(nèi)置在賬本,實現(xiàn)了去中心化的權(quán)限校驗,權(quán)限模型支持權(quán)重累計、集合運算等靈活的策略。
除此之外,百度自建區(qū)塊鏈社區(qū),提供完善、周全的開發(fā)者服務(wù),保證開發(fā)者快速、便捷搭建應(yīng)用。
官網(wǎng)
https://xchain.baidu.com/
Github
https://github.com/xuperchain/xuperchain
梧桐鏈
同濟大學(xué)聯(lián)合海航科技、歐冶金融、上海銀行、 中國銀聯(lián)等企業(yè),共同發(fā)起了梧桐鏈
梧桐鏈的技術(shù)架構(gòu)如下圖所示,由底層平臺和基于底層平臺的對外應(yīng)用模塊構(gòu)成。底層平臺由網(wǎng)絡(luò)服務(wù)、數(shù)據(jù)存儲、權(quán)限管理、安全機制、共識機制、智能合約等部分構(gòu)成。對外應(yīng)用模塊可針對不同的應(yīng)用場景進行系統(tǒng)化定制和提供開發(fā)API等。

1.1. 網(wǎng)絡(luò)服務(wù)
梧桐鏈基于TCP/UDP的通訊協(xié)議,支持點對點P2P通訊。節(jié)點角色可根據(jù)使用情況定制擴展,分離出不參加共識而只存儲或讀取數(shù)據(jù)的節(jié)點,分擔(dān)主網(wǎng)絡(luò)的查詢負(fù)擔(dān)。
各個節(jié)點采用P2P網(wǎng)絡(luò)技術(shù)組織網(wǎng)絡(luò),支持多節(jié)點的動態(tài)加入和退出。節(jié)點的加入和退出由權(quán)限管理控制,新加入的節(jié)點需要經(jīng)過已經(jīng)存在的節(jié)點一致同意才能夠成功。
1.2.數(shù)據(jù)存儲
梧桐鏈在運行期的數(shù)據(jù)保存在節(jié)點的內(nèi)存中,當(dāng)需要記錄一個新的區(qū)塊的時候,可以對于不同的數(shù)據(jù),選擇與其相適應(yīng)的持久化方案來保存區(qū)塊,包括但不限于關(guān)系型數(shù)據(jù)庫、NoSQL、文件系統(tǒng)等。
目前梧桐鏈已實現(xiàn)使用LevelDB存儲數(shù)據(jù),并支持?jǐn)U展到使用公有云存儲。
1.3.權(quán)限管理
權(quán)限管理負(fù)責(zé)所有參與梧桐鏈的節(jié)點權(quán)限的管理,對不同節(jié)點分別授予不同的權(quán)限。此外對于梧桐鏈的訪問和讀寫權(quán)限也有權(quán)限管理模塊負(fù)責(zé),鏈上數(shù)據(jù)只有獲得授權(quán)的用戶才能夠訪問。
基于數(shù)據(jù)在節(jié)點間匿名驗證的考慮,梧桐鏈研發(fā)團隊正在開發(fā)零知識正明和環(huán)簽名算法,將在后續(xù)的版本中上線。
1.4.安全機制
梧桐鏈的設(shè)計上需要充分考慮企業(yè)級的安全性要求,采用符合國家和國際標(biāo)準(zhǔn)的加密機制,在服務(wù)器實施部署上也有相應(yīng)的安全性保障措施。區(qū)塊和鏈?zhǔn)浇Y(jié)構(gòu),哈希算法、非對稱加密和簽名算法均支持國密算法。
梧桐鏈基于PKI的證書體系做節(jié)點身份認(rèn)證,CA服務(wù)器管理證書的發(fā)行和銷毀,節(jié)點使用數(shù)字證書進行驗證和加解密,防止出現(xiàn)節(jié)點證書重復(fù)使用、節(jié)點重復(fù)登錄、節(jié)點退出等事件引起的安全問題。
1.5.共識機制
共識算法是使梧桐鏈中各個節(jié)點達成- - 致的策略和方法。梧桐鏈采用模塊化的設(shè)計,共識算法模塊為可插拔設(shè)計,內(nèi)置多種共識算法模塊,用戶可根據(jù)系統(tǒng)類型和應(yīng)用場景進行手動選擇或動態(tài)調(diào)整。此外,梧桐鏈預(yù)留共識模塊的接口,用戶可根據(jù)自己的需求編寫并替換共識模塊。
梧桐鏈已經(jīng)實現(xiàn)Raft和PBFT共識算法。
Raft是在Paxos基礎(chǔ)上實現(xiàn)的一種分布式- 致性算法,結(jié)構(gòu)簡單且具有與Paxos一樣的功能與性能,在聯(lián)盟鏈的場景下,梧桐鏈對Raft進行了適配區(qū)塊鏈的修改和實現(xiàn),能夠在半數(shù)節(jié)點出現(xiàn)故障的情況下保證系統(tǒng)的一致性。
PBFT是一- 種拜占庭容錯算法,能夠在節(jié)點數(shù)量不小于n=3f+1的情況下,容忍f個拜占庭節(jié)點,但由于其通訊效率較低,后續(xù)會在此基礎(chǔ)上進行改進。
此外,梧桐鏈研究團隊正在研究一種可擴 展的拜占庭容錯算法,能夠根據(jù)網(wǎng)絡(luò)環(huán)境和安全情況動態(tài)調(diào)整算法,并可通過多節(jié)點并行,在不降低容錯的情況下提高tps。
1.6.智能合約
梧桐鏈采用Docker容器方案來提供隔離安全環(huán)境,智能合約運行在Docker容器中,能與鏈系統(tǒng)隔離,保證了合約執(zhí)行的安全性。用戶可根據(jù)梧桐鏈技術(shù)文檔,使用G0語言編寫智能合約。Docker容器方案可提供良好的系統(tǒng)兼容性。
梧桐鏈將實現(xiàn)自定義輕量級虛擬機方案,智能合約在虛擬機中執(zhí)行,確保和鏈上數(shù)據(jù)的隔離,避免安全風(fēng)險。同時相比Docker容器方案更加高效,支持受控的I0,內(nèi)置豐富的微服務(wù)接口。
依托于研究院測試平臺,在設(shè)計和開發(fā)過程中,梧桐鏈將引入智能合約安全測試體系,提供測試工具來檢測智能合約中的安全漏洞,幫助用戶發(fā)現(xiàn)并解決合約中的安全問題。
1.7.應(yīng)用網(wǎng)關(guān)及SDK
SDK為開發(fā)者提供區(qū)塊信息寫入、查詢、讀取等操作,使得接入梧桐鏈的難度大大降低。目前梧桐鏈提供G0語言版本的SDK,更多語言的SDK正在開發(fā)中。同時提供HTTP Restfu1的應(yīng)用網(wǎng)關(guān),使得應(yīng)用系統(tǒng)的接入更加簡單、靈活。
官網(wǎng)
https://www.wutongchain.com/
Fabric
hyperledger
超級賬本(hyperledger)是Linux基金會于2015年發(fā)起的推進區(qū)塊鏈數(shù)字技術(shù)和交易驗證的開源項目,加入的成員包括金融、制造、航運物流、咨詢等各行業(yè)的巨頭。該項目的愿景是打造一個透明、安全、去中心化的企業(yè)級區(qū)塊鏈解決方案。讓更多企業(yè)能用上區(qū)塊鏈,用好區(qū)塊鏈。
Hyper Ledger和fabric的關(guān)系
Fabric是Hyper Ledger的一個子項目。它是作為企業(yè)級聯(lián)盟鏈的基礎(chǔ)設(shè)施而存在的。
節(jié)點
比特幣、以太坊這種公有鏈上的節(jié)點只有兩種,全節(jié)點(全部區(qū)塊的歷史數(shù)據(jù))和輕節(jié)點(只和自己有關(guān)的數(shù)據(jù)),每個角色間是平等的,不含特殊功能。而Fabric的角色成員至少分為三種:主節(jié)點、背書節(jié)點、記賬節(jié)點和排序節(jié)點。其中主節(jié)點、背書節(jié)點、記賬節(jié)點屬于組織內(nèi)節(jié)點,排序節(jié)點屬于組織外節(jié)點。Fabric的節(jié)點扮演的是不同的角色。
作為公鏈,比特幣、以太坊的節(jié)點必須全部連入公網(wǎng),否則無法參與到網(wǎng)絡(luò)交易中。而Fabric只需要把組織外節(jié)點(即排序節(jié)點)部署在公網(wǎng)中,而每一個參與其中的企業(yè)主體,只暴露一個主節(jié)點就可以了。這種巧妙的設(shè)計可以幫助企業(yè)不用大動干戈就可以用上區(qū)塊鏈,同時還保證企業(yè)內(nèi)網(wǎng)的安全。
架構(gòu)
Fabric的架構(gòu)包括四種:1、客戶端。2、Peer。3、Orderer。4、CA
特點
Fabric采用X.509數(shù)字證書驗證使用者身份和角色。不同于公鏈,聯(lián)盟鏈的成員相互了解并存在合作關(guān)系,每個成員具有明確的身份,每次操作都有據(jù)可查。身份會帶來監(jiān)管和安全,一旦成員進行惡意操作,立刻會被其它成員發(fā)現(xiàn)并對其進行懲罰。
Fabric取消了礦工和激勵機制,這是因為聯(lián)盟鏈中各成員有天然的動力部署自己的節(jié)點來保證數(shù)據(jù)安全,聯(lián)盟鏈成員既是系統(tǒng)的使用者也是系統(tǒng)節(jié)點的提供者。從本質(zhì)上消除了礦工和激勵機制,也解決了始終困擾公鏈的資源競爭問題。
基于身份機制,F(xiàn)abric支持權(quán)限控制,系統(tǒng)可以授予讀寫數(shù)據(jù)、調(diào)用部署合約等權(quán)限給不同的成員或角色。Fabric還支持?jǐn)?shù)據(jù)隱私保護,成員只能訪問所屬通道的數(shù)據(jù),同一通道中也通過私有數(shù)據(jù)功能保護數(shù)據(jù)只被指定成員使用。
Fabric創(chuàng)造性地將合約執(zhí)行和出塊上鏈分離。公鏈系統(tǒng)中,合約執(zhí)行必須和出塊在一起,這是因為公鏈的節(jié)點間并缺乏信任,無法賦予部分節(jié)點特殊角色例如出塊。而聯(lián)盟鏈的節(jié)點具有身份和高信任度,能夠分化出具有不同角色的節(jié)點來提高系統(tǒng)的整體性能。Fabric中peer節(jié)點負(fù)責(zé)數(shù)據(jù)保存和合約執(zhí)行,orderer節(jié)點負(fù)責(zé)將事務(wù)執(zhí)行結(jié)果打包出塊同步給peer節(jié)點。這樣一來,peer節(jié)點可以執(zhí)行復(fù)雜的合約調(diào)用而不會影響出塊,orderer節(jié)點專注于出塊從而提高TPS。
還是基于身份機制,F(xiàn)abric采用更簡單高效的共識機制。聯(lián)盟鏈的共識機制主要解決由于網(wǎng)絡(luò)環(huán)境導(dǎo)致的數(shù)據(jù)不一致問題,而不用關(guān)心公鏈共識機制的難點欺詐問題。Fabric提供單節(jié)點出塊以及kafka集群出塊兩種方式。在此基礎(chǔ)上,有望實現(xiàn)商用級出塊速度。
Fabric支持企業(yè)級應(yīng)用開發(fā),主要體現(xiàn)在一下幾點,
- 支持Node,Go,Java等主流開發(fā)語言,方便大多數(shù)開發(fā)者開發(fā)。
- 支持部署復(fù)雜結(jié)構(gòu)合約(多文件項目)以及合約升級。
- 合約數(shù)據(jù)保存在狀態(tài)中,升級合約不影響狀態(tài)數(shù)據(jù),并可將狀態(tài)數(shù)據(jù)存入數(shù)據(jù)庫中,方便查詢。
http://www.itdecent.cn/p/c3755b7094b3
Github
https://github.com/hyperledger
使用Hyper Ledger Fabric實現(xiàn)企業(yè)級聯(lián)盟鏈
http://www.itdecent.cn/p/5a98425cefcf
http://www.itdecent.cn/p/64281ff8de13
https://www.hyperledger.org/projects/fabric
FISCO BCOS
FISCO BCOS平臺是金融區(qū)塊鏈合作聯(lián)盟(深圳)(以下簡稱:金鏈盟)開源工作組以金融業(yè)務(wù)實踐為參考樣本,在BCOS開源平臺基礎(chǔ)上進行模塊升級與功能重塑,深度定制的安全可控、適用于金融行業(yè)且完全開源的區(qū)塊鏈底層平臺。金鏈盟開源工作組的首批成員包括以下單位:微眾銀行、深證通、騰訊、華為、神州數(shù)碼、四方精創(chuàng)、博彥科技、越秀金科、亦筆科技等9家單位。
FISCO BCOS 最初源自以太坊C++版本
特點
FICO BCOS 平臺對以太坊的眾多功能刪繁就簡,保留了區(qū)塊鏈最核心的特性。熟悉Solidity和以太坊的開發(fā)人員可以迅速的搭建起聯(lián)盟鏈和開發(fā)智能合約,并可以參考和使用大量的用于以太坊的成熟框架和庫,加快開發(fā)速度。
去掉了代幣邏輯,在生成區(qū)塊時不會發(fā)行和獎勵代幣。由于去除了代幣,gas的消耗不和代幣掛鉤。FISCO BCOS保留了智能合約引擎的gas控制邏輯,以保障計算安全,針對每個區(qū)塊里的每個交易能消耗多少gas,在系統(tǒng)的設(shè)置里可以配置。
FISCO BCOS 平臺對于交易量適中,權(quán)限管理簡單的聯(lián)盟鏈應(yīng)用來說,提供了良好的經(jīng)濟性。例如已經(jīng)在使用該平臺的司法存證系統(tǒng)和盲拍應(yīng)用。一方面,節(jié)點的搭建和擴容步驟簡單,合約的開發(fā)和維護容易,大大減少了集成鏈上鏈下應(yīng)用的成本。另一方面,在PBFT或RAFT共識機制的支持下,可以實現(xiàn)秒級出塊,單鏈可以滿足100tps的交易量。
針對中國市場的需求,特別加入了對國家密碼局認(rèn)定的商用密碼的支持。實現(xiàn)了國密加解密、簽名、驗簽、哈希算法、國密SSL通信協(xié)議。對于一些對加密有特殊要求的應(yīng)用場景,F(xiàn)ISCO BCOS是為數(shù)不多滿足需求的平臺。
缺點
Solidity和EVM目前的功能還無法充分滿足各種復(fù)雜業(yè)務(wù)場景的需求。為了保證可升級性,合約里保存的數(shù)據(jù)和功能不能太復(fù)雜。常規(guī)業(yè)務(wù)調(diào)整導(dǎo)致的合約升級也會帶來比較大的挑戰(zhàn)。FISCO BCOS 平臺提供的不少特有功能目前完成度很低,還達不到商用的水平,無法形成相對其他聯(lián)盟鏈平臺的獨創(chuàng)性。
版本演進變化極大,版本間無法向后兼容。遷移業(yè)務(wù)到新版的成本極高。FISCO BCOS平臺僅提供了官方Java SDK來開發(fā)應(yīng)用,對其他開發(fā)語言支持的比較差
http://www.itdecent.cn/p/2b3976a54bf5
官網(wǎng)
https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html
Corda
Corda 是由 R3CEV 推出的一款分布式賬本平臺,其借鑒了區(qū)塊鏈的部分特性,例如 UTXO 模型以及智能合約,但它在本質(zhì)上又不同于區(qū)塊鏈,并非所有人都可以使用這種平臺,其面向的是銀行間或銀行與其商業(yè)用戶之間的互操作場景。
關(guān)于Corda是什么,我們有三句話:首先,Corda是一個分布式賬本;第二,Corda是一個去中心化數(shù)據(jù)庫;第三,Corda是一個“受區(qū)塊鏈啟發(fā)的”技術(shù)平臺。
UTXO模型
Corda采用了比特幣的UTXO模型而不是以太坊的“賬戶-余額模型”,這一點是值得贊許的。UTXO模型與賬戶-余額模型最大的不同點,就是它直接記載原始事實,而不是根據(jù)原始事實推斷出來的余額。不錯,余額往往直接可用,但余額與原始事實畢竟隔了一層甚至多層。從以太坊的經(jīng)驗看,僅憑余額狀態(tài)的日志,有時不足以完整解釋余額狀態(tài)何以發(fā)生。所以,以注重原始單據(jù)合法合規(guī)性的銀行應(yīng)用為背景的Corda,選擇UTXO模型來組織基礎(chǔ)數(shù)據(jù),是完全可以理解的。
Graph
圖譜(Graph),在Corda中起著核心的作用。它的作用,用大白話說就是“自帶證據(jù)、自證清白”。
因為沒了統(tǒng)一總賬,沒了“所有人見證所有交易”的機制,發(fā)起交易并主張預(yù)期交易結(jié)果的人必須有相應(yīng)的替代機制去推進交易的達成,具體落地就體現(xiàn)為“圖譜”。圖譜把需要自帶的證據(jù)組織成有向無環(huán)圖(DAG)結(jié)構(gòu),交易對手方或流程下游的主體可沿著圖譜的走向一一驗證。理論上,要想驗證一筆交易,不僅要驗證直接證據(jù),還要驗證產(chǎn)生直接證據(jù)的各層間接證據(jù),乃至一直追溯到源頭。
公證人
公證人(Notary),是Corda區(qū)別于其他分布式賬本平臺的最大不同點,某種意義上可以認(rèn)為是一筆特定交易的交易雙方共同認(rèn)可的可信第三方。這在傳統(tǒng)銀行業(yè)務(wù)中本不是問題,但是在分布式賬本平臺當(dāng)中,確實顯得另類。有人批評說公證人的引入使得本來從技術(shù)上可以完全去除可信第三方的區(qū)塊鏈技術(shù)又倒退回了必須依賴可信第三方的中心化局面,這話聽上去不無道理。但是,Corda中的公證人和傳統(tǒng)意義上的可信第三方,還是有很大不同的。
智能合約
Corda中的智能合約,是為驗證輸入狀態(tài)(單據(jù))是否有效和輸出狀態(tài)(單據(jù))簽發(fā)條件是否為真而設(shè)定的程序代碼,在Corda里統(tǒng)一命名為verify()函數(shù)。這種智能合約程序代碼在Corda中被轉(zhuǎn)譯為字節(jié)碼,在特定的JAVA虛擬機上運行。
隱私保護
一是抽離(Tear-off)部分敏感內(nèi)容的類盲簽名技術(shù)。該技術(shù)采用把敏感字段和非敏感字段分組哈希,再分層構(gòu)建Merkel樹的方式,使得去掉敏感字段后,剩余的Merkel樹仍然具有樹狀結(jié)構(gòu)和針對非敏感字段的驗證價值,可在其基礎(chǔ)上達到類似盲簽名的效果。同時一旦發(fā)生法律糾紛,如已去除的敏感字段內(nèi)容被偽造,該Merkel樹還可用作鑒別證據(jù)真?zhèn)沃谩?/p>
二是復(fù)合簽名技術(shù)。該技術(shù)使用感知機模型,對多個簽名主體賦權(quán),并設(shè)置加權(quán)求和閾值。一旦一個指定群體中簽名的主體所占加權(quán)和超過閾值,則復(fù)合簽名生效。這個模型可以實現(xiàn)一組簽名的“與/或”邏輯組合,但在涉及“異或”這樣的邏輯組合時失效。
監(jiān)管和運營控制
監(jiān)管介入,體現(xiàn)在Corda的如下一些技術(shù)環(huán)節(jié):
(1)許可環(huán)節(jié),可提出實名制要求、設(shè)置準(zhǔn)入條件、通過證書和名字服務(wù)將監(jiān)管要求落地;
(2)運營環(huán)節(jié),可賦予監(jiān)管節(jié)點訪問一切節(jié)點上本地數(shù)據(jù)庫的權(quán)限,獲取全部交易數(shù)據(jù),達到“看穿式”效果;
(3)應(yīng)急處置環(huán)節(jié),可賦予特定節(jié)點進行應(yīng)急處置操作的特權(quán),包括但不限于暫停交易、糾正錯誤交易等。
私鑰安全
在Corda中,任何一個“節(jié)點”都是和“身份”綁定的,而“身份”在數(shù)字世界的具體代表就是證書及私鑰。在這樣一個聯(lián)盟鏈中,私鑰和節(jié)點之間的關(guān)系是至關(guān)重要的。按照某些國家和地區(qū)的信息安全法律法規(guī),核心金融機構(gòu)的私鑰可能必須采用獨立于節(jié)點設(shè)備的物理介質(zhì)(類似U盾)的形式,采用指定的密碼學(xué)算法標(biāo)準(zhǔn)并且禁止私鑰在規(guī)定物理介質(zhì)之外存儲。人和私鑰在物理場景中的分離,私鑰信息在無人看管的節(jié)點機內(nèi)存儲,這都是私鑰安全的大忌。
即便如此,也會提出一旦私鑰丟失,應(yīng)該如何應(yīng)對的問題。這個問題還可以進一步分解為“如何防止該用的人不能用”和“如何防止不該用的人試圖用”兩個子問題。在Corda中,前一個問題可以通過復(fù)合密鑰來解決(在主用私鑰和備用私鑰之間設(shè)置“或”邏輯),而后一個問題是否可以僅通過網(wǎng)絡(luò)訪問控制措施來解決,還是一個疑問。
聯(lián)盟鏈可能應(yīng)用領(lǐng)域
- 供應(yīng)鏈金融
- 共享出行
- 司法存證
- 追蹤溯源
- 文化版權(quán)
- ...