introduzione
La scalabilità si riferisce in generale alla capacità di un sistema di crescere per soddisfare la crescente domanda. Nell'informatica, potresti aumentare le prestazioni della tua macchina aggiornandone l'hardware in modo che sia più veloce eseguire determinate attività. Quando parliamo di scalabilità nelle blockchain, ci riferiamo alla crescente capacità di gestire più transazioni.
Protocolli come Bitcoin hanno molti punti di forza, ma la scalabilità non è uno di questi. Se Bitcoin fosse eseguito in un database di proprietà centrale, sarebbe relativamente facile per un amministratore aumentare la velocità e il throughput. Ma le proposte di valore di Bitcoin (ovvero la resistenza alla censura) richiedono che molti partecipanti sincronizzino una copia della blockchain.
Il problema della scalabilità della blockchain
Gestire un nodo Bitcoin è relativamente economico e anche i dispositivi più semplici possono farlo. Ma poiché le migliaia di nodi devono mantenersi aggiornati tra loro, ci sono alcune limitazioni alla loro capacità.
Vengono posti dei limiti al numero di transazioni che possono essere elaborate sulla catena, in modo da non consentire al database di crescere fino a raggiungere dimensioni ingombranti. Se dovesse diventare troppo grande e troppo velocemente, i nodi non saranno in grado di tenere il passo. Inoltre, se i blocchi sono troppo grandi, non possono essere rapidamente inoltrati sulla rete.
Di conseguenza, ci troviamo di fronte a una sorta di collo di bottiglia. Una blockchain può essere vista come un servizio ferroviario che parte a intervalli prestabiliti. Ci sono solo posti limitati in ogni carrozza e per ottenere un biglietto i viaggiatori devono fare un'offerta per garantire un posto. Se tutti provassero a salire sul treno contemporaneamente, il prezzo sarebbe alto. Allo stesso modo, una rete intasata di transazioni in sospeso richiederà agli utenti di pagare commissioni più elevate per vedere la propria transazione inclusa in modo tempestivo.
Una soluzione potrebbe essere quella di ingrandire le carrozze. Ciò significherebbe più posti, maggiore traffico e prezzi dei biglietti più economici. Ma non c’è alcuna garanzia che i posti non si riempiranno come una volta. Le carrozze non possono essere ampliate all’infinito, così come i blocchi o i limiti del gas non possono scalare all’infinito. Quest’ultimo rende più costoso per i nodi rimanere sulla rete, poiché avranno bisogno di hardware più costoso per rimanere sincronizzati.
Il creatore di Ethereum Vitalik Buterin ha coniato il Trilemma della Scalabilità per descrivere la sfida affrontata dalle blockchain. Teorizza che i protocolli debbano trovare dei compromessi tra scalabilità, sicurezza e decentralizzazione. Questi sono in qualche modo in contrasto tra loro: concentrandosi troppo su due delle proprietà, la terza risulterà scadente.
Per questo motivo, molti vedono la scalabilità come qualcosa da raggiungere fuori dalla catena, mentre la sicurezza e la decentralizzazione dovrebbero essere massimizzate sulla blockchain stessa.
Cosa sono le soluzioni di scalabilità off-chain?
Il ridimensionamento fuori catena si riferisce ad approcci che consentono l’esecuzione delle transazioni senza gonfiare la blockchain. I protocolli che si collegano alla catena consentono agli utenti di inviare e ricevere fondi, senza che le transazioni appaiano sulla catena principale. Ci immergeremo in due dei progressi più importanti su questo fronte: sidechain e canali di pagamento.
Un'introduzione alle sidechain
Cos'è una sidechain?
Una sidechain è una blockchain separata. Tuttavia, non è una piattaforma autonoma, poiché è in qualche modo collegata alla catena principale. La catena principale e la catena laterale sono interoperabili, il che significa che le risorse possono fluire liberamente dall'una all'altra.
Esistono diversi modi per garantire che i fondi possano essere trasferiti. In alcuni casi, gli asset vengono spostati dalla catena principale depositandoli in un indirizzo speciale. Non vengono realmente inviati: sono invece bloccati nell'indirizzo e un importo corrispondente viene emesso sulla sidechain. Un’opzione più semplice (anche se centralizzata) è inviare fondi a un custode, che scambia il deposito con fondi sulla sidechain.
Come funziona una sidechain?
Supponiamo che la nostra amica Alice abbia cinque bitcoin. Vuole scambiarli con cinque unità equivalenti su una sidechain Bitcoin: chiamiamoli sidecoin. La sidechain in questione utilizza un peg bidirezionale, il che significa che gli utenti possono trasferire i propri asset dalla catena principale alla sidechain e viceversa.
Ricorda che la sidechain è una blockchain separata. Quindi, avrà diversi blocchi, nodi e meccanismi di convalida. Per ottenere i suoi sidecoin, Alice avrebbe inviato i suoi cinque bitcoin a un altro indirizzo. Potrebbe essere di proprietà di qualcuno che accrediterà quindi cinque sidecoin al suo indirizzo sidechain una volta ricevuti i bitcoin. In alternativa, potrebbe avere una sorta di configurazione minimizzata in cui i sidecoin vengono automaticamente accreditati dopo che il software rileva un pagamento.

