さらに凝り固まったのは、Etherscanが騙されて間違った実装契約を表示させたのは、同じフロントランニングtxに2つの異なるプロキシスロットを設定することに基づいているということです。そのため、Etherscanは、さまざまなストレージスロットを組み込んだ特定のヒューリスティックを使用して、実装コントラクトを取得します。 OpenZeppelinによる古いプロキシがあり、次のスロットを使用していました: 'keccak256("org.zeppelinos.proxy.implementation")' = '0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3' 現在、標準の EIP-1967 スロット 'bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)' = '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc' もあります。 つまり、古いOpenZeppelinプロキシスロットは無害な実装アドレスで書き込まれ、標準のEIP-1967スロットも悪意のある実装アドレスで書き込まれたのです。Etherscanは最初に古いプロキシスロットをクエリするため、良性のように見えるものを最初に取得して表示しました。
- 古いOZプロキシスロット: - プロキシサポートに関する古いEtherscanブログ: - FrontRun TXの例:
41.03K