淺析 EIP-6963:提高以太坊錢包互操作性、改善用戶體驗的一步

進階1/15/2025, 8:36:35 AM
EIP-6963 提出了一種新的標準,用於優化以太坊瀏覽器擴充錢包的發現和交互機制,旨在解決多錢包衝突、缺乏多服務支持及用戶體驗不直觀等問題。相比現有的 EIP-1193 標準,EIP-6963 引入了窗口事件和雙向通信協議,使 dApps 能更高效地識別和適配用戶的首選錢包。

EIP-6963 誕生的由來

在區塊鏈生態中,瀏覽器擴充錢包是一種通過瀏覽器插件形式存在的錢包應用,它讓用戶能夠方便地在 dApps 中直接操作區塊鏈賬戶,比如發送交易、簽署消息或與智能合約交互。最典型的例子是MetaMask,它幾乎成了使用以太坊生態dApp的標配工具。與傳統的應用程序不同,瀏覽器擴充錢包是嵌入瀏覽器環境的,這種方式簡化了用戶與區塊鏈的交互流程,消除了複雜的節點操作或私鑰管理的技術門檻。用戶只需安裝擴展,便能快速開始使用區塊鏈網絡。

在這個場景中,“服務提供者”指的是支持這些錢包功能的底層技術或接口。例如,錢包通過以太坊JSON-RPC協議與區塊鏈節點通信,而服務提供者則提供了相應的RPC接口,使錢包能安全地處理鏈上交互。

想象一下,你想使用一個去中心化交易平臺(DEX)或NFT市場,你打開了這個dApp的網站,滿心期待地開始操作。然而,問題來了——你的瀏覽器裝有多個錢包擴展,比如MetaMask、Coinbase Wallet和Brave Wallet,但dApp卻無法正確識別你當前使用的是哪個錢包,甚至直接彈出一個錯誤提示:未檢測到錢包,請安裝錢包擴展。你嘗試刷新頁面、重啟瀏覽器,但問題依舊存在。這個常見場景暴露了一個實際的問題:瀏覽器擴充錢包的識別與交互機制存在不足。隨著越來越多的錢包擴展和服務提供者湧現,用戶的體驗卻變得更加複雜和混亂。

為了解決錢包與dApp的交互問題,社區曾推出了EIP-1193(Ethereum JavaScript Provider API),這是一個通用的標準,定義了dApp如何通過瀏覽器環境與錢包進行通信。EIP-1193的核心思想是通過一個標準化的接口來處理錢包提供的區塊鏈功能。例如,dApp通過window.ethereum對象與錢包通信,發起請求或接收區塊鏈事件。

雖然EIP-1193一定程度上解決了錢包與dApp之間的兼容性問題,但它仍然存在一些明顯的侷限性:

  1. 多錢包衝突問題:當用戶同時安裝了多個瀏覽器擴充錢包時,EIP-1193默認將window.ethereum綁定到第一個被加載的錢包。結果,其他錢包可能無法被正確識別,甚至導致dApp完全無法使用。
  2. 缺乏多服務支持:許多dApp希望支持多種錢包,但EIP-1193沒有提供明確的機制來區分或選擇不同的服務提供者,這使得dApp開發者需要自行設計複雜的邏輯來適配。
  3. 不直觀的用戶體驗:對於普通用戶來說,他們很難理解“錢包未被檢測到”或“未正確連接”的錯誤提示背後的技術原因,這增加了使用門檻和挫敗感。

為解決這一問題,社區提出了EIP-6963(Browser Extension Wallet Discovery Standard),這是一種針對瀏覽器擴充錢包的改進方案,旨在優化錢包發現和交互的機制。該方案旨在降低新錢包供應商的進入門檻,促進更加公平的競爭,並改善以太坊網絡上的用戶體驗。具體來說,通過引入一組窗口事件,提供了一個雙向通信協議,使得以太坊庫與由瀏覽器擴展注入的腳本能夠進行交互。這將使用戶能夠根據自身需求選擇首選錢包,提升整體使用體驗。

