阿里雲區塊鏈服務(Blockchain as a Service,簡稱BaaS)是一種基於主流技術的區塊鏈平台服務,由螞蟻區塊鏈團隊提供支援人員。它可以協助您快速構建更穩定、安全的生產級區塊鏈環境,大幅減少在區塊鏈部署、營運、管理、應用開發等方面的挑戰,使您更專註於核心業務創新,並實現業務快速上鏈。
本文從以下維度為您介紹阿里雲BaaS服務:
為什麼選擇阿里雲區塊鏈服務?
多種區塊鏈技術引擎支援:支援主流開源區塊鏈技術Hyperledger Fabric、企業以太坊Quorum,以及具備核心技術能力的金融層級技術螞蟻區塊鏈,滿足多種使用者需求。
螞蟻區塊鏈,是螞蟻自主研發的高效能、全球部署、極強隱私保護的金融級聯盟區塊鏈技術,更多關於螞蟻區塊鏈的介紹請參見頁面下方螞蟻區塊鏈介紹。
Hyperledger Fabric,是由Linux基金會託管的開源企業級區塊鏈技術,是開放式、標準化的區塊鏈技術生態的代表。
企業以太坊Quorum,是摩根大通(J.P. Morgan)基於以太坊開發的面向企業情境、符合EEA(Enterprise Ethereum Alliance)規範的開源企業級區塊鏈技術。
一鍵式部署:阿里雲區塊鏈服務協助使用者一鍵式快速建立和部署生產級區塊鏈環境,提供圖形化的區塊鏈管理營運能力,實現參與企業和業務的動態添加,簡化區塊鏈的部署流程和應用配置。
隔離性:基於阿里雲區塊鏈服務建立的聯盟鏈網路,建立在雲端運算多租戶隔離(包括計算/儲存/網路等資源的隔離)的基礎之上,保證了區塊鏈業務參與方的獨立性和自治性。
跨地區:業務參與方可分佈於不同的地區,實現跨地區聯盟網路的建立。例如,聯盟鏈網路中的各方(營運方和參與方)可以分別部署於三個不同的城市。
阿里雲BaaS服務還提供了廣泛的接入方式、動態資源建立和彈性可擴充能力,以及多維度安全和隱私保護機制,同時在成本上也具備更靈活的優勢。 更多阿里雲BaaS優勢請參見 產品優勢 章節。
如何使用阿里雲區塊鏈服務?
基於Hyperledger Fabric、螞蟻區塊鏈已商用,企業以太坊Quorum的BaaS服務目前正火熱公測中。
螞蟻區塊鏈
螞蟻區塊鏈使用模式如下圖所示。

聯盟管理方發起申請聯盟鏈建立,然後邀請其它聯盟參與方加入。聯盟參與方接受邀請加入聯盟後,對聯盟鏈的共識節點進行訪問、讀寫,具體的使用流程如下。
開通服務。您可以在 BaaS 產品首頁,參考 選購指南 章節開通 BaaS 服務。
申請區塊鏈
您可以在控制台,申請加入區塊鏈或者申請建立聯盟鏈。具體請參見 管理聯盟區塊鏈。
管理區塊鏈
進入控制台管理頁面後,您可以邀請其它使用者加入您的聯盟鏈,審核其他聯盟方加入的申請,管理節點,查看區塊鏈詳情等操作。具體請參見 建立聯盟。
訪問區塊鏈網路
通過 開發指南,訪問區塊鏈網路。
Hyperledger Fabric
由營運企業建立聯盟,各個業務參與方建立組織。然後營運企業邀請各個業務參與方加入聯盟以及對應的業務通道。在這種模式下,同盟基礎設施營運由一家受委託的企業負責,其他參與方作為進行業務協作和交易的角色共同參與。營運企業自己也可作為參與方建立組織,進而加入聯盟及通道。

