Le logiciel de référence du protocole bitcoin est appelé le Bitcoin Core. C’est le code d’origine que Satoshi Nakamoto a transmis à un groupe de développeurs présidé par Gavin Andresen avant de quitter le projet.
Ce groupe (actuellement constitué par Wladimir J. van der Laan, Gavin Andresen, Jeff Garzik, Gregory Maxwell et Pieter Wuille) maintient ce code avec l’aide d’une communauté plus large de développeurs qui travaillent à le rendre plus efficace tout en prenant bien garde de ne pas le dénaturer.
Le code de base est géré par un système de contrôle de version appelé Git, qui permet aux développeurs de conserver une trace des versions sur lesquelles ils travaillent, et les changements qu’ils ont effectués.
Ces version sont rassemblées dans un service central appelé Github qui regroupe également de nombreux autres projets. Bitcoin possède sa propre la page Github.
Github conserve la version officielle du code mais chacun peut proposer ses propres modifications en créant un des versions alternatives.
Pour les changements basiques qui visent à améliorer les performances du code ou corriger ses bugs sans en modifier les fonctionnalités, les développeurs peuvent demander à ce que leur modifications soient réincorporées dans le référentiel maître par l’émission d’une « pull request » (« demande d’attraction »), qui ouvre leur version du référentiel à d’autres membres du projet, afin qu’elle soit examinée et commentée.
Si suffisamment de gens acceptent les modifications proposées et qu’elle sont également entérinées par le « Sénat » de Bitcoin (le groupe de développeurs constitué par Wladimir J. van der Laan, Gavin Andresen, Jeff Garzik, Gregory Maxwell et Pieter Wuille), elles peuvent intégrer définitivement le référentiel maître.
Pour les modifications de fond, celles qui changent les règles du consensus que tous les clients Bitcoin doivent respecter pour le réseau fonctionne correctement, les choses sont plus complexes. Elles doivent d’abord être longuement discutées sur la liste de diffusion d’abord par le dépôt d’un BIP (Bitcoin Improvement Proposal = proposition d’amélioration de Bitcoin), un document qui suggère des changements importants qui peuvent concerner soit le code de base, soit celui des portefeuilles mobiles, ou encore les processus de décisions autour de Bitcoin.
N’importe qui peut créer un BIP, à partir du moment où le format imposé est respecté. Si, après discussion, la proposition est retenue, son statut devient « actif », si plus tard elle est adoptée elle passe à « définitif ». C’est ce qui s’est produit par exemple pour la correction de la faille liée à la « malléabilité des transactions« .