工作原理
MEV Guard 是完全在链上运行的独立原生模块,它非常简洁且无需引入外部链下系统,也并非类似 LBP 的代币发行机制。它通过在流动性池的不同生命周期进行保护,有效缓解初始流动性抢跑攻击和三明治攻击的影响。接下来,我们分别详细介绍 MEV Guard 是如何解决这两个问题的 。
针对初始流动性抢跑攻击
初始流动性抢跑攻击的核心特点是在初始流动性部署的同一区块内一次性购买大量代币,从而垄断代币的初始供应。因此 MEV Guard 的解决方案针对这一核心特点,对初始流动性池部署后的一定范围内的区块进行保护,其细节如下:
保护期设置:根据不同链的不同的区块时间,设置持续不同区块数量的初始流动性保护期,通常持续数百个区块。
随机性检查:引入随机性检查,根据上个区块尝试执行的交易数量动态调节概率,未通过检查的交易会被中断而非 Revert,确保所有交易具有均等执行机会。
交易数量限制:每个区块当前流动性池只能有一笔可执行交易,后续交易将会被中断,以减少女巫攻击的影响。
交易规模控制:每笔交易代币最大数量不得超过总流动性池储备总量的 1%,防止代币供应被垄断。
保护期解除:初始流动性保护期结束后,上述所有限制自动解除。
通过以上措施,能有效避免 MEV 抢跑攻击,没有人可以提前预测自己的交易是否可执行,所有的交易在初始流动性保护期间都充满不确定性,并且交易规模受到限制,避免代币供应垄断。
针对三明治攻击
三明治攻击的核心特点是攻击者通过在同一个区块目标交易的前后插入自己的交易,它同时涉及到抢跑交易(Front-Running)与后置交易(Back-Running),也就是说一次三明治攻击至少涉及到三笔交易。因此 MEV Guard 的解决方案针对这一核心特点,设计了一个允许用户选择是否保护自己这笔交易是否免受三明治攻击的 Anti-MEV 开关,其细节如下:
Anti-MEV 开关:开启后,它会强制当前交易成为当前区块中此交易对的最终可执行交易,并 Revert 当前区块该交易对的后续所有交易,攻击者无法完成后置交易,直接破坏三明治攻击的形成条件,同时也使闪电贷无法用于此类攻击,从而提高攻击者的资金成本。。
交易规模检查:为避免滥用,协议对 Anti-MEV 交易的规模进行检查,只有代币输出数量超过一定阈值(例如,总流动资金池储备的 0.5%,可调整)的交易才可通过,防止协议被 DDOS 攻击导致不可用。
MEV 手续费:对每笔 Anti-MEV 交易收取额外 MEV 手续费,以减少非必要的使用,同时增加 LPs 的做市收益。
通过以上措施,能有效避免三明治攻击,攻击者无法在同一个区块完成三明治攻击,若试图在两个区块完成,由于区块链公开透明的特性,攻击者自身也会成为其他攻击者的“猎物”,甚至在多个区块都无法完成后置交易,面临巨大的风险。
Anti-MEV 是否会降低交易吞吐量?
Anti-MEV 交易会强制设置当前交易是该交易对当前区块的最后一笔可执行交易,可能会有人疑问,这是否会降低交易吞吐量?但实际上这是不必要的担忧,接下来我们查看一组 Dexscreener 数据:
我们选取了过去 24 小时内符合以下标准的交易对:流动性池大于 $10,000,交易量大于 $10,000,市值大于 $100,000,如下图所示。
根据 Dexscreener 数据,在整个链上所有的交易对中,即使是交易笔数最多的交易对,平均每秒也不到 2 笔交易,且大部分活跃的交易对都是在 Solana 链这种区块时间不到 500 ms 的链上,而主流的 EVM 链中更是没有一条链的交易对平均每个区块交易笔数大于 1。因此,Anti-MEV 交易基本不会对交易吞吐量产生什么影响,更别说在 Anti-MEV 交易之前的交易是不受限制的。
Last updated