🇮🇹 "Perché il modello UTxO esteso è migliore dell'account model per la blockchain | CH AMA 2 Apr 2023"

:it: Trascrizione in italiano di un estratto di “Surprise AMA 04/02/2023”.

Da 00:59:17 a 01:06:45 del video originale.

Pubblicato sul canale Youtube di Charles Hoskinson il 2 aprile 2023.

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 :pray: entra nel nostro gruppo Telegram


Perché il modello UTxO esteso è migliore di quello account per le blockchain?

Si tratta del parallelismo, della concorrenza e della capacità di elaborare transazioni fuori catena. Quando si utilizza un modello di tipo Account, l’intero sistema deve aggiornarsi costantemente, tenere traccia, è come una variabile globale su ciò che sta accadendo per lo stato del sistema. Quando si è in un modello di tipo UTxO, c’è la nozione di tenere traccia dell’UTxO corrente, ma l’utente non deve saperlo. Dovete solo conoscere la vostra parte frammentata di esso, le cose che sono rilevanti per il vostro particolare portafoglio. Per questo motivo si inizia ad avere questa bellissima natura in cui le cose che accadono sulla catena e fuori dalla catena sono isomorfe l’una all’altra. In altre parole, le cose possono essere interrotte per un po’ di tempo, possono verificarsi molte transazioni e, quando si torna indietro, non si è sorpresi da qualche cambiamento che non si pensava sarebbe avvenuto senza il proprio permesso o la propria conoscenza. È quindi possibile fornire forti garanzie nelle prove, nella matematica e nell’ingegneria, dove questo è rilevante, nei rollup, davvero rilevante quando si parla di canali di pagamento, quando si parla di transazioni sidechain. Quando abbiamo realizzato il modello di contabilità di Cardano, ci siamo detti che volevamo qualcosa che fosse facile da frammentare, parallelizzare, altamente concorrente, e questo è stato il modello che abbiamo dovuto elaborare.

Ora, il rovescio della medaglia è simile a quando si passa da un processore single-core a più processori, il modo in cui si scrive il codice, per sfruttare queste capacità, è fondamentalmente diverso. È possibile emulare, in un modello di tipo Account, l’UTxO esteso, ma se lo si fa in modo molto ingenuo, si ottiene la situazione di una transazione per blocco in cui ci trovavamo quando è arrivato Alonzo. Da allora la situazione è stata risolta, le persone hanno saputo scrivere il codice in modo corretto e hanno iniziato a ottenere risultati sorprendenti. L’aspetto positivo è che si possono fare molte cose in un’unica transazione, nel modello account si fa una cosa per transazione, si pensa a TPS, con il modello UTxO esteso si pensa a TPT, transazioni per transazione. Per mostrarvelo rapidamente, c’è un sito web adorabile, ci siamo assicurati che siate connessi, sì, lo siete, sto per condividere lo schermo, siete pronti per questa schifezza, wuaaaa. Ecco qui, UTxO.org esteso. Questo è direttamente collegato alla blockchain di Cardano, che sarà online tra un secondo. In pratica mostra, in tempo reale, i blocchi della rete Cardano. Ognuno di questi piccoli blocchi è in realtà una transazione, e tutti questi output sono tutte cose diverse che stanno accadendo allo stesso tempo, se ne evidenzio uno, vedete che è uno script Plutus, questi sono NFT, questi sono Ada in movimento, è una singola transazione, guardate tutti i diversi eventi che sono accaduti. Questo è uno sguardo in tempo reale alla rete Cardano, Sand Stone, congratulazioni, Sand, hai creato questo blocco, c’è uno script grasso, questo è Charlie 3 proprio lì, questa è una transazione oracolo, a quanto pare qualcuno ha spostato un NFT e c’è qualcosa che si muove qui, questi sono 16 NFT, che vengono rilasciati allo stesso tempo, questa è una transazione. Congratulazioni a chi l’ha fatto, ma questo è impossibile da fare nel modello di account, che non ha una rappresentazione di questo tipo.

