Bitcoin guadagna utenti senza sosta, ma fino a che punto può reggere la sua infrastruttura? Può supportare milioni di utenti? Quanto dista il file Scalabilità di Bitcoin?

Paradossalmente, l'arrivo improvviso di milioni di utenti incantati dai suoi vantaggi per Bitcoin non gioverebbe loro, anzi, potrebbe danneggiarli notevolmente, poiché l'esperienza di tutti gli utenti ne sarebbe seriamente compromessa.

E non è qualcosa di sconosciuto. Uno di domande frequenti su Bitcoin è: può funzionare se milioni di persone decidono di farne il loro principale mezzo di pagamento?

Purtroppo, con l'attuale versione di Bitcoin, la risposta è no.

Tuttavia, questo problema ha i suoi giorni contati, poiché è stata l'ossessione di molti programmatori che hanno creato molteplici incredibili proposte di scalabilità. Ora resta solo da decidere, attraverso il consenso del nodi, quale e quando verrà implementato.

Nel prossimo capitolo ti aiuteremo a capire, ancora di più, il coraggio di Bitcoin e perché non è attualmente scalabile, mentre ti accompagneremo a conoscere alcune delle proposte di scalabilità più notevoli.

Bitcoin e scalabilità: Bitcoin attualmente non è scalabile

Sottolineiamo innanzitutto che per scalabilità non intendiamo che Bitcoin non possa essere compreso dalla maggioranza della popolazione a causa del cambio di paradigma come denaro. Né perché, a causa del prezzo che può raggiungere, è inaccessibile ad alcune persone. Né che non ci possano essere abbastanza bitcoin per tutti.

Tutto questo, oltre ad essere falso, non è ciò a cui ci riferiamo quando parliamo di scalabilità.

Ad oggi, novembre 2016, Bitcoin non è perfetto:

  • I pagamenti non sono istantanei (sebbene vengano riflessi istantaneamente, non vengono confermati istantaneamente).
  • I micropagamenti stanno diventando totalmente impraticabili. Una delle grandi caratteristiche di Bitcoin.
  • Esiste il rischio costante di un'elevata centralizzazione del mining.
  • Bitcoin non è scalabile.

Come possiamo vedere, c'è molto da migliorare (o come alcuni la vedono: opportunità per creare grandi cose) ma, di tutti i problemi da risolvere in Bitcoin, l'ultimo che abbiamo menzionato è uno dei compiti principali da raggiungere: quel Bitcoin essere scalabile. Risolvere questo problema migliorerà gli altri problemi menzionati a cascata.

Bitcoin aspira ad essere un sistema finanziario globale e i dati mostrano che le persone sono a favore di esso, quindi deve essere preparato per il suo utilizzo da milioni di utenti simultanei, e tutto questo, senza perdere nessuna delle sue caratteristiche principali che lo rendono davvero unico e prezioso.

Ed è che Bitcoin è ancora un esperimento. Un esperimento incredibile e popolare, sì, ma ancora in una fase iniziale. Infatti, nonostante abbia rivoluzionato l'intero settore finanziario dai suoi pilastri più arcaici (e anche altri settori), la versione 1.0 del software non è nemmeno uscita, siamo ancora in versione 0.20.1 (rilasciato nell'agosto 2020).

Ciò significa che siamo ancora in un momento di costante sviluppo per essere in grado di creare il software con una potenza sufficiente per essere utilizzato in modo massiccio e ottimale.

In effetti, il suo problema di scalabilità è un dibattito vecchio quasi quanto lo stesso Bitcoin e il motivo principale è molto localizzato: il blocco.

Il blocco

Come abbiamo già spiegato nel capitolo dedicato a blockchain, i blocchi sono la parte essenziale della blockchain, che è il registro distribuito che è alla base di Bitcoin.

I blocchi memorizzano le informazioni essenziali riguardanti tutte le transazioni che avvengono. Il problema è che ogni blocco è limitato alla dimensione massima delle informazioni che può memorizzare.

En Come funzionano le transazioni in Bitcoin?? Abbiamo spiegato che un blocco memorizza tutte le transazioni avvenute dall'ultimo blocco. Ciascuna di queste transazioni è composta da una serie di informazioni, che occupa una quantità variabile di spazio su disco e che verrà aggiunta al blocco.

