產業(yè)數(shù)字化作為數(shù)字經(jīng)濟發(fā)展的主引擎,在全球經(jīng)濟發(fā)展的大環(huán)境中飛快發(fā)展。作為“新基建”重要技術之一的區(qū)塊鏈,俘獲了大量關注。
產業(yè)數(shù)字化作為數(shù)字經(jīng)濟發(fā)展的主引擎,在全球經(jīng)濟發(fā)展的大環(huán)境中飛快發(fā)展。作為“新基建”重要技術之一的區(qū)塊鏈,俘獲了大量關注。回顧區(qū)塊鏈近年的發(fā)展:從 海外的DeFi 到 NFT,到國內立足實體的“產業(yè)上鏈潮”,再到近日火爆的元宇宙、Web3 等,區(qū)塊鏈應用場景越來越多元化,區(qū)塊鏈生態(tài)展開蓬勃發(fā)展之勢。但在區(qū)塊鏈的世界里,無論是公鏈還是聯(lián)盟鏈,亦或是 Web3 應用,無一例外地面臨同一個訴求——可信存力,即鏈上可信數(shù)據(jù)的存儲能力。
-1- 可信存力:數(shù)據(jù)價值互聯(lián)的基石
可信數(shù)據(jù)價值流轉是當下數(shù)字經(jīng)濟建設的基礎,可信數(shù)據(jù)的“存力”如電力網(wǎng)絡的承載力一般,成為社會“數(shù)據(jù)價值互聯(lián)”的基石。目前,可信存力在公鏈領域主流的解決方案大都是塊鏈式外加可驗證數(shù)據(jù)結構,具有可持續(xù)、可驗證、持續(xù)增長三個顯著特點。
然而這種主流方案存在一些問題,例如在以太坊存儲的表現(xiàn)上,它的存儲性能會隨著數(shù)據(jù)規(guī)模持續(xù)增加而快速衰減,在延時、吞吐的性能上并沒有很強的優(yōu)勢(見圖1左圖表),面對 Web3 的應用,對性能的訴求只會越來越高。因此,相比于共識,存儲性能對于鏈平臺的 TPS、成本影響更大。
對此,專注于區(qū)塊鏈底層技術研究和實體場景探索的螞蟻鏈團隊,歷經(jīng)多年打磨,將上述的底層技術問題一一剖析、深度對比測試,總結出區(qū)塊鏈存儲中存在著讀寫放大、數(shù)據(jù)局部性、性能、成本、規(guī)模瓶頸等挑戰(zhàn)。雖然目前業(yè)界已嘗試通過弱化可驗證性可追溯、優(yōu)化 kv 數(shù)據(jù)庫、優(yōu)化Merkle 樹等方向入手,但無論從哪個路線出發(fā),尚無全面解決的技術方案。如果想面向未來 Web3 棧應用發(fā)展解決數(shù)據(jù)規(guī)模的膨脹,就必須重新來過,而不是在原系統(tǒng)上做優(yōu)化。在今年的云棲大會上,螞蟻鏈自研存儲引擎 LETUS(Log-structured Efficient Trusted Universal Storage)正式發(fā)布,并。已經(jīng)在螞蟻數(shù)字藏品平臺“鯨探”中成功應用,真實業(yè)務環(huán)境下,鯨探的存儲成本降低了約75%。LETUS 通過可驗證索引定制、分布式集群擴展、異步并行等技術全面優(yōu)化存儲性能、規(guī)模和成本,可穩(wěn)定支持 20 億賬戶規(guī)模。
-2- 可驗證、高性能、大規(guī)模、低成本
作為螞蟻鏈自研的區(qū)塊鏈存儲引擎,LETUS 主要為區(qū)塊鏈提供統(tǒng)一的區(qū)塊數(shù)據(jù)、狀態(tài)數(shù)據(jù)的高效可驗證存儲和查詢,保證數(shù)據(jù)不可篡改和可追溯。據(jù)官方數(shù)據(jù),LETUS 相比業(yè)界標桿,吞吐提升 15 倍,寬帶減少 95%,延時降低 90%,空間占用減少60%。這是如何做到的?我們不妨先來回顧一下區(qū)塊鏈存儲中的幾個挑戰(zhàn):
由于區(qū)塊鏈本身要實現(xiàn)可驗證,它需要可驗證的數(shù)據(jù)結構,而可驗證數(shù)據(jù)結構就會帶來讀寫放大;數(shù)據(jù)局部性關乎存儲性能效率,若數(shù)據(jù)分散特別隨機,對磁盤并不友好,讀取一個數(shù)據(jù)要訪問很多文件才能把數(shù)據(jù)讀上來,性能較差。當下已知的技術方案大多是使用通用的KV數(shù)據(jù)庫,再在其應用層、讀寫之間的層加一個可驗證的數(shù)據(jù)結構,但這沒將所有底層數(shù)據(jù)庫引擎可以優(yōu)化的地方考慮清楚。因此 LETUS 解決讀寫放大、數(shù)據(jù)局部性、性能問題最核心的思想是:既然以往所有讀取都要經(jīng)過可驗證數(shù)據(jù),將該結構下推到數(shù)據(jù)庫里,應用層無需考慮可驗證數(shù)據(jù),在數(shù)據(jù)庫中讓可驗證數(shù)據(jù)結構和存儲之間相互利用自己的特點做深度優(yōu)化。
除此之外,LETUS 實現(xiàn)了基于版本號多版本的 Merkle 樹,I/O 路徑更短。版本號使用了區(qū)塊號,區(qū)別于以往的內容尋址哈希,區(qū)塊號解決了 Merkle 樹本身版本的有序性問題。另外,每次存儲時,所有的修改操作以增量方式保存,也就是不把改動數(shù)據(jù)所在的內容全量覆蓋,而是只存增量。對于I/O性能、空間都有很好的改善,解決了數(shù)據(jù)讀寫放大的問題。再者,LETUS 通過數(shù)據(jù)索引分離等技術增加并行度,通過當前版本緩存又提升系統(tǒng)的效率。每次 IO 時,可驗證數(shù)據(jù)結構和數(shù)據(jù)同時讀取實現(xiàn)異步并行,更好地利用緩存空間。因此,LETUS與目前主流開源方案相比,資源消耗小,大大效率提升,這是 LETUS 擁有卓越性能的背后原因。要實現(xiàn)業(yè)務的長期持續(xù)發(fā)展,“成本”是必須考慮的問題。LETUS 通過智能控溫分層存儲,解決區(qū)塊數(shù)據(jù)持續(xù)增長帶來的容量上限和成本問題;邊界掃描批量裁剪解決狀態(tài)數(shù)據(jù)的膨脹問題,讓用戶可以選擇性保留某一時間段的狀態(tài)數(shù)據(jù)。總地來說,LETUS 相當于把一個區(qū)塊鏈應用層的組件內置到數(shù)據(jù)庫里做非常針對性、全面的優(yōu)化,以此來取得比較好的性能;同時 LETUS 將可驗證結構下推后,可以基于存儲引擎的自研結構做靈活的數(shù)據(jù)治理策略,如數(shù)據(jù)遷移、數(shù)據(jù)壓縮、垃圾回收等,實現(xiàn)了數(shù)據(jù)膨脹、數(shù)據(jù)無限增長下的有效降成本方案。強大的技術實力,讓 LETUS 在灰度測試期間實現(xiàn)“開著飛機換引擎”的“高端操作”。為了這一個硬核成果,螞蟻鏈團隊足足打磨了 4 年。
-3- 走遠路,見微光,四年自研存儲引擎
在日新月異的區(qū)塊鏈世界中,要實現(xiàn)這個龐大的解決方案,無疑是極其耗費心力的。四年前沒有 Web3 的討論聲,也鮮有進入元宇宙的路徑。
2019 年 4 月,螞蟻鏈的供應鏈金融首次成功應用。不僅搭載了螞蟻鏈當時的最新版本,而且還跑出了第一個全鏈路隱私保護技術。正在團隊滿心期待它的表現(xiàn)時,卻有了一個令人沮喪的發(fā)現(xiàn)。螞蟻集團區(qū)塊鏈技術總監(jiān)閆鶯表示,供應鏈金融是B 端產品,與 C 端產品的交易頻率相比低一些,可能每天晚上只進來一筆交易,且狀態(tài)數(shù)據(jù)量較大。當產品跑了一段時間后,性能越來越慢,團隊經(jīng)過大量的研究后,發(fā)現(xiàn)隨著數(shù)量增加存儲性能衰減,從而拖慢鏈平臺的端到端性能。通過優(yōu)化 Merkle 樹結構、KV數(shù)據(jù)庫調優(yōu)、交易并行執(zhí)行等嘗試,一定程度上提升了性能,并沒有從本質上解決性能衰減、資源消耗大等難題。于是團隊決定自研存儲引擎。在項目成立初期,Web3 還沒太多聲音,螞蟻鏈團隊已敏銳地洞察到需要將 LETUS 向基礎設施方向打造。由于區(qū)塊鏈去中心化的特性,LETUS 自誕生起就擁有開放式平臺的基因,同時因為其完全開放,對魯棒性、安全性的要求較高,是個妥妥的“硬活兒”,需要花費團隊巨大資源投入。這并不是容易的事,在研發(fā) LETUS 的四年間,團隊直面各種難關,通過對技術孜孜不倦的追求與探索,逐一攻克。未來,伴隨 Web3、元宇宙的發(fā)展,對規(guī)模、生態(tài)、安全的要求越來越高,螞蟻鏈團隊已有所布局:一是在技術上,擴大節(jié)點規(guī)模;二是在生態(tài)上,建設開發(fā)者實驗室,幫助開發(fā)者更好地實現(xiàn) Web3 創(chuàng)新應用;三是針對關鍵的安全問題,將推出分片秘鑰、交易安全等相關的技術。閆鶯表示,安全也是螞蟻鏈技術發(fā)展的重點,比如螞蟻鏈平臺已經(jīng)完成了抗量子的算法遷移,以為保障未來鏈上資產安全做準備。如何在使用抗量子的密碼算法上依然保持鏈平臺良好的性能,也是等待他們來解決的挑戰(zhàn)。筆者認為,螞蟻鏈技術團隊在面臨行業(yè)存儲難題,不惜耗費巨大資源打造出性能卓越的 LETUS,以“探路者”的身份投入自研大規(guī)模區(qū)塊鏈存儲、后量子密碼算法等核心技術。無論是 Web3 還是元宇宙,這群技術人未雨綢繆,正慢慢撬開那片空白市場的門。
立即登錄,閱讀全文