Материал проверен 10 ноября 2026?
БК

ГЛАВНАЯ / ИНСТРУКЦИИ / EIP-6963: КАК DAPP НАХОДИТ НЕСКОЛЬКО РАСШИРЕНИЙ КОШЕЛЬКОВ

EIP-6963: как dApp находит несколько расширений кошельков

Когда в браузере установлено несколько Ethereum-кошельков, старый общий объект window.ethereum мог приводить к конфликту между расширениями. EIP-6963 предлагает событийный способ обнаружения нескольких injected providers: кошелёк объявляет сведения о себе и интерфейс EIP-1193, а dApp собирает варианты для выбора. Объявление позволяет приложению показать кошелёк, но само по себе не подключает аккаунт и не подтверждает подлинность расширения.

Проблема нескольких расширений

Общий window.ethereum не всегда показывает нужный кошелёк

До стандартизированного обнаружения dApp часто обращался к window.ethereum. Если расширений несколько, они могли конкурировать за один объект, и приложение не всегда понимало, какой кошелёк пользователь хочет выбрать. EIP-6963 вводит event-based discovery, позволяя собрать несколько предложений providers.

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

Событийный обмен

dApp запрашивает обнаружение, расширения объявляют provider

В кошельковом потоке используются события eip6963:requestProvider и eip6963:announceProvider. dApp сначала устанавливает обработчик объявления, затем отправляет запрос. Расширение отвечает событием с информацией о provider и объектом EIP-1193. Порядок запуска скриптов может различаться; повторный запрос помогает обработать ситуации, когда одна сторона загрузилась позже.

Информация о provider включает uuid, name, icon и rdns. UUIDv4 помогает различать объявления на странице, name предназначен для показа человеку, icon даёт URI изображения, а rdns содержит идентификатор в reverse-DNS форме. Ни одно из этих полей не является подписанным аттестатом магазина расширений.

  • requestProvider и announceProvider различены
  • provider metadata записаны отдельно
  • порядок событий обработан
ПолеРольОграничение проверки
uuidРазличает объявления providerНе доказывает издателя
nameНазвание для выбораМожет быть подменено
iconИзображениеНужно безопасное отображение
rdnsReverse-DNS идентификаторСамозаявлен и может быть неверным
Выбор и подключение

Сначала выберите provider, затем отдельно откройте доступ к аккаунту

DApp может использовать найденные EIP-6963 данные, чтобы показать пользователю несколько кошельков. После выбора приложение обращается к соответствующему provider по EIP-1193. Запрос аккаунта и последующие вызовы требуют отдельных действий пользователя и кошелька; одно объявление не раскрывает секретный ключ, но может участвовать в fingerprinting браузера.

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

  • выбран provider, а затем аккаунт
  • Connect считается отдельным шагом
  • домен проверен до доступа
Подмена и приватность

Метаданные помогают выбрать, но требуют независимой проверки

Спецификация предупреждает, что rdns может быть неизвестным, неверным или имитировать другого provider; его нельзя использовать как единственное средство feature detection или удостоверения кошелька. Повторяющиеся UUID, изменяемый provider object и неизвестные объявления требуют аккуратной обработки со стороны приложения.

Icon может быть data URI и потенциально содержать SVG. Безопасная реализация должна отображать его как изображение, не вставляя SVG-разметку в DOM. С точки зрения приватности расширения выбирают, когда объявляться: dApp может видеть наличие provider даже до открытия доступа к аккаунту. Не устанавливайте лишние расширения и ограничивайте их доступ к сайтам настройками браузера.

  • rdns не принят за сертификат
  • SVG показан безопасно
  • fingerprinting учтён
FAQ

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

EIP-6963 подключает кошелёк автоматически?

Нет. Он обнаруживает providers. Подключение аккаунта и запросы кошелька происходят отдельно.

rdns гарантирует официальный кошелёк?

Нет. Это self-attested строка, которую расширение задаёт самостоятельно.

Для чего uuid?

Чтобы различать объявления provider в течение жизни страницы; это не криптографическое удостоверение бренда.

Почему dApp не видит расширение?

Страница может не поддерживать EIP-6963, расширение может использовать другой поток или быть ограничено браузером.

Может ли обнаружение раскрыть приватный ключ?

Нет, сам provider discovery не передаёт приватный ключ. Однако наличие расширений может быть частью fingerprinting, а последующие запросы требуют отдельной оценки.

Итоговая проверка

Чек-лист: eip-6963: как dapp находит несколько расширений кошельков

  • расширение найдено через ожидаемый browser provider;
  • издатель проверен в официальном магазине;
  • rdns и логотип не приняты за сертификат;
  • dApp-домен проверен до Connect;
  • выбран нужный provider и аккаунт;
  • запрос доступа одобрен отдельно;
  • иконка отображается как image;
  • неизвестные расширения удалены или ограничены.

Материал подготовлен редакцией сайта и проверен 10 ноября 2026 года. Условия бирж, кошельков и блокчейн-сетей могут меняться. Перед операцией сверяйте данные в интерфейсе выбранного сервиса.