MEV-Geth 是一种特殊定制的以太坊节点客户端,运行在矿池方,允许通过该客户端存储 Relay 分发的 MEV Bundle,并将这些特殊的交易打包到区块中的队列头部位置。 使用者可使用 MEV-Geth 广播称为 Bundle 的交易包;一个 Bundle 内包含的信息有:一个交易列表(指明发送者希望上链的几笔连续交易),套利计算区块高度,最小最大超时时间。在单个 Bundle 上链的区块中,发送者会通过 coinbase 交易(而非通过 Gas Price),向出块者(即矿池)支付 ETH 作为分佣。 在当前的 MEV-Geth 实现中,每一个区块只能存在一笔 Bundle,因此出块者会会选出 coinbase 支付最大的一笔 Bundle 上链。 这个当前的实现简化了实施三明治夹击的难度。一方面,攻击者可以显式地声明夹击交易的前后关联;其次,夹击者没有了后顾之忧,即使在与其他夹击者的上链竞争中落败,其交易也只会在 MEV-Relay 网络中超时无效,不需要付出 Gas 费用。 根据 Flashbots 团队的公开声明,他们正在开发允许同一个区块包含多笔 Bundle的方案,或许我们很快会看到区块中充满大量零 Gas 费的三明治夹击。 找到 MEV-Geth 交易 根据目前的实现,MEV-Geth 交易最显著的特点就是前后两笔夹击交易的 Gas Price 都为 0。 打开区块浏览器网站 etherchain.org ,查看任一区块的交易列表(此列表就体现了区块内交易的执行顺序),如果在列表开头出现了三明治夹击,且夹击交易的 Gas Price 为 0,则这很有可能是通过 MEV-Geth 发起的 Bundle。 - 12200018 高度区块的列表头部 - - 某笔被夹击交易全过程 - 网络已全面部署 MEV-Geth 当前 MEV 的情况可以通过对 0 gas price 并且 gas used 大于 21000 交易查询获得,具体见我临时建立的 dune dashboard 从图中可看到,不少矿池都已参与,每天有约超过 3500 笔 MEV 相关交易,大约一千多次 MEV 交易产生。按照平均出块时间在 12s 来算,每天有 7200 (60x60x24/12) 个区块,即每天有近 1/3 的区块中存在 MEV-Geth 交易。还有部分矿池未使用 MEV-Geth,套利者还未切换到这种新的竞争模式。 不同环境下的博弈 我们可以借助比较几种交易池运作情形,来了解用户得到了什么,又失去了什么。 公开博弈状态如果网络回归到原生状态,而且出块者恪守行业自律,所有交易全公开,任何人都能通过建立节点或者通过节点服务发现未被打包的交易;那么,如果想夹击某笔交易,就需要发送两笔交易,并设置 gas price 为被攻击交易前后来保证夹击顺序,并且在有竞争的情况下还要发送多份拷贝交易提高成功率,最后在任意交易执行失败时要面临花出矿工费的惩罚。 (责任编辑:admin) |