專訪 | 支撐區塊鏈大規模商用,揭祕FISCO BCOS v3.0的那些“黑科技”

FISCO_BCOS發表於2022-06-01

在2021年度金鍊盟生態大會上,全新的FISCO BCOS v3.0正式釋出。該版本從架構、演算法以及安全可控和隱私計算協同等方向進行了全面升級,滿足數字經濟時代對區塊鏈系統可承載更大規模、更多場景、更廣泛參與的產業應用需求。

此前,FISCO BCOS開源社群釋出了FISCO BCOS v3.0 2022年技術發展路線,這也是繼2021年12月v3.0正式釋出後,首次揭示未來的技術發展計劃。

那麼,FISCO BCOS v3.0有哪些重要特性?如何突破區塊鏈效能瓶頸,提升鏈上效率,滿足數字經濟時代的新需求?帶著這些疑問,CSDN專訪了微眾銀行區塊鏈底層平臺負責人、FISCO BCOS高階架構師李輝忠,以下為專訪實錄。

(微眾銀行區塊鏈底層平臺負責人、FISCO BCOS高階架構師李輝忠)

三個版本,滿足多種業務需求

CSDN:“產業數字化”、“資料新基建”、“資料要素”等戰略,都跟區塊鏈有著非常緊密的關係。在你看來,區塊鏈上升到國家戰略技術後,整個產業應用發展有哪些顯著變化?

李輝忠:區塊鏈作為一門防篡改、多中心化、安全可控的技術,上升為國家戰略技術後,迎來了快速發展階段,更廣泛地應用於產業數字化,助力實體經濟發展。

技術層面,區塊鏈與多種前沿技術和創新場景愈發緊密地融合,為數字經濟時代提供資料的安全儲存、可信傳輸、協同生產等一系列數字化基礎設施。

應用層面,越來越多不同領域的業務(如政務、跨境資料驗證、金融、公益、醫療、教育等),開始引入區塊鏈技術來構建信任關係,以提升多方協作效率,降低協作成本。區塊鏈與產業網際網路、物聯網、數字經濟等領域的融合也已經成為一種趨勢。

產業層面,國家和政府加大對區塊鏈技術人才發展的投入,區塊鏈尤其是聯盟鏈相關的開源社群蓬勃發展。在各地政府的支援下,湧現了大量區塊鏈相關的產業園區、實驗室、孵化器……

CSDN:這些變化已經或者將會給區塊鏈技術帶來哪些新的挑戰和要求?目前主流的區塊鏈平臺是否能夠滿足這些要求?

李輝忠:蓬勃發展的產業數字化程式對區塊鏈提出新的需求:技術需要承載更大規模應用、更多業務場景和更廣泛行業參與。這也意味著區塊鏈底層需要更易治理、更安全、更靈活可擴充套件、更高效好用、更開放的技術體系。

此外,隨著區塊鏈和產業網際網路、物聯網、數字經濟等更進一步的融合,對區塊鏈底層平臺的效能、儲存容量、可監管性、可運維性等也提出了更高的要求,因此從網路、計算、儲存等各個維度,提升區塊鏈系統的橫向可擴充套件性,使其可支撐海量服務場景成為亟待解決的問題。

基於上述考慮,FISCO BCOS從各個維度重新設計並開發了FISCO BCOS v3.0,旨在打破區塊鏈底層平臺的效能、儲存瓶頸,構建一個可支撐海量服務的區塊鏈系統。例如採用全新的微服務架構設計,實現模組化分層治理與平行擴充套件;創新性地提出了「確定性多合約並行演算法DMC」(Deterministic Multi-Contract),實現流水線共識機制和混合排程,大幅提升系統整體的吞吐量,同時降低時延。

CSDN:本次升級推出了三個不同版本:Air版、Pro版和Max版,三個版本面向的群體是否有所不同?可以解決哪些場景下的哪些問題?

李輝忠:FISCO BCOS開源社群經過4年的發展,生態內的產業角色逐漸豐富,這幾年我們也遇到幾類典型使用者:

  1. 落地應用的機構使用者,他們基於FISCO BCOS投產落地眾多應用,而且應用的業務量越來越大;
  2. 運營平臺的機構使用者,他們基於FISCO BCOS構建了BaaS平臺對外提供服務;
  3. 以個人開發者為代表的學習型使用者。

