EIP-6963 旨在增强多个钱包提供商的互操作性,降低新提供商的进入门槛,并改善以太坊网络上的用户体验。
原文标题:Overview of EIP-6963: A Possible Solution for Multiple Wallet Conflict
原文作者:Mundus Security Blogs
编译:Lynn,MarsBit
最近提出的 EIP-6963 旨在提供一个解决方案,以解决当用户试图在一个单一的网络浏览器中使用多个钱包供应商时出现的冲突问题。在这种情况下,这些冲突的钱包会导致用户体验下降,阻碍用户对其以太坊界面的控制,并使与 dApp 互动的过程变得复杂。原始提案文档可以在这里找到:https://eips.ethereum.org/EIPS/eip-6963
目前,提供浏览器扩展的钱包提供商必须(根据 EIP-1193 标准)将其以太坊提供商注入浏览器的 window.ethereum 对象。这种机制给安装了多个浏览器扩展的用户带来了挑战。浏览器扩展以不可预测和不稳定的顺序加载到网页上,导致了一个竞赛条件,即用户缺乏对控制 window.ethereum 对象下的 Ethereum 接口的钱包提供商的选择的控制权。最后加载的钱包提供者通常是控制接口的那个。最后加载的钱包供应商通常是控制界面的那个。
为了解决这个问题,EIP-6963 为 EIP-1193 供应商提出了 window.ethereum 的替代发现机制。该建议引入了一套窗口事件,使 Ethereum 库和浏览器扩展提供的注入脚本之间有一个双向的通信协议。这个解决方案优化了多个钱包提供商的互操作性,减少了新钱包提供商的进入壁垒,改善了以太坊网络的用户体验。
该提案概述了一个标准化的提供者信息接口(EIP6963ProviderInfo),这对于填充钱包选择弹出式窗口至关重要。它还强调了已公布的提供者接口(EIP6963ProviderDetail)的重要性,为了向后兼容,它没有触及 EIP-1193 提供者接口。
提供商信息界面中的关键属性是:
在事件方面,Ethereum 库和钱包提供商都使用 window.dispatchEvent 函数来发射事件,window.addEventListener 来观察事件。当以太坊库初始化时,它发出”eip6963:requestProvider”事件,而钱包提供商发出”eip6963:announceProvider”事件,以及其提供商接口和信息的细节。
根据乐观的估计,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 提出了几个应该考虑的安全问题。
优点
缺点
EIP-6963 旨在增强多个钱包提供商的互操作性,降低新提供商的进入门槛,并改善以太坊网络上的用户体验。此外,对安全的影响是复杂的。用户、钱包提供商和以太坊库开发人员必须遵守最佳实践,以确保以太坊生态系统保持安全。通过实施该提案,以太坊生态系统可以为钱包提供商及其用户提供一个更加用户友好和更具竞争力的环境。