system online · no logs · no tracking · no kyc tor: v3 ready
root@neverkyc:/blog/stealth-adresa-ethereum-eip-5564$ cat post.md

Как использовать стелс-адреса в Ethereum (EIP-5564)

// by ~anon · 2026-05-29 · mock,auto-generated,ru

Как использовать стелс-адреса в Ethereum (EIP-5564)

В апреле 2026 года Виталик Бутерин опубликовал обновление своей дорожной карты «Statelessness, Stealth, and Soul-Bound Tokens», и EIP-5564 снова оказался в центре внимания: примерно 1,4 миллиона Ethereum-адресов уже фигурируют как минимум в одном кластере Chainalysis, и разрыв между «псевдонимностью» и «приватностью» никогда ещё не был настолько очевидным. EIP-5564 — это ответ Ethereum на эту проблему: стандартизированный способ получать переводы ETH, ERC-20 или ERC-721 на свежевыведенный одноразовый адрес, который внешний наблюдатель не сможет связать с вашим публичным ENS-именем или основным кошельком. Идея почти дословно заимствована у Monero, где стелс-адреса работают по умолчанию с 2014 года, но адаптирована под аккаунт-модель Ethereum и нативную среду EVM. В этом руководстве разберём, как работает стандарт, как использовать его с существующими кошельками, как он соотносится со зрелой реализацией Monero и где находятся очевидные грабли. Если в итоге вы захотите конвертировать приватные ETH в XMR ради более серьёзных гарантий, MoneroSwapper обеспечит мост без KYC — но сначала разберёмся, что именно стелс-адреса дают вам на самой Ethereum.

Зачем Ethereum понадобились стелс-адреса

Приватность в Ethereum исторически выглядит неуклюже. Каждая транзакция публично связывает отправителя, получателя и сумму с двумя долгоживущими адресами, а ENS-имена делают эти адреса человекочитаемыми в Etherscan одним кликом. Стоит вам один раз получить пожертвование, чаевые, аирдроп или зарплату в стейблкоинах на публичный адрес — и этот адрес навсегда привязан к вашей он-чейн истории. Tornado Cash частично закрывал эту дыру, пока OFAC не наложил санкции на смарт-контракт в августе 2022 года, а вынесенные в 2024 году обвинительные приговоры двум разработчикам не заморозили большую часть легитимного потребительского использования сервиса.

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

  • Несвязываемость: сторонний наблюдатель не определит, что два стелс-платежа принадлежат одному получателю, даже если мета-адрес опубликован открыто.
  • Неинтерактивность: отправителю достаточно опубликованного мета-адреса — никаких предварительных согласований, общих симметричных ключей или мостов через Tor.
  • Доступ только на просмотр: ключ просмотра позволяет внешним сервисам (горячему кошельку, watch-only серверу, мобильному приложению) обнаруживать входящие платежи без возможности их потратить.
  • Обратная совместимость: стандарт работает с ETH, ERC-20, ERC-721 и ERC-1155 без модификации каких-либо токен-контрактов.

Компромисс в том, что EIP-5564 не скрывает суммы транзакций и не разрывает связь между стелс-выходом и тем адресом, на который средства в итоге будут сметены. Это не RingCT. Но для повседневных задач — заплатить фрилансеру, получить NFT-дроп, принять пожертвование, перевести зарплату — он радикально снижает то, что внешний наблюдатель может скоррелировать с вашей публичной личностью.

Как на самом деле работает EIP-5564

EIP-5564 — авторы Тони Варштеттер, Мэтт Соломон, Бен ДиФранческо и Гэри Гайрат, финализирован как Standards Track ERC в марте 2024 — определяет два артефакта: каноническую схему вывода стелс-адресов из опубликованного мета-адреса получателя и singleton-контракт Announcer, в котором публикуются эфемерные публичные ключи, чтобы получатели могли находить свои платежи, не сканируя всю цепочку целиком.

Мета-адрес: два ключа, а не один