Come misura temporanea per prevenire gli attacchi alla rete (vedremo il motivo di seguito) e fino a quando non saranno trovate soluzioni migliori, Satoshi Nakamoto ha deciso di aggiungere un'ulteriore riga di codice per limitare la capacità di ogni blocco in 1 megabyte (Sebbene inizialmente non fosse stato fissato alcun limite o successivamente i minatori hanno deciso di non accettare blocchi superiori a 500kb). Una dimensione, che a suo tempo, era più che sufficiente.

Il che significa che ogni nodo della rete Bitcoin ha in esecuzione il programma Bitcoin che ha scritto nel suo codice sorgente che nessun blocco può occupare uno spazio su disco maggiore di quello indicato e, se lo supera, deve essere rifiutato.

Ed ecco la chiave, la dimensione, perché questa determina la capacità di Bitcoin. Vediamo perché.

Riempiendo il blocco

Una normale transazione in Bitcoin occupa solitamente tra 0.2kb e 1kb all'interno del blocco (sebbene ce ne siano alcune che ne occupano di più, la cosa normale è questa).

Con questi dati prenderemo 0.5 kb (che è una dimensione abbastanza comune) come dimensione media per transazione. Se consideriamo anche che la dimensione massima del blocco che si crea ogni 10 minuti è di 1024kb (1mb), possiamo risolvere l'ignoto con una semplice operazione matematica:

1024 / 0.5 = 2048 transazioni rientrano in un blocco.

7 transazioni al secondo in media, giusto?

Mentre alcuni sistemi di pagamento, con infrastrutture più tradizionali e centralizzate come VISA, possono supportare fino a 56000 transazioni al secondo (sebbene in media ne elabori 2000), si dice che Bitcoin abbia un limite di 7 tps (transazioni al secondo).

7 transazioni al secondo ??? Forse ora ti starai chiedendo come, con una così bassa potenza di operazioni "concorrenti", ci sia chi vede in Bitcoin una seria alternativa al sistema finanziario globale.

Andiamo a poco a poco;).

7 transazioni al secondo ... cioè, se 7 persone al secondo propagassero una transazione alla rete potrebbero farla crollare (cosa che è stata tentata in più occasioni per abbattere la reputazione di Bitcoin e la sua espansione).

Tuttavia, la realtà è più crudele per Bitcoin, e guardando i dati, dobbiamo dire che 7 tps è un limite eccessivamente ottimistico. Facciamo un po 'di matematica.

Ricorda che Bitcoin ha configurato che i minatori possono minare un blocco ogni 10 minuti.

Quindi, prendiamo di nuovo la dimensione media della transazione, 0.5kb, e non dimentichiamoci che la dimensione massima del blocco che viene creato ogni 10 minuti è 1024kb (1mb):

1024 / 0.5 = 2048 transazioni rientrano in un blocco. 10 * 60 = 600 secondi ha 10 minuti. 2048/600 = 3.41 tps.

Quindi la risposta è no, attualmente non supporta in media 7 tps.

Bitcoin supporta in media circa 3.5 tps. Questo sarebbe un calcolo più vicino alla realtà rispetto al 7 che è stato comunemente diffuso come mantra.

In effetti, è un calcolo abbastanza semplice da eseguire con dati reali, vediamo.

Transazioni giornaliere in Bitcoin

dimensione del blocco bitcoin

Questi sono i grafici attuali (ottobre 2016). In essi possiamo vedere come ci siano circa 2000 transazioni ogni 10 minuti (per blocco, primo grafico), il che fa sì che la dimensione del blocco si avvicini a 1MB (secondo grafico). Usciamo dalla calcolatrice:

17 ottobre 2016 - 02:00 1898 transazioni nel blocco e 0.93mb. 1898 / 0.93 MB = 2040 tps per 1mb

Con il quale il calcolo teorico inizialmente indicato è abbastanza vicino alla realtà.

D'altra parte, se guardiamo le transazioni giornaliere, possiamo fare un altro rapido calcolo per ottenere le transazioni al secondo che la rete Bitcoin sta attualmente attraversando.

Transazioni giornaliere in Bitcoin

Guardando il grafico sopra abbiamo:

