查看原文
其他

可信存力,Web3.0的下一个战场

CSDN 2022-11-11
产业数字化作为数字经济发展的主引擎,在全球经济发展的大环境中飞快发展。作为“新基建”重要技术之一的区块链,俘获了大量关注。
回顾区块链近年的发展:从 海外的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  还是元宇宙,这群技术人未雨绸缪,正慢慢撬开那片空白市场的门。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存