Heco 技術負責人Andrew 認為,區塊鏈具體的約束和認識抑制的提前下,可實現互聯網領域優秀的工程優化經驗。
演講:Andrew,Heco 技術負責人
2021 年9 月4 日,BeWater DEVCON 全球開發者大會在北京舉行,來自語言的近百位鏈開發者齊聚北京,編程、密碼學、去中心化協議、隱私技術、、、開放金融等領域展開深入探討。
在有關公鏈的可擴展性問題時,來自海內外的開發者們對當前市場關注的分片、Layer2、側鍊等技術解決方案進行了激烈的討論。 HECO 開發技術負責人Andrew 系統地分析了當前公鏈方案解決方案存在的可擴展性,並詳細介紹了現有的公鏈可擴展性的優缺點。安德魯認為Layer1是對區塊鏈平台的擴展,Layer2是對區塊鏈應用的擴展,安德魯將Layer1擴容系統分為3大類:分片、DAG(有向無環結構)和大塊,將Layer2擴容架構分為側鍊子鏈、通道和匯總三大類。
另外,安德魯重點分享了HECO 在公鏈擴展性的理念和實踐中的經驗和總結,「HECO 回到公鏈擴展性問題的原點,看於公鏈自身的架構優化,提供一定程度的約束和軟件感知特定的提前下,和互聯網領域成熟的優化經驗是可以充分利用實例和利用的。」
基於以上觀點和認知,安德魯提出公鏈架構優化的新四化建設:
- 在保證鍊式結構的提前下,對結構進行突發事件,對組件進行充分分解和解耦;
- 在保證滿足需求的提前準備下,對進行並行化,實現多進程作業;
- 在保證狀態完整的處理下,進行異步化改造,將等式的I/O操作後台;
- 在保證透明安全的前提下,進行本地化多級優化優化。
Andrew在分享過程中提到,HECO當前性能優化成果是BSC的1.3倍以上,對Geth的性能提升更達到了1.5倍以上,未來HECO也有計劃地將這些優化經驗貢獻給Geth社區。
演講最後,Andrew 提出了「CAB 未來技巧」——Crypto Andy 和Bill 的定律,他認為10-20 年,大部分基礎網絡、基礎硬件、基礎安全,紅利都被區塊鏈領域的技術全面吸收並丙廣告, HECO未來將持續在Layer1擴展性之路上深入探索。
以下為安德魯演講全文:
公鏈擴展性問題和解決方案
部分鏈技術的本質是擴展的目標、組織的目標和的目標,但在擴展的擴展目標的本質上,技術自身卻受到了擴展問題的否定。
最清晰的就是以太坊主網,上圖是到Q2的合約TVL鎖倉量,飼養以太坊的智能原因可以持續被其他公鏈所蠶食;大家都知道,網絡嚴重擁堵,堵高昂;但根本的原因還是以太坊主網的擴展性變形。
實際鏈領域的極限問題是沒有被嚴格定義和證明的,並不能等同於起源的CAP,具體領域鏈內學術界和工業界廣泛類型的擴展性解決方案,例如分片以及最近很火的Layer2 Rollup 方案。
分片作為平台級擴展方案提供的潛力,但其安全性和模型在實際落地中容易滿足、要支持通用的高級智能思維整體供應困難重重、很多場景下跨片交易帶來的價值對吞吐提升方式的收益;應用匯總方案通過平台契約和二層相結合的,在安全性和吐吐方面有一定的優勢,但目前還只是對特定應用的擴展,還不能擴展到通用平台語言。
DeFi 業務的興起又給鏈的擴展性提出了新的要求,DeFi 應用非常吸引可組合性,火花的調用需要像搭建樂高積木一樣敏捷,而分片和Layer2 技術的共同問題是引入的虛擬服務的複雜性,對DeFi 真正的友好。所以重回到問題的原點,當看到公鏈自身的架構優化時,我們會發現,我們完全相同的鏈特有的約束和問題認知障礙的提前下,軟件和互聯網領域成熟優秀的工程優化經驗是可以充分利用例子和利用的。
這裡我將其總結為公鏈架構優化的新四化建設:
- 在保證鍊式結構的提前下,對結構進行突發事件,對組件進行充分分解和解耦;
- 在保證滿足需求的提前準備下,對進行並行化,實現多進程作業;
- 在保證狀態完整的處理下,進行異步化改造,將等式的I/O操作後台;
- 在保證透明安全的前提下,進行本地化多級優化優化。
實際上行業內已經出現了和我們類似的公鏈,比如Flow和Solana。下面我們分別介紹一下那個故事的核心設計。
Flow是一條NFT的行業公鏈,其核心理念是對交易處理過程中的垂直播放和執行進行解耦。主要有兩個創新點:
1)分節點架構,因設計人員發現節點間的處理能力差拉了整個網絡的性能和擴展性,因此Flow 將網絡中的節點收集、利用、執行和驗證4 類,讓大量的低配節點只負責設備,保證網絡的安全,而少量的配節點只負責執行,從而提升網絡整體的處理能力。
2)傳播機制,進行跨區塊的封印,從而導致彼此間的相互連接。
索拉納是一條迅猛發展的全行業公鏈,最大的創新是PoH(歷史證明),一種可驗證的對樣本時間和事件排序的方法,可以作為網絡事件,從而實現全網同步相對時間的統一拜拜和消息的高效;而Tower BFT(佔庭容錯)則是在PoH網絡的基礎上,實現了對PBFT(拜占庭容錯)消息傳輸和VC(View Change)優化。
其他的優化點像大片分片EC 編碼和路徑傳輸必須使用資源利用硬件資源、並行執行等,都是在高TPS 下實現的工程實現,當然覺得不代表真正,Solana在公鏈架構優化工程實踐中走得比較靠前。
Flow 和Solana 都是在公鍊網絡優化好的案例,這也讓持有相同理念的HECO 在行進的路上不覺孤單,當然HECO 比Flow 和Solana 還有一個特點就是完全下面就來了解一下HECO在擴展性方面的實踐和成果。
HECO 公鏈擴展性理念和實踐
先來看一下HECO的戰略定位,HECO本身就是DeFi平台的技術核心和生態基礎設施,開始著上層資產、應用和流量入口的所有業務,而HECO自身的技術矩陣又可以按資產安全、能力、網絡規模、應用生態4 大維度展示為12 個核心模塊,下中心給大家的主要是我們在能力績效相關的交易執行、狀態等方面的優化工作。
容量性能優化首先要明確其理論模型,HECO當前還是基於整個鏈的POA+POS機,在出時間塊一定的住的方面要保證可以覆蓋部分打包+傳播+交易二次執行和驗證時間。那些思想就是如果可以進一步降低執行和區塊傳播時間,就可以在一個部分內重新進行更多的交易,從而有效提升網絡整體的吞吐。
左圖是我們整理的擴展左性邊界優化的優化,右圖是當前整體後的效果,可以看藍色的線,HECO已經可以安全地將Block GasLimit設置到100M Gwei以上,TPS可以到1500+ 。下面來展開幾個重點優化。
先來看看並行優化,大家都知道並行節點的一個接口就是它的MPT狀態樹,HECO狀態樹更新多並行優化,比如多賬戶之間可以無關聯地並行RLP編碼,更新存儲Trie,並行計算存儲Root等,還有並行計算區塊盛開和收據Root等。並行執行整體優化效果是可以將區塊內交易執行時間降低30%以上。
再去更新互聯網,當分片完成優化,需要寫寫、更新快照和狀態之後進行3步存儲更新,分析發現狀態提交是持續的時間,並且可以和下一個階段進行優化提交,即上一小部分更新快照就可以開始下一小部分的執行,但同時也要保證上一小部分提交完成之後開始下一小部分的狀態提交,從而保證狀態提交的順序和才通過存儲存儲,HECO 將優化存儲更新在整個時間塊中,時間減少了90%,效果也非常明顯。
HECO 對合約位圖、短數據哈希計算結果等優化優化也取得了成果,同時將交易內交易好的執行時間降低了31.46%。
HECO 技術團隊將我們性能優化的代碼分別補丁到BSC 和Geth 的主幹上,BSC 和以太坊主網去同步部分和交易進行實測對比(通過對比相同條件下的區塊成塊時間) ,結果是HECO 優化的性能是BSC 的1.3 倍以上,對Geth 的性能提升更達到了1.5 倍以上。當然HECO 也有計劃地將我們的社區優化貢獻給Geth。
回顧H 擴展性路線,我們始終堅持著德Fi友好和完全不同的宗教信仰。互聯網工程化的老路?密碼朋克的盒子裡還有多少魔法沒有放出來? HECO 透視路線和主義之爭不會影響區塊鏈的發展,組合創新區塊鏈技術的最大魅力。
而且我們認為軟件行業曾經的安迪比爾技巧在區塊鏈行業同樣適用,稱其為“CAB我們技巧”——Crypto Andy and Bill’s law:未來10-20 年,基本基礎網絡、基礎硬件、基礎所以HECO 會持續在Layer1 擴展性道路上堅固堅固前行。