60 x 60 x 24 = 86400 secondi in un giorno. 274486 Transazioni Bitcoin in un giorno 274486 ÷ 86400 XNUMX = 3.176 tps (1905 transazioni / blocco)

Quindi il risultato è anche molto simile al calcolo iniziale.

Se ricordiamo lo scenario in cui si dice che Bitcoin supporti 7 tps avremmo che in un giorno potrebbe supportare circa 604800, mentre la realtà mostra che si tratta di circa 275000 transazioni giornaliere.

Tuttavia, evidenziamo che 3.5 transazioni al secondo in media, in un sistema di moneta elettronica programmabile completamente decentralizzato, è qualcosa di incredibile, e riunisce già decine di milioni di utenti. Ma è vero, non basta portarlo su scala globale. Andiamo avanti.

Il grande dibattito: le dimensioni del blocco

Ciò che rende questi calcoli un dibattito intenso, come pochi hanno visto nella comunità Bitcoin, è che le conseguenze di questo non sono attese da anni, ma sta già ponendo un problema.

Inoltre, ha creato una tale divisione di opinioni nel nucleo dei principali sviluppatori di Bitcoin che alcuni hanno deciso di proporre nuove versioni di Bitcoin alternative a quella "ufficiale", come nel caso di Bitcoin Classic, Bitcoin Unlimited, XT e Bitcoin Core.

Guarda i dati che abbiamo messo sopra. Un blocco non può avere una dimensione superiore a 1 MB e quasi tutti i blocchi che vengono estratti ora vengono eseguiti con una capacità quasi del 100%.

Ed è che questa dimensione del blocco sta già rallentando la rete Bitcoin. In determinati periodi di alta attività, ci sono migliaia di transazioni che vengono tralasciate dal loro blocco naturale successivo perché non ci sono più transazioni, dovendo aspettare altri blocchi per poter essere inserite (confermate). Ciò significa che una transazione può richiedere ore o giorni per essere confermata.

Ma se questo limite fosse una semplice correzione che Satoshi Nakamoto ha inserito in una riga di codice del software, perché non cambiare quella riga e dove si dice che 1mb è messo 10mb o qualsiasi altra quantità? In fin dei conti è un arrangiamento che richiederebbe pochi secondi che permetterebbe di sopportare molto di più.

Non è così semplice. Diamo un'occhiata alle parti chiave con cui interagisce il software Bitcoin per aiutarci a capire meglio il background di quella decisione.

immagazzinamento

Di seguito possiamo vedere la velocità che sta prendendo lo spazio su disco occupato da Blockchain e come, in un solo anno, sia raddoppiato a causa della fama di cui gode Bitcoin. Alla data di questo articolo, è vicino a 90 GB.

dimensione di archiviazione blockchain

Con una media di transazioni al secondo più alta significherebbe che ogni blocco occuperebbe di più. Se proviamo a portarlo a scenari un po 'più vicini ad altri mezzi di pagamento, ad esempio i 2000 tps in media che VISA elabora attualmente, ogni blocco potrebbe occupare fino a 600 MB.

Immagina 600 MB ogni 10 minuti ... chi è il "bello" che immagazzina così tanto? Vi è quindi il rischio di centralizzazione se miglioramenti come quelli che stanno già cominciando a prendere forma, come la funzionalità di "potatura", Che è apparso nella versione 0.11.0 di Bitcoin e consente a un nodo di memorizzare solo gli ultimi X MB della blockchain.

Riconosciamo che, attualmente, ogni nodo di regola ha una copia completa della blockchain, e lo sono più di 5000 nodi quelli esistenti. È vero che alcuni di questi nodi eseguono solo attività di revisione, non mining, ma devono anche avere una copia completa della blockchain.

CPU

Per questa parte i problemi non sono gravi. I computer di oggi sono in grado di elaborare molte più transazioni rispetto a quelli che passano oggi attraverso Bitcoin.

Ricordiamoci che ogni nodo, in ogni transazione che avviene sulla rete, deve prima scaricarlo e poi verificarlo. Non stiamo parlando di nodi che sono anche minatori, stiamo parlando di tutti i nodi.

Queste operazioni, che sono algoritmi di crittografia (ECSDA, RIPEMD-160, SHA256), possono essere svolte senza problemi alla velocità di 10 ms per ogni megabyte di dati, e il tutto con un home computer di fascia media.

