ETHEREVOLUTION: INSIEME NEL FUTURO

Menu
Home » Blockchain » La teoria degli State Channels

La teoria degli State Channels

27 Giugno 2019 20:15
Tempo di lettura: 7 min.
27 Giugno 2019 20:15
Giuseppe Brogna

L’implementazione di soluzioni basate sul concetto degli State Channels risolve non solo problemi di scalabilità, ma anche di utilizzabilità delle applicazioni decentralizzate.

Attualmente la rete di Ethereum processa all’incirca 15-20 transazioni per secondo.

È obiettivamente troppo poco affinché Ethereum possa affermarsi come la nuova evoluzione del web, costituito da una miriade di dApps eseguite in maniera decentralizzata e inarrestabile.

L’esecuzione sulla blockchain di dApps che comportano interazione reiterata, non è neppure conveniente da un punto di vista economico.

Se devi partecipare a un gioco che richiede multiple azioni, dovresti eseguire tante transazioni on chain quante sono le attività del gioco. Ogni transazione implica il pagamento del gas, con costi verosimilmente elevati in caso di rete congestionata e non scalabile.

In questo articolo, vediamo innanzitutto in cosa consiste la teoria degli state channels. Infine, un esempio pratico sarà utile per una migliore assimilazione del concetto.

State Channels

Quando si parla di state channels, ci si riferisce al processo di comunicazione diretta tra gli utenti al di fuori della blockchain. Uno state channel è, in sostanza, un canale di comunicazione bidirezionale tra gli utenti o tra un utente e un servizio (una macchina).

I messaggi assumono la forma di transazioni, come “Voglio noleggiare questo canale TV per un’ora per 5 euro” oppure “Voglio compiere questa azione in un gioco“.

Si parla non a caso di transazioni off chain, le quali riducono notevolmente l’esecuzione di operazioni sulla blockchain. I partecipanti firmano ogni messaggio della comunicazione, rendendo la serie di transazioni impossibile da negare in seguito

Si tratta di una delle migliori soluzioni di scalabilità su Ethereum. Le sue implemetazioni sono in fase di sviluppo, ma alcune già sul punto di raggiungere un buon livello di utilizzabilità (Raiden).

Gli state channels sono molto simili al concetto dei canali di pagamento in Lightning Network di Bitcoin. Però, invece di supportare solo i pagamenti, consentono anche gli “aggiornamenti di stato” generali, come ad esempio le azioni in un gioco di scacchi (vedi esempio sotto).

Ad una prima lettura, si intuisce subito che le transazioni dirette tra utenti, al di fuori della blockchain, non godono dello stesso livello di sicurezza delle comunicazioni on chain.

Sennonché, il rischio è mitigato dalla possibilità di “tornare indietro” e rivolgersi alla blockchain come strumento di regolamentazione o settlment. Questa possibilità induce l’utente ad agire razionalmente e a non cercare di ingannare l’altra parte.

Le transazioni on chain non sono completamente eliminate, bensì ridotte alle sole sequenze necessarie.

Gli utenti devono creare e pagare una transazione Ethereum quando aprono per la prima volta il canale. Quando sono pronti a chiudere il canale, devono nuovamente pagare le fee per eseguire una transazione sulla blockchain di Ethereum.

La drastica riduzione della quantità necessaria di transazioni on chain, riduce i costi ed eleva esponenzialmente la velocità nell’utilizzo di Ethereum.

Ecco la sequenza delle operazioni da compiere per eseguire le transazioni attraverso gli state channels:

  1. Gli utenti vincolano una parte dello stato inviando una transazione a un contratto multisign, controllato da un set definito di partecipanti. Si parla di “state deposit”.
  2. Il canale è aperto: gli utenti firmano le transazioni e le inviano l’uno all’altro. I canali non sono altro che sequenze di transazioni prefirmate.
  3. Ogni transazione contiene un nonce, in modo che lo smart contract possa conoscere l’ordine cronologico delle transazioni.
  4. Quando le parti hanno finito di scambiarsi transazioni, chiudono lo stato inviando una transazione alla blockchain di Ethereum.
  5. Lo stato viene aggiornato e sbloccato sulla blockchain alla luce di quanto accaduto nel canale, con lo smart contract che invia a ciascuna parte il saldo rimanente di ether.

Esempio pratico: una partita a scacchi

Per comprendere al meglio il funzionamento degli state channels, immagina un gioco di scacchi basato su una applicazione decentralizzata di Ethereum.

Ogni giocatore vincola in uno smart contract 1 ether, in modo che chi vincerà la partita potrà ottenere l’intera premio.

L’esecuzione di questo gioco sulla blockchain di Ethereum, implica che turno dopo turno ogni giocatore deve inviare una transazione per compiere la sua mossa di gioco. Al termine della partita, quando uno dei giocatori avrà fatto scacco matto, il gioco si conclude e il vincitore potrà esigere dallo smart contract la vincita di 2 ether.

Qual è il problema in questo approccio?

Il limite di questa soluzione è dovuto al fatto che per il compimento di ogni mossa di gioco, il giocatore deve attendere l’esecuzione della transazione on chain e pagare i costi per il gas consumato.

È pacifico che a queste condizioni un utente rinuncerebbe a giocare. Al di là dei problemi di congestionamento della rete, sarebbe sicuramente più proficuo ed economico utilizzare un gioco di scacchi basato su un’applicazione ospitata su un server centralizzato.

L’approccio più efficiente è quello basato sul concetto degli state channels.

