Qu’est-ce que la blockchain ?

Ces derniers temps, la technologie blockchain est devenue de plus en plus populaire sur Internet. Malheureusement, peu de gens comprennent ce que c’est.

La **blockchain** est l’œuvre d’un génie, connu sous le pseudonyme de Satoshi Nakamoto. Dans une publication de 2008, il a défini son invention comme un « système de paiement électronique de pair à pair ». Il voulait que le bitcoin fonctionne comme de l’argent liquide, de sorte que le système soit capable de transférer correctement des pièces numériques (sans les envoyer au mauvais portefeuille) et d’empêcher les doubles dépenses. Pour concrétiser le rêve de Nakamoto d’un système de paiement décentralisé, ces objectifs devaient être atteints sans l’intervention de tiers comme les banques.

Mais à quoi sert-elle ? À l’origine, une blockchain est une base de données distribuée utilisée pour maintenir une liste d’enregistrements en croissance continue, appelés blocs. Chaque bloc contient un horodatage et un lien vers un bloc précédent. Une blockchain est généralement gérée par un réseau de pair à pair qui adhère collectivement à un protocole pour valider de nouveaux blocs. Par nature, les blockchains sont intrinsèquement résistantes à la modification des données. Une fois enregistrées, les données d’un bloc donné ne peuvent pas être modifiées rétroactivement sans la modification de tous les blocs suivants et la collusion globale du réseau. Fonctionnellement, une blockchain peut servir de « registre ouvert et distribué qui peut enregistrer des transactions entre deux parties de manière efficace, vérifiable et permanente. Le registre lui-même peut également être programmé pour déclencher des transactions automatiquement », comme l’indique Wikipedia.

On peut aussi l’appeler une liste chaînée ou un puzzle. Chaque puzzle est attaché à un autre en validant le hachage du bloc précédent.

blockchain

Blockchain Bitcoin simplifiée

Une blockchain peut stocker des données sur des transactions bancaires et juridiques, sur des contrats, des votes, etc. Sa principale différence avec les bases de données classiques est la décentralisation. La chaîne (le registre) est stockée sur des centaines de milliers d’ordinateurs auxquels tout utilisateur a accès. Un tel système est plus difficile à pirater, à corrompre ou à perdre des données en cas de défaillance matérielle ou logicielle du serveur sur lequel la base de données est stockée. Cette technologie est fondamentale pour le réseau de paiement Bitcoin. Elle garantit la sécurité des informations sur les transactions financières entre les participants du réseau.

Quels sont les avantages de la blockchain ?

Une blockchain peut être perçue comme une sorte de superordinateur qui combine un certain nombre de nœuds sur lesquels vos données sont stockées en toute sécurité. L’aspect le plus précieux est qu’il est impossible de perdre ces données car elles sont conservées à jamais. Les données dans une blockchain ne sont pas seulement dans leur état final, mais dans tous les états précédents.

Il est presque impossible pour les pirates de pirater ce référentiel car chaque bloc suivant est lié au précédent. La chaîne fonctionne sur de nombreux ordinateurs. Ainsi, pirater une blockchain équivaut presque à tenter de tromper le réseau informatique mondial, ce qui est peu probable compte tenu de l’état actuel du développement technologique.

Pour la majorité des utilisateurs du réseau, le terme « blockchain » est unique en ce qu’il est associé au Bitcoin. Ces deux concepts sont loin d’être identiques, bien qu’ils soient étroitement liés : la technologie blockchain a été développée pour prendre en charge le Bitcoin. Personne ne peut contrôler son flux, et ouvrir un portefeuille Bitcoin est beaucoup plus facile que pour un compte bancaire. Aujourd’hui, en utilisant cette monnaie mystérieuse, vous pouvez acheter tout ce que vous voulez sur Internet. Les utilisateurs du réseau apprécient grandement l’anonymat et la transparence de cette cryptomonnaie. Outre le Bitcoin, il existe d’autres exemples de cryptomonnaies basées sur des blocs, comme l’Ethereum, apprécié par les propriétaires de petites blockchains privées.

