设想一种情形:用户在 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 服务器间的简单网络。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 交易 - 12200018 高度区块的列表头部 - - 某笔被夹击交易全过程 - 网络已全面部署 MEV-Geth 从图中可看到,不少矿池都已参与,每天有约超过 3500 笔 MEV 相关交易,大约一千多次 MEV 交易产生。按照平均出块时间在 12s 来算,每天有 7200 (60x60x24/12) 个区块,即每天有近 1/3 的区块中存在 MEV-Geth 交易。还有部分矿池未使用 MEV-Geth,套利者还未切换到这种新的竞争模式。 不同环境下的博弈 公开博弈状态 如果网络回归到原生状态,而且出块者恪守行业自律,所有交易全公开,任何人都能通过建立节点或者通过节点服务发现未被打包的交易;那么,如果想夹击某笔交易,就需要发送两笔交易,并设置 gas price 为被攻击交易前后来保证夹击顺序,并且在有竞争的情况下还要发送多份拷贝交易提高成功率,最后在任意交易执行失败时要面临花出矿工费的惩罚。从用户方来看,大家都处于平等公开的环境下,当看到自己交易被夹击或抢跑时,是有机会有方法加速或取消这笔交易来避免潜在损失的。而且,最终成型的区块,不仅能显示出交易池竞争的胜者,还能真实地反映交易池竞争的实际情形。隐私交易服务 此处的 “隐私交易” 指的是矿池开设专门的通道,由该通道进入矿池交易池的交易不对外广播,但仍根据 Gas Price 高价优先的形式排序并打包交易。普通用户使用隐私交易服务时,其交易对外不公开,因此,除非矿池自身违反保密承诺或参与攻击,否则用户不会受到上述攻击。再从另外一头考虑,如果攻击者通过隐私交易服务攻击公网可见交易,被攻击者无法发现事情即将发生,无法做出应对。但是,三明治夹击仍然受限于交易路由和交易池排序的随机性,无法轻易实施。而且,当多人竞争同一个获利机会时,只要矿池不透露相互竞争的交易,他们便无法了解竞争对手出价,只能盲出价格进入排序队列,这变相提高攻击成本和难度。此外,最终成型的区块,仍然能真实地反映出交易池竞争的全部情形,外部可以观测到成功失败及其原因。若 MEV-Geth 成为主流 MEV-Geth 出现后,套利者抢跑者会将可套利可夹击的交易提交到这个网络中竞价,筛选出上交矿池利益最大的 Bundle 会放到下一个打包的区块中优先执行,保证被打包交易能达到 100% 成功率。在当前,如果你也部署了一个 MEV-Geth 节点,Bundle 内容对你来说是透明的,因此如果有人攻击你,你也能及时响应。但如果你并不知道什么是 MEV-Geth,你的情形与有人动用隐私交易攻击你相同;变得更差的是,攻击者的确定性提升不少,并且攻击过程的竞价也无法得知,因为成型的区块将只暴露那笔胜出的交易,而不会暴露竞争的过程。Flashbots 认为,这会给网络带来一些好处:套利者竞争博弈的过程被移到另外一个网络,可以缓解以太坊 P2P 网络的负担;只有胜出者占据区块空间,可以缓解区块拥堵。在 subreddit/EtherMining 上有发布报告列出目前区块中的额外获利情况,但或许长期不一定能赶上矿工费下降带来的总收入减少,需要更多长期数据跟踪研究。去中心愿景 Flashbots 相关内容索引flashbots/mev-research: Project management for MEV Researchflashbots/pm: Everything there is to know about Flashbots 作者:Kai —- 编译者/作者:EthFans 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
观点 | 原始无序 MEV 时代到来
2021-04-13 EthFans 来源:区块链网络
LOADING...
相关阅读:
- 行业顶级盛宴—深圳分布式存储大会华科闪云受邀参会2021-04-13
- BM主持电报群会议:宣布EdenOS最新进展2021-04-13
- 读懂分布式存储的意义及两大重要特点黑石矿池IPFS你值得拥有2021-04-13
- 比特币以太坊再次冲击历史高点后市有望破历史新高2021-04-13
- 成功的合约交易最重要的因素是什么?关于合约交易的一些思考2021-04-12