EIP-7702 предоставляет адресам возможности и гибкость, подобные смарт-контрактам, и все больше приложений на основе 7702 продолжают создаваться, что имеет решающее значение для привлечения большего числа людей в Web3 и улучшения пользовательского опыта.
Тем не менее, гибкость 7702 и незнание большинства пользователей о 7702 используются мошенническими группами, и недавно мы наблюдали, что некоторые пользователи, благодаря способности MetaMask 7702 выполнять массовые операции, вместо того чтобы авторизовать множество взаимодействий, стали жертвами фишинговой группы #InfernoDrainer, которая объединила их в одну транзакцию, что привело к краже активов.
Примечание: у MetaMask нет проблем с безопасностью, MetaMask ставит безопасность пользователей на первое место, предоставляя пользователям возможности, связанные с 7702, и реализует множество мер безопасности. Пользователи должны больше узнать о возможностях и связанных рисках 7702, чтобы предотвратить повторение таких инцидентов с безопасностью.
Один, принципы подписи авторизации Metamask 7702 Delagator и безопасный дизайн
1. Технический анализ
Пользователь авторизует уже развернутый контракт Делегатора, указывая поле code своего аккаунта на этот контракт. Текущий адрес официального контракта Делегатора MetaMask: 0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B
Структура авторизации:(chainId, delegatorAddress, nonce, signature) записывается в authorization_list
Метод подписи: на нижнем уровне Metamask использует единую логику подписи для авторизаций, связанных с EIP-7702, то есть метод signEIP7702Authorization, для подписи данных авторизации digest7702 = keccak256(0x05 ‖ RLP(chainId, delegator, nonce)) с использованием ECDSA, создавая структуру подписи (v, r, s) и добавляя ее к последующей транзакции Type-4, чтобы реализовать авторизацию и обновление учетной записи, подробная реализация доступна по адресу: https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-eip7702-authorization.ts
Метод проверки: уровень консенсуса завершает проверку через ecrecover(digest7702, sig) == tx.from.
Безопасный дизайн: веб-страница не может побудить пользователя авторизовать любой Делегатор, поскольку метод 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 самостоятельно вводить адреса, что дополнительно предотвращает подделку пользователями данных о подписи злонамеренных авторизаций Делегаторов. EIP-7702 предоставляет адресам возможности и гибкость, подобные смарт-контрактам, и все больше приложений на основе 7702 продолжают создаваться, что имеет решающее значение для привлечения большего числа людей в Web3 и улучшения пользовательского опыта.
Тем не менее, гибкость 7702 и незнание большинства пользователей о 7702 используются мошенническими группами, и недавно мы наблюдали, что некоторые пользователи, благодаря способности MetaMask 7702 выполнять массовые операции, вместо того чтобы авторизовать множество взаимодействий, стали жертвами фишинговой группы #InfernoDrainer, которая объединила их в одну транзакцию, что привело к краже активов.
Примечание: у MetaMask нет проблем с безопасностью, MetaMask ставит безопасность пользователей на первое место, предоставляя пользователям возможности, связанные с 7702, и реализует множество мер безопасности. Пользователи должны больше узнать о возможностях и связанных рисках 7702, чтобы предотвратить повторение таких инцидентов с безопасностью.
Один, принципы подписи авторизации Metamask 7702 Delagator и безопасный дизайн
1. Технический анализ
Пользователь авторизует уже развернутый контракт Делегатора, указывая поле code своего аккаунта на этот контракт. Текущий адрес официального контракта Делегатора MetaMask: 0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B
Структура авторизации:(chainId, delegatorAddress, nonce, signature) записывается в authorization_list
Метод подписи: на нижнем уровне Metamask использует единую логику подписи для авторизаций, связанных с EIP-7702, то есть метод signEIP7702Authorization, для подписи данных авторизации digest7702 = keccak256(0x05 ‖ RLP(chainId, delegator, nonce)) с использованием ECDSA, создавая структуру подписи (v, r, s) и добавляя ее к последующей транзакции Type-4, чтобы реализовать авторизацию и обновление учетной записи, подробная реализация доступна по адресу: https://github.com/MetaMask/eth-sig-util/blob/main/src/sign-eip7702-authorization.ts
Метод проверки: уровень консенсуса завершает проверку через ecrecover(digest7702, sig) == tx.from.
Безопасный дизайн: веб-страница не может побудить пользователя авторизовать любой Делегатор, поскольку метод 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 самостоятельно вводить адреса, что дополнительно предотвращает подделку пользователями данных о подписи злонамеренных авторизаций Делегаторов.
2. Способ использования
В настоящее время в Metamask способы обновления существующего EOA до смарт-учетной записи 7702 (Smart Account) делятся на два типа: активное обновление и пассивное обновление.
Активное обновление означает, что пользователь нажимает кнопку «Переключить» на интерфейсе кошелька, чтобы авторизовать определенный контракт Делегатора.
Пассивное обновление происходит, когда пользователь взаимодействует с некоторыми DApp, поддерживающими 7702, Metamask автоматически выдает предупреждение после обнаружения соответствующих действий и предлагает пользователю завершить обновление.
2.1 Активное обновление:
Содержимое транзакции: включает только действие обновления учетной записи, то есть авторизацию определенного контракта Делегатора.
Процесс обновления: зайдите в интерфейс деталей учетной записи в кошельке, нажмите кнопку переключения на изображении ниже, чтобы обновить учетную запись пользователя на Ethereum Mainnet до смарт-учетной записи. После нажатия на переключение появится окно для подписи пользователем текущей транзакции обновления:

