Weiter zum Hauptinhalt

Seite zuletzt aktualisiert: 12. Februar 2024

Kontoabstraktion

Benutzer interagieren mit Ethereum durch

. Dies ist die einzige Möglichkeit, eine Transaktion zu senden oder einen Smart Contract auszuführen. Das schränkt jedoch die Möglichkeiten der Nutzer ein, mit Ethereum zu interagieren. So ist es zum Beispiel schwierig, Transaktionen zu bündeln. Außerdem müssen Nutzer immer etwas ETH bereithalten, um Gas-Kosten zu decken.

Account-Abstraktion ist eine Möglichkeit, diese Probleme zu lösen. Sie ermöglicht es den Benutzern, flexibel mehr Sicherheit und bessere Benutzererfahrungen in ihre Konten zu programmieren. Dies kann durch das Upgrade von EOAs(opens in a new tab) geschehen, so dass sie durch Smart Contracts gesteuert werden können, oder durch das Upgrade von Smart Contracts selbst,(opens in a new tab) sodass sie Transaktionen initiieren können. Beide Optionen erfordern Änderungen am Ethereum-Protokoll. Es gibt auch einen dritten Weg, der die Hinzufügung eines zweiten, separaten Transaktionssystems(opens in a new tab) vorsieht, das parallel zum bestehenden Protokoll läuft. Unabhängig vom gewählten Weg ist das Ergebnis der Zugang zu Ethereum über Smart-Contract-Wallets, entweder nativ als Teil des bestehenden Protokolls unterstützt oder über ein zusätzliches Transaktionsnetzwerk.

Smart-Contract-Wallets bieten dem Nutzer viele Vorteile, darunter:

  • definieren Sie Ihre eigenen flexiblen Sicherheitsregeln
  • stellen Sie Ihr Konto wieder her, wenn Sie die Schlüssel verlieren
  • teilen Sie Ihre Kontosicherheit über vertrauenswürdige Geräte oder Personen
  • zahlen Sie das Gas für jemand anderen auf Ethereum, oder lassen Sie jemand anderes Ihr Gas bezahlen
  • fassen Sie Transaktionen zusammen (z.B. Genehmigen und Ausführen eines Tauschgeschäfts in einem Schritt)
  • mehr Möglichkeiten für Dapp- und Wallet-Entwickler, um Innovationen im Bereich der Nutzererfahrungen zu schaffen

Diese Vorteile werden heute nicht nativ unterstützt, weil nur extern verwaltete Konten (

) Transaktionen starten können. EOAs sind einfach öffentlich-private Schlüsselpaare. Sie funktionieren folgendermaßen:

  • wenn Sie den privaten Schlüssel haben, können Sie alles innerhalb der Regeln der Ethereum Virtual Machine (EVM) tun
  • wenn Sie den privaten Schlüssel nicht haben, können Sie nichts tun.

Wenn Sie Ihre Schlüssel verlieren, können sie nicht wiederhergestellt werden, und gestohlene Schlüssel geben Dieben sofortigen Zugang zu allen Geldmitteln auf einem Konto.

Smart Contract Wallets sind die Lösung für diese Probleme, aber heute sind sie schwer zu programmieren, weil letztendlich jede von ihnen implementierte Logik in eine Reihe von EOA-Transaktionen übersetzt werden muss, bevor sie von Ethereum verarbeitet werden können. Die Kontenabstraktion ermöglicht es Smart Contracts, selbst Transaktionen zu initiieren, sodass jede gewünschte Logik des Benutzers direkt in die Smart Contract Wallet programmiert und auf Ethereum ausgeführt werden kann.

Letztendlich verbessert die Kontenabstraktion die Unterstützung für Smart Contract Wallets, macht sie einfacher zu bauen und sicherer in der Anwendung. Schließlich ermöglicht die Kontenabstraktion den Nutzern, alle Vorteile von Ethereum zu genießen, ohne die zugrundeliegende Technologie kennen oder beachten zu müssen.

Jenseits von Seed-Phrasen

Die heutigen Konten sind durch private Schlüssel gesichert, die aus Seed-Phrasen berechnet werden. Jede Person, die Zugang zu einer Seed-Phrase hat, kann leicht den privaten Schlüssel entdecken, der ein Konto schützt, und Zugang zu allen von ihm geschützten Vermögenswerten erhalten. Wenn ein privater Schlüssel und eine Seed-Phrase verloren gehen, können sie nie wiederhergestellt werden und die von ihnen kontrollierten Vermögenswerte sind für immer eingefroren. Die Sicherung dieser Seed-Phrasen ist selbst für Experten umständlich und das Phishing von Seed-Phrasen ist eine der häufigsten Betrugsmethoden bei Nutzern.

