Traduzione italiana di “Cardano’s Extended UTXO accounting model – built to support multi-assets and smart contracts (part 2)” scritto da Fernando Sanchez nel blog IOHK
Traduzione italiana a cura di Lordwotton di RIOT Stake Pools. Se apprezzi queste traduzioni, per favore valuta di supportare il mio lavoro delegando i tuoi ada a RIOT
Il modello contabile Extended UTXO di Cardano - costruito per supportare multi-asset e contratti intelligenti (parte 2)
Nella seconda parte del nostro blog sul modello di contabilità EUTXO di Cardano, diamo uno sguardo più tecnico ai componenti delle transazioni, al set UTXO e approfondiamo la logica del modello EUTXO di Cardano
Ieri abbiamo offerto una panoramica del modello UTXO esteso impiegato da Cardano, spiegando come differisce dagli approcci adottati da Bitcoin ed Ethereum. Ora immergiamoci un po’ più a fondo negli input e negli output, le parti componenti di una transazione.
Dobbiamo parlare di transazioni: Uscite e ingressi
Il termine transazione di solito evoca echi finanziari. Mentre tale significato si applicherebbe a Bitcoin (poiché la blockchain Bitcoin è usata per spostare fondi tra pari), molte altre blockchain (inclusa Cardano) sono molto più versatili. In questi casi, il termine ‘transazione’ è molto più sfumato. Si può pensare alle transazioni come a trasferimenti di valore.
In un ambiente blockchain, ogni transazione può avere uno o più input e uno o più output. I concetti di input e output devono essere compresi, se si vuole capire come funziona una transazione, e come si relaziona con UTXO. In termini astratti, pensate ad una transazione come l’azione che sblocca le uscite precedenti e ne crea di nuove.
Uscita di transazione
Un output di transazione include un indirizzo (che si può pensare come una serratura) e un valore. In linea con questa analogia, la firma che appartiene all’indirizzo è la chiave per sbloccare l’uscita. Una volta sbloccato, un output può essere usato come input. Le nuove transazioni spendono gli output delle transazioni precedenti, e producono nuovi output che possono essere consumati dalle transazioni future. Ogni UTXO può essere consumato solo una volta, e nel suo insieme. Ogni output può essere speso esattamente da un input, e un solo input.
Ingresso di transazione
Un input di transazione è l’output di una transazione precedente. Gli input di transazione includono un puntatore e una firma crittografica che funge da chiave di sblocco. Il puntatore punta all’output di una transazione precedente e la chiave sblocca questo output. Quando un output viene sbloccato da un input, la blockchain segna l’output sbloccato come “speso”. Nuove uscite create da una data transazione possono quindi essere indicate da nuovi input, e così la catena continua. Queste nuove uscite (che non sono ancora state sbloccate, cioè spese) sono le UTXO. Le uscite non spese sono semplicemente questo, uscite che non sono ancora state spese.
Come funziona UTXO, in poche parole
In un modello contabile UTXO, le transazioni consumano output non spesi da transazioni precedenti e producono nuovi output che possono essere usati come input per transazioni future.
I portafogli degli utenti gestiscono queste UTXO e avviano transazioni che coinvolgono le UTXO possedute dall’utente. Ogni nodo della blockchain mantiene un record del sottoinsieme di tutti gli UTXO in ogni momento. Questo è chiamato il set UTXO. In termini tecnici, questo è il chainstate, che è memorizzato nella directory dei dati di ogni nodo. Quando un nuovo blocco viene aggiunto alla catena, il chainstate viene aggiornato di conseguenza. Questo nuovo blocco contiene l’elenco delle ultime transazioni (incluso ovviamente un record di UTXO spesi e nuovi creati dall’ultimo aggiornamento del chainstate). Ogni nodo mantiene una copia esatta del chainstate.
EUTXO: La logica dietro la scelta di Cardano
Il modello di contabilità UTXO ‘vanilla’ di Bitcoin non sarebbe adatto a Cardano, poiché Cardano è progettato per fare più che gestire i pagamenti. In particolare, la necessità di una maggiore espressività di programmazione per la prossima funzionalità dei contratti intelligenti nell’era di Alonzo richiedeva una nuova soluzione (‘Extended’).
Il modello UTXO ‘base’ ha una limitata espressività di programmabilità. Il modello di contabilità Conto/Bilancio di Ethereum ha affrontato questo problema specifico con lo sviluppo di un ledger basato sui conti e sui conti contrattuali associati. Ma così facendo, la semantica del codice dei contratti è diventata molto più complessa, il che ha avuto l’effetto indesiderato di costringere gli autori dei contratti a cogliere appieno le sfumature della semantica per evitare l’introduzione di vulnerabilità potenzialmente molto costose nel codice.
Una soluzione UTXO “estesa” richiederebbe due funzionalità aggiuntive che il modello UTXO esistente non potrebbe fornire:
1 - Essere in grado di mantenere lo stato del contratto
2 - Essere in grado di imporre che lo stesso codice di contratto sia usato lungo l’intera sequenza di transazioni. Noi chiamiamo questa continuità.
Una potente caratteristica del modello EUTXO è che le commissioni richieste per una transazione valida possono essere previste con precisione prima di inviarla. Questa è una caratteristica unica che non si trova nei modelli basati sul conto.
Come il modello EUTXO estende UTXO?
Aggiungendo dati personalizzati alle uscite (oltre al valore), e consentendo più “chiusure” e “chiavi” che decidono sotto quali condizioni un ingresso può essere sbloccato per essere consumato da una transazione. In altre parole, invece di avere solo chiavi pubbliche (hash) per le chiusure e le firme corrispondenti che servono come “chiavi”, EUTXO permette una logica arbitraria sotto forma di script. Questa logica arbitraria ispeziona la transazione e i dati per decidere se la transazione ha il permesso di usare un input o no.
Conclusione: Cosa rende il modello EUTXO innovativo e rilevante
Il modello ledger di Cardano estende il modello UTXO per supportare multi-asset e contratti intelligenti senza compromettere i vantaggi fondamentali di un modello UTXO. La nostra ricerca innovativa consente funzionalità al di là di ciò che è supportato in qualsiasi altro ledger UTXO, rendendo Cardano un concorrente unico nello spazio blockchain di prossima generazione.