Запись авторизации: после подтверждения подождите, пока транзакция будет записана в блокчейн, успешная запись в блокчейн означает, что пользователь успешно обновлен до смарт-учетной записи, конкретную информацию о транзакции авторизации можно просмотреть на странице текущего адреса кошелька на etherscan в разделе **Authorizations (EIP-7702)**.

2. Способ использования
В настоящее время в Metamask способы обновления существующего EOA до смарт-учетной записи 7702 (Smart Account) делятся на два типа: активное обновление и пассивное обновление.
Активное обновление означает, что пользователь нажимает кнопку «Переключить» на интерфейсе кошелька, чтобы авторизовать определенный контракт Делегатора.
Пассивное обновление происходит, когда пользователь взаимодействует с некоторыми DApp, поддерживающими 7702, Metamask автоматически выдает предупреждение после обнаружения соответствующих действий и предлагает пользователю завершить обновление.
2.1 Активное обновление:
Содержимое транзакции: включает только действие обновления учетной записи, то есть авторизацию определенного контракта Делегатора.
Процесс обновления: зайдите в интерфейс деталей учетной записи в кошельке, нажмите кнопку переключения на изображении ниже, чтобы обновить учетную запись пользователя на Ethereum Mainnet до смарт-учетной записи. После нажатия на переключение появится окно для подписи пользователем текущей транзакции обновления:

Запись авторизации: после подтверждения подождите, пока транзакция будет записана в блокчейн, успешная запись в блокчейн означает, что пользователь успешно обновлен до смарт-учетной записи, конкретную информацию о транзакции авторизации можно просмотреть на странице текущего адреса кошелька на etherscan в разделе **Authorizations (EIP-7702)**.

2.2 Пассивное обновление
Содержимое транзакции: включает действие обновления учетной записи и массовые действия по взаимодействию с контрактами на цепи.
Процесс обновления: во время взаимодействия пользователя с некоторыми DApp на цепи, Metamask будет активно предлагать пользователю текущую транзакцию, которую можно завершить с помощью массовой отправки, обновив на смарт-учетную запись. Например, при обмене некоторыми токенами на Uniswap нажмите кнопку Использовать смарт-учетную запись, обновите до смарт-учетной записи, затем авторизация токенов и обмен будут выполнены в одной транзакции.

2.3 Вернуться к обычному EOA
Независимо от того, использует ли пользователь активное обновление или пассивное обновление для преобразования текущей учетной записи в смарт-учетную запись, связанный адрес контракта Делегатора будет постоянно храниться в цепи как текущая логика выполнения учетной записи.
Если пользователь хочет восстановить учетную запись как обычный EOA, ему нужно вручную инициировать операцию «Вернуться к EOA». Суть этой операции заключается в том, что через авторизацию EIP-7702 адрес (0) подается как новый адрес контракта Делегатора. Когда транзакция успешно записана в блокчейн, поле code учетной записи будет очищено, логика выполнения восстановится до стандартного пустого кода, а учетная запись вернется в состояние обычного EOA.
Зайдите в интерфейс деталей учетной записи в кошельке и нажмите кнопку переключения, чтобы переключить пользователя с Ethereum Mainnet обратно на обычный EOA.

После подтверждения подождите, пока транзакция будет записана в блокчейн, успешная запись в блокчейн означает, что пользователь переключился с смарт-учетной записи обратно на обычный EOA, конкретную информацию о транзакции также можно найти на странице текущего адреса кошелька на etherscan.

