: 推 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時期是可以的),
但這樣就是攔截的礦工要把出礦獎勵送給別人,發生的機會更小一點。