Alice ora ha convertito le sue monete in sidecoin, ma può sempre invertire il processo per recuperare i suoi bitcoin. Ora che è entrata nella sidechain, è libera di effettuare transazioni su questa blockchain separata. Può inviare sidecoin o riceverli da altri, proprio come farebbe sulla catena principale.
Potrebbe, ad esempio, pagare a Bob una sidecoin per una felpa con cappuccio di Binance. Quando vorrà tornare a Bitcoin, potrà inviare i suoi quattro sidecoin rimanenti a un indirizzo speciale. Dopo la conferma della transazione, quattro bitcoin verranno sbloccati e consegnati a un indirizzo da lei controllato sulla catena principale.
Perché vengono utilizzate le sidechain?
Potresti chiederti quale sia il punto di tutto ciò. Perché Alice non usa semplicemente la blockchain di Bitcoin?
La risposta è che la sidechain potrebbe essere capace di cose che Bitcoin non può fare. Le blockchain sono sistemi di compromessi attentamente progettati. Sebbene Bitcoin sia la criptovaluta più sicura e decentralizzata, non è la migliore in termini di throughput. Sebbene le transazioni Bitcoin siano più veloci rispetto ai metodi convenzionali, sono ancora relativamente lente rispetto ad altri sistemi blockchain. I blocchi vengono estratti ogni dieci minuti e le tariffe possono aumentare in modo significativo quando la rete è congestionata.
Certo, probabilmente non è necessario questo livello di sicurezza per i piccoli pagamenti quotidiani. Se Alice sta pagando un caffè, non starà ad aspettare la conferma della transazione. Avrebbe tenuto la coda e la sua bevanda sarebbe stata fredda quando le sarebbe stata consegnata.
Le sidechain non sono vincolate dalle stesse regole. In effetti, non hanno nemmeno bisogno di utilizzare la Proof of Work per funzionare. Potresti utilizzare qualsiasi meccanismo di consenso, fidarti di un singolo validatore o modificare un numero qualsiasi di parametri. Potresti aggiungere aggiornamenti che non esistono sulla catena principale, produrre blocchi più grandi e imporre accordi rapidi.
È interessante notare che le sidechain potrebbero anche avere bug critici senza influenzare la catena sottostante. Ciò consente loro di essere utilizzati come piattaforme per la sperimentazione e per implementare funzionalità che altrimenti richiederebbero il consenso della maggior parte della rete.
A condizione che gli utenti siano soddisfatti dei compromessi, le sidechain potrebbero rappresentare un passo fondamentale verso un ridimensionamento efficace. Non è necessario che i nodi della catena principale memorizzino ogni transazione dalla sidechain. Alice potrebbe entrare nella sidechain con una singola transazione Bitcoin, eseguire centinaia di transazioni sidecoin e quindi uscire dalla sidechain. Per quanto riguarda la blockchain di Bitcoin, ne ha eseguite solo due: una per entrare e una per uscire.
Il Plasma di Ethereum è simile, ma presenta alcune differenze importanti. Maggiori informazioni a riguardo: Cos'è Ethereum Plasma?
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 catena principale per evitare che la blockchain si gonfi. A differenza delle sidechain, tuttavia, non richiedono una blockchain separata per funzionare.
Un canale di pagamento utilizza un contratto intelligente per consentire agli utenti di effettuare transazioni senza pubblicare le proprie transazioni sulla blockchain. Lo fa utilizzando un accordo applicato dal software tra due partecipanti.
Come funziona un canale di pagamento?
In modelli come il popolare Lightning Network, due parti depositano prima le monete in un indirizzo di loro proprietà congiunta. Si tratta di un indirizzo multifirma, che richiede due firme affinché i fondi possano essere spesi. Quindi, se Alice e Bob creassero un indirizzo del genere, i fondi potrebbero essere spostati solo con il consenso di entrambi.
Supponiamo che ciascuno depositi 10 BTC su un indirizzo che ora contiene 20 BTC. Sarebbe facile per loro tenere un bilancio che inizi dicendo che Alice e Bob hanno entrambi 10 BTC ciascuno. Se Alice volesse dare a Bob una moneta, potrebbe aggiornarla per leggere Alice ha 9 BTC, Bob ha 11 BTC. Non dovrebbero pubblicare sulla blockchain mentre continuano ad aggiornare questi saldi.

