Qu’est-ce que l’open source et pourquoi est-il important pour les logiciels et la blockchain ?

Qu’est-ce que l’open source et pourquoi est-il important pour les logiciels et la blockchain ?

Qu’est-ce que l’open source ?

L’open source signifie que le code source d’un logiciel est disponible et qu’une licence accorde à d’autres des droits clairs pour utiliser, consulter, modifier et diffuser ce code. Le code source est la version lisible d’un programme avec laquelle travaillent les développeurs. On peut le voir comme la recette derrière une application ou un programme.

Mettre simplement du code en ligne ne suffit donc pas. Sans licence appropriée, il n’est pas automatiquement clair si vous avez le droit de copier ce code, de le modifier ou de le redistribuer. C’est précisément la licence qui détermine ce qui est autorisé ou non.

L’open source ne signifie pas non plus nécessairement gratuit. Une personne peut vendre un logiciel open source ou demander de l’argent pour sa diffusion, tant que la licence l’autorise. L’essentiel concerne la liberté autour du code, et non son prix.

Une véritable licence open source ne peut par exemple pas faire de distinction entre les utilisateurs, les groupes ou les usages. Vous ne pouvez donc pas rendre le logiciel disponible uniquement pour un certain groupe ou uniquement pour un usage privé, puis l’appeler open source. Les conditions ne doivent en outre pas dépendre d’une technologie spécifique.

Exemple : Supposons qu’un développeur publie un programme sous une licence open source. Vous pouvez étudier le code, créer votre propre version et la partager, à condition de respecter les termes de cette licence. Si le même code est mis en ligne sans licence, vous ne disposez pas automatiquement de ces droits.


À retenir

  • L’open source concerne le code source et les droits accordés par une licence.
  • Vous pouvez souvent utiliser, étudier, modifier et partager un logiciel open source.
  • L’open source ne signifie pas automatiquement que le logiciel est gratuit.
  • Une licence détermine les conditions applicables à l’utilisation et à la diffusion.
  • Un code source public sans licence appropriée ne donne pas aux autres de droits d’utilisation clairs.

Comment fonctionne un logiciel open source ?

Un logiciel open source fonctionne parce que son créateur publie le code source sous une licence avec des règles claires. D’autres développeurs peuvent ensuite copier, consulter et modifier le code. Le fait qu’ils puissent aussi diffuser leur version modifiée dépend des conditions de la licence.

Dans de nombreux projets, on utilise la gestion de versions. C’est un système qui enregistre quelle modification a été effectuée, par qui et quand. Une modification enregistrée de cette manière s’appelle un commit. Cela permet généralement de retracer étape par étape l’évolution du logiciel.

Une manière courante de collaborer fonctionne à peu près ainsi :

  1. Créer sa propre version de travail Un développeur travaille dans une branch, une ligne de travail séparée au sein du même projet. Parfois, cette personne crée d’abord un fork : une copie personnelle de l’ensemble du projet.

  2. Modifier le code Dans cette version personnelle, quelqu’un peut corriger une erreur, ajouter une fonctionnalité ou améliorer le code sans modifier immédiatement la version officielle.

  3. Soumettre une pull request Une pull request est une proposition visant à intégrer la modification dans le projet d’origine. Les autres développeurs peuvent alors examiner le code, en discuter et le tester.

  4. Vérifier la modification Les projets peuvent faire examiner les changements, lancer des tests automatiques pour vérifier que le code fonctionne correctement et contrôler d’éventuelles erreurs ou problèmes de sécurité.

  5. Fusionner ou non Si les personnes disposant des droits appropriés sont d’accord, elles peuvent fusionner la modification avec la version officielle. On parle souvent de merge.

Un fork n’a d’ailleurs jamais besoin de revenir vers le projet d’origine. Une personne peut continuer à développer sa propre copie de manière indépendante. Ce n’est que lorsque les responsables du projet d’origine acceptent la modification qu’elle devient partie intégrante de la version officielle.

GitHub, les pull requests et les forks sont des moyens pratiques et très utilisés pour collaborer, mais ils ne sont pas une condition de l’open source. La licence est la base.

Qui gère les logiciels open source et comment les modifications sont-elles intégrées ?