代碼分析

反向 DNS(RDNS)

反向 DNS(RDNS)作為一種確保錢包提供商標識符穩定的機制,同時避免了命名空間衝突。EIP-6963還強調了反向 DNS 約定應遵循的規則,例如有效的域名格式和由提供商控制的域名部分。EIP-6963還強調 DApp 不應依賴 rdns 值進行功能檢測,避免出現偽造或不良激勵的情況。EIP6963 ProviderDetail 接口為 DApp 提供了錢包提供商的元數據,幫助進行與錢包的交互。

EIP6963ProviderDetail

EIP6963ProviderDetail是用於聲明和描述錢包提供商信息的接口,它通過包含 info(錢包元數據)和 provider(錢包提供商接口)屬性,使得 DApp 能夠獲取到關於錢包的詳細信息,並通過標準化接口與錢包進行交互。該接口是實現去中心化應用與多種錢包之間兼容和互操作性的基礎。

事件機制

事件機制是為了保證 DApp 和錢包能夠在沒有固定執行順序的情況下相互發現並進行交互。通過這種方式,DApp 和錢包之間的相互發現不受執行順序的影響,避免了衝突和錯誤。

事件類型

EIP6963AnnounceProviderEvent: 這是錢包用來宣佈自己存在的事件。它包含有關錢包的信息(EIP6963ProviderDetail)和錢包接口(EIP1193Provider)。此事件的 detail 屬性包含錢包的元數據,這些數據被凍結(通過 Object.freeze()),確保它們不可變。

EIP6963RequestProviderEvent: 這是 DApp 用來請求錢包提供商的事件。DApp 會通過這個事件通知錢包自己準備好了,並請求進行交互。

事件併發

由於 DApp 和錢包的代碼執行順序不確定,這可能導致競態條件。事件機制特別設計了這樣一種方式,確保 DApp 和錢包能夠在彼此發現時,正確處理事件。錢包可能會先發出公告事件,而 DApp 可能會在之後才準備好監聽該事件。為了確保這種情況不會導致錯誤,錢包會在初次公告事件後,重新觸發一次公告事件,從而保證 DApp 可以及時收到。

DApp 的事件處理

DApp 必須監聽 EIP6963AnnounceProviderEvent 事件,並且在頁面加載期間不要移除事件監聽器。這是為了確保 DApp 可以在生命週期內持續監聽並響應錢包的公告事件。DApp 還必須在處理完公告事件後,觸發 EIP6963RequestProviderEvent 來向錢包請求進一步的交互。

錢包發現與切換

DApp 可以保存多個錢包的 EIP6963ProviderDetail 對象,以便用戶可以在 DApp 中選擇不同的錢包進行交互。這為用戶提供了更大的靈活性,允許他們在不重新加載頁面的情況下切換錢包。

這一設計通過 EIP6963AnnounceProviderEvent 和 EIP6963RequestProviderEvent 實現 DApp 和錢包之間的無縫發現和交互。通過使用事件監聽和事件觸發,DApp 和錢包能夠在執行順序不確定的情況下協調工作,避免了競態條件,並確保了穩定的行為。DApp 還可以根據用戶需求切換錢包,提升了用戶體驗和錢包的互操作性。

向後兼容性

該 EIP 並不要求替代 window.ethereum,因此不會直接破壞那些無法更新為這種錢包發現方法的現有應用程序。然而,強烈建議 DApp 實現此 EIP,以確保能夠發現多個錢包提供商,並應當禁用 window.ethereum 的使用,除非在發現失敗時作為備用方法。類似地,錢包應該保持與 window.ethereum 的兼容性,以確保對未實現該 EIP 的 DApp 向後兼容。為了避免命名空間衝突的先前問題,建議錢包將其提供商對象注入到特定的錢包命名空間下,然後將該對象代理到 window.ethereum 命名空間中。

