Combinando l’espressività del modello di account e la sicurezza del modello UTXO.
Questo articolo è una panoramica di alto livello di cos’è il modello UTXO stateful, perché è stato inventato, come funziona e cosa consente. Il modello stateful UTXO (sUTXO) è una delle principali innovazioni portate da Alephium, insieme al Proof-of-less-work (PoLW), all’algoritmo di sharding Blockflow, alla Alphred Virtual Machine e al linguaggio di programmazione Ralph.
traduzione in italiano dell’articolo pubblicato da alephium.org, link a fine articolo.
Cosa sono l’UTXO e il modello di account?
L’UTXO e i modelli basati sull’account sono gli standard contabili più comunemente utilizzati nelle blockchain. Entrambi consentono agli utenti e ai sistemi di tenere traccia dei saldi delle criptovalute.
Il classico modello UTXO (Unspent Transaction Output) è notoriamente utilizzato per tenere traccia della contabilità nella blockchain di Bitcoin. Si trova anche in Bitcoin Cash, Zcash, Litecoin, Dogecoin, Dash e altro ancora…
In UTXO, non ci sono conti né saldi a livello di protocollo, solo transazioni. Le monete vengono memorizzate come un libro mastro delle transazioni non spese (UTXO) e le nuove transazioni consumano UTXO esistenti per produrre nuovi UTXO. In qualsiasi momento, affinché un portafoglio mostri il suo saldo a un utente, deve accumulare tutti gli UTXO associati agli indirizzi pubblici di quel particolare utente perché ciò che viene memorizzato è l’insieme di tutti gli UTXO, non un elenco di conti e saldi.
Questo modello è concettualmente semplice da capire, è scalabile ed è molto trasparente. Ha alcuni aspetti negativi: non ha uno stato e non è abbastanza espressivo per gli sviluppatori, il che significa che è difficile costruire programmi complessi su di esso.
Il modello di account è più intuitivo e più vicino a un database classico. Registra l’aumento/diminuzione dei saldi degli indirizzi quando avvengono le transazioni. Queste modifiche vengono scritte nella blockchain, creando uno stato globale (una registrazione globale del saldo corrente in tutti gli indirizzi). Questa struttura è più accessibile e più facile da padroneggiare per gli sviluppatori, consentendo un sistema più “espressivo“: gli sviluppatori possono costruire programmi più complessi e potenti (chiamati smart contract).
Il modello di account ha anche dei limiti: l’esecuzione parallela è difficile, il MEV è un trascinamento costante e spesso non dispone di controlli di sicurezza sufficienti per essere sicuro a livello di smart contract.
UTXO Stateful : il meglio di entrambi i mondi
Il modello stateful UTXO (sUTXO) combina i vantaggi di entrambi: beneficia della sicurezza del modello UTXO e dell’espressività del modello account.
Raggiunge questo obiettivo utilizzando effettivamente entrambi… ma per cose diverse! Gli UTXO vengono utilizzati per asset/token e il modello di account per smart contract e stati.
Token come cittadini di prima classe
In sUTXO, tutti i token vengono gestiti in modo nativo e archiviati in UTXO esattamente come ALPH. Questo è in contrasto con Bitcoin, che non è in grado di gestire i token. Ma segna anche una grande differenza con Ethereum perché richiede container come ERC20 e 721 per gestire i token, il che introduce complessità e spesso ha portato a rischi per la sicurezza in passato.
Questo approccio è chiamato “Token come cittadini di prima classe”. Non c’è bisogno di creare standard e non ci sono rischi nell’implementazione: c’è tutto, in modo nativo! La VM (macchina virtuale) consente anche controlli integrati per aumentare la sicurezza del trasferimento.
Naturalmente, è possibile creare nuovi standard su Alephium per token con caratteristiche diverse, ma le funzioni principali (emissione, trasferimento, contabilità) sono integrate.
Stato: Contratti intelligenti (e sicuri)
Quello che in informatica viene chiamato “stato” può essere visto come “archiviazione”. Un sistema stateful “archivia” ciò che è accaduto in precedenza e può utilizzare gli elementi della sua memoria per creare nuove azioni.
sUTXO è chiamato “stateful” perché aggiunge un elemento di “state” al classico modello UTXO, che è stateless. Come spiega Seba: “Gli UTXO sono stateless, il che significa che non ci sono due transazioni che possono influire sullo stesso UTXO. Le transazioni non fanno riferimento ad alcun input al di fuori degli UTXO utilizzati. Poiché gli UTXO possono essere eseguiti in parallelo, non sono adatti per le applicazioni, come gli smart contract, che sono stateful”.
Questo è molto utile per gli sviluppatori che vogliono costruire programmi sfruttando lo stato della blockchain: i famosi smart contract! Gli sviluppatori utilizzano questi smart contract per creare applicazioni decentralizzate. E queste dApp consentono alle persone di utilizzare la blockchain per cose utili: prendere in prestito, prestare, scambiare, creare e scambiare NFT, giocare e inventare il futuro!
Una foresta di alberi di Merkle per tenerlo pulito!
Gli alberi di Merkle sono una speciale struttura di dati utilizzata per memorizzare informazioni in modo verificabile. Alephium utilizza tre alberi di Merkle per gruppo: uno per gli asset (il set UTXO), uno per gli stati del contratto e un altro per la logica del contratto (il suo codice).
Questo è fantastico, perché per un dato smart contract, i dati nell’albero di Merkle dello stato potrebbero cambiare spesso, ma l’albero di Merkle del codice/logica sarà immutabile! Questo permette ad Alephium di evitare di essere troppo gonfio di codice e dati inutili.
E per mantenere le cose il più leggere possibile, sUTXO consente l’affitto dello spazio di archiviazione: quando viene distribuito uno smart contract, il suo sviluppatore deve pagare un deposito di 1 ALPH per proteggere il livello di stato dallo spamming. (Dal 12 giugno 2024 grazie all’aggiornamento di rete Rhône, il deposito da pagare è passato da 1 ALPH a soli 0,10 ALPH).
Il distributore del contratto riavrà indietro questo deposito quando lo smart contract verrà distrutto e rimosso dalla blockchain!
sUTXO e Alphred VM funzionano bene insieme!
sUTXO ha molti vantaggi aggiuntivi se combinato con altre innovazioni di Alephium! Ad esempio, la macchina virtuale Alephium (Alphred) sa con precisione che sta avvenendo un trasferimento di token su uno smart contract. In questo caso, la macchina virtuale verifica il trasferimento per verificare se viene inviato secondo le regole dello smart contract.
Alephium dispone anche di istruzioni integrate per la macchina virtuale per l’aggiornamento o la migrazione di uno smart contract. Ciò consente agli sviluppatori di aggiornare lo smart contract per ripristinare la logica e correggere i bug. L’opzione corrente su EVM è quella di utilizzare i contratti proxy per abilitare questa migrazione, il che aggiunge molta complessità.
Perché dovrebbe interessarti?
Questo è un enorme miglioramento per gli sviluppatori, poiché la possibilità di avere un modello di account aggiornato con un modello dedicato per la gestione dei token (UTXO) rende il modello sUTXO una solida base per la creazione di smart contract con la certezza che la gestione sicura degli asset è una priorità.
Ci saranno maggiori dettagli sul modello sUTXO in una prossima intervista con Cheng Wang sull’argomento, in quanto è un pezzo fondamentale dello stack tecnologico di Alephium. Di seguito sono riportati due video in cui presenta il modello sUTXO e la sua interazione con il VM e il linguaggio di programmazione di Alephium, uno su EthCC e l’altro su Crypto Talk Series.
Il prossimo post della serie tecnologica avrà come protagonista Alphred, la macchina virtuale! Per saperne di più su PoLW qui.
Fonte in Inglese:
An introduction to the stateful UTXO model | by Alephium | Medium