Bitcoin Core

Bitcoin Core è l’implementazione di riferimento di bitcoin. Inizialmente, il software è stato pubblicato da Satoshi Nakamoto con il nome “Bitcoin”, e in seguito ridenominato in “Bitcoin Core” per distinguerlo dalla rete. Per questo motivo, è anche conosciuto come il client Satoshi. È l’implementazione di riferimento per i nodi bitcoin, che formano la rete bitcoin. A partire dal 2018, i repository di Bitcoin Core sono gestiti da un team di manutentori, con Wladimir J. van der Laan a guidare il processo di rilascio.

Caratteristiche
Bitcoin Core include un motore di verifica delle transazioni e si connette alla rete bitcoin come un nodo completo. Inoltre, un portafoglio di criptovaluta, che può essere utilizzato per trasferire fondi, è incluso per impostazione predefinita. Il portafoglio consente l’invio e la ricezione di bitcoin. Non facilita l’acquisto o la vendita di bitcoin. Consente agli utenti di generare codici QR per ricevere il pagamento.

Il software convalida l’intera blockchain, che include tutte le transazioni bitcoin di sempre. Questo registro distribuito che ha raggiunto dimensioni superiori a 155 gigabyte deve essere scaricato o sincronizzato prima che possa verificarsi la piena partecipazione del cliente. Sebbene la blockchain completa non sia necessaria tutto in una volta, poiché è possibile eseguire la modalità di eliminazione. Un demone basato su riga di comando con un’interfaccia JSON-RPC, bitcoind, è fornito in bundle con Bitcoin Core. Fornisce inoltre l’accesso a testnet, un ambiente di test globale che imita la rete principale dei bitcoin utilizzando una blockchain alternativa in cui vengono utilizzati “bitcoin di prova” privi di valore. Regtest o Regression Test Mode crea una blockchain privata che viene utilizzata come ambiente di testing locale. Infine, è incluso anche bitcoin-cli, un semplice programma che consente agli utenti di inviare comandi RPC a bitcoind.

I punti di controllo che sono stati codificati nel client vengono utilizzati solo per impedire attacchi Denial of Service contro i nodi che inizialmente sincronizzano la catena. Per questo motivo i checkpoint inclusi sono solo alcuni anni fa. Un limite di un blocco di un megabyte è stato aggiunto nel 2010 da Satoshi Nakamoto come misura anti-spam. Ciò ha limitato la capacità massima della rete a circa tre transazioni al secondo. Da allora, la capacità della rete è stata migliorata in modo incrementale sia attraverso aumenti delle dimensioni dei blocchi che migliorando il comportamento del portafoglio. Un sistema di allerta di rete è stato incluso da Satoshi Nakamoto come un modo per informare gli utenti di importanti notizie riguardanti bitcoin. A novembre 2016 è andato in pensione. Era diventato obsoleto in quanto le notizie su bitcoin sono ora ampiamente diffuse.

Un potente linguaggio di scripting viene utilizzato per definire le transazioni. Questo linguaggio Forth fa parte di una delle tre distinte interfacce di programmazione delle applicazioni. Può abilitare vari parametri di transazione. Lo script utilizza la notazione polacca inversa per la convalida. ScriptPubKey viene utilizzato per “bloccare” le transazioni in base a una serie di condizioni future. scriptSig viene utilizzato per soddisfare queste condizioni o “sbloccare” una transazione. Le operazioni sui dati vengono eseguite da vari OP_Codes. Vengono utilizzati due stack: main e alt. Il ciclo è vietato.

Sviluppo
Il creatore originale del client bitcoin ha descritto il proprio approccio alla paternità del software come se fosse scritto per dimostrare a se stessi che il concetto di denaro elettronico puramente peer-to-peer era valido e che un documento con soluzioni poteva essere scritto. Mentre la maggior parte dei peer della rete può utilizzare Bitcoin Core, l’influenza degli sviluppatori sul bitcoin è limitata dalla scelta di quali persone di implementazione decidono volontariamente di utilizzare. Lo sviluppatore principale è Wladimir J. van der Laan, che ha assunto il ruolo l’8 aprile 2014. Gavin Andresen era l’ex responsabile del mantenimento del software client. Andresen ha lasciato il ruolo di lead developer per bitcoin per lavorare sullo sviluppo strategico della sua tecnologia. Se n’è andato perché non voleva essere coinvolto con decisioni elementari.