Каждый получатель в EIP-5564 публикует стелс-мета-адрес в формате st:eth:0x.... В нём закодированы две сжатые публичные secp256k1-точки, склеенные подряд:

  • Публичный ключ траты (P): выводится из долгоживущего приватного ключа траты, который получатель хранит офлайн, в идеале — на аппаратном кошельке.
  • Публичный ключ просмотра (V): выводится из приватного ключа просмотра, который можно передать watch-only программе, не давая ей возможности подписывать траты.

Это в точности то же разделение View key и Spend key, которое Monero унаследовал от CryptoNote в 2014 году. Ключ траты подписывает исходящие переводы; ключ просмотра позволяет кошельку обнаруживать входящие платежи, не имея возможности их перемещать. Именно это разделение даёт возможность держать ключ траты на Ledger или Trezor, пока горячий кошелёк на ноутбуке параллельно крутит сканер в фоне.

Вывод одноразового адреса

Чтобы отправить средства на стелс-мета-адрес, отправитель выполняет на своей стороне следующий протокол — без обращений к блокчейну вплоть до самого последнего шага:

  1. Сгенерировать свежий случайный эфемерный приватный ключ r и вычислить его публичную часть R = r·G, где G — генератор secp256k1.
  2. Вычислить общий секрет S = r·V через стандартный ECDH с публичным ключом просмотра получателя.
  3. Захешировать общий секрет: s = keccak256(S).
  4. Вывести стелс-публичный ключ P_stealth = P + s·G.
  5. Взять Ethereum-адрес от P_stealth. Это и есть одноразовый получатель.
  6. Отправить средства на этот адрес и вызвать контракт Announcer с эфемерным публичным ключом R, байтом view-tag и идентификатором схемы.

Получатель — точнее, сканирующий сервис, у которого есть ключ просмотра — видит анонс, пересчитывает s = keccak256(v·R) (где v — приватный ключ просмотра), выводит тот же P_stealth и находит средства, припаркованные на соответствующем Ethereum-адресе. Подписать транзакцию с этого адреса может только владелец приватного ключа траты: приватный ключ для конкретного выхода равен p_stealth = p_spend + s.

Оптимизация через view-tag

Наивная реализация заставила бы каждого получателя вычислять P_stealth для каждого анонса в цепочке — миллионы операций в день при масштабировании. EIP-5564 включает в каждый анонс однобайтовый view-tag: первый байт keccak256(S). Сканеры могут отбросить 255 из 256 анонсов после одного сравнения, так что типичный получатель полностью обсчитывает только около 0,4% анонсов. Это ставит стоимость сканирования EIP-5564 примерно на один уровень со сканированием по view key в Monero после того, как Monero 0.18 добавил опциональный view-tag в 2022 году. Сама идея была впервые задокументирована исследователями Zcash в 2021 году и с тех пор стала стандартным паттерном в стелс-адресных конструкциях.

EIP-5564 против стелс-адресов Monero

Поскольку Ethereum-пользователи регулярно спрашивают, не делает ли EIP-5564 Monero избыточным, имеет смысл расписать сравнение явно. Математическое ядро у этих двух систем одно и то же, но в том, что именно прячет окружающий протокол, и в том, является ли приватность опциональной фичей или базовой гарантией, они расходятся радикально.

СвойствоEIP-5564 (Ethereum)Monero (CryptoNote + RingCT)
Одноразовый адрес получателяДа (на каждый платёж)Да (на каждый выход)
Анонимность отправителяНет — адрес отправителя публиченДа — скрыт кольцевой подписью CLSAG
Скрытие суммыНет — видно в логах переводаДа — обязательства Педерсена + Bulletproofs
Использование по умолчаниюОпциональное, по одной транзакцииОбязательное для каждого выхода
Сканирование по ключу просмотраДа (viewing key EIP-5564)Да (View key Monero)
Сетевая приватностьНе стандартизированаРаспространение через Dandelion++
Планы будущих хардфорковНе запланированыFCMP++ / Seraphis Jamtis (в работе)
Размер анонимити-сетаВсе анонсы EIP-5564 (~сотни в день)Весь UTXO-сет (после FCMP++)

