Приватность в Web3: тест пяти кошельков на утечку данных

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

Приватность в Web3: тест пяти кошельков на утечку данных

Но в этот момент ваш IP-адрес, адрес кошелька, время запроса и характеристики браузера могут попасть на несколько сторонних серверов. Часть данных получает RPC-провайдер, часть — сам сайт, часть — встроенные аналитические инструменты.

Это не обязательно означает взлом и не всегда выглядит как одна большая утечка. Чаще речь идёт о цепочке технических событий, которую пользователь не видит: кошелёк отправляет запрос через удалённый узел, сайт фиксирует подключение, браузер сохраняет идентификаторы, а блокчейн навсегда оставляет публичный след транзакции.

Обещание Web3 звучит красиво: вы сами владеете ключами, посредник не хранит ваши активы, а адрес можно не связывать с паспортом. На практике некастодиальность отвечает только на вопрос, кто контролирует приватный ключ. Она не отвечает на вопрос, кто видит ваш IP, какие сайты вы посещаете, как связываются ваши адреса и кому достаётся история запросов.

Блокчейн псевдонимный. Всё вокруг блокчейна — не обязательно.

Что утекает с каждым кликом

Когда вы нажимаете «Connect Wallet» на сайте децентрализованного приложения, в фоновом режиме запускается цепочка технических событий. Каждое из них — точка, в которой реальный мир начинает пересекаться с псевдонимным блокчейном.

IP-адрес и RPC-запросы

Кошелёк редко общается с блокчейном напрямую. Обычно он обращается к RPC-узлу — удалённому сервису, который принимает запросы, отправляет их в сеть и возвращает результат приложению.

Такой сервис может видеть сетевые метаданные запроса: IP-адрес, время обращения, тип операции, используемую сеть и технические параметры. В зависимости от реализации и содержания запроса провайдер может получить и данные, позволяющие связать запрос с конкретным блокчейн-адресом.

Это не означает, что любой RPC-провайдер автоматически знает имя пользователя. Но связка «IP — адрес — время — повторяющиеся действия» уже достаточно полезна для анализа. Если тот же IP когда-то использовался для входа на централизованную биржу, в платёжный сервис или в аккаунт с KYC, риск сопоставления возрастает.

В 2022 году вокруг MetaMask и Infura отдельно обсуждалась именно такая модель сбора данных. В документации и разъяснениях ConsenSys указывалось, что при использовании стандартной инфраструктуры могут обрабатываться IP-адрес и адрес кошелька. Позже в MetaMask появились настройки, позволяющие менять сетевые параметры и отключать часть встроенных сервисов. Это важное исправление, но не универсальное решение: пользователь должен сам его применить, а доступные настройки зависят от версии приложения и конкретной сети.

Публичный адрес

Адрес кошелька не является секретом. Он нужен, чтобы получать активы, участвовать в протоколах и проверять транзакции. Проблема начинается тогда, когда адрес связывается с дополнительным контекстом.

Сайт может узнать адрес после подключения кошелька. RPC-провайдер видит запросы кошелька. Блокчейн-обозреватель показывает историю операций. Аналитический сервис группирует активность по адресам и ищет связи между ними. Отдельно взятые фрагменты могут казаться безобидными, но вместе они превращаются в профиль поведения:

  • какие токены вы покупаете;
  • какими протоколами пользуетесь;
  • в какое время обычно совершаете операции;
  • с каких адресов переводите средства;
  • какие кошельки могут принадлежать одному пользователю;
  • взаимодействуете ли вы с централизованными биржами и мостами.

Здесь важно различать публичность и идентификацию. Публичный адрес виден всем, но это ещё не имя и не паспорт. Однако чем больше внешних данных к нему привязано, тем меньше остаётся анонимности.

Браузерные трекеры

Кошелёк — только одна часть маршрута. Сам dApp работает в браузере и может использовать обычные веб-технологии: cookies, локальное хранилище, пиксели, сторонние скрипты, системы аналитики и рекламные фреймы.

Такие инструменты не получают приватный ключ. Он остаётся внутри кошелька и должен использоваться только для подписи операций. Но сайту могут быть доступны адрес, история действий на странице, идентификаторы сессии, версия браузера, язык системы, размер экрана и другие признаки.

