Отправка и получение Ethereum в SSP

·8 мин. чтения·Автор: SSP Editorial Team
Обложка SSP Academy: отправка и получение Ethereum в SSP

Отправка и получение Ethereum в SSP

Перемещение ETH в кошелёк с самостоятельным хранением и из него — одно из первых действий, которые вы выполните после настройки SSP для Ethereum. Это несложно, как только вы поймёте модель аккаунта и то, как multisig 2-из-2 в SSP вписывается в обычную транзакцию Ethereum. Это руководство разбирает получение ETH, его отправку и то, что на самом деле происходит за кулисами, когда вы подписываете двумя устройствами.

Если ETH внутри SSP для вас совсем в новинку, начните со статьи Ethereum в SSP ради общей картины, а затем вернитесь сюда за практическим процессом отправки и получения.

Краткое напоминание о модели аккаунта

Под капотом Ethereum работает не так, как Bitcoin. В Bitcoin ваш кошелёк жонглирует множеством непотраченных выходов и при каждой трате создаёт новые адреса сдачи. В Ethereum ваш аккаунт — это единственный адрес, который просто хранит баланс. Когда вы получаете ETH, баланс растёт. Когда отправляете — уменьшается. Нет ни адресов сдачи, ни выбора выходов, о которых нужно думать.

Для самостоятельного хранения это важно по двум практическим причинам. Во-первых, вы используете один и тот же адрес сколь угодно долго, поэтому есть лишь один адрес, который нужно резервировать, проверять и сообщать. Во-вторых, каждую транзакцию нужно упорядочивать, и Ethereum делает это с помощью счётчика под названием nonce — подробнее ниже.

В SSP этот единственный адрес — ваш аккаунт multisig 2-из-2. В сетях EVM это аккаунт смарт-контракта ERC-4337, поэтому два ключа по-прежнему контролируют каждую трату, хотя в сети это выглядит как обычный адрес.

Получение ETH

Получение — более безопасная половина, потому что из вашего кошелька ничего не уходит. Вы даёте отправителю свой адрес и ждёте подтверждения сети.

Ваш адрес 0x

Ваш адрес для получения Ethereum начинается с 0x, за которым следуют 40 шестнадцатеричных символов. SSP показывает его в виде текста и в виде сканируемого кода, чтобы отправитель скопировал его в точности. Поскольку Ethereum использует один адрес повторно, новый для каждого платежа вам не нужен.

Проверьте адрес на обоих устройствах

Самостоятельное хранение возлагает проверку адреса на вас. Вредоносное ПО, подменяющее скопированный адрес адресом злоумышленника, — реальный риск по всей отрасли, поэтому убедитесь, что адрес, которым вы собираетесь поделиться, действительно ваш. SSP показывает аккаунт и в расширении, и в SSP Key, так что взгляните на первые и последние символы на каждом устройстве и убедитесь, что они совпадают. Та же привычка применима при получении Bitcoin в SSP: проверяйте на оборудовании, которое вы контролируете, а не только на веб-странице, которую вам кто-то прислал.

Один адрес для ETH и токенов ERC-20

Один и тот же адрес 0x получает и ETH, и токены ERC-20, потому что токены живут в контрактах, которые зачисляют средства на ваш адрес. Отдельный адрес для каждого токена не нужен. Что нужно — так это убедиться, что отправитель использует правильную сеть.

Выбор правильной сети

Это самый распространённый способ потерять средства в сетях EVM. Адрес, существующий в основной сети Ethereum, существует и в Polygon, Base и других сетях EVM, но баланс в одной сети — это не баланс в другой. Если кто-то отправит ETH не по той сети, он не придёт в ту, за которой вы наблюдаете. Прежде чем делиться адресом, согласуйте с отправителем точную сеть и убедитесь, что SSP настроен на ту же сеть. Статья 3 подробно рассматривает использование SSP в Polygon, Base и других сетях EVM.

Отправка ETH: процесс совместной подписи 2-из-2

Именно при отправке проявляется multisig-конструкция SSP. Кошелёк с одним ключом подписывает один раз и рассылает. SSP требует оба ваших ключа, поэтому в процессе есть дополнительный шаг подтверждения — и этот шаг и есть весь смысл модели безопасности.

Вот как выглядит отправка, описанная в общих чертах, поскольку точные подписи могут меняться:

  1. В расширении SSP Wallet выберите отправку, введите адрес получателя и сумму, затем проверьте комиссию.
  2. Расширение строит транзакцию и накладывает первую подпись ключом 1.
  3. SSP Key на вашем телефоне получает push-уведомление. Там вы проверяете те же данные и подписываете совместно ключом 2.
  4. С объединёнными двумя подписями транзакция рассылается в сеть.

Поскольку ни одно устройство в одиночку не может перемещать средства, злоумышленник, скомпрометировавший только ваш браузер, всё равно не сможет отправить. Ему понадобился бы ещё и ваш телефон для подтверждения. В сетях EVM SSP объединяет две подписи в одну с помощью агрегации Schnorr, так что в сеть попадает единственная операция абстракции аккаунта, а не две отдельные подписи. Более глубокая механика рассмотрена в статье multisig в EVM по способу абстракции аккаунта.

