设想一种情形:用户在 AMM 类型的 DEX 上做交易,无论设置什么滑点,最终都会在你能接受的最差价格上成交。这可能是个对用户来说很可怕的场景。 TLDR; 目前的 MEV-Geth 实现机制改变了原本网络中预期的交易排序规则,导致诸多细思极恐的公开公正性问题,并且可能已经对生态中的用户产生利益损害。 以太坊网络交易池原生规则 当前以太坊网络中,如果用户通过原生的方式发送交易,这笔交易会在整个由以太坊全节点组成的点对点网络传播,并且交易的内容完全透明,这意味着任何网络中任一全节点能看到绝大部分交易的交易内容。 由此,以太坊网络中会出现几种破坏交易发送者预期和体验的情况(通常被认定为某种程度的 “攻击”), 抢跑(front-running),指通过让特定交易在同个区块中排在目标交易(被攻击交易)前而获利,主要针对清算和套利交易;尾随(back-running),指通过让特定交易在同个区块中排在目标交易后而获利,典型的针对对象是信息输入机制(Oracle)交易或大单交易;三明治夹击,上述两种攻击形式的结合,让目标交易恰好夹在两笔特定构造交易中间,从而获利。三明治攻击大大拓宽了可攻击的范围,哪怕是一笔普通的 AMM DEX 交易,都有可能成为针对对象。攻击者的第一笔构造交易制造更大的交易价格波动,待目标交易执行完之后紧接着执行第二笔构造交易,换回发动攻击的代币完成获益。发起攻击的对象是不确定的。理论上,所有知道了你的交易内容的人都有可能攻击你,dApp 项目方、专业攻击者、钱包、矿池,都有可能攻击你(没有“可追责性”)。 攻击的难易程度,与网络的共识规则和生态中普遍可用的基础设施有关(攻击难度、“可响应性”);例如,如果大家完全遵守当前的交易池规则,仅通过 Gas Price 竞争来影响出块者对交易的排序(要求出块矿池坚守行业自律),则三明治攻击是比较难发动。 目前,由于能够直接决定自己所打包区块中的交易的执行顺序,矿工-矿池 一直被当成是最有可能发动攻击的参与者,这也是 “MEV” (矿工因交易排序能力而获得的收益)这个概念的由来;但实际由于攻击机会具备一定时效性,可能转瞬即逝,攻击者和矿池更多表现为一种分成合作的关系。 这些背景,正是使我对 MEV-Geth 和其他形式的、矿池直接从事三明治攻击的现象感到不安的原因。 当前的 MEV-Geth 实现 目前 MEV-Geth 实现(截至 2021-04-10)的功能仅为,搜索网络中 MEV 机会的搜索器(Inspect),转发原子交易包到注册矿池节点(Relay),出块节点允许插队(MEV-Geth client)。构建出仅在注册矿池和 Relay 服务器间的简单网络。 (责任编辑:admin) |