Если коротко: EIP-5564 скрывает, кому платят, а Monero дополнительно скрывает, кто платит и сколько именно. Если в вашей модели угроз речь идёт про «обычное он-чейн наблюдение» и вы уже живёте в экосистеме Ethereum, EIP-5564 — заметное улучшение по сравнению с текущим положением дел. Если же модель угроз включает профессиональную чейн-аналитику с полной кластеризацией графа — или если вам нужна взаимозаменяемость средств на принимающей стороне — Monero остаётся структурно сильнее, потому что каждый выход на уровне протокола выглядит одинаково.

Пошагово: получение и трата стелс-платежей

Этот разбор предполагает, что вы используете Umbra (umbra.cash) или кошелёк Fluidkey — две production-grade реализации EIP-5564 на Ethereum mainnet по состоянию на середину 2026 года. На Base, Optimism и Arbitrum процесс по сути идентичен: на всех этих сетях развёрнут тот же singleton Announcer по каноническому адресу. Если вы тестируете протокол, начните с Sepolia — газ там бесплатный, а SDK тот же самый.

  1. Сгенерируйте свой стелс-мета-адрес. Подключите кошелёк, в котором лежит ваш основной подписывающий ключ. И Umbra, и Fluidkey детерминированно выводят ваши приватные ключи траты и просмотра из подписи над фиксированным сообщением — отдельная мнемоника не нужна, а доступ восстанавливается с любого устройства, на котором есть основной ключ.
  2. Опубликуйте или передайте мета-адрес. Итоговая строка выглядит как st:eth:0x03ab...c1de. Её можно зарегистрировать в ENS-имени (поле резолвера stealth-meta-address стандартизировано в ERC-5564 и поддержано публичным резолвером ENS) или просто передать вне канала — через Signal, Telegram, email или страницу запроса платежа. После публикации вам может заплатить кто угодно без дополнительной координации.
  3. Примите платёж. Отправитель выводит одноразовый адрес у себя на стороне и публикует анонс в контракте Announcer. Ваш кошелёк сканирует новые анонсы примерно каждый блок, фильтрует их по view-tag и показывает подходящие депозиты в UI в течение ~12 секунд после подтверждения в mainnet (или ~2 секунд на большинстве L2).
  4. Положите газ на стелс-адрес. Поскольку каждый стелс-выход сидит на уникальном адресе без какого-либо ETH-баланса, для траты нужен газ. Кошельки решают это одним из трёх способов: спонсируемая мета-транзакция через Gelato или Pimlico, «pull»-схема, при которой получатель сжигает на газ небольшую долю входящей суммы, либо собственный встроенный релеер. В любом случае не пополняйте газ с задоксенного кошелька — это мгновенно связывает выход.
  5. Потратьте или сметите. Подпишите трату выведенным ключом траты. Если вы сметаете несколько стелс-выходов в один консолидированный адрес, вы тут же их связываете между собой, так что консолидируйте только тогда, когда такая связь приемлема. В остальных случаях выводите через Railgun, на свежий депозитный адрес централизованной биржи или — если нужна полная взаимозаменяемость — конвертируйте в XMR через MoneroSwapper и получайте на новом Monero Subaddress.
Эмпирическое правило: стелс-выход настолько же приватен, насколько приватен адрес, в который вы его в итоге сметаете. Считайте, что настоящее решение о приватности — это адрес назначения, а не сам стелс-адрес.

Кошельки и инструменты в 2026 году

