: 推 minminpp: 实际情况应该是MEV会贿络矿工,让MEV的前置交易和后置 11/21 00:27
: → minminpp: 交易刚好夹住目标交易。也就是让打包交易的矿工决定一 11/21 00:28
: → minminpp: 个block中的交易顺序,所谓的MEV就是这样产生。当交易 11/21 00:28
: → minminpp: 顺序可以调整+插入特定交易,利润就出来了。 11/21 00:28
: 推 minminpp: 所以flashloan 不适用这种sandwich attack。 而MEV跟fla 11/21 00:30
: → minminpp: shbots有关 11/21 00:30
: → ripple0129: 被贿赂的矿工没有保证出块吧? 11/21 02:08
: → ripple0129: 换句话说还要赌出块机率? 11/21 02:09
想到有个买保险的方法
https://docs.soliditylang.org/en/latest/units-and-global-variables.html
#block-and-transaction-properties
EVM可以取得区块的coinbase资讯:
block.coinbase (address payable): current block miner’s address
所以可以在前置交易呼叫的合约内放入
require( block.coinbase == 合作矿工ADDRESS );
和矿工合作的Tx多半不会广播(?),但有可能被重放。但加入这个检查后,即使被
包在其他矿工挖出来的区块,前置交易也会直接无效,就不会在交易上赔钱了。
花一点gas fee而已。(后置交易相对比较不重要,也可以同样方式处理)
虽然coinbase可以填别人的位址(不确定POS后是怎么样,POW时期是可以的),
但这样就是拦截的矿工要把出矿奖励送给别人,发生的机会更小一点。