Die Kontenabstraktion wird dieses Problem lösen, indem sie ein Smart Contract verwendet, um Vermögenswerte zu halten und Transaktionen zu autorisieren. Diese Smart Contracts können dann mit benutzerdefinierter Logik versehen werden, um sie so sicher wie möglich und an den Benutzer angepasst zu machen. Letztendlich verwenden Sie immer noch private Schlüssel, um den Zugang zu Ihrem Konto zu kontrollieren, aber mit Sicherheitsnetzen, die sie einfacher und sicherer zu verwalten machen.

Zum Beispiel können Backup-Schlüssel zu einer Wallet hinzugefügt werden, sodass, wenn Sie Ihren Hauptschlüssel verlieren oder versehentlich offenlegen, er durch einen neuen, sicheren Schlüssel ersetzt werden kann, mit Erlaubnis von den Backup-Schlüsseln. Möglicherweise sichern Sie jeden dieser Schlüssel auf unterschiedliche Weise oder verteilen sie auf vertrauenswürdige Verwalter. Das macht es für einen Dieb viel schwieriger, die volle Kontrolle über Ihre Geldmittel zu erlangen. Ähnlich können Sie Regeln zur Wallet hinzufügen, um die Auswirkungen zu reduzieren, falls Ihr Haupt-Schlüssel kompromittiert wird. Beispielsweise könnten Sie niedrige Transaktionen mit einer einzelnen Unterschrift verifizieren lassen, während Transaktionen mit höherem Wert die Genehmigung von mehreren authentifizierten Unterzeichnern erfordern. Es gibt auch andere Möglichkeiten, wie Smart Contract Wallets Ihnen helfen können, Diebe abzuwehren. Beispielsweise kann eine Whitelist verwendet werden, um jede Transaktion zu blockieren, es sei denn, sie ist an eine vertrauenswürdige Adresse gerichtet oder wird von mehreren Ihrer vorab genehmigten Schlüssel verifiziert.

Beispiele für Sicherheitslogik, die in eine Smart Contract Wallet eingebaut werden kann:

  • Multisig-Autorisierung: Sie können Autorisierungsdaten über mehrere vertrauenswürdige Personen oder Geräte verteilen. Dann kann der Vertrag so konfiguriert werden, dass Transaktionen über einem bestimmten vordefinierten Wert die Autorisierung von einem bestimmten Anteil (z.B. 3/5) der vertrauenswürdigen Parteien erfordern. Zum Beispiel könnten Transaktionen mit hohem Wert die Zustimmung sowohl von einem mobilen Gerät als auch von einer Hardware-Wallet erfordern, oder Signaturen von Konten, die an vertrauenswürdige Familienmitglieder verteilt wurden.
  • Kontosperrung: Wenn ein Gerät verloren geht oder kompromittiert wird, kann das Konto von einem anderen autorisierten Gerät aus gesperrt werden, um die Vermögenswerte des Benutzers zu schützen.
  • Kontowiederherstellung: Haben Sie ein Gerät verloren oder ein Passwort vergessen? Im aktuellen Paradigma könnte dies bedeuten, dass Ihre Vermögenswerte für immer eingefroren werden könnten. Mit einer Smart-Contract-Wallet können Sie einige vorab genehmigte Konten festlegen, die neue Geräte autorisieren und den Zugriff zurücksetzen können.
  • Transaktionslimits festlegen: Legen Sie tägliche Obergrenzen dafür fest, wie viel Wert innerhalb eines Tages/einer Woche/eines Monats von dem Konto überwiesen werden kann. Das bedeutet, wenn ein Angreifer Zugang zu Ihrem Konto erlangt, kann er nicht alles auf einmal abziehen und Sie haben die Möglichkeit, den Zugang zu sperren und zurückzusetzen.
  • Whitelists erstellen: Erlauben Sie Transaktionen nur zu bestimmten Adressen, von denen Sie wissen, dass sie sicher sind. Das bedeutet, dass selbst wenn Ihr privater Schlüssel gestohlen wurde, der Angreifer keine Mittel an nicht-whitelistete Zielkonten senden könnte. Diese Whitelists würden mehrere Unterschriften zur Änderung erfordern, sodass ein Angreifer seine eigene Adresse nicht zur Liste hinzufügen könnte, es sei denn, er hätte Zugang zu mehreren Ihrer Backup-Schlüssel.

Bessere Nutzererfahrung

