Це стає ще більш вигадливим: спосіб, яким Etherscan був обдурений, показавши неправильний контракт на впровадження, заснований на налаштуванні 2 різних проксі-слотів в одному передньому TX. Таким чином, 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,04K