Quindi non sarebbe un grande costo elaborare 10 MB, e forse nemmeno 600 MB in 10 minuti.

Anche così, come in tutti i pezzi che compongono Bitcoin, la sua ottimizzazione è costantemente ricercata e non è passato molto tempo (alla fine del 2015) quando l'algoritmo di verifica crittografica libsecp256k1 è stato nuovamente migliorato, portando a un aumento della sua velocità operativa tra il 500% e il 600%.

Rosso

Qui diventa un po 'complicato. Nell'esempio di 2000 transazioni al secondo:

2000tps * 512 byte = 1024000 byte al secondo O qual è lo stesso ... 1024000 b / 1000 = 1024 kilobyte al secondo 1024 kb / 1024 = 1 megabyte al secondo 1 MB * 8 = 8 megabit / secondo approssimativo.

* Ricorda che dobbiamo ottenere il risultato in megabit, ovvero il modo in cui viene misurata la velocità su Internet.

Questa velocità di connessione è possibile in alcune parti del pianeta. Ma non tutti possono godere oggi di velocità di questo tipo, che è una preoccupazione dal punto di vista dell'accentramento dei nodi e delle barriere che possono favorire il controllo della rete in poche mani.

Energia / Costo

Bitcoin ha la rete informatica più potente del pianeta. È maggiore di quello del SETI, della NSA o di Google stesso.

Questo calcolo viene generato tramite hardware (noto come i minatori) attraverso un processo che è tecnicamente chiamato "Prova di lavoro", E sono incaricati di far funzionare la blockchain.

Tuttavia, far funzionare questa rete ha un costo energetico enorme, e c'è chi prevede che, se continuerà, entro il 2020 Bitcoin consumerà più energia dell'intero paese della Danimarca e che generare un singolo bitcoin potrebbe generare più di 4000 chili di carbonio diretto nell'atmosfera.

È un po 'rischioso fare questo tipo di previsioni in attesa che si avverino, poiché la tecnologia si evolve a un ritmo folle, ma ciò che è verificabile è che Bitcoin attualmente genera un notevole impatto elettrico. Anche se molto lontano dal costo e dall'impatto del denaro tradizionale.

Scalare Bitcoin

Ora immagina di voler portare Bitcoin così com'è oggi a un altro livello. Immagina uno scenario in cui 7 miliardi di persone (la terra ha già una popolazione leggermente più grande), effettuano due transazioni Bitcoin al giorno.

7000000000 * 2 = 14000000000 transazioni al giorno 14000000000 / (60 * 60 * 24) = 162037 transazioni al secondo 162037 * 0.5 kb = (81018 kb / s * (60 * 10 minuti)) / 1024/1024 = 46 GB per blocco ca. (46 GB * 6 * 24) / 1024 = 6.5 TB circa al giorno. (6.5 TB * 365) / 1024 = 2.32 petabyte circa all'anno.

Immagina una blockchain come questa. Che follia. Inoltre, Bitcoin morirebbe!:

  • I nodi scompaiono a causa dell'impossibilità di tenere il passo con l'archiviazione.
  • Centralizzazione del mining.
  • Incapacità di convalidare le transazioni di rete.

Conclusione, Bitcoin non è più Bitcoin.

La soluzione è aumentare il blocco?

Quello che sembra ovvio è che no, almeno non in questo modo.

Sebbene l'opinione sia divisa, e c'è chi punta a prendere una misura urgente (come aumentare la dimensione a 2 MB come misura di emergenza, vedere BIP102, Jeff Garzik) per dare un arco di tempo entro il quale attuare soluzioni più intelligenti, i calcoli precedenti suggeriscono che le cose devono essere fatte in modo diverso.

Aumentare il blocco sembra essere "pane per oggi, fame per domani", o come si dice comunemente: trascina il problema.

Se ci manca lo spazio a casa, perché non ordiniamo quello che abbiamo dentro prima di fare una casa più grande? Questo è ciò che alcuni sviluppatori difendono, ed è ciò su cui molti sviluppatori si sono concentrati, vedendo come, con quello che c'è, puoi prima ottimizzare te stesso al massimo.

Ridurre i tempi di mining?

