Traduzione italiana di How to Understand Transactions in Transaction
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 entra nel nostro gruppo Telegram
Come comprendere le transazioni nelle transazioni
Cardano consente di inviare più attività a più destinatari in un’unica transazione. Per questa funzione viene talvolta utilizzato il termine un po’ improprio di “transazione nella transazione”. Spieghiamo come le transazioni nella rete che utilizza il modello contabile UTxO differiscono dalle transazioni nella rete che utilizza il modello basato su account. Scopriremo anche perché la metrica TPS non è adatta a Cardano, ma va bene per Ethereum.
L’impatto del modello contabile sulle transazioni e sulla scalabilità
Cardano utilizza un modello di contabilità UTxO (unspent transaction output). Gli UTxO rappresentano una certa quantità e un certo tipo di attività.
Ogni transazione consuma alcuni UTxO da transazioni precedenti (gli UTxO sono l’input della transazione) e crea nuovi UTxO che possono essere utilizzati come input per transazioni future.
Nel contesto di una transazione, si può parlare di UTxO di ingresso e UTxO di uscita, o semplicemente di ingressi e uscite. È la stessa cosa.
Le transazioni Cardano cambiano i proprietari degli UTxO. Un UTxO ha un indirizzo che indica chi lo possiede e può spenderlo. Gli output della transazione (UTxO) hanno nuovi indirizzi che appartengono ai destinatari della transazione. La transazione trasferisce la proprietà degli UTxO dal mittente al destinatario.
Una transazione può avere più ingressi e più uscite, e ogni uscita può avere un valore e un tipo di attività diversi. Ogni uscita può essere inviata a un destinatario diverso.
Lo stato globale di Cardano (bilanci degli utenti) non funziona con account o portafogli nel contesto del ledger. Utilizza solo l’insieme UTxO, che è la raccolta di tutti gli output di transazione non spesi sulla rete. L’insieme UTxO rappresenta l’attuale distribuzione delle attività tra gli utenti di Cardano.
Quali sono i vantaggi del modello UTxO per la scalabilità?
La possibilità di inviare più asset a più destinatari riduce le dimensioni delle transazioni (e quindi le commissioni), a tutto vantaggio della scalabilità. Ciò consente di inserire più transazioni in un blocco.
Il processo di verifica è semplice ed efficiente, in quanto la rete deve solo controllare che gli input di una transazione siano UTxO validi di transazioni precedenti e che la somma dei valori degli input sia uguale o maggiore della somma dei valori degli output.
La rete non ha bisogno di tenere traccia dei saldi di ciascun account o di eseguire una logica complessa associata ai contratti intelligenti, come fa Ethereum (ne parleremo più avanti). Cardano non ha consapevolezza degli account. Ogni UTxO può essere verificato indipendentemente da altri UTxO, purché non vengano spesi dalla stessa transazione. Lo stesso vale per la convalida degli script. La convalida di uno script si riferisce sempre a un singolo UTxO.
Il modello UTxO consente l’elaborazione parallela di transazioni che non condividono alcun input, il che può migliorare la scalabilità e il throughput. Tuttavia, ciò richiede anche un protocollo di consenso in grado di gestire transazioni concorrenti e risolvere i conflitti.
Si può dire che le transazioni di Cardano sono “parallele” nel senso che possono servire più destinatari con asset diversi in una singola transazione. Più partecipanti sono serviti dalla rete nell’ambito di un’unica convalida. La convalida con più partecipanti è ovviamente più impegnativa per le risorse del computer. Tuttavia, è meno impegnativa rispetto alla creazione di transazioni separate per lo stesso numero di destinatari.
Diamo un’occhiata al modello basato sugli account che Ethereum utilizza. È importante capire lo stato globale condiviso e il modo in cui Ethereum lavora con i saldi degli utenti, cioè con i conti.
Lo stato globale condiviso di Ethereum è lo stato attuale di tutti gli account (saldi degli utenti) e dei contratti sulla rete. Ogni conto Ethereum ha un saldo di ETH e altri token. Lo stato globale condiviso di Ethereum è necessario da bloccare durante l’elaborazione di ogni singola transazione perché richiede (quasi sempre) esecuzioni di codice.
Le transazioni sono semplicemente trasferimenti di valore da un conto a un altro, quindi aggiornano semplicemente i saldi degli utenti. Ad esempio, una transazione sottrae 10 gettoni dal conto di Alice e li aggiunge al conto di Bob.
I token ERC-20 sono definiti da smart contract che implementano un’interfaccia standard per i trasferimenti e i saldi dei token. Non è possibile trasferire token ERC-20 senza utilizzare uno smart contract.
In Ethereum esistono due tipi di transazioni: una transazione di trasferimento di valore e una transazione di smart contract. Una transazione di trasferimento di valore può trasferire solo ETH, non altri token. Può avere un solo mittente e un solo destinatario. Ethereum può inviare più asset in una singola transazione, ma solo se la transazione prevede l’esecuzione di uno smart contract. Uno smart contract può anche implementare una logica in grado di trasferire questi token a diversi destinatari. Rispetto a Cardano, in Ethereum non è molto usuale inviare più asset a più destinatari.
L’elaborazione di una transazione in Ethereum richiede quasi sempre che la rete esegua il codice associato alla transazione e aggiorni di conseguenza lo stato di ciascun conto.
Lo stato di ogni account include (oltre ad altre cose) il suo saldo e il nonce. Il nonce è un numero che conta il numero di transazioni inviate da un conto.
Lo stato globale condiviso di Ethereum deve essere bloccato durante questo processo perché ogni transazione dipende dallo stato del conto del mittente, che può cambiare a causa di altre transazioni.
Ad esempio, se Alice invia una transazione a Bob con un nonce di 1 e poi invia un’altra transazione a Carol con un nonce di 2, la rete deve assicurarsi che la prima transazione venga elaborata prima della seconda, altrimenti si verificherebbe una transizione di stato non valida.
L’impatto del blocco dello stato globale condiviso durante l’elaborazione di ogni singola transazione è che limita la scalabilità e il throughput della rete.
Bloccare lo stato globale condiviso significa che le transazioni che condividono lo stesso mittente o destinatario devono essere elaborate in modo sequenziale, il che può creare colli di bottiglia e ritardi. Ad esempio, se Alice invia 10 transazioni a diversi destinatari in un breve periodo di tempo, ogni transazione deve attendere la conferma della precedente prima di poter essere elaborata. Questo può aumentare la latenza e il costo di ogni transazione.
La differenza tra il modello UTxO e quello basato sugli account è che Cardano lavora con UTxO indipendenti l’uno dall’altro (il che consente la parallelizzazione), mentre Ethereum lavora con bilanci di account che dipendono l’uno dall’altro (il che costringe a un’elaborazione sequenziale).
Probabilmente avete già capito che il termine “transazione nella transazione” si riferisce essenzialmente alla possibilità di inviare più asset a più destinatari in un’unica transazione. Nella terminologia di Ethereum, potremmo dire che una transazione regola più saldi.
La progettazione dei modelli contabili ha un impatto non solo sulla scalabilità, ma anche sulla misurazione del throughput della rete.
In merito all’idoneità della metrica TPS per le blockchain
Il TPS (Transactions Per Second) è una misura del numero di transazioni che una rete può elaborare in un secondo. Il TPS ci dice quante persone utilizzano o possono utilizzare la rete in un dato momento. La metrica TPS presuppone che una transazione trasferisca valore tra un mittente e un destinatario. Tuttavia, ha un inconveniente. Questo presupposto non è valido per il settore blockchain.
Il TPS è comunemente utilizzato per valutare le prestazioni e la scalabilità dei sistemi informatici, in particolare quelli che elaborano grandi quantità di transazioni finanziarie, come i sistemi di pagamento, le borse e le banche. Il TPS è adatto ai sistemi finanziari tradizionali, poiché le transazioni avvengono solitamente tra due partecipanti con un conto bancario.
È possibile utilizzare la metrica TPS nel settore della blockchain. Ma c’è un problema. Se vogliamo confrontare le blockchain con modelli contabili diversi, questa metrica è inadeguata. Per Ethereum, la metrica TPS è più adatta che per Cardano.
Anche se Ethereum può inviare più asset a più destinatari in una singola transazione, non è molto comune. Il TPS corrisponde quindi alla realtà, anche se può essere impreciso.
Nella rete Cardano, possiamo vedere transazioni complesse che trasferiscono più asset a più destinatari in quasi ogni blocco. La metrica TPS è quindi inappropriata e non fornisce numeri accurati.
Nelle ultime 24 ore, Cardano ha elaborato 18.759 transazioni semplici e 30.481 transazioni SC (. Inoltre, le transazioni non-SC possono trasferire più attività a più destinatari. Tuttavia, questo è più comune con le transazioni SC (tipicamente con le applicazioni DEX).
Uno dei recenti blocchi di Cardano conteneva 32 transazioni. La metrica TPS risulta essere 1,6. Tuttavia, se si esamina il blocco più da vicino, si scopre che gli indirizzi dei destinatari erano in totale 62. Se si aggiusta il TPS di conseguenza, il TPS risulta essere più basso. Se aggiustassimo il TPS di conseguenza, avremmo il numero 3,1. Il blocco comprendeva un totale di 189 UTxO.
Con Ethereum, un blocco simile con 32 transazioni avrebbe molto probabilmente solo 32 destinatari, quindi verrebbero aggiustati 32 saldi.
Se gli analisti vogliono misurare il throughput della rete di Cardano, devono andare più a fondo e guardare al contenuto delle transazioni. La metrica giusta sarebbe qualcosa come Requests-per-Second o Recipients-per-Second.
Conclusione
In un contesto più ampio, è necessario rendersi conto che la blockchain non è destinata a svolgere la funzione di una rete di transazioni come PayPal. La blockchain, o meglio le piattaforme di smart contract, possono essere più che altro una sorta di livello principale di regolamento per i livelli superiori o una sorta di livello di base. Gli asset saranno coniati su una blockchain che ne custodirà la politica monetaria, ma gli utenti li utilizzeranno probabilmente in altre reti. Il futuro è incerto a questo proposito, ma al momento sembra che sia così.
Gli utenti utilizzano Cardano soprattutto attraverso le applicazioni, come dimostra la composizione delle transazioni nel blocco. Ha senso avere più richieste nelle transazioni, in quanto si risparmia spazio nel blocco e gli utenti risparmiano sulle commissioni.