Heco 技術負責人:公鏈架構優化的「新四化建設」

Heco 技術負責人 Andrew 認爲,保證區塊鏈特有約束和語義不被破壞的提前下,可借鑑互聯網領域成熟優秀的工程優化經驗。

演講:Andrew,Heco 技術負責人

2021 年 9 月 4 日 ,BeWater DEVCON 全球開發者大會在北京舉辦,來自各地的近百位區塊鏈開發者齊聚北京,圍繞編程語言、密碼學、去中心化協議、隱私技術、安全計算、開放金融等領域展開深入探討。

在提到公鏈的可擴展性問題時,來自海內外的開發者們對當前備受市場關注的分片、Layer2、側鏈等技術解決方案展開了激烈的討論。HECO 技術負責人 Andrew 系統地分析了當前公鏈賽道存在的可擴展性難點,並詳細介紹了現有公鏈可擴展性解決方案的優缺點。Andrew 認爲 Layer1 方案是對區塊鏈平臺的擴展,而 Layer2 技術是對區塊鏈應用的擴展,Andrew 將 Layer1 擴容架構分爲 3 大類:分片、DAG (有向無環結構)和大區塊,將 Layer2 擴容架構分爲側鏈子鏈、狀態通道和 Rollup 三大類。

另外,Andrew 重點分享了 HECO 在公鏈擴展性理念和實踐中的經驗和總結,「HECO 回到公鏈擴展性問題的原點,立足於公鏈自身的架構優化,只要保證區塊鏈特有的約束和語義不被破壞的提前下,軟件和互聯網領域成熟優秀的工程優化經驗是可以充分借鑑和利用的。」