В результате подключение к dApp можно связать не только с адресом, но и с предыдущими посещениями сайта. Если на странице работает внешняя аналитика, часть событий может уйти поставщику этой системы. Пользователь при этом видит знакомую кнопку подключения, а не список всех серверов, которым разрешено собирать технические данные.

Метаданные транзакции

Сумма, токен, сеть, комиссия, время и взаимодействующий контракт записываются в блокчейн или становятся доступными из сетевых запросов. Эти сведения не являются персональными сами по себе, но позволяют точно описать действие.

Сочетание блокчейн-данных с IP, временем запроса и браузерным профилем даёт гораздо больше, чем каждый источник по отдельности. Например, аналитик может увидеть, что один и тот же пользователь регулярно открывает определённый dApp, подписывает операции с одного адреса и делает это с похожего сетевого окружения.

Где именно ломается приватность

Утечка персональных данных через криптокошелек редко происходит в одной точке. Обычно это несколько независимых каналов, и у каждого свой владелец.

RPC по умолчанию

Главный вопрос при проверке кошелька — не только название провайдера, но и то, какие запросы через него проходят и какие настройки доступны пользователю.

У одного приложения может быть один заранее заданный RPC. У другого — несколько региональных узлов или собственная инфраструктура. В мобильной и браузерной версиях одного и того же кошелька поведение тоже может отличаться. Кроме того, отдельные сети используют собственные endpoint-ы, которые нельзя заменить тем же способом, что RPC для Ethereum.

Поэтому фраза «кошелёк использует собственную инфраструктуру» сама по себе ничего не говорит о политике хранения логов. Собственный сервер не равен приватному серверу. Точно так же внешний провайдер не обязательно злоупотребляет данными. Нужно смотреть, кто принимает запрос, какие сведения собираются, как долго они хранятся и можно ли выбрать другой маршрут.

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

Подключение к dApp

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

Здесь есть два разных уровня:

1. Сессия подключения. Сайт видит, что кошелёк подключён, и может запрашивать доступные ему данные в рамках интерфейса.

2. On-chain-разрешение. Смарт-контракт получает allowance или другое разрешение на работу с токенами. Оно записывается в блокчейн и не исчезает только потому, что пользователь закрыл вкладку или нажал Disconnect.

Именно поэтому Disconnect нельзя считать универсальной кнопкой очистки. Он может завершить текущую сессию, но не обязан отзывать выданные контракту права и не стирает уже собранные сайтом журналы.

Скрытые запросы и фоновые компоненты

Веб-кошелек работает внутри браузера и взаимодействует с расширением, страницей dApp и сетевыми сервисами. Чем сложнее архитектура, тем больше мест, где могут появляться технические запросы.

Сайт может продолжать отправлять события аналитики до закрытия вкладки. Расширение может обращаться к своим сервисам для проверки фишинга, отображения балансов, оценки комиссии или получения данных токенов. В некоторых сценариях запрос выполняется не тогда, когда пользователь нажимает кнопку, а при открытии страницы или смене сети.

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

Поддержка и восстановление доступа

Самый простой способ потерять приватность — добровольно отправить её в службу поддержки.

Переписка с саппортом может содержать email, имя, скриншоты баланса, адреса, идентификаторы устройства и описание операций. В 2023 году у подрядчика, обслуживавшего поддержку MetaMask, произошёл инцидент с данными пользователей, обращавшихся в саппорт. Такой случай показывает, что риски возникают не только в блокчейне и не только в RPC-инфраструктуре.

Seed-фраза и приватный ключ не нужны сотруднику поддержки ни для диагностики, ни для «разблокировки» кошелька. Запрос этих данных — признак мошенничества. Чем меньше лишней информации пользователь отправляет в тикет, тем меньше последствий у возможной компрометации системы поддержки.

Что можно и чего нельзя утверждать о пяти кошельках

