微眾區塊鏈平臺(大道至簡:微眾銀行區塊鏈全棧技術體系縱覽)
5月26日,微眾銀行區塊鏈攜全棧技術體系亮相貴陽數博會,并斬獲領先科技成果獎。從2015年開始布局區塊鏈,微眾銀行區塊鏈已推出多項開源區塊鏈技術,其首席架構師張開翔將從區塊鏈發展娓娓道來,詳細闡述對微眾銀行區塊鏈技術體系研究工作和人才培養的思考。“區塊鏈其實也可以很簡單”,下面一起學習下吧!
幾年前,區塊鏈技術堪稱原始,開發者近乎在“赤手空拳”構建區塊鏈應用:部署底層平臺、寫合約,期間還要面對諸多的技術細節、技術難題,踏入各種前人沒有踩過的坑,調試和運營也都可謂艱難。這種種體驗猶如走在羊腸小道上,泥濘且未知。為產業趟平技術門檻,提升應用體驗,降低運營成本,拓展領域邊界,讓開發者們便捷且放心地運用技術去創造價值,加速區塊鏈的產業應用,一直是我們的目標。萬物之始,大道至簡,為了達成目標,我們堅信得首先有個“大道”,還是能敞開來走的那種。
微眾銀行區塊鏈團隊于2015年投入區塊鏈的技術攻關,并在2017年把成果全面向產業開源。至今,已經正式發布了超過10個主要區塊鏈開源項目,參與多項國際國內的標準編寫,提交了大量的專利申請。
近年來,得益于我國對科技創新研究的大力支持,包括新基建、數據要素、隱私保護和碳中和等國策或國家倡議,數字化技術的提升和產業創新加速推動。
同時,來自開源社區的支持鼓勵、優化建議、共創共建,技術研究的方向亦愈發清晰、迭代敏捷。諸多技術項目都是從社區收到了訴求、碰撞出靈感后發起,且由社區共同開發代碼、維護周邊工具、編撰技術和用戶文檔,共同鑄就了微眾銀行區塊鏈豐富的社區技術生態。
經過多年的共同努力后,我們認為,領域技術已經趨于成熟,開發者的“高速公路”已經鋪就。
領域發展趨勢
近年來,隨著區塊鏈應用加速落地,我們看到一些明顯的趨勢:
區塊鏈應用的規模和地域范圍不斷在擴大,國家級區塊鏈網絡貫通各省市,技術架構多元化,業務形態更為復雜,治理模型更加多變……單層單鏈的區塊鏈網絡已經難以為繼。
許多運行在生產環境中的區塊鏈應用承載著海量的請求,而且由于區塊鏈數據只增不減,日積月累,存儲容量日漸逼近硬件上限,需要對數據進行拆分、遷移和備份。同時,開發者對海量數據的管理、分析、災備方案也有著強烈的需求。
在與實體產業結合時,區塊鏈和既有的IT系統有著不同的系統架構,且不同產業有著不同的業務邏輯、數據維度和安全合規要求。如何清晰地識別鏈上鏈下邊界,讓區塊鏈和原有IT系統各司其職,又無縫結合,解決業務痛點,是每個開發者都在思考的問題。
隨著區塊鏈應用走近大眾的生活,人、機構和物聯網的標識如何定義?個人數據如何管理?人們在和區塊鏈交互時如何得到良好的體驗,同時又實現隱私保護?…… 等等這些問題的背后,折射的都是數據成為生產要素時代的痛點。
總之,網絡規模越來越大,數據越來越海量,場景越來越豐富,用戶對于友善的區塊鏈應用體驗的呼聲必將越來越大。這些趨勢印證著區塊鏈在數字化進程中的應用深度和廣度日益增加,同時,也對技術提出了更高的要求。
把技術基本面先做扎實
讓我們先回到原點。從一開始,我們就堅定地選擇了聯盟鏈方向。毫無疑問,區塊鏈作為基礎設施,首先要“可信可靠”,也就是要保證合規、安全和系統的穩定。
合規,意味著在技術上首先要去除虛擬代幣,采用許可加入模式,支持KYC(Know Your Customer:了解你的客戶),并提供監管接口和審計機制,以符合相應行業的監管審計要求。
安全,是很多行業的命脈,其中包括系統安全、合約安全、數據安全、隱私安全。我們以金融級安全為準繩,在網絡、存儲和運行環境進行了大量的安全加固,如在2016年實現了高等級的存儲加密;在合約安全方面,實現開發期和在線運行時的靜態/動態檢測;在隱私計算方面,提供場景化的、有針對性的數據隱私保護方案。
當真正要把技術用于生產環境,穩定性至關重要,如金融級的穩定是要求“5個9”,也就是99.999%的可用,相當于7*24小時運行,幾乎不能停機,且能在線維護升級,應對各種內外部的故障,滿足苛刻的的RPO(恢復點)和RTO(恢復時間目標)要求。
合規、安全、穩定是“基本面”,是不容妥協且必須達到的要求。這也要求我們必須埋頭深耕關鍵核心技術,包括密碼學、共識算法、智能合約、分布式網絡等,用過硬的技術能力給出保障。從這幾年廣泛的應用情況來看,我們的開源項目在基本面上經受住了考驗。
同時,FISCO BCOS以及相關組件實現了全面國產化,全棧支持國產硬件、操作系統和國密算法。
在“基本面”穩固的基礎上,高性能、易用性、擴展性、可持續性則是重要的“加分項”,也是開源軟件是否廣受歡迎的關鍵所在。只有得到社區的認可和支持,技術才能真正落地,形成共建和快速進化的健康可持續生態。
既要跑得快,也要行得遠
經過卓有成效的優化,FISCO BCOS底層的單鏈TPS已經達到萬級,且可以無限平行擴展,足以滿足大規模應用的需求。“區塊鏈速度慢”這個說法已經成為過去式。
但性能并不等于“跑個分”這么簡單,系統不能只是跑得快,還要跑得穩,行得遠,要保證這些,當務之急是要正視數據容量問題。
區塊鏈上的數據以鏈式存在,只增不減,而金融等行業要求數據保留多年甚至永久保存,這必然給存儲帶來巨大壓力。如今,有的社區開發者的應用在線上運行了幾年,產生了數以億計甚至百億計的數據,最初配置的硬盤面臨容量瓶頸。
數據膨脹問題不像功能和性能問題那么顯性,但它就像“房間里的大象”,總是要面對的。我們必須從存儲體系上徹底解決這個問題。
同時,數據量越大,意味著鏈上蘊含的價值越多,就越值得去挖掘。開發者們也希望有更加便捷、直觀、高效、安全的方法來處理這些寶貴的數據,比如查詢鏈上都有誰部署了哪些合約,每個合約有多少交易調用,還有諸如多維度交叉分析、豐富的報表統計、商業智能建模、監管和反洗錢支持等。必須有對數據進行復雜的范圍查詢和計算的方案。
2018年我們開始分析這個問題時,認為區塊鏈節點本身應聚焦于達成共識、保證交易的及時性和事務一致性上。在鏈上增加復雜數據處理能力,即使技術上可行,但并不是最優方案,因為這樣會將計算和存儲的開銷和鏈上節點耦合綁定,難以擴展。
所以,能否鏈上鏈下結合來解決這些問題呢?
首先,我們大幅優化了鏈上狀態的數據結構,鏈數據存儲開銷呈現數量級的銳減。在投入同等存儲硬件的前提下,系統可持續運行的時間更長。經測算,一般的賬目和存證業務,在中高強度的業務流量下,配置4T的硬盤足以保存5~10年的數據。
其次,我們引入分布式存儲體系,將鏈上數據完整地同步到鏈下,依托容量易于擴展的網絡存儲設備、關系型數據庫、數據倉庫等技術,在鏈下建立區塊鏈數據鏡像。
這樣一來,就可以使用成熟的數據維護工具進行數據的遷移、冷備等操作。區塊鏈網絡擴容時,新節點可以快速同步數據,我們也可以從數據鏡像里批量提取數據構建快照,快速恢復出新節點。
既然鏈下數據是完整的,那么我們可以考慮剪裁節點里的歷史數據,只保留需要頻繁訪問的新數據,當應用或鏈上計算驗證流程需要訪問到歷史數據時,定向到鏈下去查詢,這個過程對數據訪問方是完全透明的。數據冷熱分離、無縫存取,這樣一來,容量和訪問的問題就完全無憂了。
對數據進行復雜的分析、多維度聯合查詢時,我們可以結合關系型數據庫、專業的大數據平臺、搜索服務器、AI分析引擎等,對鏈下數據進行聯合檢索、建模、批處理。
值得一提的是,數據在鏈下處理,和是否“中心化”無關,因為所有鏈上的參與者都可以基于自己部署的節點,獨立地導出和處理數據,并不依賴于其他人,整體上還是多中心的分布式協作形態。
通過架構解耦和融合多種技術,我們在鏈上鏈下建立起分布式存儲體系,兼顧了鏈上交易的分布式實時性和事務性,也解決了數據容量和大數據處理的問題。
為了簡化開發者的數據操作,社區發布了一系列開源項目,包括數據倉庫、數據導出、數據遷移、數據分析等組件,開發者可以根據自己的需求和資源投入情況靈活組合使用。
至此,解決數據容量問題就像把大象裝到冰箱里一樣的簡單:下載開源工具、對接區塊鏈、運行起來,然后去喝杯咖啡,隨后數據源源不斷地入庫,完整的數據視圖呈現在眼前,猶如百川歸海、海闊任魚躍。
尊重數據,全面隱私保護
和社區交流討論業務如何引入區塊鏈時,隱私問題是高頻問題:個人的數據能不能上鏈?企業A和企業B的賬目來往,是否對其他企業可見?如果可見,是否會泄露商業機密?
區塊鏈的分布式賬本模型強調對等合作,數據共享,且數據可全程追溯,這也意味著如果業務將所有數據放到鏈上,且鏈上數據被無差別訪問,可能會帶來隱私泄露的問題。如果因為“上鏈”就泄露注冊用戶數、業務量、利潤率等關鍵信息,是許多商業場景不能接受的。
區塊鏈的公開透明和隱私保護并不矛盾。現實世界里本來就是有一些信息是公共公開的,另有一些則是要受到保護的。隱私數據在得到用戶授權同意的前提下,才會在受控的范圍內被查看和使用。
不同的場景里數據的維度、交換過程、敏感性和監管要求千差萬別,我們認為不太可能有單一的策略解決所有的問題,我們需要建立的是立體化的,可靈活組合定制的技術和管理體系。
整體思路分為隔離、控制、隱私計算這幾部分。
隔離是指數據是否要上鏈?以什么形態上鏈?怎么上鏈?隔離的策略比較直觀,上鏈的本來就是應該多方可見的公共數據,或者只將數據的HASH上鏈,明文存在鏈下。另外,FISCO BCOS單鏈多群組架構為開發者提供了賬本級的隔離策略,僅加入到群組的參與者可訪問特定范圍的賬本數據。
控制指采用精細的準入機制和角色權限模型,網絡和數據訪問均經過準入審核,操作過程可全程追溯,結果可審計監管,保證可管可控。這就要求從網絡、存儲、交易處理流程、合約引擎、應用的設計均預置控制點,針對不同的場景和需求提供可定制的策略,以及高效易用的操作接口。
隱私計算則是采用多種密碼學算法,一方面,幫助用戶用證明代替明文,選擇性披露自己的信息,避免隱私信息被越權采集;另一方面,跨機構用聯合計算代替數據共享,實現數據可用不可見的效果。
WeDPR是我們面向隱私計算的一整套數據隱私保護方案的總稱,WeDPR的主旨,對數據和用戶數據主權的“Defence、Protect、Respect”。
WeDPR提供諸多底層算法、多語言的開發包、可視化的隱私計算平臺體驗,實現了諸如聯邦學習、安全多方計算、同態加密、零知識證明、選擇性披露等算法。功能上,可以滿足隱私保護要求;性能上,對不同算法針對性地進行了大量的優化,運行時擁有毫秒級的響應能力,足以滿足千萬乃至億級的數據量規模。
組合多種隱私保護策略,我們可以滿足多變的業務流程,針對性地保護身份、資產、交易、行為數據、文件集等。為了便于理解,我們針對匿名投票、安全支付、隱秘競拍、聯合營銷和聯合風控等典型的場景,都給出了開源的應用參考實現。
近年,數據成為生產要素,相關立法陸續出臺,無論是面向個人的APP還是B端后臺服務,只要是與數據相關的事務,都面臨著更嚴格、更全面的隱私保護規制,既往那種粗放的數據收集和使用流程已經不再適用。
我們必須尊重用戶數據權益,合理合規地使用數據,通過創新的模式使數據流動起來,滿足安全存儲、可信傳輸、協同生產的需求,實現產權可界定、價值可存儲可評估可流通,深挖數據價值,最終釋放數據生產力。
拓展區塊鏈的邊界
如果把區塊鏈業務比作用戶在路上看到的風景,把區塊鏈應用整體架構看作是一輛智能汽車,那么區塊鏈的底層平臺相當于 “底盤”。在高性能、穩定、安全的底盤之上,還需要人機交互、智能輔助、云網互聯等諸多能力,這樣這輛車才能與駕駛員順暢地交互,帶領乘客到更多的地方,拓展技術和應用的邊界。
靈活的賬本形態:FISCO BCOS已經成為被廣泛采用的區塊鏈底層平臺,配套了控制臺、SDK、瀏覽器等一系列基本工具,本身已經具備了強大的可用性。
尤其在FISCO BCOS 2.0的群組特性發布后,開發者可以像組建聊天群一樣,只需一次部署,然后根據業務協作關系,在不同機構間動態創建分布式賬本。
對于伙伴眾多、合作關系多變的機構來說,群組特性拓展了賬本的形態,精準地解決了重復建鏈的痛點問題,提升了建設效率,降低了人力物力成本。
分布式身份體系:目前分布式身份體系在金融、政務、公共事務等領域廣受關注。采用分布式身份體系,可以建立跨機構、跨網絡的身份互通,解決鏈上可信身份和可信憑據分布式互驗的問題。把住了身份認證、身份標識的這一道大門,才能安全穩妥地在實體世界和數字化世界之間建立鏈接。
WeIdentity是符合W3C DID規范的分布式多中心的身份標識協議,完整地實現了分布式身份體系的協議和周邊支撐組件。再結合WeEvent分布式消息協作體系,給物聯網設備賦予分布式身份和承載其產生的即時消息,可支持物聯網、邊緣計算和區塊鏈的融合。
廣域跨鏈互聯:WeCross跨鏈方案致力于異構區塊鏈之間互聯互通。我們看到,隨著業務發展,大型區塊鏈網絡和應用的不同建設時期有可能引入不同的區塊鏈底層技術,甚至從規劃時就用多種區塊鏈底層平臺實現分層、分區域、分業務的鏈網體系,并不會綁定到某一個底層技術上。
那么,如此龐雜的技術生態中,因底層架構、數據結構、接口協議、安全機制等差異,會帶來一系列的問題,比如應用不得不針對每種鏈去重復開發,不同鏈上的數據和事務難以無縫對接等。
WeCross面向不同鏈之間的網絡尋址、密碼算法、應用接口、事務模型、安全治理進行研究和抽象,提出了“書同文、車同軌”的愿景,本著“最大的共識、可運行的代碼”的思路,開放適配多種底層鏈。
在不同的鏈實例之間實現合約互調、狀態互認、事務保障等一系列的功能,對應用層提供統一的接口,使得應用達成WORA(Write Once,Run Anywhere),區塊鏈應用輕松互聯互通,拓展了網絡邊界。
與現實世界互通:智能合約引擎本身是一個“沙盒”,以屏蔽掉各種不確定性的干擾,保證鏈上事務的分布式一致性、事務性,比如,用不同節點上的智能合約去調用本機系統時間,由于時鐘有可能根據時區、對時的不一致,那么會導致合約計算差異,無法達成一致;同理,鏈外的隨機數、文件系統、網絡數據、現實世界里的信息如股價、球賽結果,都無法直接由智能合約調用,智能合約和真實世界存在“隔閡”。
Truora預言機用于打通鏈上鏈下的信息通道,預言機服務響應鏈上合約的調用請求,去采集互聯網乃至現實世界的信息,經過密碼學校驗后,可信可靠地錨定到鏈上,為鏈上合約提供統一的數據視圖,這樣智能合約就能得到一致且確定的鏈下數據。
Truora預言機拓展了智能合約的邊界,可以實現許多有趣、有用的鏈上鏈下互動,如基于可驗證隨機數實現分布式抽獎、基于匯率實現跨境金融業務、基于天氣信息實現民生應用等。
智能合約引擎進化:智能合約引擎是區塊鏈的核心,之前的智能合約引擎在復雜的業務面前已經略顯力不從心,比如解釋型的引擎速度較慢,不能支持較為復雜的數據格式和較深的調用堆棧,且對資產安全沒有嚴格約束,沒有原生的跨鏈和隱私保護指令等,開發人員也面臨開發調試不便的痛點,并希望能用自己熟悉的編程語言開發智能合約。
Liquid智能合約項目創新地提出安全(Security)、性能(Performance)、體驗(Experience)及定制能力(Customization )的“SPEC”設計規范,為智能合約語言引擎增強運行高效、資產安全、原生支持隱私保護和跨鏈協同等特性。
同時,Liquid引入了WebAssembly 技術,具備很強的開放性、通用性,有助于持續的將各種流行的編程語言移植成智能合約語言, Liquid還提供友好的開發編譯工具,可調式的IDE等,智能合約語言的表現力、開發體驗越來越完善。
完善多方協作治理體系:隨著應用的開展,協作關系趨于復雜,我們認為除了解決技術問題、滿足各種功能需求之外,還需完善治理模型,方能長治久安。多方協作治理著眼于“人、事、規則和流程”,定義區塊鏈相關方各種角色,梳理鏈上需要多方治理的事務,覆蓋區塊鏈上協作規則的討論、制定、決策、執行的整個過程。
治理這個方向其實包羅萬象,非常繁雜紛亂;治理過程也充斥著不同觀念的碰撞、不同利益立場和博弈。完全的鏈上或者鏈下治理,都有可能是不完整、低效且容易分叉的,需要張弛有度的追求最大共識且務實落地。
在研究治理的歷史和未來發展之后,我們結合鏈上鏈下的優勢,提出立體化的治理策略,從定義治理規則的“元治理”為起點,厘清治理中的角色、權限、事務等定義,描繪治理的架構全貌,實現和開源了多方協作治理系列項目。
這一系列項目提供直觀、易用的策略設計和實操工具,實現了諸如多方投票、委員會選舉、賬戶治理、權限管理等常見功能,幫助管理員、運營者以及其他參與方高效、透明地參與到鏈上事務,完成從構建區塊鏈、業務變更、到系統升級維護等全生命周期的管理。
以上方案都是在探索過程中,根據我們對領域發展的理解,以及社區的討論和反饋,逐步實現和完善的。每個方案的發布常常能解決一些領域痛點,填補空白,切實地將技術邊界拓寬一點,將產業生態發展持續地往前推進。閉門造車顯然寸步難行,而基于社區共識的前瞻預判,有助于看到明晰的方向,我們還會繼續與社區共建,陸續開發更多的方案,敬請期待。
用的“爽”是開發者的最愛
隨著開源項目的發展,代碼行數和技術文檔字數都以百萬計,雖然給到了開發者豐富的選擇和汗牛充棟的學習資料庫,但是否給開發者又帶來了額外的學習和應用成本呢?團隊一位架構師有句很受用的總結:“如果用戶15分鐘內還沒有把你的開源項目用起來,他就有可能流失”。
所以,要讓用戶真正地用起來,僅僅將看似“硬核”的技術組件簡單地羅列出來是不夠的。開源項目應該是成型和高可用的“產品”,其核心能力過關,又有友好順暢的交互體驗,讓開發者幾乎無成本、無障礙地用起來,這樣才會得到社區關注、認可,形成聚攏效應,吸引更多人一起共建。
我們為每一個開源項目的代碼、文檔、發行包都提供高速訪問渠道,避免開發者在網絡環節卡殼;在安裝部署時,內置一鍵腳本和提供可視化部署工具,開發者進行簡單配置,即可秒級搭建開發和生產環境。
實際上,開發者的環境千差萬別,對開源社區給到的issue反饋,我們會和開發者一起研究解決,以持續覆蓋各種環境;WeBASE中間件平臺一站式的集成了運營管理臺、開發者IDE、快速部署和運維工具、數據報表和審計分析工具等,有著直觀的網頁和移動端圖形化界面,WeBASE使區塊鏈 “看得見、摸得著、用的爽”,發布后深受社區喜愛。這一系列操作,可以保證開發者“無痛”的開啟區塊鏈之路。
更進一步,當用戶有了一套鏈環境,開始構建區塊鏈應用時,常常不會只用區塊鏈底層和某一個特定的組件,而會集成多個方案,共同滿足業務中的多樣需求。
如一個應用需要管理分布式身份,要引入鏈外的匯率等信息,又需要跨鏈互聯,然后產生的數據需要維護和分析,同時要保護隱私……這里有多種技術互相融合,有多變的協作關系需要治理。
現代軟件設計推崇模塊化、定制化、可擴展。每個組件本身具有很強的專業性,可獨立解決特定的領域問題,又可以和底層以及其他組件一鍵式組裝集成,構成 “套餐”式的區塊鏈方案矩陣。
圍繞著區塊鏈底層和WeBASE中間件,各技術組件通過開放接口持續集成,整套體系采用分層松耦合的“微服務”架構,符合“云原生”規范,便于與私有化部署環境、云平臺、以及開放網絡的架構體系進行整合。
開發者根據自己的需求,基于開源代碼、云平臺、開放網絡,選擇一個或多個組件的區塊鏈“套餐”,借助一鍵式應用開發腳手架,合約模板,應用市場快速構建應用,整體開發過程向“低代碼”模式進發,大大加快了技術落地的步驟。
區塊鏈領域的廣度包羅萬象,深度上直達計算機理論、分布式網絡、密碼學等知識內核,高度上探商業、哲學、博弈論等境界。區塊鏈呼喚專業性和復合性兼備的人才,這樣的人才簡直是供不應求。我們在人才教育方面也做了一些努力,包括與主管部門、行業協會、高校、研究所開展系列課程和課題合作;撰寫符合工信部人才交流中心、教育部標準的區塊鏈教材課件;和產業機構聯合設計開發區塊鏈實訓平臺,幫助學員一步步的完成課程、進行實踐和考證。
更多的時候,我們通過系列文章、沙龍、線上線下的交流,對區塊鏈的思想、技術、學習方法進行多角度、多層次的科普。獨木難成林,社區已經出現了諸多熱心專業的“布道者”,社區認證培訓合作伙伴遍布全國,大家一起共同傳播有用有益的知識,桃李滿天下,掌握了區塊鏈思維和區塊鏈技術的開發者越來越多。
在歷屆黑客松、高校技術大賽中,我們看到參賽團隊從頭搭建環境和設計開發,3天內就可以拿出完成度極高的優秀作品;各行各業的社區合作伙伴們落地應用的速度也越來越快,區塊鏈應用本身的體驗越來越好,功能越來越全面,無論是用戶還是開發者的滿意度越來越高。“黑科技”的應用,不一定是艱深痛苦的開發體驗,也可以順暢愉悅起來。
大道至簡,攜手同行
硬核的基礎能力,豐富的功能組件,友好的易用性,對數據運營和版本兼容的貼心保障,是FISCO BCOS開源社區和微眾銀行區塊鏈系列開源項目的運作要旨,也是獲得社區支持的重要原因。從開源以來,社區已經聚攏了40000名關注者,2000多個機構,已有超過120個應用在各行各業落地運行,活躍的生態,也推動著技術的進化。
前沿技術研究有著許多路徑要去探索,每個路徑都有著繁雜的細節要研究,還有大量相關技術如物聯網、人工智能、5G通信等可以有機融合進來。我們相信,技術和產業發展的未來,很大程度上取決于生態的開放性和成長性,埋頭于國產安全可控核心技術研發的同時,我們密切關注社區的現在和將來的需求,和社區諸多開發者合作共建。
目前,社區已經成立了多個SIG(專項興趣小組),覆蓋區塊鏈內核、周邊支撐以及應用項目,開發者們每天討論地熱火朝天,一起做有趣、有挑戰、利己利人的事情。攜手同行,群智涌現,會少走許多彎路,少踩許多坑,奔跑的速度會更快,可用和好用的開源項目會越來越多。
開源之道,歸結起來就三句話:技術硬核、友好易用、生態開放。區塊鏈其實也可以很簡單!