Le monde de la blockchain a beau paraître complexe, il est pourtant facilement accessible à tout développeur ayant un minimum d’expérience. Via des langages de programmation déjà existants et des librairies spécifiques, il est aujourd’hui possible de créer des smart contracts, voire même une nouvelle crypto-monnaie.
Vous vous intéressez au développement blockchain, mais ne connaissez pas son véritable fonctionnement ? Vous voulez vous plonger dans la technique de la blockchain, mais ne savez pas vers quelle techno vous tourner ? Faisons le point ensemble !
La blockchain
Avant d’aller dans la technique pure et dure de la blockchain, voyons une définition précise de celle-ci.
Qu’est-ce que la blockchain ?
La traduction littérale de “blockchain” est fidèle à sa définition : la blockchain est une chaîne de blocs informatiques. Pour être plus précis, ces blocs, bien que formant une chaîne, sont stockés à différents endroits. C’est ce qu’on appelle une base de données distribuée. C’est pour cette raison que l’on dit de la blockchain qu’elle est une techno décentralisée : les éléments qui la composent ne sont pas stockés (centralisés) au même endroit.
C’est d’ailleurs son intérêt principal et son principe de fonctionnement. On vient chiffrer une donnée par cryptographie, découper cette donnée en blocs, eux-mêmes stockés à différents endroits. Cela rend la donnée d’origine pratiquement infalsifiable, inaltérable.
Quelles sont les utilisations de la blockchain ?
Aucune surprise : l’utilisation la plus connue de la blockchain, c’est la crypto-monnaie. La blockchain s’est même fait connaître grâce à la première crypto-monnaie connue : le Bitcoin.
L’intérêt de la blockchain, ici, est de protéger les transactions effectuées en crypto-monnaie. En effet, si une transaction est chiffrée, découpée en blocs et stockée à différents endroits, cela la sécurise et assure son intégrité. De plus, la source et le destinataire d’une transaction en Bitcoins étant définis par des adresses numériques, et non par des identités propres, cela leur assure un certain anonymat.
Toutefois, ce n’est pas la seule utilisation possible de la blockchain.
On pourrait par exemple utiliser la chaîne de blocs pour sécuriser des votes à distance, lors d’élections. Chaque vote serait chiffré et décentralisé. Son intégrité serait facilement vérifiable, et donc le vote serait, au moins en théorie, sécurisé.
Les meilleurs langages de programmation pour la blockchain
Voyons maintenant les meilleurs langages de programmation permettant de coder dans de la blockchain ; voire de créer une blockchain.
Solidity
On ne peut pas parler blockchain sans parler de Solidity ! C’est en effet ce langage qu’utilise Ethereum pour créer ses smart contracts (qui sont, pour résumer, des fonctions logiques exécutées lorsque certaines conditions sont réunies).
La particularité de ce langage est qu’il est complètement dédié à la blockchain ; il n’a pas d’autre cas d’utilisation.
Techniquement parlant, il a été influencé par C++, Python et JavaScript. Sa syntaxe n’est donc pas des plus complexes ; c’est un langage abordable même pour un développeur n’ayant que peu d’expérience en programmation.
Rust
Rust est un autre langage de programmation couramment utilisé lorsque l’on parle blockchain. Il est pourtant loin de faire partie des langages les plus utilisés, de manière générale. Il a cependant plusieurs cas d’utilisation bien concrets : développement de systèmes d’exploitation, machines virtuelles, jeux-vidéos… Et, blockchain, évidemment !
Il est notamment utilisé par les technos Solana, NEAR et Polkadot.
Influencé par une multitude de langages (C#, C++, Ruby, Haskell, etc.), ce n’est pas le langage de programmation le plus simple lorsque l’on veut se mettre à la blockchain.
JavaScript
Cela va peut-être vous surprendre, mais oui, il est possible d’utiliser du JavaScript dans le monde de la blockchain !
Ce langage, utilisé pour créer des sites web, des applications mobiles ou desktop, débarque également dans le monde des apps décentralisées et des smart contracts.
NEAR, dont nous venons juste de parler, à par exemple un SDK JavaScript nativement disponible, tout comme XRP. Il existe également des librairies tierces (donc, non natives) incluant JavaScript dans d’autres technos de la blockchain. C’est le cas de ethers.js qui permet de travailler dans l’écosystème Ethereum avec du JS.
L’avantage, même si JavaScript n’est encore que peu utilisé dans le monde blockchain, est évidemment la facilité d’apprentissage de ce langage, et son utilisation déjà très répandue. Comme c’est une techno déjà pratiquée par énormément de développeurs, leur montée en compétence sera limitée lorsqu’ils voudront se mettre à coder de la blockchain.
Python
Python est, comme JavaScript, un langage syntaxiquement simple, utilisé pour plusieurs types de développements, et par de plus en plus de programmeurs.
Cette techno est ainsi devenue en 2022 le langage le plus utilisé au monde, selon l’index TIOBE, notamment portée par son application dans le monde du Big Data. En effet, il est aujourd’hui presque impossible d’aborder les mégadonnées sans devoir utiliser Python.
Il ne pouvait donc pas passer à côté de la blockchain !
Certaines technos blockchains intègrent même Python comme premier langage de développement, c’est par exemple le cas d’Algorand.
Go
Go, techno créée par Google en 2012, fait, elle aussi, partie du classement du top langages de programmation pour se mettre à la blockchain.
Ce langage est connu pour être plutôt facile à apprendre, mais aussi et surtout pour sa rapidité d’exécution, d’où son utilisation dans les chaînes de blocs. De plus, étant un langage assez récent, il profite de l’effet de mode : des librairies et SDK en Golang fleurissent un peu partout ; y compris dans la blockchain.
Il existe même des tutoriels pour apprendre à créer une blockchain à partir de zéro en utilisant Go, comme celui proposé par freeCodeCamp.
C++
Le dernier langage de programmation dont nous allons parler ici, c’est C++.
C++ est peut-être moins débutant-friendly que Python ou JavaScript, mais s’il est largement utilisé dans le monde de la blockchain, ce n’est pas pour rien !
C’est un langage relativement ancien, fiable, bien maintenu, et surtout très optimisé dans son fonctionnement (dans sa vitesse d’exécution et son utilisation du CPU). La blockchain pouvant être gourmande en énergie et en ressources, on comprend l’intérêt qu’à ici le C++.
Ce n’est pas pour rien que le Bitcoin lui-même a été écrit dans ce langage !
Quelques bibliothèques pour travailler sur la blockchain ?
Choisir le langage de programmation à utiliser pour travailler dans la blockchain, ça ne se fait évidemment pas au hasard !
Prendre telle ou telle techno par simple affinité n’est pas forcément une bonne idée. Il faut en effet s’intéresser à l’intégration de ce langage, à la taille de la communauté et aux diverses bibliothèques disponibles.
JavaScript n’est par exemple pas le langage le plus puissant ni optimisé de la liste précédente, mais sa communauté est tellement grande que des frameworks et librairies apparaissent régulièrement, certains stables et bien maintenus.
Citons par exemple Truffle et sa suite de développement complète, permettant de facilement développer en JavaScript dans l’univers de la blockchain.
Mais ce n’est pas la seule techno à le permettre ! Nous avons déjà cité ether.js, et nous pouvons, toujours dans le monde du JavaScript, rajouter web3.js, qui permet là aussi de développer de la blockchain. Ce module en particulier est installé plus de 620 000 fois par semaine, c’est dire la popularité de JavaScript dans le monde crypto.
Pour résumer, avant de se mettre à 100% dans une techno blockchain, il convient de bien explorer toutes les technos disponibles, voire même de les tester. Car, vous vous en doutez, la complexité de cet univers demande un engagement assez fort de la part du développeur.