eUTXO Spiegato per gli Esseri Umani

Tempo di lettura stimato: 10 minuti

In questo post cercherò di documentare ciò che ho imparato su Ergo Blockchain negli ultimi mesi.

Ergo (https://ergoplatform.org/) è uno dei progetti che ha davvero attirato la mia attenzione. Poiché Ergo è ancora un giovane progetto, la documentazione non è ancora ampiamente disponibile, quindi come parte di questo e dei prossimi post del blog condividerò ciò che ho imparato.

Questo post sul blog riguarda i fondamenti, il paradigma su cui si basa Ergo. Comprendere il paradigma è importante in modo da poter modellare problemi e soluzioni. È interessante notare che questo stesso paradigma si applica anche a Cardano e immagino un sottoinsieme di altri sistemi Blockchain là fuori.

In questo post ignorerò i dettagli a favore della comprensione.

Sono nel mio viaggio di apprendimento, quindi se trovi errori concettuali in questo post, sii gentile e sentiti libero di farmi sapere per correggerli.

Paradigmi Blockchain

Facciamo un passo indietro un po ‘prima. Considera la programmazione: Ci sono diversi paradigmi per la programmazione: Programmazione funzionale, Orientata agli oggetti. tra gli altri.
Un linguaggio di programmazione di solito implementa uno di questi paradigmi o una combinazione di essi. Questi paradigmi influenzano il modo in cui consideri la risoluzione dei problemi.

Ogni paradigma ti dà diversi strumenti e astrazioni . Fornisce anche diversi vantaggi, ad esempio: la programmazione funzionale potrebbe essere davvero utile quando si tratta di elaborazione parallela, tuttavia impone alcuni principi: le variabili non possono essere mutate.
In termini di tecnologia blockchain le stesse intuizioni si applicano ai paradigmi.

Nello spazio delle Blockchain programmabili ci sono attualmente due paradigmi:

  1. Basato sull’account

2. eUTXO (output esteso delle transazioni non spese)

Il modello di account è utilizzato da Ethereum.
eUTXO è utilizzato da progetti come Cardano ed Ergo.

In questo post del blog non parlerò di come funziona il modello basato sull’account. Mi concentrerò sullo spiegare come funziona eUTXO.

eUTXO è l’acronimo di “extended Unspent Transactions Output”. Cardano ed Ergo sono implementazioni diverse di questo paradigma. Li tratterò dal punto di vista di un ingegnere che costruisce soluzioni su di loro.

eUTXO (output esteso delle transazioni non spese)

Concettualizziamo prima come appare la blockchain di Ergo per qualcuno che sta costruendo soluzioni su di essa.

  • Considera la blockchain di Ergo come un set di dati di scatole.
  • Ogni box contiene asset: Criptovaluta (ERG e/o altri token)

Se dovessi immaginare la blockchain di Ergo sembrerebbe come il disegno qui sotto:

Ergo blockchain è una collezione di Scatole
  • Come utente della blockchain Ergo puoi interagire con alcune di queste scatole.
  • Le applicazioni basate su Ergo funzionano utilizzando scatole esistenti e creando nuove scatole
  • Ogni box contiene risorse crittografiche (vale a dire Erg o altre monete)

Se dovessimo ingrandire una di quelle caselle, potrebbe assomigliare all’immagine qui sotto:

Una scatola Ergo

Una scatola è composta da:
1. Alcune risorse: risorse crittografiche.
2. Alcuni dati che dApp e programmatori possono utilizzare. (dimentichiamoci di questo per il momento)
3. Uno script (dimentichiamolo per il momento)

Zoomando di nuovo possiamo pensare alla blockchain di Ergo come a:
Dataset di scatole in cui ogni Box contiene alcune risorse Crypto.

Ogni casella contiene alcune risorse crittografiche

In questo set di dati di caselle :
1. Ogni scatola può essere utilizzata solo e solo una volta!.
2. 
Una volta utilizzata una scatola, non può più essere utilizzata ed è considerata “Esaurita“.
3. Le caselle inutilizzate sono chiamate “Non spese” e possono essere utilizzate come input nelle operazioni.

Tornando alla nostra blockchain Ergo illustrata, più accuratamente sembra quanto segue:

Nella nostra illustrazione alcune caselle (contrassegnate con la X rossa) sono contrassegnate come Esaurito. Le scatole esaurite non possono più essere utilizzate. Possiamo ispezionarli, ma non possiamo più interagire con loro, esistono come una sorta di riferimento storico.

Con questo in mente, sviluppare soluzioni sulla blockchain di eUTXO significa:
1. Interagire con scatole non spese2
. Come effetto collaterale dell’interazione con le scatole: (i) le caselle interagite vengono spese e (ii) vengono create nuove caselle non spese.

Infatti come ingegnere codifica soluzioni c’è solo un’operazione che puoi fare sopra le scatole esistenti: una transazione.

Transazioni

Immagina una transazione come una funzione di programmazione già definita. È possibile utilizzare questa funzione e sembra come nell’illustrazione qui sotto:

Una transazione : Operazione che possiamo applicare alle caselle non spese esistenti

Caselle di input : Si tratta di caselle non spese esistenti nella blockchain. Saranno contrassegnati come “spesi” se questa transazione ha esito positivo.

Scatole di uscita: Queste scatole non esistono ancora. Se la tua transazione ha esito positivo, queste caselle esisteranno nella blockchain come non spese.

Le scatole di output sono essenzialmente lo stato del mondo che vuoi esistere.

Essenzialmente dici alla funzione come vuoi che sia il mondo. La funzione di transazione risolverà come farlo accadere per tuo conto.Transaction

Ma tutte le transazioni hanno successo?
Posso semplicemente applicare un’operazione di transazione su qualsiasi casella che voglio?

> NO

È proprio qui che entra in gioco la parte dei “contratti intelligenti“.

Il campo Script

Ricorda che le caselle contengono un campo chiamato ?script

  • Ogni casella ha uno script.
  • Uno script è un blocco di logica che valuta un valore booleano: True o False.
  • Al momento della transazione viene valutato lo script delle caselle di input.
    Se la valutazione restituisce true, la transazione ha esito positivo e vengono create le caselle di output.
  • Nella blockchain ergo il linguaggio di programmazione che puoi utilizzare per definire il campo script si chiama ErgoScript.
  • ErgoScript è di proposito piuttosto limitato
  • Poiché ErgoScript è molto vincolato, la blockchain di Ergo può conoscere in anticipo il costo di esecuzione di tale script. Questo potrebbe non essere molto rilevante per questo post sul blog , ma questo è un elemento di differenziazione fondamentale da altri sistemi blockchain. Questo è il motivo per cui i costi di transazione in Ergo sono fissi.
  • Come programmatore puoi definire il tuo script e usarlo nelle tue scatole.
  • Utilizzando il campo script insieme alle caselle laterali e alle transazioni è possibile modellare le soluzioni ai problemi. Questo è il cuore della costruzione di DApp a Ergo e Cardano.

È interessante notare che ho letto contenuti scritti da membri della comunità Cardano, e sembra che evitino esplicitamente il termine “contratto intelligente” e li chiamino invece “validatori”. Poiché Cardano ed Ergo lavorano sotto lo stesso paradigma mi sembra un termine più accurato. A differenza di altri paradigmi in cui si codifica molta logica, in eUTXO ci concentriamo solo su script che convalidano se una transazione deve essere consentita o meno.

Ma aspetta.. se abbiamo solo scatole. In che modo un portafoglio possiede Erg nella blockchain di Ergo?

Giusto, durante le mie spiegazioni non hai mai sentito che le Scatole avevano un o giusto? ma come possono Ergo o Cardano supportare i portafogli altrimenti?.user fieldwallet_number

Risorse associate a un portafoglio

Puoi pensare a un Wallet come coppia: PrivateKey e PublicKey.

Considera un portafoglio con diciamo: 100 ERG. Ciò che questo significa in realtà è:

  1. Ci sono una o più caselle non spese che in totale contengono 100ERG
  2. Lo script di tali caselle corrisponde alla chiave pubblica del portafoglio (indirizzo pubblico).
    Questo script protegge la casella in modo tale che se si desidera utilizzare una di queste caselle in una transazione, è necessario fornire un messaggio firmato che dimostri di essere il proprietario della chiave privata complementare.
  3. Quando la tua app wallet vuole conoscere il tuo saldo, esegue la scansione della blockchain alla ricerca di caselle non spese il cui script corrisponde all’indirizzo del tuo portafoglio pubblico.
Saldo di un portafoglio

Considerazioni finali

Il modello eUTXO è molto interessante . Se hai familiarità con la programmazione funzionale puoi vedere come alcuni concetti sono simili. Ad esempio in eUTXO non c’è mutabilità: non puoi mutare una scatola. Puoi crearne solo di nuovi. Proprio come nella programmazione funzionale non c’è uno stato globale.
Dal mio punto di vista, come ingegnere, l’immutabilità e non lo stato globale rende le cose molto più semplici.

Come qualcuno che è interessato a come risolvere i problemi usando la blockchain mi piacciono i limiti di avere una singola operazione su Boxes. Questo semplifica le cose che potrebbero andare storte.

Inoltre fornisce anche un buon livello di astrazione, non so quali operazioni di livello inferiore si stiano svolgendo per creare una casella o essere contrassegnata come spesa. Come programmatore dico solo quale “stato del mondo” voglio e l’operazione di transazione si occupa del resto.

Nel mio prossimo post cercherò di descrivere il ciclo di vita di uno “smart contract” nella blockchain di Ergo e quali strumenti sono disponibili per codificarli.

Fonte:

Imparare Ergo 101 : eUTXO spiegato per gli esseri umani | di David Przybilla | Dicembre, 2021 | Medio (medium.com)

Articoli Correlati

Risposte