Quel pourcentage du code initial de Satoshi Nakamoto est encore présent dans le code actuel de Bitcoin?
Présent, tout en s'effaçant au profit du consensus.
C’est une question qui a intéressé plus d’un bitcoiner ces dernières années; et pourtant, elle est bien plus complexe qu’il n’y paraît. Au point même que les réponses que l’on peut régulièrement lire sur les réseaux ou que l’on peut entendre en conférence sont parfois… très aproximatives.
Essayons donc d’y répondre le plus précisément possible, afin de pouvoir obtenir une réponse tangible et rigoureuse !
Pour ce faire, j'ai comparé de manière automatisée les 4 fichiers du code écrit et publié par Satoshi Nakamoto en novembre 2008 (obtenu via le Satoshi Nakamoto Institute), avec les 2722 fichiers du code de la version 28.1 de Bitcoin Core, datant de janvier 2025.


J'ai donc tout d'abord cherché ce que j’appelle les fonctions "brutes" (fonctions avec signature claire, macros, constructeurs de classes, certaines instructions de contrôle). Dans le code de 2008, il y en a environ 59; dont 36 étant des fonctions clairement nommées. Or, une seule est présente à l'identique dans le code de 2025: la fonction "Release".
En ce sens, nous pouvons déjà affirmer que seules 1,69% à 2,78% des fonctions écrites par Satoshi en 2008 sont encore présentes à l'identique dans le code de Bitcoin en 2025.
Bon, cela ne représente que 0,04% des fonctions actuelles de Bitcoin Core (1 sur environ 2703).
Toutes les autres fonctions ont été ré-écrites et améliorées; à l'image de la fonction "GetBlockValue", désormais appelée "GetBlockSubsidy", qui calcule la récompense maximum de minage de bitcoin. Elles se situent respectivement dans les fichiers main.cpp (2008) et validation.cpp (2025).
Mais parmi les 59 fonctions "brutes" du code de 2008, 10 autres sont reconnaissables dans le code actuel de Bitcoin Core.
Cela signifie donc que 11 fonctions écrites par Satoshi sont donc encore présentes (à plus de 60%) dans le code actuel; soit prêt de 18,64% à 30,56% des fonctions qu'il a écrites ! 🎉
Bon, par contre, il faut de nouveau remettre les choses en perspective: cela n'équivaut qu'à 0,41% des 2703 fonctions du code de Bitcoin en 2025.
Mais est-ce la seule chose que nous pouvons dire sur ce sujet, Jamy?!
Évidemment que non, nous pouvons aller plus loin !
Pour ce faire, il suffit de comparer les 3286 lignes non vides écrites par Satoshi en novembre 2008 avec les 261808 lignes du code de la v28.1 de Bitcoin Core.
Et vous n'êtes pas prêts, car sur ces 3286 lignes écrites par Satoshi, 1508 sont présentes à l'identique dans le code actuel de Bitcoin.
Cela signifie donc que 45,89% du code de Satoshi est encore présent à l'identique dans le code de Bitcoin en 2025 ! 🔥
Petite remarque d'ailleurs: sur ces 1508 lignes présentes à l'identique, 178 sont des commentaires écrits de Satoshi, sur son code 📝
En remettant cette folle statistique en perspective, cela signifie que 0,58% du code de Bitcoin en 2025 a été écrit par Satoshi, en novembre 2008.
Conclusion?
- entre ~1,7% et 2,8% des fonctions écrites par Satoshi sont encore présentes à l'identique dans le code de Bitcoin Core en 2025;
- entre ~18,6% et 30,6% de ses fonctions y sont encore reconnaissables;
- mais surtout, ~45,9% de son code y est encore présent à l'identique !
L'empreinte de Satoshi est donc clairement présente dans le code de Bitcoin (45,89% de son code de novembre 2008); et cela, tout en s'effaçant au fil du temps au profit du consensus (0,58% du code actuel de Bitcoin Core).
Tout à l'image de sa statue, inaugurée en octobre 2024 lors du Lugano Plan ₿ Forum🟠
EDIT DU 12/04/2025:
Afin d’être sûr de la pertinence de ces données, j’ai laissé passer quelques jours et ai recommencé le travail de zéro; cette fois-ci en utilisant différents algorithmes en Python.
Le constat est alors simple: même s’il y a quelques différences notables (les calculs initiaux présentés dans cet article et sur Twitter ne comprenaient que les fichiers principaux, au format .cpp et .h; et la définition de ce que j’ai pu appeler une “fonction brute” a été précisée avec le code Python), le bilan général reste tout à fait similaire:
~2% des fonctions écrites par Satoshi sont encore présentes à l'identique dans le code de Bitcoin Core en janvier 2025;
~10% de ses fonctions y sont encore reconnaissables;
mais surtout, ~45% du code de novembre 2008 et ~13% du code de janvier 2009 sont encore présents à l'identique dans la version actuelle de Bitcoin Core !
Voici un tableau comparatif des résultats obtenus, auquel j’ai ajouté un comparatif entre la version 2025 et des versions 0.1.0 et 0.1.3 de 2009 (la version 0.1.5 - dernière version où Satoshi codait seul - étant introuvable):
À dans quelques jours, pour un prochaine article !
ProfEduStream
Super article 👍.
Merci et bravo 👏