Vai al contenuto

Account abstraction

Comprendere l'account abstraction su Ethereum attraverso smart account ERC-4337, versioni di EntryPoint, UserOperations, bundler, paymaster, canali di nonce, validazione, esecuzione, delega EIP-7702 e rischi di commissione e recupero.

Aggiornato

Solo a scopo educativo; non costituisce consulenza né raccomandazione d’investimento. Gli investimenti possono comportare perdite.

Risposta diretta

L’account abstraction rende programmabili le regole di autorizzazione ed esecuzione di un account. Su Ethereum, ERC-4337 la realizza senza cambiare il tipo di transazione del consenso: un wallet invia una UserOperation tramite infrastruttura RPC dedicata, un bundler inserisce una o piu operazioni in una normale transazione verso un EntryPoint versionato e lo smart account convalida ed esegue la propria operazione. Recupero, passkey, chiavi di sessione, limiti di spesa, batching e sponsorizzazione delle commissioni sono funzioni dell’account o del servizio costruite su questo flusso, non garanzie automatiche di ERC-4337.

ERC-1271 standardizza invece il modo in cui un contratto convalida una firma su un messaggio, mentre EIP-7702 consente a un externally owned account (EOA) di delegare l’esecuzione a codice. I meccanismi possono interoperare, ma non condividono un’unica interfaccia, nonce, distribuzione o modello di sicurezza. L’account abstraction non elimina credenziali, costi del gas, rischio contrattuale o la necessita di verificare catena e implementazione esatte.

Flusso ERC-4337 in sette passaggi

  1. Fissare l’ambiente: chainId, implementazione e controlli di aggiornamento dello smart account, factory, versione, indirizzo e hash del codice distribuito di EntryPoint, supporto del bundler e attivazione di EIP-7702 sulla catena. Un indirizzo valido per una release o catena non e una costante universale.
  2. Costruire l’operazione per la versione corretta. I campi logici attuali comprendono sender, nonce, factory, factoryData, callData, callGasLimit, verificationGasLimit, preVerificationGas, maxFeePerGas, maxPriorityFeePerGas, campi opzionali del paymaster e signature. EntryPoint riceve on-chain una rappresentazione compressa; le chiamate di destinazione sono codificate nel callData definito dall’account, non in un campo target universale.
  3. Vincolare l’autorizzazione al dominio corretto. Lo userOpHash copre l’operazione salvo la firma e la vincola a EntryPoint e alla catena. validateUserOp verifica proprietario, multisig, passkey, sessione o altra policy. ERC-1271 isValidSignature e un’interfaccia distinta per firme contrattuali; un aggregator opzionale puo convalidare firme aggregate. La tupla EIP-7702 e fornita separatamente dalla UserOperation.
  4. Dimostrare la capacita di pagare. L’account puo prefinanziare con il saldo presso EntryPoint, oppure un paymaster puo accettare condizionatamente l’obbligo dal proprio deposito. Puo sponsorizzare, addebitare token, applicare allowlist o quote ed eseguire postOp; ERC-4337 non stabilisce queste regole commerciali. Lo stake sostiene validazione e reputazione, il deposito paga il gas.
  5. Stimare e inviare tramite RPC ERC-7769. Il bundler convalida alla ricezione, prima della selezione e durante la costruzione del bundle. ERC-7562 limita opcode e accessi allo storage in validazione e supporta controlli reputazionali contro DoS. La simulazione verifica ammissione e pagamento; per prevedere l’esecuzione economica serve una simulazione distinta della chiamata completa.
  6. Il bundler chiama handleOps. EntryPoint esegue eventuale distribuzione consentita, validazione di account e paymaster, controlli del prefinanziamento e aggregazione opzionale prima dell’esecuzione. Una validazione fallita impedisce l’operazione; la chiamata target puo ancora andare in revert dopo un’ammissione valida e consumare gas. Atomicita o successo parziale del batch interno dipendono dal codice dell’account.
  7. Riconciliare ricevute e stato. Confrontare ricevuta UserOperation, transazione bundle, eventi EntryPoint, distribuzione, eventi target, gas effettivo, addebito token, rimborso e saldi finali. Monitorare quindi canali di nonce, proprietari, recupero, revoca delle sessioni, moduli, aggiornamenti, alternative bundler/paymaster, riorganizzazioni e migrazione o redelega EIP-7702.

