市场已对"高速公链"彻底脱敏,为什么说 Somnia 可能与众不同?(2) / BTC123 | 区块链信息行情第一站

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

07-01 , 20:10 分享新闻

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

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