Les avantages de la technologie blockchain la rendent demandée dans des domaines tels que les opérations bancaires, la médecine, la logistique, le droit ou la musique. Prenons l’exemple des musiciens. Malheureusement, avec le schéma traditionnel de l’édition musicale, la majeure partie des revenus va aux labels, et les compositeurs ne reçoivent que des miettes. L’utilisation de la blockchain dans le secteur de la musique permettrait à l’auteur de la chanson de la proposer en libre écoute, tout en établissant des contrats avec les personnes qui l’utilisent à des fins privées, par exemple dans une série télévisée.

La technologie blockchain vous permet de vous passer d’intermédiaires dans de nombreux domaines et d’effectuer diverses opérations P2P directement entre les deux parties. Par exemple, c’est avantageux pour ceux qui veulent engager un spécialiste, disons une nounou, un chauffeur ou un avocat, sans l’aide d’agences de recrutement. Dans ce cas, vous n’aurez pas à payer plus cher !

Mais il est peu probable que le développement rapide de cette technologie plaise aux grandes entreprises qui ont fait fortune dans la médiation. Qui sont-elles, ces intermédiaires ? Il y en a des milliers, parmi les plus connus Uber et Airbnb.

Les types de blockchain

Il existe deux principaux types d’organisation de blockchain : privée et publique.

Dans une blockchain privée, la création de blocs se fait de manière centralisée. Seuls les nœuds de confiance peuvent ajouter des blocs. Toute personne extérieure qui souhaite vérifier peut auditer et voir l’historique des modifications de la chaîne. Les blockchains privées peuvent facilement mettre à jour les fonctionnalités, c’est-à-dire surveiller le système du côté de l’entreprise.

Dans une blockchain publique, chaque utilisateur ayant la capacité d’effectuer des transactions peut tout lire à ce sujet. Dans ce cas, les transactions seront protégées par un mécanisme de vérification. Tous les membres du réseau, tels que les utilisateurs ordinaires, les développeurs, etc., peuvent contrôler les blockchains publiques. Les modifications malveillantes sont évitées en mettant à jour les protocoles. Par conséquent, le système crée des applications décentralisées.

Expérience de travail avec une blockchain

Notre équipe a trouvé intéressant de tester cette technologie innovante en entreprise. Le principal défi consistait à implémenter la technologie aussi simplement et rapidement que possible, ce qui est beaucoup plus facile avec les services de développement blockchain personnalisés.

Tâche : Créer un sondage sur appareils mobiles en utilisant la technologie blockchain.

Pour cette tâche, nous avons décidé d’utiliser une blockchain privée. Le centre de contrôle a été implémenté comme un backend sur Node.js.
La première étape logique consiste à établir une structure de bloc.

Ce dont nous avons besoin : le hachage actuel, le hachage du bloc précédent, l’index du bloc (numéro), les données contenant la question et les options de réponse, la réponse de l’utilisateur, l’heure, les données de l’utilisateur.

blockchain

Structure du bloc

Le hachage est destiné à préserver l’intégrité de la chaîne, donc chaque bloc doit être haché.

Pour le chiffrement, nous utilisons SHA256. Un serveur stocke la chaîne, qui doit à tout moment être validée pour son intégrité. Ceci est nécessaire lors de l’ajout d’un bloc. Nous vérifions l’intégrité du hachage précédent, comme indiqué sur le schéma. La chaîne la plus longue doit toujours être sélectionnée afin d’éviter tout conflit. Si un bloc passe la validation, il est alors ajouté à la chaîne. Sinon, une erreur se produit.

La deuxième chose importante à faire est d’organiser la synchronisation et la diffusion entre tous les participants au vote.

  • Lorsqu’un utilisateur se connecte au réseau via un websocket, il se base sur le dernier bloc
  • Lorsque vous créez un nouveau bloc, il est diffusé sur le réseau
  • Si un nœud voit un bloc, il l’ajoute à sa chaîne. Ou il supporte la chaîne pour compléter le bloc, à condition que son index soit supérieur à celui du bloc actuel

blockchainQuelques scénarios de communication typiques qui suivent lorsque les nœuds respectent le protocole décrit.[/post_em]
Le serveur peut consulter la chaîne, créer un nouveau bloc avec une réponse personnalisée, consulter les autres utilisateurs.

blockchain

Les principaux composants de NativeChain