Anche in questo caso si parte da una transazione on chain. I giocatori vincolano 1 ether ciascuno in uno smart contract, il quale conosce le regole del gioco, come ad esempio le condizioni di vincita e quando il gioco può considerarsi concluso.

Dopo aver vincolato le puntate nello smart contract, viene creato un canale di comunicazione off chain.

I giocatori possono iniziare a giocare, creando e inviando transazioni che descrivono le mosse di gioco. Tali transazioni sono scambiate esclusivamente tra le parti del gioco, quindi non sono trasmesse alla blockchain, che non può sapere quello che accade all’interno del canale.

Nell’ambito dello state channel, le transazioni tra i giocatori avranno lo stesso formato di una normale transazione. Descrivono un cambiamento di stato nel gioco e contenengono un nonce per mantenere la sequenzialità.

Ipotizziamo che dopo 50 mosse di gioco uno dei partecipanti riesca a fare scacco matto. In questo caso verrà effettuata una nuova transazione verso lo smart contract, la quale chiude il canale trasmettendo lo stato finale del gioco con l’intera sequenza delle transazioni off chain.

Sulla base delle regole del gioco, lo smart contract verifica la legittimità della transazione e, in caso affermativo, invia il premio al vincitore della partita.

Ovviamente, potrebbe aversi il caso di in giocatore che voglia barare inviando uno stato alternativo per dimostrare di aver vinto.

Per impedire queste distorsioni, prima dell’approvazione finale si apre un “fase di disputa”. Si tratta di un arco tenporale in cui il partecipante che non ha inviato lo stato finale ha l’opportunità di contestarne la veridicità mostrando la versione corretta.

Lo smart contract verificherà la coerenza della sequenza di transazioni, tenendo conto che il contestatore ha mostrato una transazione con un nonce più grande, la quale dimostra che si sono verificate ulteriori transazioni dopo lo stato finale reclamato dal baro.

Il vantaggio in numeri

Il vantaggio degli state channels è evidente. Abbiamo ipotizzato che il gioco si sia concluso dopo 50 mosse (25 per ciascun giocatore).

Se il gioco si fosse svolto attraverso interazioni on chain, sarebbero state necessarie almeno 53 transazioni sulla blockchain di Ethereum (2 di apertura del canale + 50 per le mosse di gioco + 1 per il settlment dello stato finale sulla blockchain = 52).

Nel caso di sviluppo del gioco su state channel, esclusi tentativi di broglio, sarebbero sufficienti soltanto 3 transazioni sulla blockchain (2 di apertura del canale + 1 di invio dello stato finale e chiusura del canale = 3).

Lo scenario potrebbe essere anche più complesso, in caso di torneo con molteplici partecipanti e migliaia di transazioni. Ma il risultato non cambierebbe.

Anche se nel canale venissero scambiate migliaia di transazioni, sulla blockchain dovrebbero essere effettuate solo le transazioni dei partecipanti al gioco per aprire il canale e quella di registrazione dello stato e chiusura del canale.

Conclusioni

La scalabilità è il più grande ostacolo che le blockchain devono affrontare quando si tratta di raggiungere l’adozione mainstream. La maggior parte delle applicazioni decentralizzate sono ancora troppo lente e costose per gli utenti finali.

Gli state channel elevano il throughput delle blockchain pubbliche, poiché riducono il carico di calcolo che i nodi devono sostenere per processare le transazioni.

Allo stesso modo, gli state channel riducono i costi necessari per utilizzare la rete di Ethereum. Anziché pagare le fee per ogni transazione, gli utenti devono pagare per il gas solo quando aprono e chiudono un canale.

Gli state channel aiutano anche a preservare la privacy degli utenti.

Le transazioni all’interno di un canale sono conosciute solo dai partecipanti al canale. È un aspetto contrastante rispetto agli scambi sulla blockchain di Ethereum, in cui ogni transazione è riportata in un registro pubblicamente verificabile.

Infine, le transazioni all’interno degli state channel ottengono definitività immediata.

Gli utenti non devono aspettare che ogni transazione sia inclusa in un blocco sul quale venga proseguita l’attività di mining a conferma della validità dello stesso. L’immediatezza rende l’esperienza utente più gradevole e in linea con il funzionamento delle applicazioni mainstream già utilizzate dagli utenti.

In definitiva, è chiaro che la rete di Ethereum deve incorporare una soluzione che scali il sistema e soddisfi le esigenze di un numero sempre più crescente di utenti.

Le soluzioni di scalabilità basate sulla teoria degli state channel, come Raiden e Plasma, sono davvero promettenti, considerando i solidi concetti alla loro base.



3 VIDEO GRATUITI DALLA DM CRIPTO












Ti invieremo i
VIDEO GRATUITI
e in più, n
elle email successive, il frutto delle nostre ricerche più avanzate sulle criptovalute e i nostri servizi legati ad esse.

Tratteremo i tuoi
dati personali
con la massima cura e in conformità della normativa privacy GDPR UE2016/679. E potrai disiscriverti in qualsiasi momento con un semplice click.


Condividi

CATEGORIE:

Blockchain


Giuseppe Brogna

Giuseppe è laureato in giurisprudenza, da sempre appassionato di tecnologia e studioso di tematiche economiche. Stimolato dal potenziale impatto economico e sociale, si approccia al mondo delle DLT; matura particolari interessi nella nuova finanza hitech legata alle tecnologie del ledger distribuito.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Condividi questo articolo

Invia questo articolo ad un amico