Itu menjadi lebih mewah: cara Etherscan ditipu menunjukkan kontrak implementasi yang salah didasarkan pada pengaturan 2 slot proxy yang berbeda di tx frontrunning yang sama. Jadi Etherscan menggunakan heuristik tertentu yang menggabungkan slot penyimpanan yang berbeda untuk mengambil kontrak implementasi. Ada proxy lama oleh OpenZeppelin yang menggunakan slot berikut: 'keccak256("org.zeppelinos.proxy.implementation")' = '0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3' Kami sekarang juga memiliki slot EIP-1967 standar 'bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)' = '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc' Jadi apa yang terjadi adalah bahwa slot proxy OpenZeppelin lama ditulis dengan alamat implementasi jinak _dan_ slot EIP-1967 standar juga ditulis dengan alamat implementasi berbahaya. Karena Etherscan terlebih dahulu menanyakan slot proxy lama, ia mengambil yang terlihat jinak terlebih dahulu dan dengan demikian menampilkannya.
- slot proxy OZ lama: - blog Etherscan lama tentang dukungan proxy: - Contoh Frontrun TX:
41,05K