Voici comment créer sa blockchain : étapes, outils de développement, avantages, etc.

La blockchain est une technologie relativement nouvelle que beaucoup considèrent comme uniquement dédiée à la crypto-monnaie. En réalité, elle peut être utilisée dans de nombreux domaines, que ce soit la mode, l’éducation ou les soins de santé. Mais pour comprendre l’application pratique de la blockchain, nous devons d’abord savoir comment elle fonctionne. Et quelles sont les étapes indispensables pour créer une blockchain.

Pourquoi créer une blockchain : les domaines dans lesquels elle peut s’appliquer

Lorsque Internet a été adopté de manière massive au début des années 90, chaque sphère économique a essayé de l’appliquer à son entreprise. Or, beaucoup n’ont pas réussi cette transition, comme peuvent en attester les millions de site web encore en ligne qui ne sont jamais visités ni même utilisés par leurs développeurs.

Nous assistons actuellement à une situation assez similaire avec la technologie la plus innovante de la décennie : la blockchain. Largement utilisée dans le domaine des échanges monétaires, et de la création des crypto-monnaies, la blockchain peut en réalité s’imposer dans d’autres secteurs que la finance.

Les différentes utilisations de la blockchain ?

Une tentative d’exclure le facteur humain est l’une des raisons pour lesquelles la blockchain est apparue. C’est pourquoi les industries qui peuvent bénéficier de la mise en œuvre de la blockchain sont celles qui dépendent fortement de l’activité humaine et qui souffrent le plus des erreurs humaines, comme la finance.

La Fintech traite d’une affaire très épineuse: l’argent. C’est dans ce domaine que les plus grandes fraudes ont lieu. Les startups de la Fintech visent donc à améliorer les institutions financières traditionnelles, par exemple en excluant le facteur humain des activités financières.

Néanmoins, ce principe peut s’appliquer à l’éducation (et à la certification des diplômes, par exemple), au domaine foncier, mais aussi à la santé (afin de vérifier la fiabilité des médicaments).

Un rapide aperçu de ce qu’est la blockchain

L’idée de base d’un protocole de blockchain est de préserver une base de données appelée registre à travers un réseau distribué de machines ou de nœuds. Les registres peuvent être utilisés dans n’importe quel but, que ce soit pour enregistrer des transactions ou de la monnaie numérique comme c’est le cas pour le BitCoin ou l’Ethereum.

Pour maintenir l’intégrité du grand livre qui est tenu à différents emplacement d’un même réseau, le protocole blockchain récompense les participants lorsqu’ils résolvent un problème de calcul complexe. C’est un processus que l’on appelle aussi le minage.

C’est ce processus dans lequel s’engagent les acteurs du réseau qui garantit l’intégrité du grand livre distribué sur les réseaux publics. Une blockchain est essentiellement une preuve des solutions aux problèmes que les participants sur le réseau résolvent. Et qui sont liés ensemble dans une chaîne : avec chaque nouvelle solution trouvée, un nouveau bloc est créé dans lequel le prochain ensemble d’enregistrements est copié .

Ce qu’il faut savoir avant de commencer à coder de la blockchain

N’oubliez pas qu’une blockchain est une chaîne d’enregistrements séquentielle immuable appelée “Blocs”. Ils peuvent contenir des transactions, des fichiers ou toutes les données applicables à votre secteur. Mais l’important est qu’ils sont enchaînés les uns aux autres par ce que l’on appelle les hachages.

Il faut également comprendre que tout le monde n’est pas en mesure de créer (coder) une blockchain. Vous devriez être à l’aise pour lire et écrire le code Python de base, ainsi que comprendre le fonctionnement des requêtes HTTP. Vous allez en effet communiquer avec votre blockchain via HTTP.

Pensez également à bien vous assurer d’avoir installé Python 3.6+ (avec pip). Mais aussi Flash et sa merveilleuse boutique de requêtes.

Comment créer une blockchain

Tout d’abord, vous allez devoir coder la structure de votre Blockchain. Soit une liste vide initiale (pour stocker votre blockchain) et une autre pour stocker le registre – dans lequel sont enregistrées toutes les futures transactions. Cette structure sera responsable de la gestion de la blockchain dans sa globalité.

Coder une blockchain avec Python

