Catégories
Présentations

Fonctionnement synthétique d’une Blockchain (part 4)

En cours d’écriture d’un sujet sur les NFTs, je me suis aperçu que je n’avais pas terminé la série que j’avais prévue sur la Blockchain et en particulier son fonctionnement. Ce billet correspond donc aux slides 9 à 14 de ma présentation au Meetup de Cotonou.

Part 1Part 2Part 3

Fonctionnement Blockchain simplifié

Introduction en vidéo, en anglais

Par exemple, 2 personnes interagissent sur une application, pour effectuer un paiement :

  1. La transaction, avec les références des intervenants, est ajoutée à un grand livre de transactions en ligne, horodatée, cryptée avec un code de sécurité digital (fonction de hachage cryptographiquehash) dans un format prédéfini.
  2. Le code de la transaction est envoyé vers le réseau distribué des utilisateurs (P2P, pair-à-pair), où il est confirmé sans compromettre les informations privées. Ceci élimine donc le recours à une autorité centrale.
  3. Une fois la transaction validée par plusieurs utilisateurs, elle apparait dans le grand livre de chacun sous la forme d’un enregistrement permanent et immuable, soit dans un bloc dédié ou dans un bloc plus large, selon la manière dont les blocs sont définis par l’application.
  4. L’information de la transaction étant enregistrée, elle est donc terminée.

Pour lire une description beaucoup plus détaillée en anglais : How does blockchain work in 7 steps — A clear and simple explanation (2018), qui prend comme référence un échange Bitcoin.

Dans l'absolu, toutes les blockchains ont le même type de fonctionnement, quelque soit leur usage ou destination. Cliquez pour tweeter

Remarques sur le fonctionnement

Les utilisateurs dans le réseau P2P qui reçoivent les transactions à valider sont nommés « nœuds » (nodes).

blockchain

Les validations sont effectuées selon des algorithmes connus (formules mathématiques majoritairement de type Proof of Work aujourd’hui – cf. ci-dessous), par des mineurs (miners) qui entrent en compétition (littéralement dans le cas du PoW) pour effectuer la validation, car ils sont rémunérés pour ce faire.

Une transaction Blockchain vérifiée va donc intégrer des données, qui peuvent être de type monnaie digitale (cryptomonnaie), contractuel (smart contract) ou théoriquement tout autre type d’information qui puisse tenir dans un bloc. Cliquez pour tweeter

Hachage cryptographique (hash)

Le hachage cryptographique, par exemple utilisé pour stocker de manière sécurisée les mots de passe d’un compte dans une application en ligne, est une formule mathématique complexe.

Elle permet, quelle que soit la quantité de données saisies en entrée (d’un mot à un texte entier), de générer une chaine unique de longueur fixe. Si je change ne serait-ce qu’un élément dans ma saisie, la chaine résultante est donc absolument différente. De même, 2 données différentes ne peuvent générer un résultat identique (pas de « collisions »).

Cette fonction est à « sens unique ». Ainsi, si je possède la chaine résultante, je n’ai aucun moyen de recréer les données qui ont servi à la générer.

Elle est aussi « déterministe » : si j’entre plusieurs fois les mêmes données, j’obtiens toujours le même résultat.

L’empreinte numérique (digest ou hash) ainsi générée sert donc à identifier les données incluses dans une blockchain et à créer le lien avec les blocs qui précédent et suivent.

Tester : SHA256 Hash Generator (utile pour générer un mot de passe en cas de besoin)

Cas des cryptomonnaies

Une monnaie digitale n’est en fait qu’une valeur d’échange (un jeton ou « token »), créée et stockée de manière électronique dans une blockchain, utilisant des techniques de cryptage pour contrôler la création d’unités monétaires et pour vérifier le transfert de fonds. Bitcoin est l’exemple le plus connu.

Une cryptomonnaie :

  • n’a pas de valeur intrinsèque (sauf exception comme les Stable Coins, elle n’a pas de cours d’échange basé sur un élément tangible comme l’or par exemple) et donc son cours dépend uniquement de l’offre et de la demande…
  • n’a pas de forme physique (pièces, billets…) et n’existe que via le réseau.

Sa disponibilité n’est pas déterminée par une banque centrale et son réseau est totalement décentralisé (en théorie).

Fonctionnement Proof of Work vs Proof of Stake

Pour valider un bloc, il convient d’obtenir un consensus authentifiant son existence. Il existe 2 méthodes principales actuellement qui font partie intégrante du fonctionnement d’une blockchain, le 1er (PoW) étant le plus répandu.

Fonctionnement POW vs POS
Image via BlockGeeks

