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