快速了解!許理對區(qū)塊鏈技術瓶頸的幾點分析及應對策略
5月13日,巴比特學院2期導師、HPB芯鏈聯(lián)合創(chuàng)始人&CTO許理講授了《區(qū)塊鏈技術瓶頸分析與解決方案探討》。許理從底層技術出發(fā),分析了目前區(qū)塊鏈存在的性能瓶頸問題并提出相應解決方案。
許理首先展示了一組數(shù)據(jù),描述當前區(qū)塊鏈行業(yè)TPS現(xiàn)狀。信用卡每秒鐘可處理的交易數(shù)量是4.4萬筆,天貓在2017年雙十一的交易量峰值32.5萬次/秒。對比之下,比特幣和以太坊的處理速度顯得極低,這也是為什么基于區(qū)塊鏈的某些應用目前很難跑起來的重要原因。
接下來許理以以太坊為研究對象,通過大量數(shù)據(jù),為我們揭示了當前區(qū)塊鏈存在的瓶頸的主要原因。
第一部分:區(qū)塊鏈網絡交易流程
以太坊的交易分為交易發(fā)生、交易確認與出塊兩部分。流程大致如圖所示:
交易發(fā)生
交易確認與出塊
第二部分:性能瓶頸分析
網絡性能、計算與處理性能分析 網絡性能分析包括交易廣播、區(qū)塊同步廣播、總數(shù)據(jù)同步、存儲容量4部分。
第一,從交易廣播看,以太坊中任意一個節(jié)點任意一筆交易需廣播給臨近的25個節(jié)點。以TPS10萬次計算,任意一個節(jié)點需要廣播的數(shù)據(jù)量為:144Byte*25個節(jié)點*100000筆/秒=360,000,000Bps=2.88Gbps。以上行速率4Mbps計算,10萬次突發(fā)交易數(shù)據(jù),需要12分鐘才能全部廣播完成。
第二,從區(qū)塊同步廣播看,以TPS10萬次/秒計算(峰值),每筆交易入塊數(shù)據(jù)144Byte,同步到臨近25個設備,每秒同步區(qū)塊數(shù)據(jù)量約為:360,000,000Byte,這要求每個節(jié)點理論上行帶寬必須達到2.88Gbps,才能完成全部區(qū)塊廣播。
第三,從總數(shù)據(jù)同步看,許理以某叫車平臺平均交易次數(shù)115筆/秒(均值)計算,每筆交易入塊數(shù)據(jù)144Byte,以10分鐘一個區(qū)塊計算,每個區(qū)塊數(shù)據(jù)量約為:115筆/秒*144Byte*600秒/筆=9,936,000Byte。任意一個節(jié)點,需要廣播的數(shù)據(jù)量約為:9,936,000&TImes;25&TImes;8&TImes;2=3,974,400,000bits=3.9744Gbits。要求每個節(jié)點理論上行帶寬必須達到6.624Mbps,才能完成全部區(qū)塊廣播。
第四,從存儲容量看,以太坊中任意一個節(jié)點,任意一筆交易,以TPS10萬次計算,每秒賬本新增數(shù)據(jù)量:144Byte*10萬筆/秒=14.4MBps,每天新增賬本的容量是:14.4MB*3600*24=1,244,160MB=1.2TB。
計算與處理性能分析
首先是驗簽處理,任意節(jié)點收到一筆新的交易都需要做交易驗證,這部分工作是通過CPU完成。以ETH采用的ECC算法為例,測試系統(tǒng)使用x86,i5雙核2.0G處理器,一次驗簽耗費時間大于20ms。意味著雙核全部做ECC驗簽,每秒鐘處理50次。果遇到突發(fā)上萬TPS時,就會出現(xiàn)交易溢出,系統(tǒng)內存耗盡,崩潰宕機現(xiàn)象。
其次是轉發(fā)處理,任意一筆新的交易同樣由CPU來進行轉發(fā),ETH的處理方法是每發(fā)一筆交易,在廣播交易事件時,都會導致開啟一個線程。當交易量上升時,線程會逐漸累積,累積過大,可能導致golang虛擬機宕機。而且當交易量較大時,因事件機制不完善,導致交易廣播線程不能順序處理,使得某個賬戶發(fā)送的交易不能按照nonce的順序廣播,其他節(jié)點會拋棄相應交易。
第三部分:解決方案——縱向加速、橫向加速
為突破當前瓶頸,許理提出了兩個解決方案:縱向加速以及橫向加速。
所謂縱向加速解決方案是基于傳統(tǒng)概念鏈技術基礎之上,優(yōu)化減少同步數(shù)據(jù)量,提升網絡帶寬及處理性能的一系列解決方案。具體特點是:
1.采用數(shù)據(jù)中心,數(shù)據(jù)集群;
2.減少同步數(shù)據(jù)量;
3.提高各節(jié)點網絡帶寬是關鍵;
4.提高各節(jié)點并發(fā)處理性能;
橫向解決方案包括兩種,一種是建立分層結構(Layer2),把不必要的交易從最底層的主鏈分離到附屬結構上,比如比特幣的閃電網跟隨的就是這個思路。另一種是分片技術(Sharding),用于改進主鏈本身的協(xié)議來提高它的性能。