這幾類使用者訴求存在比較大的差異:有大業務體量上鍊的機構需要區塊鏈支撐海量計算和儲存,可以承擔較複雜系統的運維;BaaS平臺的使用者需要更好的區塊連結入、隔離、計費機制等;而學習型使用者則最需要簡單易用、可快速上手的區塊鏈工具。

對於不同使用者的訴求,我們嘗試在FISCO BCOS v3.0中提供靈活可擴充套件的開發框架,讓不同使用者根據不同場景和需求進行定製。所以我們打造了“輕便Air版”、“專業Pro版”和“大容量Max版”。

Air版採用all-in-one的封裝模式,將所有模組編譯成一個二進位制(程式),一個程式即為一個區塊鏈節點,包括網路、共識、接入等所有功能模組,採用本地RocksDB儲存,適用於初學者入門、功能驗證、POC產品等。

Pro版包括RPC、Gateway兩個接入層的服務和多個區塊鏈節點服務組成,儲存採用本地RocksDB,所有區塊鏈節點服務共用接入層服務,接入層的兩個服務可平行擴充套件,適用於容量可控(T級以內)的生產環境,能夠支援多群組擴充套件。

Max版本將執行、共識、儲存、Gateway、RPC拆分為獨立的微服務,每個微服務均可獨立部署、擴容和容錯,適用於海量交易上鍊的場景。

CSDN:我們知道這次v3.0的研發,不少社群夥伴都十分關注,甚至參與其中。從v1.0到v3.0,FISCO BCOS的生態發展呈現出了哪些不同的特點?

李輝忠:從FISCO BCOS v1.0到FISCO BCOS v3.0,不論從技術層面,還是開源社群運營層面,FISCO BCOS的生態都越來越成熟、越來越活躍。2015年,開發者想找一款金融級的區塊鏈底層平臺作為技術底座開發應用很難,FISCO BCOS v1.0在此場景下應運而生,但彼時區塊鏈應用場景有限,區塊鏈平臺功能特性也不完備。

2019年,中央政治局第十八次集體學習時強調,把區塊鏈作為核心技術自主創新的重要突破口,加快推動區塊鏈技術和產業創新發展。越來越多的產業開始與區塊鏈技術結合。FISCO BCOS v2.0數百個產業數字化應用實踐,證明了開源區塊鏈技術“能用”,且越來越“好用”。

而現在,相比於FISCO BCOS v1.0和FISCO BCOS v2.0,FISCO BCOS v3.0一方面注重區塊鏈系統元件化,提升區塊鏈底層平臺本身的開發效率;另一方面更關注區塊鏈系統的橫向擴充套件性,構建一個可以支撐海量服務的區塊鏈底層平臺。

如今,FISCO BCOS開源生態圈已匯聚了超3000家機構與企業、70000名個人開發者,沉澱了200餘個產業數字化標杆應用,對產業區塊鏈的發展起到舉足輕重的推動作用。

活躍的開源生態也為技術的演進帶來更多可能,在v3.0研發過程中,開源社群自發構建了多個專項興趣小組,涵蓋了每個關鍵模組,社群開發者積極參與各研發環節的討論。也正是有社群的參與與共建,v3.0才能更好地解決開發痛點、貼近產業需求。

打破大規模商用桎梏

CSDN:業內一直流傳著一個說法,區塊鏈技術目前還無法支援大規模商用,很大程度是受制於區塊鏈效能。FISCO BCOS v3.0如何解決效能掣肘,應對海量資料上鍊的問題?

李輝忠:為了提升系統效能,應對海量資料上鍊,在系統架構上,FISCO BCOS v3.0將區塊鏈系統劃分為網路、計算、儲存、排程等微服務模組。每個微服務可獨立部署、擴容和容錯,應用可通過調整微服務物理資源來滿足業務的網路和效能需求,實現了區塊鏈系統的橫向擴充套件。

在系統設計上,FISCO BCOS v3.0一方面設計並實現了兩階段並行拜占庭共識,將區塊鏈共識演算法劃分成區塊批量並行排序共識、區塊執行結果流水線共識兩個階段(兩個階段可並行),提升了系統資源利用效率,實現了區塊鏈系統的縱向可擴充套件性;另一方面提出確定性多合約並行方案(簡稱DMC),可自動將多個交易並行排程到不同執行器中,並保證並行交易執行結果的確定性,由於執行器可動態擴容,消除了機器資源對執行效能的限制,提升了區塊鏈系統橫向可擴充套件性。

