区块链BaaS云服务(29) 溪塔科技 CITA-Cloud 二
1. 共識(shí)服務(wù) Consensus
交易通過(guò)可證數(shù)據(jù)結(jié)構(gòu)凝結(jié)成不可篡改的歷史,在被執(zhí)行器處理之后形成的數(shù)據(jù)我們稱之為視圖(View),記錄用戶賬戶余額的賬本即是視圖的一種。
- 不同的區(qū)塊鏈設(shè)計(jì)對(duì)于視圖是否需要共識(shí)有不同的態(tài)度。
- 對(duì)視圖數(shù)據(jù)進(jìn)行共識(shí),有利于發(fā)現(xiàn)交易處理中的問(wèn)題;將視圖的特征值固化在區(qū)塊中,- 有利于節(jié)點(diǎn)間視圖數(shù)據(jù)的交換,是輕節(jié)點(diǎn)驗(yàn)證和跨鏈協(xié)議的重要基礎(chǔ)。
1.1 反屏蔽
作為一種多參與方的共享服務(wù),保證使用者發(fā)出的交易能夠在一定的時(shí)間內(nèi)被處理。
CITA 使用出塊節(jié)點(diǎn)主動(dòng)輪換策略以滿足反屏蔽的要求。
-
默認(rèn)的順序輪換能夠滿足一般應(yīng)用的需要,同時(shí)也提供隨機(jī)輪換作為擴(kuò)展模塊。
-
在產(chǎn)生新區(qū)塊后
1.2 CITA-BFT 共識(shí)
CITA-BFT 是一種高性能共識(shí)算法。在 PBFT,Tendermint 的基礎(chǔ)上,針對(duì)企業(yè)級(jí)區(qū)塊鏈的網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)進(jìn)行了深度的改造和優(yōu)化,在保證安全性的基礎(chǔ)上(可容忍不超過(guò)節(jié)點(diǎn)總數(shù) 1/3 的拜占庭節(jié)點(diǎn)),實(shí)現(xiàn)了極高的吞吐量。
- 可以方便的被替換成任何更合適的共識(shí)算法,只要實(shí)現(xiàn)共識(shí)服務(wù)標(biāo)準(zhǔn)接口,替換算法可以用任意語(yǔ)言實(shí)現(xiàn)。
- 共識(shí)算法替換往往涉及網(wǎng)絡(luò)、存儲(chǔ)等多個(gè)方面,很難被完美抽象,因此共識(shí)算法的替換可能不僅僅需要共識(shí)服務(wù)的替換,還需要同步對(duì)其他微服務(wù)進(jìn)行定制。
2. 交易處理服務(wù)
2.1 異步交易處理(ATE)
CITA 將共識(shí)與交易處理解耦為獨(dú)立的微服務(wù),共識(shí)服務(wù)只負(fù)責(zé)交易排序,并不關(guān)心交易內(nèi)容,交易處理服務(wù)只負(fù)責(zé)對(duì)排好順序的交易進(jìn)行處理。
此時(shí)共識(shí)過(guò)程可以先于交易處理完成,交易處理服務(wù)可以異步執(zhí)行。異步交易處理技術(shù)不僅使 CITA 具有更好的共識(shí)性能,還帶來(lái)了更有彈性的交易處理能力,交易負(fù)荷可以被更均勻的分?jǐn)偟揭欢螘r(shí)間內(nèi)(見圖2)。
由于交易異步處理,在共識(shí)前只能對(duì)交易進(jìn)行有限的檢查,例如簽名驗(yàn)證。無(wú)效的交易有可能通過(guò)共識(shí)進(jìn)入交易處理服務(wù),產(chǎn)生一定程度的垃圾數(shù)據(jù)。在有必要的情況下,可以通過(guò) CITA 的交易配額機(jī)制及垃圾清理技術(shù)解決該問(wèn)題。
2.2 執(zhí)行器 Executor
相對(duì)于交易列表,應(yīng)用更關(guān)心的數(shù)據(jù)是視圖。執(zhí)行器以排好序的交易為輸入,在處理過(guò)程中相應(yīng)的更新對(duì)應(yīng)的視圖。即使處理的是相同的交易列表,不同的執(zhí)行器可以產(chǎn)生不同的視圖。CITA 默認(rèn)支持如下執(zhí)行器:
2.3 視圖狀態(tài)模型
視圖狀態(tài)則是執(zhí)行器執(zhí)行過(guò)程中讀寫的對(duì)象,不同的使用不同的基本數(shù)據(jù)單元。CITA 默認(rèn)支持賬戶模型。用戶可以自定義包括 UTXO 在內(nèi)的其他狀態(tài)模型。
-
UTXO 模型
由 UTXO 構(gòu)成賬本視圖,每個(gè)交易在銷毀舊有 UTXO 的同時(shí)創(chuàng)造新的 UTXO;
包含交易前后記賬單位數(shù)量不變約束,引入了業(yè)務(wù)邏輯,放棄了一定的通用性;將賬戶狀態(tài)離散保存在多個(gè) UTXO 中,獲得了有限的并行能力提升,也帶來(lái)了分割/合并 UTXO 的復(fù)雜度。 -
賬戶模型
由賬戶構(gòu)成世界狀態(tài)視圖,交易在處理過(guò)程中可以讀寫多個(gè)賬戶。
實(shí)現(xiàn)通用任務(wù)更有效率。在企業(yè)級(jí)應(yīng)用中往往存在身份驗(yàn)證與授權(quán)的需要,這些服務(wù)所依賴的數(shù)據(jù)可以自然的與賬戶關(guān)聯(lián)。
2.4 配額 Quota
類似于以太坊的gas,在 CITA 中我們將資源的度量稱為計(jì)算配額,相應(yīng)的發(fā)行和消耗機(jī)制稱為配額管理。配額消耗和發(fā)行策略都可以由具有權(quán)限的用戶制定。
-
不同的執(zhí)行器具有不同的配額消耗機(jī)制。例如,NOOP 執(zhí)行器按照交易數(shù)據(jù)大小計(jì)算配額消耗,Native 執(zhí)行器隨著真實(shí)世界的時(shí)鐘跳動(dòng)計(jì)算消耗,而 EVM 自帶細(xì)粒度的 GAS 計(jì)算機(jī)制,按照指令復(fù)雜度計(jì)算配額消耗。
-
可以為區(qū)塊(中的視圖)或是用戶設(shè)置配額消耗上限,以此將控制單個(gè)區(qū)塊的資源消耗。
-
許可鏈中往往無(wú)需配額消耗。CITA 中的配額發(fā)行策略非常靈活,不僅默認(rèn)支持包括周期性恢復(fù)在內(nèi)的簡(jiǎn)單策略,也可以根據(jù)需要自定義復(fù)雜策略。
3. 視圖 View
實(shí)現(xiàn)了多執(zhí)行策略支持與基本的并行處理。
-
用戶在配置 CITA 區(qū)塊鏈網(wǎng)絡(luò)時(shí)可以設(shè)定多個(gè)視圖,視圖相互獨(dú)立。每個(gè)視圖都可以設(shè)定對(duì)應(yīng)的交易執(zhí)行器和狀態(tài)存儲(chǔ)模型,并將交易執(zhí)行器注冊(cè)到交易路由。交易在經(jīng)過(guò)共識(shí)服務(wù)排序后,由交易路由分配到不同的執(zhí)行器處理(見圖3)。不同視圖處理的交易子集可以有交集,也可以沒(méi)有交集。
-
全面的支持各種應(yīng)用場(chǎng)景。例如配置 NOOP 執(zhí)行器的視圖能夠很好的支持?jǐn)?shù)據(jù)存證的場(chǎng)景,避免不必要的執(zhí)行開銷;Native 執(zhí)行器與賬戶模型的組合適合業(yè)務(wù)邏輯比較固定的場(chǎng)景,同時(shí)能夠獲得很好的性能;EVM執(zhí)行器與賬戶模型組合適用于業(yè)務(wù)邏輯靈活多變的場(chǎng)景。
由于使用獨(dú)立的狀態(tài)存儲(chǔ),CITA 支持對(duì)不同的視圖使用獨(dú)立的交易處理服務(wù)并行處理。在配置了多個(gè)視圖的 CITA 區(qū)塊鏈網(wǎng)絡(luò)中,系統(tǒng)處理能力幾乎與可以與視圖數(shù)量成正比。
3.1 隱私交易
當(dāng)前問(wèn)題:
-
基于假名(psedonymous)的隱私保護(hù),只能在一定程度上隱藏交易的發(fā)起方和接收方, 通過(guò)數(shù)據(jù)分析手段還是能獲得交易方信息。在使用臨時(shí)私鑰對(duì)交易加密的方案中,共識(shí)節(jié)點(diǎn)依然需要對(duì)交易進(jìn)行解密才能執(zhí)行交易,交易對(duì)共識(shí)節(jié)點(diǎn)沒(méi)有隱私。
-
零知識(shí)證明以及同態(tài)加并不成熟
交易局部執(zhí)行技術(shù),實(shí)現(xiàn)了一種實(shí)用的隱私方案。
step1. 隱私交易提交后,先在本地進(jìn)行加密,加密后的交易通過(guò)點(diǎn)對(duì)點(diǎn)隱私交易傳輸協(xié)議被傳送給擁有解密私鑰的節(jié)點(diǎn),同時(shí)交易哈希被打包進(jìn)入?yún)^(qū)塊鏈。
step2. 隱私交易數(shù)據(jù)只在擁有解密私鑰的相關(guān)節(jié)點(diǎn)上保存,相關(guān)節(jié)點(diǎn)先解密再執(zhí)行交易,交易數(shù)據(jù)不會(huì)發(fā)送給無(wú)關(guān)節(jié)點(diǎn),完全杜絕了任何信息泄漏的可能。
4 身份驗(yàn)證與授權(quán)服務(wù)
區(qū)塊鏈中的參與方可分為節(jié)點(diǎn)和用戶兩類。
-
節(jié)點(diǎn):區(qū)塊鏈服務(wù)的提供者
節(jié)點(diǎn)身份驗(yàn)證提供了標(biāo)準(zhǔn)接口,同時(shí)對(duì)節(jié)點(diǎn)接入進(jìn)行更嚴(yán)格的控制。對(duì)于身份驗(yàn)證失敗的節(jié)點(diǎn),即使該節(jié)點(diǎn)能夠在網(wǎng)絡(luò)層與其他 CITA 節(jié)點(diǎn)聯(lián)通,CITA 節(jié)點(diǎn)也會(huì)拒絕與其建立通訊會(huì)話,避免信息泄漏。 -
用戶:區(qū)塊鏈服務(wù)的消費(fèi)者
CITA 為用戶身份驗(yàn)證提供了標(biāo)準(zhǔn)接口,能夠方便的與企業(yè)內(nèi)已有的身份驗(yàn)證服務(wù)集成。例如 LDAP 或是 PKI 證書體系。
-
身份驗(yàn)證服務(wù)支持更復(fù)雜的身份管理策略,在用戶私鑰丟失或是定期更新時(shí),具有私鑰更新權(quán)限的操作者可以根據(jù)用戶申請(qǐng)使用新的私鑰替換舊的私鑰。
-
實(shí)現(xiàn)了基于角色的權(quán)限控制(Role-based access control)。
-
為可供用戶操作的資源進(jìn)行了細(xì)粒度的劃分和權(quán)限定義,并允許用戶自定義角色,用戶可以通過(guò)角色方便的組織用戶、管理資源權(quán)限,使權(quán)限分配準(zhǔn)確匹配企業(yè)的組織架構(gòu)。同時(shí)權(quán)限與角色數(shù)據(jù)和變更歷史都會(huì)被保存在區(qū)塊鏈上,滿足日后審計(jì)需要。
5 系統(tǒng)治理
CITA 以交易歷史不可修改為設(shè)計(jì)原則,支持各種治理機(jī)構(gòu)以及視圖訂正。
- 用戶可以設(shè)定超級(jí)管理員角色,超級(jí)管理員角色可以有任意的身份驗(yàn)證邏輯。在單中心的治理結(jié)構(gòu)下該角色可以由單一核心用戶控制,在多中心的治理結(jié)構(gòu)下,核心用戶可以形成類似委員會(huì)的治理機(jī)構(gòu)聯(lián)合控制(例如通過(guò)多重簽名)超級(jí)管理員角色。
- 中心化治理角色能夠通過(guò)鏈外通道協(xié)商形成一致行動(dòng)決議,增強(qiáng)系統(tǒng)在緊急情況下的應(yīng)對(duì)能力。
- 在操作錯(cuò)誤、軟件錯(cuò)誤或是硬件錯(cuò)誤等問(wèn)題發(fā)生時(shí),系統(tǒng)可能進(jìn)入緊急狀態(tài)。
5.1緊急狀態(tài)
-
交易可恢復(fù)(Transaction Recoverable)
由于錯(cuò)誤的交易或者是有 bug 的智能合約生成了錯(cuò)誤的視圖數(shù)據(jù),但是節(jié)點(diǎn)依然能夠處理交易,此時(shí)系統(tǒng)處于交易可恢復(fù)緊急狀態(tài)。超級(jí)管理員可以構(gòu)造修訂交易快速應(yīng)對(duì)。節(jié)點(diǎn)在處理修訂交易時(shí)同樣會(huì)先將該交易打包入塊,再執(zhí)行交易,因此所有修訂交易都將被記錄在歷史中,為操作審計(jì)提供支持。 -
消息可修復(fù)(Message Recoverable)
節(jié)點(diǎn)無(wú)法再正常處理交易并打包,共識(shí)服務(wù)停滯,但是點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)依然能夠正常工作。此時(shí)超級(jí)管理員可以通過(guò) CITA 提供的管理員工具構(gòu)造特殊消息并廣播,節(jié)點(diǎn)收到消息并驗(yàn)證發(fā)送者身份后將直接處理,無(wú)需共識(shí)。
總結(jié)
以上是生活随笔為你收集整理的区块链BaaS云服务(29) 溪塔科技 CITA-Cloud 二的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 区块链BaaS云服务(29) 溪塔科技
- 下一篇: 区块链BaaS云服务(30) 字节方舟