Tabella dei contenuti
Introduzione
Il problema di scalabilità della blockchain
Di conseguenza, ci troviamo di fronte a un ostacolo. Una blockchain può essere vista come un servizio di treni che partono a intervalli definiti. Ogni vagone offre posti limitati, e per ottenere un biglietto i viaggiatori devono fare un'offerta per guadagnarsi il posto. Se tutti cercano di salire sul treno contemporaneamente, il prezzo sarà alto. Allo stesso modo, un network intasata con transazioni in sospeso richiederà agli utenti di pagare commissioni più alte per far sì che le loro transazioni vengano incluse in tempi ragionevoli.
Il creatore di Ethereum Vitalik Buterin ha coniato il Trilemma della Scalabilità per descrivere la sfida che le blockchain devono affrontare. Buterin ha teorizzato che i protocolli devono fare compromessi tra scalabilità, sicurezza e decentralizzazione. Questi elementi sono in conflitto tra loro – concentrandosi troppo su due delle proprietà, la terza sarà scarsa.
Quali sono le soluzioni di scalabilità off-chain?
La scalabilità off-chain si riferisce agli approcci che consentono di eseguire transazioni senza appesantire la blockchain. Protocolli che si collegano alla blockchain e permettono agli utenti di inviare e ricevere fondi, senza che le transazioni appaiano sulla main chain. Andremo ad approfondire due delle categorie più conosciute e avanzate su questo fronte: le sidechain e i canali di pagamento.
Un'introduzione alle sidechain
Cos'è una sidechain?
Una sidechain è una blockchain separata che non è però una piattaforma indipendente, in quanto è ancorata in qualche modo alla main chain. La main chain e la sidechain sono interoperabili, ovvero gli asset possono fluire liberamente dall'una all'altra.
Come funziona una sidechain?
Supponiamo che la nostra amica Alice abbia cinque bitcoin. Vuole scambiarli per cinque unità equivalenti su una sidechain di Bitcoin – chiamiamole sidecoin. La sidechain in questione utilizza un ancoraggio bidirezionale, quindi gli utenti possono trasferire i propri asset dalla main chain alla sidechain e viceversa.
Alice ha ora convertito le sue monete in sidecoin, ma può sempre invertire il processo per recuperare i suoi bitcoin. Ora che p entrata nella sidechain, è libera di effettuare transazioni su questa blockchain separata. Puoi inviare sidecoin o riceverne da altri, proprio come avverrebbe sulla main chain.
Potrebbe, per esempio, pagare una sidecoin a Bob per una felpa Binance. Quando vuole tornare a Bitcoin, potrebbe inviare le sue quattro sidecoin rimanenti a un indirizzo speciale. Una volta confermata la transazione, quattro bitcoin verrebbero sbloccati e inviati a un indirizzo che lei controlla sulla main chain.
Perché vengono usate le sidechain?
Forse ti stai chiedendo a cosa possa servire tutto questo. Perché Alice non usa direttamente la blockchain di Bitcoin?
Effettivamente, è probabile che questo livello di sicurezza non sia necessario per piccoli pagamenti quotidiani. Se Alice sta pagando un caffè, non resterà in attesa della conferma della transazione. Creerebbe coda e il suo caffè sarebbe freddo prima che il pagamento sia concluso.
E' interessante notare che le sidechain potrebbero avere dei bug critici e la cosa non influenzerebbe la catena sottostante. Questo permette di usarle come piattaforme per la sperimentazione e per implementare funzionalità che richiederebbero altrimenti il consenso da parte della maggioranza del network.
A condizione che gli utenti siano soddisfatti con i compromessi, le sidechain potrebbero essere un passo avanti fondamentale verso una scalabilità efficace. I nodi della main chain non devono archiviare ogni transazione dalla sidechain. Alice potrebbe entrare nella sidechain con una singola transazione Bitcoin, eseguire centinaia di transazioni in sidecoin, e uscire dalla sidechain. Per quanto riguarda la blockchain di Bitcoin, ha eseguito solo due transazioni – una per entrare e una per uscire.
Un'introduzione ai canali di pagamento
Cos'è un canale di pagamento?
I canali di pagamento hanno lo stesso scopo delle sidechain sul fronte della scalabilità, ma sono fondamentalmente molto diversi. Come le sidechain, spingono le transazioni fuori dalla main chain per impedire alla blockchain di intasarsi. A differenza delle sidechain, però, non richiedono una blockchain separata per funzionare.
Come funziona un canale di pagamento?
Supponiamo che depositino 10 BTC ciascuno a un indirizzo che ora contiene 20 BTC. Sarebbe facile per loro tenere un bilancio che inizia dicendo che Alice e Bob hanno 10 BTC ciascuno. Se Alice vuole dare a Bob una moneta, potrebbero aggiornare il bilancio indicando che Alice ha 9 BTC e Bob ha 11 BTC. Non dovrebbero pubblicare sulla blockchain finché continuano ad aggiornare questi bilanci.
Quando arriverà il momento, però, supponiamo che Alice ha 5 BTC e Bob ha 15 BTC. Potrebbero creare una transazione che invia questi saldi agli indirizzi in possesso delle parti, firmarla e trasmetterla.
Alice e Bob potrebbero aver registrato dieci, cento o mille transazioni sul loro bilancio. Ma per quanto riguarda la blockchain, hanno eseguito soltanto due operazioni on-chain: una per la transazione iniziale e l'altra per riallocare i fondi al termine. Oltre a queste due, tutte le altre transazioni sono gratuite e quasi immediate in quanto avvengono off-chain. Non ci sono costi da pagare ai miner e nessuna conferma del blocco da aspettare.
Routing di pagamento
Evidentemente i canali di pagamento sono convenienti per due parti che prevedono un alto volume di transazioni. Ma non è finita qui. E' possibile creare un network di questi canali per fare in modo che Alice riesca a pagare un partecipante a cui non è connessa direttamente. Se Bob ha un canale aperto con Carol, Alice può pagare lei, a condizione che ci sia una capacità sufficiente. Alice trasmetterà i fondi al lato del canale di Bob, il quale, a sua volta, li trasmetterà a quello di Carol. Se Carol è connessa a un altro partecipante, Dan, è possibile fare la stessa cosa.
Una rete di questo tipo si evolve in una tipologia distribuita in cui chiunque è connesso a diversi peer. Spesso si troveranno percorsi multipli a una destinazione, e gli utenti potranno scegliere quello più efficace.
In chiusura
Abbiamo discusso due approcci alla scalabilità che permettono di effettuare transazioni senza appesantire la blockchain sottostante. Entrambe le tecnologie, sidechain e canali di pagamento, devono ancora maturare, ma vengono già sfruttate ampiamente dagli utenti che vogliono aggirare le carenze delle transazioni nel livello base.
Col passare del tempo e man mano che altri utenti si uniscono al network, è importante che la decentralizzazione rimanga intatta. Questo è possibile solo attraverso l'imposizione di limiti sulla crescita della blockchain per fare in modo che nuovi nodi riescano a unirsi facilmente. I sostenitori delle soluzioni di scalabilità off-chain credono che, col tempo, la main chain verrà usata solo per regolare transazioni di alto valore, o per entrare/uscire da sidechain e aprire/chiudere canali.