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