Je to ještě úžasnější: způsob, jakým byl Etherscan oklamán a ukázal nesprávnou implementační smlouvu, je založen na nastavení 2 různých slotů proxy ve stejném frontrunning tx. Etherscan tedy používá určitou heuristiku, která zahrnuje různé úložné sloty k načtení implementační smlouvy. Existuje starý proxy server od OpenZeppelin, který používal následující slot: 'keccak256("org.zeppelinos.proxy.implementation")' = '0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3' Nyní máme také standardní slot EIP-1967 'bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)' = '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc' Stalo se tedy, že do starého proxy slotu OpenZeppelin byl zapsán s neškodnou implementační adresou _a_ do standardního slotu EIP-1967 se zapsalo také se škodlivou implementační adresou. Vzhledem k tomu, že se Etherscan nejprve dotazuje na starý slot proxy, načetl nejprve neškodně vypadající slot a tak jej zobrazil.
- starý OZ proxy slot: - starý blog Etherscanu o podpoře proxy: - Příklad FrontRun TX:
40,98K