安全性設計

錢包提供商對象的原型汙染

瀏覽器擴展,尤其是錢包擴展,具備修改頁面內容和提供商對象的能力,這是其設計的核心功能之一。各種錢包的提供商對象被認為是高度可信的接口,用於傳輸交易數據。為了防止頁面或其他擴展意外地修改DApp與錢包之間的交互,最佳做法是在錢包通過eip6963:announceProvider事件派發之前,使用Object.freeze()方法凍結EIP1193Provider對象,從而確保該對象不可被修改。然而,在某些情況下,網頁兼容性可能要求對該對象進行修改。在這種情況下,錢包實現者需要在安全性和網頁兼容性之間做出權衡。

錢包偽造與篡改

DApp應當主動檢測錢包提供商對象的屬性或函數是否被篡改,以防止偽造或篡改其他錢包。可以通過檢查兩個EIP6963ProviderInfo對象中的uuid屬性是否一致,來檢測偽造行為。DApp及其發現庫應當考慮其他可能的篡改方法,並採取額外的防護措施,以避免此類篡改行為,從而保障用戶的安全。

防止SVG中的JavaScript執行

SVG圖像的使用可能導致跨站腳本攻擊(XSS),因為SVG中能夠包含JavaScript代碼。這些代碼會在頁面上下文中執行,進而可能修改頁面內容或影響其他錢包。因此,在渲染圖標時,DApp需要考慮如何處理此類安全風險,防止惡意圖像被用作混淆技術,進而隱藏對頁面或錢包的惡意修改。

防止錢包指紋識別

本設計使用的併發事件循環機制的一個優點是,DApp和錢包均可發起流程來宣佈提供商。因此,錢包實現者可以選擇是否將自己宣佈給所有頁面,或者考慮採取其他方法減少通過注入window.ethereum對象而使用戶被指紋識別的可能性。一種可能的替代方案是,在DApp宣佈eip6963:requestProvider事件之前,錢包推遲注入提供商對象。此時,錢包可以啟動UI同意流程,詢問用戶是否願意共享其錢包地址。這種做法使錢包能夠啟用“私人連接”功能。然而,採取這種方式時,錢包還需要考慮如何確保與不支持該EIP的DApp保持向後兼容性。

EIP-6963 改進的特點

簡化了錢包發現的過程

EIP-6963在2023年5月提出的新以太坊標準,旨在解決當前未明確定義的標準,如window.ethereum,並於同年10月通過。該標準通過引入多重注入的提供者發現機制,使得DApp能夠可靠地發現並連接用戶瀏覽器上安裝的所有錢包,從而克服了傳統方法帶來的限制和衝突。與傳統的 window.ethereum 方法相比,EIP-6963簡化了錢包發現的過程,支持多個錢包擴展在同一瀏覽器中共存,這一創新大大提升了以太坊生態系統的互操作性,改善了用戶體驗。

明確定義、提高用戶體驗

EIP-6963不僅僅是功能性的改進,它還通過允許錢包注入如名稱、標識、通用唯一識別碼(UUID)以及反向域名服務(RDNS)等信息,增強了錢包的可識別性和用戶體驗。DApp可以展示這些信息,讓用戶清楚地知道他們正在與哪個錢包進行交互,避免了混淆和誤操作,從而提供了更加清晰、可靠和友好的使用界面。通過這種方式,EIP-6963為用戶提供了更加順暢的體驗,減少了潛在的爭議和不必要的操作困難,同時對整個以太坊生態系統的提升起到了積極作用。

潛在的安全隱患

EIP-6963 的設計引入了潛在的安全隱患。通過提供所有已註冊錢包的清單,它雖然方便了 dApp 和用戶的交互,但也可能被惡意應用濫用。惡意 dApp 可能通過讀取用戶安裝的錢包列表,推測用戶的區塊鏈活動或資產分佈。如果服務註冊機制缺乏嚴格校驗,可能會有惡意錢包偽裝成合法服務提供者,誘導用戶授權並竊取資產。因此,額外的安全機制(如用戶許可和註冊驗證)是必要的。