Quando arriverà il momento, però, diciamo che Alice ha 5 BTC e Bob ha 15 BTC. Potrebbero quindi creare una transazione che invia questi saldi agli indirizzi di proprietà delle parti, firmarla e trasmetterla.
Alice e Bob avrebbero potuto registrare dieci, cento o mille transazioni nel loro bilancio. Ma per quanto riguarda la blockchain, hanno eseguito solo due operazioni on-chain: una per la transazione di finanziamento iniziale e una per riallocare i saldi una volta terminata. A parte queste due, tutte le altre transazioni sono gratuite e quasi istantanee perché avvengono fuori catena. Non è prevista alcuna commissione per il minatore da pagare né conferme di blocco da attendere.
Naturalmente, l’esempio discusso sopra richiede che entrambe le parti collaborino, il che non è una situazione ideale per gli estranei. Tuttavia, è possibile utilizzare meccanismi speciali per punire qualsiasi tentativo di imbroglio, in modo che le parti possano interagire tra loro in modo sicuro e senza fiducia.
Instradamento dei pagamenti
Evidentemente i canali di pagamento sono convenienti per due parti che prevedono un volume elevato di transazioni. Ma c'è di meglio. È possibile arricchire una rete di questi canali, il che significa che Alice potrebbe pagare una parte a cui non è direttamente collegata. Se Bob ha un canale aperto con Carol, Alice può pagarla purché ci sia capacità sufficiente. Spingerà i fondi verso il lato del canale di Bob, che, a sua volta, li spingerà verso quello di Carol. Se Carol è connessa ad un altro partecipante, Dan, si può fare la stessa cosa.
Una rete di questo tipo si evolve in una topologia distribuita in cui tutti si connettono a più peer. Spesso ci saranno più percorsi verso una destinazione e gli utenti potranno scegliere quello più efficace.
Pensieri conclusivi
Abbiamo discusso due approcci alla scalabilità che consentono di effettuare transazioni senza gravare sulla blockchain sottostante. Sia le sidechain che la tecnologia dei canali di pagamento devono ancora maturare, ma vengono sfruttati sempre più dagli utenti che desiderano aggirare le carenze delle transazioni di livello base.
Con il passare del tempo e un numero sempre maggiore di utenti che si uniscono alla rete, è importante che la decentralizzazione venga mantenuta. Ciò è realizzabile solo imponendo limiti alla crescita della blockchain in modo che nuovi nodi possano unirsi facilmente. I sostenitori delle soluzioni di scalabilità off-chain ritengono che, col tempo, la catena principale verrà utilizzata solo per regolare transazioni di alto valore o per agganciare/disconnettere sidechain e aprire/chiudere canali.