Un logiciel open source n’a pas un gestionnaire unique ; chaque projet détermine lui-même qui gère le code et comment les modifications sont acceptées. Il peut s’agir de maintainers individuels, mais aussi d’une organisation, d’une fondation ou d’une communauté de projet.

Un maintainer est une personne qui aide à faire fonctionner le projet. Elle peut par exemple examiner les modifications, publier de nouvelles versions et décider qui a accès au repository officiel. Un repository est l’endroit où se trouvent le code et l’historique des modifications d’un projet.

Les développeurs externes peuvent généralement signaler un problème, proposer une amélioration ou soumettre du code modifié. Sur des plateformes comme GitHub, cela se fait par exemple via un issue ou une pull request. Un issue est souvent un signalement d’erreur, une question ou une idée d’amélioration.

Les projets peuvent définir des règles supplémentaires avant qu’un code puisse être fusionné. Pensez à des contrôles obligatoires par d’autres développeurs, à des tests automatiques ou à des règles empêchant qu’un code important puisse être modifié directement sans précaution.

Dans le cas de la blockchain, il y a un élément supplémentaire : le fait que du nouveau code soit ajouté au projet officiel ne signifie pas que les règles de la blockchain changent automatiquement.

Un node est un ordinateur qui exécute le logiciel et vérifie les transactions et les blocs selon les règles d’une blockchain.

Dans le cas de Bitcoin, les BIP servent de propositions publiques d’amélioration. Dans le cas d’Ethereum, les EIP jouent un rôle similaire pour les standards et les modifications du réseau. Une telle proposition peut contenir des explications, des retours et des ajustements antérieurs. Mais la publication d’un BIP ou d’un EIP ne modifie pas automatiquement les règles de Bitcoin ou d’Ethereum.

La fusion du code ne le fait pas non plus automatiquement. Pour qu’il y ait une véritable modification des protocol rules, les règles techniques du réseau, les participants concernés doivent au final exécuter un logiciel qui suit les mêmes nouvelles règles.

Dans Bitcoin, aucun organe formel ou informel ne décide seul de l’adoption des BIP. Dans Ethereum, les éditeurs d’EIP assurent surtout des tâches administratives et rédactionnelles, et non le choix de fond sur l’opportunité d’une proposition.

Quelles licences open source existent ?

Deux types courants sont les licences permissives et les licences copyleft. Les licences permissives portent ce nom parce qu’elles autorisent beaucoup de choses : vous pouvez généralement utiliser, modifier et redistribuer le code librement. Copyleft est un jeu de mots sur copyright. Avec ce type de licence, vous pouvez aussi modifier et partager le code, mais les logiciels dérivés doivent souvent rester disponibles sous les mêmes conditions ouvertes.

Voici quelques licences connues :

  • MIT C’est une licence permissive. Vous pouvez utiliser, copier, modifier, distribuer et même exploiter commercialement le logiciel. En revanche, vous devez joindre la mention de copyright et le texte de la licence. Le logiciel est fourni sans garantie et avec une responsabilité limitée.

  • BSD-2-Clause et BSD-3-Clause Ce sont également des licences permissives. Elles autorisent une réutilisation et une diffusion très larges, généralement tant que les informations de copyright et de licence sont conservées.

  • Apache-2.0 Apache License 2.0 est elle aussi permissive. Cette licence contient en outre des dispositions concernant les brevets des personnes qui contribuent du code au projet.

  • GPL-3.0-only La GPL est une licence copyleft. En termes simples, cette licence cherche à garantir que la liberté de partager et de modifier le code soit préservée lorsque le logiciel est redistribué. Toute personne qui diffuse un logiciel sous GPLv3 doit, sous certaines conditions, rendre également le code source correspondant disponible.

  • MPL-2.0 La Mozilla Public License 2.0 est une forme de copyleft qui se concentre surtout sur les fichiers individuels. Si vous modifiez un fichier couvert par la MPL, ce fichier modifié doit généralement rester disponible sous les mêmes conditions ouvertes. Les autres fichiers d’un projet plus vaste peuvent toutefois relever d’autres conditions.

