La scarsa esperienza dell’utente è uno dei maggiori ostacoli all’adozione diffusa della criptovaluta. Gli utenti tradizionali non pensano alla decentralizzazione o al futuro potenzialmente brillante della DeFi, ma vogliono solo sicurezza e usabilità nel presente. Ed è qui che il moderno Web3 è carente. Per molti, entrare nel mondo degli smart contracts, comprendere i concetti di blockchain e persino creare un portafoglio di criptovalute sembra troppo complicato. Senza contare, ad esempio, che si può facilmente perdere la seed phrase e perdere i propri fondi per sempre. Tuttavia, l’ultima implementazione di Ethereum, EIP-4337, distribuita il 1° marzo 2023, risolve il problema con una soluzione chiamata account abstraction. Ma di cosa si tratta? Cambierà davvero l’intero panorama del web3? Scopriamolo.
Due tipi di conti Ethereum
Per prima cosa, affrontiamo alcune nozioni di base che ci aiuteranno a comprendere meglio il concetto di account abstraction. Nell’ecosistema Ethereum esistono due tipi di conti:
Conti di proprietà esterna (EOA).
Questi conti sono controllati da singoli individui e non contengono codice complicato. Questi conti hanno una coppia di chiavi – privata e pubblica – che sono necessarie per confermare ed eseguire le transazioni. Un esempio evidente di conto detenuto esternamente è il MetaMask Wallet.
Conti contrattuali
Questi conti sono essenzialmente smart contracts controllati dal codice. I conti contrattuali non richiedono che gli utenti eseguano le transazioni manualmente e non dispongono di chiavi private.

La differenza principale tra i conti contrattuali e i conti esterni è che i primi sono regolati dal codice, mentre i secondi sono dettati dagli utenti. Questo è importante da capire. I conti a contratto intelligente possono eseguire qualsiasi logica programmata in essi (tutto ciò che il programmatore desidera), mentre gli EOA si limitano a firmare le transazioni sulla blockchain.
Gli EOA: perché sono tutt’altro che ideali
Esperienza di integrazione orribile. Fino a poco tempo fa, l’unico modo in cui gli utenti potevano interagire con la rete ed eseguire transazioni specifiche, come la transazione di fondi tra portafogli o l’acquisto di NFT, era solo attraverso conti detenuti esternamente. Per gli sviluppatori di blockchain o per coloro che operano nel settore da tempo, l’utilizzo di un EOA è un processo familiare. Tuttavia, per i novizi e le vecchie generazioni, si tratta di una procedura difficile da digerire. Dalla creazione di un portafoglio, alla generazione e al ricordo della chiave privata, all’acquisto di fondi, al pagamento della benzina ogni volta che si vogliono trasferire le monete e a non sbagliare gli indirizzi, è tutto troppo complicato per chi è abituato alla comodità della tecnologia moderna. servizi bancari, che consentono di inviare denaro con un semplice clic. E non finisce qui.
I rischi sono elevati
Quando si utilizzano gli EOA, bisogna fare molta attenzione alle chiavi private e alle password. Perderle potrebbe essere fatale, perché non si potrà accedere ai propri fondi. E se la chiave privata fosse rubata, gli hacker avrebbero pieno accesso a tutto il proprio denaro digitale. In un sistema bancario tradizionale, anche se si dovesse perdere la carta, la banca potrebbe comunque bloccarla e inviarne una nuova. Non c’è da stupirsi che solo una piccola parte degli utenti sia disposta a correre il rischio. E anche per gli utenti più sofisticati, che sono consapevoli di tutti i possibili rischi e sanno come proteggersi da essi, lavorare con gli EOA comporta sempre una certa tensione psicologica.
L’idea alla base dell’account abstraction
Per rendere la tecnologia blockchain più accessibile e facile da usare, gli sviluppatori di Ethereum hanno proposto il concetto di account abstraction. Si tratta di un’idea per consentire agli utenti di interagire con la rete tramite contratti intelligenti invece che con gli EOA. Ma perché? Beh, un portafoglio di smart contract può essere più versatile degli EOA, in quanto ha la capacità di contenere regole e parametri separati. Questo dà ai conti contrattuali una gamma molto più ampia di capacità.

