EIP-6963 旨在增强多个钱包提供商之间的互操作性,降低新提供商的准入门槛,并改善以太坊网络上的用户体验。
撰写:Mundus Security
编译:深潮 TechFlow
最近提出的 EIP-6963 旨在解决用户在单个 Web 浏览器中尝试使用多个钱包提供程序时出现的冲突问题。在这种情况下,这些冲突问题可能会导致用户体验下降,阻碍用户对其以太坊界面的控制,并使与 dApp 交互的过程复杂化。
目前,提供浏览器扩展的钱包提供程序必须将们的以太坊提供程序(根据 EIP-1193 标准)注入到浏览器的 window.ethereum 对象中。这种机制对安装了多个浏览器扩展的用户来说造成了一种问题。浏览器扩展以不可预测和不稳定的顺序加载到网页中,导致用户无法自主选择 window.ethereum 对象中的以太坊的钱包。通常,最后加载的钱包是弹出控制页面那个。
为了解决这个问题,EIP-6963 提出了一种替代 window.ethereum 的 EIP-1193 提供程序的现机制。该提案引入了一组窗口事件,使以太坊库和浏览器扩展提供的注入脚本之间能够进行双向通信协议。这个解决方案优化了多个钱包提供程序之间的互操作性,降低了新钱包提供程序的准入门槛,并改善了以太坊网络上的用户体验。
该提案概述了一个标准化的提供程序信息接口(EIP6963ProviderInfo),这对于填充钱包选择弹出窗口至关重要。它还强调了宣布提供程序接口(EIP6963ProviderDetail)的重要性,这使得 EIP-1193 提供程序接口保持不变,以保证向后兼容性。
提供程序信息接口中的关键属性包括:
在触发事件方面,以太坊库和钱包提供程序都使用 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 旨在增强多个钱包提供商之间的互操作性,降低新提供商的准入门槛,并改善以太坊网络上的用户体验。同时,对于安全性的影响是复杂的。
用户、钱包提供商和以太坊库开发人员必须遵守最佳实践,以确保以太坊生态系统保持安全。
通过实施这个提案,以太坊生态系统可以朝着更加用户友好和竞争环境的方向发展,既有利于钱包提供商,也有利于他们的用户。
深潮 TechFlow 是由社区驱动的深度内容平台,致力于提供有价值的信息,有态度的思考。
社区:
订阅频道:https://t.me/TechFlowDaily
推特:@TechFlowPost
进微信群添加助手微信:blocktheworld