Proof of Work (PoW) = Preuve de travail = être le 1er à résoudre une énigme mathématique pour être rémunéré.
Nécessite une puissance de calcul de plus en plus importante dans le temps (d’où l’apparition de « fermes » et d’ordinateurs ou composants dédiés, et un impact gigantesque en consommation électrique).

Proof of Stake (PoS) = Preuve d’enjeu ou de participation = affectation déterministe calculée sur des critères de quantité de jetons possédés.
Moins gourmand en énergie et pas de rémunération. C’est la personne qui a initié la transaction qui la finance, par un paiement de « frais » via des unités spécifiques (le « gas » pour Ethereum par exemple, mais pour l’instant cette blockchain utilise toujours le Proof of Work).

La blockchain Ethereum est par exemple actuellement basée sur des validations par PoW, mais dans sa version 2.0, passera sur PoS, permettant d’économiser la majeure partie de la consommation en énergie actuelle. Cette évolution offre théoriquement plus de rapidité de traitement et des frais moins élevés.

Pour en savoir plus (en anglais)


Voilà, c’était une version très simplifiée, et non exhaustive du fonctionnement théorique d’une blockchain. N’hésitez pas à commenter et à poser des questions dans les commentaires ou sur Twitter, mes DMs sont ouverts.

Le prochain billet traitera des Smart Contracts (contrats intelligents).
A suivre !

Licence
Catégories
Présentations

Usages (futurs…) pour la technologie Blockchain (part 3)

Venant de m’apercevoir que j’avais omis de terminer ma série Blockchain (usages ci-dessous), je reprends là où je m’étais arrêté.
D’autant qu’avec l’engouement actuel en Afrique pour les cryptomonnaies (dont Bitcoin), il me semble judicieux de remettre certaines pendules à l’heure… tout en restant simple.

Partie 1Partie 2Partie 4


Après avoir vu rapidement ce qu’était une blockchain, posons-nous maintenant la question des usages (théoriques) : à quoi ce ledger décentralisé peut-il bien servir ?

usages blockchain simple

Une Blockchain s’utilisera par exemple lorsque l’on a besoin d’un registre qui soit :

  • Immuable => information non modifiable, outil de base pour la désintermédiation (élimination des intermédiaires)
  • Crypté => pour sécuriser
  • Transparent => publique
  • Distribué => partagé entre les utilisateurs
  • Programmable => piloté par un ensemble de formules mathématiques et programmes informatiques (contrats intelligents  « smart contracts »)
  • Consensuel => partage « démocratique » de l’utilisation, de la validation (PoW, PoS…), de la vérification et des prises de décision

A noter : Il existe des blockchains publiques, des blockchains privées ou encore des blockchains de consortium.

Il faut donc faire très attention dans les projets présentés sur le type de blockchain utilisé et la gouvernance considérée…
Il existe aussi des projets (nombreux) qui ne sont que des pseudo-blockchains…

usages blockchain complexe

Une Blockchain peut s’utiliser en théorie dans tous les contextes où l’on a besoin de :

  • Traçabilité
  • Transparence
  • Vérifiabilité
  • Sécurité
  • Collaboration
  • Efficacité

Les Blockchains sont pour l’instant considérées comme l’un des blocs de base pour de nombreuses innovations et usages à venir, que ce soit dans les métiers de la banque ou de l’assurance, dans la gestion financière (prêts…), les chaines d’approvisionnement etc. Bien évidemment, si l’on peut en plus ajouter de l’Intelligence Artificielle derrière (AI), les potentiels sont encore plus grands.

A mon humble avis, le futur du web sera d’une manière ou d’une autre décentralisé et distribué, avec un minimum, voire plus, d’intermédiaires. Ainsi les DAOs, pour Decentralized Autonomous Organizations (Organisations Décentralisées Autonomes) pourraient un jour perturber la manière dont la gouvernance est conçue et appliquée aujourd’hui à tous les niveaux (en général, du haut vers le bas).

La première DAO qui a réussi ? Le Bitcoin bien sûr…

A suivre…

Et n’oubliez pas de commenter, faire toute remarque et critique, ici bien sûr ou via Twitter.

Catégories
Présentations

Ledger ou Grand Livre – Blockchain 101 (part 2)

Comme promis, voici une première séquence de commentaires associée à ma présentation Blockchain 101. Ce billet correspond aux slides 3 et 4, sur la notion de Grand Livre (ou Ledger) distribué.
J’ai fait l’impasse sur les 2 premières diapos – si vous souhaitez en savoir plus sur mon profil, visitez la page CV de ce blog.

Pour être clair d’entrée, je n’aspire pas à être ici exhaustif, mais à retranscrire le plus fidèlement possible les notes que j’avais prises pour l’intervention du Cotonou Meetup.

