A la découverte de la blockchain et de son fonctionnement

Vous avez sans doute déjà entendu le mot “Blockchain“. Il est souvent associé au bitcoin et plus largement à la crypto-monnaie. Pour certains, la blockchain est une mode, voir une boîte noire mais pour ceux qui s’y intéressent, elle ouvre de nouvelles perspectives. Et pour les organisations, elle est synonyme de nouvelles applications et de business à venir.

Dans ce billet, je vais tenter de vous donner un aperçu de ce qu’est la technologie blockchain et de son fonctionnement. Je ne suis pas expert, aussi, je vais essayer d’être assez clair pour vous expliquer comment fonctionne une blockchain et vous donner l’envie de continuer à explorer cette techno.

Dites-moi si ce sujet vous intéresse, je publierai d’autres articles sur les applications possibles de la blockchain ou tout simplement sur mes découvertes sur le sujet. Je vous invite à vous exprimer en laissant un commentaire à la suite du post.

Comment fonctionne une blockchain ?

Le terme “blockchain” donne une bonne idée du fonctionnement de cette technologie.

Imaginez une chaîne de blocs reliés entre eux, comme une série de wagons accroché les uns aux autres pour former un train. C’est plutôt simpliste mais illustre bien la composition d’une blockchain, aussi, qu’est-ce qui compose ces blocs et qu’est-ce qui les relie entre eux ?

Comprendre le bloc

Le “bloc” n’est essentiellement qu’une collection d’informations.

Par exemple, dans le cas d’utilisation de la blockchain pour une crypto-monnaie, les données stockées dans chaque bloc correspondent aux transactions effectuées avec cette monnaie.

Le Bitcoin Whitepaper est un document technique qui donne une compréhension du mode de fonctionnement de la blockchain dans le cadre de la crypto-monnaie bitcoin. Cette publication, rédigée par Satoshi Nakamoto, le présumé père du réseau Bitcoin (« A purely peer-to-peer version of electronic cash ») présente la technologie blockchain au monde. Les illustrations sont issues de cet article.

Ce qui rend les blocs d’une blockchain spéciaux, ce ne sont pas les données. C’est l’encadrement. En plus des données, chaque bloc :

  • Commence par un “hash”
  • Contient un horodatage
  • Se termine par un “nonce”.

Qu'est-ce qu'une blockchain et comment fonctionne-t-elle ?

Un nonce est un nombre que l’ordinateur génère lorsqu’il répertorie le reste des données du bloc. L’obtention du nonce d’un bloc génère un horodatage, tout comme l’horodatage d’une photographie numérique. Le nonce qui termine un bloc sert également de hachage pour le bloc suivant.

Comprendre la chaîne

Vous avez peut-être déjà compris d’où vient la partie “chaîne“. Dans l’analogie du wagon de train que j’ai évoqué plus haut, le nonce à la fin d’un bloc de données est couplé au hachage au début du bloc de données suivant.

Donc, supposons que quelqu’un veuille falsifier ou supprimer un élément de données d’un bloc. Dans le cas des crypto-monnaies, cela permettrait à quelqu’un de supprimer l’enregistrement d’une transaction particulière, car les données de chaque bloc sont un enregistrement des transactions qui ont eu lieu depuis la confirmation du bloc précédent.

blockchain

Pour modifier cette donnée, il leur faudrait générer un nouveau nonce. Or ce ne serait pas possible puisque l’ancien nonce est déjà enregistré dans la blockchain, avec un horodatage. Tant que des personnes peuvent voir la blockchain et que plusieurs personnes y contribuent, tout élément de données est parfaitement préservé pour toujours lorsque le nonce est ajouté.

Les blockchains décentralisées sont immuables, ce qui signifie que les données saisies sont irréversibles. Pour le bitcoin, cela signifie que les transactions sont enregistrées en permanence et que tout le monde peut les consulter.

Le fonctionnement d’une blockchain dépend de ce qu’elle fait

Le fonctionnement exact d’une blockchain dépend de son créateur et de ses motivations. Par exemple, les données stockées, les personnes qui les confirment, la manière dont elles sont récompensées, la manière dont elles sont distribuées et les personnes qui peuvent voir la blockchain définissent son utilisation.

Dans la plupart des crypto-monnaies, toute personne utilisant le bon logiciel peut aider à créer et à confirmer la blockchain. La récompense est une partie de la crypto-monnaie, qui est générée chaque fois qu’un bloc est confirmé.

La crypto-monnaie n’est pas le seul cas d’utilisation de la technologie blockchain et, en théorie, les données stockées dans un bloc peuvent être à peu près n’importe quoi. Tout dépend de la personne qui crée la blockchain et de ce qu’elle veut en faire.

Dans le cas de Codex Protocol, le propriétaire d’une œuvre d’art contribue aux entrées dans la vie d’un artefact, comme les changements de propriété et les montants des paiements. Ces enregistrements constituent le bloc. Le propriétaire n’est pas directement “récompensé” pour sa contribution à la provenance de la blockchain, mais lorsqu’il souhaite vendre l’œuvre, la provenance vérifiable et immuable de la blockchain qu’il a contribué à créer contribue à la valeur de l’œuvre.

Quels sont les avantages de la technologie blockchain ?

La mise en œuvre de la technologie blockchain présente plusieurs avantages.

La technologie blockchain est un moyen sûr pour les organisations de cataloguer, sécuriser et authentifier leurs propres données. En rendant les blockchains visibles au public, les organisations peuvent également utiliser la technologie pour rendre les dossiers et les informations transparents et dignes de confiance.

blockchain

