Vorwort
Der Artikel besteht aus zwei Hauptabschnitten:
Im ersten Teil wird ausgehend von dem ersten AA-Vorschlag aus dem Jahr 2015 eine Zusammenfassung der bisherigen Eip-Vorschläge erstellt. Dabei sollen die historischen AA-Vorschläge untersucht und die Vor- und Nachteile der verschiedenen Ansätze ganzheitlich bewertet werden.
Im zweiten Abschnitt wird insbesondere das schwache Marktfeedback nach der Einführung von EIP4337 im Vergleich betrachtet, und es wird eine detaillierte Analyse von EIP7702 durchgeführt, das in der nächsten Version des Ethereum-Upgrades integriert werden soll. Sobald dieser Vorschlag umgesetzt ist, wird er die Form von On-Chain-Anwendungen auf umfassende Weise verändern.
EIP-7702 hat eine bahnbrechende Veränderung, lassen Sie uns 14 Herrn genau zuhören.
Der Gründer von Ethereum, Vitalik, hat Ende 2023 erneut den Entwicklungsplan für ETH aktualisiert, aber die Einstellungen für die Kontenabstraktion wurden nicht geändert. Das aktuelle Hauptmodell geht von EIP-4337 in die nächste Phase der freiwilligen EOA-Konvertierung (freiwillige Konvertierung von EOA-Konten) über.
Seit der Einführung von EIP4337 (am 1. März 2023 auf der WalletCon in Denver angekündigt, wurde der Kernvertrag ERC-4337, der von Entwicklern der ETH Foundation entworfen und implementiert wurde, nach einer Prüfung durch OpenZeppelin als offiziell eingeführt angesehen Node in der Geschichte).
Obwohl es allgemein anerkannt wird, wird es nicht weit verbreitet verwendet, und in einer so widersprüchlichen Marktsituation wurde der Fortschritt von EIP-7702 deutlich vorverlegt und es wurde bereits bestätigt, dass es in das nächste Upgrade integriert wird.
Keine Worte nötig, schauen Sie sich einfach die Daten an.
Nach anderthalb Jahren Entwicklung gibt es unter den Hauptkettenkonten von EIP4337 nur 12 Millionen Adressen, was besonders überraschend ist, dass es auf dem ETH-Hauptnetz nur 6.764 aktive Adressen gibt. Möglicherweise gibt es statistische Probleme, aber zumindest ist die Anzahl der aktiven Adressen im Vergleich zu EOA und CA sehr gering. Schließlich gibt es bereits 270 Millionen unabhängige Adressen im ETH-Hauptnetz (Quelle: ).
Es kann gesagt werden, dass EIP4337 auf dem Mainnet keine substantielle Entwicklung darstellt.
(Grafikdatenquelle:)
Allerdings löscht dies nicht den Kernwert von AA aus, da dies bereits von Anfang an durch das Design von EIP4337 bestimmt wurde und er nicht in der Lage ist, ernsthafte Probleme mit der Abwärtskompatibilität des Mainnets zu bewältigen. Daher explodiert die Anzahl der Adressen von EIP4337 auf L2, die in verschiedenen L2-Ketten eingebettet sind, zusammen mit einer Vielzahl von L2-Ketten. Die monatlich aktiven Benutzer von base- und Polygon-Chain im Juli erreichen jeweils 1 Million und 3 Millionen, was durchaus bemerkenswert ist.
Also, EIP4337 is not designed wrong, it has many advantages, we will summarize them systematically later. The current situation is due to the differences between Mainnet and L2, and they need to use their respective suitable solutions.
Kontoabstraktion, klingt verwirrend, aber im Wesentlichen löst es das Problem der Eigentumsaufteilung.
Die EVM-Architektur (d. h. Virtuelle Ethereum-Maschine) hat zwei Arten von Konten, externe Konten (EOA) und Vertragskonten (Contract Account). Das Eigentum und die Unterschriftsberechtigung des externen Kontos werden tatsächlich von derselben Einheit gehalten. Personen, die den Private Key besitzen, haben nicht nur das “Eigentum” an diesem Konto, sondern auch das Recht, “alle Vermögenswerte zu unterschreiben und zu übertragen”.
Dies wird durch die Handelsstruktur des Ethereum-Kontos bestimmt.
Aus der Struktur des folgenden Diagramms geht hervor, dass Standardtransaktionen in Ethereum keine Absenderadresse haben. Wenn ich also eine Geldüberweisung getätigt habe, auf welcher Adresse wurden die Mittel tatsächlich ausgegeben? Tatsächlich wird die Absenderadresse durch die VRS-Parameter (d.h. die Benutzersignatur) zurückverfolgt.
Hier geht es um Konzepte wie ECDSA und asymmetrische Verschlüsselung, Einweg-Schwellenfunktionen usw. Wir werden nicht ins Detail gehen, aber insgesamt wird die Sicherheit hier durch Kryptographie gewährleistet, was natürlich zu der aktuellen Situation der Zusammenführung von Eigentumsrechten und der EOA-Adresse führt.
Der Kerneffekt von EIP4337 besteht darin, das Sender Address-Feld im Transaktionsfeld hinzuzufügen, um den Private Key von der verwendeten Adresse zu trennen.
Warum ist die Trennung des Eigentums so wichtig?
Weil das externe Konto (EOA) mehr Probleme aufwirft:
Die Einschränkungen der Berufung machen es für normale Benutzer schwierig, Ethereum zu verwenden:
Zunächst müssen Benutzer, die eine Anwendung auf dem Ethereum-Netzwerk verwenden, ETH halten (und das Risiko der Preisfluktuation von ETH tragen).
Zweitens müssen Benutzer komplexe Gebührenlogik wie Gaspreis, Gaslimit und Transaktionsblockierung (Nonce-Reihenfolge) behandeln, die für Benutzer zu kompliziert sind.
Schließlich haben viele Blockchain-Wallets oder -Anwendungen versucht, die Benutzererfahrung durch Produktverbesserungen zu verbessern, aber ihre tatsächliche Wirkung ist gering.
Der Weg zur Lösung besteht also darin, die Kontoabstraktion zu realisieren und das Eigentumsrecht (Owner) und das Signaturrecht (Signer) zu entkoppeln, um die oben genannten Probleme nacheinander lösen zu können.
Tatsächlich gibt es viele historische Pläne, die letztendlich alle auf zwei Linien zusammenlaufen werden
Es scheint viele Vorschläge zur Lösung des Problems in EIP zu geben, aber letztendlich gibt es nur zwei Kernideen. Daher führen alle bisher nicht genehmigten EIPs zu den aktuellen Lösungsansätzen.
Bereits am 15. November 2015 schlug Vitalik im Zusammenhang mit EIP-101 vor, Verträge als neue Struktur für Konten zu verwenden. Die Adresse sollte nur aus Code und Speicherplatz bestehen, die Gebührenunterstützung sollte von ERC20 übernommen werden, und durch vorab kompilierte Verträge sollten native Token in tokenähnliche ERC20 umgewandelt werden, um das Guthaben zu speichern (mit Funktionen wie Abzugsermächtigung usw.). Die Transaktionsfelder sollten auf nur to, startgas, data und code vereinfacht werden.
Es scheint jetzt eine Art großer Sprung nach vorne zu sein, der eine umfassende Änderung des Grunddesigns bewirkt und jedem KontoAdresse seine eigene “Code”-Logik verleiht (was im Grunde genommen das ist, was EIP-7702 jetzt erreichen möchte).
Es können auch andere Funktionen abgeleitet werden, wie zum Beispiel
Der Grund, warum es nicht weiter vorangetrieben wurde, ist auch sehr einfach. Offensichtlich ist der Schritt zu groß, und das Sicherheitsrisiko des aktuellen Handels-Hash-Konflikts wurde nicht ausreichend berücksichtigt, so dass es immer aufgeschoben wurde, aber das Konzept des Vorteils ist zu einem der Kernfunktionen von EIP4337 und EIP7702 geworden.
Später gab es eine Reihe von EIPs, die versuchten, diese Logik zu verbessern.
EIP-859:Hauptkontoabstraktion–2018-01-30
Versuch, das Bereitstellungsproblem von Code zu lösen, hat die Kernfunktion, dass bei Nichtbereitstellung des Vertrags der Gegenpartei der Vertrag mit dem Code-Parameter des Transfers ausgeführt wird, um die Bereitstellung der Wallet durchzuführen. Darüber hinaus wird ein neuer PAYGAS-Opcode vorgeschlagen, der neben der Bezahlung von Gas auch als Trennzeichen zwischen dem Validierungs- und dem Ausführungsteil eines Transfers dient.
Obwohl es damals ohne Ergebnis endete, wurde dies zu einer der Kernlogiken von EIP7702. Jede Transaktion von EIP7702 kombiniert eine spezielle Transaktionsstruktur und kann bestimmten Code enthalten, um dem EOAAdresse die Fähigkeit eines Smart Contracts in dieser Transaktion zu verleihen.
EIP-7702: EOA Konto-Code 2024-05-07 festlegen
Dies ist auch der Kern des folgenden Diskussionsmechanismus EIP, den Vitalik als Ersatz für EIP-3074 unter der Nummer EIP-7702 veröffentlicht hat (2024-05-07). Daher wurde EIP-3074 verworfen und EIP-7702 wurde für die bevorstehende ETH Prague/Electra(Pectra)Hard Fork übernommen. Die Details werden im folgenden Text erläutert.
**EIP-3074: Hinzufügen der ** AUTH und AUTHCALL Opcode–2020-10-15
Fügen Sie in EVM zwei neue OpCodes AUTH und AUTHCALL ein, damit EOA über diese beiden OpCodes autorisierte Verträge anstelle der Identität von EOA aufrufen kann, um andere Verträge aufzurufen.
Unter Verwendung des folgenden Diagramms kann man zusammenfassend sagen, dass ein EOA eine bereits signierte Nachricht (Transaktion) an einen eigenen vertrauenswürdigen Vertrag (Invoker) senden kann. Dieser Invoker-Vertrag kann die AUTH- und AUTHCALL-Operationcodes verwenden, um anstelle dieses EOA die Transaktion zu senden.
EIP-4337: Implementierung der Kontoabstraktion mit dem Transaktions-Speicherpool–2021-09-29
Insgesamt wurde er durch MEV inspiriert, das Kernziel besteht darin, Änderungen auf der Konsensschicht Protokoll vollständig zu vermeiden.
EIP4337 schlägt ein neues Transaktionsobjekt UserOperation vor. Benutzer senden dieses Objekt an den Mempool, wo es von Bündlern in Chargen von der Miner-Seite aus gepackt und zur Ausführung von Vertrags-Transaktionen übergeben wird. Im Wesentlichen werden die unterliegenden Transaktionen und Kontobewegungen auf Vertragsebene ausgeführt.
EIP-5189: Operation of abstract Konto through endorsers - 2022-06-29
Dies optimiert die Logik von EIP4337 und zielt darauf ab, böswillige Bundler durch die Einführung eines Mechanismus zur Geldstrafen-Endorser-Erstellung zu bekämpfen, um Dos-Blockadeangriffe zu verhindern.
EIP-2718: Umschlag für neue Transaktionstypen - 2020-06-13
Dies ist ein bereits endgültiger Vorschlag, der einen neuen Transaktionstyp definiert, der als Umschlag für zukünftige Transaktionstypen fungiert.
Das Endziel ist, dass bei der Einführung neuer Transaktionstypen durch spezifische Kodierung unterschieden wird, um welche Art von Transaktion es sich handelt, so dass sie nur rückwärtskompatibel sein müssen, ohne vorwärtskompatibel zu sein. Das häufigste Beispiel ist EIP1559, das die Transaktionsgebühren unterscheidet, eine neue Transaktionstypenkodierung verwendet und die ursprünglichen Legacy-Transaktionstypen nicht beeinflusst.
EIP-3607: Ermöglicht das Nicht-Deployen von Verträgen für EOAs Adresse - 2021-06-10
Dies ist ein Ergänzungsplan auf dem AA-Pfad, um das Problem der Konflikte zwischen dem bereitgestellten Vertrag Adresse und EOA Adresse zu verhindern. Es wird die Methode zur Vertragsgenerierung steuern und verhindern, dass der Code auf eine Adresse bereitgestellt wird, die bereits eine EOA Adresse ist. Dieses Risiko ist eigentlich sehr gering, immerhin hat eine Ethereum Adresse eine Länge von 160 Bit. Obwohl es eine Methode gibt, um aus einem privaten Schlüssel eine bestimmte Vertragsadresse zu kollidieren, würde es auch bei voller Rechenleistung für Bitcoin etwa ein Jahr dauern.
Zunächst muss der Wert nach der Umwandlung in CA verstanden werden.
Im Grunde genommen ist es die praktische Wirkung von EIP-4337, die es ermöglicht.
However, the core drawback of EIP-4337 is that it violates the principle of human motivation.
Er scheint besser zu sein, aber er steckt in einer Art Todesspirale der Marktentwicklung fest, viele Dapps sind immer noch nicht kompatibel, so dass Benutzer nicht bereit sind, CA-Adressen zu verwenden, selbst wenn die Verwendung von CA zu höheren Transaktionskosten führt (in normalen Überweisungsszenarien verdoppeln sich auch die Transaktionsgebühren), und es hängt zu sehr von der Kompatibilität der Dapps selbst ab.
Daher hat es bisher keine Verbreitung im Ethereum-Hauptnetzwerk gegeben.
Kosten sind das wichtigste Maß für die Benutzer und müssen gesenkt werden.
Aber um wirklich Gas zu senken, muss Ethereum selbst ein Soft-Fork-Upgrade durchführen, um Gasberechnungen zu ändern oder Gasverbrauchsmodule von Operationcodes zu ändern usw. Aber wenn wir über einen Soft-Fork nachdenken, warum nicht gleich EIP-7702 in Betracht ziehen?
Es unterscheidet sich durch neue Transaktionstypen, die es EOAs ermöglichen, vorübergehend die Funktionen von Smart Contracts in einer einzelnen Transaktion zu haben, und unterstützt so geschäftliche Stapeltransaktionen, Gas-freie Transaktionen und benutzerdefiniertes Berechtigungsmanagement, ohne neue EVM-OpCodes (die die Abwärtskompatibilität beeinflussen) einzuführen.
Er ermöglicht es Benutzern, die Fähigkeit der meisten AA zu erlangen, ohne Smart Contracts bereitzustellen, und kann sogar die Fähigkeit eines Dritten bereitstellen, Transaktionen im Namen des Benutzers zu initiieren, ohne dass der Benutzer seinen Private Key angeben muss, sondern nur die autorisierten Informationen signieren muss.
Er definierte einen neuen Transaktionstyp 0x04, bei dem der Transaktionspayload RLP-codiertes Serialisierungsergebnis des folgenden Inhalts ist
Es ist wichtig, dass das authorization_list-Objekt hinzugefügt wurde, um den Code zu speichern, den die Unterzeichner in ihrer EOA ausführen möchten. Benutzer unterzeichnen Transaktionen und unterzeichnen gleichzeitig den auszuführenden Vertragscode. Es wird als zweidimensionale Liste vorhanden sein, was bedeutet, dass mehrere Operationen in Stapeln gespeichert werden können, um Stapelverarbeitung durchzuführen.
4.3.1 Verifizierungsphase
In der Anfangsphase der Ausführung von Transaktionen wird für jedes authorization_list-Tupel [chain_id, Adresse, nonce, y_parity, r, s] Folgendes durchgeführt:
4.3.2 Ausführungsphase
Wo finde ich den auszuführenden Vertragscode und die Bedienungsanweisungen?
Die “neue” Version ändert nur das Verhalten der Code-Bereitstellung.
Es setzt den Kontocode nicht mehr als contract_code, sondern ruft den Code address aus der authorization_list ab und setzt diesen als Kontocode.
So wenn die Autorisierungscode ausgeführt werden muss, lädt es den code von Adresse im authorization_list und führt ihn im Kontext des Unterzeichners Konto aus.
Das bedeutet, dass der Vertragscode des Benutzers tatsächlich an einer bestimmten Adresse on-chain gespeichert ist und nicht direkt in der Transaktion enthalten ist.
Die Betriebsanweisungen und zugehörigen Parameter werden im Datenfeld der Transaktionslast gespeichert.
Es wird Veränderungen in der gesamten Kette von Web3-Wallet geben, was zu erheblichen Veränderungen im Benutzererlebnis führt, da normale Transaktionen, die von EOA initiiert werden, auch verschiedene logische Aktionen ähnlich einem Vertrag ausführen können, wie z. B. Massentransfers. Dies wird sich auf die Transaktionsauthentifizierung im CeFi-Szenario auswirken und auch die Gebühren für Ein- und Auszahlungen beeinflussen.
Durch sein Auftreten werden viele frühere Vorurteile gebrochen, wie zum Beispiel:
1. Die Vorteile von EIP-7702
Gas ist niedriger, da keine entrypoint-Module benötigt werden und on-chain-Operationen reduziert werden.
Benutzerumzugskosten sind geringer, es ist nicht erforderlich, im Voraus on-chain-Verträge als Hauptkörper bereitzustellen
Im Vergleich zu EIP4337 gibt es auch bei der Code-Delegationsausführung zwei Möglichkeiten:
Vollständige Delegation
Vollständige Delegierung bedeutet, dass die volle Berechtigung für einen Vorgang an eine bestimmte Adresse delegiert wird. Beispielsweise kann ein Benutzer die Verwaltung aller ERC-20-Token an eine Smart-Contract-Adresse delegieren, die alle damit verbundenen Vorgänge im Namen des Benutzers ausführen kann.
Geschützte Delegation
Ein geschützter Auftrag bezieht sich auf die Hinzufügung von Einschränkungen und Schutzmaßnahmen während des Auftrags, um die Sicherheit und Kontrollierbarkeit des Auftragsvorgangs zu gewährleisten.
Zum Beispiel kann ein Benutzer die Verwaltungsbefugnisse für einige ERC-20-Token nur einem Smart Contract übertragen oder bestimmte Einschränkungen festlegen (z. B. maximal 1 % des Gesamtguthabens pro Tag ausgeben).
2. Nachteile von EIP-7702
Sein Hauptnachteil ist, dass er ein Soft Fork-Upgrade ist, das einen großen Konsens erfordert und sich stark auf die On-Chain-Ökologie auswirkt. Nach einer vorläufigen Bewertung von Herrn Shi wurden folgende Herausforderungen identifiziert, aber Herausforderungen sind auch Marktchancen:
Dies sind nur einige der in Bezug auf den aktuellen EIP7702-Vorschlag und die entsprechende offizielle Forendiskussion identifizierten Mängel. Letztendlich muss die Analyse noch auf der Grundlage des endgültigen Implementierungscodes erfolgen.
Siehe unten:
Dieser Artikel scheint umfangreich zu sein, aber der tatsächliche Textinhalt beträgt nur etwas mehr als 6.000 Wörter. Viele frühere Interpretationen von EIP, die im Text erwähnt werden, sind über Links erweiterbar, auf die ich hier nicht weiter eingehen werde.
Aktuell gesehen, Kontoabstraktion kann tatsächlich nur im sechsten Modul, also bei der Reparatur von allem, platziert werden, was auch die letzte Umsetzung bedeutet. Jetzt wird der Fortschritt von EIP7702 deutlich beschleunigt, was hauptsächlich neue Herausforderungen für die Systemsicherheit mit sich bringt. Es ist absehbar, dass er letztendlich realisiert wird, schließlich können sogar revolutionäre Ereignisse wie die ETH Zusammenführung und die Änderung des Konsens-Algorithmus eintreten. Was ist dann schon von neuen Transaktionstypen zu sprechen?
Aber diesmal gibt es zu viele Inhalte, die umgestaltet werden müssen. Es bricht viele ungeschriebene Regeln auf der On-Chain-Seite und zerstört auch die Anwendungslogik der meisten Dapps. Aber es hält fest an dem wichtigsten Punkt, dass die Kosten für Benutzer niedriger sind! Im Vergleich zu den fast verdoppelten Transaktionskosten von EIP4337.
Der Benutzer ist immer noch ein EOAAdresse, aber er treibt und verwendet die CA-Logik nur bei Bedarf, so dass die Haltekosten niedriger sind. Es ist nicht erforderlich, zuerst die Identität des CA auf der Kette umzuwandeln und dann zu handeln, was bedeutet, dass Benutzer sich nicht registrieren müssen.
Benutzer können mit einem EOA leicht mehrere Paralleltransaktionen durchführen, z. B. die Autorisierung und Ausführung von Lastschriften kombinieren, was die Transaktionskosten für den Benutzer selbst senkt. Für Dapps, insbesondere für Projektparteien, die on-chain Unternehmensverwaltung benötigen, wie z. B. Börse, ist dies eine revolutionäre Optimierung. Sobald die Stapelaggregation in der nativen Umgebung implementiert ist, können die Börse-Kosten im Wesentlichen um mehr als die Hälfte reduziert werden, was letztendlich auch den Benutzern zugutekommt.
Daher ist es lohnenswert für alle Dapps, sich mit den Kosten zu befassen, auch wenn sich viel geändert hat, denn dieses Mal stehen die Benutzer definitiv auf der Seite von EIP7702.