﻿---
title: "Account abstraction"
description: "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."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Account abstraction

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

<a id="answer"></a>

## 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.

<a id="mechanism"></a>

## 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.

<a id="example"></a>

## 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.

<a id="risks"></a>

## 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.

<a id="misconceptions"></a>

## 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.

<a id="related"></a>

## Argomenti correlati

- [Rischio del proprietario e del recupero di uno smart account](/it/crypto/smart-account-owner-recovery-risk/)
- [Wallet con chiave di sessione](/it/crypto/session-key-wallet/)
- [Simulazione delle transazioni](/it/crypto/transaction-simulation/)

<a id="sources"></a>

## Fonti

- [ERC-4337: Account Abstraction Using Alt Mempool](https://eips.ethereum.org/EIPS/eip-4337)
- [ERC-7562: Account Abstraction Validation Scope Rules](https://eips.ethereum.org/EIPS/eip-7562)
- [ERC-7769: JSON-RPC API for ERC-4337](https://eips.ethereum.org/EIPS/eip-7769)
- [ERC-1271: Standard Signature Validation Method for Contracts](https://eips.ethereum.org/EIPS/eip-1271)
- [EIP-7702: Set Code for EOAs](https://eips.ethereum.org/EIPS/eip-7702)
- [The EntryPoint Contract](https://docs.erc4337.io/smart-accounts/entrypoint-explainer.html)
- [Simulation Requirements](https://docs.erc4337.io/bundlers/simulation-requirements.html)
- [Releases - eth-infinitism/account-abstraction](https://github.com/eth-infinitism/account-abstraction/releases)

Source: https://wiki.fcontext.com/it/crypto/account-abstraction/index.mdx
