產業數字化作為數字經濟發展的主引擎,在全球經濟發展的大環境中飛快發展。作為「新基建」重要技術之一的區塊鏈,俘獲了大量關注。
回顧區塊鏈近年的發展:從 海外的DeFi 到 NFT,到國內立足實體的「產業上鍊潮」,再到近日火爆的元宇宙、Web3 等,區塊鏈應用場景越來越多元化,區塊鏈生態展開蓬勃發展之勢。但在區塊鏈的世界裡,無論是公鏈還是聯盟鏈,亦或是 Web3 應用,無一例外地面臨同一個訴求——可信存力,即鏈上可信資料的儲存能力。

可信存力:資料價值互聯的基石
可信資料價值流轉是當下數字經濟建設的基礎,可信資料的「存力」如電力網路的承載力一般,成為社會「資料價值互聯」的基石。目前,可信存力在公鏈領域主流的解決方案大都是塊鏈式外加可驗證資料結構,具有可持續、可驗證、持續增長三個顯著特點。
然而這種主流方案存在一些問題,例如在以太坊儲存的表現上,它的儲存性能會隨著資料規模持續增加而快速衰減,在延時、吞吐的性能上並沒有很強的優勢(見圖1左圖表),面對 Web3 的應用,對性能的訴求只會越來越高。因此,相比於共識,儲存性能對於鏈平臺的 TPS、成本影響更大。

圖1 區塊鏈儲存結構存在的問題
對此,專注於區塊鏈底層技術研究和實體場景探索的螞蟻鏈團隊,歷經多年打磨,將上述的底層技術問題一一剖析、深度對比測試,總結出區塊鏈儲存中存在著讀寫放大、資料局部性、性能、成本、規模瓶頸等挑戰。雖然目前業界已嘗試通過弱化可驗證性可追溯、最佳化 kv 資料庫、最佳化Merkle 樹等方向入手,但無論從哪個路線出發,尚無全面解決的技術方案。
如果想面向未來 Web3 棧應用發展解決資料規模的膨脹,就必須重新來過,而不是在原系統上做最佳化。在今年的雲棲大會上,螞蟻鏈自研儲存引擎 LETUS(Log-structured Efficient Trusted Universal Storage)正式發佈,並。已經在螞蟻數字藏品平臺「鯨探」中成功應用,真實業務環境下,鯨探的儲存成本降低了約75%。LETUS 通過可驗證索引定製、分散式集群擴展、非同步並行等技術全面最佳化儲存性能、規模和成本,可穩定支持 20 億賬戶規模。


可驗證、高性能、大規模、低成本
作為螞蟻鏈自研的區塊鏈儲存引擎,LETUS 主要為區塊鏈提供統一的區塊資料、狀態資料的高效可驗證儲存和查詢,保證資料不可篡改和可追溯。據官方資料,LETUS 相比業界標杆,吞吐提升 15 倍,寬頻減少 95%,延時降低 90%,空間佔用減少60%。這是如何做到的?
我們不妨先來回顧一下區塊鏈儲存中的幾個挑戰:
讀寫放大
資料局部性
性能
成本
規模瓶頸
由於區塊鏈本身要實現可驗證,它需要可驗證的資料結構,而可驗證資料結構就會帶來讀寫放大;資料局部性關乎儲存性能效率,若資料分散特別隨機,對磁碟並不友好,讀取一個資料要訪問很多檔案才能把資料讀上來,性能較差。
當下已知的技術方案大多是使用通用的KV資料庫,再在其應用層、讀寫之間的層加一個可驗證的資料結構,但這沒將所有底層資料庫引擎可以最佳化的地方考慮清楚。
因此 LETUS 解決讀寫放大、資料局部性、性能問題最核心的思想是:既然以往所有讀取都要經過可驗證資料,將該結構下推到資料庫裡,應用層無需考慮可驗證資料,在資料庫中讓可驗證資料結構和儲存之間相互利用自己的特點做深度最佳化。