Par ailleurs, il ne s’agit pas du tout de parler de cryptomonnaies, d’investissements financiers… même si la notion est inévitablement associée, mais bien de s’intéresser à la technologie et aux protocoles sous-jacents. Par ailleurs, le ton, voire le contenu, paraitra peut-être à certains trop simpliste. Il s’agit ici d’initiation, pas d’un traité scientifique ! Et si d’aventure, j’ai commis quelques erreurs ou imprécisions qu’il convient de corriger, les commentaires sont ouverts ci-dessous.

#Blockchain Meetup" target="_blank">Blockchain 101 @ Cotonou Meetup from Didier J. MARY
Voir sur Slideshare

Derrière les monnaies digitales comme Bitcoin ou Ethereum, il y a une technologie que l’on nomme « Blockchain ». BTC est la première réalisation concrète, effective et à grande échelle de ce modèle, lancée en 2009 par une personne inconnue, ou un groupe d’individus, utilisant le pseudonyme de Satoshi Nakamoto.

Une Blockchain est une technologie de stockage numérique et de transmission d’informations en mode P2P (pair à pair) via un réseau de périphériques, téléphones, ordinateurs ou objets connectés par exemple.
Ses 3 caractéristiques principales sont d’être publique (sauf exceptions), transparente et sécurisée.

Une Blockchain est donc fondamentalement une base de données (database) ou un Grand Livre comme en comptabilité (ledger) :

  • qui contient des informations, des données (data),
  • distribuée entre ses utilisateurs en P2P et décentralisée (pas d’organe central/de tiers de confiance = banquier, assureur, notaire…),
  • gérée et maintenue par de multiples personnes, responsables en particulier de la validation des données (que l’on nomme les « mineurs »).

Exemple : Dans le cas d’une monnaie digitale (cryptomonnaie), la Blockchain contient la liste, c’est-à-dire l’historique, de tous les dépôts, transferts et retraits d’argent sur tous les comptes de tous les utilisateurs.

décentralisation - blockchain

A la différence d’un organisme central, une banque par exemple, qui contrôle la base de données, ici de multiples utilisateurs sont responsables de l’intégrité de l’ensemble du ledger :

  • Une transaction n’est inscrite que lorsque tous les utilisateurs responsables sont d’accord.
  • Chaque utilisateur responsable a une copie de tout et valide les opérations. Plus il y a d’utilisateurs, plus il est donc difficile de falsifier les opérations.
  • Pour limiter les irrégularités, il est demandé aux utilisateurs responsables de prouver qu’ils ont effectivement validé et ils sont en général rémunérés pour cela. Dans le cas de Bitcoin par exemple, il s’agit de résoudre un calcul mathématique complexe, qui sert de preuve du travail effectué (Proof of Work).
Pourquoi Blockchain ? Tout simplement parce que c'est effectivement une chaine de blocs (et que l'on utilise le terme anglais) ! Cliquez pour tweeter

Le ledger est composé de blocs, chaque bloc contenant une transaction ou plusieurs, chacun contenant des données cryptées.

Chaque bloc est numéroté, horodaté et connecté au bloc précédent (et suivant) par un lien/identifiant, permettant de tracer leurs relations, limitant ainsi, voire empêchant totalement en théorie, les modifications ou suppressions de données.

Un bloc n’est écrit que lorsqu’il est validé. Une fois fait, on  crée un nouveau bloc etc…

Bien garder en mémoire, que le temps de traitement d’un bloc dépend de la durée de sa validation effectuée par les utilisateurs responsables, puis de la diffusion de l’information sur le réseau des utilisateurs.

decentralized ledger
Voir « What is Blockchain Technology » (en anglais)
Les ledgers distribués peuvent être publics ou privés. La taille, structure, organisation et gouvernance d'une Blockchain dépendent des besoins. Cliquez pour tweeter

Une blockchain peut être constituée d’utilisateurs anonymes (sans permission – permissionless) où chacun a une copie du grand livre et participe indépendamment à la confirmation des transactions.

Une blockchain avec permission (permissioned) à l’inverse s’organise autour d’utilisateurs non-anonymes : il faut être autorisé à détenir une copie du grand livre et à participer à la validation.

L’un des plus gros problèmes à traiter lors de la mise en place d’une blockchain concerne sa gouvernance, c’est à dire la manière d’entretenir la confiance digitale globale de l’organisation autour du ledger : quel est le niveau de risque toléré dans la création/validation des transactions ?  Quelles autorisations donner ? Quelles authentifications demander ? etc.

Voilà, c’est la fin de cette deuxième partie. A suivre…
Et n’hésitez pas à interagir dans les commentaires ci-dessous !

IntroductionUsages d’une BlockchainFonctionnement synthétique