用戶體驗複雜化

在用戶體驗方面,EIP-6963 的多錢包支持雖是一項重要改進,但也可能導致體驗複雜化。例如,用戶安裝了多個錢包後,dApp 顯示過多選項,可能讓用戶感到困惑,不知道該選擇哪個錢包。此外,一些錢包的命名或標識可能不夠直觀,增加了用戶辨認的難度。而對於需要頻繁切換錢包的用戶來說,這種靈活性反而可能變成一種負擔。

總結:

EIP-6963通過引入事件驅動的方式,解決了Web3應用中多錢包共存、命名空間衝突和用戶隱私保護等問題,從而顯著改善了用戶體驗。該標準化機制使得DApp可以自動發現並連接多個錢包,無需手動切換,同時避免了不同錢包間的競爭和衝突,提升了連接的流暢性和穩定性。EIP-6963還加強了安全性,通過凍結錢包提供商對象防止篡改,降低了潛在的安全風險。隱私方面,用戶可以選擇是否共享錢包地址,防止身份洩露和指紋識別。EIP-6963還保持了與舊接口的兼容性,確保了現有系統的平穩過渡,同時簡化了DApp開發者的工作,提升了跨平臺和多設備支持的便利性。整體而言,EIP-6963不僅提高了Web3的互操作性、安全性和隱私保護,還為開發者提供了更高效的工具,促進了Web3生態系統的進一步發展。

作者: Rachel
譯者: Piper
審校: Edward、Piccolo、Elisa
譯文審校: Ashely、Joyce
* 投資有風險,入市須謹慎。本文不作為 Gate.io 提供的投資理財建議或其他任何類型的建議。
* 在未提及 Gate.io 的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io 有權追究其法律責任。

淺析 EIP-6963:提高以太坊錢包互操作性、改善用戶體驗的一步

進階1/15/2025, 8:36:35 AM
EIP-6963 提出了一種新的標準,用於優化以太坊瀏覽器擴充錢包的發現和交互機制,旨在解決多錢包衝突、缺乏多服務支持及用戶體驗不直觀等問題。相比現有的 EIP-1193 標準,EIP-6963 引入了窗口事件和雙向通信協議,使 dApps 能更高效地識別和適配用戶的首選錢包。

EIP-6963 誕生的由來

在區塊鏈生態中,瀏覽器擴充錢包是一種通過瀏覽器插件形式存在的錢包應用,它讓用戶能夠方便地在 dApps 中直接操作區塊鏈賬戶,比如發送交易、簽署消息或與智能合約交互。最典型的例子是MetaMask,它幾乎成了使用以太坊生態dApp的標配工具。與傳統的應用程序不同,瀏覽器擴充錢包是嵌入瀏覽器環境的,這種方式簡化了用戶與區塊鏈的交互流程,消除了複雜的節點操作或私鑰管理的技術門檻。用戶只需安裝擴展,便能快速開始使用區塊鏈網絡。

在這個場景中,“服務提供者”指的是支持這些錢包功能的底層技術或接口。例如,錢包通過以太坊JSON-RPC協議與區塊鏈節點通信,而服務提供者則提供了相應的RPC接口,使錢包能安全地處理鏈上交互。

想象一下,你想使用一個去中心化交易平臺(DEX)或NFT市場,你打開了這個dApp的網站,滿心期待地開始操作。然而,問題來了——你的瀏覽器裝有多個錢包擴展,比如MetaMask、Coinbase Wallet和Brave Wallet,但dApp卻無法正確識別你當前使用的是哪個錢包,甚至直接彈出一個錯誤提示:未檢測到錢包,請安裝錢包擴展。你嘗試刷新頁面、重啟瀏覽器,但問題依舊存在。這個常見場景暴露了一個實際的問題:瀏覽器擴充錢包的識別與交互機制存在不足。隨著越來越多的錢包擴展和服務提供者湧現,用戶的體驗卻變得更加複雜和混亂。

