市场已对"高速公链"彻底脱敏,为什么说 Somnia 可能与众不同?

CN
6小时前
号称速度最快、成本最优并行EVM Layer 1,Somnia是否吹牛?

作者:TVBee

本文将带着以下两个问题进行分析:

问题1:市场已对"高速公链"彻底脱敏,为什么说Somnia可能与众不同?

问题2:号称速度最快、成本最优并行EVM Layer 1,Somnia是否吹牛?

➡️➡️➡️ 简 • 洁 • 版 ⬅️⬅️⬅️

这一部分,从技术、背景和生态三个维度对Somnia进行概括,让大家可以了解Somnia这个项目的亮点和优势。

💠Somnia的技术亮点

🔹多流共识算法:数据链+共识链,有利于防MEV、减少冗余、降本同时增效。

🔹创新EVM编译器:实现指令级的并行EVM,解决极端情况下的高频交互。

🔹自研的IceDB数据库引擎:提升数据读写速度与网络稳定性。

🔹数据压缩技术:提升数据传输效率。

💠Somnia的背景优势

🔹团队:开发团队来自Improbable,Improbable是一个2012年成立的跨国科技公司,总部位于英国伦敦。曾经开发过软件、游戏、Web3元宇宙产品。

🔹融资:由MSquared、a16z、软银、Mirana等知名机构共投资2.7亿美元。

💠Somnia的生态进展

🔹生态版图:Somnia测试网已经入驻了4款AI/社交产品、7款游戏、4个NFT项目和6个Defi应用,另外还有2款AI/社交产品、11款游戏和1个Defi应用即将上线。

🔹生态数据:2025年2月下旬上线至本文写作时(2025年6月26日),Somnia测试网共生产区块超过1亿个,平均每个区块的生产时间为0.1秒。共有96,878,557个钱包地址参与测试网,最近1天的交易量2643万笔。

市场已对"高速公链"彻底脱敏,为什么说Somnia可能与众不同?

在区块浏览器上,经常可以看见交易数和区块数不停在闪动,Somnia称"亚秒级",是肉眼可见的。

💠为什么说Somnia可能与众不同?

🔹高频交互:尽管市场已对"高速公链"概念彻底脱敏,但Somnia不只是追求技术指标,而是着眼于如何让Web3技术真正服务于应用场景,特别是在游戏和社交等高频关联交互领域。

🔹Web3与Web3融合:Somnia的独特背景可能在Web3与Web2的融合方面发挥关键作用。Somnia有潜力为Web2用户提供无缝进入Web3世界的通道,从而可能带来真正以用户体验为中心的应用生态。

➡️➡️➡️ 详 • 解 • 版 ⬅️⬅️⬅️

上一部分介绍了【WHAT】Somnia的亮点、优势和生态进展,这一部分将对Somnia的技术进行深入解读。让大家了解,【HOW】Somnia是如何在技术上实现高频交互,如何做到低成本、高性能的,【WHY】Somnia为什么与其他并行EVM项目有所不同。

💠多流共识算法:数据链+共识链

🔹概述:数据链+共识链结构

Somnia采用了一种新的多流共识(MULTISTREAM)算法。

所谓多流,Somnia在多条数据链上记录交易信息,每个数据链由1个验证者进行记录,每个验证者无法干扰其他验证者的数据链。

所谓共识,Somnia在共识链上执行共识,对交易进行排序,并将对交易的引用记录在共识链上。共识链由所有的验证者共同执行与维护。

🔹概述:Somnia多流共识的工作流程

a 用户向Somnia网络发出请求后,收到请求的验证者,将交易分别写入数据链。

b 共识链每隔一个时间周期(例如30秒、1秒等),数据链的验证者分别与其他的数据链验证者上传并下载数据链顶部的数据分片。

C 验证者将包括所有数据链顶部数据分片的集合作为一个完整的数据切片写入共识链。

d 验证者对交易进行排序,根据排序后的交易更新状态,所有验证者同步写入Somnia的IceDB数据库。

🔹亮点:Somnia的交易排序有利于防MEV

Somnia使用了确定性伪随机函数,对交易进行排序。

我们知道,计算程序中其实是没有真正的随机,而是通过算法实现的伪随机。确定性伪随机函数有两个特点:一是随机性,不能预测下一个生成的随机数是多少,但是每个验证者执行时,都会按固定的顺序生成同样的随机数。

这样,所有的验证者运行同样的确定性伪随机函数,会生成一系列一模一样的随机数,并按照随机数对数据链进行排序。在此基础上,对这一周期的交易进行排序。

例如,排序后的数据链是B、A、C……