Voici les termes techniques et codes que vous devez maîtriser :

  • register_node () – cette méthode enregistrera un nouveau nœud sur le réseau
  • new_block () – cette méthode créera un nouveau bloc dans la blockchain, copiera les transactions récentes dans ce nouveau bloc et effacera l’ensemble des transactions.
  • valid_proof () – ce code vérifiera que le bloc soumis pour être ajouté à la blockchain résout le problème.
  • proof_of_work () – ce code vérifiera que le minage a donné la bonne preuve pour créer le bloc suivant dans la blockchain. Il permet d’enregistrer la preuve uniquement si cette dernière est correcte. Sinon elle gardera le code valid_proof () jusqu’à ce que les mineurs trouvent une preuve valide.
  • valid_chain () – cette méthode parcourt toute la blockchain avec le code valid_proof () pour vérifier que les blocs suivants sont valides.
  • new_transaction () – ce code va ajouter une nouvelle transaction à la liste des transactions.
  • [last_block () – cette méthode permettra de revenir au dernier bloc de la chaîne.

Étape 1 : Données de transaction

Pour bien comprendre comment créer une blockchain, commençons par un exemple : la blockchain du Bitcoin. La blockchain Bitcoin est la plus ancienne blockchain existante. Les blocs se composent d’environ 1 Mo de données chacun. Au moment où nous rédigeons cet article, elle compte environ 525 000 blocs, ce qui signifie qu’environ 525 000 Mo ont été stockés sur cette blockchain.

Les données sur la blockchain Bitcoin existent exclusivement à partir des données de transaction en Bitcoin. Il s’agit d’un historique géant de toutes les transactions Bitcoin qui ont jamais eu lieu, jusqu’à la toute première transaction en Bitcoin. Dans cet article, nous supposerons qu’une blockchain stocke des données de transaction, tout comme la blockchain Bitcoin.

Etape 2 : Le chaînage des blocs (avec un hachage)

Imaginez donc une chaîne de blocs comprenant des données de transaction. Vous pouvez la comparer à certains documents Word autonomes qui décrivent simplement quelles transactions ont eu lieu et comment celles-ci ont eu un impact sur les soldes de chaque participant à ces échanges.

Le document 1 décrirait alors chronologiquement les premières transactions qui ont eu lieu jusqu’à 1 Mo. Après quoi les transactions suivantes seraient décrites dans le document 2 jusqu’à un autre Mo, et ainsi de suite.

Ces documents sont les blocs de données. Ils sont désormais maintenant liés (ou enchaînés) ensemble. Pour ce faire, chaque bloc comprend une signature (numérique) unique qui correspond exactement à la chaîne de données de ce bloc. Si un élément à l’intérieur d’un bloc change, même d’un seul chiffre, le bloc se verra assigné une nouvelle signature. C’est ce que l’on appelle le hachage.

On vous présente dans un autre article les crypto-monnaies les plus prometteuses.

Etape 3 : La création de la signature (hachage)

Imaginons à nouveau un bloc. A l’intérieur de ce dernier, Thomas envoie 100 Bitcoin à David. Cette chaîne de données spécifique nécessite désormais une signature. En blockchain, cette signature est créée par une fonction de hachage cryptographique.

Créer un code de blockchain pour les débutants.

Une fonction de hachage cryptographique est une formule très compliquée qui prend n’importe quelle chaîne d’entrée et la transforme en une chaîne de sortie unique à 64 chiffres. Vous pouvez par exemple insérer le mot «Jinglebells» dans cette fonction de hachage (il existe également d’autres variantes d’algorithmes de hachage , mais nous utilisons celui-ci pour cet exemple), et vous verrez que la sortie de cette chaîne de données spécifique est:

761A7DD9CAFE34C7CDE6C1270E17F773025A61E511A56F700D415F0D3E199868

Si un seul chiffre de l’entrée change, y compris en ajoutant un espace, ou en changeant une majuscule en minuscule, la sortie sera totalement différente. Une fonction de hachage cryptographique donne toujours la même sortie pour la même entrée, mais aussi une sortie différente pour une entrée différente. Cette fonction de hachage cryptographique est utilisée par la blockchain Bitcoin pour donner aux blocs leurs signatures. L’entrée de la fonction de hachage cryptographique dans ce cas correspondra aux données dans le bloc, et la sortie est la signature qui s’y rapporte.

Étape 4 – La signature des blocs

Un bloc ne sera accepté sur la blockchain que si sa signature numérique commence – par exemple – par un nombre consécutif de zéros. Cependant, chaque chaîne de données n’a qu’un seul hachage unique qui lui est lié. Que faire si la signature (hachage) d’un bloc ne commence pas par dix zéros ?

Afin de trouver dans le bloc une signature qui répond aux exigences, la chaîne de données d’un bloc doit être modifiée à plusieurs reprises jusqu’à ce que cette chaîne de données spécifique conduise à une signature commençant par dix zéros. Étant donné que les données de transaction et les métadonnées (numéro de bloc, horodatage, etc.) doivent rester telles qu’elles, une petite donnée spécifique est ajoutée à chaque bloc qui n’a aucun but, sauf celui de pouvoir être modifiée à plusieurs reprises afin de trouver une signature éligible.

Vous vous demandez combien il y a de Bitcoins en circulation ? Voici la réponse.

Étape 5 – Rendre sa blockchain immuable

La modification d’un bloc le détachera des blocs suivants. Pour qu’un bloc modifié soit accepté par le reste du réseau, il doit à nouveau être enchaîné aux blocs suivants. Donner à tous ces blocs une nouvelle signature sera très coûteux et long, bien que cela ne semble pas impossible.

Mais supposons qu’un mineur corrompu ait modifié un bloc de transactions et essaie maintenant de calculer de nouvelles signatures pour les blocs suivants afin que le reste du réseau accepte sa modification. Le problème pour lui est que le reste du réseau calcule également de nouvelles signatures pour de nouveaux blocs.

Le mineur corrompu devra également calculer de nouvelles signatures pour ces blocs lorsqu’ils sont ajoutés à la fin de la chaîne. Après tout, il doit garder tous les blocs liés, y compris les nouveaux blocs qui sont constamment ajoutés. À moins que le mineur n’ait plus de puissance de calcul que le reste du réseau combiné, il ne rattrapera jamais le reste du réseau pour trouver des signatures. C’est ce principe qui garantit la fiabilité d’une blockchain.

Étape 6 – Qui détermine les règles d’une blockchain ?

La blockchain Bitcoin suit un modèle de gouvernance démocratique, et met donc à jour son «registre des transactions (et donc les soldes en Bitcoin) en fonction de ce que la majorité de ses utilisateurs disent être la vérité.

Le protocole blockchain le fait automatiquement en suivant toujours l’enregistrement de la chaîne de blocs la plus longue qu’elle possède, car elle suppose que cette chaîne est représentée par la majorité. Après tout, cela nécessite la majorité de la puissance de calcul pour créer la version la plus longue de la blockchain. C’est également ainsi qu’un bloc modifié est automatiquement rejeté par la majorité du réseau.

Étant donné que le protocole d’une blockchain est exécuté sur un réseau distribué, vous aurez vous aussi besoin d’une méthode pour résoudre les conflits sur le réseau. Cela peut passer par le simple fait de vérifier s’il y a d’autres chaînes de blocs sur le réseau qui sont plus longues que la vôtre. Et si c’est le cas, en faire votre propre chaîne.

Etape 7 : Interagir avec la Blockchain

Enfin, pour donner vie à votre blockchain et interagir avec elle, vous pouvez exposer un certain nombre de méthodes via une interface d’application web à l’aide de flash.

Comment coder sa blockchain ?

Vous pouvez par exemple décider d’autoriser les utilisateurs à enregistrer un nœud sur le réseau afin qu’ils puissent participer au processus de “proof of work” et être récompensés pour leurs efforts. Il vous suffira d’utiliser la méthode register_node () sur la structude de votre Blockchain pour enregistrer un nœud.

Un autre point important est de permettre aux participants de vérifier si leur Blockchain est valide et de récupérer la Blockchain sur le réseau si ce n’est pas le cas. Pour cela, ils doivent être en mesure d’ajouter des transactions au grand livre. Il vous suffira d’ajouter la méthode new_transaction () dans le code structurant votre Blockchain avec les détails transactionnels à ajouter.

Une dernière chose importante est de créer l’interaction qui permettra aux participants du réseau d’exploiter leur blockchain. Vous pourrez ensuite exécuter votre application Flash et mettre en ligne votre nouvelle blockchain.

Découvrez également comment créer une crypto-monnaie.

Comments (No)

Leave a Reply