為了解決錢包與dApp的交互問題,社區曾推出了EIP-1193(Ethereum JavaScript Provider API),這是一個通用的標準,定義了dApp如何通過瀏覽器環境與錢包進行通信。EIP-1193的核心思想是通過一個標準化的接口來處理錢包提供的區塊鏈功能。例如,dApp通過window.ethereum對象與錢包通信,發起請求或接收區塊鏈事件。

雖然EIP-1193一定程度上解決了錢包與dApp之間的兼容性問題,但它仍然存在一些明顯的侷限性:

  1. 多錢包衝突問題:當用戶同時安裝了多個瀏覽器擴充錢包時,EIP-1193默認將window.ethereum綁定到第一個被加載的錢包。結果,其他錢包可能無法被正確識別,甚至導致dApp完全無法使用。
  2. 缺乏多服務支持:許多dApp希望支持多種錢包,但EIP-1193沒有提供明確的機制來區分或選擇不同的服務提供者,這使得dApp開發者需要自行設計複雜的邏輯來適配。
  3. 不直觀的用戶體驗:對於普通用戶來說,他們很難理解“錢包未被檢測到”或“未正確連接”的錯誤提示背後的技術原因,這增加了使用門檻和挫敗感。

為解決這一問題,社區提出了EIP-6963(Browser Extension Wallet Discovery Standard),這是一種針對瀏覽器擴充錢包的改進方案,旨在優化錢包發現和交互的機制。該方案旨在降低新錢包供應商的進入門檻,促進更加公平的競爭,並改善以太坊網絡上的用戶體驗。具體來說,通過引入一組窗口事件,提供了一個雙向通信協議,使得以太坊庫與由瀏覽器擴展注入的腳本能夠進行交互。這將使用戶能夠根據自身需求選擇首選錢包,提升整體使用體驗。

代碼分析

反向 DNS(RDNS)

反向 DNS(RDNS)作為一種確保錢包提供商標識符穩定的機制,同時避免了命名空間衝突。EIP-6963還強調了反向 DNS 約定應遵循的規則,例如有效的域名格式和由提供商控制的域名部分。EIP-6963還強調 DApp 不應依賴 rdns 值進行功能檢測,避免出現偽造或不良激勵的情況。EIP6963 ProviderDetail 接口為 DApp 提供了錢包提供商的元數據,幫助進行與錢包的交互。

EIP6963ProviderDetail

EIP6963ProviderDetail是用於聲明和描述錢包提供商信息的接口,它通過包含 info(錢包元數據)和 provider(錢包提供商接口)屬性,使得 DApp 能夠獲取到關於錢包的詳細信息,並通過標準化接口與錢包進行交互。該接口是實現去中心化應用與多種錢包之間兼容和互操作性的基礎。

事件機制

事件機制是為了保證 DApp 和錢包能夠在沒有固定執行順序的情況下相互發現並進行交互。通過這種方式,DApp 和錢包之間的相互發現不受執行順序的影響,避免了衝突和錯誤。

事件類型

EIP6963AnnounceProviderEvent: 這是錢包用來宣佈自己存在的事件。它包含有關錢包的信息(EIP6963ProviderDetail)和錢包接口(EIP1193Provider)。此事件的 detail 屬性包含錢包的元數據,這些數據被凍結(通過 Object.freeze()),確保它們不可變。

EIP6963RequestProviderEvent: 這是 DApp 用來請求錢包提供商的事件。DApp 會通過這個事件通知錢包自己準備好了,並請求進行交互。

事件併發

