martedì 1 settembre 2015

E' tutto un problema di dimensioni: aspetti tecnici 1

Se seguite il mondo Bitcoin e non siete stati su Marte in ferie, sapete che l'argomento del giorno è il "Block Size". Voglio dire la mia sull'argomento in una serie di post cercando di mantenere un profilo il più obiettivo e semplice possibile. L'argomento è abbastanza complesso e merita di essere analizzato dai vari punti di vista per la sua importanza che non esiterei a definire cruciale per l'evoluzione futura di questa tecnologia e le sue chances di successo.

Iniziamo dai concetti: cos'è la dimensione di un blocco?

Le transazioni Bitcoin confermate vengono raggruppate in blocchi e ogni blocco accodato alla Blockchain. Fin qui niente di nuovo. In origine Satoshi decise che ogni blocco doveva avere dimensioni massime di 36 Megabyte ma poi nel 2010, per motivi che andiamo a vedere , decise di abbassarlo ad 1 Megabyte.

Fino ad adesso questo parametro non è stato un problema ma con l'aumento del numero di transazioni e con l'evoluzione dell'ecosistema Bitcoin, questo valore, per una parte della community, è troppo piccolo e va aumentato.

La questione implica alcune conseguenze perchè incrementare tale valore comporta una serie di pro e contro esattamente come mantenerlo invariato o come diminuirlo (c'è anche chi prospetta questo).



AUMENTARE IL BLOCK SIZE: QUALI VANTAGGI

Sapete che i minatori in media trovano un blocco ogni 10 minuti e sapete, visto che l'abbiamo detto sopra, che la dimensione di un blocco è al massimo di 1Mb. Data la dimensione media di ogni transazione (circa 250 bytes), facendo un pò di banale aritmetica, si scopre che la rete Bitcoin è in grado di gestire al massimo circa 6-7 transazioni al secondo.

Vi sembrano tante? Bene, sappiate che Visa in media processa 4000 transazioni al secondo ed ha una capacità massima di gestire 56000 transazioni al secondo. 

Sento già le obiezioni: Visa è un sistema centralizzato che necessita di un "man in the middle" , qui abbiamo un database decentralizzato e distribuito: stai confrontando mele con pere. 

Vero. Ma se la rete Bitcoin mira a divenire un payment network di livello mondiale e aspira al mass-market, 7 transazioni al secondo sono un valore ridicolo.


Il vantaggio tecnico di un aumento del block size sta tutto qui: incrementare il numero di transazioni al secondo e la velocità nel confermarle.

Se il volume delle transazioni continuasse a crescere al ritmo attuale, secondo alcune proiezioni, già fra poco più di un anno si potrebbe arrivare alla saturazione della rete . Cosa significa questo? Semplice: che il volume delle transazioni diventerebbe superiore alla capacità dei miners di confermarle e inserirle nella blockchain, per cui alcune transazioni resterebbero indefinitamente non processate e l'intera rete potrebbe collassare perchè la "pila" delle transazioni non confermate non farebbe che aumentare. Il paragone più banale è un secchio che riceve più acqua di quanta ne esce: è solo questione di tempo prima che se ne versi un pò e, in assenza di interventi, se ne versi sempre di più.

Anche senza immaginare scenari tanto catastrofici, si pone un problema di sicurezza perchè meno tempo una transazione non confermata (e quindi potenzialmente fraudolenta) resta "viva" e meglio è.