此外,為了應對海量資料儲存場景,FISCO BCOS v3.0引入專業分散式資料庫(如TiKV)作為後端儲存引擎,消除本地磁碟空間對區塊鏈儲存限制的同時,可實現海量的分散式資料管理。

CSDN:FISCO BCOS v3.0的總架構採用了5層設計,這一設計的思路和理念是怎樣的?相比於之前或其他的區塊鏈平臺架構有哪些優勢?

李輝忠:FISCO BCOS v3.0遵循最大化系統橫向可擴充套件性的原則,將區塊鏈系統劃分成了接入層、排程層、計算層、儲存層和管理層,每層均是一個可獨立部署、擴容和容錯的微服務,實現了系統網路、儲存、計算橫向可擴充套件性的同時,提升了系統的健壯性、可運維性。

FISCO BCOS v3.0秉承元件化的設計思路,將區塊鏈系統的各個模組、特性抽象為獨立的元件。開發者基於這些元件可以按需快速開發及組裝新的區塊鏈底層系統,提升區塊鏈底層平臺的開發效率。

CSDN:請簡單介紹下DMC工作原理,它是如何實現“拉鍊式”通行的機制的?

李輝忠:DMC(Deterministic Multi-Contract,確定性多合約並行方案)的核心思路是保證並行交易執行過程中的互斥資源確定性訪問,其包括三個目標。

易用:區塊鏈底層自動啟用並行,無需使用者關注並行邏輯、預先提供衝突欄位;

高效:區塊內的交易不重複執行,沒有預執行、預分析或重試的流程;

相容:無論 EVM、WASM、Precompiled 或其它合約,使用任意的共識機制,都能使用此方案。

DMC方案首先要求區塊鏈的智慧合約間沒有共享資料,每個合約都有獨立的儲存空間,其它合約無法讀取和寫入。執行交易時,DMC會將區塊內所有交易呼叫的不同智慧合約程式碼塊拆分為多個程式碼段,多個不同智慧合約的程式碼塊交錯執行,拆分的邊界是跨合約呼叫與互斥資源訪問。

DMC能讓呼叫不同合約的多個交易並行執行,由於智慧合約間沒有共享的資料,因此,不同合約間的並行執行總是可以保證最終結果的一致性。當任意智慧合約發生跨合約呼叫,或是訪問已經鎖定的互斥資源時,DMC會暫停該交易的執行,並等待當前階段中其它所有交易都執行完成,或是由於發起跨合約呼叫和訪問已鎖定的互斥資源而暫停,這個等待過程稱為全域性同步。

每次全域性同步,DMC 會按照固定規則分配交易的跨合約呼叫和互斥資源訪問,保證同一個合約和互斥資源不會被並行訪問。最終在實現並行的同時,保證執行結果的一致性。

相較於其他並行執行機制,DMC實現了一種高效、自動的並行交易排程策略,最大化交易執行效能的同時,降低了並行合約的開發門檻。

CSDN:流水線共識和混合排程是如何實現的?與其他共識機制相比,這一共識的底層邏輯有何不同?又有哪些優點?

李輝忠:為了保證區塊鏈系統的安全性和效能,當前聯盟區塊鏈系統一般採用拜占庭共識演算法。

但由於鏈式區塊鏈系統的每個區塊頭必須包含父區塊的雜湊和當前區塊的執行結果,一方面導致了區塊共識必須序列進行(即對第N個區塊的共識必須在開始共識第N+1個區塊之前完成)。 另一方面導致區塊鏈共識與區塊執行、提交緊密耦合(即整個區塊共識流程中必須包含區塊執行和區塊提交的步驟)。同時,區塊打包、廣播共識訊息包等低CPU佔用的過程中,無法並行進行區塊執行,嚴重降低了系統資源利用效率,降低了區塊鏈系統效能。

為了解決當前區塊鏈系統序列共識的效能問題,FISCO BCOS v3.0提出了一種兩階段並行拜占庭共識演算法,該演算法將區塊鏈系統的共識劃分成區塊批量並行排序共識和區塊執行結果流水線共識兩個階段,且兩階段可並行進行。區塊批量並行排序共識和區塊執行結果流水線共識均支援對多個區塊進行並行共識,從而提升了區塊鏈吞吐量。