由於 DApp 和錢包的代碼執行順序不確定,這可能導致競態條件。事件機制特別設計了這樣一種方式,確保 DApp 和錢包能夠在彼此發現時,正確處理事件。錢包可能會先發出公告事件,而 DApp 可能會在之後才準備好監聽該事件。為了確保這種情況不會導致錯誤,錢包會在初次公告事件後,重新觸發一次公告事件,從而保證 DApp 可以及時收到。

DApp 的事件處理

DApp 必須監聽 EIP6963AnnounceProviderEvent 事件,並且在頁面加載期間不要移除事件監聽器。這是為了確保 DApp 可以在生命週期內持續監聽並響應錢包的公告事件。DApp 還必須在處理完公告事件後,觸發 EIP6963RequestProviderEvent 來向錢包請求進一步的交互。

錢包發現與切換

DApp 可以保存多個錢包的 EIP6963ProviderDetail 對象,以便用戶可以在 DApp 中選擇不同的錢包進行交互。這為用戶提供了更大的靈活性,允許他們在不重新加載頁面的情況下切換錢包。

這一設計通過 EIP6963AnnounceProviderEvent 和 EIP6963RequestProviderEvent 實現 DApp 和錢包之間的無縫發現和交互。通過使用事件監聽和事件觸發,DApp 和錢包能夠在執行順序不確定的情況下協調工作,避免了競態條件,並確保了穩定的行為。DApp 還可以根據用戶需求切換錢包,提升了用戶體驗和錢包的互操作性。

向後兼容性

該 EIP 並不要求替代 window.ethereum,因此不會直接破壞那些無法更新為這種錢包發現方法的現有應用程序。然而,強烈建議 DApp 實現此 EIP,以確保能夠發現多個錢包提供商,並應當禁用 window.ethereum 的使用,除非在發現失敗時作為備用方法。類似地,錢包應該保持與 window.ethereum 的兼容性,以確保對未實現該 EIP 的 DApp 向後兼容。為了避免命名空間衝突的先前問題,建議錢包將其提供商對象注入到特定的錢包命名空間下,然後將該對象代理到 window.ethereum 命名空間中。

安全性設計

錢包提供商對象的原型汙染

瀏覽器擴展,尤其是錢包擴展,具備修改頁面內容和提供商對象的能力,這是其設計的核心功能之一。各種錢包的提供商對象被認為是高度可信的接口,用於傳輸交易數據。為了防止頁面或其他擴展意外地修改DApp與錢包之間的交互,最佳做法是在錢包通過eip6963:announceProvider事件派發之前,使用Object.freeze()方法凍結EIP1193Provider對象,從而確保該對象不可被修改。然而,在某些情況下,網頁兼容性可能要求對該對象進行修改。在這種情況下,錢包實現者需要在安全性和網頁兼容性之間做出權衡。

錢包偽造與篡改

DApp應當主動檢測錢包提供商對象的屬性或函數是否被篡改,以防止偽造或篡改其他錢包。可以通過檢查兩個EIP6963ProviderInfo對象中的uuid屬性是否一致,來檢測偽造行為。DApp及其發現庫應當考慮其他可能的篡改方法,並採取額外的防護措施,以避免此類篡改行為,從而保障用戶的安全。

防止SVG中的JavaScript執行

SVG圖像的使用可能導致跨站腳本攻擊(XSS),因為SVG中能夠包含JavaScript代碼。這些代碼會在頁面上下文中執行,進而可能修改頁面內容或影響其他錢包。因此,在渲染圖標時,DApp需要考慮如何處理此類安全風險,防止惡意圖像被用作混淆技術,進而隱藏對頁面或錢包的惡意修改。

防止錢包指紋識別

