- Il futuro della serie Blockchain
- Sì, la blockchain ha un problema di scalabilità. Ecco cos’è, ed ecco cosa stanno facendo le persone per risolverlo.
- Aumentare la dimensione del blocco o diminuire il tempo di generazione del blocco non risolve il problema: uno sguardo al TPS non SegWit
- L’emergere di SegWit
- Approcci esistenti e futuri per risolvere la scalabilità
- Pagamenti in blocco in una transazione
Il futuro della serie Blockchain
Sì, la blockchain ha un problema di scalabilità. Ecco cos’è, ed ecco cosa stanno facendo le persone per risolverlo.
La battaglia per una soluzione scalabile è la corsa alla luna della blockchain. Bitcoin elabora 4,6 transazioni al secondo. Visa fa in media circa 1.700 transazioni al secondo (sulla base di un calcolo derivato dalla dichiarazione ufficiale di oltre 150 milioni di transazioni al giorno). Il potenziale per l’adozione c’è, ma è strozzato attualmente dalla scalabilità.
Uno studio pubblicato da Tata Communications nel 2018 ha mostrato che il 44% delle organizzazioni nella sua indagine sta adottando blockchain, ma allude anche ai problemi universali che sorgono dall’implementazione di nuove tecnologie. Da un livello architettonico, il problema irrisolto della scalabilità sta emergendo come un collo di bottiglia per l’adozione di blockchain e le applicazioni pratiche.
Come dice Deloitte Insights, “i sistemi basati su blockchain sono relativamente lenti. La lentezza delle transazioni di Blockchain è una grande preoccupazione per le imprese che dipendono dai sistemi di elaborazione delle transazioni legacy ad alte prestazioni”. Il mondo ha ricevuto un assaggio dei problemi di scalabilità nel 2017 e nel 2018: gravi ritardi di trasferimento e tariffe elevate sulla rete Bitcoin, e la famigerata app Cryptokitties che ha congestionato la rete blockchain Ethereum (una rete su cui si basano migliaia di applicazioni decentralizzate).
Per scalare una blockchain, non è sufficiente aumentare la dimensione del blocco o diminuire il tempo del blocco riducendo la complessità dell’hash. Con entrambi i metodi, la capacità di scalare raggiunge un tetto prima di poter raggiungere le transazioni necessarie per competere con aziende come Visa, che “gestisce una media di 150 milioni di transazioni ogni giorno” o circa 1.736 transazioni al secondo (TPS).
In confronto, la velocità delle transazioni di Bitcoin è tremendamente inferiore. Attualmente, la dimensione del blocco è fissata a 1MB (1.048.576 byte – anche se attraverso SegWit, questa dimensione può scalare fino a 4MB teorici) e la dimensione media delle transazioni è di 380,04 byte (assumendo che ogni transazione sia da un portafoglio a x altri portafogli – quindi una transazione batch conterebbe come una transazione. Parlerò più avanti delle transazioni batch e del perché l’ho etichettata in questo modo) e sembra essere in aumento.Pertanto, la quantità media di transazioni che possono entrare in uno dei blocchi di Bitcoin, attualmente, è calcolata come:
Ma questo non vuol dire che i blocchi non possono andare oltre 1MB. All’inizio del 2018, abbiamo assistito a una delle più grandi (probabilmente ancora la più grande) dimensioni dei blocchi generati, arrivando a pesare circa 2,1MB. Il soft fork di SegWit ha contribuito a migliorare le dimensioni dei blocchi senza modifiche al codice di base, ma non migliora ancora il TPS in modo scalabile.
Esaminando i quattro scenari precedenti sotto un consenso proof-of-work, abbiamo visto che il semplice aumento della dimensione del blocco o la riduzione della complessità di estrazione potrebbero portarci solo fino a un certo punto. Anche una combinazione di queste cose sarebbe limitata a causa del tempo di propagazione delle transazioni. Cercare di estrarre nuovi blocchi più velocemente di quanto i vecchi blocchi possano propagarsi porterà ad alcuni problemi di sicurezza piuttosto grandi. SegWit ha contribuito ad alleviare alcuni dei problemi TPS nel frattempo, ma una soluzione più scalabile è ancora necessaria per raggiungere TPS simile a Visa.
Sembra che spostare qualsiasi pezzo in posizione per aumentare TPS muova un altro pezzo fuori posto da qualche altra parte nel puzzle della blockchain; indipendentemente, ci sono progetti e startup che lavorano per raggiungere le risposte TPS necessarie per spingere l’adozione della blockchain in una fase scalabile.
Approcci esistenti e futuri per risolvere la scalabilità
Quando si cerca la potenziale risposta al problema della scalabilità, sorgono molte altre questioni. Per esempio, se la risposta è applicabile solo per una particolare blockchain, allora si basa sul presupposto che quella particolare blockchain sarà quella che avrà bisogno di quella scalabilità in futuro; altrimenti, lo sforzo è indebito o fuori luogo. Un’altra considerazione è capire quale può essere il trade-off. In questo momento, tutte le soluzioni disponibili hanno delle limitazioni.
Pagamenti in blocco in una transazione
Pro: Riduce la dimensione di un record di transazione mettendo più transazioni in una sola, consentendo più transazioni complessive per blocco, il che può aumentare il TPS in una certa misura.
Cons: Non può raggruppare le transazioni di più portafogli; rischia la privacy
I pagamenti in lotti sono stati una caratteristica di Bitcoin (e quindi, i fork di Bitcoin tra cui Digibyte, Dogecoin, Bitcoin Cash, ecc) attraverso il sendmany RPC. Gli scambi lo fanno già, e puoi vederlo quando provi a cercare il tuo ID di transazione su un esploratore di blockchain. Quello che si potrebbe finire per vedere è un portafoglio che invia a più portafogli diversi. In questo caso, è una transazione batch.
Il vantaggio di questo è che metterlo in una transazione significa che 1) devi pagare solo una tassa di transazione, e 2) non devi scrivere una transazione completa che è, come ho descritto in precedenza, circa 380 byte, per ogni transazione. Infatti, dei 380 byte che la transazione può essere, solo 34 byte potrebbero essere le informazioni della transazione.