使用流程
開通服務。您可以在BaaS產品首頁,參考選購指南章節開通BaaS服務。
建立區塊鏈網路
進行建立組織、建立聯盟、組織加入聯盟、建立通道的操作。具體請參見使用流程。
部署鏈碼
包括上傳鏈碼、安裝鏈碼、執行個體化鏈碼的操作。具體請參見部署鏈碼。
訪問區塊鏈網路
企業以太坊Quorum
開通服務。您可以在 BaaS 產品首頁,參考 選購指南 章節開通 BaaS 服務。
建立區塊鏈網路
您可以在控制台建立企業以太坊Quorum區塊鏈網路。具體請參見建立一個區塊鏈網路。
管理區塊鏈
您可以邀請阿里雲使用者參與到Quorum區塊鏈網路中,然後添加來自於阿里雲BaaS的Quorum節點,具體請參見邀請阿里雲BaaS使用者加入和添加來自阿里雲BaaS的節點;也可以直接添加來自於其他雲平台(如AWS、Azure)或者私人部署環境的Quorum節點,具體請參見添加外部節點。
部署智能合約
在完成智能合約的開發後,您可以編譯和部署智能合約,以及發送交易調用智能合約,具體請參見使用solc編譯智能合約、使用geth部署智能合約和使用geth發送交易。
阿里雲區塊鏈服務API介紹
區塊鏈服務API在區塊鏈底層技術原生API之上進行了擴充,支援對區塊鏈服務相關的區塊鏈對象和雲資來源物件的操作,並簡化了原生API對區塊鏈服務的管理、營運、調用等複雜過程,使得使用者可以方便地通過API對區塊鏈聯盟、組織、節點、通道、智能合約、底層資源、日誌、配置資訊等對象進行管理和維護。
區塊鏈服務API支援HTTP和HTTPS請求,同時要求使用阿里雲賬戶產生的Access Key ID和Access Key Secret進行身分識別驗證,以保證API調用的安全性。
此外,您還可以通過阿里雲OpenAPI Explorer, 以圖形化網頁方式,快速檢索和可視化調試區塊鏈服務的API。
如需瞭解和開始使用區塊鏈服務API,請參見API參考。
螞蟻區塊鏈介紹
螞蟻區塊鏈通過引入 P2P 網路、共識演算法、虛擬機器、智能合約、密碼學、資料存放區等技術特性,構建一個穩定、高效、安全的圖靈完備智能合約執行環境,提供賬戶的基本操作以及面向智能合約的功能調用。基於螞蟻區塊鏈提供的能力和功能特性,應用開發人員能夠完成基本的賬戶建立、合約調用、結果查詢、事件監聽等。
邏輯架構
螞蟻區塊鏈邏輯架構圖如下圖所示。