基於以上觀點和認知,Andrew 提出公鏈架構優化的新四化建設:

  • 在保證鏈式結構的提前下,對架構進行模塊化,對組件進行充分拆分和解耦;
  • 在保證線性語義的提前下,對執行進行並行化,實現多階段流水線作業;
  • 在保證狀態一致性的前提下,進行異步化改造,將阻塞式的 I/O 操作放在後臺處理;
  • 在保證透明安全的前提下,進行本地化多級緩存優化。
  • Andrew 在分享過程中提到,HECO 當前性能優化成果是 BSC 的 1.3 倍以上,對 Geth 的性能提升更是達到了 1.5 倍以上,未來 HECO 也會有計劃地將這些優化經驗貢獻給 Geth 社區。

    演講最後,Andrew 提出「CAB 定律」——Crypto Andy and Bill’s law,他認爲未來 10-20 年,大部分基礎網絡、基礎硬件、基礎安全的技術紅利都會被區塊鏈行業充分吸收並極致發揮,HECO 未來將持續在 Layer1 擴展性之路上深入探索。

    以下爲 Andrew 演講全文:

    公鏈擴展性問題和解決方案

    區塊鏈技術的本質是擴展信任的邊界、組織的邊界和協作的邊界,但在不斷擴展業務邊界的道路上,技術自身卻受到了擴展性問題的制約。

    最明顯的就是以太坊主網,上圖是截止到 Q2 的智能合約 TVL 鎖倉量,可以看到以太坊的份額正在持續被其他公鏈所蠶食;原因大家都知道,網絡嚴重擁堵,手續費高昂;但根本的原因還是以太坊主網的擴展性不夠。講到這裏相信大家都會想到區塊鏈不可能三角,那去中心化、安全性和可擴展性三者真的不可兼得嗎?

    其實區塊鏈不可能三角問題是沒有被嚴格定義和證明的,並不能等同於分佈式領域的 CAP,區塊鏈領域內學術界和工業界有多層次多類型的擴展性解決方案,比如分片以及最近很火的 Layer2 Rollup 方案。

    分片作爲平臺級擴展方案雖然潛力很大,但其安全假設和模型在實際落地中並不容易滿足、要支持通用的高級智能合約完整語義困難重重、很多場景下跨片交易帶來的開銷大於對吞吐提升帶來的收益;Rollup 方案通過平臺合約和二層應用相結合的方式,在安全性和吞吐方面有一定的優勢,但當前還只是對特定應用的擴展,還不能擴展到通用平臺層面。

    DeFi 業務的興起又給公鏈的擴展性提出了新的要求,DeFi 應用非常注重可組合性,合約之間的調用需要像搭建樂高積木一樣便捷,而分片和 Layer2 技術的共同問題是引入的分佈式事務的複雜性,對 DeFi 應用不夠友好。所以當重新回到問題的原點,立足於公鏈自身的架構優化時,我們會發現,只要保證區塊鏈特有的約束和語義不被破壞的提前下,軟件和互聯網領域成熟優秀的工程優化經驗是可以充分借鑑和利用的。

    這裏我將其總結爲公鏈架構優化的新四化建設:

  • 在保證鏈式結構的提前下,對架構進行模塊化,對組件進行充分拆分和解耦;
  • 在保證線性語義的提前下,對執行進行並行化,實現多階段流水線作業;
  • 在保證狀態一致性的前提下,進行異步化改造,將阻塞式的 I/O 操作放在後臺處理;
  • 在保證透明安全的前提下,進行本地化多級緩存優化。
  • 其實行業內已經出現了和我們想法類似的公鏈,比如 Flow 和 Solana。下面我們分別介紹一下二者的核心設計。

    Flow 是一條主打 NFT 的垂直行業公鏈,其核心理念是對交易處理過程中的共識和執行進行解耦。主要有兩個創新點:

    1)分角色節點架構,因設計人員發現節點間的處理能力差異拉低了整個網絡的性能和擴展性,因此 Flow 將網絡中的節點分爲收集、共識、執行和驗證 4 類,讓大量的低配節點只負責共識,保證網絡的安全性,而少量的高配節點只負責執行,從而提升網絡整體的處理能力。

    2)引入流水線機制,進行跨區塊 Block Seal,從而避免區塊間的相互等待。

    Solana 是一條發展迅猛的全行業公鏈,最大的創新是 PoH (歷史證明),一種可驗證的對時間採樣和事件排序的方法,可以作爲網絡全局時鐘,從而實現全網節點對相對時間的統一度量和消息的高效通信;而 Tower BFT (基站拜占庭容錯)共識則是在 PoH 全局時鐘的基礎上,實現了對 PBFT (拜占庭容錯)消息傳輸和 VC (View Change)優化。

    其他的優化點像大區塊分片 EC 編碼和分層傳輸、流水線化充分利用硬件資源、並行合約執行等,都是在高 TPS 下必須要做的工程實現,當然想到不代表做到,Solana 在公鏈架構優化工程實踐層面走的是比較靠前的。

    Flow 和 Solana 都是在公鏈架構優化層面不錯的案例,這也讓持有相同理念的 HECO 在行進的道路上不覺孤單,當然 HECO 相比於 Flow 和 Solana 還有一個更大的特點就是完全兼容以太坊和 EVM。下面就一起來了解一下 HECO 在擴展性方面的實踐和成果。

    HECO 公鏈擴展性理念和實踐

    首先來看一下 HECO 的戰略定位,HECO 作爲整個 DeFi 平臺的技術底座和生態基礎設施,承載着上層資產、應用和流量入口的所有核心業務,而 HECO 自身的技術矩陣又可以按資產安全、容量性能、網絡規模、應用生態 4 大維度細分爲 12 個核心模塊,接下來給大家分享的主要是我們在容量性能相關的交易執行、狀態存儲等方面的優化工作。

    容量性能優化首先要明確其理論模型,HECO 當前還是基於最長鏈的 POA+POS 共識,在出塊時間方面一定要保證可以 cover 住區塊打包+區塊傳播+交易二次執行和驗證的時間。那反過來想就是如果可以進一步降低交易執行和區塊傳播時間,就可以在一個區塊內納入更多的交易,從而有效提升網絡整體的吞吐。

    左圖是我們整理的擴展性瓶頸以及優化的層次,右圖是當前整體優化後的效果,可以看藍色的線,HECO 已經可以安全地將 Block GasLimit 設置到 100M Gwei 以上,TPS 可以到 1500+。下面來展開幾個代表性優化。

    首先來看並行執行優化,大家都知道以太坊節點的一大瓶頸就是其 MPT 狀態樹,HECO 針對狀態樹更新做了很多並行優化,比如多賬戶之間可以無關聯地並行 RLP 編碼,更新 StorageTrie,並行計算 StorageRoot 等,還有並行計算區塊 bloom 和 receiptRoot 等。並行執行整體優化效果是可以將區塊內交易執行時間降低 30% 以上。

    再來看存儲流水線優化,當區塊執行完成之後,需要進行寫塊、更新 snapshot 和狀態提交 3 步存儲更新,分析發現狀態提交是耗時最長的,而且可以和下一個區塊執行進行流水線優化,即上一個區塊完成更新 snapshot 就可以開始下一個區塊的執行,但同時也要保證上一個區塊狀態提交完成之後纔開始下一個區塊的狀態提交,從而保證狀態提交的順序性和一致性。通過存儲流水線優化,HECO 基本上將存儲更新在整個成塊時間中串行的佔比降低了 90% 以上,效果還是非常明顯的。

    同時 HECO 對合約 Bitmap、短數據 Hash 計算結果等緩存優化也取得了不錯的成果,將區塊內交易執行時間降低了 31.46%。

    HECO 技術團隊將我們性能優化的代碼分別 patch 到 BSC 和 Geth 的主幹上,並放在 BSC 和以太坊主網去同步區塊和執行交易進行實測對比(通過對比相同條件下的區塊成塊時間),結果是 HECO 優化的性能是 BSC 的 1.3 倍以上,對 Geth 的性能提升更是達到了 1.5 倍以上。當然 HECO 也會有計劃地將我們的優化貢獻給 Geth 社區。

    回顧 HECO 擴展性路線,我們始終秉承着 DeFi 友好和完全兼容以太坊兩大原則。相信區塊鏈技術同行一路走來或多或少都會有這樣的疑問,比如區塊鏈平臺的發展還要走互聯網工程化的老路嗎?密碼朋克的寶盒裏還有多少魔法沒有放出來?HECO 認爲路線和主義之爭不會影響區塊鏈的高速發展,組合創新纔是區塊鏈技術最大的魅力。

    而且我們認爲軟件行業曾經的安迪比爾定律在區塊鏈行業同樣適用,我們稱其爲「CAB 定律」——Crypto Andy and Bill’s law:未來 10-20 年,大部分基礎網絡、基礎硬件、基礎安全的技術紅利都會被區塊鏈行業充分吸收並極致發揮。所以 HECO 會持續在 Layer1 擴展性之路上砥礪前行。