0x财经|一文讀懂CITA聯盟鏈解決方案

CITA是國內屈指可數的聯盟鏈開發框架之一。今天本文將總結CITA相關的資料,為讀者建立對CITA的了解。

首先,聯盟鍊和公鏈在開發上是共通的,所以CITA上也是開發DApp,而為了實現對DApp的開發就需要一整套的組成部件,最後匯總成一個解決方案。

CITA的整套解決方案體現在CITAHub上,其提供了一套完整的開源的區塊鏈解決方案,在CITAHub中,CITA作為底層區塊鏈內核。並圍繞CITA, 提供了開源的工具鏈CITA Toolchain 來完善基礎設施,以方便運營方,開發者以及終端用戶能夠快速使用,

跟CITA 直接進行數據交互的有CITA SDK, CITA CLI。官方在CITA SDK 基礎上構建了4 個工具:ReBirth、CITA IDE、CITA Truffle Box、CITA Web Debugger。

還提供3 個針對特定業務需求和開發場景的工具:Microscope、Cyton Wallet、CITA CLI。另外還有一個first-forever-demo,通過開發或運行此demo,能夠熟悉CITA Toolchain 的大部分子工具,並基本掌握在CITA 上開發DApp 的操作流程。

從功能定位上看,CITA 是一個面向企業級應用的支持智能合約的高性能區塊鏈內核, 旨在為企業級區塊鏈應用提供一個穩固、高效、靈活、可適應未來的運行平台。

因為工程化的實現思路,在區塊鏈技術發展的背景下,CITA 將區塊鏈節點的必要功能解耦為六個微服務:RPC,Auth,Consensus,Chain,Executor,Network。各組件之間通過消息總線交換信息相互協作。通過配置和定制相應的服務,CITA 能夠滿足企業級用戶的全部需要。

CITA的框架

整個CITAHub的完整組成如下圖,而每個部分都成為了每個功能解耦後的承載體,我們來具體看每個部分的功能分解。

內核

CITA 將一個區塊鏈節點的共識、網絡、計算、RPC 等功能進行了微服務化拆分,每一個微服務又可以有多個實例,最終這些實例共同完成一個節點的記賬功能。這樣,可以將區塊鏈性能的擴展問題轉化成了節點的擴展問題,當性能不足時,插入一台服務器,分擔節點的工作壓力即可。同時,將共識機制、底層邏輯進行了深度優化,例如採用Rust語言架構所有代碼等。

實測數據:由4核8G雲主機構成的CITA的性能可達到每秒2900筆簡單交易;32核64G雲主機組成的CITA的性能則超過了每秒1.5萬筆簡單交易。如採用集群構建節點性能將會更高,因此CITA 的性能已經足以應付絕大多數應用場景。

CITA 工具鏈

CITA Toolchain 作為CITA 生態中的重要組成部分,目的是使開發者在使用CITA 或基於CITA 構建應用時更加方便。

跟CITA 直接進行數據交互的有CITA SDK、CITA CLI。

CITA SDK 是Toolchain 的核心,它將CITA 上重複繁瑣的操作進行封裝,暴露簡單的接口給開發者,開發者可藉助此SDK 構建應用。

官方在CITA SDK 基礎上構建了4 個工具: ReBirth、CITA IDE、CITA Truffle Box、CITA Web Debugger。

CITA CLI 是一個非常友好的系統運維工具。

智達軟件開發工具包

CITA SDK 分為不同語言版本:Java SDK、JavaScript SDK、Ruby SDK、Swift SDK、Rust SDK。

JavaScript SDK 是在Ethereum Web3 的基礎上做了封裝並且添加CITA 的JSON-RPC 請求以及CITA 的簽名模塊,構建了CITA IDE、CITA Truffle Box、CITA Web Debugger。

Java SDK 集成了與CITA 客戶端交互的功能,可以用來對CITA 發送交易、部署智能合約、調用合約方法,進行系統配置以及查詢其他信息等。

Swift SDK 用於構建Cyton Wallet iOS 端。

Ruby SDK 用於構建ReBirth。

Rust SDK 是CITA JSON-RPC 客戶端的Rust 實現。

重生

ReBirth 是針對CITA 提供的區塊鏈緩存服務器,能夠滿足檢索區塊,提供ERC20 交易列表等業務功能需求,這類功能如果直接在底層實現會影響性能。

主意

CITA IDE 是面向CITA 的智能合約編輯器,能夠編寫、編譯、debug、部署智能合約。

CITA 松露盒

CITA Truffle Box 是基於Truffle Box 定制的適配CITA 的DApp 全能開發框架,包括編寫合約、編譯合約、測試合約、部署合約、構建DApp,因此在CITA 上開發DApp 的體驗和在Ethereum 上比較一致。

CITA 網頁調試器

CITA Web Debugger 作為DApp 調試工具,是一個基於Chrome 瀏覽器的插件,用戶在開發DApp 時,在手機上調試很不方便,使用CITA Web Debugger 能夠在瀏覽器上調試交易方面的功能,能方便地獲取交易具體詳情和反饋。

此外官方還提供3 個針對特定業務需求和開發場景的工具:Cyton Wallet、CITA CLI、Microscope。

Cyton 錢包

