Коротко
- Подключение сайта, подпись сообщения и on-chain транзакция — разные действия. Само подключение обычно раскрывает публичный адрес, но не разрешает списывать токены.
- В запросе важно читать не только красивое описание: проверяйте домен, сеть, аккаунт, контракт, получателя или spender, сумму, срок и фактический тип операции.
- После ошибки сначала установите, что именно было подписано. Отключение сайта закрывает соединение, но не отменяет on-chain allowance, уже исполненную транзакцию или раскрытый private key.
1. Одна кнопка скрывает несколько разных действий
Кошелёк хранит или использует ключ, а действительная подпись подтверждает выполнение условий авторизации этим ключевым материалом — не личность и не намерение физического владельца. Но слово Sign не объясняет последствие. Иногда сайт только просит показать публичный адрес, иногда — доказать технический контроль над ним, а иногда — подписать данные, которые контракт сможет исполнить позже. Поэтому вопрос перед нажатием звучит не «доверяю ли я сайту вообще», а «какое право я создаю сейчас и для кого».
| Запрос | Что происходит | Проверяемый результат |
|---|---|---|
| Connect | Сайт узнаёт выбранный публичный адрес и сеть; кошелёк разрешает интерфейсу обращаться к аккаунту | Адрес виден сайту, но записи в блокчейне и tx hash нет |
| Login / sign message | Адрес подписывает текст для входа или доказательства контроля | Сайт создаёт сессию; on-chain транзакции обычно нет |
| Typed data | Подписывается структура с именованными полями, доменом и контрактом проверки | Возникает off-chain подпись, которую может проверить приложение или контракт |
| Transaction | Подписывается перевод или вызов контракта для отправки в сеть | После broadcast появляется сетевой статус и tx hash |
| Approve | On-chain транзакция меняет allowance токена для указанного spender | Новое разрешение читается в состоянии токен-контракта |
| Permit | Off-chain подпись разрешает действие по правилам конкретного протокола | До использования подписи tx hash может отсутствовать; последствия видны после исполнения |
| Blind signing | Устройство подтверждает hash или непрочитанные данные, не показывая человеку смысл полей | Криптографически корректная подпись без понятного человеку подтверждения намерения |
- Запрос
- Connect
- Что происходит
- Сайт узнаёт выбранный публичный адрес и сеть; кошелёк разрешает интерфейсу обращаться к аккаунту
- Проверяемый результат
- Адрес виден сайту, но записи в блокчейне и tx hash нет
- Запрос
- Login / sign message
- Что происходит
- Адрес подписывает текст для входа или доказательства контроля
- Проверяемый результат
- Сайт создаёт сессию; on-chain транзакции обычно нет
- Запрос
- Typed data
- Что происходит
- Подписывается структура с именованными полями, доменом и контрактом проверки
- Проверяемый результат
- Возникает off-chain подпись, которую может проверить приложение или контракт
- Запрос
- Transaction
- Что происходит
- Подписывается перевод или вызов контракта для отправки в сеть
- Проверяемый результат
- После broadcast появляется сетевой статус и tx hash
- Запрос
- Approve
- Что происходит
- On-chain транзакция меняет allowance токена для указанного spender
- Проверяемый результат
- Новое разрешение читается в состоянии токен-контракта
- Запрос
- Permit
- Что происходит
- Off-chain подпись разрешает действие по правилам конкретного протокола
- Проверяемый результат
- До использования подписи tx hash может отсутствовать; последствия видны после исполнения
- Запрос
- Blind signing
- Что происходит
- Устройство подтверждает hash или непрочитанные данные, не показывая человеку смысл полей
- Проверяемый результат
- Криптографически корректная подпись без понятного человеку подтверждения намерения
2. Connect показывает адрес, но не подписывает перевод
Подключение обычно даёт dapp доступ к выбранному публичному адресу, активной сети и событиям вроде смены аккаунта. Это нужно, чтобы показать баланс или подготовить следующий запрос. Само по себе соединение не должно отправлять активы и не создаёт token allowance. TRON Wallet Adapter также разделяет состояния connected и address, подключение и функцию signMessage; для транзакций существует отдельная поверхность API.
Если вы ещё выбираете модель хранения и отдельный адрес для приложений, сначала разберите, как выбрать криптокошелёк. Разделение повседневного dapp-аккаунта и долгого хранения уменьшает цену одной ошибочной подписи, но не заменяет чтение экрана.
3. Login message создаёт сессию, а не перевод
Валидная подпись сообщения удовлетворяет выбранным правилам проверки для адреса в этот момент. Она не раскрывает private key, не устанавливает личность или фактическое намерение владельца и обычно не требует сетевой комиссии. Но из этого не следует, что сообщение безобидно: сервер может использовать подпись как авторизацию, а специально составленные данные — как право на другое действие.
ERC-4361, Sign-In with Ethereum, задаёт читаемый формат входа. В нём есть домен, адрес, URI, chain ID, nonce, время выдачи и при необходимости срок действия и список ресурсов. Nonce нужен серверу против повторного входа с той же подписью, а домен связывает согласие с конкретным сайтом. Стандарт не превращает любой произвольный текст с фразой «Sign-In» в настоящий SIWE-запрос.
4. Typed data делает поля видимыми, но не делает запрос безопасным
EIP-712 описывает подпись структурированных данных вместо непрозрачной последовательности байтов. Кошелёк может показать названия полей, значения и signing domain. В domain входят, когда это уместно, имя приложения, версия, chainId и verifyingContract. Это даёт человеку больше контекста, но смысл каждого поля всё равно определяет приложение и контракт.
5. Транзакция предназначена для исполнения в сети
Транзакция может перевести нативную монету или вызвать функцию контракта. Подпись авторизует точный payload, но запись появляется в блокчейне только после отправки. Интерфейс часто совмещает signing и broadcast, поэтому до подтверждения сверьте отправителя, сеть, получателя или контракт, актив, сумму, функцию и предельную комиссию.
Перед переводом полезно отдельно разобрать, как безопасно перевести криптовалюту: реквизиты подтверждают независимым каналом, а сеть и адрес сверяют полностью. Экран подписи — последняя проверка, а не место, где впервые узнают получателя.
6. Approve и permit дают право на будущее действие
Approve обычно является on-chain вызовом токен-контракта: владелец задаёт, сколько указанный spender сможет потратить через механизм токена. Это не перевод в момент подтверждения, однако право может быть использовано позже. Permit решает похожую задачу через подпись сообщения по правилам конкретного токена или протокола; такую подпись другая сторона может отправить в сеть позднее.
| Действие | Где возникает | Главные поля | Что проверить после |
|---|---|---|---|
| Connect | Между сайтом и кошельком | Domain, account, network | Какие сайты всё ещё подключены |
| Approve | On-chain транзакция токен-контракта | Token, owner, spender, amount | Текущее allowance в той же сети |
| Permit | Off-chain подпись, которую могут исполнить позже | Domain, token, spender, amount, nonce, deadline | Истёкло ли право, использована ли подпись и что предусматривает протокол |
- Действие
- Connect
- Где возникает
- Между сайтом и кошельком
- Главные поля
- Domain, account, network
- Что проверить после
- Какие сайты всё ещё подключены
- Действие
- Approve
- Где возникает
- On-chain транзакция токен-контракта
- Главные поля
- Token, owner, spender, amount
- Что проверить после
- Текущее allowance в той же сети
- Действие
- Permit
- Где возникает
- Off-chain подпись, которую могут исполнить позже
- Главные поля
- Domain, token, spender, amount, nonce, deadline
- Что проверить после
- Истёкло ли право, использована ли подпись и что предусматривает протокол
Фишинговая страница может описать опасный запрос как вход, верификацию или получение подарка. Разбор про схемы криптомошенничества помогает распознать срочность, поддельный домен и ложную поддержку, но окончательное решение всё равно принимают по данным самого запроса.
7. Blind signing лишает вас главной проверки
При blind signing кошелёк или аппаратное устройство не расшифровывает действие и показывает hash, hex-строку либо общее предупреждение. Ключ может оставаться внутри защищённого устройства, но человек не видит, какое намерение закрепляет подпись. Защита ключа и проверка смысла операции — разные задачи.
8. Что делать после подозрительной подписи
Сначала сохраните домен, время, скриншот запроса, выбранный адрес и, если он появился, tx hash. Не подписывайте «отмену», которую предлагает тот же сайт: это может быть второй вредоносный запрос. Дальнейшее действие определяется типом уже выданного права.
| Что произошло | Первое действие | Как проверить результат |
|---|---|---|
| Только connect | Отключить сайт в кошельке, завершить сессию на сайте и очистить выданный ему доступ | Сайт больше не видит активное соединение; on-chain изменений не было |
| Login message | Выйти из аккаунта и завершить активные сессии доступным официальным способом | Старая сессия больше не открывает закрытые данные; сама подпись математически не исчезает |
| Транзакция отправлена | Сохранить hash и проверить фактическое исполнение в нужной сети | Статус, адреса, сумма и события совпадают с записью сети |
| Approve подтверждён | Проверить текущее allowance и при риске отозвать его через доверенный интерфейс | Allowance для точных token, owner и spender уменьшен on-chain |
| Permit или иные typed data | Определить протокол, verifyingContract, nonce, deadline и возможный способ аннулирования | Официальная логика протокола показывает использованный, истёкший или недействительный nonce |
| Раскрыт seed или private key | На доверенном устройстве создать новый кошелёк и перенести оставшиеся активы | Средства находятся на адресах от новой, нигде не раскрытой резервной копии |
- Что произошло
- Только connect
- Первое действие
- Отключить сайт в кошельке, завершить сессию на сайте и очистить выданный ему доступ
- Как проверить результат
- Сайт больше не видит активное соединение; on-chain изменений не было
- Что произошло
- Login message
- Первое действие
- Выйти из аккаунта и завершить активные сессии доступным официальным способом
- Как проверить результат
- Старая сессия больше не открывает закрытые данные; сама подпись математически не исчезает
- Что произошло
- Транзакция отправлена
- Первое действие
- Сохранить hash и проверить фактическое исполнение в нужной сети
- Как проверить результат
- Статус, адреса, сумма и события совпадают с записью сети
- Что произошло
- Approve подтверждён
- Первое действие
- Проверить текущее allowance и при риске отозвать его через доверенный интерфейс
- Как проверить результат
- Allowance для точных token, owner и spender уменьшен on-chain
- Что произошло
- Permit или иные typed data
- Первое действие
- Определить протокол, verifyingContract, nonce, deadline и возможный способ аннулирования
- Как проверить результат
- Официальная логика протокола показывает использованный, истёкший или недействительный nonce
- Что произошло
- Раскрыт seed или private key
- Первое действие
- На доверенном устройстве создать новый кошелёк и перенести оставшиеся активы
- Как проверить результат
- Средства находятся на адресах от новой, нигде не раскрытой резервной копии
Если транзакция ушла в сеть, инструкция о том, как проверить криптотранзакцию, поможет отличить signed, pending, failed и confirmed. Если посторонний увидел резервную фразу, одной смены пароля недостаточно: правила о том, как хранить seed-фразу, применяются уже к новому кошельку, а старую фразу считают скомпрометированной.
Источники
Мы используем прямые ссылки и фиксируем дату проверки. Полный текст чужих материалов не перепечатывается.
- EIP-712 — typed structured data hashing and signing Проверено 10 августа 2026 г.
- ERC-4361 — Sign-In with Ethereum Проверено 10 августа 2026 г.
- ERC-191 — Signed Data Standard Проверено 10 августа 2026 г.
- MetaMask — Signature phishing Проверено 10 августа 2026 г.
- TRON Developers — TronWallet Adapter Проверено 10 августа 2026 г.
