Qu'est-ce que Bitcoin Core ?
Bitcoin est un protocole informatique, c'est-à-dire un ensemble de règles qui permettent à des ordinateurs de communiquer. Pour fonctionner ce protocole a besoin d'être implémenté au travers de logiciels qui s'exécutent sur les différentes machines. Le plus connu et le plus utilisé d'entre eux est Bitcoin Core.

Bitcoin Core, c'est quoi ?
Bitcoin Core est l'implémentation logicielle de référence du protocole Bitcoin (BTC). Il s'agit d'un logiciel libre disponible en source ouverte qui est géré principalement sur le dépôt GitHub bitcoin/bitcoin. N'importe qui peut copier le code source et le compiler soi-même. N'importe qui est également libre d'y ajouter des modifications, ce qui fait de Bitcoin un système complètement ouvert et décentralisé.
Bitcoin Core descend directement de la première implémentation codée par Satoshi Nakamoto et partagée publiquement le 8 janvier 2009. Initialement appelé simplement « Bitcoin », le logiciel a été renommé en « Bitcoin-Qt » en 2011, puis en « Bitcoin Core » le 19 mars 2014 afin de « réduire la confusion entre Bitcoin-le-réseau and Bitcoin-le-logiciel ».
Bitcoin Core est une implémentation de nœud complet qui permet d'accéder au réseau pair-à-pair de Bitcoin, et de recevoir, d'envoyer et de vérifier pleinement les transactions et les blocs constituants la chaîne. Il s'agit d'un logiciel programmé principalement en C++ et compatible avec les systèmes d'exploitation Linux, Windows et macOS. Celui-ci peut être utilisé sous la forme d'un logiciel à interface graphique (bitcoin-qt
), ainsi que d'un démon (bitcoind
) qui s'exécute en arrière-plan avec lequel l'utilisateur peut interagir grâce à bitcoin-cli
.
Enfin, il faut bien retenir que Bitcoin Core est l'implémentation de référence, c'est-à-dire qu'elle est utilisée pour définir de facto le protocole Bitcoin (BTC). Bien qu'il existe également d'autres implémentations comme Bitcore, Bitcoin Knots et bcoin, celles-ci sont peu utilisées de manière générale. Ainsi, à ce jour, les nœuds utilisant Bitcoin Core représentent 98,5 % des nœuds publiquement visibles du réseau.
Comment est développé Bitcoin Core ?
Bitcoin Core est un logiciel libre open source et, en tant que tel, il est développé de manière ouverte et décentralisée. Le dépôt GitHub est ouvert à tous et n’importe qui peut contribuer au développement en proposant un changement. Les contributeurs fréquents sont appelés des « core developers » ou « développeurs du noyau ».
Cependant, malgré cette ouverture, Bitcoin Core dispose d'une certaine hiérarchie. Ainsi le dépôt est géré par des mainteneurs qui sont responsables de fusionner les demandes de modification (« pull requests ») créées par les contributeurs. L'inclusion dans le code dépend ainsi de différents critères évalués par ces mainteneurs : utilité démontrable du changement, format correct suivant les lignes directrices du projet, revue par les pairs, réputation du contributeur, etc.
Les mainteneurs sont nommés par le mainteneur principal qui est la personne en charge du logiciel. Outre la nomination des mainteneurs, celui-ci décide du cycle de sortie du logiciel, de la fusion d'ensemble des modifications et de la modération. Initialement ce rôle était joué par Satoshi Nakamoto qui, avant de disparaître, a transmis la responsabilité à Gavin Andresen le 23 février 2011. Gavin Andresen s'est ensuite chargé du projet pendant plus de trois ans avant de laisser sa place à l'actuel mainteneur principal, Wladimir J. van der Laan, le 7 avril 2014.
Pour faciliter le développement, les contributeurs communiquent par différents moyens, mais les deux principaux sont le canal IRC bitcoin-core-dev où ont lieu la plupart des discussions et la liste de diffusion bitcoin-dev.
Selon une liste mise à jour en septembre 2020, les mainteneurs actuels de Bitcoin Core sont :
- Wladimir van der Laan (
laanwj
,wumpus
,orionwl
) : mainteneur principal ; - Pieter Wuille (
sipa
) : mainteneur général ; - Jonas Schnelli : mainteneur de l'interface graphique ;
- Marco Falke : mainteneur de l'assurance qualité et des tests ;
- Samuel Dobson (
MeshCollider
) : mainteneur du portefeuille ; - Michael Ford (
fanquake
) : mainteneur build et général.
Les empreintes PGP relatives à l'accès des mainteneurs sont disponibles publiquement sur le dépôt.
Parmi les contributeurs à Bitcoin Core, qui ne sont pas des mainteneurs, mais qui sont très actifs, on retrouve :
- Matt Corallo ;
practicalswift
;- Luke Dashjr (
luke-jr
), qui maintient aussi le registre des Bitcoin Improvement Proposals ; - John Newbery (
jnewbery
) ; - Gregory Maxwell (
gmaxwell
), qui est un ancien mainteneur.
Quelles sont les différentes versions ?
Depuis la première version publiée par Satoshi le 8 janvier 2009, Bitcoin Core a considérablement évolué. Cette évolution s'est produite de manière graduelle au travers de différentes versions qui servent à marquer les changements majeurs. Celles-ci sont toujours numérotées sous la forme 0.x.y
pour bien rappeler de caractère « bêta » et non final du logiciel.
Les principales versions du logiciel sont listées ci-dessous. Notez que celles-ci ne correspondent pas forcément aux changements du protocole, qui peuvent avoir lieu par un soft fork et donc être appliqués uniquement au logiciel utilisé par les mineurs.
Version du logiciel | Principales modifications | Date de sortie |
---|---|---|
0.1 | Première version publiée par Satoshi | 08/01/2009 |
0.2 | Compatibilité avec Linux | 17/12/2009 |
0.3 | Compatibilité avec Mac OS X | 06/07/2010 |
0.4 | Chiffrement des clés privées | 23/09/2011 |
0.5 | Correction de la vulnérabilité CVE-2011-4447 | 21/11/2011 |
0.6 | Clés compressées, sauvegarde du portefeuille, signature de messages, P2SH | 30/03/2012 |
0.7 | Version 2 des blocs, hauteur du bloc dans la transaction de récompense, support de Tor, IPv6 | 17/09/2012 |
0.8 | Filtres de Bloom, implémentation de LevelDB | 19/02/2013 |
0.9 | OP_RETURN | 19/03/2014 |
0.10 | Encodage DER strict des signatures, synchronisation plus rapide, estimation des frais, bitcoin-tx |
16/02/2015 |
0.11 | Élagage (pruning), frais minimaux de relai | 12/07/2015 |
0.11.2 | OP_CHECKLOCKTIMEVERIFY | 13/11/2015 |
0.12 | Replace-by-Fee, limitation de la zone mémoire, libsecp256k1 | 23/02/2016 |
0.12.1 | Temps de verrouillage relatif avec le nombre de séquence, OP_CHECKSEQUENCEVERIFY, temps médian passé | 15/04//2016 |
0.13 | Blocs compacts, génération déterministique des clés et adresses, Child Pays For Parent | 23/08/2016 |
0.14 | Frais minimaux de relai | 08/03/2017 |
0.15 | Suppression de la priorité par « âge des pièces », support multi-comptes, RBF dans interface graphique | 14/09/2017 |
0.16 | Intégration complète de SegWit | 26/02/2018 |
0.17 | Sélection des pièces, transactions Bitcoin partiellement signées (PSBT) | 30/10/2018 |
0.18 | bitcoin-wallet |
02/05/2019 |
0.19.0.1 | Changements dans le protocole RPC, bech32 par défaut |
24/11/2019 |
0.20 | Suppression du message de rejet, suppression du protocole de paiement BIP-70 | 03/06/2020 |
0.21 | Descriptor Wallets, inclusion du code de Taproot | 14/01/2021 |
Comment télécharger et utiliser Bitcoin Core ?
Pour télécharger le fichier d'installation de Bitcoin Core, vous pouvez vous rendre sur le site de Bitcoin Core (bitcoincore.org) et cliquer sur « Download ». Vous pouvez également compiler le logiciel à partir du code source disponible sur GitHub, par exemple en téléchargeant les sources avec la commande :
git clone https://github.com/bitcoin/bitcoin.git
Pour plus d'information sur comment installer et utiliser Bitcoin Core, nous vous conseillons de lire le très bon tutoriel de Sosthène sur le sujet : Comment installer son propre nœud Bitcoin Core ?