Ландшафт реализаций EIP-5564 за восемнадцать месяцев после финализации стандарта успел консолидироваться. По состоянию на середину 2026 года production-grade варианты выглядят так:

  • Umbra Protocol: референсная реализация. Open-source фронтенд, развёрнут на Ethereum mainnet, Optimism, Arbitrum, Polygon PoS, Base и Gnosis Chain. Поддерживает ETH, любые ERC-20 и ERC-721. Поддерживается командой ScopeLift, аудит — Trail of Bits в 2023 году.
  • Fluidkey: ориентированный на массового пользователя стелс-кошелёк с приложениями для iOS и Android, архитектурой на базе Safe-аккаунтов и встроенным спонсированием мета-транзакций — получателю не нужно заранее класть ETH на стелс-адрес ради газа. Привлёк seed-раунд на $1,8 млн в ноябре 2024 года, к концу 2025 года через него прошло более $40 млн стелс-платежей.
  • Labyrinth: комбинирует стелс-адреса EIP-5564 с L2-миксером на Ethereum для скрытия суммы и отправителя. Ближе к полноценному приватному стеку, но всё ещё требует частичного доверия к оператору L2 и наследует его политику цензуры.
  • StealthSwap: Uniswap-подобный фронтенд, позволяющий атомарно свапать токены прямо на стелс-адрес. Удобно, если нужно получить выручку с DEX-сделки, не раскрывая адрес назначения исполняющему релеру.
  • Daimo Pay (Stealth mode): самый свежий участник, добавлен в феврале 2026 года. Заточен под повторяющиеся платежи — зарплата, подписки — где автоматическая генерация стелс-адресов и есть основная ценность.

Для разработчиков канонический контракт Announcer развёрнут по адресу 0x55649E01B5Df198D18D95b5cc5051630cfD45564 во всех EVM-сетях, которые зеркалят адресное пространство Ethereum — обратите внимание на намеренный суффикс «5564», совпадающий с номером EIP: мелкая, но полезная для аудита деталь. Референсный SDK @scopelift/stealth-address-sdk закрывает разбор мета-адресов, генерацию эфемерных ключей, кодирование анонсов и фильтрацию по view-tag на стороне сканера. На интеграцию в существующий dApp у опытной Solidity-команды уходит примерно один рабочий день.

Ограничения модели угроз, которые стоит учитывать

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

  • Раскрытие отправителя: адрес отправителя по-прежнему публичен. Если вы платите с основного ENS-адреса, скрыт только получатель, а аналитик всё равно может строить граф «кто платил на стелс-адреса, когда и сколько».
  • Корреляция по сумме: стелс-платёж на 4,173 ETH, за которым сразу же следует перевод 4,173 ETH куда-то ещё, крайне сильно намекает на связь. Круглые числа и аномальные суммы текут особенно сильно.
  • Корреляция по времени: анонсы стелс-адресов публичны; если вы просканировали и тут же смели средства в течение той же минуты, инструменты наблюдения сузят круг подходящих анонсов простой корреляцией по временному окну.
  • Метаданные на стороне sweep: вывод в Binance или Coinbase связывает стелс-выход с KYC-личностью у комплаенс-провайдера биржи. Сметайте в Railgun, в L2-миксер или конвертируйте в XMR, если действительно нужно разорвать цепочку.
  • Утечка через финансирование газа: если вы пополняете газ на стелс-адресе с задоксенного кошелька, вы только что промаркировали этот выход для любого наблюдателя. Всегда используйте релеер или само-финансируемый sweep.
  • Кросс-чейн MEV: некоторые мост-релеи логируют стелс-адрес у себя в индексере. Рассматривайте любой мост как потенциальную поверхность деанонимизации и при возможности отдавайте предпочтение маршрутам через атомарные свапы.

FAQ

Делает ли EIP-5564 мои транзакции в Ethereum полностью приватными?

Нет. EIP-5564 скрывает получателя платежа — конкретно он разрывает связь между вашим опубликованным адресом (или ENS-именем) и адресом, который реально получает средства. Он не скрывает адрес отправителя, передаваемую сумму или время транзакции. Для полной гарантии взаимозаменяемости, где суммы, отправители и получатели скрыты на уровне протокола, по-прежнему нужна цепочка вроде Monero, где каждая транзакция по умолчанию использует кольцевые подписи и обязательства по сумме. Многие пользователи используют EIP-5564 как «первый прыжок» для приёма, а потом конвертируют в XMR для хранения и дальнейших трат.