Il est important de savoir que des étiquettes comme permissive, strong copyleft et weak copyleft sont utiles pour une première explication, mais que les conditions précises figurent toujours dans le texte de la licence. Cela peut devenir complexe, surtout lorsque différents composants logiciels sous différentes licences sont combinés.

Pourquoi l’open source est-il important pour la crypto et la blockchain ?

L’open source est important pour la crypto et la blockchain parce que les nodes exécutent un logiciel qui vérifie les transactions et les blocs selon des règles fixes. Toute personne qui fait tourner son propre node peut donc vouloir vérifier quelles règles ce logiciel applique exactement.

Dans Bitcoin, Bitcoin Core est un exemple bien connu. Le code source est public et le logiciel est distribué sous la licence MIT. Les développeurs et autres personnes intéressées peuvent ainsi étudier le code, proposer des contributions ou créer leur propre version dans le cadre des conditions de cette licence.

Ethereum peut être utilisé avec plusieurs programmes open source différents, appelés clients. Ce logiciel traite notamment les transactions et aide les ordinateurs à participer au réseau Ethereum. Les différents clients sont développés par différentes équipes et utilisent parfois des langages de programmation différents.

Pourquoi est-ce utile ? Si un réseau dépendait entièrement d’un seul logiciel, une erreur grave dans celui-ci pourrait toucher de nombreux participants en même temps. Plusieurs clients indépendants rendent le réseau moins dépendant d’une seule version du logiciel.

Ces différents clients Ethereum doivent bien sûr suivre les mêmes spécifications pertinentes. Les spécifications sont les accords techniques communs sur le fonctionnement du réseau. Pensez aux règles relatives aux transactions, aux blocs et à la manière dont le réseau parvient à un accord sur les données valides.

Les BIP et les EIP facilitent aussi la coordination publique. Ils rendent visibles les propositions, les explications techniques, les retours et les révisions. C’est précieux dans la crypto, car les modifications des règles peuvent avoir de grandes conséquences pour toute personne qui exécute un logiciel, conserve de la crypto ou utilise des applications comme smart contracts.

L’open source rend en outre possibles les versions indépendantes et les forks. Cela offre davantage de choix aux développeurs et aux utilisateurs. Mais un code ouvert ne garantit pas à lui seul qu’une blockchain soit sûre, décentralisée ou largement utilisée. Le code doit être bon, correctement exécuté et, au final, aussi utilisé par les nodes et les autres participants.

Quels sont les avantages de l’open source ?

Le principal avantage de l’open source est que les utilisateurs peuvent non seulement utiliser un logiciel, mais aussi l’examiner, le modifier et le partager. C’est utile lorsqu’une organisation souhaite adapter un logiciel à ses propres besoins techniques ou opérationnels.

En outre, le code public permet des vérifications. Vous pouvez consulter l’historique des versions et voir ce qui a été modifié. Dans un workflow de pull request, d’autres personnes peuvent discuter d’une modification avant qu’elle ne soit fusionnée. Des tests automatiques et des contrôles de sécurité peuvent aider à détecter les erreurs plus tôt.

L’open source peut aussi faciliter la collaboration. Les développeurs peuvent réutiliser des composants existants au lieu de tout construire à partir de zéro. Cela n’est bien sûr possible que si les licences sont compatibles entre elles et si chacun respecte les conditions.

Un fork offre un autre avantage : la continuité. Supposons qu’un groupe de développeurs souhaite suivre une orientation technique différente de celle des maintainers d’origine. Ils peuvent alors continuer avec leur propre copie. Un projet n’est donc pas nécessairement condamné à s’arrêter en cas de désaccord sur son avenir.

Dans la blockchain, la diversité des clients est un avantage. Cela signifie qu’il existe plusieurs clients différents, c’est-à-dire des programmes permettant aux ordinateurs de participer par exemple à Ethereum. Si ces clients sont développés par différentes équipes, le réseau dépend moins d’une seule version du logiciel. Le risque qu’une seule erreur touche immédiatement tous les nodes, les ordinateurs qui font fonctionner le réseau, de la même manière est donc plus faible.

