EIP-6963 旨在简化用户同时使用多个钱包时的用户 UI 体验问题。
Metamask 是浏览器钱包的先驱,它由 Consensys 于 2016 年开发。此后,在上一个牛市周期中开发了一系列钱包扩展。值得一提的有 Trust、WalletConnect、Zerion、Rainbow、Phantom、Talisman、Brave、Coinbase 等。每个钱包针对不同的区块链社区和用例。其中一些还支持多链操作。
如果你是加密货币爱好者和区块链支持者,你可能会发现自己需要在浏览器中使用两个或更多钱包。也许是为了获得空投或其他原因。这就是 EIP-6963 的用武之地。EIP-6963 旨在简化以太坊钱包提供者(Provider),并增强用户的 UI 体验。
要了解 EIP-6963 的影响和重要性,我们必须看看它的前身 EIP-1193。它概述了 DApp 和钱包如何连接的方法。钱包将注入一个名为 window.ethereum 的函数以加载到 DApp 中。这就引发了一个竞争条件问题,通常后加载的那个会胜出。
这种竞争条件阻碍了用户体验。如果你在浏览器中有两个或更多钱包,你可能会遇到无法加载你想要的钱包的问题。而是随机选择一个钱包或胜出的那个钱包。你可能经常会从 Chrome 扩展管理器中禁用一个扩展,然后你喜欢的钱包就会加载并连接到 DApp。
提出了一个新的 EIP 来解决这个问题。它旨在优化多个钱包Provider的互操作性。这个解决方案旨在通过减少新钱包Provicer的进入壁垒来促进更公平的竞争,同时增强以太坊网络上的用户体验。基本上,使用特定钱包的决定现在掌握在用户手中。DApps 将列出浏览器中存在的钱包,用户可以根据自己的选择进行交互。
每个钱包提供商(Provicer)将通过以下接口 EIP6963ProviderInfo 发布信息:
/**
* 表示显示钱包所需的资源
*/
interface EIP6963ProviderInfo {
uuid: string;
name: string;
icon: string;
rdns: string;}
DApps 和钱包预计会发出一个事件并实例化一个 eventListener 以发现各种钱包。
DApp 必须通过 window.addEventListener() 方法监听钱包传递的 EIP6963AnnounceProviderEvent。EIP-6963 向后兼容,如果钱包仍在考虑升级或不想升级,也不会受到影响。
钱包端:
DApp 端:
总体而言,EIP-6963 将在用户与 DApps 交互的体验中带来革命性变化,并将允许新玩家进入钱包领域,与其他钱包公平竞争。在追求新实现的过程中,应牢记安全考虑,通常安全性被忽视,以实现新的事物。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!