Questa è un'altra posizione adottata da noti sviluppatori di software Bitcoin come Sergio Lerner, hanno proposto. Consiste nel ridurre la frequenza con cui vengono aggiunti nuovi blocchi alla catena. Se invece di 10 minuti si riduce a 5 minuti, può essere raddoppiato.

La matematica lo rende chiaro a prima vista: sarebbe come avere 2mb. Tuttavia, i detrattori di questa proposta affermano che i 10 minuti sono la chiave per mantenere una rete di consenso decentralizzata con la potenza richiesta da un sistema globale come quello che Bitcoin aspira ad essere.

Allo stesso tempo, in uno scenario in cui arrivano milioni di nuovi utenti, continueremmo con qualcosa di insostenibile per gli stessi motivi sopra indicati, ed è questione di tempo prima di ritrovarci nello stesso problema che già soffre la rete.

Bitcoin, riposa in pace?

Quindi con tutti questi aspetti che limitano Bitcoin, qual è la soluzione? Bitcoin ha i giorni numerati?

Sfortunatamente per le banche centrali e alcuni oscuri criminali, la risposta è sicuramente no.

Tuttavia, non solo una soluzione qualsiasi è valida e devi tenere conto di questioni importanti e che altri sistemi centralizzati come VISA non dovrebbero essere protetti, ad esempio, dagli attacchi DDoS (denial of service).

Ricordiamo che Bitcoin è aperto, chiunque può impostare un nodo e chiunque può propagare transazioni, che Eduardo Inda accusa di Podemos, bombardando la rete di transazioni senza alcun vero obiettivo se non infastidirlo e rallentarlo)

5 Proposte di ottimizzazione

A causa della sua natura open source, Bitcoin ha un'entusiasmante comunità di sviluppatori che cresce ogni mese. Questa è un'altra delle gambe magiche che ha Bitcoin, alcuni dei migliori cervelli del pianeta che lavorano in modo totalmente altruistico per il bene comune. Non ci sono soldi per pagarlo.

Ciò consente a migliaia di menti di pensare in modo collaborativo e in parallelo su soluzioni da diversi punti di vista allo stesso problema. E anche se le decisioni vengono prese lentamente, le implementazioni non si fermano.

Tra le decine di proposte che attaccano da diversi bordi del problema, di seguito abbiamo selezionato 5 categorie che intendono collaborare per far passare il motore Bitcoin da Renault a due cavalli a Ferrari.

1. Lightning Network

Lightning Network è probabilmente una delle proposte più interessanti. Ne propone un singolo soluzione per 3 problemi che Bitcoin ha attualmente: scalabilità, transazioni istantanee e micropagamenti.

Per questo utilizza ciò che è noto come canali di pagamento diventato smart contract che, in teoria, potrebbe consentire a Bitcoin di scalare a livelli di milioni di transazioni istantanee reali a basso costo.

Consigliamo il seguente articolo modificato in Lightning Network.

2. Blocchi dinamici

Questa proposta cerca di sostituire la dimensione massima del blocco, attualmente fissata, con a dimensione massima del blocco controllata dinamicamente che può aumentare o diminuire con il cambiamento della difficoltà di mining attraverso vari fattori di rete.

In questo modo, se la rete necessita di una dimensione extra in un dato momento, il blocco aumenterebbe, se avesse un eccesso diminuirebbe.

In questo articolo lo trattiamo in modo più dettagliato: blocchi dinamici.

3. Tabella di ricerca fioritura invertibile (IBLT) e blocchi deboli

Questi miglioramenti hanno lo scopo di ottimizzare il tempo necessario ai blocchi per propagarsi ai minatori.

Data la preoccupazione dei minatori su come la scalabilità possa influire sul loro reddito e persino sulla loro scomparsa, queste proposte promettono risparmiare fino al 90% in larghezza di banda ottimizzando il modo in cui le informazioni vengono propagate tra i nodi.

Queste funzionalità sono state menzionate nel Roadmap per lo sviluppo di Bitcoin 2016 (sebbene non con una data specifica) e dovrebbero essere implementati in qualsiasi momento.

Puoi vedere qui una presentazione 2015 su queste proposte.