Ad esempio, l’account abstraction e gli smart contracts consentiranno a un utente di avere diverse chiavi private (per un portafoglio), che saranno distribuite tra un gruppo di persone e dispositivi fidati. Se l’utente perdesse l’accesso alla propria chiave primaria, potrebbe rivolgersi a queste persone e riottenere l’accesso ai propri fondi. E questo è solo uno dei modi in cui l’account abstraction potrebbe migliorare l’esperienza dell’utente.
Secondo Yoav Weiss, coautore dell’EIP-4337 insieme a Vitalik Buterin: “L’account abstraction è un modo per rivolgersi al prossimo miliardo di utenti”.
Coming soon to your favorite EVM chains. ERC-4337. https://t.co/VRU2Sg4PNO
— yoav.eth (@yoavw) January 11, 2023
Come viene implementata
L‘account abstraction è implementata tramite l’EIP-4337, spesso usato in modo intercambiabile con l‘ERC-4337. La proposta di miglioramento di Ethereum (EIP) deve essere accettata dal sistema di governance della blockchain prima di poter diventare una richiesta di commento di Ethereum (ERC). Inoltre, l’ERC è solo un elemento dell’EIP e si occupa principalmente del protocollo e delle linee guida di sviluppo.

Prima dell’EIP-4337, proposto nel settembre 2021, ci sono state una serie di altre EIP relative alle astrazioni dei conti su ETH:
- EIP-86 nel 2016 – La proposta mirava a dare ai contratti intelligenti la capacità di avviare e autorizzare le transazioni.
- EIP-2938 nel 2020 – La proposta mirava a creare un nuovo tipo di transazione.
- EIP-3074 nel 2020 – La proposta si concentrava sulla fornitura più efficiente di contratti intelligenti autoesecutivi attraverso l’uso di un nuovo opcode (blocco di costruzione del contratto intelligente).
Nessuna di queste proposte è stata attuata per un semplice motivo: tutte richiedevano modifiche all’infrastruttura di rete Ethereum sottostante, e ciò non può avvenire senza un accordo di consenso.
L‘EIP-4337 è diverso in quanto non richiede alcuna modifica del protocollo. Propone invece di costruire un’infrastruttura di primo livello in aggiunta a quella esistente. Di fatto, ERC-4337 è già stato implementato dal 1° marzo 2023 e gli sviluppatori possono già creare applicazioni utilizzando la nuova logica.
Come funziona
L’intero processo si presenta come segue:
Uno smart wallet attiva una “UserOperation”, uno pseudo-oggetto di transazione, che viene aggiunto allo speciale mempool. Questo mempool è essenzialmente una coda di transazioni (anche se differisce dal solito mempool di Ethereum). Successivamente, i bundler, nuovi operatori decentralizzati, agiscono come minatori o validatori. Recuperano le UserOperations dal mempool, raggruppano più operazioni dell’utente in una singola transazione chiamata “transazione raggruppata” e poi i bundler inviano “il pacchetto” a uno smart contract globale chiamato “EntryPoint *.*”. Nella fase successiva, un’altra funzione chiamata “handleOps” riceve il bundle e invia le informazioni alla validazione tramite “validateUserOp” ed esegue la transazione. I bundler pagheranno la tassa di transazione (gas) associata all’operazione o saranno ricompensati dal conto contrattuale dell’utente o da una terza parte chiamata “paymaster”, che può essere un’applicazione decentralizzata o un portafoglio.