Ciò che finisce per accadere è che alla fine si sviluppa la capacità di fare un numero sempre maggiore di output. Ergo, ad esempio, ha sperimentato 5 mila output, e ogni output può contenere decine di eventi. Succedono molte cose interessanti, una transazione potrebbe essere 5 mila transazioni. E parlando di rollup, si può iniziare a parlare di prendere tutte queste cose, e invece di essere singole mosse Ada, di NFT, wow, ci sono un sacco di script in questo blocco, o di script, si può potenzialmente rendere tutte queste cose script speciali, avere tonnellate di rollup fuori catena. Quindi, ricorsivamente, ciò che finisce per accadere è che il sistema ottiene una scala enorme, decine di migliaia, centinaia di migliaia di eventi di transazioni reali al minuto.

Questo semplifica le cose perché i rollup sono essenzialmente transazioni raggruppate, in modo da essere poi convalidate a catena. Perché è più facile raggrupparle?

Si possono prendere tutte queste cose e raggrupparle in un unico output. Tutte queste cose sarebbero un unico script. Poi si può avere lo script che lo rappresenta, ognuno dei quali può essere uno script. Questa è la cosa bella di UTxO esteso. E non è possibile farlo con l’account, non è possibile.

Allora perché hanno deciso di optare per un modello account?

Perché il modello di sviluppo è molto più semplice. La programmazione UTxO è molto più difficile da fare, è come la programmazione funzionale rispetto a quella imperativa. Noi siamo programmatori funzionali, siamo molto abituati a questo tipo di pensiero, anche Bitcoin lo fa. Tra l’altro, questo è l’unico modo in cui Bitcoin potrebbe fare contratti intelligenti, questo è il modo in cui li facciamo noi, mostriamo a Bitcoin come farlo, ma credo che non abbiamo mai innovato. Quindi, penso che sia un ottimo modello, costruito come un guanto per Hydra, per le transazioni sidechain, i rollup, le cose fuori dalla catena. È molto chiaro come, nel tempo, si ottimizzi il modello UTxO. Ergo ha fatto un ottimo lavoro, continuiamo a farlo e ogni versione di Plutus, con un aggiornamento di UTxO, diventerà più efficiente. Si può quindi scalare orizzontalmente, e fisicamente si possono fare più transazioni in un blocco, questo è il senso delle approvazioni in ingresso, e si può scalare verticalmente, dove si usano le transazioni in modo più efficiente, e si può scalare fuori dalla catena, dove si può rappresentare qualcosa sulla catena che è una prova di molte cose che sono accadute fuori dalla catena, questi sono rollup, cose in stile Hydra. E si possono avere modelli completamente diversi, questo è il senso delle sidechain. Queste tre cose insieme, l’orizzontale, il verticale, l’off-chain, le sidechain, questo tipo di cose, sono ciò che rende davvero grande la salsa segreta. È inevitabile che con il passare del tempo si ottenga una maggiore velocità e capacità. Siamo già passati da un modello di sviluppo molto difficile, quando Alonzo è uscito, a un modello piuttosto funzionale, a un ecosistema piuttosto funzionale, in circa la metà del tempo necessario a Ethereum. Se ci date un altro anno o due, sarà esponenzialmente migliore, ci saranno molte più capacità all’interno del sistema.

C’è una buona domanda da porsi: quanto Hydra aumenterà il TPS? Non è questa la domanda giusta, la domanda giusta è: come si può usare Hydra come middleware, nella propria applicazione, in modo da poter fare molte delle cose costose fuori dalla catena, e poi quando si torna alla catena si usano meno risorse sulla catena? Ci sono quindi due direzioni in cui si può andare: o si può fare tutto on-chain, rendendo la catena molto carica, con molta potenza di calcolo, oppure si può cercare di trovare un modo per fare molte di queste cose off-chain, in un sistema intelligente, raggrupparle e riportarle nella catena, che è più o meno la direzione in cui stanno andando tutti. Questo è ciò che Hydra sta facendo, è un middleware che fornisce questa capacità.