Автор: Мундус Секьюрити
Составил: Shenchao TechFlow
Недавно предложенный EIP-6963 направлен на разрешение конфликтов, возникающих, когда пользователи пытаются использовать несколько поставщиков кошельков в одном веб-браузере. В этом случае эти противоречивые проблемы могут привести к ухудшению пользовательского опыта, затруднить контроль пользователей над интерфейсом Ethereum и усложнить процесс взаимодействия с dApps.
Введение проблемы
В настоящее время поставщики кошельков, предлагающие расширения для браузера, должны внедрить своего поставщика Ethereum (в соответствии со стандартом EIP-1193) в объект window.ethereum браузера. Этот механизм создает проблему для пользователей, у которых установлено несколько расширений браузера. Расширения браузера загружаются на веб-страницы в непредсказуемом и нестабильном порядке, не позволяя пользователям выбирать свой кошелек Ethereum в объекте window.ethereum. Обычно последний загруженный кошелек — это тот, при котором открывается страница управления.
EIP-6963: Предлагаемое решение
Чтобы решить эту проблему, EIP-6963 предлагает существующий механизм замены поставщика EIP-1193 для window.ethereum. В предложении представлен набор оконных событий, которые обеспечивают протокол двусторонней связи между библиотеками Ethereum и внедренными скриптами, предоставляемыми расширениями браузера. Это решение оптимизирует взаимодействие между несколькими поставщиками кошельков, снижает барьер входа для новых поставщиков кошельков и улучшает взаимодействие с пользователем в сети Ethereum.
В предложении описывается стандартизированный информационный интерфейс провайдера (EIP6963ProviderInfo), который необходим для заполнения всплывающих окон выбора кошелька. Он также подчеркивает важность объявления интерфейса поставщика (EIP6963ProviderDetail), который оставляет интерфейс поставщика EIP-1193 неизменным, чтобы гарантировать обратную совместимость.
Ключевые свойства интерфейса информации о поставщике включают в себя:
WalletId: глобальный уникальный идентификатор поставщика кошелька (например, io.dopewallet.extension или Awesomewallet). uuid: локальный уникальный идентификатор поставщика кошелька, совместимого с UUID v4.0. name: удобочитаемое имя поставщика кошелька (например, DopeWalletExtension или Awesome). значок: URI, указывающий на изображение, которое должно представлять собой квадрат с минимальным разрешением 96x96 пикселей. Рекомендуется использовать PNG и WebP или форматы векторных изображений, например SVG. Команда разработчиков решительно выступает против использования форматов с потерями, таких как JPG/JPEG.
Что касается запуска событий, и библиотека Ethereum, и поставщики кошельков используют функцию window.dispatchEvent для генерации событий и window.addEventListener для наблюдения за событиями. Когда библиотека Ethereum инициализируется, она генерирует событие «eip6963:requestProvider», а поставщик кошелька генерирует событие «eip6963:announceProvider», предоставляя подробную информацию об интерфейсе и информации своего провайдера.
Влияние EIP-6963
По оптимистичным оценкам, принятие и внедрение EIP-6963 может занять примерно от трех до шести месяцев. Такое развитие событий может привести к появлению новой истории кошельков к концу года, потенциально разрушая гегемонию ведущих поставщиков кошельков, таких как Metamask, и создавая более конкурентную среду среди поставщиков.
Ожидается, что от этой разработки выиграют такие кошельки, как Coin98, Coinbase Wallet, Trust Wallet, Phantom, Taho, Rabby, Frame, XDEFI, Rainbow, Zerion, Spot, Frontier, MEW, Dawn Wallet, Blockwallet, Bitski, SafePal, BitKeep и MathWallet. .
Плюсы и минусы:
EIP-6963 поднимает некоторые вопросы безопасности, которые следует учитывать.
преимущество:
Отсутствие единой точки отказа: разрешая использование нескольких поставщиков кошельков, мы устраняем проблему единой точки отказа. Это выгодно с точки зрения безопасности, поскольку означает, что если один провайдер кошелька подвергнется атаке или техническому сбою, у пользователей будут доступны альтернативы. Уменьшите зависимость от одного провайдера. В настоящее время сообщество Ethereum в значительной степени полагается на одного провайдера — MetaMask. Это представляет потенциальный риск, поскольку в случае атаки на MetaMask пострадает большая часть пользователей Ethereum. Поддерживая несколько кошельков, EIP-6963 снижает риск. Расширенный контроль пользователей: возможность выбирать нескольких поставщиков кошельков дает пользователям больший контроль над своей безопасностью. Пользователи могут выбрать поставщика кошелька, который соответствует их личным предпочтениям безопасности и уровням доверия.
недостаток:
Увеличение поверхности атаки. Реализация EIP-6963 увеличивает поверхность атаки. Это связано с увеличением количества провайдеров кошельков, которые могут быть атакованы злоумышленниками. Каждый поставщик кошельков должен придерживаться высоких стандартов безопасности, чтобы минимизировать этот риск. Потенциальные риски использования изображений SVG: EIP-6963 предлагает использовать изображения SVG в качестве значков для поставщиков кошельков. Однако изображения SVG могут содержать код JavaScript, который может создавать риски межсайтового скриптинга (XSS). Хотя в EIP указано, что изображения SVG должны отображаться с использованием тегов для предотвращения выполнения JavaScript, эта рекомендация может быть проверена только третьей стороной или аудитором каждой реализации. Влияние замены window.ethereum: Хотя EIP не нарушает работу существующих приложений напрямую, заменяя window.ethereum, рекомендуется делать это после того, как пользователи выберут кошелек. Эта рекомендация может быть проверена при каждой реализации только третьей стороной или аудитором.
в заключение
EIP-6963 направлен на улучшение взаимодействия между несколькими поставщиками кошельков, снижение барьера для входа новых поставщиков и улучшение пользовательского опыта в сети Ethereum. В то же время влияние на безопасность является комплексным.
Пользователи, поставщики кошельков и разработчики библиотек Ethereum должны придерживаться лучших практик, чтобы обеспечить безопасность экосистемы Ethereum.
Реализуя это предложение, экосистема Ethereum может перейти к более удобной для пользователей и конкурентной среде, что принесет пользу как поставщикам кошельков, так и их пользователям.