Нужно ли мне отдавать приватные ключи провайдеру кошелька, чтобы пользоваться стелс-адресами?

Нет, но придётся отдать приватный ключ просмотра тому софту, который сканирует входящие платежи. Ключ просмотра даёт только возможность обнаруживать платежи, но не тратить их. Приватный ключ траты — тот, что может двигать средства — может оставаться на аппаратном кошельке или в холодном хранилище. Это та же архитектура, что и в Monero: watch-only кошелёк на постоянно работающем сервере с ключом просмотра и холодный кошелёк для подписи транзакций ключом траты.

Почему EIP-5564 иногда называют «стелс-предложением Виталика»?

Потому что Виталик Бутерин опубликовал первоначальный черновик в посте «An incomplete guide to stealth addresses» в январе 2023 года, и именно этот пост запустил формальную стандартизацию, которая стала EIP-5564. Сама криптография гораздо старше: white paper Николаса ван Сабурхагена «CryptoNote» представил одноразовые адреса в 2013 году, а Monero запустил их в 2014. Заслуга Виталика — в том, что он популяризировал эту конструкцию внутри Ethereum и сделал её политически приемлемой как опциональный стандарт, а не как хардфорк-изменение.

Можно ли использовать стелс-адреса на Layer 2, например на Base или Arbitrum?

Да. Канонический контракт Announcer из EIP-5564 развёрнут по одному и тому же адресу на каждом крупном EVM L2 — Base, Optimism, Arbitrum One, Polygon PoS и Gnosis Chain. И Umbra, и Fluidkey поддерживают стелс-платежи между роллапами. Комиссии за стелс-платежи на L2 в 2026 году обычно укладываются в $0,05, что делает стоимость сканирования незаметной для конечного пользователя и убирает одну из главных точек трения, с которой стандарт жил в mainnet в 2024 году.

Как сравнить стоимость сканирования со стоимостью работы кошелька Monero?

Сопоставимо — благодаря общей оптимизации view-tag. Типичный сканер EIP-5564 читает 1 байт каждого анонса и считает полное эллиптическое преобразование только для тех ~0,4%, что прошли фильтр по view-tag. Monero добавил тот же трюк в 2022 году; обе экосистемы независимо позаимствовали идею из более ранних исследований Zcash. На обычном железе год анонсов EIP-5564 на Ethereum mainnet сканируется за несколько секунд — быстрее, чем синхронизация свежего кошелька Monero.

Что произойдёт, если я потеряю ключ просмотра, но ключ траты у меня остался?

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

Заключение

EIP-5564 — самое прагматичное улучшение приватности из всего, что Ethereum выкатил со времён Tornado Cash. Это реальный криптографический примитив, а не маркетинговая наклейка, и он чисто ложится на разделение View key и Spend key, которое Monero доказал на масштабе десятилетием раньше. Для платежей, пожертвований, зарплат и NFT-дропов он убирает самый разрушительный сигнал наблюдения в Ethereum — устойчивую идентичность принимающего адреса. Но он не скрывает ни отправителей, ни суммы, и в момент, когда вы консолидируете стелс-выходы в прозрачный адрес, вы отдаёте обратно большую часть только что добытой приватности. Правильная ментальная модель — «стелс-адреса это приватный примитив, а не приватный продукт». Если ваша цель — полная взаимозаменяемость средств, где выходы выглядят одинаково на уровне протокола, суммы не видны, а отправители не отслеживаются, чище всего такая цепочка: принять на стелс-адрес, а затем прогнать через MoneroSwapper, чтобы без KYC сконвертировать ETH в XMR на свежий Monero Subaddress. Дальше за дело берутся кольцевые подписи, Bulletproofs и распространение через Dandelion++, а ваш он-чейн след заканчивается там, где закончился стелс-адрес.