Il codice è stato originariamente memorizzato su Sourceforge prima di essere disponibile su GitHub. Poiché non esiste una struttura formale, lo sviluppo è basato su Proposte di miglioramento di Bitcoin o BIP, che sono simili alla richiesta di commenti. Le mailing list pubbliche sono usate per controllare le espressioni iniziali di idee. Se viene visualizzato un supporto sufficiente, viene scritto un documento BIP. Questo è lo standard per condividere idee e ottenere feedback dalla comunità sul miglioramento del bitcoin ed è stato avviato da Amir Taaki nel 2011.

Cronologia delle versioni
Bitcoin 0.1 è stato rilasciato il 9 gennaio 2009 da Satoshi Nakamoto con il solo supporto di Windows. Questo è stato seguito da alcune versioni minori di correzione degli errori. Il 16 dicembre 2009 è stato rilasciato Bitcoin 0.2. Comprendeva una versione Linux per la prima volta e utilizzava processori multi-core per l’estrazione. Nella versione 0.3.2 Nakamoto includeva i punti di controllo come salvaguardia. Dopo il rilascio della versione 0.3.9, Satoshi Nakamoto lasciò il progetto e poco dopo smise di comunicare sui forum online. A questo punto lo sviluppo del software è stato intrapreso da un ampio gruppo di sviluppatori indipendenti che è indicato come una comunità, molti dei quali avevano varie idee su come migliorare il bitcoin.

Tra il 2011 e il 2013 sono state rilasciate nuove versioni del software su Bitcoin.org. Gli sviluppatori volevano differenziarsi come creatori di software piuttosto che sostenitori di bitcoin e quindi ora mantengono bitcoincore.org solo per il software.

La versione 0.5.0 di Bitcoin-Qt è stata rilasciata il 1 ° novembre 2011. Ha introdotto un front-end che utilizza il toolkit dell’interfaccia utente Qt. Il software precedentemente utilizzato Berkeley DB per la gestione del database. Gli sviluppatori sono passati a LevelDB nella versione 0.8 per ridurre i tempi di sincronizzazione della blockchain. L’aggiornamento di questa versione ha provocato un fork blockchain minore l’11 marzo 2013. La forcella è stata risolta poco dopo. I nodi di semina tramite IRC sono stati interrotti nella versione 0.8.2. In questa versione le spese per le transazioni, note anche come tasse di inoltro, erano ridotte da 50.000 satoshi a 10.000 satoshi. Dalla versione 0.9.0 il software è stato rinominato in Bitcoin Core. Le commissioni di transazione sono state ridotte di nuovo di un fattore dieci come mezzo per incoraggiare le microtransazioni. Sebbene Bitcoin Core non utilizzi OpenSSL per il funzionamento della rete, il software ha utilizzato OpenSSL per le chiamate di procedura remota. La versione 0.9.1 è stata rilasciata per rimuovere la vulnerabilità della rete dal bug di Heartbleed.

La versione 0.10 è stata resa pubblica il 16 febbraio 2015. Ha introdotto una libreria di consenso che ha dato ai programmatori un facile accesso alle regole che governano il consenso sulla rete. Nella versione 0.11.2 gli sviluppatori hanno aggiunto una nuova funzionalità che consentiva di rendere le transazioni non spendibili fino a un momento specifico nel futuro. Bitcoin Core 0.12.1 è stato rilasciato il 15 aprile 2016 e ha consentito la pubblicazione simultanea di più fork flessibili. Circa 100 collaboratori hanno lavorato su Bitcoin Core 0.13.0 che è stato rilasciato il 23 agosto 2016. Ha introdotto più di dieci cambiamenti significativi.

Nell’ottobre 2016, la versione 0.13.1 di Bitcoin Core presentava la forcella morbida “Segwit” che includeva un miglioramento del dimensionamento al fine di ottimizzare il bitcoin blockize. La patch che è stata inizialmente finalizzata ad aprile e 35 sviluppatori sono stati ingaggiati per implementarlo. Questa versione includeva Segregated Witness (SegWit) che mirava a esercitare una pressione al ribasso sulle commissioni di transazione e ad aumentare la capacità massima di transazione della rete. Le stime posizionano la dimensione totale del blocco utilizzando SegWit a circa 1,7 MB. La versione 0.13.1 ha subito numerosi test e ricerche che hanno determinato alcuni ritardi nella sua data di rilascio. SegWit previene varie forme di malleabilità delle transazioni. SegWit è stato attivato dai minatori il 24 agosto 2017, al blocco 481,824.

Lanciata a febbraio 2018, la versione 0.16.0 supporta il test segregato come formato dell’indirizzo nativo, chiamato anche bech32, originariamente sviluppato da Peter Wuille e Greg Maxwell.

LEAVE A REPLY

Please enter your comment!
Please enter your name here