Сравнение MetaMask, Rabby, Trust Wallet, Coinbase Wallet и Phantom часто превращают в таблицу с категоричными галочками. Такой подход выглядит удобно, но вводит в заблуждение. У кошельков меняются версии, сети, приложения и региональные настройки. Наличие пункта меню ещё не означает, что он одинаково работает во всех сценариях.

Поэтому корректнее разделять подтверждённые свойства, вероятное поведение и то, что требует отдельной проверки.

ПараметрMetaMaskRabbyTrust WalletCoinbase WalletPhantom
RPC по умолчаниюВ ряде сценариев используется инфраструктура Infura; настройки зависят от версии и сетиКонкретный маршрут зависит от версии, сети и настроекНужно проверять отдельно для мобильного приложения и расширенияЗависит от сети и реализации приложенияЗависит от сети и реализации приложения
Можно ли изменить RPCДля поддерживаемых сетей такая возможность предусмотрена, но не является одинаковой для всех цепочекВозможности зависят от сети и версииНужна проверка в конкретной версии приложенияНужна проверка в конкретной версии приложенияНужна проверка в конкретной версии приложения
Disconnect отзывает on-chain-разрешенияНет: разрешения нужно проверять отдельноНет: разрешения нужно проверять отдельноНет: разрешения нужно проверять отдельноНет: разрешения нужно проверять отдельноНет: разрешения нужно проверять отдельно
Сторонние сервисы и аналитикаМогут использоваться встроенные сервисы и сетевые провайдеры; состав меняетсяСостав зависит от приложения и его настроекЗависит от версии и платформыЗависит от версии и платформыЗависит от версии и платформы
Автоматическая связь с KYCСамо наличие кошелька не создаёт KYC-связьАвтоматическая связь не следует из использования кошелькаАвтоматическая связь не следует из использования кошелькаВозможна при добровольной идентификации и действиях внутри экосистемы, но не возникает из одного факта владения аккаунтом CoinbaseАвтоматическая связь не следует из использования кошелька

Такая таблица менее эффектна, чем набор уверенных «да» и «нет», зато не выдаёт предположение за результат лабораторного теста.

MetaMask

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

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

Rabby

Rabby ориентирован на пользователей, которые часто работают с DeFi и несколькими EVM-сетями. В нём больше внимания уделено предупреждениям перед подписью и отображению последствий операции. Это повышает безопасность транзакции, но не превращает кошелёк в инструмент анонимизации.

Проверка адреса контракта перед подписью защищает от одной группы рисков. Она не скрывает IP от RPC-провайдера, не запрещает dApp вести журнал посещений и не отзывает ранее выданные allowances.

Trust Wallet

У Trust Wallet особенно важно не смешивать мобильную версию и браузерное расширение. У них могут отличаться доступные настройки, сетевые маршруты и поведение при работе с dApp.

Мобильный интерфейс часто создаёт ощущение изолированности: пользователь видит приложение, а не веб-страницу со скриптами. Но запросы всё равно проходят через сетевую инфраструктуру, а подключённый dApp может собирать доступные ему данные. Для оценки приватности нужно смотреть не только на экран кошелька, но и на весь маршрут операции.

Coinbase Wallet

Coinbase Wallet нельзя автоматически приравнивать к аккаунту Coinbase. Наличие профиля на централизованной бирже само по себе не означает, что любой некастодиальный адрес пользователя автоматически привязан к его KYC-данным.

Связь может возникнуть, если пользователь сам переводит средства между идентифицированным аккаунтом и адресом, использует функции экосистемы, которые требуют авторизации, или оставляет достаточно других связующих следов. Это уже конкретный сценарий, а не неизбежное свойство любого адреса в Coinbase Wallet.

Для пользователя, который хочет жёстко разделять централизованную и on-chain-активность, такая экосистема требует особой дисциплины. Но утверждать, что один только аккаунт Coinbase раскрывает компании все адреса кошелька, нельзя.

Phantom

Phantom начинал как кошелёк для Solana, а затем расширил поддержку других сетей. Для каждой из них могут использоваться разные сетевые механизмы и разные ограничения.

Даже если кошелёк не использует Infura, это не означает отсутствия утечек. dApp по-прежнему контролирует собственный сайт, аналитические скрипты и серверную часть. Кошелёк защищает ключи и подписывает операции, но не может заставить внешний сайт забыть факт подключения.