Quattro esempi svolti

  • Budget del gas semplificato. Un’operazione prevede 120,000 gas di esecuzione, 90,000 di validazione account, 45,000 di validazione paymaster, 40,000 di prevalidazione e 30,000 di post-operazione paymaster: 120,000 + 90,000 + 45,000 + 40,000 + 30,000 = 325,000 gas. Con maxFeePerGas = 30 gwei, il tetto semplificato e 325,000 × 30 gwei = 0.009750 ETH. Se l’uso effettivamente addebitabile e 210,000 gas a 22 gwei, il costo e 0.004620 ETH. Versione EntryPoint, penalita, dati L1 e prezzi rollup possono modificare gli importi: e un budget, non una formula universale di prefinanziamento.
  • Canale nonce parallelo. Con una 192-bit key e una 64-bit sequence, chiave 7 e sequenza 42 codificano nonce = (7 << 64) | 42 = 129127208515966861354 = 0x7000000000000002a. Dopo l’inclusione, il canale attende 43; ripetere 42 fallisce. Un’altra chiave puo avere una sequenza indipendente secondo logica dell’account e regole del bundler.
  • Capacita del paymaster. Un paymaster ha 0.50 ETH depositati e ogni operazione richiede una garanzia massima di 0.03 ETH. Copre floor(0.50 / 0.03) = 16 operazioni, riserva 0.48 ETH e lascia 0.02 ETH. La diciassettesima richiede piu deposito o garanzia inferiore. Lo stake non sostituisce il deposito per commissioni.
  • Revert dell’esecuzione dopo l’ammissione. Un’operazione riserva fino a 0.0060 ETH; la validazione riesce, ma il target va in revert dopo 180,000 gas × 25 gwei = 0.0045 ETH. Lo stato target viene ripristinato, ma account o paymaster deve ancora 0.0045 ETH; i 0.0015 ETH inutilizzati seguono le regole applicabili di regolamento e penalita. Una simulazione riuscita non promette successo economico, inclusione o finalita.

Rischi e controlli

  • Catena, indirizzo, release o hash del codice EntryPoint errati possono invalidare o deviare l’operazione.
  • Una firma priva del dominio di catena o EntryPoint puo consentire replay.
  • Factory, indirizzo controfattuale, inizializzazione o salt possono essere sostituiti o calcolati male.
  • La delega EIP-7702 puo puntare un EOA a codice dannoso con ampia autorita.
  • Front-running o ripetizione dell’inizializzazione possono sottrarre o corrompere l’account.
  • Upgrade proxy o redelega possono collidere con il layout di storage.
  • Un amministratore di upgrade o moduli compromesso puo sostituire il comportamento dell’account.
  • Errori in proprietario, multisig, passkey o ERC-1271 possono autorizzare furti o bloccare fondi.
  • Soglie, ritardi, guardian e percorsi di annullamento del recupero possono fallire o essere compromessi.
  • Le chiavi di sessione possono eccedere target, token, importo, durata o funzione previsti.
  • I canali nonce possono collidere, avere lacune, essere riprodotti o bloccare operazioni dipendenti.
  • Guasti dell’aggregator o dell’aggregazione possono bloccare operazioni valide.
  • I bundler possono censurare, andare offline, applicare policy locali o rifiutare mempool alternativi.
  • UserOperations pubbliche possono esporre intenzioni a correlazione, front-running e MEV.
  • Cambiamenti di stato dopo la simulazione possono invalidare l’operazione durante il bundle.
  • Il paymaster puo rifiutare il servizio, esaurire il deposito o fallire in postOp.
  • Addebiti in token implicano rischio cambio, allowance, spread e margine del servizio.
  • Gas sottostimato puo causare revert; limiti eccessivi aumentano riserva o penalita.
  • Il batch dell’account puo consentire successo parziale quando si attendeva rollback atomico.
  • Bug del protocollo target, front end ostili, riorganizzazioni e finalita debole restano esterni all’AA.

Errori comuni

  • “L’account abstraction elimina le chiavi private.” Cambia la policy delle credenziali; una credenziale deve comunque autorizzare le azioni.
  • “Un paymaster rende gratuito il gas.” Il gas nativo viene pagato e il costo ricade su utente, sponsor o servizio.
  • “La simulazione del bundler garantisce il successo.” L’ammissione non garantisce esecuzione, inclusione o finalita.
  • “ERC-1271, ERC-4337 ed EIP-7702 sono la stessa interfaccia.” Risolvono problemi diversi di firma, flusso e delega.
  • “Ogni catena, wallet ed EntryPoint e compatibile e piu sicuro.” Supporto, versioni, distribuzioni, codice, moduli e controlli vanno verificati separatamente.

Argomenti correlati

Fonti

Navigazione

Cerca nella wiki...