陸歌皓,楊丹妮
(云南大學軟件學院,云南 昆明 650500)
自從區(qū)塊鏈的概念在比特幣白皮書[1]被提出后,區(qū)塊鏈(Blockchain)技術[2-3]就引起了全世界廣泛關注,近年來,區(qū)塊鏈技術更是越來越成熟。區(qū)塊鏈使用密碼學確保傳輸和訪問安全,實現(xiàn)數(shù)據信息可溯源、難以篡改、防止抵賴等特性[4],是一種由多方共同維護的分布式記賬技術。目前,區(qū)塊鏈已經從數(shù)字貨幣領域,延伸到經濟社會的各個領域,“區(qū)塊鏈+”也對各個行業(yè)產生重大影響。“區(qū)塊鏈+云計算”[5]是近2年出現(xiàn)的一個新型的云服務市場“區(qū)塊鏈即服務(Blockchain as a Service, BaaS)”。區(qū)塊鏈即服務的出現(xiàn),不僅加速了區(qū)塊鏈技術在多領域的應用拓展,而且給云服務市場帶來了變革性的發(fā)展。本文從區(qū)塊鏈和云計算[6]的結合方式介紹區(qū)塊鏈即服務的工作原理,從面向服務的對象闡述區(qū)塊鏈即服務的設計原則,從目前現(xiàn)有主流區(qū)塊鏈即服務平臺分析區(qū)塊鏈即服務的基本架構,并對區(qū)塊鏈即服務的現(xiàn)狀和發(fā)展方向進行探討。
區(qū)塊鏈技術被譽為“信任機器”,是一種全新的分布式記賬技術。區(qū)塊鏈采用分布式存儲、共識機制、點對點傳輸、加密算法等計算機技術,實現(xiàn)去中心化網絡,保證數(shù)據不可篡改和不可抵賴。區(qū)塊鏈把數(shù)據分到不同的區(qū)塊上,每個區(qū)塊主要由區(qū)塊頭和區(qū)塊主體組成,區(qū)塊頭存放前驅區(qū)塊的哈希值,區(qū)塊主體部分負責存儲數(shù)據,區(qū)塊按照時間戳[7]的順序鏈接形成區(qū)塊鏈。
根據百度百科上的定義,云計算是分布式計算的一種,指的是通過網絡“云”將巨大的數(shù)據計算處理程序分解成無數(shù)個小程序,然后通過多部服務器組成的系統(tǒng)進行處理和分析這些小程序得到結果并返回給用戶。通俗來講,云計算是一個向用戶提供資源的網絡,可供用戶隨時獲取“云”上的資源。
區(qū)塊鏈即服務最初是在2015年由微軟、IBM提出,是通過云計算和區(qū)塊鏈技術的結合,把區(qū)塊鏈框架嵌入云計算平臺里,利用云服務基礎設施的部署和管理優(yōu)勢,為區(qū)塊鏈開發(fā)者提供便捷快速、高性能的區(qū)塊鏈環(huán)境和區(qū)塊鏈配套服務,支持一鍵部署,支持開發(fā)者的業(yè)務拓展及運營支持的區(qū)塊鏈開放平臺[8]。區(qū)塊鏈即服務具有一鍵部署、方便易用、高安全可靠等特性,能夠有效降低開發(fā)及使用成本,為用戶提供方便快捷的一站式區(qū)塊鏈云服務。
區(qū)塊鏈即服務通過把計算資源、通訊資源、存儲資源、記賬能力、應用開發(fā)能力、區(qū)塊鏈配套設施能力轉化為可編程接口,讓應用開發(fā)過程和應用部署過程變得簡單而高效,同時通過標準化的能力建設,保障區(qū)塊鏈應用的可靠性,對區(qū)塊鏈業(yè)務的運營提供支撐,并解決區(qū)塊鏈彈性擴展、安全性、性能等運營難題,讓開發(fā)者專注開發(fā)[9]。區(qū)塊鏈即服務平臺在云體系中的位置如圖1所示。
圖1 區(qū)塊鏈即服務平臺在云體系中的位置
基礎設施即服務(Infrastructure as a Service, IaaS),作為服務模式通常為用戶提供包括虛擬機和其他資源等底層基礎設施資源[10]。在IaaS層用戶需要自己完成環(huán)境配備和應用程序開發(fā)。平臺即服務(Platform as a Service, PaaS),作為服務模式為用戶提供軟件部署平臺,通常包括操作系統(tǒng)、編程語言執(zhí)行環(huán)境、數(shù)據庫、Web服務器等服務[10]。此層用戶只需要根據自己的邏輯開發(fā)應用程序。軟件即服務(Software as a Service, SaaS),作為服務模式為用戶提供直接可用的軟件,通常包括電子郵件、虛擬桌面、統(tǒng)一通信、在線游戲等軟件[10]。區(qū)塊鏈即服務為用戶提供節(jié)點、鏈以及工具的出租,其中工具包括開發(fā)工具、部署工具、監(jiān)控工具等,并且通過大容量高可信的資源池,保障租戶的業(yè)務管理經營規(guī)模可靈活彈性伸縮,出租設施可共享及獨享,安全可靠運行,除此之外也提供必要的技術支持服務。
基于主流區(qū)塊鏈即服務平臺的分析研究,區(qū)塊鏈即服務平臺的參考架構如圖2所示。
圖2 BaaS的參考架構
基礎設施層作為服務模式,為用戶提供虛擬機、其他資源等底層基礎設施資源。
資源層包括計算資源、通訊資源、服務器資源、云資源管理網絡平臺、區(qū)塊鏈組件的管理配置等服務,為區(qū)塊鏈系統(tǒng)提供無限擴大的存儲、快速的網絡、按需選購彈性伸縮及故障自動恢復的節(jié)點等區(qū)塊鏈網絡資源,負責平臺區(qū)塊鏈的創(chuàng)建、管理和運維監(jiān)控[9]。
區(qū)塊鏈平臺服務層可在Hyperleger Fabric、自主知識產權鏈、以太坊等開源的框架上構建區(qū)塊鏈系統(tǒng),為上層應用低成本、高速地提供高安全、高可靠、高性能、輕量化的企業(yè)級區(qū)塊鏈系統(tǒng)[11]。該層核心區(qū)塊鏈技術包括可插拔的分布式共識算法、多類型的分布式賬本存儲機制、安全多語言支持的智能合約[12]引擎、跨鏈[13]和鏈上鏈下的數(shù)據交互[14]、安全隱私保護[15]以及分布式身份管理[16]等。
業(yè)務接口層提供規(guī)范化的智能合約接口和用于個人資產管理的輕錢包,用戶可以按照不同應用場景創(chuàng)建不同的智能合約,為用戶打造特定場景通用的智能合約庫,企業(yè)也可以在此基礎上快速構建區(qū)塊鏈應用。
3.1.1 微軟Azure區(qū)塊鏈服務
微軟Azure區(qū)塊鏈服務是一個完全托管的分類賬服務,使用戶能夠增長并運行在Azure中大規(guī)模的區(qū)塊鏈網絡。通過為基礎結構管理和區(qū)塊鏈網絡監(jiān)管提供統(tǒng)一的控制,Azure區(qū)塊鏈服務提供簡單網絡部署和操作、內置聯(lián)盟管理和開發(fā)智能協(xié)定與熟悉的開發(fā)工具[17]。微軟Azure支持使用Corda分布式分類賬平臺部署多參與者、多節(jié)點的網絡以及網絡映射、公證和對等;并支持在以太坊[18]網絡上部署節(jié)點,支持跨區(qū)域部署VM規(guī)模集和監(jiān)管來管理節(jié)點;支持在超級賬本[19]中布署區(qū)塊鏈應用,并能訂購和驗證同行部署服務[8]。
3.1.2 IBM區(qū)塊鏈即服務平臺
IBM區(qū)塊鏈即服務BaaS平臺是基于Linux基金會的開源項目Hyperledger Fabric V1.0和IBM新一代輕量級軟件開發(fā)、集成、管理和運維的IBM PaaS云平臺,提供端到端的區(qū)塊鏈平臺解決方案,提供快速搭建高可用的區(qū)塊鏈網絡,提供區(qū)塊鏈平臺安全特性,配備完整的自服務運維系統(tǒng)屏蔽IT的復雜度,讓開發(fā)者專注于區(qū)塊鏈業(yè)務代碼本身,提升開發(fā)和運維效率[20]。
IBM區(qū)塊鏈即服務BaaS平臺支持多租戶場景,具備服務發(fā)現(xiàn)、共享存儲、日志監(jiān)控、DevOps等企業(yè)級能力;集成Kubernetes,支持Master節(jié)點,共享存儲,節(jié)點故障恢復,幫助應對高數(shù)據增長帶來的挑戰(zhàn)[8];為企業(yè)開發(fā)團隊提供SDK、CLI樣例,幫助企業(yè)開發(fā)團隊靈活快速配置基于IBM BaaS云平臺區(qū)塊鏈網絡。其基本架構如圖3所示。
圖3 IBM區(qū)塊鏈即服務平臺基本架構
3.1.3 百度BaaS——度小滿金融區(qū)塊鏈BaaS
度小滿金融區(qū)塊鏈BaaS以金融云和豐富的互聯(lián)網金融實踐經驗為基礎,加上區(qū)塊鏈網絡層、PaaS平臺服務層、SaaS應用(產品)服務層組成[21]。
度小滿金融區(qū)塊鏈BaaS平臺的服務層,實現(xiàn)了統(tǒng)一的區(qū)塊鏈運維系統(tǒng)、區(qū)塊鏈網絡和資源維度的可視化運維。根據區(qū)塊鏈不同類型用戶的需求,度小滿金融區(qū)塊鏈BaaS提供了完備的功能支持。針對普通企業(yè)級用戶,在區(qū)塊鏈開放平臺上,能夠可視化地完成幾乎所有日常操作,包括區(qū)塊鏈的創(chuàng)建、查看、更新、運維等;對開發(fā)者,有完善的OpenAPI和多語言的SDK,同時提供與線上環(huán)境一致的線上沙盒環(huán)境,讓開發(fā)者能夠便捷、快速地接入與調試;對普通的用戶,也可以注冊使用2C的區(qū)塊鏈服務[21]。其基本架構如圖4所示。
圖4 度小滿金融區(qū)塊鏈BaaS基本架構
3.1.4 騰訊云區(qū)塊鏈TBaaS
騰訊云區(qū)塊鏈TBaaS,以騰訊云為依托,為企業(yè)市場提供金融安全級區(qū)塊鏈基礎設施服務,通過區(qū)塊鏈云上的服務,為行業(yè)提供安全、可靠、靈活的解決方案。
騰訊云區(qū)塊鏈TBaaS平臺系統(tǒng)是一個彈性、開放的云服務平臺,不僅契合金融業(yè)務級別的安全合規(guī)性要求,與此同時還具有了完備的騰訊云服務能力,并且在此云服務平臺上用戶能夠快速構建自己的IT基礎設施和區(qū)塊鏈服務。TBaaS騰訊云區(qū)塊鏈開放平臺在支持Hyperledger Fabric區(qū)塊鏈網絡技術的同時,也支持BCOS、TrustSQL、Corda、EEA等不同區(qū)塊鏈底層技術,并打通周邊技術生態(tài),為用戶提供一整套進行區(qū)塊鏈開發(fā)、測試,快速部署,彈性可控的企業(yè)級解決方案[22]。其基本架構如圖5所示。
圖5 騰訊云區(qū)塊鏈TBaaS基本架構
3.1.5 阿里云區(qū)塊鏈服務(BaaS)
阿里云區(qū)塊鏈服務是一種基于主流技術的區(qū)塊鏈技術平臺服務,可以快速構建更穩(wěn)定、安全的生產級區(qū)塊鏈環(huán)境,大幅減少在區(qū)塊鏈部署、運維、管理、應用開發(fā)等方面的挑戰(zhàn),使開發(fā)者更專注于核心業(yè)務創(chuàng)新,并實現(xiàn)業(yè)務快速上鏈。支持主流開源區(qū)塊鏈技術Hyperledger Fabric、企業(yè)以太坊Quorum,以及具備核心技術領先性的金融級別技術螞蟻區(qū)塊鏈,滿足多種用戶需求[8]。阿里云區(qū)塊鏈服務幫助用戶一鍵式快速創(chuàng)建和部署生產級區(qū)塊鏈環(huán)境,提供圖形化的區(qū)塊鏈管理運維能力,提供參與企業(yè)和業(yè)務動態(tài)添加的功能,簡化區(qū)塊鏈的部署流程和應用配置。其基本架構如圖6所示。
目前區(qū)塊鏈即服務平臺在效能上有顯著的提升,對開發(fā)者及用戶提供更加便捷的開發(fā)環(huán)境,支持公有鏈、聯(lián)盟鏈、私鏈等不同的場景開發(fā)服務。自2015年BaaS的概念提出后,其在全世界范圍內得到了較大的發(fā)展。主流區(qū)塊鏈即服務平臺對比如表1所示。
圖6 阿里云區(qū)塊鏈服務BaaS基本架構
表1 主流區(qū)塊鏈即服務平臺對比
現(xiàn)如今,區(qū)塊鏈的產業(yè)鏈條已經逐步形成,相關的技術、平臺及應用都在飛速發(fā)展。區(qū)塊鏈即服務平臺鑒于面向服務的基礎設計準則,在設計上以簡單易用、成熟可擴展、安全可靠、可視化運維等為主要方向,為用戶提供分布式賬本底層架構,讓用戶可以在區(qū)塊鏈環(huán)境中下載、安裝并運行區(qū)塊鏈網絡,通過云端獲取服務,采用API接口向應用層提供區(qū)塊鏈服務、智能合約模板、隱私保護、運維監(jiān)控等功能。在技術快速迭代、市場競爭加劇、用戶需求多樣化態(tài)勢下,區(qū)塊鏈即服務占據十分重要的地位。區(qū)塊鏈即服務的應用場景[8]非常廣泛,包括商品溯源、數(shù)據資產交易、供應鏈金融[23]、數(shù)字內容版權、公益慈善[24]、互助保險、信用證、資產證券化、資產托管、數(shù)字身份、跨鏈互操作、物聯(lián)網[25]、醫(yī)療保健[26]等。
以目前的研究現(xiàn)狀而言,區(qū)塊鏈即服務平臺的未來趨勢將主要側重于風險監(jiān)管、技術難點以及落地應用3個方面。
1)風險監(jiān)管。目前對區(qū)塊鏈的監(jiān)管處于剛剛起步階段,區(qū)塊鏈即服務采用云的分布式架構來支撐業(yè)務擴展、數(shù)據存儲和輸出服務。信息互聯(lián)網向價值互聯(lián)網的過渡中,在保證隱私權益的前提下對節(jié)點和鏈上數(shù)據進行監(jiān)管和控制,是區(qū)塊鏈即服務風險監(jiān)管中需要研究的問題。
2)技術難點。一套功能完善、性能穩(wěn)定的區(qū)塊鏈即服務平臺可能會面臨很多的技術挑戰(zhàn)。目前區(qū)塊鏈即服務主要面臨的技術難點包括性能提升、穩(wěn)定性持續(xù)保證、數(shù)據存儲可伸縮性、鏈外信任等問題。
3)落地應用。區(qū)塊鏈即服務目前仍處于研究階段,部分運行都還是在測試網絡上,穩(wěn)定性和速度較傳統(tǒng)的云計算服務器還相差很多,距大規(guī)模商用還較遠,未來區(qū)塊鏈技術和分布式計算相關技術同步發(fā)展共進步,將會出現(xiàn)更多的應用場景落地。