Le code fermé par rapport à l’Open Source divise l’industrie du Bitcoin et de la cryptographie au sens large depuis plus d’une décennie. Les partisans du Bitcoin soutiennent depuis longtemps que l’infrastructure financière mondiale devrait être construite en public. La transparence et l’auditabilité, disent-ils, ne sont pas négociables lorsque de l’argent réel est en jeu. Pourtant, les applications et les couches financières existantes sont souvent en désaccord.
Pourtant, le récent piratage de Coldcard, un portefeuille matériel d'auto-conservation populaire dans lequel les utilisateurs ont perdu plus de 100 millions de dollars de bitcoins (plus de 1 500 BTC), a semé le doute sur ce que signifie réellement « Open Source ». Il a révélé que peut-être la plupart des gens, même de nombreux Bitcoiners inconditionnels, sont mal informés sur la philosophie de développement de logiciels Open Source et sur les échecs.
Les principes et la terminologie
Le langage autour de l’Open Source peut être compliqué. Les logiciels libres et open source (FOSS) et les logiciels libres et open source (FLOSS) font référence à des logiciels qui répondent aux définitions formelles de la liberté de l'utilisateur.
La Free Software Foundation (FSF) définit le logiciel libre à travers quatre libertés essentielles :
- Liberté 0: La liberté d'exécuter le programme comme vous le souhaitez, dans n'importe quel but.
- Liberté 1: La liberté d'étudier le fonctionnement du programme et de le modifier pour qu'il fasse votre ordinateur comme vous le souhaitez (l'accès au code source est une condition préalable pour cela).
- Liberté 2: La liberté de redistribuer des copies afin que vous puissiez aider les autres.
- Liberté 3: La liberté de distribuer des copies de vos versions modifiées à d'autres (l'accès au code source est une condition préalable pour cela).
La FSF souligne que « gratuit » fait référence à la liberté, et non au prix, dans une citation courante des défenseurs des logiciels libres : « « libre » comme dans « liberté d'expression », pas comme dans « bière gratuite » ».
La définition Open Source de l'Open Source Initiative ajoute dix critères pratiques. Celles-ci incluent la redistribution gratuite sans redevances, la disponibilité du code source sous la forme souhaitée pour modification, le droit de créer et de distribuer des œuvres dérivées et l'absence de discrimination contre les personnes, les groupes ou les domaines d'activité, y compris l'utilisation commerciale. Une licence doit répondre aux dix critères pour être considérée comme Open Source selon la norme OSI.
« Source disponible » ou « source visible » est différent. Le code peut être lisible publiquement alors que la licence restreint le droit de le vendre. Le micrologiciel de Coldcard, par exemple, est publié selon les termes du MIT plus la clause Commons. La clause supprime spécifiquement le droit de « vendre » le logiciel, défini comme le fait de le fournir à des tiers moyennant des frais ou une autre contrepartie sous la forme d'un produit ou d'un service dont la valeur dérive entièrement ou substantiellement du logiciel lui-même. En d’autres termes, le firmware de Coldcard ne pouvait pas être utilisé commercialement.
La propre FAQ de la Commons Clause indique explicitement la différence : « Est-ce 'Open Source' ? Non. » Il note que l'application de la clause signifie que le logiciel répond à de nombreux éléments de la définition Open Source mais pas à tous, et ne devrait donc pas être appelé Open Source.
Ces distinctions sont importantes. La publication du code source crée la possibilité d’une inspection. L'octroi de l'ensemble complet des droits définis par la définition du logiciel libre ou la définition de l'Open Source est ce qui fait du logiciel FOSS ou FLOSS. Mais avoir le badge d’approbation, être capable de brandir un drapeau FOSS ou FLOSS, n’est pas la question. Selon les critiques, la liberté commerciale dans les logiciels libres permet aux tiers de tester et de réviser du code qui autrement n'existerait pas.
Les quatre libertés constituent le noyau philosophique de l'Open Source. En pratique, ils reposent sur une hypothèse économique : qu’un nombre suffisant de personnes motivées examineront réellement le code. Lorsque cette hypothèse échoue, le système produit une tragédie classique des biens communs, une situation dans laquelle une ressource partagée est surutilisée ou négligée parce que les utilisateurs individuels agissent dans leur propre intérêt à court terme plutôt que dans l’intérêt à long terme du groupe.
Chaque personne est incitée à prendre plus (ou à contribuer moins) que ce qui est durable, et la ressource se dégrade en conséquence. Cela se produit lorsqu’il y a un décalage entre l’intérêt personnel à court terme de l’individu et l’intérêt à long terme du groupe. Parfois, l’alignement existe ; parfois ce n'est pas le cas.
Un développeur Bitcoin a posé le problème sans détour : « Utiliser des simulations et des stubs de code Open Source dans les tests est irresponsable et à courte vue. Le code Open Source est considéré comme sûr car tout le monde peut le vérifier. Si vous n'êtes pas prêt à faire le strict minimum de tests des fonctionnalités dont vous dépendez réellement, alors vous vous comportez comme une sangsue. «
Par conséquent, l’Open Source ne crée pas à lui seul la sécurité. Cela crée la possibilité de vérification. La question de savoir si cette vérification aura lieu dépend des incitations, des compétences et de l’attention. On pense que les logiciels libres historiques se renforcent au fil du temps à mesure que les vulnérabilités sont découvertes, divulguées et corrigées, créant ainsi des bases solides sur lesquelles d'autres s'appuient. Le noyau Linux est un excellent exemple d'un tel FOSS renforcé ; il alimente la grande majorité des serveurs, des infrastructures cloud, des appareils Android et des systèmes embarqués dans le monde, ce qui en fait l'un des logiciels les plus largement déployés de l'histoire.
Open Source comme le démontre Bitcoin Core
Bitcoin Core, l'implémentation de référence de Bitcoin, est un autre exemple prémonitoire à grande échelle de fonctionnement purement open source dans la nature. Le logiciel, qui fonctionne derrière la plupart des infrastructures liées au Bitcoin, est publié sous la licence MIT. Son processus de développement est largement public de par sa conception.
N’importe qui peut ouvrir une pull request. La révision du code est le filtre principal et le point d’entrée recommandé pour les nouveaux contributeurs. Les évaluateurs utilisent un vocabulaire formel : Concept ACK (reconnaissance et accord avec l'objectif), Approach ACK (accord avec l'objectif et la méthode), ACK avec un hachage de validation spécifique (testé et approuvé pour la fusion) ou NACK (désaccord, qui doit être accompagné d'un raisonnement technique).
Les responsables évaluent le consensus entre les contributeurs et les mérites techniques d'un changement avant de fusionner. Les changements critiques pour le consensus sont confrontés à une barre encore plus haute et nécessitent généralement une proposition d'amélioration du Bitcoin et des discussions approfondies sur plusieurs années sur la liste de diffusion Bitcoin-dev et sur l'IRC.
Il n’existe pas de caste privilégiée de « développeurs Bitcoin Core ». La confiance se gagne grâce à une compétence démontrée au fil du temps. Les responsables existent pour des raisons pratiques (audit et fusion de code, gestion des versions et modération de base), mais le travail produit est du pur code open source que n'importe qui peut inspecter, construire, fork ou exécuter. Les développeurs qui fusionnent leurs « commits » de code dans Bitcoin Core sont généralement appelés contributeurs Bitcoin Core.
Calle, un développeur Bitcoin open source de longue date, a récemment résumé la réalité : « Les gens qui pensent que le noyau est une sorte d'institution opaque opérant dans l'ombre sont soit trop paresseux, soit trop stupides pour aller voir par eux-mêmes. Littéralement, tout ce qu'ils font est public, n'importe qui peut intervenir, et le résultat de leur travail est du pur code Open Source. «
Le financement de ce travail provient en grande partie de structures à but non lucratif et de subventions telles que Brink, OpenSats, Spiral et autres, plutôt que d'une feuille de route de produits d'entreprise traditionnelle. Les discussions et débats techniques ont lieu publiquement sur la liste de diffusion bitcoin-dev et sur le canal IRC #bitcoin-core-dev sur Libera Chat, où les propositions sont examinées avant et pendant le processus de pull-request. Les problèmes et les pull request de GitHub contiennent souvent des historiques de commentaires remontant à une décennie. Le résultat est une culture de développement optimisée pour l’exactitude et l’auditabilité plutôt que pour la rapidité ou la vélocité des fonctionnalités commerciales.
L’économie de l’Open Source
La plupart des utilisateurs de logiciels open source ou disponibles en source ne lisent jamais le code eux-mêmes. Ils partent du principe que d’autres l’examinent. Dans le cas Coldcard, une faille d’entropie critique est restée dans le micrologiciel accessible au public pendant environ cinq ans avant d’être exploitée et ainsi découverte.
Le bug est entré dans la base de code lors d'une réécriture majeure en 2021 qui a également supprimé le code dérivé de la GPL restant de Trezor, le premier portefeuille matériel et maintenant le deuxième plus grand du secteur de l'auto-garde. La bibliothèque au centre de l'échec de l'entropie, qui a remplacé trezor-crypto, s'appelle libngu et a fait l'objet d'un examen externe minimal, avec seulement 7 étoiles et moins de 20 forks en plus de 5 ans d'utilisation en production. Comparez cela aux 512 étoiles portées par la bibliothèque trezor-crypto aux côtés de 212 forks, ou aux 793 forks et 1,8k étoiles du micrologiciel trezor plus moderne. La disponibilité des sources à elle seule n’a pas permis de produire l’analyse qui comptait, car d’autres entreprises à but lucratif et bien financées n’avaient pas le droit de l’utiliser, du moins c’est ce que diraient les critiques.
Les enjeux sont plus élevés dans Bitcoin que dans la plupart des domaines logiciels. Un défaut critique peut être converti directement en liquidités sur le marché libre. Alors que la première moitié des fonds Coldcard volés sont toujours détenus dans une poignée d'adresses et que le pirate informatique pourrait un jour être arrêté, les pirates imitateurs qui ont suivi ont été plus prudents, et certains ont volé plus de bitcoins et les ont blanchis avec succès, selon Galaxy Research. La résistance à la censure et la transactabilité immuable du Bitcoin créent à la fois une puissante incitation pour les attaquants et un filtre darwinien ; seuls les projets qui font continuellement l’objet d’un examen compétent, et les utilisateurs et les entreprises qui prennent de sérieuses précautions, ont tendance à survivre à long terme.
Les choix de licence façonnent ces incitations, selon les défenseurs du FOSS qui critiquent les décisions de licence de Coinkite depuis des années. Les licences purement open source maximisent le bassin de réviseurs et de forks potentiels. Les licences restreintes de « source disponible » peuvent réduire le parasitisme commercial, mais également réduire le cercle des personnes ayant à la fois le droit légal et la motivation économique d’y consacrer une attention particulière. Hélas, la charge de la révision du code retombe sur l’entreprise sous une licence restrictive, la plaçant en quelque sorte plus proche du code source fermé que de l’open source.
Comment l'IA change le développement open source et fermé
L’intelligence artificielle modifie désormais également l’équilibre entre les logiciels libres et les sources fermées.
Après l'incident de Coldcard, un effort bénévole connu sous le nom de Bitcoin Red Team, dirigé par des développeurs dont Calle et Rob Hamilton d'AnchorWatch, et soutenu par OpenSats, a utilisé des modèles d'IA frontaliers pour analyser des centaines de référentiels Bitcoin open source. Au cours d'une période intensive, l'équipe a déposé des milliers de conclusions, dont des dizaines classées comme critiques ou de gravité élevée, sur des centaines de projets. Des divulgations responsables ont été faites aux responsables avant une publication plus large. L’exercice a démontré qu’un examen systématique assisté par l’IA peut faire apparaître des problèmes à une échelle et à une vitesse auparavant impraticables pour des équipes purement humaines.
Sur ce front, il convient de noter que la Red Team a trouvé les modèles chinois à poids ouvert bien plus fiables que les modèles américains à source fermée, qui, même avec des cyberautorisations et un accès haut de gamme, ont refusé de répondre aux requêtes de la Red Team, une tendance que déplorent les développeurs américains.
Dans le même temps, le flot de code généré par l’IA a créé une nouvelle pression de déni de service sur les responsables des logiciels libres. L’examen des résultats de l’IA prend souvent plus de temps que leur génération. Certains projets open source en dehors de Bitcoin ont limité les suivis de problèmes ou ont imposé des règles strictes de contribution anti-IA simplement pour rester fonctionnels.
Du côté des sources fermées, l’avantage traditionnel de la sécurité par l’obscurité s’érode. Les modèles d’IA modernes peuvent lire, désobscurcir, sonder les points de terminaison et raisonner sur le code à grande vitesse. La différence pratique entre les sources ouvertes et fermées est désormais principalement reléguée au code back-end qui n'est jamais partagé en ligne. En conséquence, le code source fermé ne repose que sur la qualité des audits professionnels, la rapidité de déploiement des correctifs et la structure d'incitation qui maintient les personnes compétentes ayant accès à la recherche.
Bitcoin et l’industrie plus large de la cryptographie exercent des pressions inhabituelles sur les logiciels libres et open source. La combinaison de la valeur monétaire réelle menacée, de l’économie contradictoire et désormais de l’analyse à l’échelle de l’IA oblige les modèles logiciels à évoluer. Le retour aux systèmes analogiques prénumériques n’est guère une option pour les infrastructures qui soutiennent la société moderne. Seuls les projets les plus audités sont susceptibles de survivre aux pressions des pirates informatiques assistés par l’IA et au poids de la finance axée sur le numérique.