UTXO vs modelli basati su account

Le due piattaforme di criptovaluta più note, Bitcoin ed Ethereum, utilizzano diversi modelli di transazione per le loro piattaforme, ognuna con i propri vantaggi e svantaggi specifici rispetto all’altra. Comprendere come funzionano da una prospettiva concettuale è importante per comprendere ulteriormente la struttura generale di queste piattaforme e di altre piattaforme costruite con modelli uguali o simili.

Mentre il consenso nelle piattaforme di criptovaluta è necessario per proteggere la rete e convalidare lo stato della blockchain, il modello di transazione utilizzato da una piattaforma viene utilizzato per dimostrare la proprietà sui token. Bitcoin utilizza lo schema UTXO (Unspent Transaction Output) mentre Ethereum utilizza il modello basato sull’account. Entrambi i modelli sono, al loro livello più elementare, modelli per il monitoraggio dello stato del database e l’implementazione di ciascuno nelle rispettive piattaforme ha uno scopo e un ruolo specifici nella struttura più ampia della piattaforma.

UTXO vs modelli basati su account

Bitcoin è stata la prima criptovaluta e quindi la prima piattaforma a utilizzare il modello UTXO più astratto, mentre il modello Account Based di Ethereum rappresenta più fondamentalmente un modello simile al modello di conto bancario tradizionale.

Lo schema UTXO e il suo utilizzo in Bitcoin

Il modello di output delle transazioni non speso applicato in Bitcoin è un concetto più astratto rispetto al modello basato sull’account utilizzato in Ethereum. È una componente vitale di Bitcoin che consente alla blockchain di essere trasparente attraverso tutte le transazioni collegate da una catena di firme digitali.

Cos'è Nakamoto Consensus

Leggi: la nostra guida al consenso di Nakamoto

Nel modello UTXO, ogni proprietario di token trasferisce una moneta che possiede a un altro firmando digitalmente l’hash di una transazione precedente e la chiave pubblica (indirizzo) del proprietario successivo e aggiungendoli alla fine della moneta. Il meccanismo è essenzialmente una continua trasgressione di input e output in cui il proprietario dei token in realtà non possiede direttamente i token, ma piuttosto possiede l’output di un numero specifico di token che possono quindi essere trasferiti come input a un nuovo proprietario che quindi controlla le nuove uscite. Ci sono 3 regole fondamentali nello schema UTXO.

  • Ogni transazione deve dimostrare che la somma dei suoi input è maggiore della somma dei suoi output.
  • Ogni input referenziato deve essere valido e non ancora speso.
  • La transazione deve avere una firma che corrisponda al proprietario dell’input per ogni input.

Quindi, in una tipica transazione UTXO, usiamo Alice e Bob come esempio. Alice possiede 10 BTC e vuole inviarne 5 a Bob. Bob non possiede alcun BTC. Invece di possedere a titolo definitivo 10 BTC, Alice possiede 2 diversi output di transazione costituiti rispettivamente da 6 e 4 BTC. Il portafoglio di Alice sceglierebbe l’output migliore da inviare a Bob. In questo caso, l’output di 6 BTC verrebbe inviato a Bob e Bob diventa il proprietario di 5 BTC avendo l’indirizzo, la firma digitale e la chiave digitale necessari per dimostrare la proprietà sul nuovo output. L’ulteriore 1 BTC di modifica dalla transazione viene restituito ad Alice ed è noto come output della transazione non speso (UTXO). Ora, Alice possiede ancora due uscite, ma sono composte rispettivamente da 1 e 4 BTC. Bob ora controlla 1 uscita del valore di 5 BTC. Un beneficiario può verificare le firme per verificare la catena di proprietà dei token sul registro pubblico distribuito. Da notare che i minatori generano Bitcoin tramite una transazione coinbase, che non contiene alcun input.

Modello UTXO

Modello UTXO, immagine da Bitcoin.org

Logicamente, il modello UTXO è molto più semplice del modello account in termini di scalabilità e, in modo critico, consente al modello di consenso di Bitcoin (PoW) di rimanere semplice. Ciò ha importanti ramificazioni per la scalabilità e la sicurezza della rete in generale. Bitcoin supporta anche più tipi di scripting che gli consentono di elaborare logiche di pagamento complesse.

Il design del modello UTXO presenta numerosi vantaggi che lo fanno risaltare come un meccanismo elegantemente compatibile all’interno dell’architettura di rete Bitcoin. Uno dei vantaggi più importanti di questo sistema è che consente la verifica del pagamento semplice (SPV) sulla rete. Questi portafogli leggeri possono interagire con la blockchain Bitcoin in modo decentralizzato e senza fiducia senza dover effettivamente scaricare l’intera blockchain Bitcoin, riducendo così in modo significativo lo spazio di archiviazione e consentendo alle applicazioni telefoniche di interagire sulla rete Bitcoin.

Inoltre, il modello UTXO crea un ambiente in cui è possibile la capacità di elaborazione parallela su più indirizzi, consentendo un’infrastruttura molto migliore per la scalabilità. Le transazioni possono essere elaborate in parallelo poiché si riferiscono tutte a input indipendenti. Infine, se un utente genera un nuovo indirizzo per ogni transazione, diventa più difficile collegare gli account nonostante la trasparenza della blockchain. Questa è la proprietà pseudo anonima di Bitcoin, tuttavia, tecniche sempre più diffuse per tracciare transazioni e collegare account hanno portato Bitcoin a non essere fungibile come inizialmente percepito.

