Ethereum

Account Abstraction: Die Zukunft der Accounts bei Ethereum?

Eine der weniger bekannten Hoffnungen der Ethereum-Community heißt Account Abstraction: Sie soll die Accounts von Ethereum so intelligent und flexibel machen wie Smart Contracts – und Ethereum damit mainstreamfähig. Wir erklären, was hinter dem Begriff steckt.

Account Abstraction ist eine jener Entwicklungen, von denen sich die Ethereum-Szene vieles erhofft. Sie ist „ein Langzeitraum der Community“ schrieb Vitalik Buterin.

Account Abstraction, heißt es, soll die ersehnte „Mass Adoption“ bringen. Sie soll Ethereum – ach was: Krypto überhaupt – mainstreamfähig machen. Aber was steckt hinter dem Begriff?

„Zusammengefasst“, erklärt das Blog der Wallet Argent, „bringt Account Abstraction Krypto vom gegenwärtigen Zustand, in dem man ein Modell für alles hat und durch einen kleinen Fehler alles verliert, in eine Zukunft, in der ein Account an die individuellen Bedürfnisse angepasst werden kann.“

Dies mache, so Argent weiter, „die Selbsterwahrung zu einer praktikablen Option für ein Mainstream-Publikum. Eine Alternative zu einer gruseligen Welt, in der man zwischen Seedphrasen und zentralisierten Börsen entscheiden muss.“

Klingt spannend? Um es zu verstehen, muss man sich jedoch zuerst vergegenwärtigen, was ein Account ist – und wo seine Grenzen liegen.

Die harte, einfache Logik der Accounts

Ein Account ist bei Ethereum mehr oder weniger dasselbe wie eine Adresse bei Bitcoin: Die Wallet des Users generiert einen privaten Schlüssel, leitet aus diesem einen öffentlichen Schlüssel ab und aus jenem eine Adresse.

Accounts sind einfach gestrickt: Man kann mit der Adresse Coins und Token empfangen, wie mit einer IBAN-Nummer, und man kann sie versenden, wenn man die Transaktion mit dem privaten Schlüssel signiert. Mehr geht nicht.

Diese harte, einfache Logik erlaubt es einem User, seine Schlüssel autonom zu verwalten, entweder als Schlüssel selbst, oder als Seed, aus dem man die Schlüssel ableitet. Das ist für Nerds und Early Adopter super – kann aber für die breite Masse abschreckend sein.

Schlüssel und Seeds können verloren gehen oder gestohlen werden, und wenn dies geschieht, kann den Besitzer nichts mehr retten. Alles, was in dem Account war, ist weg. Das ist die harte, einfache Logik der Accounts. Daher entscheiden sich viele User – völlig zu recht – dafür, ihre Coins einer Börse anzuvertrauen.

Smart Contract Accounts

Bei Ethereum gibt es noch eine zweite Art von Account: Die Smart Contract Accounts. Diese sind in der Lage, ihren Zustand zu ändern, so wie eine Adresse ihr Guthaben, ohne dass ein privater Schlüssel beteiligt ist.

Smart Contract Accounts sind vielfältig. Sie können die ganze Bandbreite der Codes der Ethereum Virtual Machine (EVM) verwenden, um Zustandsänderungen zu programmieren. Ein Smart Contract Account für Token beispielsweise hat als Zustand eine Tabelle mit Token und Accounts.

Mit solchen Smart Contract Accounts kann man die harte, einfache Logik der Accounts aufbrechen. Man kann beliebige Transaktionslogiken einführen:

  • Man kann bestimmen, dass nur ein gewisser Betrag am Tag abgebucht werden kann,
  • dass man zwei oder drei Signaturen braucht, um eine Transaktion auszulösen,
  • dass Transaktionen für eine bestimmte Zeit durch eine dritte Partei rückgängig gemacht werden können,
  • dass die Token, die mit dem Account verbunden sind, an eine bestimmte Adresse zurückfließen, wenn eine gewisse Zeit vergangen ist,
  • dass man ein bestimmtes Token in der Wallet haben muss, um ein anderes zu überweisen, usw.

Smart Contract Accounts ermöglichen eine Vielfalt von neuen Transaktionsbedingungen. Sie erlauben es, Geld – und das Bankkonto – so zu programmieren wie eine App. Sie machen so viel möglich – doch bislang benutzt das Ökosystem weiterhin die einfachen, simplen Standard-Accounts.

„Man kann all diese Dinge mit Smart Contract Wallets schon heute tun,“ schreibt Vitalik Buterin, „doch das Ethereum-Protokoll macht es sehr schwierig, da es verlangt, dass alles in eine Transaktion gepackt ist, die von einem externen Account ausgeht.“

Smart Contracts selbst bilden keine Transaktionen. Sie ändern lediglich ihren Zustand, wenn ein User eine entsprechende Transaktion an sie sendet. Diese Transaktion muss von einem herkömmlichen Account kommen und mit einem privaten Schlüssel signiert sein. Das Problem mit dem Schlüssel und Seeds ist also weiterhin da.

Aber nicht nur das: Smart Contract Accounts machen die Dinge auch viel komplizierter, als sie sein müssten. Ein Beispiel: Man verwahrt Token auf einem Smart Contract, der nur einen bestimmten Betrag je Tag auszahlt. Um eine Auszahlung vorzunehmen, müsste man den Smart Contract durch eine Transaktion von einem herkömmlichen Account triggern. Dafür wiederum muss man eine Gebühr bezahlen, wofür der herkömmliche Account einige Ether braucht.

Um solche Komplikationen zu umgehen, kann man eine dritte Partei ins Spiel bringen, die die Trigger-Transaktion sendet. Aber auch das wäre suboptimal.