CSDN:請介紹下後續v3.0還有哪些研發計劃?

李輝忠:FISCO BCOS v3.0目前已釋出三個rc版本,預計在釋出四個rc版本後,將釋出正式的LTS版本。

在每個版本中,我們都會有一些重點關注的新特性。比如已釋出的rc2版本,升級了元件化倉庫管理;rc3版本,將Solidity支援並行,可以自動進行合約解析、並行執行、並行跑、並行驗證;即將釋出的rc4版本,可以更好支援大規模上鍊;未來將釋出正式的LTS版本,基本實現v3.0最初規劃的所有功能特性。

今年下半年, FISCO BCOS v3.0將在雲原生落地、跨群組(鏈)通訊、隱私計算結合等領域進行更多探索,也會推進從技術實現到專案管理的全面國產化。比如更好地支援雲原生落地;將陸羽跨鏈協議的相關能力整合到v3.0中,實現更便捷的跨鏈;隱私計算結合方面,計劃將微眾區塊鏈的隱私計算能力賦予到v3.0底層裡,讓v3.0可以更好地支援跟隱私計算場景相關的應用落地。

全鏈路國產化支援保障資料安全可控

**CSDN:2021年《個人資訊保護法》施行,業內更關注隱私資料的安全,對於資料安全,v3.0有什麼核心技術優勢?這些優勢是如何實現的呢?
**

李輝忠:區塊鏈與隱私計算結合,可以使原始資料在無需出域與歸集的情況下,實現多節點間的協同計算和資料隱私保護。同時能夠解決大資料模式下存在的資料過度採集、資料隱私保護,以及資料儲存單點洩漏等問題。

FISCO BCOS v3.0在計算層可以很方便地以鏈外預言機的形式引入隱私計算平臺,進而與隱私計算相結合,通過區塊鏈確保計算過程和資料可信,通過隱私計算實現資料可用不可見,從而實現更廣泛的資料協同。

CSDN:v3.0提供了國密基礎元件的封裝介面,這一升級對開發者可以帶來哪些影響?

李輝忠:使用FISCO BCOS v3.0提供的國密基礎元件,開發者可以快速使用國密演算法、國密通訊協議。

對於程式設計師來說一直有一個痛點,為了適配國密和國產化,需要在不同平臺、不同作業系統、不同程式語言逐一適配開發,工作量巨大,而且每一次核心邏輯更改需要相容更改各個平臺、各個系統、各個語言,苦不堪言。

FISCO BCOS自研發之初,一直重視國密接入和國產化支援。為了更好地在多語言、多終端、全鏈路實現國密接入,FISCO BCOS v3.0構建了通用國密基礎元件,將國密演算法、國密通訊協議、以及國產密碼機接入協議封裝成通用基礎元件。在此基礎上,FISCO BCOS v3.0將區塊鏈相關的網路、群組、賬本、事件等邏輯用C++語言實現成一個獨立共享庫,並封裝提供C語言介面。

基於這套底層C介面,開發者可以快速對接開發不同語言、不同平臺和系統的SDK,且這些多語言SDK無需關心底層邏輯,系統升級只需更新底層共享庫,大大提升研發管理效率,保證了全平臺的國產安全可控。

CSDN:今年來,國產技術逐漸崛起,而FISCO BCOS開源之初就佈局國產化,從國密版到全鏈路國產化支援,這一步步的佈局是出於何種考量?未來在國產化上有哪些計劃?

李輝忠:FISCO BCOS作為安全可控的國產金融級區塊鏈底層平臺,一開始就秉持國產化理念,已從國密演算法、作業系統、晶片架構到伺服器平臺實現完整的國產化支援。

未來會在更多維度進行國產化支援,如適配國產資料庫、支援國產加密硬體、支援更多的國產晶片架構和作業系統平臺等,此外,也會更加關注國密區塊鏈的效能。

瞭解更多幹貨內容,請關注FISCO BCOS開源社群公眾號,訪問FISCO BCOS程式碼倉庫可下載專案所有原始碼:https://github.com/FISCO-BCOS/FISCO-BCOS歡迎點選頁面右上角star收藏,獲取最新版本。

相關文章