Geschrieben von: Mundus Security
Zusammengestellt von: Shechao TechFlow
Das kürzlich vorgeschlagene EIP-6963 zielt darauf ab, Konflikte zu lösen, die entstehen, wenn Benutzer versuchen, mehrere Wallet-Anbieter in einem einzigen Webbrowser zu verwenden. In diesem Fall können diese widersprüchlichen Probleme zu einer verschlechterten Benutzererfahrung führen, die Benutzerkontrolle über ihre Ethereum-Schnittstelle behindern und den Prozess der Interaktion mit dApps erschweren.
Problemeinführung
Derzeit müssen Wallet-Anbieter, die Browser-Erweiterungen anbieten, ihren Ethereum-Anbieter (gemäß dem EIP-1193-Standard) in das window.ethereum-Objekt des Browsers einfügen. Dieser Mechanismus stellt ein Problem für Benutzer dar, die mehrere Browsererweiterungen installiert haben. Browsererweiterungen werden in einer unvorhersehbaren und instabilen Reihenfolge auf Webseiten geladen, wodurch Benutzer daran gehindert werden, ihre Ethereum-Wallet im window.ethereum-Objekt auszuwählen. Normalerweise ist die zuletzt geladene Wallet diejenige, bei der die Kontrollseite angezeigt wird.
EIP-6963: Vorgeschlagene Lösung
Um dieses Problem zu lösen, schlägt EIP-6963 einen bestehenden Mechanismus vor, um den EIP-1193-Anbieter für window.ethereum zu ersetzen. Der Vorschlag führt eine Reihe von Fensterereignissen ein, die ein bidirektionales Kommunikationsprotokoll zwischen Ethereum-Bibliotheken und injizierten Skripten ermöglichen, die von Browsererweiterungen bereitgestellt werden. Diese Lösung optimiert die Interoperabilität zwischen mehreren Wallet-Anbietern, senkt die Eintrittsbarriere für neue Wallet-Anbieter und verbessert die Benutzererfahrung im Ethereum-Netzwerk.
Der Vorschlag beschreibt eine standardisierte Anbieterinformationsschnittstelle (EIP6963ProviderInfo), die für das Auffüllen von Popups zur Wallet-Auswahl unerlässlich ist. Außerdem wird hervorgehoben, wie wichtig es ist, die Anbieterschnittstelle (EIP6963ProviderDetail) zu deklarieren, wodurch die EIP-1193-Anbieterschnittstelle unverändert bleibt, um die Abwärtskompatibilität zu gewährleisten.
Zu den wichtigsten Eigenschaften in der Anbieterinformationsschnittstelle gehören:
walletId: Global eindeutige Kennung des Wallet-Anbieters (z. B. io.dopewallet.extension oder awesomewallet). uuid: Lokal eindeutige Kennung für einen UUID v4.0-kompatiblen Wallet-Anbieter. Name: Der für Menschen lesbare Name des Wallet-Anbieters (z. B. DopeWalletExtension oder Awesome). Symbol: URI, der auf das Bild zeigt, das ein Quadrat mit einer Mindestauflösung von 96 x 96 Pixel sein sollte. Es wird empfohlen, PNG und WebP oder Vektorbildformate wie SVG zu verwenden. Das Vorschlagsteam lehnt die Verwendung verlustbehafteter Formate wie JPG/JPEG entschieden ab.
Was das Auslösen von Ereignissen betrifft, verwenden sowohl die Ethereum-Bibliothek als auch die Wallet-Anbieter die Funktion window.dispatchEvent zum Ausgeben von Ereignissen und window.addEventListener zum Beobachten von Ereignissen. Wenn die Ethereum-Bibliothek initialisiert wird, gibt sie das Ereignis „eip6963:requestProvider“ aus, und der Wallet-Anbieter gibt das Ereignis „eip6963:announceProvider“ aus, das Details zu seiner Anbieterschnittstelle und Informationen bereitstellt.
Auswirkungen von EIP-6963
Optimistischen Schätzungen zufolge könnte die Akzeptanz und Implementierung von EIP-6963 etwa drei bis sechs Monate dauern. Diese Entwicklung könnte bis Ende des Jahres zu einer neuen Wallet-Story führen, die möglicherweise die Hegemonie führender Wallet-Anbieter wie Metamask bricht und ein wettbewerbsintensiveres Umfeld unter den Anbietern schafft.
Es wird erwartet, dass Wallets wie Coin98, Coinbase Wallet, Trust Wallet, Phantom, Taho, Rabby, Frame, XDEFI, Rainbow, Zerion, Spot, Frontier, MEW, Dawn Wallet, Blockwallet, Bitski, SafePal, BitKeep und MathWallet von dieser Entwicklung profitieren .
Für und Wider:
EIP-6963 wirft einige Sicherheitsprobleme auf, die berücksichtigt werden müssen.
Vorteil:
Kein Single Point of Failure: Indem wir mehrere Wallet-Anbieter zulassen, beseitigen wir das Problem eines Single Point of Failure. Dies ist im Hinblick auf die Sicherheit von Vorteil, denn wenn ein Wallet-Anbieter einen Angriff oder einen technischen Ausfall erleidet, stehen den Benutzern Alternativen zur Verfügung. Reduzieren Sie die Abhängigkeit von einem einzelnen Anbieter: Derzeit verlässt sich die Ethereum-Community stark auf einen Anbieter, MetaMask. Dies stellt ein potenzielles Risiko dar, da bei einem Angriff auf MetaMask ein großer Teil der Ethereum-Benutzer betroffen sein wird. Durch die Unterstützung mehrerer Wallets verteilt EIP-6963 das Risiko. Verbesserte Benutzerkontrolle: Durch die Möglichkeit, mehrere Wallet-Anbieter auszuwählen, haben Benutzer eine bessere Kontrolle über ihre Sicherheit. Benutzer können einen Wallet-Anbieter wählen, der ihren persönlichen Sicherheitspräferenzen und Vertrauensstufen entspricht.
Mangel:
Erhöhte Angriffsfläche: Die Implementierung von EIP-6963 erhöht die Angriffsfläche. Dies ist auf die zunehmende Zahl von Wallet-Anbietern zurückzuführen, die von böswilligen Akteuren angegriffen werden können. Um dieses Risiko zu minimieren, sollte jeder Wallet-Anbieter hohe Sicherheitsstandards einhalten. Mögliche Risiken der Nutzung von SVG-Bildern: EIP-6963 schlägt die Verwendung von SVG-Bildern als Symbole für Wallet-Anbieter vor. Allerdings können SVG-Bilder JavaScript-Code enthalten, der Cross-Site-Scripting (XSS)-Risiken mit sich bringen kann. Während die EIP vorgibt, dass SVG-Bilder mithilfe von Tags gerendert werden sollten, um die Ausführung von JavaScript zu verhindern, kann diese Empfehlung nur von einem Dritten oder Prüfer jeder Implementierung überprüft werden. Auswirkungen des Ersetzens von window.ethereum: Während EIP bestehende Anwendungen durch das Ersetzen von window.ethereum nicht direkt stört, empfiehlt es, dies zu tun, nachdem Benutzer sich für ein Wallet entschieden haben. Diese Empfehlung kann bei jeder Implementierung nur durch einen Dritten oder Prüfer überprüft werden.
abschließend
EIP-6963 zielt darauf ab, die Interoperabilität zwischen mehreren Wallet-Anbietern zu verbessern, die Eintrittsbarriere für neue Anbieter zu senken und die Benutzererfahrung im Ethereum-Netzwerk zu verbessern. Gleichzeitig sind die Auswirkungen auf die Sicherheit komplex.
Benutzer, Wallet-Anbieter und Entwickler der Ethereum-Bibliothek müssen sich an Best Practices halten, um sicherzustellen, dass das Ethereum-Ökosystem sicher bleibt.
Durch die Umsetzung dieses Vorschlags kann sich das Ethereum-Ökosystem zu einem benutzerfreundlicheren und wettbewerbsfähigeren Umfeld entwickeln, von dem sowohl Wallet-Anbieter als auch ihre Benutzer profitieren.
