Etra tutte le implementazioni di Bitcoin, senza dubbio ce n'è una che è la madre di tutti loro, essendo la più conosciuta. Riguarda Bitcoin Core, uno sviluppo open source con licenza MIT che porta il peso dello sviluppo del protocollo Bitcoin. È responsabile dell'intero protocollo Bitcoin e dell'implementazione del full client benchmark per Bitcoin. In questo modo, Bitcoin Core ha tutto il necessario per verificare i pagamenti in modo autonomo. E, ultimo ma non meno importante, è l'implementazione che ha dato inizio a very Satoshi Nakamoto, il creatore di Bitcoin.
Ad oggi, Bitcoin Core è l'unico che implementa il protocollo Bitcoin nella sua interezza. Quindi è un riferimento su cui fanno affidamento gli altri clienti sviluppati. È costituito da un programma che crea nodi complete, che scaricano l'intera blockchain in modo che possano convalidarla completamente. Oltre che da un wallet che gestisce e gestisce i bitcoin e verifica tutte le operazioni effettuate.
Come funziona?
Il software Bitcoin Core può essere scaricato come qualsiasi altro programma sul nostro computer, in effetti basta visitare questo web per farlo. Ma prima di ciò, è necessario tenere conto di diversi aspetti. Primo, Bitcoin Core implementa tutti gli aspetti della rete Bitcoin, quindi scaricarlo ti renderà un nodo completo della rete. Ciò include una copia esatta e completa di tutte le operazioni che sono state effettuate con Bitcoin dal suo lancio nel 2009. E, naturalmente, sarà costantemente aggiornato. Quindi la richiesta di spazio di archiviazione disponibile sul disco rigido sarà di almeno 400 GB.Secondo Bitcoin Core implementa un wallet, attraverso il quale tutte le transazioni effettuate con la copia del file blockchain. Quindi scaricarlo e sincronizzarlo su un computer richiederà alcuni giorni prima di poterlo utilizzare. Pertanto, sebbene offra livelli elevati di sicurezza e privacy, è consigliato solo per utenti esperti.
Un'altra caratteristica importante di Bitcoin Core è che utilizza un programma interno (demone) chiamato bitcoin. Un demone (demone in spagnolo) è un programma che viene eseguito in background per essere utilizzato tramite le righe di comando e chiamate di procedura remota (RPC). Il nome "demone" è strettamente correlato ai sistemi UNIX e derivati simili GNU / Linux. Bitcoin Core è anche in grado di creare un file testnet, una testnet in cui gli sviluppatori controllano le modifiche che desiderano apportare. Pertanto, possono analizzare in dettaglio come funzionano i cambiamenti o miglioramenti che desiderano per la rete prima di incorporarli in essa.
Inoltre, Bitcoin Core contiene anche un programma chiamato bitcoincli. Questa è un'interfaccia a riga di comando, attraverso la quale gli utenti possono inviare comandi RPC a bitcoin ed eseguire qualsiasi operazione supportata da Bitcoin.
Sviluppo e miglioramenti di Bitcoin Core
Lo sviluppo di Bitcoin Core è iniziato con la versione 0.1.0. Questa è considerata la prima implementazione del software Bitcoin creato da Satoshi Nakamoto. Era disponibile solo per Windows. Nella versione 0.2.0, è stato introdotto per la prima volta il supporto per i sistemi Linux e successivamente per MacOS.
Nakamoto ha partecipato allo sviluppo e al miglioramento di Bitcoin Core fino alla versione 0.3.19 nel 2010, poi ha lasciato il progetto, lasciandolo nelle mani di Gavin andresen. È stato Andresen che in seguito, nel 2014, ha affidato il progetto a Wladimir J. van der Laan e altri importanti sviluppatori.
Nella versione 0.3.20 il testnet testnet. E dalla versione 0.5.0 del 2011 ha iniziato a chiamarsi Bitcoin QT. Questo fa riferimento a un'implementazione basata sulla libreria GUI Qt4 con licenza MIT. È stato sviluppato dallo sviluppatore Wladimir van der Laan e fornisce un'interfaccia amichevole al codice Bitcoin. Il tutto con lo scopo di rendere il suo utilizzo più facile, amichevole ed intuitivo per utenti non pratici di programmazione.
Successivamente, nella versione 0.9.0, il software recupera il nome di Bitcoin Core e in esso le commissioni di transazione sono state ridotte come misura per incoraggiare le microtransazioni.
Lasciando indietro OpenSSL e migliorando le capacità
Nei suoi primi giorni, Bitcoin Core utilizzava OpenSSL per molte operazioni crittografiche. Tuttavia, questo ha iniziato a cambiare nel 2015 a causa di bug scoperti in OpenSSL. Tra le falle di sicurezza ce n'era una che consentiva a un utente malintenzionato di leggere la memoria di un server e ottenere chiavi private. Un altro errore rilevato è che OpenSSL utilizza un carattere "debole" per i numeri casuali e gli sviluppatori di Bitcoin Core hanno deciso di creare il proprio carattere. Per questi motivi, OpenSSL è stato rimosso dal codice sorgente di Bitcoin Core.
Nella versione 0.11.2 gli sviluppatori hanno incorporato una funzionalità alla rete, in cui potrebbero essere stabilite determinate condizioni future per evitare la spesa di alcune transazioni. Quindi con la versione 0.12.1 è stata abilitata la funzionalità di autorizzazione multipla forchette morbide contemporaneamente.
Quasi 100 collaboratori hanno lavorato alla versione 0.13.0, dove hanno introdotto più di dieci modifiche significative. Per l'anno 2016 è stato attivato, tramite soft fork, il CheckSequenceVerify. In quello stesso anno, il soft fork di SegWit come migliora a malleabilità delle transazioni e allo spazio dei blocchi senza variare la loro dimensione.
Nel 2018 è stata rilasciata la versione 0.16.0, che ha consentito l'uso di un formato indirizzo nativo per SegWit, chiamato anche formato indirizzo. spiaggia32, originariamente sviluppato da Peter wuille y Greg Maxwell.
I rischi della centralizzazione
Come abbiamo detto, Bitcoin Core è il client Bitcoin per eccellenza. Non è un client qualsiasi, è il più utilizzato. Sul sito web di Bitnodes può sembrare come il client Satoshi (così viene chiamato internamente Bitcoin Core), è il client di oltre il 95% di tutti i nodi collegati alla rete.
Questo ha una parte positiva: tutti i nodi parlano un protocollo molto omogeneo. Tuttavia, questo ha anche un lato negativo e potenzialmente orribile per alcuni oppositori: la capacità di controllo che hanno gli sviluppatori di quel client.
Sebbene un client non sia altro che un programma che implementa il protocollo Bitcoin, bisogna capire che il protocollo da solo non fa nulla, richiede che il programma lo esegua. Per questo motivo, quel programma ha il controllo su quali parti del protocollo implementare e quali no, ad esempio su quali PIF per integrare.
Sebbene sia vero che si tratta di un programma open source, di cui possiamo vedere il suo codice e persino proporre modifiche, solo un piccolo gruppo di programmatori ha il controllo in modo che tali modifiche entrino nel programma. Un gruppo piccolo e chiuso, costantemente tentato dalle offerte di multinazionali e governi. Dopotutto, il software open source non guadagna direttamente e devono guadagnarsi da vivere, le aziende ei governi lo sanno e hanno la capacità di imbrogliare con ciò che è necessario, mettendo questi programmatori sul libro paga e facendo pressione su di loro come lobby per instradare le funzionalità in un modo o nell'altro. Lo stesso accade in politica con i rappresentanti.
Di fronte a questa situazione, essendo il client per eccellenza e vedendo quanto sia complicato creare un nuovo client dove sviluppatori impegnati e anonimi senza la possibilità di essere corrotti mantengano il codice, alcuni sviluppatori hanno scelto di fare un hard fork di Bitcoin.
Il problema della centralizzazione è qualcosa di reale, un problema che Bitcoin cerca di risolvere, ma senza dubbio ci sono ancora molte opportunità di miglioramento che esistono attorno a Bitcoin ea questo concetto.