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
- 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. - 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 esignature. EntryPoint riceve on-chain una rappresentazione compressa; le chiamate di destinazione sono codificate nelcallDatadefinito dall’account, non in un campo target universale. - Vincolare l’autorizzazione al dominio corretto. Lo
userOpHashcopre l’operazione salvo la firma e la vincola a EntryPoint e alla catena.validateUserOpverifica proprietario, multisig, passkey, sessione o altra policy. ERC-1271isValidSignaturee un’interfaccia distinta per firme contrattuali; un aggregator opzionale puo convalidare firme aggregate. La tupla EIP-7702 e fornita separatamente dalla UserOperation. - 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. - 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.
- 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. - 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,000gas di esecuzione,90,000di validazione account,45,000di validazione paymaster,40,000di prevalidazione e30,000di post-operazione paymaster:120,000 + 90,000 + 45,000 + 40,000 + 30,000 = 325,000 gas. ConmaxFeePerGas = 30 gwei, il tetto semplificato e325,000 × 30 gwei = 0.009750 ETH. Se l’uso effettivamente addebitabile e210,000 gasa22 gwei, il costo e0.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 keye una64-bit sequence, chiave7e sequenza42codificanononce = (7 << 64) | 42 = 129127208515966861354 = 0x7000000000000002a. Dopo l’inclusione, il canale attende43; ripetere42fallisce. Un’altra chiave puo avere una sequenza indipendente secondo logica dell’account e regole del bundler. - Capacita del paymaster. Un paymaster ha
0.50 ETHdepositati e ogni operazione richiede una garanzia massima di0.03 ETH. Coprefloor(0.50 / 0.03) = 16operazioni, riserva0.48 ETHe lascia0.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 dopo180,000 gas × 25 gwei = 0.0045 ETH. Lo stato target viene ripristinato, ma account o paymaster deve ancora0.0045 ETH; i0.0015 ETHinutilizzati 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
- Rischio del proprietario e del recupero di uno smart account
- Wallet con chiave di sessione
- Simulazione delle transazioni
Fonti
- ERC-4337: Account Abstraction Using Alt Mempool
- ERC-7562: Account Abstraction Validation Scope Rules
- ERC-7769: JSON-RPC API for ERC-4337
- ERC-1271: Standard Signature Validation Method for Contracts
- EIP-7702: Set Code for EOAs
- The EntryPoint Contract
- Simulation Requirements
- Releases - eth-infinitism/account-abstraction