
Vorwort
Dieser Artikel ist in zwei Hauptmodule unterteilt:
In der ersten Hälfte werden wir ab dem ersten AA -Vorschlag von 2015 den Hauptinhalt des EIP -Vorschlags systematisch organisieren, in der Hoffnung, die Geschichte des AA -historischen Vorschlags zu untersuchen und die Vor- und Nachteile jedes Plans umfassend zu bewerten.
In der zweiten Hälfte konzentrieren wir uns auf den Vergleich des Feedbacks des Marktes nach dem Vorschlag und analysieren dann eine eingehende Analyse von EIP7702, die in der nächsten Version des Ethereum-Upgrades enthalten sein wird. Es wird das Antragsformular für Onkain in allen Aspekten ändern.
EIP-7702 hat epochempfindliche Veränderungen. Lassen Sie mich die vierzehn Könige im Detail anhören
1. Konto abstrakter Hintergrund
1.1 Die abstrakte Bedeutung Positionierung des Kontos
Der Gründer von Ethereum Vitalik hat die ETH -Entwicklungs -Roadmap Ende 2023 erneut aktualisiert, aber die Einstellungen für die Abstiegsabstraktion wurden nicht geändert.Das heutige Mainstream-Modell ist von EIP-4337 bis zur nächsten Stufe der Voluntaryeoa-Umwandlung (freiwillige Umwandlung von EOA-Konto).
https://x.com/vitalikbuterin/status/1741190491578810445
Mehr als ein Jahr seit dem Start von EIP4337 (bei Denver Walletcon, 2023.3 als offizielle Geschichte seines Starts angesehen.
Es wurde immer allgemein von Benutzern anerkannt, aber nicht weit verbreitet.
1.2 Konto abstrakter Marktstatus
Sie müssen nicht viel sagen, schauen Sie sich nur die Daten an.
Nach anderthalb Jahren hat EIP4337 nur 1200W -Adressen unter der Sammlung von Mainstream -Kettenkonten. Zumindest die Anzahl der Adressen, die sich sehr von EOA und CA unterscheiden. .
Es kann gesagt werden, dass EIP4337 im Hauptnetz keine wesentliche Entwicklung hat.
(Quelle der Diagrammdaten: https://dune.com/niftytable/account-abstraction)
Dies löscht jedoch nicht den wesentlichen Wert von AA, da er von Beginn des Entwurfs von EIP4337 bestimmt war. Ketten.
Daher ist EIP4337 falsch.
2. Was ist Account Abstraktion?
Kontoabstraktion klingt rätselhaft, aber tatsächlich löst sie im Wesentlichen das Problem der Trennung von Eigentumsrechten.
Es gibt zwei Arten von Konten in der EVM -Architektur (d. H. Virtual Machine), externes Konto (EOA) und Vertragskonto (Vertragskonto) und externes KontoEigentumUndUnterschrift richtigTatsächlich wird es von derselben Einheit gehalten.haltenPrivatschlüsselDie Person besitzt nicht nur das „Eigentum“ dieses Kontos, sondern hat auch das Recht auf „Signaturübertragung aller Vermögenswerte“.
Dies wird durch die Transaktionsstruktur des Ethereum -Kontos bestimmt
Aus der unten stehenden Struktur können wir feststellen, dass die Standardtransaktionen von Ethereum nicht von der Übertragung von Fonds durchgeführt werden.Tatsächlich wird die From -Adresse über seine VRS -Parameter (d. H. Benutzersignatur) umgekehrt analysiert.
Dies beinhaltet Konzepte wie ECDSA, Einweg-Schwellenfunktionen usw. Wir werden es nicht erweitern.
Der Kerneffekt von EIP4337 besteht darin, dem Transaktionsfeld ein Bereich der Absenderadresse hinzuzufügen, damit der private Schlüssel von der betriebenen Adresse getrennt werden kann.
Warum ist die Trennung der Eigentumsrechte dann so wichtig?
Weil das Entwurf des externen Kontos (EOA) zu mehr Problemen führt:
-
Private Schlüssel sind schwer zu schützen: Der Benutzer verliert den privaten Schlüssel (verloren, hackt, kryptografisch geknackt). Sie bedeutet, alle Vermögenswerte zu verlieren.
-
Es gibt nur wenige Signaturalgorithmen: Native Protokolle können nur die ECDSA -Signatur- und Signaturverifizierungsalgorithmen in Verifizierungstransaktionen verwenden.
-
Hohe Signaturberechtigung: Keine native Multisignierung (mehrere Unterzeichnungen können nur durch intelligente Verträge erreicht werden), und willkürliche Vorgänge können durch einzelne Unterzeichnungen durchgeführt werden.
-
Transaktionsgebühren können nur über ETH bezahlt werden und unterstützen keine Massentransaktionen.
-
Transaktions Datenschutzunterbrechung: Eins-zu-Eins-Transaktionen sind leicht zu den Datenschutzinformationen von Kontoinhabern zu analysieren.
Die Berufungsbeschränkungen erschweren den normalen Nutzern, Ethereum zu verwenden:
Erstens müssen Benutzer mit einer App auf Ethereum Ether halten (und das Risiko von Ätherpreisschwankungen eingehen).
Zweitens müssen Benutzer mit komplexer Kostenlogik umgehen, und die Konzepte von Gaspreis, Gasgrenze und Transaktionsblockierung (Nicht -CECE -Bestellung) sind für Benutzer zu kompliziert.
Während viele Blockchain -Brieftaschen oder Anwendungen versuchen, die Benutzererfahrung durch Produktoptimierung zu verbessern, haben sie nur geringe Auswirkungen.
Daher besteht die Art und Weise, die Deadlock zu brechen, darin, die Abstrakt- und Entkopplung des Eigentums (Eigentümer) und Unterschriftenrecht (Unterzeichner) zu realisieren, um die oben genannten Probleme einzeln zu lösen.
Tatsächlich gibt es viele historische Pläne, und sie werden sich schließlich auf zwei Strecken versammeln.
3.. Klären Sie den Kontext von historischen AA -Vorschlägen
Es scheint viele EIP -Vorschläge für die Lösung des Problems zu geben, aber letztendlich sind sie zwei Kernideen. Aktueller Plan.
3.1 Die erste Route besteht darin, die EOA -Adresse in die CA -Adresse zu ändern
Bereits am 15. November 2015 schlug Vitalik eine neue Struktur für die Verwendung von Verträgen als Konto um EIP-101 vor.Ändern Sie die Adresse nur in Code und Speicherplatz, ändern Sie die Bearbeitungsgebühr und unterstützen Sie die Zahlung durch ERC20, ändern Sie das native Token in ERC20 durch Vorkörperverträge, um den Restbetrag zu sparen (können Funktionen wie die Abzugsgenehmigung haben) und optimieren Sie die Transaktionsfelder nur auf nur auf nur auf nur auf die Felder der Transaktion auf zu startengas, Daten und Code.
Jetzt scheint es eine große Änderung des Sprung nach vorne, was das zugrunde liegende Design erheblich verändert, sodass jede Kontoadresse eine eigene „Code“ -Logik hat (tatsächlich ist es genau der Effekt, den EIP-7702 jetzt erreichen muss).
Es kann auch andere Funktionen erzeugen, wie z.
-
Mit Transaktionen werden mehr Verschlüsselungsalgorithmen verwendet, und die Signaturüberprüfungsmethode kann durch den internen Code jeder Adresse angegeben werden.
-
Es hat die Eigenschaften von Anti-Quantum-Angriffen, da der Code die Merkmale des Upgrades aufweist.
-
Lassen Sie Ethereum funktionelle Eigenschaften haben, die mit dem ERC20 -Vertrag übereinstimmen, und der Kerneffekt wird autorisiert, so dass der Verlust der nativen Münzen nicht erforderlich ist.
-
Verbessern Sie den benutzerdefinierten Raum des Kontos, kompatibel mit sozialer Genesung, SBT -Unterstützung, wichtiger Wiederherstellung usw.
Der Grund, nicht weiter voranzukommen, ist auch sehr einfach. ist eine der Kernfunktionen der nachfolgenden EIP4337 und EIP7702 geworden.
Später gab es eine Reihe von EIPs, die versuchten, diese Logik zu verbessern
EIP-859: Hauptkettenkonto Abstraktion-2018-01-30
Der Versuch, das Bereitstellungsproblem des Codes zu lösen, ist die Kernfunktion, dass der Vertragswallet -Bereitstellungsvertrag unter Verwendung der beigefügten Codesparameter der Transaktion vorgeschlagen wird, wenn der Transaktionsparteivertrag nicht bereitgestellt wird. zum Bezahlen von Gas wird auch zu einer Transaktion.
Obwohl es zu dieser Zeit vergeblich endete, ist dies zu einer der Kernlogiken von EIP7702 geworden. .
EIP-7702: EOA-Kontocode 2024-05-07 einrichten
Dies ist auch der zentrale EIP des Mechanismus, der im nachfolgenden Artikel diskutiert wurde, und Vitalik veröffentlichte EIP-7702 als Alternative zu EIP-3074 (2024-05-07).Daher wurde EIP-3074 veraltet und EIP-7702 wurde festgestellt, dass sie in die bevorstehende ETH Prag/Electra (Pectra) -Harte Gabel aufgenommen werden.
3.2 Die zweite Route besteht darin, die EOA -Adresse die CA -Adresse fortzusetzen lassen
EIP-3074: hinzugefügtAuth
UndAuthcall
Opcode-2020-10-15
Fügen Sie EVM zwei neue Opcodes hinzuAuth
UndAuthcall
, um EOA zuzulassen, andere Verträge anstelle der Identität von EOA über diese beiden Opcode -Autorisierungsverträge anzurufen.
Basierend auf der folgenden Abbildung kann eine Zusammenfassung der EOA eine signierte Nachricht (Transaktion) an sendenEin Vertrag, dem Sie vertrauen(angerufenInvoker
) DaraufInvoker
Verträge können verwendet werdenAuth
UndAuthcall
Der Opcode wird verwendet, um diese Transaktion anstelle dieser EOA zu senden.
EIP-4337: Verwenden Sie den Transaktionsporbecken, um Kontoabstraktion-2021-09-29 zu realisieren
Kurz gesagt, er ließ sich von MeV zum Design inspirieren, und sein Kernwert war, dass es sich um Veränderungen des Konsensschichtprotokolls vollständig vermeiden konnte.
EIP4337 schlägt ein neues Transaktionsobjekt vorBenutzeroperation
, der Benutzer sendet dieses Objekt an den Speicherpool nachBundler
Bulk -Paket -Lieferverträge zur Ausführung von Transaktionen aus der Dimension des Bergmanns, die im Wesentlichen die zugrunde liegenden Transaktionen und Kontovorgänge für die Ausführung auf die Vertragsebene bringen.
EIP-5189: Betrieb abstrakter Konten durch Bestätigung-2022-06-29
Dies hat die Logik von EIP4337 optimiert und steht vor MissblendigkeitBundler
Verhindern Sie DOS -Blockierungsangriffe, indem Sie einen Mechanismus für Endorser für Fonds festlegen.
3.3 weitere Vorschläge zur Unterstützung von AA
EIP-2718: Verpackungsumschläge für neue Transaktionstypen-2020-06-13
Dies ist ein endgültiger Vorschlag, der in Zukunft einen neuen Transaktionstyp als Umschlag für neue Transaktionstypen definiert.
Der Endeffekt ist, dass ein neuer Transaktionstyp durch eine bestimmte Codierung unterschieden wird, so dass er nur ohne Vorwärtskompatibilität rückwärtskompatibilität benötigt.Das häufigste Beispiel ist EIP1559.
EIP-3607: LassEOA
Die Adresse kann nicht vertraglich-2021-06-10 eingesetzt werden
Dies ist eine ergänzende Lösung auf dem AA -Pfad, um das Problem der Vertragsbereitstellung zu verhindern, dass die EOA -Adresse widersprüchlich ist.Es steuert die Vertragsgenerierungsmethode so, dass das System nicht zulässt, dass der Code an Adressen bereitgestellt wird, die bereits EOA -Adressen sind.Dieses Risiko ist schließlich sehr klein. Strominvestition von Bitcoin.
3.4 Wie kann man die abstrakte Entwicklungsgeschichte des Kontos verstehen?
Zunächst müssen Sie den Wert nach der Konvertierung in CA verstehen
Grundsätzlich ist es die tatsächliche Wirkung von EIP-4337, die erreichen kann
Der Kernnachteil von EIP-4337 besteht jedoch darin, dass er gegen das Prinzip der menschlichen Motivation verstößt.
Es scheint besser zu sein, aber es ist in einem Teufelskreis der Marktentwicklung gefangen. CAS zu verwenden.
So wurde es bisher im Hauptnetzwerk von Ethereum nicht populär gemacht.
Die Kosten sind für Benutzer die wichtigste Maßnahme, und die Kosten müssen gesenkt werden.
Um das Gas wirklich zu reduzieren, muss Ethereum selbst weiche Gabeln aktualisieren, den Gasverbrauch und andere Module wie Gasberechnungen ändern oder Opcodes ändern.
4. Umfassende Analyse von EIP-7702
4.1 Was ist EIP-7702
Es unterscheidet es durch neue Transaktionstypen, sodass EOA die Funktion intelligenter Verträge in einer einzigen Transaktion vorübergehend haben kann, wodurch Stapeltransaktionen, gasfrei Vorwärtskompatibilität).
Es ermöglicht Benutzern, die meisten Funktionen der AA ohne Bereitstellung von intelligenten Verträgen zu erhalten, und kann sogar Funktionen von Drittanbietern bereitstellen, um Transaktionen im Namen von Benutzern zu initiieren, ohne dass Benutzer private Schlüssel bereitstellen, nur Unterzeichnungen und autorisierte Informationen bereitstellen können.
4.2 Datenstruktur
Es definiert einen neuen Transaktionstyp 0x04, und die Transaktionspayload dieses Transaktionstyps ist das RLP -Codierungsergebnis des folgenden Inhalts
Wichtig ist, dass das Objekt des Autorisierungslisten hinzugefügt wird, um den Code zu speichern, den der Unterzeichner in seiner EOA ausführen möchte. Mehrere Betriebsinformationen können in Chargen gespeichert werden.
4.3 Transaktionslebenszyklus
4.3.1 Überprüfungsphase
Zu Beginn der Transaktionsausführung für jede Autorisierung_List[Chain_id, Adresse, Nonce, Y_Parity, R, S]
Tupel:
-
Verwenden Sie Erecover, um die Unterzeichneradresse aus den Signaturen R und S wiederherzustellen (beachten Sie, dass dies der Mechanismus von Ethereum selbst ist, sodass dieser EIP den Signaturalgorithmus nicht ändert).
Authority = EcRecover (Keccak (Magic || rlp ([chain_id, adressierte, nonce])), y_parity, r, s]
(Ähnlich wie bei der vorherigen Entscheide, um die From-Adresse zu erhalten, wird die lokale Signaturadresse für diese Liste erhalten) -
Überprüfen Sie die Ketten-ID (Anti-Hilfsketten-Wiederholung).
-
verifizieren
Behörde
Ob der Code des Unterzeichners leer ist oder delegiert wurde (überprüfen Sie, ob die Transaktion eine gültige 7702 -Transaktion ist und die Transaktion in Zukunft über den Delegationsmechanismus ausgeführt wird). -
verifizieren
Behörde
Nonce’s Nonce (VerteidigungBehörde
Signature Wiedergabe). -
aufstellen
Behörde
Der Code des Unterzeichners ist0xef0100 ||
(Wird zur Umgehung von EIP3607-Anti-Kollisions-Strategie verwendet) -
Zunahme
Behörde
Nonce des Unterzeichners (verhindern die lokale Signature -Wiederholung). -
Wille
Behörde
Fügen Sie das Signierer -Konto in die auf zugegriffene Adressliste hinzu (ersetzen Sie heiße Adressen, reduzieren Sie die Gasgebühr für Abfragestellen).
4.3.2 Ausführungsbetriebsphase
Wo sind die Vertragscodes und Betriebsanweisungen auszuführen?
Die „neue“ Version ändert das Verhalten nur in Bezug auf die Codebereitstellung.
Es legt den Kontocode nicht mehr aufcontract_code
, aber vonAutorisierung_List
Suchcode inAdresse
Und setzen Sie den Code als Kontocode.
Wenn also der Autorisierungscode ausgeführt werden muss,Autorisierung_List
vonAdresse
Die vom Feld angegebene Adresse lädt den Code und wird im Kontext des Signierer -Kontos ausgeführt.
Dies bedeutet, dass der Vertragscode des Benutzers tatsächlich an einer bestimmten Adresse in der Kette gespeichert wird, anstatt direkt in die Transaktion einbezogen zu werden.
Die Betriebsanweisungen und zugehörigen Parameter werden in der Transaktionslast gespeichertDaten
im Feld.
4.4 Was ist der Wert von EIP-7702?
Sein vollständiger Link von Web3 Wallet wird sich ändern, und die Benutzererfahrung wird sich auch drastisch ändern, da von EOA initiierte gewöhnliche Transaktionen auch mehrere Logiken ausführen können, die den Verträgen wie Batchtransfers ähneln.Für CEFI -Szenarien wirkt sich dies auf die Identifizierung der Transaktion aus und wirkt sich auch auf die Abhebungserscheinungsgebühr aus
Aufgrund seines Aussehens hat es viele der früheren Konstellationen gebrochen, wie z. B.:
-
Bricht einen Invarianten, dessen Kontostand nur durch Transaktionen, die aus diesem Konto stammen, reduziert werden.
-
Brechen Sie den Invarianten, dass EOA Nonce nach Beginn der Transaktionsausführung um 1 (vielleicht mehr als eine gleichzeitig) zunimmt.
-
Brechen Sie die Schutzlogik des Vergleichs von TX.Origin und MSG.Sender, viele vergangene Verträge sind riskant.
-
Es bricht die aktuelle Situation, in der EOA selbst keine Ereignisse ausstellen kann, und es kann möglicherweise erforderlich sein, auf die Identifizierung und das Anhören einiger On-Chain-Ereignisse zu achten.
-
Brechen Sie die aktuelle Situation, die EOA behandelt, unweigerlich gelingen, ERC20, 721, 1155 und andere Vermögenswerte zu akzeptieren (aufgrund des Rückrufmechanismus kann es möglicherweise fehlschlagen)
4.5 Vergleich von EIP-7702 und EIP-4337
1. Vorteile von EIP-7702
Gas ist niedriger, da es nicht erforderlich ist, das Einstiegspunktmodul zu durchlaufen, wodurch die Onkettenoperationen reduziert werden müssen.
Die Migrationskosten der Benutzer sind niedriger, und es ist nicht erforderlich
Im Vergleich zu EIP4337 wird auch eine Code -delegierte Ausführung geben, und es wird zwei Möglichkeiten geben:
Vollständige Delegation
Der vollständige Delegieren bezieht sich auf die Delegierung aller Berechtigungen eines Betriebs an eine bestimmte Adresse.Beispielsweise kann ein Benutzer die Verwaltungsberechtigungen aller ERC-20-Token an eine Smart-Vertragsadresse delegieren, damit dieser intelligente Vertrag alle zugehörigen Vorgänge im Namen des Benutzers ausführen kann.
Geschützte Delegation
Die geschützte Delegation bezieht sich auf das Hinzufügen von Einschränkungen und Schutzmaßnahmen zum Delegationsprozess, um die Sicherheit und Kontrolle des Delegationsvorgangs zu gewährleisten.
Zum Beispiel können Benutzer die Verwaltungsberechtigungen nur für einen Teil der ERC-20-Token zu einem intelligenten Vertrag delegieren oder einige Beschränkungen festlegen (z. B. bis zu 1% des Gesamtbetrags pro Tag).
2. Nachteile von EIP-7702
Sein Kernnachteil ist, dass es sich um ein Softgabel -Upgrade handelt, das den Konsens und die Werbung für jeden erfordert und große Veränderungen hat, was eine große Auswirkung auf die Kettenökologie hat. Die Herausforderung ist die Marktchance:
-
Der Grad der Freiheit ist extrem hoch und schwierig zu prüfen.
-
Die ursprüngliche Architektur hat sich zu stark verändert.
-
Für EOA -Adressen wird Vertragsfähigkeit bereitgestellt, der entsprechende Speicherplatz kann jedoch nicht beibehalten werden.
-
Die Kosten einer separaten Transaktion werden leicht erhöht
16 (Gas) * 15 (Bytes) = 240
(Gas) CallData-Kosten plus EIP-3860 Kosten2 * 15 = 30
, plus ungefähr Laufzeitkosten150
.Wenn Sie daher nur ein Konto vorbereiten und nichts tun, müssen Sie 500 Gas hinzufügen. -
„Wenn der Empfänger einen Code ohne Empfangsfunktion unterschreibt, kann der Absender bei dem Versuch des Vermögenswerts antreten.“Das Problem ist, dass EOA A etwas unterschreibt, das es nicht unterschreiben sollte – eine Fehlerimplementierung einrichten (Nein
erhalten()
) Spielbare Datei. -
Die On-Chain-Rückzugslogik kann beispielsweise bei der Übertragung von ERC-20-Token inkonsistent sein, wenn das Konto des Empfängers Code hat, wird der Token-Vertrag aufgerufen
ONERC20RECEIVED
Empfängerkonto.WennONERC20RECEIVED
Stellen Sie den falschen Wert wieder her oder geben Sie den falschen Wert zurück, und die Token -Übertragung wird wiederhergestellt. -
Wenn EOA Ereignisse ausstellen kann, wird es dann Probleme geben?Eine Infrastruktur benötigt möglicherweise Aufmerksamkeit.
Dies sind nur einige Mängel, die vom vierzehn Jun zusammengefasst sind, basierend auf dem aktuellen Inhalt des EIP7702 -Vorschlags und der entsprechenden offiziellen Forum -Diskussion.
Referenzen sind wie folgt:
5. Volltextzusammenfassung
Dieser Artikel scheint großartig zu sein, aber in der Tat ist der Textinhalt nur mehr als 6K -Wörter.
Gegenwärtig kann die Account -Abstraktion nur in das sechste Modul platziert werden, dh alles, dh sie wird endlich implementiert Kann erwartet werden, dass er es letztendlich umsetzen wird.
Diesmal gab es jedoch zu viel Subversion, brach die unmöglichen unmöglichen Regeln für mehrere Ketten und brach die Anwendungslogik der meisten DAPPs, aber es war am wichtigsten, dh die Kosten der Benutzer sind jetzt niedriger!Im Vergleich zu den fast doppelten Transaktionskosten von EIP4337.
Der Benutzer selbst ist immer noch eine EOA -Adresse und fährt und verwendet bei Bedarf nur CA -Logik, sodass die Haltekosten niedrig sind.Sie müssen nicht zuerst die Identität des Onkains konvertieren, bevor der Betrieb durchgeführt wird, was bedeutet, dass sich der Benutzer nicht registrieren muss.
Benutzer können EOA problemlos verwenden, um mehrere Transaktionen zu erreichen, z. Störende und Optimierung.
Obwohl er sich stark verändert hat, lohnt es sich, alle DApps zu studieren und anzupassen, da der Benutzer diesmal auf der Seite von EIP7702 sein muss.