おはこんばんにちは
今回はTwitter (X) などのリプライやメンションタグ付けでよく見る、MEVのスキャムについて、実際に踏んでみたり深掘りしてみたいと思います。
MEVは 最大抽出可能価値 (Maximal Extractable Value)の略称で、validatorがブロック内のトランザクションの順序を入れ替えたり、除外したり、追加したりすることで得られる最大限の利益を指します。
端的に言うならば、TX承認の順位付けを意図的に利用して自分がお金儲けできるような構造にすることが出来るということです。
その具体例として、ArbitrageやSandwich、Liquidationなどが挙げられます。
Ethereum公式 docにも書いてるので、ぜひ読んでみてください。
https://ethereum.org/en/developers/docs/mev/
今回取り上げるのが、下記のツイートです。
https://twitter.com/darak_btc/status/1764301180539134377
Arbitrage MEVbotによって週に7~9ETHの利益を得ているという旨が書いてあります。スクショがEigenPhiのポートフォリオっぽいですね
サイトに飛んだら、Explained Best Arbitrage Strategy! というタイトルで記事が書いてありました。
少し疑問なのが、動画で解説している限りFRONT RUNNINGのことを主張しているので、ArbitrageではなくSanwichなのではと思いました。

指示された通りメインネット上で行うのは流石にナンセンスなので、今回はHolesky上で実験します。
また、疑問に思ったのが、Remixでdeployを行うと記述されていますが、公式リンクとは別のものが指定されています。(本家はremix.ethereum.org)
今回はカモになる回なので、記述通りに行います。

ちなみに、なぜHoleskyなのか。
それはEthereum上でDev活動を行っていたら1,000ETHがairdropされていた為、余分なETHを消費できるからです笑
では、本題に戻ります。
実際に指定されたRemixIDEでコードをコピペしdeployを行いました。
そして、コントラクトに1ETHをデポジットしたら準備万端です。(この時点でお察し)

ヨシ!、あとはスタート関数を実行するだけだ!!!!



まあ、そうっすよね。
ちなみに送信先アドレス(スキャマー)をmainnetのetherscanでサーチしたところ、丁度同日にリアルの1ETHが送られていることが確認できました。
スキャマー儲かってんねえ!!

見てる感じ同一のアドレスではなさそうなので、何かしら内部ロジックでアドレス生成を行っているのでしょうか。
割と複雑なので、海外ニキのRedditをみてみました。
mempool関数という名のアドレスジェネレーターですね。

流れとしては
mempool関数を呼び出して (“x”, checkLiquidity(getMemPoolOffset())) を渡す

checkLiquidity()は別の関数で、getMemPoolOffsetを引数として受け取る(値は882280で、DBB88という値を返す)
そして、最終的にアドレスとしての値が出力されるようにロジックを呼び出す

最後に、ここからparseMemoryPool関数に通し、bytePairsを16進数に変換して出力する値をアドレスに変換する

端的に言えば様々な関数を用いてbytePairsの数列を作成し、16進数に変換することで最終的なEthereumアドレスに変換される感じです。
ただ、個人的に疑問なのが、なぜ操作可能なEOAアドレスを意図的に生成することが出来ているのか。(別にSKも入れてないし)
モジュールのimport先も普通に公式(使ってはいない)をインポートしてるようです。

何かしらのAttackツールがあるのでしょうか?謎です。
楽して儲けようとしないでください
冷静に考えて稼げるコードをpublicで提供すること自体意味不明です。
もし本当だったら、それはアラブの石油王以上の存在か超天才エンジニアです。