Кошелёк может защищать приватный ключ и при этом плохо защищать контекст, в котором вы им пользуетесь.

Как провести проверку самому

Тест приватности web3-кошельков имеет смысл проводить не по рекламному описанию, а по конкретному сценарию. Важно заранее разделить то, что кошелёк показывает пользователю, и то, что видит сетевой провайдер.

1. Определите, кто принимает RPC-запрос

Откройте настройки сети и посмотрите endpoint, если приложение позволяет это сделать. Проверьте не только Ethereum, но и сети, которыми вы реально пользуетесь. Для мобильных кошельков отдельно проверьте приложение и встроенный браузер.

Нужно учитывать:

  • можно ли заменить endpoint;
  • сохраняется ли выбор после перезапуска;
  • применяется ли он ко всем сетям;
  • используются ли отдельные сервисы для балансов, цен и симуляции транзакций;
  • не возвращается ли приложение к стандартному маршруту после обновления.

Если endpoint нельзя изменить, это не обязательно делает кошелёк непригодным. Но тогда приватность зависит от политики конкретного провайдера и от дополнительных мер вроде VPN или собственного узла.

2. Разделите Disconnect и отзыв разрешений

После подключения к dApp нажмите Disconnect, а затем отдельно проверьте allowances через обозреватель сети или специализированный сервис. Эти действия решают разные задачи.

Disconnect закрывает интерфейсную сессию. Отзыв allowance меняет состояние смарт-контракта в блокчейне и обычно требует отдельной транзакции. Одно не заменяет другое.

Не стоит отзывать все разрешения бездумно: каждая операция требует комиссии, а некоторые контракты используются постоянно. Но старые разрешения для неизвестных или давно забытых протоколов лучше регулярно пересматривать.

3. Проверьте, что видит сам сайт

Подключение к dApp — это не только вызов кошелька. Сайт может записывать время визита, IP, user agent, события интерфейса и адрес, который возвращает кошелёк.

Для чувствительных операций полезно:

  • не использовать основной браузерный профиль;
  • ограничивать сторонние cookies и скрипты;
  • не входить параллельно в банковские и биржевые аккаунты;
  • не открывать ссылку на dApp из публичного профиля, где уже есть ваши идентификаторы;
  • проверять домен вручную, а не переходить по случайной рекламе.

Эти меры не делают пользователя невидимым. Они уменьшают количество связей, которые сайт может построить автоматически.

4. Смотрите, что отправляется в поддержку

Не прикладывайте к тикету seed-фразу, приватный ключ и лишние скриншоты. Если адрес нужен для диагностики, отправляйте только тот адрес, который действительно относится к проблеме. Баланс и история операций часто не имеют отношения к вопросу.

Для поддержки лучше использовать отдельный email, если это не мешает проверке аккаунта. Но отдельный email сам по себе тоже не создаёт анонимность: его могут связать с другими данными по IP, устройству или содержанию переписки.

Практические меры без ложных гарантий

Приватность в Web3 строится слоями. Ни один из них не закрывает все каналы сразу.

Смените сетевой маршрут

Если кошелёк позволяет выбрать RPC, используйте провайдера, которому готовы доверять, или собственную инфраструктуру. Узел может снизить зависимость от одного централизованного сервиса, но не отменяет другие источники метаданных.

VPN скрывает домашний IP от RPC-провайдера и dApp, однако сам VPN становится новым участником маршрута. Tor добавляет больше анонимности, но может быть неудобен для некоторых сетей, а задержки и блокировки делают его непрактичным для части операций.

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

Разделите кошельки по ролям

Один адрес для хранения, DeFi, тестовых протоколов и раздач — плохая идея не только с точки зрения безопасности, но и с точки зрения приватности. Если адрес связан с одной публичной активностью, аналитик получает контекст для всей остальной истории.

Разделение на роли помогает ограничить ущерб:

  • холодное хранение — для долгосрочных активов;
  • отдельный горячий кошелёк — для регулярных операций;
  • тестовый адрес — для неизвестных или экспериментальных dApp;
  • публичный адрес — только для тех действий, которые вы готовы связывать со своей открытой активностью.

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

