本文发布于以太坊爱好者,作者:Kai。
设想一种情形:用户在AMM类型的DEX上做交易,无论设置什么滑点,最终都会在你能接受的最差价格上成交。这可能是个对用户来说很可怕的场景。
TLDR;
目前的MEV-Geth实现机制改变了原本网络中预期的交易排序规则,导致诸多细思极恐的公开公正性问题,并且可能已经对生态中的用户产生利益损害。
以太坊网络交易池原生规则
当前以太坊网络中,如果用户通过原生的方式发送交易,这笔交易会在整个由以太坊全节点组成的点对点网络传播,并且交易的内容完全透明,这意味着任何网络中任一全节点能看到绝大部分交易的交易内容。
由此,以太坊网络中会出现几种破坏交易发送者预期和体验的情况:
1.抢跑,指通过让特定交易在同个区块中排在目标交易前而获利,主要针对清算和套利交易;
2.尾随,指通过让特定交易在同个区块中排在目标交易后而获利,典型的针对对象是信息输入机制交易或大单交易;
3.三明治夹击,上述两种攻击形式的结合,让目标交易恰好夹在两笔特定构造交易中间,从而获利。三明治攻击大大拓宽了可攻击的范围,哪怕是一笔普通的AMMDEX交易,都有可能成为针对对象。攻击者的第一笔构造交易制造更大的交易价格波动,待目标交易执行完之后紧接着执行第二笔构造交易,换回发动攻击的代币完成获益。
至少六名以太坊社区会议EthCC参会成员感染新冠病:到目前为止,在本月初于巴黎举行的以太坊社区会议EthCC上,至少有六人被证实感染了新型冠状病。据悉,该会议于3月3日至3月5日举行,出席人数众多。许多与会者表示,他们已经对新型冠状病进行了测试,目前尚不清楚总共感染多少人。(BeInCrypto)[2020/3/15]
发起攻击的对象是不确定的。理论上,所有知道了你的交易内容的人都有可能攻击你,dApp项目方、专业攻击者、钱包、矿池,都有可能攻击你。
攻击的难易程度,与网络的共识规则和生态中普遍可用的基础设施有关;例如,如果大家完全遵守当前的交易池规则,仅通过GasPrice竞争来影响出块者对交易的排序,则三明治攻击是比较难发动。
目前,由于能够直接决定自己所打包区块中的交易的执行顺序,矿工-矿池一直被当成是最有可能发动攻击的参与者,这也是“MEV”这个概念的由来;但实际由于攻击机会具备一定时效性,可能转瞬即逝,攻击者和矿池更多表现为一种分成合作的关系。
这些背景,正是使我对MEV-Geth和其他形式的、矿池直接从事三明治攻击的现象感到不安的原因。
当前的MEV-Geth实现
目前MEV-Geth实现的功能仅为,搜索网络中MEV机会的搜索器,转发原子交易包到注册矿池节点,出块节点允许插队。构建出仅在注册矿池和Relay服务器间的简单网络。
分析 | 以太坊与BTC180天关联度保持稳定 主流交易所24H交易量有一定增长:据TokenGazer数据分析显示,截止至 11 月 15日 11 时,以太坊价格为$182.45,总市值为$19,882.15M,大概率受行情下行影响,主流交易所24H交易量约为$71.43M,环比昨日增长32.52%;以太坊对比特币汇率及算力平稳波动;基本面方面,以太坊链上交易量保持稳定,链上DApp交易量有一定提升,新增地址增速保持稳定;以太坊 30 天开发者指数约为 2.25;以太坊与 BTC 180 天关联度保持稳定,30 天 ROI 有一定反弹;据TokenGazer官网六道数据显示,以太坊情绪指数移动平均线呈下滑趋势;推特关注人数无较大变化。[2019/11/15]
MEV-Geth是一种特殊定制的以太坊节点客户端,运行在矿池方,允许通过该客户端存储Relay分发的MEVBundle,并将这些特殊的交易打包到区块中的队列头部位置。
使用者可使用MEV-Geth广播称为Bundle的交易包;一个Bundle内包含的信息有:一个交易列表,套利计算区块高度,最小最大超时时间。在单个Bundle上链的区块中,发送者会通过coinbase交易,向出块者支付ETH作为分佣。
在当前的MEV-Geth实现中,每一个区块只能存在一笔Bundle,因此出块者会会选出coinbase支付最大的一笔Bundle上链。
分析 | 以太坊与BTC关联度持续下滑 保持相对独立行情:据 TokenGazer 数据分析显示,截止至 9 月 18 日 11 时,以太坊价格为$206.16,总市值为$21,748.96M,主流交易所交易量约为$324.30M,环比昨日缩水20.36%;近期以太坊保持相对独立行情,以太坊对比特币汇率持续上升;基本面方面,以太坊链上交易量保持稳定、链上DApp交易量有一定回调,算力持续增长,活跃地址数平稳波动;以太坊 30 天开发者指数约为 2.24;以太坊与 BTC 180 天关联度持续下行,30 天 ROI保持上行趋势;ERC20 代币总市值约为以太坊总市值的 57.33%,环比昨日略有反弹。[2019/9/19]
这个当前的实现简化了实施三明治夹击的难度。一方面,攻击者可以显式地声明夹击交易的前后关联;其次,夹击者没有了后顾之忧,即使在与其他夹击者的上链竞争中落败,其交易也只会在MEV-Relay网络中超时无效,不需要付出Gas费用。
根据Flashbots团队的公开声明,他们正在开发允许同一个区块包含多笔Bundle的方案,或许我们很快会看到区块中充满大量零Gas费的三明治夹击。
找到MEV-Geth交易
根据目前的实现,MEV-Geth交易最显著的特点就是前后两笔夹击交易的GasPrice都为0。
动态 | 德勤年底将在以太坊上推出大项目:据CCN报道,最近有消息称,德勤(Deloitte)正在将其客户转移到VeChain。然而事实证明,该公司将继续致力于与以太坊合作。德勤区块链项目的全球首席技术官Antonio Senatore今天在接受CCN采访时透露,德勤将在今年年底在以太坊平台上推出一个非常大的项目。Senatore表示,德勤坚信多平台开发,其50%的项目建立在以太坊上 。德勤团队的一名成员则对以太坊表示了肯定,指出以太坊是一个经过测试、开源且透明的强大网络。[2019/5/16]
打开区块浏览器网站etherchain.org,查看任一区块的交易列表,如果在列表开头出现了三明治夹击,且夹击交易的GasPrice为0,则这很有可能是通过MEV-Geth发起的Bundle。
-12200018高度区块的列表头部-
-某笔被夹击交易全过程-
网络已全面部署MEV-Geth
当前MEV的情况可以通过对0gasprice并且gasused大于21000交易查询获得,具体见我临时建立的dunedashboard:
从图中可看到,不少矿池都已参与,每天有约超过3500笔MEV相关交易,大约一千多次MEV交易产生。按照平均出块时间在12s来算,每天有7200(60x60x24/12)个区块,即每天有近1/3的区块中存在MEV-Geth交易。还有部分矿池未使用MEV-Geth,套利者还未切换到这种新的竞争模式。
动态 | 以太坊未确认交易笔数翻倍上升 达98810笔:据Etherscan.io数据显示,当前以太坊未确认交易数量为98810笔,未确认笔数相对之前42288笔,有快速大幅度的上升,上升幅度约达133.66%,当前以太坊网络拥堵严重。[2018/10/8]
不同环境下的博弈
我们可以借助比较几种交易池运作情形,来了解用户得到了什么,又失去了什么。
公开博弈状态
如果网络回归到原生状态,而且出块者恪守行业自律,所有交易全公开,任何人都能通过建立节点或者通过节点服务发现未被打包的交易;那么,如果想夹击某笔交易,就需要发送两笔交易,并设置gasprice为被攻击交易前后来保证夹击顺序,并且在有竞争的情况下还要发送多份拷贝交易提高成功率,最后在任意交易执行失败时要面临花出矿工费的惩罚。
从用户方来看,大家都处于平等公开的环境下,当看到自己交易被夹击或抢跑时,是有机会有方法加速或取消这笔交易来避免潜在损失的。
而且,最终成型的区块,不仅能显示出交易池竞争的胜者,还能真实地反映交易池竞争的实际情形。
隐私交易服务
此处的“隐私交易”指的是矿池开设专门的通道,由该通道进入矿池交易池的交易不对外广播,但仍根据GasPrice高价优先的形式排序并打包交易。
普通用户使用隐私交易服务时,其交易对外不公开,因此,除非矿池自身违反保密承诺或参与攻击,否则用户不会受到上述攻击。
再从另外一头考虑,如果攻击者通过隐私交易服务攻击公网可见交易,被攻击者无法发现事情即将发生,无法做出应对。但是,三明治夹击仍然受限于交易路由和交易池排序的随机性,无法轻易实施。
而且,当多人竞争同一个获利机会时,只要矿池不透露相互竞争的交易,他们便无法了解竞争对手出价,只能盲出价格进入排序队列,这变相提高攻击成本和难度。
此外,最终成型的区块,仍然能真实地反映出交易池竞争的全部情形,外部可以观测到成功失败及其原因。
若MEV-Geth成为主流
MEV-Geth出现后,套利者抢跑者会将可套利可夹击的交易提交到这个网络中竞价,筛选出上交矿池利益最大的Bundle会放到下一个打包的区块中优先执行,保证被打包交易能达到100%成功率。
在当前,如果你也部署了一个MEV-Geth节点,Bundle内容对你来说是透明的,因此如果有人攻击你,你也能及时响应。
但如果你并不知道什么是MEV-Geth,你的情形与有人动用隐私交易攻击你相同;变得更差的是,攻击者的确定性提升不少,并且攻击过程的竞价也无法得知,因为成型的区块将只暴露那笔胜出的交易,而不会暴露竞争的过程。
Flashbots认为,这会给网络带来一些好处:套利者竞争博弈的过程被移到另外一个网络,可以缓解以太坊P2P网络的负担;只有胜出者占据区块空间,可以缓解区块拥堵。在subreddit/EtherMining上有发布报告列出目前区块中的额外获利情况,但或许长期不一定能赶上矿工费下降带来的总收入减少,需要更多长期数据跟踪研究。
去中心愿景
原本网络共识预期是,以太坊Defi用户和抢跑者处于同一规则下,并且竞争的过程和结果也是透明地暴露在区块中。随着矿池的介入,事情变得更加复杂,隐私交易和MEV-Geth,都让网络底层开始明确介入上层业务。而MEV-Geth似乎用各种好处正当化了对用户的三明治夹击,并且让竞价过程在一个外部无法观测的网络中发生,网络运行过程变得变得不友好也不透明。
我这里有几个问题:
1.矿池为提供算力的矿工获得利益出发,部署目前这个阶段的MEV-Geth去获取更多利益,这可能无可厚非。但这是否符合去中心和网络的公开公正呢?
2.Flashbots之前公开承诺里有提到保护以太坊的开放性去中心化,目前MEV-Geth隐私性和公开拍卖竞争问题未解决之前,部署到当前的网络中是否是合适的时机呢?
3.矿池的排序权引申出来的超级能力,可能在去中心化网络中无法被去除,也就是MEV是个客观存在的事物。但对于MEV-Geth出现让MEV的滥用变得更加便利,甚至成为正当借口去夹击用户交易,这是否造成长期不良影响?
社区中也是有不少关于MEV或MEV-Geth实现的争议,不少声音是担心:
康奈尔教授AriJuels在CoinDesk上发表的《Miners,Front-Running-as-a-ServiceIsTheft》
OffchainLab联合创始人EdFelten发表的《MEVauctionsconsideredharmful》,这篇不是针对这个议题,反对的是拍卖一天排序权的这种方法。Vitalik有一篇对此的回应。
EthererumResearch论坛上网友pmcgoohan发表的《MEVAuctionsWillKillEthereum》
Paramdigm基金合伙人CharlieNoyes发表的《MEVandMe》中也提到“MEVCanHarmUsers,MEVCanHarmEthereum”
如果以太坊想成为支撑整个世界的金融基础平台,那么维持用户资产安全以及交易排序的公平性就非常重要。所有参与方都是按照矿工费竞价规则竞争打包队列位置,执行失败会失去支付的矿工费。矿池在打包过程中完全忽略交易内容,仅以矿工费高低来为交易排序,网络验证人和应用参与方隔离开来,互不干涉影响。
MEV-Geth的全面部署以及矿工对以太坊网络的应用层逐步侵入,让我感觉到有些不对劲,周末两天思考和查阅材料,最后写下了这篇内容,希望能让更多人来思考这个可能会对以太坊影响深远的问题,也感谢这几天帮助校对内容的朋友们,特别感谢阿剑老师不断对阐述逻辑和顺序向我发问让文章内容更加完善与逻辑完备。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。