简介:radius使用PVDE(时间锁 + zk) 的方式来加密交易池,来削弱MEV攻击的可能性。即,破解出时间锁之前是看不到交易内容的,便无法进行MEV攻击。

Radius接收到加密交易的时候即会做出排序承诺(order commitment),同时开始解密时间锁。在承诺用户排序之后,时间锁被破解完成,radius拿到交易内容按照承诺的顺序打包并执行。
在 这个过程中,zk的作用是防止用户对sequencer发起攻击的,如果用户发起一个无效加密交易,则sequencer花费时间和算力破解出的是个无效交易,那么系统便相当于被DOS攻击, zk保证的是在不透露具体交易内容的情况下,sequencer可以花费极少的成本验证这是一笔有效交易(通过zk verify)

时间锁性能的影响

时间设置之两难

正常情况下,一次点对点的公网传输的延迟差不多是几十ms到百ms左右,在去中心化网络中,网络传输次数的复杂度基本可以表示为O(logN)。

在这种情况下, 时间锁设置交易被破解的时间T 基本不可以低于公网传输的延迟,否则时间锁将不具备抗MEV特性:
举个例子,如果时间锁的延迟设置的是必须经过10ms才能破解出交易内容,那么在公网环境下,节点很可能直接花10ms破解然后传输出去,而传输的延迟是50ms。
作为用户而言, 可能100ms以内的延迟都算正常的,也就是说,当T过小的情况下,它完全可以先破解出来再作 order comitment,这对用户而言根本看不出来他已经破解了交易内容了。

那么,当T大一些, 比如几百毫秒~几秒这个级别的话,那么定序器的吞吐量便会出现问题,假使时间锁设置为200毫秒才能破解交易,那么加上radius的 PVDE zk proof verify(官方博客说验证这个zk proof恒定小于1秒), 那么radius光是验证+破解一笔交易的耗时很可能就已经接近秒级了,这种情况下radius的吞吐量可能会非常低,并不适合承载更多的dapp。

注意:以上还没有考虑到公网本身就有极大的不稳定性,如果因为公网的不稳定或者节点掉线之类的问题导致公网实际延迟比理论值还高,那么时间锁更有被先破解再 order comitment的可能。届时,交易被MEV的风险会更大

功耗不利于去中心化

时间锁虽然无法通过多核的方式来加速破解速度,但是却可以通过升级单核处理器性能而加速破解时间锁的。对于CPU机器而言,GPU机器可能会更快破解时间锁,对于GPU而言, FPGA可能更快破解;到后面可能还会有asic芯片。

这就意味着,MEV攻击者/可以更高配的机器来比radius更快的破解时间锁 从而完成MEV攻击。 在中心化的情况下,radius可以不断提高自己的机器配置来预防这种事情发生。但是一旦radius去中心化后,这个问题就会变得很难解决:
如果一个网络里有一些节点的硬件比较普通,那么它破解时间锁的时间很可能就会比MEV攻击者要慢,从而导致radius网路依然有被MEV攻击的风险,在这样的去中心化定序器网络中,它的MEV抗性不是由网络中最强的那个机器保证的,而是由最弱的那个机器来保证的,这意味着参与radius去中心化网络的节点是需要一定的硬件门槛。 众所周知,参与门槛的增高本身就不利于去中心化。

时间锁解决不了的问题

对于一个区块链而言(去中心化sequencer也是区块链)总是从交易池中打包交易并排序的,因为每个区块的容量是有限制的,定序器交易池并不可能接收到多少交易就全部打包在本次出块的区块中; 并且由于区块链一般都会按照tx nonce的顺序进行打包,如果交易池中某个账户的一批交易出现了nonce断层,即这批交易里5笔交易的Nonce分别为1,2,3,5,6。 那么本次打包将只会打包nonce=1,2,3的这三笔交易,那么5,6这两笔交易会被挂起,等到nonce=4的交易抵达交易池之后才会被接着一起打包。
那么,如果在该区块高度上,这一部分交易没被定序打包,则会延迟到下一个区块或者更晚的区块上被打包, 在这个过程中,加密交易很可能就已经被破解了,被破解后再order comitment,则依然会被MEV攻击。

以上,这些可能出现的问题在radius目前给出的方案中都没有见到明确的解决方案。


本文探讨了延迟加密在抗MEV方面的挑战,正如棘刺雕猴在生态系统中的复杂地位一样,技术解决方案往往带来新的问题。