Nonostante alcuni vantaggi sostanziali del modello UTXO nella sua applicazione in un framework come Bitcoin, ci sono ancora alcuni svantaggi chiave, specialmente quando il modello viene applicato a una piattaforma Turing più complessa e completa come Ethereum. Ad esempio, la creazione di applicazioni sulla progettazione UTXO costringe gli sviluppatori a limitare la quantità di stato influenzata da ogni output. Allo stesso modo, lo schema di transazione UTXO non è intrinsecamente compatibile con lo sviluppo di contratti intelligenti poiché il concetto è davvero adatto solo per l’uso in applicazioni in cui ogni output è di proprietà di una sola persona e può essere scomposto se l’output può essere consumato da due o più persone a lo stesso tempo.

Il modello basato sull’account e il suo utilizzo in Ethereum

La gestione del saldo nel modello Account Based è il più familiare dei due modelli e funziona in Ethereum in modo simile al modo in cui funziona nel mondo bancario tradizionale. In sostanza, ogni account sperimenta valore diretto e trasferimenti di informazioni con transizioni di stato.

Guida di Ethereum

Leggi: la nostra guida completa a Ethereum

Ad esempio, Alice e Bob vogliono effettuare transazioni tra loro. Alice vuole inviare a Bob 5 token e Alice ha 10 token nel suo account mentre Bob ne ha 0. Nel modello basato sull’account, Alice invia a Bob 5 token che vengono sottratti dal suo account e aggiunti all’account di Bob. Alice ora ha 5 gettoni e Bob ne ha 5. Questo è un concetto semplice ed è il modo in cui funziona il modello finanziario tradizionale delle transazioni poiché è facile monitorare e prevenire la doppia spesa perché ci sono autorità centralizzate in tutto il sistema finanziario che monitorano il flusso delle transazioni.

In Ethereum, ci sono due tipi di account, account utente controllati con chiave privata e account controllati tramite codice di contratto (contratti intelligenti). Questo è importante perché è un motivo fondamentale per cui Ethereum ha scelto il modello basato sull’account rispetto al modello UTXO. Poiché Ethereum utilizza un linguaggio di programmazione completo di Turing (Solidity) e una delle sue caratteristiche principali sono i contratti intelligenti, il modello di account offre una semplicità molto maggiore rispetto al modello basato su UTXO utilizzato da Bitcoin. Ethereum ha una quantità sostanziale di applicazioni decentralizzate che contengono stato e codice arbitrari, non ha senso impiegare il modello UTXO utilizzato in Bitcoin poiché limiterebbe intrinsecamente la capacità di esecuzione dei contratti intelligenti.

Ogni account in Ethereum ha il proprio saldo, memoria e spazio codice per chiamare altri account o indirizzi. Una transazione è valida se un account di invio ha un saldo sufficiente per pagarla. Se l’account ricevente dispone di codice, il codice viene eseguito, modificando qualsiasi cosa dalla memoria interna alla creazione di messaggi aggiuntivi che potrebbero avere effetti successivi su addebiti e crediti verso altri account. Per questo motivo, ogni blocco appena generato può potenzialmente influire sullo stato di tutti gli altri account.

I vantaggi specifici offerti dal modello di account in Ethereum sono un maggiore risparmio di spazio, semplicità, familiarità e fungibilità. Ogni transazione nel modello di conto deve fare solo un riferimento e una firma che produce un output, contrariamente al design UTXO. Ciò consente un notevole risparmio di spazio che è vitale per una piattaforma grande e complessa come Ethereum. Inoltre, oltre alla familiarità e alla semplicità consentite dal modello basato sull’account, c’è un grado di fungibilità molto più elevato sulla blockchain di Ethereum rispetto a Bitcoin. Gli utenti di Ethereum eseguono transazioni utilizzando chiamate di procedura remota del client che rendono il tracciamento delle transazioni interne attraverso il registro Ethereum molto più impegnativo di Bitcoin, dove tutte le transazioni sono collegabili pubblicamente attraverso il libro mastro monitorando le firme digitali dello schema UTXO. Pertanto, la fungibilità aumenta poiché l’inserimento nella lista nera dei commercianti di monete utilizzate per attività illecite è difficile da realizzare.

D’altro canto, gli svantaggi del modello di account ruotano attorno ad esso limitando la scalabilità della piattaforma. Sebbene un’implementazione necessaria a causa del design di Ethereum, i problemi di scalabilità che circondano lo sviluppo di Ethereum sono ben consolidati e una preoccupazione che è venuta in prima linea nel settore più ampio. Progettare la logica attorno al modello di account non è così banale come con il modello UTXO e può avere potenziali implicazioni su altri concetti di progettazione all’interno della piattaforma mentre continua a crescere.

Conclusione

All’interno delle piattaforme di criptovaluta, esiste una serie diversificata di concetti di progettazione e meccanismi tecnici che entrano nella piattaforma in grado di funzionare come un sistema praticabile, sicuro e utilizzabile.

I modelli di transazione utilizzati da tali piattaforme utilizzano la crittografia per verificare la proprietà dei token attraverso la rete. Lo schema UTXO funziona in modo eccellente per Bitcoin, mentre il modello basato su account utilizzato in Ethereum è orientato a supportare le sue applicazioni più complesse e le esigenze contrattuali.

Successive iterazioni di queste piattaforme possono modificare e ottimizzare questi meccanismi per adattarsi meglio allo sviluppo futuro delle loro rispettive reti, tuttavia, essere in grado di comprendere le loro attuali implementazioni farà molto per consentire una comprensione più completa di come funzionano le loro reti e perché sono così nuovi.