那么交易排序就是数据链B的交易在前,然后是数据链A、数据链C……当然,这一过程会根据哈希值去掉重复的交易。

当然,数据链的排序是固定的,但是不同数据链中的交易顺序可能不同。例如数据链A中,可能是交易1在前、交易2在后,而数据链B中,可能是交易2在前、交易1在后。由于数据链的排序是B在A前,因此最终的交易排序是交易2在前、交易1在后。

这一排序方式的优势是,MEV攻击者很难去贿赂验证者,因为他不知道验证者对应的数据链会是怎样的排序。假如网络上一共有100个验证者节点,假设MEV攻击者即使贿赂50个验证者,只要有一个没有被贿赂的验证者(且包含被攻击的交易)排在这50个验证者的前面,共识链就会按照正确的交易顺序记账,MEV攻击失败。

🔹亮点:减少冗余、降本增效

一方面,Somnia每个验证者单独记录一条数据链,没有验证者之间的数据验证过程。而在传输快照时,仅传输各数据链的快照信息,快照信息不包括具体的交易信息,因此减少了交互的冗余。

另一方面,Somnia各个数据链并不需要同步其他数据链的信息,共识链上也不记录交易信息,而是每隔一个时间周期,记录数据链信息快照以及排序后的交易引用(哈希值)。这样,减少了存储的冗余。

由于减少了交互的冗余,因此Somnia在工作时可以更加高效。

由于减少了存储的冗余,因此Somnia在工作时需要的成本更低。

🔹补充:数据链的防篡改

虽然没有数据链的信息验证,但是验证者并不能篡改交易信息。因为验证者一旦篡改交易信息,就会影响交易的哈希值以及其后续交易的哈希值,导致其信息与共识链存储的信息出现冲突。

💠指令级的并行EVM

🔹痛点:交易并行难以改善高频交互的拥挤

Somnia的并行EVM与Monad、Reddio不同,这三个链的EVM并行是交易并行,也就是把交易进行并行,从而提升交易的速度。

其中Monad是乐观的允许交易并行,检测到冲突再去纠正。而Reddio是对不冲突且无依赖关系的交易进行并行。

但是,当大量关联交易出现时,交易无法并行,因此很容易发生拥挤。有两个极端的例子,例如网络上突然出现大量的用户在使用USDC交易某代币,这些交易因为要与LP池子交易,不能并行,只能顺序执行。

另一个极端的例子是无数人抢着Mint同一个NFT,同样不能并行,因为NFT数量是有限的,必须顺序执行,才能确定哪些人可以成功Mint,另一些人失败。

Reddio解决这个问题的方法是,使用GPU,利用GPU强大的计算能力去解决这种高频交互的拥挤。虽然可以提高交易效率,但同时增加了交易的成本。

市场已对"高速公链"彻底脱敏,为什么说Somnia可能与众不同?

🔹亮点:指令级并行EVM

为了解决大量关联交易同时进行,交易并行难以解决的拥挤问题,Somnia创新研发了一个EVM编译器。

在标准的EVM执行过程中,只能逐一按顺序的解释执行交易中的指令。但是,Somnia支持将交易拆分为若干指令集,不冲突、且无依赖关系的指令集可以并行。

以Swap交易为例,按照功能可以划分为几个指令集:参数验证、参数处理、余额检查、授权检查、池状态检查、价格计算、费用计算、转移输入代币、更新池状态与费用记录、转移输出代币、事件发射。其中,不冲突、且无依赖关系的指令集,可以并行,从而提高交易的执行效率。

指令集并行EVM的关键是Somnia其独创的EVM编译器,将EVM的字节码编译成x86机器码。现代CPU是多线程内核,每一个CPU核心可以在多线程上并行机器码,因此可以将EVM的若干个指集令进行并行,从而提高单个交易的执行速度。因此,Somnia也可以称其为硬件级的并行EVM。

🔹亮点:成本与效率双重优势

标准EVM的解释执行:交易1→解析为字节码→顺序解释执行→交易2→解析为字节码→顺序解释执行→交易3→解析为字节码→顺序解释执行……

Somnia的EVM编译执行:合约代码→解析为字节码→动态编译为机器码→并行执行交易1的指令集→并行执行交易2的指令集→并行执行交易3的指令集……

对比可以看出,交易越多,Somnia的EVM编译执行越有优势。

因此,对于普通的非高频交易,Somnia仍然使用标准的EVM解释执行,每次执行EVM,将智能合约代码解析为EVM字节码,在按顺序解释执行。

市场已对"高速公链"彻底脱敏,为什么说Somnia可能与众不同?

对于集中的高频执行的交易,Somnia启用EVM编译器,将EVM的字节码编译成x86机器码。然后按照参数重复执行机器码即可快速完成集中的高频交易,这是交易级的并行EVM无法达到的效果。