Cyton Wallet 分為Android 版和iOS 版,提供賬戶管理功能(私鑰、助記詞、keystore)和Token 管理及轉賬功能,並內置DApp 瀏覽器。同時它依賴ReBirth 提供原生代幣和ERC20 代幣交易列表。

CITES命令行界面

CITA CLI 是在開發中調試CITA 的命令行工具,與CITA 鏈交互可以通過CITA CLI 操作,支持搜索歷史命令,默認支持secp256k1 和SM2 加密算法。

顯微鏡

Microscope 區塊鏈瀏覽器,可用於查詢所有CITA 鏈上信息,並支持基於CITA 的多鏈,可在元數據面板中切換目標鏈。支持搜索區塊、交易、帳戶信息和調用智能合約方法。它還可以與ReBirth 一起使用,實現指定組合條件的區塊交易列表查詢,分析CITA 的工作狀態等高級功能。

CITA中的經濟模型選擇

CITA 作為面向企業的高性能區塊鏈內核,擁有支持智能合約的虛擬機,用戶發送交易(轉賬,調用合約,部署合約)中的每個運算都會消耗一定的資源,這裡消耗的資源用Quota 作為單位來計數。

為了對鏈上有限的計算資源進行管理和控制,需要對鏈的經濟模型進行設計。實際的業務場景中普遍存在鏈運營方(發起鏈,維護瀏覽器等鏈的生態)、記賬人(礦工,提供計算資源)、用戶(消耗鏈上計算資源)等參與方角色。其中運營方、記賬人可能由同一方承擔,也可能是有獨立利益訴求的不同參與方。

CITA 作為一個通用的區塊鏈內核,提供了諸多配置參數,讓用戶可以根據自己的業務場景進行定制經濟模型。概括來說可以分為兩種模式:

Quota 模式

無代幣的模式,系統默認模式。系統僅對用戶交易消耗的資源進行統計。

參數設置。通過設置Quota Limit,系統可以對區塊內交易總體消耗的資源進行限制,也可以對單個賬戶設定一個塊內交易資源消耗的限制。詳細內容與操作參見Quota 模式。

場景舉例:

幾個企業組成一個聯盟運行區塊鏈,每一個成員既是“礦工”(維護區塊鏈賬本),又是用戶(消耗計算資源)。礦工“無償”工作,旨在維護系統穩定。這種場景可以選擇Quota 模式。

Charge 模式

有代幣的模式,鏈上發行原生代幣。系統先對用戶交易消耗的資源進行統計(quotaUsed),並換算為原生代幣對用戶進行收費。收取的費用有多種靈活的分配方式,方便用戶根據業務場景進行定制。

參數設置。與Quota 模式一樣,charge 模式也可以通過設置Quota Limit,對區塊內交易總體消耗的資源進行限制,對賬戶的單次交易設定資源消耗的限制。並且可以靈活的設置代幣總量和分發方式。在鏈的運行過程中,還可以通過通過設置QuotaPrice 對手續費進行調控。

CITA對隱私保護的選擇

在CITA 的架構中,為保護“賬本”的相關隱私,採用了多元的技術方案來對用戶身份與上鍊數據進行隱私保護。

如果使用密碼學方案,所有的參與方都參與了對數據有效性、合法性的校驗,但是只能提供轉賬隱私,有前向安全風險。可以對用戶身份和交易數據進行隱私保護。

如果採用了零知識證明技術。證明者向驗證者提供關於交易發送者、接受者身份和交易細節的證明,證明內容不透露交易雙方身份和交易細節等相關信息。數據有效隔離;無前向安全風險。可以對交易數據進行隱私保護。

綜合了幾種多鏈與跨鏈方案後,CITA 在底層實現了側鏈方案來實現隱私交易。幾個相關合作方共同起一條主鏈,其中的某幾個參與方可以向主鏈註冊一條側鏈,在側鏈上進行交易、驗證,從而使側鏈數據與主鏈數據隔離開,從而實現側鏈交易數據的隱私保護。此方案無中心化風險,靈活性更高。

此外,還將需要參與共識和需要共享的核心數據,和其他的數據如合同明文、批量大數據、隱私、個人信息分離,數據脫敏後再上鍊,或者將數據摘要上鍊,必要時再授權訪問明文等其他數據。鏈外存儲是將要保護的隱私數據,鏈上是可以公開的數據。這種方法是當前可行性較好的方案,可以基於CITA 進行設計實現。

最後,如果使用可信硬件,能讓整體架構簡潔,對存儲空間要求低,具有很高的靈活性;但是受制於廠商。這種方式可以對用戶身份、上鍊數據(交易數據、存證數據)和智能合約的隱私保護。

例如應用SGX隱私保護技術,通過計算機的核心處理器CPU 來構建可信執行環境TEE,SGX 可以將智能合約中的關鍵操作封裝到Enclave 中,即便操作系統或者VMM(Hypervisor)也無法影響Enclave 裡面的代碼和數據。 Enclave 的安全邊界只包含CPU 和它自身,極大的保證了數據的安全性。 CITA表示,目前,已有項目搭建了CITA 聯盟鏈平台,並使用SGX 可信執行環境技術,實現了交易數據的隱私性和監管的穿透性。

Total
0
Shares
Related Posts