En plus d’être puissante et potentiellement transparente, la technologie blockchain peut aider les organisations à réduire leurs coûts et risques informatiques en externalisant le stockage, la sécurité et la vérification des données. Les chaînes de blocs qui font partie d’un “grand livre distribué” permettent aux ordinateurs individuels de conserver les données sans se soucier des serveurs centralisés.

Obstacles à la mise en œuvre de la technologie blockchain

La plupart des inconvénients de la technologie blockchain proviennent de la perception de cette technologie plutôt que de sa mise en œuvre réelle.

Beaucoup de gens entendent “blockchain” et pensent “crypto-monnaie”, ce qui est plutôt dommage compte tenu de la polyvalence de la blockchain dans d’autres cas d’utilisation. Son association aux crypto-monnaies conduit de nombreuses personnes à négliger les autres cas d’utilisation de la blockchain.

En outre, en tant que nouvelle technologie, la blockchain a un air d’imperceptibilité. Beaucoup de gens imaginent qu’elle est compliquée et n’essaient donc pas de la comprendre.

Il existe un inconvénient technologique à la mise en œuvre de la technologie blockchain, à savoir le coût et les dépenses énergétiques. Une application à grande échelle comme le bitcoin nécessite une quantité incroyable d’énergie. Même les applications à plus petite échelle qui exécutent et vérifient une blockchain nécessitent une grande puissance de calcul, dont la majeure partie est consacrée à la génération du hash.


Photo by Olya Kobruseva from Pexels

Comment devenir un développeur de blockchain ?

Après avoir présenté la blockchain dans un précédent billet, je vous propose un nouvel article vous permettant de découvrir comment devenir un développeur dans le domaine prometteur de la blockchain.

Développeur de blockchain

Que font-ils ?

Les développeurs blockchain sont les programmeurs qui créent des applications dans le domaine de la blockchain.

Ils gèrent l’ensemble du cycle de vie d’une application blockchain, ce qui signifie qu’ils sont responsables de la conception ainsi que de l’exécution de l’application. Ils créent l’ensemble de l’architecture du système blockchain, réalisent des contrats intelligents (smart contract) et optimisent les protocoles.

Types de développeurs de blockchain

Il existe deux types de développeurs de chaînes de blocs :

  • Blockchain Core Developer : Développeurs qui travaillent à la conception de l’architecture de réseau de l’ensemble du système, comme les protocoles de consensus (règles de travail), etc.
  • Développeur de logiciels blockchain : Développeurs qui construisent des applications décentralisées à l’aide d’un système de réseau blockchain.

Dans ce blog, je vais faire le focus sur les missions du développeur de logiciels de blockchain car la demande est de plus en plus forte.

Aujourd’hui, c’est l’un des ensembles de compétences qui se développe le plus rapidement, le nombre d’emplois dans ce domaine augmente et va poursuivre sa croissance dans les années à venir grâce à l’accroissement du nombre de domaines intéressés par la blockchain.

Compétences requises pour devenir un développeur de blockchain

L’architecture logicielle blockchain peut être classée en 4 catégories, telles que :

  1. Front-End
  2. Back-End
  3. Contrats intelligents (smart contract)
  4. Bases de données

FrontEnd

Voici les langages de programmation Front-End que vous devez connaître pour devenir un développeur de blockchain performant.

  • HTML
  • CSS
  • JavaScript

Ces 3 langages sont les langages de programmation de base que vous devez connaître, mais pour devenir un développeur de blockchain plus avancé et efficace, apprendre React.js ou Angular.js sera très utile.

Back-End

Il y a beaucoup de technologies back-end que vous pouvez apprendre ou que vous connaissez, qui sont applicables dans le développement blockchain.

Contrats intelligents

Les Smart Contracts sont simplement des programmes stockés sur une blockchain qui s’exécutent lorsque des conditions prédéterminées sont remplies.

Ils sont généralement utilisés pour automatiser des accords afin que tous les participants puissent connaître le résultat immédiatement, sans l’intervention d’un intermédiaire. Pour écrire un contrat intelligent, il faut connaitre Solidity et Vyper.

Base de données

Pour les bases de données, il est toujours préférable de connaître à la fois MySQL et NoSQL (MongoDB).

Ce sont les compétences de base que vous devez apprendre pour devenir un développeur de blockchain. En plus de cela, dans n’importe quel langage de programmation, vous devriez apprendre les concepts OOPs (Object Oriented Programming – Programmation Orientée Objets) parfaitement pour être un meilleur développeur.

Les extras, pour être un meilleur développeur Blockchain

Il y a certains sujets que vous pouvez apprendre pour avoir des connaissances supplémentaires en complément des exigences de base, pour devenir un meilleur développeur blockchain. Il s’agit de :

  • Qu’est-ce que Hyperledger ?
  • Qu’est-ce que IPFS ?
  • À propos de la cryptographie.
  • Qu’est-ce que Truffle ?
  • Que sont les NFTs ?
  • Qu’est-ce que DeFi ?

Ressources pour apprendre les compétences

Je vous recommande plusieurs chaînes YouTube pour apprendre à devenir un développeur blockchain :

  • Code Eater avec plusieurs tutoriels sur la blockchain,
  • Apprenez à créer des applications décentralisées sur la blockchain avec Dapp University,
  • La formation blockchain de plus de 16 heures de freeCodeCamp de débutant à expert en Python,

Il existe également de nombreux cours Blockchain sur Udemy auxquels vous pouvez vous inscrire.

Liens vers de la documentation

 

 


Crédit photo :
Photo de ThisIsEngineering provenant de Pexels