Два, примеры фишинговых атак 7702
24 мая #InfernoDrainer фишинговая группа использовала функцию массового выполнения контракта Metamask 7702-Delagator для массового получения авторизаций токенов пользователей (0xc6D2…06DC) и осуществила фишинговую атаку, потеряв более 146000 долларов в $HashAI $HUMANS $ParallelAI $NeuralAI $DSync $Zero1 $NodeAI $Sensay $Virtual.
Мошеннический адрес
0x0000db5c8B030ae20308ac975898E09741e70000 0x00008C22F9F6f3101533f520e229BbB54Be90000 0xa85d90B8Febc092E11E75Bf8F93a7090E2ed04DE 0xC83De81A2aa92640D8d68ddf3Fc6b4B853D77359 0x33dAD2bbb03Dca73a3d92FC2413A1F8D09c34181
Пример фишинговой транзакции
https://etherscan.io/tx/0x09c264618e93983510aaeb7aa2c91c8254a8b2ec66167438f3f6c28b866b6eba
Причина фишинга
Пользователь (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 для подписи.
При подписании авторизации пользователем отображайте целевой контракт, при массовом выполнении через Делегатора показывайте конкретное содержимое вызова функции, чтобы снизить риск атак фишинга в интернете.
Пользователь:
Защита приватного ключа всегда является самой важной. Не ваши ключи, не ваши монеты.
Не авторизуйте Делегатора на основании каких-либо независимых веб-страниц, безопасная авторизация обычно происходит только в приложении, как в MetaMask.
При использовании любого кошелька для подписи внимательно ознакомьтесь с содержимым подписи, чтобы избежать слепой подписи или ошибочной подписи. После подтверждения подождите, пока транзакция будет записана в блокчейн, успешная запись в блокчейн означает, что пользователь переключился с смарт-учетной записи обратно на обычный EOA, конкретную информацию о транзакции также можно найти на странице текущего адреса кошелька на etherscan.

Два, примеры фишинговых атак 7702
24 мая #InfernoDrainer фишинговая группа использовала функцию массового выполнения контракта Metamask 7702-Delagator для массового получения авторизаций токенов пользователей (0xc6D2…06DC) и осуществила фишинговую атаку, потеряв более 146000 долларов в $HashAI $HUMANS $ParallelAI $NeuralAI $DSync $Zero1 $NodeAI $Sensay $Virtual.
Мошеннический адрес
0x0000db5c8B030ae20308ac975898E09741e70000 0x00008C22F9F6f3101533f520e229BbB54Be90000 0xa85d90B8Febc092E11E75Bf8F93a7090E2ed04DE 0xC83De81A2aa92640D8d68ddf3Fc6b4B853D77359 0x33dAD2bbb03Dca73a3d92FC2413A1F8D09c34181
Пример фишинговой транзакции

Причина фишинга
Пользователь (0xc6D2…06DC) выполнил злонамеренную массовую авторизацию транзакций:

#InfernoDrainer и #PinkDrainer экспериментируют с более скрытными и более влиятельными схемами рыболовства с использованием 7702.
Согласно нашим исследованиям, в настоящее время фишинговые группировки #InfernoDrainer и #PinkDrainer исследуют и тестируют более скрытные и более влиятельные схемы рыболовства с использованием 7702, соответствующие адреса следующие, мы также опубликуем более подробный отчет позже:
Инферно Дрейнер:
0x0000db5c8B030ae20308ac975898E09741e70000
Розовый Дрейнер:
0xe49e04F40C272F405eCB9a668a73EEAD4b3B5624
Три, безопасные рекомендации
Поставщик кошелька:
Ссылка на реализацию и управление безопасностью 7702 Делегатора в MetaMask, запрещающая пользователям авторизовать любой Делегатор и разрешающая только операции в приложении. Напоминаем пользователям, что любые действия по авторизации подписи через вебсайт являются фишинговыми атаками.
Проверьте, соответствует ли цепь текущей сети, и предупредите пользователя о риске повторной атаки при использовании chainID 0 для подписи.
При подписании авторизации пользователем отображайте целевой контракт, при массовом выполнении через Делегатора показывайте конкретное содержимое вызова функции, чтобы снизить риск атак фишинга в интернете.
Пользователь:
Защита приватного ключа всегда является самой важной. Не ваши ключи, не ваши монеты.
Не авторизуйте Делегатора на основании каких-либо независимых веб-страниц, безопасная авторизация обычно происходит только в приложении, как в MetaMask.
При использовании любого кошелька для подписи внимательно ознакомьтесь с содержимым подписи, чтобы избежать слепой подписи или ошибочной подписи.
