EIP-6963 概述:多钱包冲突的可能解决方案

EIP-6963 旨在增强多个钱包提供商之间的互操作性,降低新提供商的准入门槛,并改善以太坊网络上的用户体验。

撰写:Mundus Security

编译:深潮 TechFlow

最近提出的 EIP-6963 旨在解决用户在单个 Web 浏览器中尝试使用多个钱包提供程序时出现的冲突问题。在这种情况下,这些冲突问题可能会导致用户体验下降,阻碍用户对其以太坊界面的控制,并使与 dApp 交互的过程复杂化。

问题简介

目前,提供浏览器扩展的钱包提供程序必须将们的以太坊提供程序(根据 EIP-1193 标准)注入到浏览器的 window.ethereum 对象中。这种机制对安装了多个浏览器扩展的用户来说造成了一种问题。浏览器扩展以不可预测和不稳定的顺序加载到网页中,导致用户无法自主选择 window.ethereum 对象中的以太坊的钱包。通常,最后加载的钱包是弹出控制页面那个。

EIP-6963:提出的解决方案

为了解决这个问题,EIP-6963 提出了一种替代 window.ethereum 的 EIP-1193 提供程序的现机制。该提案引入了一组窗口事件,使以太坊库和浏览器扩展提供的注入脚本之间能够进行双向通信协议。这个解决方案优化了多个钱包提供程序之间的互操作性,降低了新钱包提供程序的准入门槛,并改善了以太坊网络上的用户体验。

该提案概述了一个标准化的提供程序信息接口(EIP6963ProviderInfo),这对于填充钱包选择弹出窗口至关重要。它还强调了宣布提供程序接口(EIP6963ProviderDetail)的重要性,这使得 EIP-1193 提供程序接口保持不变,以保证向后兼容性。

提供程序信息接口中的关键属性包括:

  1. walletId:钱包提供程序的全局唯一标识符(例如,io.dopewallet.extension 或 awesomewallet)。

  2. uuid:符合 UUID v4.0 的钱包提供程序的本地唯一标识符。

  3. name:钱包提供程序的人类可读名称(例如,DopeWalletExtension 或 Awesome)。

  4. icon:指向图像的 URI,应为 96x96px 的最小分辨率的正方形。建议使用 PNG 和 WebP 或矢量图像格式如 SVG。该提案团队强烈反对使用像 JPG / JPEG 这样的有损格式。

在触发事件方面,以太坊库和钱包提供程序都使用 window.dispatchEvent 函数来发出事件,并使用 window.addEventListener 来观察事件。当以太坊库初始化时,它会发出“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 提出了一些需要考虑的安全问题。

优点:

  1. 没有单点故障:通过允许多个钱包提供商,我们消除了单点故障的问题。这在安全方面是有益的,因为这意味着如果一个钱包提供商遭受攻击或技术故障,用户有可用的替代选择。

  2. 减少对单个提供商的依赖:目前,以太坊社区严重依赖于一个提供商,MetaMask。这会带来潜在的风险,因为如果 MetaMask 被攻击,大部分以太坊用户将受到影响。通过支持多个钱包,EIP-6963 分散了风险。

  3. 增强用户控制:选择多个钱包提供商的能力使用户对自己的安全拥有更大的控制权。用户可以选择与其个人安全偏好和信任水平相符的钱包提供商。

缺点:

  1. 增加攻击面:实施 EIP-6963 会增加攻击面。这是由于可以被恶意行为者攻击的钱包提供商数量增加。每个钱包提供商都应遵守高安全标准,以最小化这种风险。

  2. SVG 图像利用的潜在风险:EIP-6963 提议使用 SVG 图像作为钱包提供商的图标。然而,SVG 图像可能包含 JavaScript 代码,可能会带来跨站脚本(XSS)风险。虽然 EIP 确实指定 SVG 图像应使用<img>标签呈现以防止 JavaScript 执行,但这个建议只能由第三方或每个实现的审计员进行验证。

  3. 取代 window.ethereum 的影响:虽然 EIP 没有直接通过取代 window.ethereum 来破坏现有应用,但它建议在用户选择钱包后这样做。此建议只能由第 3 方或审计员在每次实施中验证。

结论

EIP-6963 旨在增强多个钱包提供商之间的互操作性,降低新提供商的准入门槛,并改善以太坊网络上的用户体验。同时,对于安全性的影响是复杂的。

用户、钱包提供商和以太坊库开发人员必须遵守最佳实践,以确保以太坊生态系统保持安全。

通过实施这个提案,以太坊生态系统可以朝着更加用户友好和竞争环境的方向发展,既有利于钱包提供商,也有利于他们的用户。

作者Mundus SecurityMundus Security
相关文章
2024.04.18 - 40 天前
Merlin 技术方案解读:它到底是怎么运转的?
让更多人理解 Merlin 的大致工作流程,对其安全模型有更清晰的认知。
2024.01.27 - 122 天前
解读BitVM:如何在BTC链上验证欺诈证明?(执行EVM或其他VM的操作码)
BitVM无需on chain的数据,先在链下发布并存储,链上只存放Commitment(承诺)。
2023.07.24 - 309 天前
全链游戏/自治世界(FOG/AW):游戏状态同步与技术挑战解析
对于完全运行在链上的游戏,区块链是游戏服务器并作为游戏状态的去中心化的信任源。
2023.07.24 - 309 天前
Rollup 升级背后的多签与委员会信任风险:L2 并不像许多人所想的那么“美好”
该如何降低多签和安全委员会带来的信任风险?
2023.06.27 - 336 天前
解读 zkSync 推出的 ZK Stack:L2 和 L3 齐头并进
ZK 技术解锁了现有非 ZK 解决方案无法实现的能力。
2023.06.25 - 338 天前
时间绑定代币:代币化的时限、所有权与收益,会给加密资产带来哪些新玩法?
时间绑定代币具体如何实现?又有哪些可实现的场景?
2023.06.01 - 362 天前
解读信标层:Rollup 网络安全与跨链转账的关键
本文探讨了以太坊Rollup网络中的Enshrined跨链桥以及AltLayer的信标层架构。
2023.05.30 - 364 天前
以钱包为中心,打造面向客户体验的技术栈
以钱包为中心的客户体验堆栈,是当前加密市场中最重要和最大的“挖掘”b2b 基础设施机会。
2023.05.27 - 367 天前
ZKML:将AI和区块链融合,实现隐私保护的模型部署技术
火热的ZKML到底是什么?
2023.05.17 - 377 天前
Flashbots、MEV 和激励重构:构建去中心化金融系统的追求
维护去中心化系统的健康始终需要持续、艰巨的努力——持续参与“打地鼠”的游戏。去中心化系统中的信任扩散需要责任和警惕的扩散,特别是因为有如此多的经济激励在质押中:无论是好是坏,MEV 始终存在。