Point important toutefois : le fait de pouvoir inspecter le code ne signifie pas que des experts l’ont réellement examiné en profondeur. L’open source rend le contrôle possible, mais ne prouve pas que chaque erreur a déjà été trouvée ou corrigée.

Quels sont les risques et les limites de l’open source ?

L’open source n’est pas un certificat de sécurité. Même un code public peut contenir des erreurs de programmation, des vulnérabilités ou des choix de conception peu sûrs. Le fait que tout le monde puisse consulter le code ne signifie pas qu’un nombre suffisant d’experts l’a effectivement fait.

La maintenance est un risque important. Un logiciel a généralement besoin d’un entretien continu, par exemple pour corriger des bugs, appliquer des mises à jour de sécurité et gérer de nouvelles dependencies. Une dependency est un composant logiciel externe sur lequel un programme s’appuie. Si un projet n’est pas bien entretenu, des problèmes connus peuvent rester sans réponse.

Plus un programme utilise de composants logiciels externes, plus il existe de points potentiels où un problème de sécurité peut apparaître. Une dependency malveillante ou compromise peut ainsi mettre en danger tout un système. Il est donc prudent de vérifier si chaque dependency est réellement nécessaire, d’où elle provient et si la version utilisée est encore à jour.

Dans le cas des logiciels open source, les licences jouent aussi un rôle. Si vous combinez des composants sous différentes licences, des conditions peuvent s’appliquer à la mise à disposition du code source, aux mentions de copyright, aux modifications ou aux brevets. C’est un point à examiner attentivement avant toute diffusion du logiciel.

Les forks ont également un revers. Ils offrent de la liberté de choix, mais peuvent répartir les développeurs, les utilisateurs, la documentation et la maintenance de sécurité entre plusieurs projets. Un fork a besoin de ses propres maintainers, de sa propre sécurité, de nouvelles versions et d’utilisateurs ou d’opérateurs de nodes pour continuer à bien fonctionner sur le long terme.

Pour la crypto, il existe en outre un point de contrôle supplémentaire. Le code dans un repository public n’est pas automatiquement exactement le même que le logiciel que vous installez. Il est donc important de vérifier d’où provient le logiciel et si la version que vous installez correspond à la version officielle.

Dans le cas des smart contracts, vous pouvez également vérifier si le code publié correspond au contrat qui fonctionne réellement sur la blockchain.

En bref : l’open source vous donne davantage de possibilités de contrôle, mais ne vous dispense pas de tout vérifier. Pour les logiciels et les projets cryptos, regardez donc aussi la maintenance, les pratiques de sécurité, les dépendances et la version que vous utilisez réellement.

En résumé

L’open source signifie que le code source est disponible sous une licence qui accorde des droits clairs pour utiliser, étudier, modifier et partager le logiciel. La licence est au moins aussi importante que le code lui-même.

Pour la crypto et la blockchain, l’open source est particulièrement pertinent, car les nodes exécutent les règles du protocole et plusieurs clients indépendants peuvent rendre un réseau moins dépendant d’un seul logiciel. En même temps, un code public ne garantit ni la sécurité ni la qualité. De bons contrôles, une maintenance active et des dépendances sûres restent tout aussi importants.

Considérez donc l’open source avant tout comme une base solide pour la transparence, la collaboration et la liberté de choix. Il offre des possibilités, mais il faut toujours examiner comment un projet est géré et si le logiciel utilisé est entretenu de manière fiable.

A propos de Finst

Finst est l'une des principales plateformes de cryptomonnaies aux Pays-Bas. Elle propose des frais de trading ultra-compétitifs, une sécurité de niveau institutionnel et une offre complète de services crypto incluant le trading, la conservation, le staking ainsi que des solutions de fiat on/off ramp. Fondée par d’anciens cadres de DEGIRO, Finst est autorisée sous MiCAR en tant que prestataire de services sur crypto-actifs par l’Autorité néerlandaise des marchés financiers (AFM). La plateforme est disponible pour les investisseurs particuliers et institutionnels dans 30 pays européens.

La plateforme crypto pour tous les investisseurs

Que vous soyez un trader actif ou un investisseur de long terme, Finst vous offre les outils pour investir dans les crypto-actifs en toute simplicité

Inscription