核心邏輯
螞蟻區塊鏈核心邏輯如下圖所示。
功能特性
賬戶模型與狀態轉換
螞蟻區塊鏈採用的新型賬戶模型設計能夠支援多重簽名機制與私密金鑰恢複機制,從而解決了賬戶控制權重問題與單一私密金鑰丟失導致賬戶停用問題。出於安全性考慮,螞蟻區塊鏈基於密碼學與鏈式結構,通過簽名機制實現交易資料的不可篡改性和不可偽造性。
智能合約
智能合約實質上是一套以數字形式定義的承諾(Promises),包括合約參與方可以在上面執行這些承諾的協議。螞蟻區塊鏈基於此定義設計了自己的智能合約平台,支援智能合約的拓展能力,能夠基於智能合約編寫圖靈完備的商務邏輯來實現豐富的業務情境。
合約生命週期
螞蟻區塊鏈中,一份智能合約的典型的生命週期覆蓋合約編寫、合約編譯、合約部署、合約調用、合約升級、合約凍結六個環節。
合約類型
螞蟻區塊鏈提供圖靈完備的智能合約能力,目前提供對 EVM、Native、MYVM、Precompiled 合約類型的支援。其中,MYVM 合約類型,由螞蟻自研的 MYVM 虛擬機器類型支援,以 LLVM(Low Level Virtual Machine)編譯模型支援多種合約程式設計語言(如 Solidity 和 C++),支援更優秀的效能,以及更出色的開發人員友好特性。
合約擴充
螞蟻區塊鏈智能合約提供了多種形式的合約擴充能力,包括 RSA 驗簽、Base64 編解碼、上下文擷取、JSON & XML 解析等。
儲存設計
螞蟻區塊鏈具備以下儲存能力:
資料存放區
資料存放區分為本地檔案系統的 KV 資料庫儲存以及上層的抽象世界狀態資料存放區。螞蟻區塊鏈智能合約平台的Object Storage Service利用特定的樹狀資料結構儲存資料來達到全域狀態快速計算摘要。
世界狀態儲存
螞蟻區塊鏈中,合約對象分為成員變數、成員函數。其中,成員變數儲存在合約狀態(Storage)中;成員函數儲存在合約代碼(Code)中。合約代碼與合約狀態資料分離,為合約狀態以及世界狀態提供了唯一穩態 Hash 值的計算,同時支援樹上節點快速索引、更新。
歷史資料
螞蟻區塊鏈中,不同的區塊擁有不同的全域狀態根雜湊。根據不同區塊和不同的全域狀態根雜湊,可以構造出不同的全域狀態歷史樹,進而查詢到不同歷史狀態下的資料。
共識協議
在螞蟻區塊鏈中,共識協議被定義成使分布式系統中的節點快速有效地達成資料的一致性,即確保所有誠實節點以完全相同的順序執行共識結論中交易,達成資料一致性,同時正確的用戶端發送的有效交易請求最終會被處理和應答。螞蟻區塊鏈平台的共識組件通過提供不同的共識外掛程式來實現共識協議。目前,螞蟻區塊鏈系統中已實現的共識演算法包括 PBFT 和 ABFT。
PBFT(Practical Byzantine Fault Tolerance)共識協議支援系統中不超過 1/3 的節點容錯性。通過 PrePrepare、Prepare、Commit 的三階段提交協議來實現網路共識節點之間的交易資料的一致性。螞蟻區塊鏈提供的 PBFT 共識外掛程式具有快速終止、恢複可靠、狀態同步等特性。
ABFT(Asynchronous Byzantine Fault Tolerance)是一個滿足拜占庭要求的非同步共識協議,具備無主節點、非同步互動、支援較大節點規模、拜占庭容錯等優勢,但實現複雜程度較高。具體而言,螞蟻區塊鏈的 ABFT 共識外掛程式可以有效地降低網路頻寬負載,以及防止選擇性共識問題。
虛擬機器
虛擬機器的職責是,在特定的執行環境下通過一組指定的位元組碼指令來指定螞蟻區塊鏈狀態機器抽象模型的全域狀態的更改方式。除螞蟻自主研發的類 EVM 虛擬機器外掛程式,螞蟻區塊鏈還提供 MYVM、Native 虛擬機器外掛程式。EVM 虛擬機器外掛程式支援流行的 Solidity 合約語言;MYVM 虛擬機器外掛程式以 LLVM 編譯模型支援多種合約程式設計語言。
安全機制
螞蟻區塊鏈的安全機制主要分為網路安全、資料安全、儲存安全三個維度。
網路安全:用戶端和節點通過 CA 中心擷取 TLS 認證,用戶端與節點、節點與節點間實行 TLS 雙向認證,且通訊流量經 TLS 加密,抵禦中間人攻擊。除了基本的認證驗證外,節點與節點之間還增加了握手邏輯,通過在握手過程中添加驗證對方節點私密金鑰簽名的方式來確保節點間通訊的可靠。
資料安全:交易使用使用者私密金鑰簽名,保證交易內容無法篡改。
儲存安全:資料多節點儲存,單節點資料丟失不影響整個網路,節點間資料同步機制保障資料的正確複製,提供資料歸檔工具,可以歸檔資料並使用傳統方式備份。
可信執行環境與跨鏈技術
螞蟻區塊鏈基於硬體可信執行環境(TEE)提供強隱私和高效能的鏈上資料隱私保護服務,可以對敏感交易資料提供全鏈路、全生命週期的隱私保護。螞蟻區塊鏈的跨鏈技術包括三個組成部分:UDAG 跨鏈協議、跨鏈合約服務、基於 TEE 的 Oracle 叢集服務。螞蟻區塊鏈使用可信計算環境打造可以外部資料調用的 Oracle 叢集,解決區塊鏈協議只能訪問鏈上資料的局限性問題。
信任構建與系統治理
螞蟻區塊鏈同盟信任構建機制主要有創世信任、基礎信任、共識信任、輸入信任、治理信任、可驗證信任。這些信任構建機制共同建立了螞蟻區塊鏈同盟高度可信任的特徵。螞蟻區塊鏈提供聯盟管理能力,即對具體區塊鏈同盟成員結構的治理能力。