本設計使用的併發事件循環機制的一個優點是,DApp和錢包均可發起流程來宣佈提供商。因此,錢包實現者可以選擇是否將自己宣佈給所有頁面,或者考慮採取其他方法減少通過注入window.ethereum對象而使用戶被指紋識別的可能性。一種可能的替代方案是,在DApp宣佈eip6963:requestProvider事件之前,錢包推遲注入提供商對象。此時,錢包可以啟動UI同意流程,詢問用戶是否願意共享其錢包地址。這種做法使錢包能夠啟用“私人連接”功能。然而,採取這種方式時,錢包還需要考慮如何確保與不支持該EIP的DApp保持向後兼容性。

EIP-6963 改進的特點

簡化了錢包發現的過程

EIP-6963在2023年5月提出的新以太坊標準,旨在解決當前未明確定義的標準,如window.ethereum,並於同年10月通過。該標準通過引入多重注入的提供者發現機制,使得DApp能夠可靠地發現並連接用戶瀏覽器上安裝的所有錢包,從而克服了傳統方法帶來的限制和衝突。與傳統的 window.ethereum 方法相比,EIP-6963簡化了錢包發現的過程,支持多個錢包擴展在同一瀏覽器中共存,這一創新大大提升了以太坊生態系統的互操作性,改善了用戶體驗。

明確定義、提高用戶體驗

EIP-6963不僅僅是功能性的改進,它還通過允許錢包注入如名稱、標識、通用唯一識別碼(UUID)以及反向域名服務(RDNS)等信息,增強了錢包的可識別性和用戶體驗。DApp可以展示這些信息,讓用戶清楚地知道他們正在與哪個錢包進行交互,避免了混淆和誤操作,從而提供了更加清晰、可靠和友好的使用界面。通過這種方式,EIP-6963為用戶提供了更加順暢的體驗,減少了潛在的爭議和不必要的操作困難,同時對整個以太坊生態系統的提升起到了積極作用。

潛在的安全隱患

EIP-6963 的設計引入了潛在的安全隱患。通過提供所有已註冊錢包的清單,它雖然方便了 dApp 和用戶的交互,但也可能被惡意應用濫用。惡意 dApp 可能通過讀取用戶安裝的錢包列表,推測用戶的區塊鏈活動或資產分佈。如果服務註冊機制缺乏嚴格校驗,可能會有惡意錢包偽裝成合法服務提供者,誘導用戶授權並竊取資產。因此,額外的安全機制(如用戶許可和註冊驗證)是必要的。

用戶體驗複雜化

在用戶體驗方面,EIP-6963 的多錢包支持雖是一項重要改進,但也可能導致體驗複雜化。例如,用戶安裝了多個錢包後,dApp 顯示過多選項,可能讓用戶感到困惑,不知道該選擇哪個錢包。此外,一些錢包的命名或標識可能不夠直觀,增加了用戶辨認的難度。而對於需要頻繁切換錢包的用戶來說,這種靈活性反而可能變成一種負擔。

總結:

EIP-6963通過引入事件驅動的方式,解決了Web3應用中多錢包共存、命名空間衝突和用戶隱私保護等問題,從而顯著改善了用戶體驗。該標準化機制使得DApp可以自動發現並連接多個錢包,無需手動切換,同時避免了不同錢包間的競爭和衝突,提升了連接的流暢性和穩定性。EIP-6963還加強了安全性,通過凍結錢包提供商對象防止篡改,降低了潛在的安全風險。隱私方面,用戶可以選擇是否共享錢包地址,防止身份洩露和指紋識別。EIP-6963還保持了與舊接口的兼容性,確保了現有系統的平穩過渡,同時簡化了DApp開發者的工作,提升了跨平臺和多設備支持的便利性。整體而言,EIP-6963不僅提高了Web3的互操作性、安全性和隱私保護,還為開發者提供了更高效的工具,促進了Web3生態系統的進一步發展。

作者: Rachel
譯者: Piper
審校: Edward、Piccolo、Elisa
譯文審校: Ashely、Joyce
* 投資有風險,入市須謹慎。本文不作為 Gate.io 提供的投資理財建議或其他任何類型的建議。
* 在未提及 Gate.io 的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io 有權追究其法律責任。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!