圖2 LETUS儲存引擎核心技術
除此之外,LETUS 實現了基於版本號多版本的 Merkle 樹,I/O 路徑更短。版本號使用了區塊號,區別於以往的內容定址哈希,區塊號解決了 Merkle 樹本身版本的有序性問題。另外,每次儲存時,所有的修改操作以增量方式保存,也就是不把改動資料所在的內容全量覆蓋,而是隻存增量。對於I/O性能、空間都有很好的改善,解決了資料讀寫放大的問題。
再者,LETUS 通過資料索引分離等技術增加並行度,通過當前版本快取又提升系統的效率。每次 IO 時,可驗證資料結構和資料同時讀取實現非同步並行,更好地利用快取空間。因此,LETUS與目前主流開源方案相比,資源消耗小,大大效率提升,這是 LETUS 擁有卓越性能的背後原因。
要實現業務的長期持續發展,「成本」是必須考慮的問題。LETUS 通過智慧控溫分層儲存,解決區塊資料持續增長帶來的容量上限和成本問題;邊界掃描批量裁剪解決狀態資料的膨脹問題,讓使用者可以選擇性保留某一時間段的狀態資料。
總地來說,LETUS 相當於把一個區塊鏈應用層的元件內建到資料庫裡做非常針對性、全面的最佳化,以此來取得比較好的性能;同時 LETUS 將可驗證結構下推後,可以基於儲存引擎的自研結構做靈活的資料治理策略,如資料遷移、資料壓縮、垃圾回收等,實現了資料膨脹、資料無限增長下的有效降成本方案。
強大的技術實力,讓 LETUS 在灰度測試期間實現「開著飛機換引擎」的「高端操作」。為了這一個硬核成果,螞蟻鏈團隊足足打磨了 4 年。

走遠路,見微光,四年自研儲存引擎
在日新月異的區塊鏈世界中,要實現這個龐大的解決方案,無疑是極其耗費心力的。四年前沒有 Web3 的討論聲,也鮮有進入元宇宙的路徑。
2019 年 4 月,螞蟻鏈的供應鏈金融首次成功應用。不僅搭載了螞蟻鏈當時的最新版本,而且還跑出了第一個全鏈路隱私保護技術。正在團隊滿心期待它的表現時,卻有了一個令人沮喪的發現。
螞蟻集團區塊鏈技術總監閆鶯表示,供應鏈金融是B 端產品,與 C 端產品的交易頻率相比低一些,可能每天晚上只進來一筆交易,且狀態資料量較大。當產品跑了一段時間後,性能越來越慢,團隊經過大量的研究後,發現隨著數量增加儲存性能衰減,從而拖慢鏈平臺的端到端性能。通過最佳化 Merkle 樹結構、KV資料庫調優、交易並行執行等嘗試,一定程度上提升了性能,並沒有從本質上解決性能衰減、資源消耗大等難題。於是團隊決定自研儲存引擎。在項目成立初期,Web3 還沒太多聲音,螞蟻鏈團隊已敏銳地洞察到需要將 LETUS 向基礎設施方向打造。由於區塊鏈去中心化的特性,LETUS 自誕生起就擁有開放式平臺的基因,同時因為其完全開放,對魯棒性、安全性的要求較高,是個妥妥的「硬活兒」,需要花費團隊巨大資源投入。這並不是容易的事,在研發 LETUS 的四年間,團隊直面各種難關,通過對技術孜孜不倦的追求與探索,逐一攻克。
未來,伴隨 Web3、元宇宙的發展,對規模、生態、安全的要求越來越高,螞蟻鏈團隊已有所佈局:一是在技術上,擴大節點規模;二是在生態上,建設開發者實驗室,幫助開發者更好地實現 Web3 創新應用;三是針對關鍵的安全問題,將推出分片秘鑰、交易安全等相關的技術。
閆鶯表示,安全也是螞蟻鏈技術發展的重點,比如螞蟻鏈平臺已經完成了抗量子的演算法遷移,以為保障未來鏈上資產安全做準備。如何在使用抗量子的密碼演算法上依然保持鏈平臺良好的性能,也是等待他們來解決的挑戰。
筆者認為,螞蟻鏈技術團隊在面臨行業儲存難題,不惜耗費巨大資源打造出性能卓越的 LETUS,以「探路者」的身份投入自研大規模區塊鏈儲存、後量子密碼演算法等核心技術。無論是 Web3 還是元宇宙,這群技術人未雨綢繆,正慢慢撬開那片空白市場的門。