Un dato veloce: Empiler, un fornitore di portafogli e infrastrutture, ha recentemente distribuito il primo bundler di livello produttivo sulla rete principale. Tuttavia, si prevede che altri bundler saranno resi disponibili nel prossimo futuro, grazie all’infrastruttura decentralizzata e alla natura permissionless.
I vantaggi
L’account abstraction porta molti vantaggi agli utenti di tutti i livelli:
Migliore esperienza utente
L’account abstraction di Ethereum offrirà agli sviluppatori di smart contract, portafogli e app una maggiore libertà nell’innovare l’esperienza dell’utente, in quanto avranno la possibilità di configurare le regole dell’account tramite codice. Ciò consentirà un’integrazione più semplice e un livello generale di servizio e convenienza paragonabile a quello delle banche tradizionali.
Migliore sicurezza
La nuova logica del conto renderà le applicazioni che girano su ETH ancora più sicure. L’account abstraction permette agli sviluppatori di integrare molte funzionalità interessanti, come ad esempio
Autorizzazione multi-firma – È possibile condividere le credenziali di autorizzazione con più persone o dispositivi fidati. Gli sviluppatori possono anche impostare contratti in modo che le transazioni di un certo valore richiedano l’autorizzazione di una certa percentuale (ad esempio 3/5) di parti fidate prima di essere eseguite.
Blocco dell’account – In caso di smarrimento o compromissione del dispositivo, l’account può essere protetto da qualsiasi altro dispositivo autorizzato per salvaguardare i fondi.
Recupero dell’account – Con gli EOA, la perdita di un dispositivo o la dimenticanza di una passphrase possono impedire l’accesso alle proprie risorse a tempo indeterminato. Fortunatamente, con i portafogli di contratti intelligenti, è possibile creare account fidati che autorizzano nuovi dispositivi e ripristinano l’accesso.
Limiti di transazione – L’impostazione di limiti giornalieri alla quantità di valore che può essere trasferita dal vostro conto in un giorno, in una settimana o in un mese assicura che se un hacker dovesse accedervi, non sarebbe in grado di cancellare tutto rapidamente.
Whitelist – Per garantire la massima sicurezza dei propri fondi, si potrebbero avviare transazioni solo a indirizzi che si sa essere sicuri. Se un malintenzionato avesse accesso alla propria chiave privata, non sarebbe in grado di trasferire fondi a una destinazione non inserita nella whitelist. E anche in questo caso, tali modifiche possono avvenire solo dopo che diverse firme le hanno convalidate: ciò significa che se un malintenzionato volesse che il suo indirizzo sia incluso in questo elenco, dovrebbe prima ottenere anche diverse delle chiavi di backup dell’utente.

Migliore gestione del gas
L’account abstraction migliora anche la gestione dei gas. Le applicazioni hanno la possibilità non solo di coprire i costi del gas degli utenti, ma anche di consentire il pagamento di tali costi da parte di terzi, con token diversi dall’ETH. In questo modo, gli utenti non hanno bisogno di mantenere un saldo di ETH per finanziare le loro transazioni: gli smart contract scambieranno automaticamente i token degli utenti con ETH.
Sessioni affidabili
Molte applicazioni, in particolare i giochi, possono trarre vantaggio dall’implementazione di sessioni affidabili, poiché vi sono molte piccole transazioni che devono essere convalidate in un breve periodo di tempo. L’approvazione manuale di ogni transazione interferirebbe con l’esperienza di gioco; inoltre, dare un’approvazione permanente non è sicuro. I portafogli di contratti intelligenti potrebbero fornire una soluzione alternativa, consentendo l’approvazione di determinate transazioni per un periodo di tempo predeterminato, fino a un certo valore, o solo per indirizzi specifici.
Migliori acquisti online
Oggi, ogni transazione richiede la prova che il token giusto sia attualmente caricato nel portafoglio. Ma con la tecnologia di astrazione del conto, è come fare acquisti online: si compila un “carrello”, si clicca su acquista e tutta la logica necessaria viene gestita dal contratto invece di essere inserita manualmente dal consumatore.
Gli abbonamenti in criptovaluta sono ora possibili
Con i conti a contratto, è possibile effettuare pagamenti “pull” avviati da un fatturatore. Ad esempio, un’azienda elettrica può impostare un contratto di pagamento programmato e dettare le sue regole, ad esempio l’importo della fattura mensile o la frequenza dei pagamenti giornalieri. Una volta che gli utenti hanno approvato questi pagamenti predefiniti tramite il loro conto contrattuale, i rimborsi automatici delle bollette possono essere effettuati poco dopo il giorno di paga.
La blockchain è diventata straordinariamente utile in un’ampia gamma di applicazioni di pagamento.
Conclusioni
Sfruttando i conti contrattuali, gli sviluppatori si liberano dalle restrizioni degli EOA esistenti e possono portare gli elementi vantaggiosi del web2 nel web3 senza perdere la decentralizzazione a cui aspirano. In queto articolo abbiamo solo accennato ad alcuni esempi di come l’esperienza dell’utente potrebbe essere ottimizzata dall’astrazione dei conti, ma il potenziale di nuove idee fantasiose non è ancora stato sfruttato!