De manière simple et rapide, nous avons implémenté le vote au sein de l’entreprise, mais la question s’est posée que chaque utilisateur pouvait voter un nombre illimité de fois. La solution à ce problème a été d’attribuer un identifiant unique à chaque utilisateur. Google Firebase nous a aidés en facilitant l’autorisation pour votre application. Cette plateforme prend en charge l’autorisation via les réseaux sociaux. En conséquence, la chaîne stocke les identifiants des utilisateurs ayant voté, ce qui élimine les votes répétés.

Nous avons créé un prototype à des fins d’information. L’un des avantages présumés de la blockchain est la décentralisation, mais cela ne nous a pas semblé être une solution définitive, nous avons donc décidé de tester. Certes, l’avantage qu’a chaque participant de conserver (ou de pouvoir conserver) une chaîne de modifications est indéniable, mais il peut encore être contourné, et nous en parlerons plus tard.

Décentralisation

Pour qu’un nouveau bloc soit ajouté à la chaîne, il doit être validé en vérifiant le hachage précédent. La validation est effectuée selon le protocole. Le protocole est créé par l’auteur du contrat (le début de la chaîne / le premier bloc).

Imaginez qu’il y ait 21 écoliers dans une classe (10 filles et 11 garçons), et le 1er septembre, ils décident de choisir le Président de l’école en utilisant une blockchain. Le professeur principal crée un contrat, dans notre cas, il lance un vote pour les candidats, et selon le protocole, le nouveau bloc est considéré comme valide si 51% des votants donnent une réponse positive. Les élèves commencent à voter, et à un moment donné, les garçons décident de falsifier les résultats du vote en faveur de leur candidat. Au moment de cette décision, 8 garçons, 6 filles et le professeur principal ont voté. Les garçons comprennent qu’ils perdent soit au vote, soit qu’ils se retrouvent au mieux à 50 % – 50 % par des moyens honnêtes. Ils décident de modifier la chaîne à partir du deuxième bloc afin que 15 blocs soient remplacés par des valeurs complètement différentes (qui leur sont avantageuses). La 7ème fille, lorsqu’elle donne sa voix, validera la chaîne, et en réponse, 8 garçons ne valideront pas son bloc. Et elle devra utiliser une nouvelle chaîne, et la caractéristique de la blockchain est qu’en cas de conflit, une chaîne valide est la plus longue. Ainsi, les garçons gagneront avec leur candidat.

blockchain

Exemple de choix de la chaîne ayant le plus grand nombre de blocs
C’est cependant un avantage de la blockchain : pour modifier la chaîne, il faudrait que la majorité des utilisateurs changent d’avis (ou atteignent le quota spécifié dans le protocole).

Par exemple, Joe souhaite devenir Président de l’école, et le vote a eu lieu de manière habituelle, toute la base de données étant stockée sur un serveur séparé. Joe demande à son frère, programmeur, de l’aider. Son frère pirate le serveur et modifie le résultat. Joe devient Président de l’école.

Si une blockchain avait été utilisée, Joe aurait dû demander aux autres garçons de l’aider à y parvenir. Et s’ils avaient refusé, Joe ne serait jamais devenu Président de l’école.

Conclusion

Après avoir utilisé cette technologie, nous avons conclu que la blockchain présente de nombreux écueils. Comme pour tout système, les règles doivent être établies pour tous les participants. L’introduction de la technologie nécessite une restructuration à grande échelle d’un système complexe comportant de nombreux participants, et chacun d’eux doit être prêt à prendre des risques et à supporter des dépenses.

L’absence de cadre législatif entraîne une incertitude dans diverses questions. Pour que la technologie gagne la confiance, elle doit répondre à des normes (publiques, par exemple). Pas de normes, pas de conformité. Malgré la décentralisation et l’absence de « tiers » attribués à la blockchain, le fonctionnement du système nécessite le consensus de ses participants sur de nombreuses questions. Dès le départ, chaque projet blockchain devrait développer un système de prise de décision qui nécessite le consentement de la majorité.

À propos de Redwerk

Redwerk est une équipe d’experts certifiés qui propose des services d’externalisation informatique de haute qualité aux entreprises qui visent un produit robuste, stable et impressionnant. Redwerk est une société de développement logiciel personnalisée, qui emploie des maîtres dans leur domaine avec une approche proactive pour livrer exactement ce que le client exige. Nous apprécions ceux qui nous font confiance, alors soyez l’un d’eux !

Références