最近提出的 EIP-6963 旨在解決用戶在單個 Web 瀏覽器中嘗試使用多個錢包提供程序時出現的衝突問題。在這種情況下,這些衝突問題可能會導致用戶體驗下降,阻礙用戶對其以太坊界面的控制,並使與 dApp 交互的過程復雜化。
問題簡介
目前,提供瀏覽器擴展的錢包提供程序必須將們的以太坊提供程序(根據 EIP-1193 標准)注入到瀏覽器的 window.ethereum 對象中。這種機制對安裝了多個瀏覽器擴展的用戶來說造成了一種問題。瀏覽器擴展以不可預測和不穩定的順序加載到網頁中,導致用戶無法自主選擇 window.ethereum 對象中的以太坊的錢包。通常,最後加載的錢包是彈出控制頁面那個。
EIP-6963:提出的解決方案
爲了解決這個問題,EIP-6963 提出了一種替代 window.ethereum 的 EIP-1193 提供程序的現機制。該提案引入了一組窗口事件,使以太坊庫和瀏覽器擴展提供的注入腳本之間能夠進行雙向通信協議。這個解決方案優化了多個錢包提供程序之間的互操作性,降低了新錢包提供程序的准入門檻,並改善了以太坊網絡上的用戶體驗。
該提案概述了一個標准化的提供程序信息接口(EIP6963ProviderInfo),這對於填充錢包選擇彈出窗口至關重要。它還強調了宣布提供程序接口(EIP6963ProviderDetail)的重要性,這使得 EIP-1193 提供程序接口保持不變,以保證向後兼容性。
提供程序信息接口中的關鍵屬性包括:
- walletId:錢包提供程序的全局唯一標識符(例如,io.dopewallet.extension 或 awesomewallet)。
- uuid:符合 UUID v4.0 的錢包提供程序的本地唯一標識符。
- name:錢包提供程序的人類可讀名稱(例如,DopeWalletExtension 或 Awesome)。
- 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 提出了一些需要考慮的安全問題。
優點:
- 沒有單點故障:通過允許多個錢包提供商,我們消除了單點故障的問題。這在安全方面是有益的,因爲這意味着如果一個錢包提供商遭受攻擊或技術故障,用戶有可用的替代選擇。
- 減少對單個提供商的依賴:目前,以太坊社區嚴重依賴於一個提供商,MetaMask。這會帶來潛在的風險,因爲如果 MetaMask 被攻擊,大部分以太坊用戶將受到影響。通過支持多個錢包,EIP-6963 分散了風險。
- 增強用戶控制:選擇多個錢包提供商的能力使用戶對自己的安全擁有更大的控制權。用戶可以選擇與其個人安全偏好和信任水平相符的錢包提供商。
缺點:
- 增加攻擊面:實施 EIP-6963 會增加攻擊面。這是由於可以被惡意行爲者攻擊的錢包提供商數量增加。每個錢包提供商都應遵守高安全標准,以最小化這種風險。
- SVG 圖像利用的潛在風險:EIP-6963 提議使用 SVG 圖像作爲錢包提供商的圖標。然而,SVG 圖像可能包含 JavaScript 代碼,可能會帶來跨站腳本(XSS)風險。雖然 EIP 確實指定 SVG 圖像應使用標籤呈現以防止 JavaScript 執行,但這個建議只能由第三方或每個實現的審計員進行驗證。
- 取代 window.ethereum 的影響:雖然 EIP 沒有直接通過取代 window.ethereum 來破壞現有應用,但它建議在用戶選擇錢包後這樣做。此建議只能由第 3 方或審計員在每次實施中驗證。
結論
EIP-6963 旨在增強多個錢包提供商之間的互操作性,降低新提供商的准入門檻,並改善以太坊網絡上的用戶體驗。同時,對於安全性的影響是復雜的。
用戶、錢包提供商和以太坊庫开發人員必須遵守最佳實踐,以確保以太坊生態系統保持安全。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。