Die Account-Abstraktion ermöglicht eine bessere Gesamtbenutzererfahrung sowie eine verbesserte Sicherheit, da sie auf Protokollebene Unterstützung für Smart-Contract-Wallets hinzufügt. Der wichtigste Grund dafür ist, dass es den Entwicklern von Smart Contracts, Wallets und Anwendungen viel mehr Freiheit geben wird, auf die Benutzererfahrung in Weisen zu innovieren, die wir möglicherweise noch nicht vorhersehen können. Einige offensichtliche Verbesserungen, die mit der Account-Abstraktion einhergehen werden, beinhalten das Bündeln von Transaktionen für Geschwindigkeit und Effizienz. Zum Beispiel sollte ein einfacher Tausch eine Ein-Klick-Operation sein, aber heute erfordert es das Signieren mehrerer Transaktionen zur Genehmigung des Ausgebens einzelner Tokens, bevor der Tausch ausgeführt wird. Die Account-Abstraktion beseitigt diese Reibung, indem sie das Bündeln von Transaktionen ermöglicht. Darüber hinaus könnte die gebündelte Transaktion genau den richtigen Wert an Tokens genehmigen, der für jede Transaktion erforderlich ist, und dann die Genehmigungen nach Abschluss der Transaktion widerrufen, was zusätzliche Sicherheit bietet.

Das Gasmanagement wird durch die Account-Abstraktion ebenfalls stark verbessert. Nicht nur können Anwendungen anbieten, die Gasgebühren ihrer Nutzer zu übernehmen, sondern Gasgebühren können auch in Tokens, die nicht ETH sind, bezahlt werden. Dies befreit Nutzer davon, ein ETH-Guthaben zur Finanzierung von Transaktionen halten zu müssen. Dies würde funktionieren, indem die Tokens des Benutzers innerhalb des Vertrags gegen ETH getauscht und dann das ETH zur Bezahlung von Gas verwendet wird.

Vertrauenswürdige Sitzungen könnten ebenfalls die Benutzererfahrungen grundlegend verändern, insbesondere bei Anwendungen wie Spielen, bei denen in kurzer Zeit eine große Anzahl kleiner Transaktionen genehmigt werden muss. Das individuelle Genehmigen jeder Transaktion würde das Spielerlebnis stören, doch eine ständige Genehmigung birgt Risiken. Eine Smart-Contract-Wallet könnte bestimmte Transaktionen für eine festgelegte Zeit, bis zu einem bestimmten Wert oder nur an bestimmte Adressen genehmigen.

Es ist auch interessant zu überlegen, wie sich Käufe mit der Account-Abstraktion ändern könnten. Heute muss jede Transaktion aus einer Wallet, die vorab mit einer ausreichenden Menge des korrekten Tokens ausgestattet ist, genehmigt und ausgeführt werden. Mit der Account-Abstraktion könnte die Erfahrung eher wie das bekannte Online-Shopping sein, bei dem ein Benutzer einen "Warenkorb" mit Artikeln füllen und einmal klicken könnte, um alles auf einmal zu kaufen. Die dafür benötigte Logik würde vom Vertrag und nicht vom Benutzer gehandhabt.

Das sind nur einige Beispiele dafür, wie Benutzererfahrungen durch die Account-Abstraktion verbessert werden könnten, aber es gibt noch viele weitere, die wir uns noch nicht vorstellen können. Die Account-Abstraktion befreit Entwickler von den Beschränkungen der heutigen EOAs, ermöglicht es ihnen, die guten Aspekte von Web2 in Web3 zu bringen, ohne die Selbstverwahrung zu opfern, und kreativ an innovativen neuen Benutzererfahrungen zu arbeiten.

Wie wird die Account-Abstraktion umgesetzt?

Smart-Contract-Wallets existieren heute bereits, sind aber schwer zu implementieren, weil die EVM sie nicht unterstützt. Stattdessen verlassen sie sich darauf, relativ komplexe Code um Standard-Ethereum-Transaktionen zu wickeln. Ethereum kann dies ändern, indem es Smart Contracts erlaubt, Transaktionen zu initiieren und die notwendige Logik in Ethereum Smart Contracts statt off-chain zu behandeln. Das Einbringen von Logik in Smart Contracts erhöht auch die Dezentralisierung von Ethereum, da es die Notwendigkeit von "Relayern", die von Wallet-Entwicklern betrieben werden, um Nachrichten, die vom Benutzer signiert wurden, in reguläre Ethereum-Transaktionen zu übersetzen, beseitigt.

Aktueller Fortschritt

Smart-Contract-Wallets sind bereits verfügbar, aber es sind noch weitere Verbesserungen erforderlich, um sie so dezentralisiert und erlaubnislos wie möglich zu gestalten. EIP-4337 ist ein ausgereifter Vorschlag, der keine Änderungen am Ethereum-Protokoll erfordert, daher könnte dieser möglicherweise schnell umgesetzt werden. Upgrades, die das Ethereum-Protokoll verändern, sind jedoch derzeit nicht in aktiver Entwicklung, daher könnte die Umsetzung dieser Änderungen deutlich länger dauern. Es ist auch möglich, dass die Kontenabstraktion durch EIP-4337 so gut gelingt, dass keine Protokolländerungen jemals erforderlich sind.

Weiterführende Informationen

War dieser Artikel hilfreich?