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 ».

Logo Bitcoin Core

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 ?

A propos de l'auteur : Ludovic Lars

twitter-soothsayerdatatwitter-soothsayerdata

Je suis fasciné par les cryptomonnaies et par l’impact qu’elles pourraient avoir sur nos vies. De formation scientifique, je m’attache à décrire leur fonctionnement technique de la façon la plus fidèle possible. Sur Cryptoast, je me propose de vous aider à mieux comprendre comment fonctionnent les cryptomonnaies (principalement Bitcoin, Bitcoin Cash et Ethereum) et quels sont les enjeux qui animent cet écosystème fascinant.
Tous les articles de Ludovic Lars.

guest
0 Commentaires
Inline Feedbacks
View all comments