前語
制約區塊鏈投入大規模應用的瓶頸很多, 很難在一篇文章裡完全介紹, 所以我們做了一個系列四篇文章來逐個探討。 這個系列分為四篇, 分別從資料同步的輸送量, 跨中心的控制管理機制, 多參與方的安全隱私交易, 以及殺手級應用的實踐與特點幾個方面來解析。 我們首先來談談區塊鏈資料同步及輸送量方面的難點及發展。
公有鏈和聯盟鏈的區別
簡單來說, 區塊鏈是一種分散式資料庫, 其特殊之處在於無(弱)中心化。 從面向人群來分類, 區塊鏈可分為公有鏈和聯盟鏈(或私有鏈)兩大類。
公有鏈共識機制的制約
區塊鏈網路上的多個參與方, 在每次更新鏈上資料時(例如轉帳)必須要獲得一定數量的參與方認可才可以進行, 這個認可過程就是共識機制。 該機制的主要目標是在參與方控制多個節點的情況下, 杜絕多個參與方聯合造假的可能性。
目前, 以比特幣、乙太坊為代表的公有鏈, 其共識機制並不適合商業場景使用, 主要有三個原因。 第一是性能遠低於商用需求, 以金融系統為例,
聯盟鏈共識機制及瓶頸
為了解決公有鏈共識機制的問題, 業內引入了聯盟鏈。 在聯盟鏈場景中, 共識機制裡防止造假節點的問題通常稱為拜占庭將軍問題;能夠防止惡意造假節點的演算法, 也被統稱為拜占庭將軍演算法(BFT)。 用通俗的話講, 共識機制就是讓參與方來一起投票來決定是否接受一筆交易。
除了以上問題, xBFT系類演算法的另一個通病是多節點資料執行的確定性, 節點分佈在各個不同的地點, 但是要求它們對同樣指令的計算結果必須是一致的。 雖然概率很低, 但同樣指令在不同環境不同物理機下執行結果不一致的情況也確實發生過。 不解決這個問題, 就無法應用在一些相對嚴苛的系統環境裡, 如金融類系統。 解決這個問題需要對預計算的結果進行背書,雖然PBFT演算法設計之初這類問題就被提及,遺憾的是目前各種xBFT實現中極少考慮到這個問題。
除此之外,xBFT演算法下如何動態增加節點也是一個多故障點的複雜工程,雖然已經有一些這方面的嘗試(如BFT-SMaRt,已經開發5年 ),但是由於高複雜性目前還很難保障最基本的穩定運行,離商用需求的穩定性需求和各種異常處理機制的完善也還相差甚遠。對這些問題的深入理解,也是平安壹賬通在設計FiMAX產品時在共識機制的選擇及開發上,儘量採用成熟度可商用且容易被接受的機制。
擴大輸送量的嘗試
在公有鏈上,擴大輸送量近年來一直有很多嘗試。使用的策略大多分為兩類,第一類是鏈下清結算模式,在必要的時候才將交易寫到鏈上,這類以閃電網路為代表;另一類是多鏈分片模式。
前者(鏈下清結算模式)雖然概念新穎,涉及點除了技術層面,還新增加了鏈下商業角色,對商業模式也有創新。該模式在公有鏈網路上才剛剛開始測試,並且功能上單一,短時間內還無法適用在需求繁瑣的商業場景中。相比前者,後者(分鏈模式)雖然現在有了很多變種(如DAG)但難點則都主要集中在技術層面,由於分散式存儲特性的限制,為換取更大的輸送量往往要犧牲部分資料一致性,勢必會為保證準確性而增加交易延遲,甚至是長時間不確定延遲。對於最終一致性問題本身已經不盡人意的區塊鏈系統來說,分鏈分片的引入也許在公鏈環境能被接受,但在現實金融關鍵任務系統中的運用上不現實。
跨鏈的問題
因此,我們在設計FiMAX產品中秉承的理念是,突破輸送量的限制必須,也只能,從單鏈開始,多鏈、跨鏈等機制都要儘量避免,不到迫不得已不要輕易使用。目前,FiMAX網路上每個節點只需要2.1Ghz 8核CPU、無跨鏈、無分鏈分片的情況下,支援每秒5000+筆的交易輸送量,並能夠通過簡單方便的硬體升級迅速成倍提高單鏈輸送量到數萬級別,綜合性能與傳統資料庫已很接近,已具備支撐大規模商業應用的能力。
在跨鏈方面,FiMAX系列體系為客戶提供三套方案。因為由於網路延遲,演算法複雜等原因造成的一些無法避免問題, FiMAX的三套跨鏈方案的理念是讓客戶根據自身的需求在複雜度和效率上做出平衡選擇。
發展方向
雖然還在起步階段,但平安投產的區塊鏈應用已經超過14個,國際國內專利也發表了60份以上。以我們的實踐經驗來看,要想說服大型機構真正採用區塊鏈技術作為生產應用,而非僅僅是PoC實驗項目,首先最值得關注的就是資料同步的穩定性和一致性,因為只要涉及真實生產資料的場景就必須是穩定壓倒一切。 因為在關鍵任務系統中,任何“暫時”性的資料不一致或者理論上的“小概率”事件都會帶來災難性的後果。
(作者陸一帆系平安壹賬通壹賬鏈項目總監,FiMAX總架構師;褚鎮飛(平安壹賬通壹賬鏈技術副總監,FiMAX Core首席架構師)
解決這個問題需要對預計算的結果進行背書,雖然PBFT演算法設計之初這類問題就被提及,遺憾的是目前各種xBFT實現中極少考慮到這個問題。除此之外,xBFT演算法下如何動態增加節點也是一個多故障點的複雜工程,雖然已經有一些這方面的嘗試(如BFT-SMaRt,已經開發5年 ),但是由於高複雜性目前還很難保障最基本的穩定運行,離商用需求的穩定性需求和各種異常處理機制的完善也還相差甚遠。對這些問題的深入理解,也是平安壹賬通在設計FiMAX產品時在共識機制的選擇及開發上,儘量採用成熟度可商用且容易被接受的機制。
擴大輸送量的嘗試
在公有鏈上,擴大輸送量近年來一直有很多嘗試。使用的策略大多分為兩類,第一類是鏈下清結算模式,在必要的時候才將交易寫到鏈上,這類以閃電網路為代表;另一類是多鏈分片模式。
前者(鏈下清結算模式)雖然概念新穎,涉及點除了技術層面,還新增加了鏈下商業角色,對商業模式也有創新。該模式在公有鏈網路上才剛剛開始測試,並且功能上單一,短時間內還無法適用在需求繁瑣的商業場景中。相比前者,後者(分鏈模式)雖然現在有了很多變種(如DAG)但難點則都主要集中在技術層面,由於分散式存儲特性的限制,為換取更大的輸送量往往要犧牲部分資料一致性,勢必會為保證準確性而增加交易延遲,甚至是長時間不確定延遲。對於最終一致性問題本身已經不盡人意的區塊鏈系統來說,分鏈分片的引入也許在公鏈環境能被接受,但在現實金融關鍵任務系統中的運用上不現實。
跨鏈的問題
因此,我們在設計FiMAX產品中秉承的理念是,突破輸送量的限制必須,也只能,從單鏈開始,多鏈、跨鏈等機制都要儘量避免,不到迫不得已不要輕易使用。目前,FiMAX網路上每個節點只需要2.1Ghz 8核CPU、無跨鏈、無分鏈分片的情況下,支援每秒5000+筆的交易輸送量,並能夠通過簡單方便的硬體升級迅速成倍提高單鏈輸送量到數萬級別,綜合性能與傳統資料庫已很接近,已具備支撐大規模商業應用的能力。
在跨鏈方面,FiMAX系列體系為客戶提供三套方案。因為由於網路延遲,演算法複雜等原因造成的一些無法避免問題, FiMAX的三套跨鏈方案的理念是讓客戶根據自身的需求在複雜度和效率上做出平衡選擇。
發展方向
雖然還在起步階段,但平安投產的區塊鏈應用已經超過14個,國際國內專利也發表了60份以上。以我們的實踐經驗來看,要想說服大型機構真正採用區塊鏈技術作為生產應用,而非僅僅是PoC實驗項目,首先最值得關注的就是資料同步的穩定性和一致性,因為只要涉及真實生產資料的場景就必須是穩定壓倒一切。 因為在關鍵任務系統中,任何“暫時”性的資料不一致或者理論上的“小概率”事件都會帶來災難性的後果。
(作者陸一帆系平安壹賬通壹賬鏈項目總監,FiMAX總架構師;褚鎮飛(平安壹賬通壹賬鏈技術副總監,FiMAX Core首席架構師)