因此,Somnia可以在成本和效率之间实现双重优势。

💠IceDB数据库引擎

🔹概述:使用LSM树取代默克尔树数据结构

绝大部分区块链使用默克尔树(Merkle Tree)的数据结构。默克尔树的叶子节点存储着交易数据的哈希值(或者交易数据本身,然后对其进行哈希),非叶子节点存储的是其子节点哈希值的哈希值,逐层两两结合计算哈希值,最终计算出一个默克尔根(Merkle Root),从而可以安全地验证区块内数据的完整性,并防止数据被篡改。

以ERC20代币合约的数据存储默克尔树为例,默克尔树的叶子节点包括:

• 存储代币总量(TotalSupply)、代币符号(NameSymbol)等属性,每一个属性对应着一个键(属性名)和一个值(属性值);

• 该代币所有的持币地址的持币情况,每一个地址对应着一个键(地址哈希)和一个值(持币数量);

• 该代币所有的授权情况,每一个授权地址对应着一个键(地址哈希)和一个值(授权数量);

……

假如一个ERC代币有4个属性,32000个持币地址,2764个授权地址。这个数量显然不多。但这共有32768个叶子节点,写入该代币的默克尔权,需要计算65535次哈希。

市场已对"高速公链"彻底脱敏,为什么说Somnia可能与众不同?

Somnia自研的IceDB数据库引擎,并没有使用常用的默克尔树数据结构,因此其区块信息中也没有哈希根。

IceDB使用LSM树(Log-Structured Merge-Tree,日志结构合并树)。这是一种基于日志的树形数据结构,其主要特征是数据追加写入,而不是原地修改,因此不存在篡改问题。

IceDB数据库的写入,先会写入内存的MemTable。当MemTable写满时,它会被刷新到磁盘,形成一个 SSTable。LSM定期对SSTable进行合并,同时删除重复的键。

这个过程不需要计算哈希,只需要向MemTable写入新的数据即可,因此无论是数据写入内存、缓存还是磁盘,IceDB数据库的写入速度明显更快。

🔹亮点:更高速的读写

LSM树数据结构,明显在写入数据方面具有性能优势。除此以外,Somnia技术文档中提到“创建了一个可以同时优化读取和写入的数据缓存,使得 IceDB 的平均读写时间在 15 到 100 纳秒之间"。

🔹特色:读写性能报告与公平有效的Gas

在大部分区块链网络中,虽然最终验证者节点会趋于存储同样的数据。但是在短时间内,不同的验证者节点内存与磁盘中存储的数据具有一定的出入。这导致用户在读写数据时由于访问不同的位置,会消耗不同的Gas。另一方面,由于访问位置不同,用户读写数据耗时可能较长,在这个时间窗口内,网络Gas可能会发生变化。因此,很难确定公平有效的Gas。假如低估Gas,节点可能会由于收益低而消极怠工、影响网络效率。假如高估Gas,用户支付不必要的额外费用,甚至有可能为MEV攻击提供机会。

在IceDB数据库引擎下,用户在每次读写数据时,在缓存中没有找到所需的数据,因此分别需要从内存和SSD中读取据数据,统计从内存和SSD中读取数据的频率,并返回一份"性能报告"。"性能报告"为计算用户所需的Gas提供确定性的依据,因此使网络Gas更加公平和有效,有利于网络稳定币。

💠数据压缩技术

根据Somnia技术文档中的介绍的信息量与频率分布幂率理论,根据信息发生概率进行汇总,可以使数据获得高倍压缩率。

Somnia每一条数据链由一个验证者负责,验证者不需要发送整个区块,只需要发送信息流即,而流式压缩具有更高的压缩率,因此有利于提升网络传输能力。

此外,Somnia 使用 BLS 签名来提高签名的传输与验证速度。

在Somnia的多流共识算法下,数据链的验证者节点之互相发送数据链的数据分片,没有一个集中的领导者进行集中的数据上传与下载,验证者之间可以均衡的分配带宽。每一个验证者要将数据分片发送给其他验证者,同时要下载其他验证者发送来的数据分片,因此每个验证者的上传和下载所需要的带宽是对称的。因此,Somnia网络传输能力会比较均衡且稳定。

💠写在最后

Web3虽然表面上看比Web2更高端,但实际上Web2的技术体系往往更为复杂成熟。当Web2开发者参与Web3开发时,他们的技术背景能够为区块链世界带来更多创新。

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

Bybit: $50注册体验金,$30,000储值体验金
广告
分享至:
APP下载

X

Telegram

Facebook

Reddit

复制链接