Nó trở nên phức tạp hơn: cách mà Etherscan bị lừa hiển thị hợp đồng triển khai sai dựa trên việc thiết lập 2 slot proxy khác nhau trong cùng một giao dịch frontrunning. Vì vậy, Etherscan sử dụng một số heuristics nhất định kết hợp các slot lưu trữ khác nhau để truy xuất hợp đồng triển khai. Có một proxy cũ của OpenZeppelin đã sử dụng slot sau: `keccak256("org.zeppelinos.proxy.implementation")` = `0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3` Bây giờ chúng ta cũng có slot tiêu chuẩn EIP-1967 `bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)` = `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` Vậy điều gì đã xảy ra là slot proxy cũ của OpenZeppelin đã được ghi với địa chỉ triển khai vô hại _và_ slot EIP-1967 tiêu chuẩn cũng đã được ghi với địa chỉ triển khai độc hại. Vì Etherscan truy vấn trước slot proxy cũ, nó đã truy xuất địa chỉ nhìn có vẻ vô hại trước và do đó hiển thị nó.
- slot proxy OZ cũ: - blog Etherscan cũ về hỗ trợ proxy: - ví dụ giao dịch frontrun:
41K