Привычка к совместной подписи по духу идентична отправке Bitcoin в SSP; отличается лишь нижележащий формат транзакции.

Жизненный цикл транзакции

Полезно представить отправку как короткий конвейер:

  • Построение — расширение собирает транзакцию: получатель, сумма, настройки gas и следующий nonce.
  • Подпись — ключ 1 подписывает в расширении.
  • Совместная подпись — ключ 2 подписывает в SSP Key после того, как вы подтвердите push.
  • Отправлена / в ожидании — объединённая транзакция рассылается и находится в mempool, ожидая включения в блок.
  • Подтверждена — валидатор включает её в блок. Каждый следующий блок добавляет подтверждения и усложняет отмену.

Транзакция окончательна только после подтверждения в сети. До этого она в ожидании и в некоторых случаях может быть заменена. Вы можете следить за ходом любой транзакции в публичном обозревателе блоков, таком как Etherscan, вставив хеш транзакции.

Понимание nonce

Nonce — это счётчик уровня аккаунта, упорядочивающий ваши транзакции. Ваша первая транзакция использует nonce 0, следующая — 1, и так далее. Сеть обрабатывает их строго по порядку.

У этого порядка есть практическое следствие. Если одна транзакция застряла в ожидании — обычно потому, что её цена gas оказалась слишком низкой для текущих условий, — каждая последующая транзакция блокируется за ней, потому что сеть не перепрыгнет к более высокому nonce. Решение — заменить застрявшую транзакцию: вы повторно отправляете транзакцию с тем же nonce, но более высокой комиссией, что позволяет валидаторам выбрать новую версию. Кошельки часто представляют это как действие «ускорить» или «заменить». SSP по-прежнему требует совместную подпись 2-из-2 для замены, потому что это новая транзакция.

Вы редко трогаете nonce вручную — его заполняет SSP, — но знание о его существовании объясняет, почему транзакция в ожидании может задерживать те, что за ней.

Gas в общих чертах

Любая транзакция Ethereum стоит gas, оплачиваемого в ETH. Это верно даже когда вы перемещаете токен ERC-20: токен едет на транзакции Ethereum, и этой транзакции нужен ETH для оплаты вычислений. Практическое правило — всегда держать небольшой баланс ETH, чтобы покрывать gas, иначе отправка может не пройти из-за нехватки gas, даже когда с балансом токенов всё в порядке.

Ценообразование gas по EIP-1559 делится на базовую комиссию, задаваемую сетью, и приоритетные чаевые, которые вы добавляете, чтобы попасть в блок быстрее. Здесь мы кратки; ради полной картины — базовая комиссия, чаевые, почему комиссии взлетают и как их выбирать при самостоятельном хранении — прочитайте комиссии за gas в Ethereum, объяснённые для пользователей самостоятельного хранения.

ETH против токенов ERC-20

ETH — нативный актив Ethereum, и именно им оплачивается gas. Токены ERC-20 — это отдельные активы, определяемые смарт-контрактами, которые ведут учёт балансов по вашему адресу. Отправка токена технически является скорее взаимодействием с контрактом, чем простым переводом ценности, но в SSP она следует тому же процессу: построение, подпись, совместная подпись, рассылка.

Некоторые действия с токенами требуют однократного разрешения (approval), прежде чем другой контракт сможет перемещать токены от вашего имени, — это часто встречается в свопах и DeFi. Разрешения — отдельная тема и вне рамок этой статьи; просто знайте, что запрос на подтверждение траты — нормальная часть взаимодействия с токенами, и та же совместная подпись 2-из-2 его защищает.

Практические предосторожности перед отправкой

  • Правильная сеть. Убедитесь, что сеть соответствует ожиданиям получателя. ETH в Base — это не ETH в основной сети Ethereum.
  • Формат адреса. Адреса Ethereum — это 0x плюс 40 шестнадцатеричных символов. Вставляйте, никогда не перепечатывайте и проверяйте начало и конец на обоих устройствах.
  • Имена ENS. Некоторые кошельки позволяют отправлять на читаемое имя вроде name.eth вместо сырого адреса. Относитесь к нему как к любому адресу: перед подтверждением убедитесь, что оно разрешается в ожидаемого получателя.
  • Держите ETH на gas. Баланс из одних токенов не может оплатить собственный gas. Держите немного ETH.

Что касается деталей уровня протокола о том, как устроены транзакции Ethereum, надёжным справочником служит официальная документация по транзакциям Ethereum.

Подведём итог

Получить ETH в SSP — значит поделиться проверенным адресом 0x в правильной сети. Отправка добавляет один осознанный шаг — совместную подпись в SSP Key, — который превращает единую точку отказа в две. Держите немного ETH под рукой для gas, следите за nonce, когда транзакция застопорилась, и каждый раз подтверждайте сеть — и повседневное движение ETH в SSP станет рутиной. Отсюда статья о комиссиях за gas — естественное продолжение чтения.

Поделиться статьёй

Похожие статьи