EIP-7702 наделяет адреса способностями и гибкостью, подобными смарт-контрактам, и все больше приложений 7702 постоянно создаются, что является критически важным для привлечения большего числа людей в Web3 и улучшения пользовательского опыта.
Тем не менее, гибкость 7702 и тот факт, что большинство пользователей не знакомы с 7702, используются мошенническими синдикатами, и недавно мы заметили, что некоторым пользователям пришлось авторизовать более десятка взаимодействий из-за способности Metamask 7702 выполняться пакетами, а фишинговая банда #InfernoDrainer объединена в одну транзакцию, что привело к краже активов.
Примечание: Сам по себе Metamask не имеет проблем с безопасностью, Metamask ставит безопасность пользователей на первое место, предоставляя пользователям возможности, связанные с 7702, и выполнил множество мер безопасности. Пользователям необходимо знать больше о возможностях и связанных с ними рисках 7702, чтобы предотвратить повторение подобных инцидентов безопасности.
一、Принципы и безопасность авторизации подписи Metamask 7702 Delagator
Технический анализ
По разрешению пользователя развернутый смарт-контракт делегатора указывает поле code учетной записи пользователя на этот контракт. Текущий адрес официального смарт-контракта делегатора MetaMask: 0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B
Авторизационная структура: (chainId, delegatorAddress, nonce, signature)записывается в authorization_list
Метод подписи: Metamask использует унифицированную логику подписи для транзакций авторизации, связанных с EIP-7702, то есть метод signEIP7702Authorization, и digest7702 = keccak256(0x05 ‖ RLP(chainId, делегатор, nonce)) подписи ECDSA, сгенерируйте структуру подписей (v, r s) и прикрепите ее к последующим транзакциям типа 4 для реализации авторизации и обновления учетной записи, как описано в следующих разделах:
Способ верификации: уровень консенсуса проверяет ecrecover(digest7702, sig) == tx.from.
Безопасный дизайн: веб-версия не может заставить пользователя авторизовать любого Delegator, потому что метод signEIP7702Authorization реализован только внутри кошелька MetaMask и не открыт для вызова через window.ethereum на веб-странице.** Доступные для веба методы подписи, такие как eth_signTypedData_v4, не применимы для подписи авторизации EIP-7702, формат его подписи выглядит следующим образом:
А формат подписи, требуемый спецификацией EIP-7702, следующий:
Поскольку eth_signTypedData_v4 всегда включает префикс 0x1901, и процесс вычисления хеша полностью отличается от 7702, поэтому даже при удачной конструкции domainSeparator, primaryType и message практически невозможно сделать так, чтобы digest712 == digest7702.
Таким образом, веб-версия не может подделать легитимную 7702 авторизационную подпись с помощью этого метода. Кроме того, MetaMask также внедряет механизм белого списка для адресов Делегаторов, по умолчанию разрешая и только позволяя авторизацию официального Делегатора (0x63c0...32B), запрещая DApp самостоятельно вводить адреса, что дополнительно предотвращает подделку данных авторизации вредоносных Делегаторов пользователями.
Способ использования
В настоящее время в Metamask существует два основных метода для обновления существующего EOA в 7702 смарт-контрактов (Smart Account): активное обновление и пассивное обновление.
Активное обновление означает, что пользователь в интерфейсе кошелька активно нажимает кнопку "Переключить", чтобы авторизовать определенный смарт-контракт делегатора.
Пассивное обновление происходит, когда пользователь взаимодействует с некоторыми DApp, поддерживающими 7702. Metamask автоматически отображает уведомление после обнаружения соответствующих действий, предлагая пользователю завершить обновление.
2.1 Активное обновление:
Содержимое транзакции: включает только действия по обновлению учетной записи, а именно авторизацию конкретного Delegator Contract.
Процесс обновления: войдите в интерфейс деталей счета кошелька, нажмите на кнопку переключения на изображении ниже, чтобы обновить учетную запись пользователя с Ethereum Mainnet на смарт-контракты. После нажатия на переключение появится окно подписи пользователя для текущей транзакции обновления:
Запись авторизации: после подтверждения ожидайте, пока транзакция будет добавлена в блокчейн. Успешное добавление в блокчейн означает, что пользователь успешно обновился до смарт-аккаунта, и можно просмотреть конкретную информацию о сделках по авторизации на странице текущего адреса кошелька на etherscan в разделе **Authorizations (EIP-7702)**.
2.2 Пассивное обновление
Содержание сделки: включает действия по обновлению учетной записи, а также массовые действия взаимодействия с цепочечными смарт-контрактами.
Процесс обновления: когда пользователь взаимодействует с некоторыми DApps в цепочке, Metamask будет активно напоминать пользователю о том, что текущая транзакция может быть завершена путем обновления до смарт-аккаунта и использования пакетной отправки. Например, если вы обмениваете несколько токенов на Uniswap, нажмите кнопку «Использовать смарт-аккаунт», чтобы перейти на смарт-аккаунт, и тогда авторизация и обмен токенов будут выполняться партиями в одной транзакции.
2.3 Переключиться обратно на обычный EOA
Независимо от того, используется ли активное или пассивное обновление для преобразования текущего аккаунта в смарт-аккаунт, связанный адрес Delegator Contract будет постоянно храниться в цепочке как текущая логика выполнения аккаунта.
Если вы хотите восстановить свою учетную запись до нормального EOA, вам необходимо вручную инициировать операцию «переключения обратно на EOA». Суть этой операции заключается в том, чтобы отправить address(0) в виде нового адреса контракта Delegator с одной авторизацией EIP-7702. Когда транзакция будет успешно загружена в цепочку, поле кода учетной записи будет очищено, логика выполнения будет восстановлена до пустого кода по умолчанию, а учетная запись будет откатана до нормального состояния EOA.
Перейдите на страницу сведений об учетной записи кошелька и нажмите кнопку переключения, чтобы переключить пользователя обратно на обычную учетную запись EOA в основной сети Ethereum.
После нажатия на кнопку подтверждения дождитесь добавления транзакции в блокчейн. Успешное добавление в блокчейн означает, что пользователь переключился с умного аккаунта обратно на обычный EOA-аккаунт. Конкретную информацию о транзакции можно также найти на странице текущего адреса кошелька на etherscan.
Примеры фишинговых атак 7702
24 мая группа мошенников #InfernoDrainer использовала функцию пакетного выполнения смарт-контрактов Metamask 7702-Delagator для массового получения токенов от пользователей (0xc6D2…06DC) и осуществила фишинг-атаку, в результате которой был нанесен ущерб более чем на 146 тысяч долларов в $HashAI $HUMANS $ParallelAI $NeuralAI $DSync $Zero1 $NodeAI $Sensay $Virtual.
Вызов метода 0xe9ae5c53 по адресу 0xc6D289d5...0d2E606DC на 0xc6D289d5...0d2E606DC | Успех | 23 мая 2025 14:31:35 UTC ( )
etherscan.io
#InfernoDrainer 和 #PinkDrainer проводит эксперименты с более скрытными и масштабными методами использования 7702 в черной индустрии фишинга.
Согласно нашему исследованию, нынешняя #InfernoDrainer 和 #PinkDrainer рыбацкой банды в настоящее время исследует и экспериментирует с более скрытой и влиятельной цепочкой черной рыболовной промышленности с использованием 7702, соответствующие адреса следующие, и мы опубликуем более подробный отчет в будущем:
Адский дренаж:
0x0000db5c8B030ae20308ac975898E09741e70000
Пинк Дрейнер:
0xe49e04F40C272F405eCB9a668a73EEAD4b3B5624
Три, Рекомендации по безопасности
Поставщик кошельков:
Ссылаясь на реализацию и управление безопасностью 7702 Делегатора в Metamask, запрещается пользователям предоставлять разрешения на любые Делегаторы и разрешаются только операции внутри приложения. Напоминаем пользователям, что любые действия, позволяющие пользователям подписывать разрешения через веб-страницы, являются фишинг-атаками.
Проверьте, соответствует ли цепочка текущей сети, и предупредите пользователя о риске повторной атаки при подписании с использованием chainID равного 0.
При подписании авторизации пользователем отображается целевой смарт-контракт, а при массовом выполнении через Делегатора отображается конкретное содержание вызова функции, что снижает риск фишинговых атак.
Пользователь:
Защита приватных ключей всегда является самым важным. Not your keys, not your coins.
Не предоставляйте права Делегатора на основе каких-либо независимых веб-страниц, безопасное предоставление прав обычно осуществляется только внутри приложения, как в Metamask.
При использовании любого кошелька для подписи внимательно ознакомьтесь с содержанием подписи, чтобы избежать слепой подписи или ошибки при подписании.
Посмотреть Оригинал
Содержание носит исключительно справочный характер и не является предложением или офертой. Консультации по инвестициям, налогообложению или юридическим вопросам не предоставляются. Более подробную информацию о рисках см. в разделе «Дисклеймер».
Глубина восстановления 7702 принципа фишинга, как кошелек и пользователи должны защищаться?
EIP-7702 наделяет адреса способностями и гибкостью, подобными смарт-контрактам, и все больше приложений 7702 постоянно создаются, что является критически важным для привлечения большего числа людей в Web3 и улучшения пользовательского опыта.
Тем не менее, гибкость 7702 и тот факт, что большинство пользователей не знакомы с 7702, используются мошенническими синдикатами, и недавно мы заметили, что некоторым пользователям пришлось авторизовать более десятка взаимодействий из-за способности Metamask 7702 выполняться пакетами, а фишинговая банда #InfernoDrainer объединена в одну транзакцию, что привело к краже активов.
Примечание: Сам по себе Metamask не имеет проблем с безопасностью, Metamask ставит безопасность пользователей на первое место, предоставляя пользователям возможности, связанные с 7702, и выполнил множество мер безопасности. Пользователям необходимо знать больше о возможностях и связанных с ними рисках 7702, чтобы предотвратить повторение подобных инцидентов безопасности.
一、Принципы и безопасность авторизации подписи Metamask 7702 Delagator
По разрешению пользователя развернутый смарт-контракт делегатора указывает поле code учетной записи пользователя на этот контракт. Текущий адрес официального смарт-контракта делегатора MetaMask: 0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B
Авторизационная структура: (chainId, delegatorAddress, nonce, signature)записывается в authorization_list
Метод подписи: Metamask использует унифицированную логику подписи для транзакций авторизации, связанных с EIP-7702, то есть метод signEIP7702Authorization, и digest7702 = keccak256(0x05 ‖ RLP(chainId, делегатор, nonce)) подписи ECDSA, сгенерируйте структуру подписей (v, r s) и прикрепите ее к последующим транзакциям типа 4 для реализации авторизации и обновления учетной записи, как описано в следующих разделах:
Способ верификации: уровень консенсуса проверяет ecrecover(digest7702, sig) == tx.from.
Безопасный дизайн: веб-версия не может заставить пользователя авторизовать любого Delegator, потому что метод signEIP7702Authorization реализован только внутри кошелька MetaMask и не открыт для вызова через window.ethereum на веб-странице.** Доступные для веба методы подписи, такие как eth_signTypedData_v4, не применимы для подписи авторизации EIP-7702, формат его подписи выглядит следующим образом:
А формат подписи, требуемый спецификацией EIP-7702, следующий:
Поскольку eth_signTypedData_v4 всегда включает префикс 0x1901, и процесс вычисления хеша полностью отличается от 7702, поэтому даже при удачной конструкции domainSeparator, primaryType и message практически невозможно сделать так, чтобы digest712 == digest7702.
Таким образом, веб-версия не может подделать легитимную 7702 авторизационную подпись с помощью этого метода. Кроме того, MetaMask также внедряет механизм белого списка для адресов Делегаторов, по умолчанию разрешая и только позволяя авторизацию официального Делегатора (0x63c0...32B), запрещая DApp самостоятельно вводить адреса, что дополнительно предотвращает подделку данных авторизации вредоносных Делегаторов пользователями.
В настоящее время в Metamask существует два основных метода для обновления существующего EOA в 7702 смарт-контрактов (Smart Account): активное обновление и пассивное обновление.
Активное обновление означает, что пользователь в интерфейсе кошелька активно нажимает кнопку "Переключить", чтобы авторизовать определенный смарт-контракт делегатора.
Пассивное обновление происходит, когда пользователь взаимодействует с некоторыми DApp, поддерживающими 7702. Metamask автоматически отображает уведомление после обнаружения соответствующих действий, предлагая пользователю завершить обновление.
2.1 Активное обновление:
Содержимое транзакции: включает только действия по обновлению учетной записи, а именно авторизацию конкретного Delegator Contract.
Процесс обновления: войдите в интерфейс деталей счета кошелька, нажмите на кнопку переключения на изображении ниже, чтобы обновить учетную запись пользователя с Ethereum Mainnet на смарт-контракты. После нажатия на переключение появится окно подписи пользователя для текущей транзакции обновления:
Запись авторизации: после подтверждения ожидайте, пока транзакция будет добавлена в блокчейн. Успешное добавление в блокчейн означает, что пользователь успешно обновился до смарт-аккаунта, и можно просмотреть конкретную информацию о сделках по авторизации на странице текущего адреса кошелька на etherscan в разделе **Authorizations (EIP-7702)**.
2.2 Пассивное обновление
Содержание сделки: включает действия по обновлению учетной записи, а также массовые действия взаимодействия с цепочечными смарт-контрактами.
Процесс обновления: когда пользователь взаимодействует с некоторыми DApps в цепочке, Metamask будет активно напоминать пользователю о том, что текущая транзакция может быть завершена путем обновления до смарт-аккаунта и использования пакетной отправки. Например, если вы обмениваете несколько токенов на Uniswap, нажмите кнопку «Использовать смарт-аккаунт», чтобы перейти на смарт-аккаунт, и тогда авторизация и обмен токенов будут выполняться партиями в одной транзакции.
2.3 Переключиться обратно на обычный EOA
Независимо от того, используется ли активное или пассивное обновление для преобразования текущего аккаунта в смарт-аккаунт, связанный адрес Delegator Contract будет постоянно храниться в цепочке как текущая логика выполнения аккаунта.
Если вы хотите восстановить свою учетную запись до нормального EOA, вам необходимо вручную инициировать операцию «переключения обратно на EOA». Суть этой операции заключается в том, чтобы отправить address(0) в виде нового адреса контракта Delegator с одной авторизацией EIP-7702. Когда транзакция будет успешно загружена в цепочку, поле кода учетной записи будет очищено, логика выполнения будет восстановлена до пустого кода по умолчанию, а учетная запись будет откатана до нормального состояния EOA.
Перейдите на страницу сведений об учетной записи кошелька и нажмите кнопку переключения, чтобы переключить пользователя обратно на обычную учетную запись EOA в основной сети Ethereum.
После нажатия на кнопку подтверждения дождитесь добавления транзакции в блокчейн. Успешное добавление в блокчейн означает, что пользователь переключился с умного аккаунта обратно на обычный EOA-аккаунт. Конкретную информацию о транзакции можно также найти на странице текущего адреса кошелька на etherscan.
24 мая группа мошенников #InfernoDrainer использовала функцию пакетного выполнения смарт-контрактов Metamask 7702-Delagator для массового получения токенов от пользователей (0xc6D2…06DC) и осуществила фишинг-атаку, в результате которой был нанесен ущерб более чем на 146 тысяч долларов в $HashAI $HUMANS $ParallelAI $NeuralAI $DSync $Zero1 $NodeAI $Sensay $Virtual.
Мошеннический адрес
0x0000db5c8B030ae20308ac975898E09741e70000 0x00008C22F9F6f3101533f520e229BbB54Be90000 0xa85d90B8Febc092E11E75Bf8F93a7090E2ed04DE 0xC83De81A2aa92640D8d68ddf3Fc6b4B853D77359 0x33dAD2bbb03Dca73a3d92FC2413A1F8D09c34181
Пример рыболовной сделки
Причины фишинга
Пользователь (0xc6D2…06DC) выполнил злонамеренную массовую транзакцию на авторизацию:
Хеш транзакции Ethereum: 0x1ddc8cecbc... | Etherscan
Вызов метода 0xe9ae5c53 по адресу 0xc6D289d5...0d2E606DC на 0xc6D289d5...0d2E606DC | Успех | 23 мая 2025 14:31:35 UTC ( )
etherscan.io
#InfernoDrainer 和 #PinkDrainer проводит эксперименты с более скрытными и масштабными методами использования 7702 в черной индустрии фишинга.
Согласно нашему исследованию, нынешняя #InfernoDrainer 和 #PinkDrainer рыбацкой банды в настоящее время исследует и экспериментирует с более скрытой и влиятельной цепочкой черной рыболовной промышленности с использованием 7702, соответствующие адреса следующие, и мы опубликуем более подробный отчет в будущем:
Адский дренаж:
0x0000db5c8B030ae20308ac975898E09741e70000
Пинк Дрейнер:
0xe49e04F40C272F405eCB9a668a73EEAD4b3B5624
Три, Рекомендации по безопасности
Поставщик кошельков:
Ссылаясь на реализацию и управление безопасностью 7702 Делегатора в Metamask, запрещается пользователям предоставлять разрешения на любые Делегаторы и разрешаются только операции внутри приложения. Напоминаем пользователям, что любые действия, позволяющие пользователям подписывать разрешения через веб-страницы, являются фишинг-атаками.
Проверьте, соответствует ли цепочка текущей сети, и предупредите пользователя о риске повторной атаки при подписании с использованием chainID равного 0.
При подписании авторизации пользователем отображается целевой смарт-контракт, а при массовом выполнении через Делегатора отображается конкретное содержание вызова функции, что снижает риск фишинговых атак.
Пользователь:
Защита приватных ключей всегда является самым важным. Not your keys, not your coins.
Не предоставляйте права Делегатора на основе каких-либо независимых веб-страниц, безопасное предоставление прав обычно осуществляется только внутри приложения, как в Metamask.
При использовании любого кошелька для подписи внимательно ознакомьтесь с содержанием подписи, чтобы избежать слепой подписи или ошибки при подписании.