Tuttavia, è interessante vedere come Kalle rosenbaum (che faceva parte della presentazione) ha seri dubbi in merito la proposta del blocco debole e dei suoi vantaggi e cerca di distinguersi da esso dopo l'apparizione pubblica che ha fatto alla presentazione del 2015 a Hong Kong.

"Ho sempre dubitato della proposta dei blocchi deboli, anche se ho fatto una presentazione congiunta con Rusty Russell su questa proposta (beh, ha fatto la parte dei blocchi deboli, ho parlato di IBLT, ma ho condiviso il palco con qualcuno che parlava di blocchi debole)"

Kalle Rosenbaum - Vedi il post completo, pubblicato mesi dopo la presentazione

4. Catene laterali (catene laterali)

Le Sidechain È un altro dei concetti più diffusi e che è legato, in qualche modo, alla scalabilità di Bitcoin.

Con l' sidechains potrebbe essere creato blockchains alternative per casi d'uso specifici, con regole specifiche ma completamente connesse alla blockchain di Bitcoin, a cui tu permetterebbe di ridurre il carico.

Tecnicamente non è un miglioramento della scalabilità, poiché non aiuta Blockchain a supportare eventuali kb extra, ma in pratica offrono la possibilità di elaborare più transazioni, poiché le catene laterali possono essere utilizzate per casi specifici riducendo il carico di quella principale.

Consigliamo il capitolo dedicato a spiegarlo più da vicino: sidechains.

5. Testimoni segregati (Testimone segregato)

Questa è la scommessa più famosa sulla falsariga di "riordinare la casa piuttosto che abbattere i muri per ingrandirla".

Cercano transazioni più piccole e non blocchi più grandi. Come fai a fare questo? Ridurre, tramite crittografia, le informazioni che vengono aggiunte ad ogni transazione.

Questo sistema, che pretende di poter raddoppiare (e anche in alcuni casi quadruplicare) il numero di transazioni che entrerebbero in un singolo blocco senza modificarne le dimensioni, è già stato implementato nella testnet di Bitcoin.

È stato finalmente aggiunto all'ultima versione del software ei risultati della misura inizieranno a essere visti nei prossimi mesi.

Consigliamo l'articolo Bit2Me di cui parla Bitcoin Classic, Unlimited o il tardo XT, per conoscere tre proposte alternative a Bitcoin Core (il codice sorgente di Bitcoin e il programma di riferimento di altri sviluppatori) con implementazioni di alcune proposte sulla scalabilità che, in più, ha un'infografica su Segregated Witness.

L'unione fa la forza

Nonostante ci siano molte proposte per migliorare la scalabilità di Bitcoin (infatti c'è un evento che si sta verificando in diverse parti del pianeta dove propongono decine di idee e chiunque lo desideri può venire a proporre le loro), con questo articolo hai potuto capire qual è il problema della scalabilità e quanto sia questione di tempo prima che Bitcoin non solo lo risolva ma possibilmente raggiunga dei livelli mai visto prima su altri sistemi.

Naturalmente, tutte queste proposte potrebbero essere implementate e la combinazione di tutte o alcune di esse può portare Bitcoin a livelli di transazioni al secondo più elevati rispetto a qualsiasi altro sistema di pagamento noto, e tutto questo mantenendo le operazioni distribuite.

Alcune delle proposte sono già in fase di attuazione, altre richiederanno il consenso necessario per andare avanti, ma senza dubbio il futuro che questa tecnologia riserva non è solo entusiasmante ma, per la prima volta, chiunque può partecipare alla progettazione del sistema finanziario globale con maggiori ripercussioni della storia.

Ci auguriamo che il capitolo ti abbia aiutato a capire cosa sta succedendo con questo argomento e ad avere strumenti sufficienti per continuare a esplorare ogni aspetto che ti consente di formarti la tua opinione.

Se desideri saperne di più, ti consigliamo vivamente il sito web di Scalare Bitcoin (il sito web dell'evento di cui abbiamo parlato prima), che contiene una vasta raccolta di informazioni sulle proposte di scalabilità. Smaltire video degli sviluppatori della proposta, spiegandola in dettaglio (con diapositive e trascrizioni), Plus articoli accademici y eventi futuri tra le altre cose. Senza dubbio l'epicentro dove essere consapevoli della scalabilità di Bitcoin.