Wenn Accounts zu Smart Contracts werden

Accout Abstraction bedeutet, mit Vitalik Buterins verkopfter, aber treffender Art gesagt, dass „der EVM-Code nicht nur genutzt wird, um die Logik der Anwendung zu implementieren,“ – wie bei Smart Contracts – „sondern auch, um die Verifizierung (Nonces, Signaturen …) der Wallets der individuellen User zu implementieren.“

Argent drückt dies etwas weniger komplex aus: „Man macht Accounts zu Smart Contracts mit ihrer eigenen Logik, was eine valide Transaktion ist.“ Accounts werden also zu Smart Contract Accounts, ohne dass eine Trigger-Transaktion durch einen herkömmlichen Account notwendig ist.

„Es ist nicht länger ein Modell für alles,“ fährt Argent fort, „stattdessen kann jeder User einen Account haben, der an seine Bedürfnisse angepasst ist.“ Man kann quasi alles machen. Andere Signaturalgorithmen, etwa quantensichere, Multisig-Accounts, Accounts, die jede Woche ihren Besitzer wechseln, Accounts, die nur eine bestimmte Menge Geld fassen können – es gibt mehr Möglichkeiten, als wir uns ausdenken können.

Man kann Accounts mit „Kindersicherung“ bilden, Accounts, die man durch ein soziales Netz bergen kann, Accounts, bei denen man die Transaktionsgebühren nicht mit Ether, sondern mit Token bezahlt und so weiter.

Und möglich wird all das durch ein winziges Detail: Indem man den Account zum Smart Contract macht.

Drei Vorschläge

Bei all den Vorteilen fragt man sich freilich: Warum gibt es das noch nicht? Wenn alle es wollen, und es so viel verspricht – worauf wartet man dann noch?

Der Grund ist, so Argent, dass es nicht einfach ist. Account Abstraction benötigt „mehrere Änderungen am Herzen des Protokolls.“ Solche Änderungen sind hart zu koordinieren, desto härter, je älter und größer Ethereum ist. Daher wird Account Abstraction seit 2016 diskutiert, aber ist noch immer nicht implementiert.

Dabei gibt es mehrere vielversprechende Vorschläge:

  • EIP2938 schlägt eine reduzierte Art von Account Abstraction vor, die es Smart Contract Accounts erlauben, als „Top-Level Accounts“ zu fungieren – als Accounts also, die Transktionen initiieren und die Gebühren bezahlen können. Dazu wird ein neuer Transaktionstyp und zwei neue opcodes eingeführt, was die Änderung überschaubar und einfach macht. Der Preis dafür ist allerdings, dass EIP2938 nicht sämtliche möglichen Funktionen unterstützt, und die alten Accounts nicht ersetzt.
  • EIP3074 geht den anderen Weg: Es möchte die existierenden Accounts mit Fähigkeiten wie von Smart Contracts bereichern. User sollen in der Lage sein, die Kontrolle über den Account an einen Smart Contract zu delegieren. So können die User mit ihren existierenden Accounts von Account Abstraction profitieren, ohne neue Accounts generieren zu müssen. Dabei jedoch müssen die User weiterhin ihre Seed-Phrasen speichern, weshalb Argent es damit vergleicht, Kutschen durch schnellere Pferde zu modernisieren.
  • EIP4337 kommt der vollen Account Abstraction am nächsten, ohne konsensrelevante Änderungen zu benötigen. Es ist aber auch der mit Abstand komplexeste Vorschlag. Er bricht die Transaktion in einzelne Operationen auf, die die Miner oder Staker dann zusammensetzen und ausführen. Dies macht es einfach, Smart Contract Wallets zu bilden, ohne sich um die Transaktionsgebühren zu sorgen. Zugleich wäre die Implementierung von EIP4337 relativ disruptionslos, da die alten Accounts weiterhin erhalten blieben.

Argent scheint mit keinem der Vorschläge zu 100 Prozent glücklich, würde aber jeden als Fortschritt begrüßen. Doch wenn es mehrere Ansätze gibt, aber keine klare Kriterien, um sie zu bewerten, ist es schwierig, sich für einen zu entscheiden. Das könnte bedeuten, dass es noch sehr lange dauert, bis Account Abstraction zu Ethereum kommt.

P2SH

In gewisser Weise ist Bitcoin hier weiter als Ethereum. Mit dem P2SH-Adressformat gibt es bei Bitcoin schon eine Art Account Abstraction: Eine P2SH-Transaktion wird getriggert, indem man das Script vorlegt, das auf eine vorher bestimmte Hash aufgeht. Prinzipiell kann man in das Script alles reinpacken.

Damit kann man bereits Multisig-Adressen bilden, die, anders als bei Ethereum, nicht durch eine Transaktion von einer anderen Adresse getriggert werden müssen. Man kann auch Adressen bilden, auf denen die Guthaben bis zu einem bestimmten Zeitpunkt eingefroren sind, und es gibt Pläne, dadurch sogenannte „Vaults“ zu erlauben, die Auszahlungen nur unter bestimmten Bedingungen zulassen.

P2SH-Adressen kommen der gewünschten Account Abstraction nahe – haben aber ihre ganz eigenen Probleme. So unterstützen sie nur begrenzte Funktionen, haben meist eine fürchterliche Nutzererfahrung, und oft finden die wesentlichen Operationen offchain statt – etwa die Signatur einer Multisig-Transaktion –, wofür es dann kein allgemein gängiges Protokoll gibt.

Es gibt also Gründe, sich auf die Account Abstraction bei Ethereum zu freuen.

   

Source


Show More
Close

Werden Sie Millionär, indem Sie mit Crypto handeln!