Используйте отдельный профиль браузера осторожно

Отдельный профиль в Firefox, Brave или другом браузере действительно ограничивает пересечение cookies, локального хранилища и истории между банковским входом и кошельком. Это снижает риск простого связывания сессий.

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

Корректная формулировка здесь — «снижает риск», а не «не даёт трекерам связать». Для усиления изоляции нужны дополнительные меры: отдельное сетевое подключение, ограничение скриптов, VPN или Tor и отказ от входа в связанные аккаунты в той же среде.

Приватное окно решает ещё более узкую задачу. Оно очищает часть локальных данных после закрытия, но не скрывает запросы от сайта, RPC-провайдера, интернет-провайдера или VPN-сервиса.

Не подписывайте непонятные сообщения

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

Перед подписью нужно проверить:

  • домен dApp;
  • сеть и адрес контракта;
  • тип операции;
  • сумму и токен;
  • наличие unlimited allowance;
  • возможность отозвать разрешение позже;
  • не просит ли сайт seed-фразу или приватный ключ.

Аппаратный кошелёк защищает ключ от кражи через вредоносный сайт, но не спасает от осознанной подписи опасной операции. Это инструмент защиты ключа, а не фильтр всей веб-активности.

Итоги

Пять популярных кошельков не образуют простую лестницу от «приватного» к «неприватному». MetaMask имеет развитые настройки, но многое зависит от ручной конфигурации. Rabby делает акцент на предупреждениях и анализе подписей, но не отменяет архитектурные ограничения EVM. Trust Wallet нужно оценивать отдельно на мобильной платформе и в расширении. Coinbase Wallet не создаёт автоматическую KYC-связь одним фактом существования аккаунта Coinbase, но действия внутри общей экосистемы могут связать адрес с идентифицированным профилем. Phantom не освобождает от анализа dApp и сетевых сервисов только потому, что ориентирован на другую экосистему.

Главный риск — не в том, что кошелёк внезапно отправит кому-то приватный ключ. Такой сценарий был бы прямой компрометацией. Гораздо чаще речь идёт о менее заметных данных: IP-адресе, адресе кошелька, времени запроса, браузерных идентификаторах, истории подключений и on-chain-разрешениях.

Если нужно снизить риск, начните с нескольких практических шагов: проверьте RPC для используемых сетей, разделите кошельки по ролям, не путайте Disconnect с отзывом разрешений, изолируйте dApp от основного браузерного профиля и не связывайте без необходимости on-chain-адреса с KYC-сервисами.

При этом важно не обещать себе невозможного. Отдельный браузерный профиль не делает пользователя невидимым. VPN не отменяет доверие к VPN-провайдеру. Собственный RPC не убирает трекеры на сайте. Новый кошелёк не становится независимым, если его регулярно пополняют с идентифицированного аккаунта и используют в тех же сессиях.

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

Частые вопросы

Почему кнопка Disconnect не гарантирует безопасность?
Disconnect завершает интерфейсную сессию с сайтом, но не отзывает on-chain-разрешения, выданные смарт-контрактам, которые продолжают действовать в блокчейне.
Может ли RPC-провайдер узнать мой IP-адрес?
Да, при отправке запросов к блокчейну через удаленный узел провайдер видит сетевые метаданные, включая IP-адрес, время обращения и тип операции.
Связан ли мой кошелек Coinbase Wallet с аккаунтом на бирже автоматически?
Нет, владение кошельком не создает автоматическую связь с KYC-данными биржи, однако она может возникнуть при переводе средств между ними или использовании общих сервисов экосистемы.
Как защитить приватность при работе с dApp?
Рекомендуется использовать отдельные профили браузера, ограничивать сторонние скрипты, проверять RPC-настройки и не входить в банковские или биржевые аккаунты в той же среде.
Нужно ли отзывать все разрешения после каждого использования dApp?
Отзывать все разрешения бездумно не стоит, так как это требует оплаты комиссии, однако важно регулярно проверять и удалять права доступа для неизвестных или давно забытых протоколов.