Blockchain & Cryptomonnaie

https://coursblockchain.com

Version 2.0 - 2025

Soutenez notre travail, faites un don 🙏

Sommaire

  • Introduction
  • Blockchain
  • Transactions
  • Minage
  • Protocole Bitcoin
  • Portefeuilles Bitcoin
  • Cryptomonnaies
  • Blockchain & Entreprise

Vous appréciez ce cours ? Soutenez notre travail, faites un don 🙏

Introduction

  • Historique
  • Analogie

Bitcoin est une implémentation des propositions b-money de Wei Dai et Bitgold de Nick Szabo

https://bitcointalk.org/index.php?topic=342.msg4508#msg4508

Bitcoin Whitepaper

https://bitcoin.org/bitcoin.pdf

Satoshi Nakamoto

Anonyme

  • 18 août 2008 - Enregistrement du domaine bitcoin.org.
  • 31 octobre 2008 - Publication du whitepaper.
  • 3 janvier 2009 - Lancement du réseau Bitcoin.
  • 23 avril 2011 - Satoshi se retire du projet et le laisse en main de la communauté.

2012 - Explosion des cryptomonnaies

Introduction

  • Historique
  • Analogie

Analogie

Échange direct entre personnes d’une pomme physique

  • La pomme est passée physiquement des mains de Bob à celles d’Alice.
  • Aucun intermédiaire n’est intervenu pour valider et confirmer la transaction.
  • Bob n’est plus en possession de la pomme.
  • Alice est libre de donner la pomme à quelqu’un d’autre.

Échange direct entre personnes d’une pomme numérique

  • Comment s’assurer que Bob n’a pas conserver une copie numérique de la pomme donnée à Alice ?
  • Comment s’assurer que Bob n’a pas donné une copie de la pomme à quelqu’un d’autre ?
  • Double-spending problem.

Inscription des transactions de pommes numériques dans un livre de comptes

  • Une tierce personne (gestionnaire/greffier) est en charge d’inscrire toutes les transactions dans un livre de comptes.
  • Que se passe-t-il si le greffier en charge du livre de compte triche, et rajoute des transactions inexistantes au livre de comptes (John -> Bob) ?

Distribution du livre de comptes entre plusieurs personnes

  • Le livre de comptes est répliqué sur les ordinateurs de plusieurs personnes.
  • Chaque greffier enregistre les transactions de pommes numériques sur sa propre copie du livre de comptes.
  • Si un greffier triche sur son livre de comptes, les autres greffiers s’en rendront compte rapidement. La majorité fait foi !
  • 25 pommes numériques est donné aléatoirement à un des greffiers pour le récompenser de son travail et de son honnêteté .

Pomme Numérique vs Bitcoin

  • Une pomme numérique est un bitcoin.
  • Le livre de comptes est la blockchain.
  • Les greffiers sont les mineurs.
  • La récompense de 25 pommes correspond à l’émission de nouveaux bitcoins.
  • Le système global est le protocole Bitcoin.

Avec ce système, une échange de pommes numériques fonctionne comme un échange de pommes physiques.

Deux personnes peuvent s’échanger sans risque de fraude des pommes numériques directement sans passer par un intermédiaire (susceptible d’être corrompu).

Sommaire

  • Introduction
  • Blockchain
  • Transactions
  • Minage
  • Protocole Bitcoin
  • Portefeuilles Bitcoin
  • Cryptomonnaies
  • Blockchain & Entreprise

Vous appréciez ce cours ? Soutenez notre travail, faites un don 🙏

Blockchain

  • Nature
  • Propriétés
  • Structure

Nature de la blockchain

  • Structure de données.
  • Base de données.
  • Registre comptable.
  • Livre de comptes.

La blockchain est une base de données qui contient un historique horodaté de toutes les transactions réalisées.

Blockchain

  • Nature
  • Propriétés
  • Structure

Propriétés de la blockchain

  • Publique.
  • Décentralisée.
  • Inaltérable.

Publique - Blockchain Explorer

https://mempool.space/fr/blocks

Décentralisée

Aucun contrôle centralisé

Tous les acteurs du réseau (noeuds) stockent et partagent une copie actualisée de la blockchain.

Inaltérable

  • Les transactions enregistrées ne peuvent pas être modifiées.
  • Seulement les mineurs peuvent y enregistrer de nouvelles transactions.
  • Le reste des mortels peut seulement lire et consulter les transactions.

Blockchain

  • Nature
  • Propriétés
  • Structure

Structure de la blockchain

Blockchain = Chaîne de blocs

Un bloc = Une page d’un livre de comptes

Fonction de hachage

Une fonction de hachage est une opération cryptographique qui convertit une donnée de taille arbitraire en une empreinte (hash) de taille fixe.

Sortie = Hash = Empreinte = Digest

Propriétés de la fonction de hachage

  • Déterministe.
  • Non réversible.
  • Imprévisible.
  • Résistante aux collisions.

Déterministe

Une même entrée donne toujours une même empreinte de sortie.

Non réversible

Etant donné une empreinte de sortie, il est impossible de reconstruire le message d’entrée.

Imprévisible

Un petit changement dans le message d’entrée change complètement l'empreinte de sortie.

Résistante aux collisions

Une même empreinte ne peut pas correspondre à deux messages d’entrée distincts.

Chaque entrée possède sa propre empreinte unique.

Bloc & Hachage

Tentative de fraude

Validité du livre de comptes

Que se passe-t-il si la page 40 d’un livre de compte est déchirée et remplacée par une nouvelle page 40 contenant d’autres transactions ?

  • Les pages 39, 40, 41…seront toujours présentes.
  • L’intégrité du livre reste intacte.

Validité de la blockchain

Que se passe-t-il si on modifie les transactions d’un bloc ?

  • L’empreinte du bloc est modifiée.
  • Le bloc suivant fait référence à une empreinte inexistante.
  • L’intégrité de la blockchain est perdue.
  • La fraude est détectée immédiatement.

C’est pour cette raison que les blocs sont identifiés par leur empreinte (hash) et non pas par leur numéro de bloc.

Audit de la blockchain

  • Publique: la validité de l’empreinte d’un bloc peut être calculée et vérifiée par n’importe qui.
  • Distribuée: l’empreinte d’un bloc peut être comparée avec celle d’une autre copie de la blockchain résidant sur un autre ordinateur du réseau.
  • Inaltérable: toute modification du contenu (transaction) d’un bloc modifie son empreinte. La blockchain est sécurisée cryptographiquement: la référence à l’empreinte du bloc précédent garantit l'authenticité de l’historique des transactions.

Dès qu’une transaction est ajoutée à la blockchain, elle ne peut plus être modifiée ni éliminée.

On peut avoir une confiance totale dans la validité des transactions enregistrées dans la blockchain.

On a une garantie sur la consistance et l’authenticité de l’historique des transactions.

Algorithmes de hachage

  • MD5 (stockage et vérification de mots de passe).
  • SHA-256 (Secure Hash Algorithm 256):
    • Génère des empreintes de 256 bits = 32 bytes = 64 caractères en format hexadécimal (blockchain bitcoin).
  • ...

Les empreintes (hashes) constituent la particularité essentielle du modèle sécuritaire de la blockchain.

Sommaire

  • Introduction
  • Blockchain
  • Transactions
  • Minage
  • Protocole Bitcoin
  • Portefeuilles Bitcoin
  • Cryptomonnaies
  • Blockchain & Entreprise

Vous appréciez ce cours ? Soutenez notre travail, faites un don 🙏

Transactions

  • Merkle Tree
  • Clé privée & Clé publique
  • Adresse
  • Signature
  • UTXO
  • Anatomie

Merkle Tree

Transactions

  • Merkle Tree
  • Clé privée & Clé publique
  • Adresse
  • Signature
  • UTXO
  • Anatomie

Création d'une clé privée et d'une clé publique

Cryptographie asymétrique

Elliptic Curve Digital Signature Algorithm (ECDSA)

Clé privée vs Clé publique

  • Clé privée: un nombre secret unique généré aléatoirement.
  • Clé publique: un nombre unique dérivé mathématiquement de la clé privée qui n’a pas besoin d’être secret.
  • Exemple de clé privée: 14c4e1f3be9e2fef3e0648ab19cbebfb481917e871f78953d46edec300e90636
  • Exemple de clé publique: 0412086ffc6fc7d3aa1900450e4aef1af5eecc03311aca5b35604b3f69d8cfc40924a0e2ea3ed24e1c4efdd83df1f26bd32d757518092c66d61596610bf4399026

Propriétés des clés

Facile de générer une clé publique à partir d’une clé privée.
En pratique impossible de produire une clé privée à partir d’une clé publique.

  • Une clé publique est générée (dérivée) à partir d’une clé privée.
  • Une clé privée ne peut pas être reconstituée à partir d’une clé publique.
  • Une clé privée est l’empreinte SHA-256 d’un nombre aléatoire compris en et (~ ) (~ atomes dans l’Univers observable).
  • Les transactions en bitcoins sont des messages signés avec une clé privée.
  • Quiconque connaît votre clé privée peut voler vos fonds.
  • Les clés privées sont portables.

Sécurité mathématique d'une clé privée

Est-il possible de deviner la clé privée de quelque'un pour voler ses bitcoins ?

Expérience de pensée

Imaginons un super-ordinateur qui peut générer 1 milliard de clés privées par seconde (attaque en force brute).

  • 60 milliards de clés privées par minute.
  • 3'600 milliards de clés privées par heure.
  • 86'400 milliards de clés privées par jour.
  • 31'536'000 milliards de clés privées par année ().

Pour découvrir toutes les clés privées possibles, un tel super-ordinateur prendra ~ années (l'Univers est né il y a environ années) !

Sécurité physique d'une clé privée

Les lois physiques de la thermodynamique ne permettent pas de construire un super-ordinateur suffisamment puissant qui permettrait d’obtenir la clé privée à partir de sa clé publique…il n’y a pas assez d’énergie dans notre système solaire pour construire une telle machine.

Les clés privées (bitcoins) sont sécurisés par les lois de l’Univers.

Peut-être qu’un futur ordinateur quantique sera capable un jour de reconstituer la clé privée à partir de la clé publique ou de générer l'ensemble des clés privées en quelques secondes au moyen d'une attaque en force brute...

Transactions

  • Merkle Tree
  • Clé privée & Clé publique
  • Adresse
  • Signature
  • UTXO
  • Anatomie

Adresse

Une adresse est un identifiant unique vers lequel on peut envoyer des bitcoins.

Une adresse peut être considérée comme l'équivalent d'un numéro de compte bancaire IBAN ou d’une adresse email.

  • Adresses Legacy (P2PKH = Pay To Public Key Hash): 13tcP4YdLsJb5ExUAWHY5tJiVTys1zSsQ9
  • Adresses Nested Segwit (P2SH = Pay To Script Hash): 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
  • Adresses Native Segwit (Bech32/P2WPKH = Pay To Witness Public Key Hash): bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
  • Adresses Taproot (P2TR = Pay To Taproot): bc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3297

Génération d’une adresse

  • Clé Privée: DE7B5C18191D48465D288FBC80CFBBA64808655521EB8E1E2C480FC2B2E9828E
  • Clé Publique: 049A4148475B9641A807CB52098125C44658652BF244A18850734290707FA258651E010B82DE38F866147EB5B11D909708FF1C3EC8819BBEC0C0CDC9B828BD04AA
  • Adresse: 18G6xQ1Pb7A91mXnoEbmMUxEFUMNMtm6zD

Propriétés d’une adresse

  • Une adresse est l’empreinte d’une clé publique (HASH160 = double hash SHA-256 + RIPEMD160).
  • Une adresse est une autre représentation (plus courte) de la clé publique.
  • Il existe (~ ) adresses Bitcoin possibles (~ grains de sable sur Terre).
  • Est-il possible que deux personnes génèrent la même adresse ? Ce n’est en théorie pas impossible, mais en pratique la probabilité est quasi nulle.

Analogie

  • Clé publique / Adresse ⇔ Numéro de compte bancaire IBAN (public).
  • Clé privée ⇔ Mot de passe (secret).

Transactions

  • Merkle Tree
  • Clé privée & Clé publique
  • Adresse
  • Signature
  • UTXO
  • Anatomie

Clés & Signature

  • Une signature sert à démontrer que vous possédez la clé privée correspondant à une clé publique (adresse).
  • Dans le contexte d’une transaction Bitcoin, la signature prouve que vous êtes le détenteur des bitcoins que vous désirez envoyer et qu’ils proviennent d’une adresse en votre possession.
  • Une signature est générée au moyen d’ECDSA.

Usage des clés et des adresses

  • Pour recevoir des bitcoins, vous devez communiquer votre adresse (clé publique) à la personne qui va vous les envoyer.
  • Pour envoyer des bitcoins, vous devez signer votre transaction avec votre clé privée.
  • Les portefeuilles Bitcoin gèrent la création des clés+adresses et signent les transactions automatiquement.

Transaction: Autorisation & Validation

Création et vérification d'une signature

C'est l'algorithme de cryptographie ECDSA qui se charge de réaliser la création et vérification des signatures.

Création Signature

Une signature numérique est consitutée du hash des données de la transaction signé avec le clé privée en employant ECDSA.

digital signature = transaction data + private key

Vérification Signature

verification = digital signature + transaction data + public key

Pseudo-anonymat

  • Le principe de cryptographie asymétrique ECDSA intervient uniquement dans la création des paires de clés privées et publiques ainsi que lors de la création et vérification de la signature d'une transaction.
  • Le contenu des transactions en bitcoin n'est en lui-même pas occulté ni encrypté.
  • Les transactions font références à des montants et des adresses qui sont visibles dans la blockchain.
  • Une adresse bitcoin est anonyme, mais n’est pas privée.
  • Il existe certaines cryptomonnaies qui garantissent un anonymat total au moyen de techniques d'encryptage des transactions.

Transactions et adresses sur la blockchain

Source

Transactions

  • Merkle Tree
  • Clé privée & Clé publique
  • Adresse
  • Signature
  • UTXO
  • Anatomie

https://bitcoin.org/bitcoin.pdf

Transaction en cash

UTXO - Unspent Transaction Output

Dépôt de 0.9 BTC en 1 transaction.

1 UTXO

Dépôt de 0.9 BTC en 9 transactions.

9 UTXO

Si vous possédez des bitcoins, vous possédez en réalité des UTXOs.

UTXO - Cycle de vie

Les UTXOs sont les outputs (sorties) des transactions passées en bitcoin, qui peuvent alors être utilisées comme inputs (entrées) dans les transactions futures en bitcoin.

Cash vs UTXOs - Similarités

Si Bob veut transférer $10 à Alice, il peut le faire en lui remettant un billet de $10:

  • Bob prend un billet de $10 (input).
  • Bob donne le billet de $10 à Alice (output).

Si Bob veut transférer 0.1 BTC à Alice, il peut le faire en créant une transaction:

  • Bob sélectionne un de ses UTXOs qu'il possède pour une valeur de 0.1 BTC (input).
  • Bob désigne Alice comme destinataire de la transaction de 0.1 BTC (output).

Cash vs UTXOs - Différences

Avec l'argent physique, le billet de $10 que Bob a pris (input) est le même objet physique que le billet de $10 qu'il remet à Alice (output), et ce billet de $10 peut continuer à être dépensé et re-dépensé encore et encore.

Par contre, l'UTXO de valeur 0.1 BTC que Bob a sélectionné (input) est complètement désactivé dès lors qu'il est transféré à l'adresse d'Alice ! À sa place, un tout nouveau UTXO de valeur 0.1 BTC (output) est créé et attribué à Alice.

En conséquence chaque UTXO peut être dépensé une seule fois (Spent Transaction Output).

Transaction & UTXO - Exemple

Transaction dans laquelle Bob transfère à Alice 1.75 BTC.

Bob paie 1.75 BTC à Alice et Bob reçoit en retour 0.049 BTC comme change. Les 0.001 BTC restant sont les frais de transaction.

Transaction & UTXO - Résumé

  • Les UTXO présents dans la blockchain sont utilisés comme inputs pour construire de nouvelles transactions. Un input est une référence à un UTXO d’une transaction précédente.
  • Un UTXO doit être consommé intégralement par un input lors d’une transaction (retour du change possible). Les UTXOs ne peuvent pas être dèpensés partiellement.
  • Une fois dépensé dans une transaction, un UTXO ne peut plus être utilisé (Spent Transaction Output), il est déshabilité.
  • Une transaction est valide uniquement si ses inputs proviennent d’un ou plusieurs UTXOs.
  • La somme des inputs doit impérativement être égale à la somme des outputs (plus les frais de transaction destinés au mineur).

Ces règles sont une garantie qu’un utilisateur ne tente pas d’envoyer des bitcoins qui ont déjà été dépensés (double spending).

Tout le travail d'assemblage d'une transaction et de vérification de la validité des inputs et des outputs est automatisé par le logiciel de votre portefeuille Bitcoin.

Transaction & UTXO sur la blockchain

Source

Fonction d'une transaction

Une transaction prend des UTXOs en inputs et crée de nouveaux outputs sous forme d'UTXOs qui pourront postérieurement être dépensé dans les inputs d'une nouvelle transaction.

Adresse & UTXO

La balance totale d’une adresse correspond à la somme des montants de chaque UTXO associé à cette adresse.

balance adresse BTC = ∑ balances UTXOs

balance portefeuille BTC = ∑ balances adresses

Bitcoin & UTXO

  • Les UTXOs sont comme des "morceaux" de bitcoin.
  • Les UTXOs sont simplement des valeurs liées à des adresses sur la blockchain. Ainsi, si vous "possédez des bitcoins", cela signifie que vous possédez les clés privées qui peuvent déverrouiller des UTXOs spécifiques à partir d'adresses et les utiliser comme inputs dans des transactions.
  • Étant donné que les UTXOs sont inactivés dés qu'ils ont été dépensés, on peut considérer que tous les bitcoins en circulation constituent l'ensemble des UTXOs qui sont "encore en vie". C'est ce qu'on appelle l'UTXO set, qui est stocké dans l'ensemble des copies de la blockchain.
  • Les UTXOs sont le lieu de vie des bitcoins dans la blockchain.
  • Les UTXOs permettent d'utiliser les bitcoins comme une monnaie électronique sous forme cash.

Unités

Les montants des outputs des transactions sont désignés en satoshi.

Transactions

  • Merkle Tree
  • Clé privée & Clé publique
  • Adresse
  • Signature
  • UTXO
  • Anatomie

Anatomie d’une transaction

Transaction ID

Identifiant de transaction = Empreinte (Hash)

b6c889fd32f1dced3b0920cdbe4ddb7f17502996f05d36ddb622364659b5bb38

Transaction ID sur la blockchain

Source

Anatomie d’une transaction

Sommaire

  • Introduction
  • Blockchain
  • Transactions
  • Minage
  • Protocole Bitcoin
  • Portefeuilles Bitcoin
  • Cryptomonnaies
  • Blockchain & Entreprise

Vous appréciez ce cours ? Soutenez notre travail, faites un don 🙏

Minage

  • Noeuds
  • Preuve de Travail
  • Récompense
  • Difficulté
  • Block Time
  • Sécurité

Transactions & Noeuds

Toute transaction nouvellement crée par un portefeuille est diffusée vers les noeuds du réseau Bitcoin pour validation.

La validation par les noeuds consiste à s'assurer que les transactions suivent correctement les règles établies dans le protocole Bitcoin (signature, UTXO - double spending, etc...).

2 types de noeuds:

  • Full Nodes.
  • Mining Nodes (mineurs).

Full Nodes

  • Bookkeeper: maintiennent une copie locale actualisée de la blockchain.
  • Bootstrapping: fournissent une copie de la blockchain aux nouveaux noeuds qui se connectent au réseau.
  • Validation: vérifient la validité des nouvelles transactions (signatures, UTXO - double spending, etc...) et celle des nouveaux blocs (block hash), et rejette les transactions et blocs non valides.
  • Relais: relayent les nouvelles transactions et blocs vers et depuis d’autres noeuds.
  • Consensus: imposent que les mineurs suivent les règles du jeu (protocole).
  • Confidentialité: l'utilisation de son propre noeud connecté à son portefeuille garantit qu'une adresse générée ou transaction envoyée par le portefeuille soit pseudo-anonyme.

Mining Nodes

  • Réalisent les mêmes tâches qu’un full node.
  • Créent les nouveaux blocs qui s'ajoutent à la blockchain (mineur ou hasher).
  • Permettent l’émission de nouveaux bitcoins.

Cette fonction du mineur qui consiste à créer de nouveaux blocs en y insérant les nouvelles transactions s'appelle la Preuve de Travail.

Full Node vs Mining Node

  • Un full node est un client.
  • Le full node envoie les transactions de son propriétaire aux mining nodes (ses prestataires) et ratifie les résultats de ceux-ci.
  • Fonction d'audit des transactions.
  • Le rôle d'un full node est d'assurer la décentralisation, résilience et synchronisation du réseau (copie locale de la blockchain et vérification locale des transactions et blocs).
  • Acte altruiste et volontaire.
  • Un mining node est un prestataire de services.
  • Le mineur accepte les transactions provenant des full nodes (ses clients), les certifie en les ajoutant à un nouveau bloc et se fait payer.
  • Fonction de consolidation (settlement) des transactions.
  • Le rôle d'un mining node est d'assurer la sécurité du réseau (création du hash des nouveaux blocs).
  • Acte rémunérateur.

Minage

  • Noeuds
  • Preuve de Travail
  • Récompense
  • Difficulté
  • Block Time
  • Sécurité

Preuve de Travail

Proof-of-Work (PoW)

  • Le rôle du mineur est de valider et empaqueter les nouvelles transactions au sein d’un nouveau bloc.
  • Pour ce faire, il génère une empreinte (hash) du nouveau bloc qui doit satisfaire certaines règles et conditions (puzzle cryptographique).
  • Si l’empreinte générée du nouveau bloc satisfait les règles et conditions établies, il est ajouté à la blockchain locale du mineur.
  • Le bloc est ensuite propagé vers les autres noeuds du réseau pour ratification et qui à leur tour l'ajouteront à leur propre blockchain (consensus).
  • En récompense du travail réalisé, le mineur qui a créé le nouveau bloc est rémunéré en bitcoins (nouvelle émission monétaire réalisée par le protocole).

Emprunte d'un bloc (Hash)

Puzzle cryptographique

Les mineurs sont mis en compétition pour calculer l’empreinte du nouveau bloc.

L’empreinte du nouveau bloc doit être plus petite ou égale à une valeur cible (target) pour que le bloc soit considéré comme valide et puisse être ajouté à la blockchain.

Nonce (Magic number)

Number used only Once

  • Le nonce est un nombre à usage unique.
  • Chaque valeur du nonce produit une empreinte du bloc complètement différente.
  • Le mineur n’a aucun moyen de prédire quel nonce va produire l’empreinte recherchée satisfaisant la valeur cible (target).
  • Si l’empreinte générée par le mineur ne satisfait pas les conditions requises (elle est plus grande que la valeur cible), celui-ci incrémente le nonce et recalcule une nouvelle empreinte du bloc.
  • Il doit tester différents nonce jusqu’à qu’il trouve une empreinte satisfaisant la valeur cible.

Solution du puzzle cryptographique

  • Fondamentalement le processus de minage (preuve de travail) consiste à trouver un nombre aléatoire, le nonce.
  • Le premier mineur qui résout le puzzle cryptographique en générant une empreinte du bloc plus petite ou égale à la valeur cible devient le gagnant du concours.
  • Le mineur vainqueur peut ajouter le nouveau bloc à sa blockchain et le soumettre au réseau afin qu’il soit ratifié et ajouté à la blockchain de chaque noeud (full node + les autres mining nodes).
  • La même compétition entre mineurs se répète pour la création du prochain bloc…

Vérification du puzzle cryptographique

On peut imaginer que le réseau Bitcoin fonctionne en assemblant plusieurs pièces d'un puzzle. Les mineurs seraient les personnes qui feraient le travail pour assembler le puzzle, et les noeuds (full nodes) regarderaient le puzzle terminé et vérifieraient qu'ils ont été assemblés correctement.

Bien que la solution du puzzle cryptographique (le hash du nouveau bloc) soit difficile à trouver (preuve de travail) par les mineurs, une fois découverte la solution (le hash du nouveau bloc) est facilement vérifiable par tous les noeuds (full nodes) du réseau.

Minage

  • Noeuds
  • Preuve de Travail
  • Récompense
  • Difficulté
  • Block Time
  • Sécurité

Récompense de bloc

  • Le mineur qui génère un nouveau bloc est récompensé actuellement avec 3.125 nouveaux bitcoins (block reward) => Nouvelle émission monétaire toutes les 10 minutes.
  • On dit qu’il a miné des bitcoins.
  • Le mineur collecte également les commissions associées aux transactions incluse dans le bloc (transaction fees).

Transaction Coinbase

  • La transaction coinbase est la première transaction que le mineur ajoute à son bloc.
  • Elle sert à rémunérer en bitcoins (3.125 BTC actuellement) le mineur pour la travail (calcul du hash) réalisé pour la création du bloc.
  • Elle a pour objectif d’envoyer à l’adresse du mineur les nouveaux bitcoins minés qui sont automatiquement émis par le protocole.
  • C’est une transaction spéciale qui ne contient pas d’input (ne consomme pas d’UTXO).

Commissions (Fees)

  • Une transaction peut comporter (facultatif) un paiement additionnel sous forme de commission (transaction fee).
  • Généralement les portefeuilles calculent automatiquement les commissions en fonction du nombre d’inputs et d’outputs utilisés dans la transaction.
  • Les commissions font partie de la récompense distribuée par le protocole au mineur gagnant qui a créé le nouveau bloc.
  • Chaque mineur qui travaille à résoudre l’empreinte d’un bloc a l’option de choisir les transactions en attente de validation à inclure dans son bloc.
  • Lors de la création du bloc, un mineur est donc incité à privilégier les transactions incluant des commissions élevées (taille max d’un bloc: 1MB -> 2MB).

Halving

  • La récompense de minage est divisée par deux (halving) tous les 210’000 blocs (~ 4 ans).
  • Le protocole Bitcoin définit une émission totale maximum de 21 millions de bitcoins qui sera atteinte aux alentours de l'année 2140.
  • Depuis le lancement du réseau Bitcoin jusqu'à aujourd'hui, environ 19,8 millions de bitcoins ont été distribués aux mineurs. C'est la masse monétaire actuelle de tous les bitcoins qui sont en circulation (~ 94% des 21 millions de bitcoins).
  • Une quantité indéterminée de ces bitcoins en circulation est perdue à tout jamais (perte de la clé privée).
  • Une fois les 21 millions de bitcoins entièrement minés et distribués, les mineurs seront récompensés uniquement par les commissions (transaction fees) !

Halving vs Récompense

Minage

  • Noeuds
  • Preuve de Travail
  • Récompense
  • Difficulté
  • Block Time
  • Sécurité

Difficulté

  • En soumettant des blocs valides, les mineurs participent à la sécurisation du réseau.
  • Afin d’éviter que des mineurs malhonnêtes s’empare du réseau à moindre frais et soumettent des blocs non valides, le minage doit comporter un coût financier pour le mineur.
  • Le minage doit être une opération coûteuse en ressources informatiques, calcul et énergie électrique pour inciter les mineurs à agir honnêtement.
  • La difficulté de minage est une mesure qui indique le niveau de difficulté de travail requis (preuve de travail) pour trouver une empreinte plus petite que la valeur cible (target).

Ajustement de la difficulté

  • Si la difficulté augmente, le target est diminué => plus difficile de trouver le hash d’un bloc.
  • Si la difficulté diminue, le target est augmenté => plus facile de trouver le hash d’un bloc.
  • le target est recalculé tous les 2016 blocs (~ 2 semaines) par tous les noeuds du réseau.
  • La notion de difficulté assure que les blocs de transactions sont ajoutés à la blockchain à intervalles réguliers (en moyenne chaque 10 minutes), même si de nouveaux mineurs rejoignent ou se retirent du réseau.
  • L’objectif est de maintenir une création statistiquement constante de nouveaux bitcoins (en moyenne chaque 10 minutes) indépendamment de la quantité de puissance de calcul délivrée par les mineurs.

Difficulté vs Taux de Hachage (Hashrate)

Les mineurs testent des millions d’empreintes (hash) par seconde avec des nonce différents pour trouver la bonne empreinte satisfaisant le target.

Hashrate du réseau Bitcoin = Nombre de hash calculé par seconde par l’ensemble des mineurs

  • Plus il y a de mineurs.
  • Plus il y a de puissance de calcul à disposition.
  • Plus le hashrate augmente.
  • Plus la difficulté va s'ajuster vers le haut et le target diminuer.
  • Plus il est difficile pour un mineur individuel de trouver une nouvelle empreinte d’un bloc satisfaisant la condition du target (plus petite que la valeur cible).

Evolution du hashrate

https://mempool.space/graphs/mining/hashrate-difficulty

937’000’000’000’000’000’000 H/s = 937 EH/s = 937 Trillions de hash/seconde !

Hardware de minage

CPU

Processeur d’un ordinateur conventionnel, hardware généraliste. Peu performant en terme de hashrate et consommation énergétique.

GPU

Carte Graphique d’un ordinateur de gamer.

FPGA (Field-Programmable Gate Array)

Hardware reprogrammable et pas cher à fabriquer.

ASIC (Application-Specific Integrated Circuits)

Hardware spécialisé non reprogrammable. Très performant en terme de hashrate et consommation énergétique.

~ 200 TH/s = 200’000’000’000’000 H/s = 200 Billions de hash/seconde.

ASIC

Ferme de minage

Minage

  • Noeuds
  • Preuve de Travail
  • Récompense
  • Difficulté
  • Block Time
  • Sécurité

Block Time

  • On appelle block time le temps moyen écoulé entre la création de deux blocs successifs.
  • C'est in fine le temps moyen que passe un mineur pour trouver un nonce permettant de générer une empreinte valide d'un nouveau bloc.
  • L’ajustement de la difficulté en fonction du hashrate garantit qu’un nouveau bloc est créé par un mineur en moyenne chaque 10 minutes.

Pourquoi un block time de 10 minutes ?

Compromis qui vise à réduire et limiter:

  • L’utilisation de la bande passante du réseau.
  • La charge de travail de vérification et ratification des nouveaux blocs par les noeuds.

L'idée est de ne pas innonder en permanence le réseau avec des nouveaux blocs.

Confirmation des transactions

Lorsqu'une transaction est inculse dans un nouveau bloc, on dit qu'elle confirmée.

Mempool

Les nouvelles transactions soumises au réseau qui ont été validées par les noeuds (full nodes et mining nodes) mais pas encore confirmées (pas encore incluse dans un bloc) s’accumulent dans le mempool (memory pool) des noeuds en attendant d’être ajoutée à un nouveau bloc par un mineur.

Mempool = Salle d’attente des nouvelles transactions

Mempool & Commissions

https://jochen-hoenicke.de/queue/

Minage

  • Noeuds
  • Preuve de Travail
  • Récompense
  • Difficulté
  • Block Time
  • Sécurité

Irréversibilité des transactions

Toute transaction est finale

Une fois la transaction ajoutée au nouveau bloc et donc confirmée, elle est presque irréversible.

2 cas de figure dans lesquels une transaction confirmée dans un bloc peut changer d'état et redevenir non-confirmée:

  1. Bloc Orphelin.
  2. Attaque à 51%.

Bloc Orphelin

  • 2 mineurs trouvent un bloc N+2 avec un hash valide en même temps et le soumettent au réseau.
  • Un des deux blocs candidats est diffusé et accepté par les noeuds du réseau plus rapidement que l’autre.
  • Les mineurs commencent à travailler à la création du bloc suivant N+3.
  • La chaîne la plus longue est considérée par le réseau comme étant valide et le bloc orphelin est abandonné.

Bloc Orphelin & Transaction

  • Un noeud du réseau (utilisateur) peut voir temporairement une transaction incluse dans un bloc comme acceptée (1 confirmation).
  • Et quelques minutes plus tard se rallier à la blockchain la plus longue et ne plus voir cette transaction comme confirmée car pas encore incluse dans le bloc de la chaîne la plus longue (0 confirmation).
  • Rappel: les mineurs sont libres de choisir les transactions à ajouter à leur bloc parmi celles en attente dans le mempool tout en respectant la taille maximale du bloc à 2 MB.

Attaque à 51 %

  • Un mineur possèdant plus de 50% du hashrate du réseau a une probabilité plus élevée de miner les nouveaux blocs.
  • Il peut potentiellement manipuler la création des nouveaux blocs à son avantage et réaliser un double spending (dépenser deux fois les mêmes UTXOs).
  • La quantité de hashrate requise pour effectuer une telle attaque est telle qu'elle rend cette attaque extrêmement onéreuse et improbable.

Chaîne la plus longue

Il est recommandé d’attendre 6 confirmations (~ 1 heure = 6 blocs x 10 minutes) pour considérer une transaction comme irréversible.

  • Garantit que la transaction est enregistrée sur la chaîne la plus longue (celle qui cumule le plus de hashrate) et n'est pas incluse dans un bloc orphelin d'une chaîne plus courte.
  • Garantit la non-réalisation pratique d’une attaque à 51% par un mineur malhonnête.

Mineurs & Sécurité

  • Les mineurs perçoivent un avantage financier (récompense du bloc) pour agir honnêtement.
  • Le coût économique de brûler de l’énergie (électricité) est la preuve que les mineurs ont attestés par leur travail le contenu du bloc. La Preuve de Travail est une preuve d’avoir consommé de l’énergie.
  • Le degré d’inaltérabilité de la blockchain est directement proportionnel à la quantité d’énergie (hashrate) que les mineurs consomment.
  • Non-viabilité financière en terme de coût énergétique de créer des blocs non-valides qui seront automatiquement rejetés et ignorés par le reste des noeuds du réseaux (full nodes).
  • Incitation pour les mineurs à agir honnêtement (créer des blocs avec une empreinte valide) plutôt que de tricher et être puni par le réseau.
  • En soumettant au réseau (full nodes) pour vérification et ratification des blocs valides à ajouter à la blockchain, les mineurs participent à la sécurisation du réseau.

Entête d'un bloc

Full Nodes & Vérification

Les full nodes vérifient que:

  • L'empreinte de chaque bloc créé est valide.
  • Chaque bloc est enchaîné correctement à l'empreinte du bloc précédent.
  • Chaque bloc a été créé en accord avec le niveau de difficulté établi.
  • La première transaction de chaque bloc est un transaction de type coinbase.
  • La signature des transactions incluses dans les blocs est valide => Personne n’a dépensé des bitcoins (UTXOs) d'une adresse sans posséder la clé privée correspondante.
  • L'empreinte du merkle root de chaque bloc a été construite correctement à partir des empreintes des transactions incluse dans le blocs.
  • Personne n’a dépensé deux fois les mêmes bitcoins (UTXO déjà consommé - double spending).
  • Les transactions et blocs reçus sont valides de façon générale au regard des règles prédéfinies dans le protocole (consensus).
  • Les full nodes participent à la décentralisation du réseau.

Modèle sécuritaire Trustless

  • Bitcoin n’a pas de leader, pas de CEO, pas d’employé, pas de quartier général, pas de centre d’opération, pas de gouvernement, pas de propriété intellectuelle,...qui sont toutes des vulnérabilités potentielles...Bitcoin n'a pas de régulateur, mais il a des règles !
  • Bitcoin possède un modèle sécuritaire automatisé qui ne demande pas d’intervention d'une autorité centralisée externe.
  • La force du protocole Bitcoin est le faible degré de confiance qu’on a besoin de mettre dans les autres acteurs du réseau.
  • Le protocole Bitcoin est qualifié de trustless parce que tout y est vérifiable par soi-même, on n'a plus besoin de déposer sa confiance dans un tiers.
  • Un consensus s'établit entre la majorité des noeuds du réseau sur la version valide de la blockchain.
  • En éliminant les vulnérabilités externes, Bitcoin a pour objectif d’être inarrêtable, incontrôlable, incorruptible, indestructible et invulnérable.

"Don’t Trust, Verify"

Sommaire

  • Introduction
  • Blockchain
  • Transactions
  • Minage
  • Protocole Bitcoin
  • Portefeuilles Bitcoin
  • Cryptomonnaies
  • Blockchain & Entreprise

Vous appréciez ce cours ? Soutenez notre travail, faites un don 🙏

Protocole Bitcoin

  • Logiciel
  • Réseau
  • Problème du Général Byzantin
  • Fork
  • Consensus
  • Caractéristiques

Protocole Bitcoin

Un protocole est un ensemble de règles qui gouverne comment un système opère.

Logiciel Libre & Open Source

Le protocole Bitcoin est codé dans un logiciel libre et open source dont il existe différentes implémentations (codé dans divers langages de programmation).

L'implémentation de référence est BitcoinCore qui est l'évolution du logiciel original proposé par Satoshi Nakamoto.

https://bitcoincore.org/en/download/

Le logiciel est constitué de 3 composants principaux:

Full Node (Daemon) - Mineur (Hasher) - Portefeuille (GUI)

Bitcoin vs bitcoin

  • Bitcoin est le protocole.
  • bitcoin est l’unité monétaire.

Protocole Bitcoin

  • Logiciel
  • Réseau
  • Problème du Général Byzantin
  • Fork
  • Consensus
  • Caractéristiques

Réseau P2P décentralisé

Différents acteurs du réseau

Protocole Bitcoin

  • Logiciel
  • Réseau
  • Problème du Général Byzantin
  • Fork
  • Consensus
  • Caractéristiques

Problème du Général Byzantin - Origine

  • Expérience de pensée qui décrit un vieux problème informatique (1960).
  • Comment se coordonner dans un système informatique distribué dans lequel on ne peut pas faire confiance aux participants ?

Problème du Général Byzantin - Description

  • Une armée entoure une ville ennemie.
  • Son général dispose de différents camps de base qui doivent communiquer entre eux via des messagers pour se mettre d’accord sur l’heure et la stratégie de l’attaque (consensus).
  • On sait qu’il y a un nombre inconnu de traîtres parmi les messagers qui peuvent modifier le message échangé et donc faire échouer l’attaque.

Problème du Général Byzantin - Bitcoin

Comment un groupe d'ordinateurs (noeuds) dans le réseau Bitcoin peut-il se mettre d'accord sur l'état actuel de la blockchain (historique des transactions) quand un ou plusieurs de ces ordinateurs peut être malicieux ?

Problème du Général Byzantin - Analogie

  • Les camps de base représentent les ordinateurs (noeuds) du réseau distribué.
  • Les messagers représentent les paquets de données transmis entre les noeuds.
  • les messages correspondent aux informations (transactions, blocs) incluses dans ces paquets de données.

Problème du Général Byzantin - Solution

Preuve de Travail

Protocole Bitcoin

  • Logiciel
  • Réseau
  • Problème du Général Byzantin
  • Fork
  • Consensus
  • Caractéristiques

Fork - Analogie

  • Une grande salle de remplie de 5000 personnes qui jouent au loto.
  • Bob et Alice sont assis dans des côtés opposés de la salle.
  • Un numéro est tiré au hasard, et Bob et Alice sont les deux gagnants pour ce numéro en même temps.
  • Dans le brouhaha, Bob se manifeste et la moitié de la salle entend Bob.
  • Alice se manifeste également et l'autre moitié de la salle entend Alice.
  • Qui est le gagnant ? Alice ou Bob ?
  • Pour les personnes assises du côté de Bob c'est Bob le gagnant.
  • Pour les personnes assises du côté d'Alice, c'est Alice la gagnante.
  • Il y a une divergeance sur la perspective de la réalité.

Fork - Blockchain

Un fork est une divergeance sur la perspective de l'état de la blockchain.

  • Un fork a lieu lorsque la blockchain se divise en deux ou plusieurs chaînes de blocs.
  • Certains noeuds pensent que le bloc X est le dernier bloc ajouté à la blockchain, alors que d'autres noeuds pensent que le bloc Y est le dernier bloc.
  • Un fork peut avoir lieu pour plusieurs raisons (e.g. bloc orphelin).
  • Il existe 2 types de fork:
    • Soft fork.
    • Hard fork.

Soft fork - Analogie

Un soft fork a lieu lorsqu'un changement dans le protocole Bitcoin propose aux noeuds des régles plus strictes.

  • Imaginez un restaurant végétarien qui décide de devenir un restaurant végane.
  • Moins de plats sont proposés dans le menu -> les règles deviennent plus strictes.
  • Les clients végétariens peuvent encore manger dans ce restaurant car le véganisme est un sous-groupe du végétarianisme.
  • Cependant le restaurant est dorénavant optimisé pour les clients véganes.

Soft fork - Blockchain

  • Méthode d’actualisation du logiciel Bitcoin retrocompatible avec les blocs de la blockchain créés avant le fork.
  • La nouvelle version du protocole est compatible avec l’ancienne version du protocole.
  • Les nouveaux blocs créés par les mineurs ayant adopté le fork sont considérés comme valides par les noeuds qui sont restés sur l'ancienne version du logiciel.
  • Chaque noeud utilisant l'ancienne version du logiciel peut continuer à réaliser sa tâche de validation correctement, même si d'autres noeuds adoptent les changements.
  • Les nouvelles règles peuvent être déployées sans avoir le consentement explicite des noeuds adhérant aux anciennes régles. Ils continueront à ajouter à leur blockchain les blocs créés selon les nouvelles règles.
  • Les changements de règle dans le logiciel peuvent être déployés en douceur et progressivement.

Soft fork - Exemple

Segwit upgrade mis en oeuvre le 27 juillet 2017 et activé le 23 août 2017.

  • Permet d'inclure un plus grand nombre de transactions dans un seul bloc de 1Mb à 2Mb en déportant certaines données du bloc dans une nouvelle portion (segregated witness) invisible aux noeuds adhérant aux anciennes règles.
  • Crée un nouveau type d'adresses Bech32: Bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq.

Hard fork - Analogie

Un hard fork a lieu lorsqu'un changement dans le protocole Bitcoin propose aux noeuds des régles plus larges.

  • Imaginez un restaurant végétarien qui décide d'élargir son offre en proposant des steaks.
  • Plus de plats sont proposés dans le menu -> les règles deviennent plus larges.
  • Les restaurant ne peut plus se faire valoir d'être végétarien.
  • Les clients végétariens ne peuvent plus manger tout ce qui est proposé sur la menu.
  • Les steaks ne sont pas compatible avec le végétarianisme.

Hard fork - Blockchain

  • Méthode d’actualisation du logiciel Bitcoin non retrocompatible avec les blocs de la blockchain créés avant le fork.
  • La nouvelle version du protocole n’est pas compatibles avec l’ancienne version.
  • Un bloc invalide selon les anciennes règles peut devenir valide avec les nouvelles règles.
  • Pour adhérer aux nouveaux changements et accepter les nouveaux blocs, un noeud doit donner son accord explicite en installant la nouvelle version du logiciel.
  • Le résultat d'un hard fork peut mener à deux cas de figure:
    1. Hard fork non-contentieux.
    2. Hard fork contentieux.
Hard fork non-contentieux

Le consensus est obtenu.

Hard fork contentieux

Le consensus est perdu: division en deux chaînes de blocs.

Hard fork - Exemple

Hard fork de Bitcoin Cash (BCH) mis en oeuvre le 1er août 2017.

  • Selon partisans de Bitcoin Cash:
    • Bitcoin ne pourrait pas supporter suffisamment de transactions (~ 7 tx/s) pour le monde entier si la taille maximale des blocs n'est pas augmentée.
    • Une augmentation des transactions avec une taille de bloc limitée engendrerait également une augmentation insoutenable des frais de transactions.
  • Mise en oeuvre des modifications visant à augmenter la taille maximale des blocs (1Mb à 8Mb) -> Centralisation des noeuds, et donc plus vulnérable face à des attaques.
  • Rejet des transactions qui ne respectent pas les nouvelles règles.
  • Changement non-rétrocompatible -> hard fork contentieux et division de la blockchain en deux branches.
  • Dans les faits, cela signifie qu'une nouvelle cryptomonnaie est née, appelée le Bitcoin Cash (BCH).
  • Aujourd'hui, la capitalisation boursière du BCH représente moins de 0,4 % de la capitalisation boursière du Bitcoin original (BTC), ce qui rend le BCH largement insignifiant.

Hard fork contentieux - Bitcoin Cash (BCH)

La chaîne Segwit est considérée comme la blockchain Bitcoin (BTC) officielle.

Hard fork & Cryptomonnaies

Un hard fork contentieux peut amener à faire coexister plusieurs versions différentes d’une même cryptomonnaie originale !

Ces différentes versions sont en réalité des nouvelles cryptomonnaies totalement distinctes les unes des autres, chacune possédant sa propre blockchain.

Protocole Bitcoin

  • Logiciel
  • Réseau
  • Problème du Général Byzantin
  • Fork
  • Consensus
  • Caractéristiques

Consensus sur la blockchain

  • En installant une version spécifique du logiciel Bitcoin, un noeud donne son accord pour se conformer aux règles du protocole définies dans cette version du logiciel.
  • Tous les noeuds utilisant la même version du logiciel adhèrent strictement aux mêmes règles. Ils adhèrent à un consensus.
  • Un fork est un changement introduit dans le protocole qui modifie les règles du jeu et peut ainsi potentiellement modifier le consensus.
  • Afin de conserver une copie identique de la blockchain, les noeuds du réseau (mining nodes + full nodes) doivent se mettre d’accord sur un ordre valide des nouveaux blocs à enregistrer dans leur propre copie de la blockchain.

Un consensus majoritaire autour de la version officielle de la blockchain doit être établi entre les différents noeuds du réseau.

Mécanisme de consensus

  • Seuls les mineurs peuvent proposer des nouveaux blocs à ajouter à la blockchain.
  • Ceux-ci doivent s'acquitter d’un paiement (investissement en matériel ASIC et frais d'électricité) lors du processus de Preuve de Travail pour acquérir ce droit de proposer de nouveaux blocs.
  • Tous les noeuds (mining nodes + full nodes) ont le choix d’accepter ou de refuser le prochain bloc transmis sur le réseau (vote individuel).
  • Le nouveau bloc est accepté par un scrutin à la majorité (mining nodes + full nodes).
  • Chaque scrutin dure 10 minutes.
  • Une rémunération encourage les mineurs à continuer à payer un droit pour proposer des nouveaux blocs destinés aux scrutins suivants.

Byzantine Fault Tolerant Consensus

En s’alignant majoritairement sur la validité du prochain bloc proposé par les mineurs, ce mécanisme permet à quiconque (noeuds) d’échanger des bitcoins en toute confiance sur un médium décentralisé dans un environnement potentiellement hostile constitué d’acteurs qui ne sont pas fiables.

La Preuve de Travail est une solution au Problème du Général Byzantin.

Nakamoto Consensus

Le consensus de Nakamoto fait référence à la règle d'or que tous les noeuds du réseau bitcoin suivent lorsqu'ils décident de l'état réel de la blockchain:

la chaîne la plus longue gagne toujours.

Si deux mineurs minent des blocs différents et produisent ainsi des chaînes de blocs distinctes, la chaîne la plus longue sera choisie par celui que décide de miner le prochain bloc pour ne pas travailler pour rien sur un bloc d'une chaîne qui risque d'être abandonnée.

En raison de la nature aléatoire du hachage, une chaîne plus longue émergera toujours, ce qui créera un consensus. Tous les noeuds du réseau convergeront alors vers une même copie de la blockchain ce qui rend pratiquement impossible le double spending.

Théorie des jeux - Équilibre de Nash

Dans la théorie mathématique des jeux, un équilibre de Nash est une situation dans laquelle le résultat optimal est obtenu lorsque les joueurs ne sont pas incités à s'écarter de leur stratégie initiale.

L'obtention d'un consensus sur l'état de la blockchain est un équilibre de Nash qui assure qu'il est plus profitable de sécuriser le réseau Bitcoin plutôt que de l'attaquer.

Protocole Bitcoin

  • Logiciel
  • Réseau
  • Problème du Général Byzantin
  • Fork
  • Consensus
  • Caractéristiques

Technologies

Le génie de Bitcoin ne réside pas dans les technologies que le protocole utilise, mais plutôt dans la manière qu’elles fonctionnent ensemble:

  • Cryptographie asymétrique (clé privée/publique) - 1976.
  • Identification basée sur les empreintes (hash) ~ 1980.
  • Réseaux pair à pair (p2p distribué) - 1990 (Napster).
  • Preuve de travail (Proof of Work) - 1997 (Anti-Spam).

Protocole interdisciplinaire

Le protocole Bitcoin est difficile à appréhender car il se trouve au croisement de:

  • La cryptographie.
  • Les réseaux informatiques et de transmission de données.
  • La théorie des jeux.
  • La théorie économique et monétaire.

Protocole multifacette

  • Utilisateur: Bitcoin est à la fois un réseau de paiement pair à pair et une monnaie électronique.
  • Comptable: Bitcoin est grâce à sa blockchain un registre transactionnel horodaté public et décentralisé.
  • Informaticien: Bitcoin est un protocole auto-sécurisé qui s'appuie sur un système de confiance distribué.
  • Mathématicien: Bitcoin est un modèle de consensus basé sur un équilibre de Nash.
  • Financier: Bitcoin est un système de transfert de valeur.

Fat Protocol

Inaltérabilité des données by process.

Inaltérabilité des données by design.

Équation Bitcoin

Cette équation représente l'agenda d'émission des bitcoins.

Le résultat de cette équation donne le nombre total de tous les bitcoins émis = 20'999'999,97690000 (~21 millions) BTC.

Connaissance & Expertise

"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke

Sommaire

  • Introduction
  • Blockchain
  • Transactions
  • Minage
  • Protocole Bitcoin
  • Portefeuilles Bitcoin
  • Cryptomonnaies
  • Blockchain & Entreprise

Vous appréciez ce cours ? Soutenez notre travail, faites un don 🙏

Portefeuilles Bitcoin

  • Fonctions d’un portefeuille
  • Portefeuille logiciel
  • Portefeuille web
  • Portefeuille mobile
  • Portefeuille hardware
  • Portefeuille papier
  • Sécurité d’un portefeuille

Fonctions d’un portefeuille

  • Recevoir et envoyer des bitcoins.
  • Générer des adresses pour recevoir des bitcoins -> générer des paires de clés privée/publique (ECDSA).
  • Créer, signer et soumettre au réseau des transactions bitcoins.
  • Stocker des paires de clés privées/publiques.

Portefeuille - Porte-clés numérique

Portefeuilles Bitcoin

  • Fonctions d’un portefeuille
  • Portefeuille logiciel
  • Portefeuille web
  • Portefeuille mobile
  • Portefeuille hardware
  • Portefeuille papier
  • Sécurité d’un portefeuille

Portefeuille logiciel - Software wallet

2 types de portefeuille logiciel:

Full Wallet

Light Wallet

Full Wallet

  • Portefeuille logiciel qui s'installe dans l'ordinateur.
  • Dispose d'un noeud local connecté au réseau (vérification locale des blocs et transactions).
  • Télécharge localement la blockchain (en 2025 ~ 600GB). Le téléchargement peut prendre plusieurs jours.
  • Stockage local des clés privées (chiffré) sur le disque dur de l’ordinateur.

  • PRO: sécurité trustless et confidentialité - "Dont trust, verify".
  • CON: taille de la blockchain.

Full Wallet - Bitcoin Core

https://bitcoincore.org/en/download/

https://github.com/bitcoin/bitcoin/

Light Wallet

  • Portefeuille logiciel qui s'installe dans l'ordinateur.
  • Simplified Payment Verification Wallet (SPV Wallet).
  • Se connecte à un noeud distant.
  • Pas besoin de télécharger la blockchain.
  • Stockage local des clés privées (chiffré) sur le disque dur de l’ordinateur.

  • PRO: portefeuille léger et rapide.
  • CON: vérification locale partielle donc pas complètement confidentiel.

Light Wallet - Electrum

https://electrum.org/#download

https://github.com/spesmilo/electrum/

Portefeuilles Bitcoin

  • Fonctions d’un portefeuille
  • Portefeuille logiciel
  • Portefeuille web
  • Portefeuille mobile
  • Portefeuille hardware
  • Portefeuille papier
  • Sécurité d’un portefeuille

Portefeuille web - Web wallet

  • Portefeuille en ligne.
  • Se connecte à un noeud distant sur le serveur.
  • Pas besoin de télécharger la blockchain.
  • Stockage des clés privées sur le serveur.

  • PRO: aucune installation et prise en main rapide.
  • CON: non confidentiel et custodial: "Not your keys, not your bitcoins".

Portefeuille web - Coinbase

coinbase.com

Portefeuilles Bitcoin

  • Fonctions d’un portefeuille
  • Portefeuille logiciel
  • Portefeuille web
  • Portefeuille mobile
  • Portefeuille hardware
  • Portefeuille papier
  • Sécurité d’un portefeuille

Portefeuille mobile

  • App pour Android & iPhone.
  • Se connecte à un noeud distant.
  • Pas besoin de télécharger la blockchain.
  • Mécanismes de sauvegarde & restauration des clés.

  • PRO: portefeuille accessible en tout moment.
  • CON: confidentialité faible et effectuer une sauvegarde en cas de perte ou changement du téléphone.

Portefeuilles Bitcoin

  • Fonctions d’un portefeuille
  • Portefeuille logiciel
  • Portefeuille web
  • Portefeuille mobile
  • Portefeuille hardware
  • Portefeuille papier
  • Sécurité d’un portefeuille

Portefeuille hardware

  • Appareil électronique read-only avec port USB.
  • Stockage chiffré et offline des clés privées.
  • Signature offline des transactions.
  • Requière une connexion avec un portefeuille logiciel pour envoyer des transactions.

  • PRO: sécurité - offline cold storage.
  • CON: peu pratique si usage fréquent.

Portefeuilles Bitcoin

  • Fonctions d’un portefeuille
  • Portefeuille logiciel
  • Portefeuille web
  • Portefeuille mobile
  • Portefeuille hardware
  • Portefeuille papier
  • Sécurité d’un portefeuille

Portefeuille papier

  • Page HTML et librairies Javascript à télécharger dans son ordinateur.
  • Générateur local de clé privée et clé publique.
  • La clé privée et clé publique imprimées sur papier.
  • Stockage offline des clés privées.

  • PRO: sécurité - offline cold storage.
  • CON: peu pratique si usage fréquent (importer clé privée dans wallet logiciel pour réaliser une transaction).

Portefeuille papier - bitaddress

Attention:

Le code source du générateur HTML de clés peut être malicieux et voler vos bitcoins !

https://github.com/pointbiz/bitaddress.org

Portefeuilles Bitcoin

  • Fonctions d’un portefeuille
  • Portefeuille logiciel
  • Portefeuille web
  • Portefeuille mobile
  • Portefeuille hardware
  • Portefeuille papier
  • Sécurité d’un portefeuille

Sécurité d’un portefeuille

  • Portefeuille custodial vs non-custodial.
  • Portefeuille HD.
  • Phrase mnémonique.
  • Chiffrement du portefeuille.
  • Sauvegarde du portefeuille.

Portefeuille custodial vs non-custodial

Portefeuille custodial

  • PRO - Facilité de gestion: pas d’installation de logiciel portefeuille et pas de sauvegarde locale des clés privées.
  • PRO - Interface graphique conviviale: facilité et rapidité d’usage.
  • PRO - Récupération du compte: option de récupération du mot de passe en cas d'oubli, assurance de ne pas perdre l'accès à ses fonds.
  • CON - Contrôle limité: clés privées en possession du fournisseur de service et stockées sur ses serveurs (portefeuille en ligne, plate-forme d’échange, processeur de paiement, tierce partie...).
  • CON - Sécurité dépendante: service centralisé similaire à celui d’une banque (Trustless -> Single Point of Failure). Risque de brèche de sécurité, hacking, bloquage (freeze) et vol des clés (vol des bitcoins).
  • CON - Procédure KYC/AML: invasif et non confidentiel.

Portefeuille custodial

"Not your keys, not your bitcoins."

"Not your node, not your rules."

Portefeuille non-custodial

  • PRO - Souvraineté financière: l'utilisateur est en possession de ses clés et contrôle donc l'accès à ses bitcoins. Be your own Bank.
  • PRO - Réduction des risques: non dépendant d'un services tiers pour la gestion des fonds, ce qui réduit le risque de pertes financières liées à l'insolvabilité d'une entreprise ou à une gestion inadéquate.
  • PRO - Confidentialité: intéraction directe avec la blockchain.
  • CON - Responsabilité individuelle: réaliser une sauvegarde du portefeuille (des clés privées).
  • CON - Absence d'options de récupération: perte des clés privées -> perte de l’accès aux bitcoins.
  • CON - Interface graphique complexe: L'interface des portefeuilles non-custodials peut être moins conviviale et peut requérir un certain niveau de compréhension des aspects techniques de Bitcoin.

Portefeuille HD - Objectif

Faciliter la sauvegarde et restauration des portefeuilles non-custodials.

Hierarchical Deterministic

  • Hiérarchie: une donnée unique maîtresse (seed) permet de générer une liste "infinie" de paire de clés privée/publique organisées hiérarchiquement (arbre).
  • Déterministe: processus de restauration instantané du portefeuille et de toutes ses clés et adresses au moyen d’une seule information (seed).

Portefeuille HD - Seed

Portefeuille HD - Avantage

  • Le seed est un nombre aléatoire de 256 bits. Il existe donc seeds possibles (= et on estime qu'il existe environ ~ atomes dans l’Univers observable). La probabilité d'une collision (que le même seed soit généré deux fois) est quasi nulle.
  • La sauvegarde du seed est nécessaire une seule fois, plus besoin de sauvegarder les différentes clés privées de chaque adresse individuellement via une sauvegarde périodique du portefeuille.
  • Pour chaque transaction reçue, une nouvelle adresse de paiement est générée automatiquement.
  • 1 adresse par transaction offre plus de confidentialité.
  • Restauration instantanée du portefeuille sur une autre machine au moyen du seed.

Phrase mnémonique

  • Représentation encodée du seed sous forme d’une liste de 12 ou 24 mots (BIP39).
  • La sauvegarde de la phrase mnémonique (seed phrase) au lieu du seed sous forme de nombre est plus pratique.
  • La phrase mnémonique est suffisante pour pouvoir restaurer l’intégralité des clés privées et adresses d’un portefeuille.
  • Exemple de phrase mnémonique de 12 mots: witch collapse practice feed shame open despair creek road again ice least

Phrase secrète - Passphrase

  • Un mot ou une phrase facultative de votre choix qu'on peut ajouter à la phrase mnémonique (13ème mot ou 25ème mot).
  • Couche de sécurité additionnelle: si quelqu'un accède à la phrase mnémonique, il ne pourra pas accéder aux fonds sans connaître également la phrase secrète.
  • Les phrases secrètes permettent d'utiliser différents portefeuilles avec une seule phrase mnémonique. Chaque phrase secrète unique mène à un portefeuille différent.

Sauvegarde du portefeuille HD

Support de sauvegarde offline

  • Sauvegarde de la phrase mnémonique correspondant au seed du portefeuille sur un support offline.
  • Sauvegarde de la phrase secrète du portefeuille sur un support offline.

Attention !

  • En cas de perte de la phrase secrète, vous perdrez définitivement l'accès à vos fonds, même si vous disposez de votre phrase mnémonique.

Sommaire

  • Introduction
  • Blockchain
  • Transactions
  • Minage
  • Protocole Bitcoin
  • Portefeuilles Bitcoin
  • Cryptomonnaies
  • Blockchain & Entreprise

Vous appréciez ce cours ? Soutenez notre travail, faites un don 🙏

Cryptomonnaies

  • Généralités
  • Altcoins de 1ère génération
  • Forkcoins
  • Altcoins de 2ème génération
  • Tokens

Cryptomonnaies - Généralités

Il existe des milliers de cryptomonnaies (> 25'000). Nombreuses sont les cryptomonnaies qui ont été créées à des fins spéculatives...la plupart sont sans intérêt...

coingecko.com

Cryptomonnaies

  • Généralités
  • Altcoins de 1ère génération
  • Forkcoins
  • Altcoins de 2ème génération
  • Tokens

Altcoins de 1ère génération

Clones du code source de Bitcoin

Modifications des paramètres du protocole (fork du code source).

Altcoins de 1ère génération

Paramétrage

  • Algorithme de la fonction de hachage du PoW (SHA-256, Scrypt, Blake...).
  • Block Time (10 minutes, 2.5 minutes, secondes...).
  • Emission totale (21 millions, 84 millions, 150 milliards...).
  • Récompense initiale de bloc (50 BTC).
  • Halving (210’000 blocs, 840’000 blocs,...).

Altcoins de 1ère génération

Litecoin

  • Né le 7 octobre 2011.
  • Fork du code source de Bitcoin.
  • Consensus: Preuve de Tavail.
  • Algorithme de la fonction de hachage: Scrypt (utilisation intensive de la mémoire: carte graphique GPU).
  • Block Time: 2.5 minutes.
  • Emission totale: 84 millions de LTC.
  • Récompense initiale de bloc: 50 LTC.
  • Halving: 840’000 blocs.

Altcoins de 1ère génération

Dogecoin

  • Né en décembre 2013.
  • Fork du code source de Litecoin.
  • Consensus: Preuve de Tavail.
  • Algorithme de la fonction de hachage: Scrypt.
  • Block Time: 1 minute.
  • Emission totale: .
  • Récompense initiale de bloc: Aléatoire Min 0 - Max 1'000'000 DOGE (à partir de 2015 fixe de 10'000 DOGE).
  • Halving: 100'000 blocs (à partir de 2015 aucun halving).

Cryptomonnaies

  • Généralités
  • Altcoins de 1ère génération
  • Forkcoins
  • Altcoins de 2ème génération
  • Tokens

Forkcoins

Un hard fork contentieux de la blockchain peut amener à faire coexister plusieurs versions différentes d’une même cryptomonnaie originale !

Ces différentes versions sont en réalité des nouvelles cryptomonnaies totalement distinctes les unes des autres, chacune possédant sa propre blockchain.

Un forkcoin est une nouvelle cryptomonnaie issue d'un hard fork contentieux.

Forkcoins de Bitcoin

Forkcoins vs Forks code source des altcoins

Cryptomonnaies

  • Généralités
  • Altcoins de 1ère génération
  • Forkcoins
  • Altcoins de 2ème génération
  • Tokens

Altcoins de 2ème génération

Nouveau code source avec de nouvelles fonctionnalités.

  • Confidentialité.
  • Types de Consensus.
  • Turing-Complet.

Confidentialité

Privacy Coins

Les privacy coins utilisent différentes techniques cryptographiques pour anonymiser et occulter les adresses et les montants des transactions enregistrées dans la blockchain.

Monero (XMR)

getmonero.org

ZCash (ZEC)

z.cash

Grin (GRIN)

grin.mw

Rappel: Bitcoin n’est pas anonyme mais pseudo-anonyme.

Altcoins de 2ème génération

Nouveau code source avec de nouvelles fonctionnalités.

  • Confidentialité.
  • Types de Consensus.
  • Turing-Complet.

Types de Consensus

  • Preuve de Travail (Proof-of-Work - PoW).
  • Preuve de Participation - Preuve d'Enjeu (Proof-of-Stake - PoS).
  • Délégation de la Preuve de Participation (Delegated Proof-of-Stake - DPoS).
  • Preuve de Capacité (Proof-of-Capacity - PoC).
  • ...

Preuve de Travail (Proof of Work)

Pour sécuriser le réseau, un mineur investit dans des équipements informatiques puissants et met à disposition du temps de travail (calcul des hashes).

  • PRO: Sécurité cryptographique.
  • CON: Énergivore.
Différents algorithmes de hachage
  • SHA-256 (Bictoin, BitcoinCash).
  • Scrypt (Litecoin, Dogecoin).
  • CryptoNight (Monero).
  • Equihash (ZCash).
  • Cukkoo (Grin).

Preuve de Participation (Proof of Stake)

  • Pour sécuriser le réseau, un participant (staker) investit une quantité de cryptomonnaie dans le système pour acquérir le droit de créer (minter, forger) des blocs.
  • Le participant (staker) doit prouver la possession d'une certaine quantité de cryptomonnaie (sa "participation" dans la blockchain) pour prétendre à pouvoir:
    1. Minter et ajouter des blocs à la chaîne de blocs et ainsi être récompensé par les frais de transaction.
    2. Voter sur des choix de gouvernance concernant les décisions et développements furturs de la cryptomonnaie.
  • Afin que les producteurs de blocs aient un intérêt dans le réseau, on va établir un consensus sur la validité des blocs au moyen de la possession de cryptomonnaie plutôt que par le travail accumulé.

Preuve de Participation - Mécanisme

  • Les participants (stakers) mettent en jeu (en dépôt) dans le système une quantité de cryptomonnaie en leur possession.
  • La quantité de cryptomonnaie est bloquée dans la blockchain au moyen d’une transaction spéciale.
  • Un participant (producteur de bloc) est choisi automatiquement par un algorithme en fonction de sa participation sur le réseau pour minter le prochain bloc.
  • Si le bloc proposé par le participant est valide et accepté par le réseau, il reçoit en récompense les frais de transaction.
  • Si le participant triche et que son bloc est rejeté par le réseau, il est pénalisé et perd la quantité qu’il a mise en jeu.
  • Le participant peut à tout moment ne plus participer et débloquer sa mise en jeu (son dépôt) au moyen d’une transaction spéciale.
  • Analogie: compte épargne de dépôt qui rapporte des intérêts.

Preuve de Participation - Caractéristiques

  • En général pas de nouvelle émission de cryptomonnaie au moyen d’une récompense de bloc (block reward).
  • A sa création, l’intégralité de la cryptomonnaie est émise en une seule fois (pre-mining).
  • Le pre-mining favorise les développeurs du projet et early adopters de la cryptomonnaie qui s'en réserve au départ un grande partie -> centralisation de la participation.
  • Récompense des participants uniquement sur les frais des transactions.
  • Certaines cryptomonnaies mixent les consensus:
    • Preuve de Travail: validation des blocs avec récompense de bloc.
    • Preuve de Participation: uniquement pour le vote sur les décisions de gouvernance.

Preuve de Participation - Pour & Contre

  • PRO: Peu énergivore.
  • PRO: Droit de vote sur les décisions de gouvernance.
  • CON: Favorise les plus riches -> centralisation.
  • CON: Le montant investit doit être placé dans un portefeuille connecté à Internet (hot wallet) -> risque de se faire hacker.
  • CON: La production d’un nouveau block PoS n’a pas de coût en soi, elle ne requière pas de faire appel à des resources externes (énergie) engendreant un coût mesurable. Une attaque pour modifier un bloc sur une blockchain PoS n'a donc pas de coût externe, il suffit juste de posséder une quantité suffisante de cryptomonnaie pour réaliser une telle attaque (vulnérabilité nothing at stake). Un petit groupe de validateurs peut donc contrôler le réseau et ses règles.

Preuve de Travail vs Preuve de Participation

Délégation de la Preuve de Participation

(Delegated Proof of Stake)

Le détenteur de cryptomonnaie délègue son droit de valider des blocs et son droit de vote à un noeud validateur.

  • PRO: capacité étendue du réseau et rapidité des transactions (secondes).
  • CON: partiellement centralisé (nombre limité de validateurs).

Preuve de Participation - Exemples

Ethereum 2.0 (ETH)

ethereum.org

Cardano (ADA)

cardano.org

Solana (SOL)

solana.com

Tron (TRX)

tron.network

Tezos (XTZ)

tezos.com

Avalanche (AVAX)

avax.network

Altcoins de 2ème génération

Nouveau code source avec de nouvelles fonctionnalités.

  • Confidentialité.
  • Types de Consensus.
  • Turing-Complet.

Turing-incomplet

  • Un système est dit Turing-incomplet s’il est limité à résoudre un seul problème ou calcul.
  • Bitcoin est Turing-incomplet.

Turing-complet

  • Un système est dit Turing-complet s’il dispose des opérations nécessaires pour résoudre tous les problèmes de calcul informatique qui peuvent se poser.
  • Un ordinateur standard est Turing-complet.
  • La plupart des langages de programmation sont Turing-complet.
  • Ethereum, Cardano, Solana, Tron, Tezos, Avalanche sont Turing-complets.

Bitcoin - Turing-incomplet

  • Bitcoin intègre Script un langage de programmation primaire qui dispose d’un jeu limité d’opérations.
  • Script permet principalement de débloquer les inputs d’une transaction et de les assigner aux outputs du destinataire.
  • Script est un langage restreint centré uniquement sur l’exécution de transactions de type monétaire (système de paiement).
  • Cette limitation est un choix volontaire de Satoshi Nakamoto pour des raisons sécuritaires (anti-spam - boucle infinie).

Ethereum - Turing-complet

  • Ethereum intègre Solidity un langage de programmation avancé.
  • Solidity permet de créer tout type d’applications (pas limité à un simple système de paiement).
  • Les applications Ethereum sont déployées sur tous les noeuds du réseau Ethereum.
  • DApps - Decentralized Applications / DeFi - Decentralized Finance (sans autorité centrale).
  • Les DApps sont construites au moyen de contrats intelligents (smart contracts) codés avec le langage Solidity.

Contrat intelligent - Origine

  • Nick Szabo - Ingénieur Cryptographe.
  • En 1994 il publie ses premiers travaux sur la notion de contrat intelligent (smart contract).

Contrat intelligent - Analogie

Un contrat est un accord en deux ou plusieurs parties qui les lie à quelque chose qui va se passer dans le futur.

Distributeur Automatique

Contrat intelligent - Caractéristiques

  • Un contrat intelligent n’a rien d’intelligent (buzzword) !
  • Un "petit" programme informatique (algorithme) qui s’exécute si certaines conditions sont réunies.
  • Il est stocké dans la blockchain et donc répliqué sur tous les noeuds du réseau.
  • Il peut donc être appelé et exécuté par n’importe quel noeud du réseau.
  • L'interaction avec un contrat intelligent est payante et se réalise au moyen d’une transaction.
  • Le résultat de l’exécution conduit à une actualisation de la blockchain.

Contrat intelligent - Transactions

Deux types de transactions:

  • Transactions standards de personne à personne.
  • Transactions avec un contrat intelligent.

Contrat intelligent - Exemple 1

Contrat intelligent appliqué à la vente d’une maison payable en ether (ETH) avec émission d'un certificat de propriété numérique.

Contrat intelligent - Exemple 2

  • Contrat:
    • Alice et Bob font un pari de 20.- sur le résultat d'un événement sportif.
    • Chacun bloque dans un contrat intelligent soumis à la blockchain le montant de 20.- au moyen d'une transaction.
  • Événement:
    • Le contrat vérifie le résultat de l'événement sportif via une source externe (oracle).
  • Exécution:
    • Le contrat transfère les 20.- du perdant au gagnant ainsi que sa mise initiale au moyen d'une transaction.
  • Règlement final (Settlement):
    • Une fois cette transaction insérée dans un nouveau bloc, le règlement de l'exécution du contrat intelligent peut être considéré comme finalisé.

Contrat intelligent - Oracle

  • Un oracle est le service en charge de donner au contrat intelligent des réponses sur le monde physique (fournisseur de données du monde réel). Il détermine ce que le contrat intelligent voit du monde réel.
  • Il doit exister un lien définitif entre le monde numérique et le monde physique (e.g. vérification d'un résultat sportif).
  • Le problème de l’oracle: c'est un tiers de confiance centralisé -> single point of failure.
  • Pour qu’un contrat intelligent puisse s’affranchir d’un oracle et être considéré 100% trustless, les conditions du contrat doivent être des informations vérifiables par les noeuds et natives à la blockchain concernée, sans aucune intervention extérieure (e.g. transaction de cryptomonnaie).
  • Exemple de service d'oracle: chain.link

Contrat intelligent - Bitcoin

  • Le langage Script utilisé dans Bitcoin est Turing-incomplet -> une capacité limitée de création de contrats intelligents.
  • Une transaction Bitcoin est une forme de contrat intelligent.
    • Conditions: fonds suffisant, signature correcte, etc...
    • Exécution: paiement (exécution de la transaction).
  • Transaction standard, transaction multi-signature, transaction avec locktime...
  • Les conditions du contrat transactionnel sont natives à la blockchain et au protocole Bitcoin (UTXO non-consommé, signature valide,...). Pas besoin d'oracle !

Code Serveur vs Contrat intelligent

Contrat intelligent - Résumé

  • PRO Distribué: tous les noeuds du réseau disposent d’une copie du contrat.
  • PRO Trustless: sa correcte exécution est vérifiée par tous les noeuds du réseau.
  • PRO Transparent: le code du contrat est public et peut être audité.
  • PRO Fiabilité: pas d’interruption de service.
  • PRO Inaltérable: le code est l’autorité ultime des clauses du contrat (Code is Law).
  • CON Bugs: Sujet à des potentiels bugs difficile à corriger étant donné la nature inaltérable du contrat intelligent.
  • CON Peu efficient: la seule manière pour les noeuds de vérifier l’exécution correcte d’un contrat ajouté à nouveau bloc et d’exécuter eux-même le contrat et comparer la réponse avec celle fournie dans le bloc minté.
  • CON Dépendance aux données du monde réel: faire appel à des oracles -> single point of failure.

Contrat intelligent - Objectif idéal

Faire respecter les conditions d’un contrat (accord, algorithme) et l’exécuter de façon automatique, impartiale et sécurisée tout en éliminant les intermédiaires.

  • Smart: exécution électronique.
  • Trustless: sans tiers de confiance.

Les contrat intelligents font sens pour des transactions basées sur des règles immuables. Il n’y pas d’espace pour l'ambiguïté et l'interprétation.

"Code is Law"

Smart Contract

DApps - Decentralized Applications

  • Une DApp s’appuie sur un ou plusieurs contrats intelligents pour fournir son service applicatif.
  • Les contrats intelligents implémentent la logique et fonctionnalité d’une DApp.
  • Les contrats intelligents rendent possible le déploiement d’applications décentralisées via la blockchain.

DApps - Exemple

Plate-forme décentralisée de distribution de musique - Dotify 🎵

Service permettant aux musiciens d’uploader et vendre leur musique directement et sans intermédiaire.

  • Un musicien uploade un fichier mp3 sur le serveur du service et se registre auprès du contrat intelligent:
    • Le contrat intelligent registre l’empreinte (hash) du mp3, enregistre le prix par téléchargement et l’adresse (clé publique) du musicien pour lui envoyer les paiements.
  • Un utilisateur achète la musique:
    • L’utilisateur envoie un montant en cryptomonnaie (e.g. ETH) à l’adresse du contrat intelligent qui lui donne la permission de télécharger le morceau depuis le serveur.
  • Paiement au musicien:
    • Le contrat intelligent réalise le paiement à l’adresse du musicien.

DApps - Exemple

Architecture du service

DApps - Exemple

Déploiement du contrat intelligent

DApps - Exemple

Upload de la musique

DApps - Exemple

Paiement et téléchargement de la musique

DApps - Exemple

Single Point of Failure du serveur du site

DApps - Une fausse bonne idée ?

  • Du moment qu'un service gère des biens ou objets hors blockchain, un single point of failure existe et le service devient vulnérable aux attaques.
  • Répliquer l’empreinte d’un fichier mp3 sur la blockchain de milliers de noeuds est-il vraiment nécessaire ?
  • La valeur d’une application réside-t-elle dans son usage ou dans l’inaltérabilité des règles et des données ?

DApps - Explorer

dappradar.com

Cryptomonnaies

  • Généralités
  • Altcoins de 1ère génération
  • Forkcoins
  • Altcoins de 2ème génération
  • Tokens

Tokens (Jetons)

  • Représentation numérique de quelque chose qui a de la valeur.
  • L’émission d’une variété de tokens se fait au moyen d’un smart contract.
  • L’utilisation d’une variété de tokens est limitée à un service ou application spécifique (DApp).
  • La sécurisation des tokens s’appuie sur le mécanisme de consensus d’une blockchain sous-jacente et de sa cryptomonnaie native.

Classes de tokens

  • Utility Tokens.
  • Security Tokens.
  • Tokens Fongibles.
  • Tokens Non-Fongibles (NFT).

"Tokenizing the World / Tokenizing Everything"

Utility Tokens (Appcoins)

  • Nature: jeton numérique qui représente le droit d'accéder à un service ou d’utiliser une fonctionnalité dans une DApp.
  • Analogie: jetons utilisés dans un casino ou dans un parc d’attraction.
  • Objectif: introduire des mécanismes et incitations économiques au sein d’une application (DApp).
  • Exemples: monnaie virtuelle dans un jeu, débloquer des fonctionnalités, récompenses, achat d’objets virtuels...
  • Fonction: outil d'interaction avec un service/fonctionnalité.
  • Emission: ICO (Initial Coin Offering) - offre d'achat des jetons pour financer un projet avec une promesse d’un futur succès de la Dapp -> pas de régulation -> énormément d'arnaques.
  • Valeur: dérive de l’utilité du jeton.
  • Usage: DApps, jeux, cartes fidélité,...

Utility Tokens - Exemples

Enjin (ENJ)

enjin.io

Biens virtuels et jeux

Augur (REP)

augur.net

Place de marché décentralisée de paris en ligne sur des prédictions futures

0x (ZRX)

0x.org

Place de marché décentralisée d'échange de tokens (DEX)

Security Tokens

  • Nature: jeton numérique qui représente les droits que quelqu’un possède sur un bien.
  • Exemples: actions d’une société, obligations, bien immobilier, lingot d’or, baril de pétrole, pierre précieuse, dette, crédit, royalties, collection d’art, véhicule, etc…
    • Tout bien matériel ou immatériel qui possède une valeur intrinsèque.
  • Objectif: faciliter et sécuriser grâce à la blockchain l’échange et transfert de propriété d’un bien de valeur.
  • Fonction: investissement (Digital Asset).
  • Emission: STO (Security Token Offering) - soumis à régulation.
  • Valeur: dérive directement de la valeur du bien en contrepartie qu’il représente.
  • Usage: Finance - Programmable Ownership.

Security Tokens - Exemples

Plate-formes permettant d'investir et échanger des actifs réels tokenisés.


Polymath (POLY)

polymath.network

Swarm (SVM)

swarm.com

Securitize

securitize.io

Tokens Fongibles

  • Nature: tous les tokens émis d’une même variété ont la même valeur.
  • Exemple: Stablecoins, tokens alignés sur le prix du USD, EUR...le peg est maintenu au moyen d'un algorithme et en théorie d'une réserve de garantie en contrepartie.

Tether (USDT)

tether.to

USD Coin (USDC)

centre.io

Dai (DAI)

makerdao.com

Tokens Non-Fongibles (NFT)

  • Nature: les tokens émis d’une même variété n’ont pas tous la même valeur.
  • Analogie: collection de cartes Pokemon ou Panini.
  • Valeur: dérive directement de la rareté de l’objet en contrepartie qu’il représente.
  • Exemple: Collections numériques à édition limitée, art numérique, portion de terrain dans un metavers, musique...
  • Propriété: un NFT représente un certificat digital sous forme de reçu numérique d’autenticité qui atteste qui est le propriétaire de l’objet tokenisé.

Tokens Non-Fongibles (NFT) - Exemples de collections

CryptoKitties

cryptokitties.co

Bored Ape Yacht Club

boredapeyachtclub.com

CryptoPunks

cryptopunks.app

Sorare

sorare.com

Poste Suisse

crypto-stamp.post.ch

Everydays - Beeple - ($66M)

beeple-crap.com

Tokens Non-Fongibles (NFT) - Plate-formes d'échange




Tokens Non-Fongibles (NFT) - Une fausse bonne idée ?

Stockage du média centralisé

Le NFT contient un pointeur (empreinte/hash) vers le media lui-même hébergé dans un serveur centralisé -> Single Point of Failure.

Média copiable à l'infini

"you own the stupid monkey picture that you bought for $120,000 even if they right click and save it"
https://twitter.com/SaeedDiCaprio/status/1455520527964049411

La propriété intellectuelle n'est pas équivalente à la propriété matérielle !

Bitcoin ≠ Crypto

Sommaire

  • Introduction
  • Blockchain
  • Transactions
  • Minage
  • Protocole Bitcoin
  • Portefeuilles Bitcoin
  • Cryptomonnaies
  • Blockchain & Entreprise

Vous appréciez ce cours ? Soutenez notre travail, faites un don 🙏

Blockchain & Entreprise

  • Monnaie
  • Mise à l'échelle
  • Timechain
  • Applications business

Fonctions d’une monnaie

  1. Réserve de valeur: conservation de sa valeur dans le temps sans souffrir de grosses fluctuations (faible volatilité).
  2. Moyen d’échange: possibilité de réaliser des transactions pour acheter et vendre des biens et services.
  3. Unité de compte: capacité de mesurer la valeur des biens et services et d'y mettre un prix avec une reconnaissance à large échelle.

Propriétés d’une monnaie

  1. Rareté: La rareté, ou l'offre limitée, est une propriété essentielle d'une monnaie saine. Si la monnaie est trop abondante, elle perd de sa valeur au fil du temps.
  2. Durabilité: elle doit être durable pour pouvoir circuler et être utilisé à plusieurs reprises sans risque d'usure et de détérioration et donc de dépréciation de sa valeur.
  3. Acceptabilité (Vérifiabilité): elle doit être facile à reconnaître et difficile à contrefaire afin d'être acceptée comme moyen d'échange pour payer des biens et des services dans un espace économique donné.
  4. Portabilité: elle doit être facile à transporter, physiquement ou numériquement, afin de pouvoir être transféré dans le cadre d'échanges commerciaux.
  5. Divisibilité: elle doit pouvoir être divisé en parties plus petites.
  6. Fongibilité: les pièces de monnaie et billets devraient être totalement interchangeable. La valeur indiquée sur la face fait foi, que la pièce soit neuve, vieille, brillante ou oxydée.

Propriétés additionnelles d’une monnaie

Depuis l'apparition de la monnaie numérique, trois propriétés monétaires supplémentaires peuvent être envisagées.

  1. Historique établi: l'effet Lindy suggère que l'espérance de vie future d'une chose non périssable (une monnaie, une technologie ou une idée) est proportionnelle à son âge actuel. Plus une chose a survécu longtemps et est restée pertinente, plus la probabilité qu'elle continue à survivre augmente. Sa longévité indique une résistance au changement, à l'obsolescence ou à la compétition.
  2. Résistance à la censure: c'est une garantie que personne ne peut se voir confisquer son argent ou être empêché de son utilisation.
  3. Programmable: permet de spécifier informatiquement un comportement automatisé d'un paiement monétaire selon certaines conditions établies.

Monnaie fiduciaire vs Or vs Bitcoin

Fonctions/Propriétés Monnaies fiduciaires (EUR, USD) Or Bitcoin
Réserve de valeur ❌ (dévaluation et inflation) ✅ ✅ (hodl)
Rareté ❌ (planche à billet) ✅ (~ 170 millions Kg) ✅ (max. 21 millions)
Durabilité ↔️ ✅ ✅ (résistance aux attaques)
Moyen d’échange ✅ ❌ ↔️ (économie circulaire)
Acceptabilité ↔️ (contrefaçon) ↔️ (analyse chimique) ✅
Portabilité ✅ ❌ (lourd) ✅ (clé privée / seed)
Unité de compte ✅ ❌ ✅ (bitcoin)
Divisibilité ↔️ ❌ (industriel) ✅ (1 BTC = 100'000'000 sat)
Fongibilité ✅ ✅ ↔️ (blockchain analytics)
Historique établi ↔️ (pas assez de recul) ✅ ↔️ (pas assez de recul)
Résistance à la censure ❌ ↔️ (IOU) ✅
Programmable ↔️ ❌ ✅

CBDC (Central Bank Digital Currency) vs Bitcoin

Bitcoin - Or numérique

Electronic Cash -> Rareté -> HODL -> Réserve de valeur -> Digital Gold

Valeur anuelle la plus basse

2011: $0.3
2012: $4
2013: $65
2014: $200
2015: $185
2016: $365
2017: $780

2018: $3'200
2019: $3'420
2020: $4'565
2021: $28'105
2022: $15'635
2023: $16'510
2024: $38'550

Blockchain & Entreprise

  • Monnaie
  • Mise à l'échelle
  • Timechain
  • Applications business

Bitcoin - Limitations

  • Consommation énergétique: l’électricité est le carburant qui alimente la sécurité de Bitcoin.
  • Centralisation du minage: risque d’attaque à 51%.
  • Taille de la blockchain Bitcoin (année 2025): ~ 600 GB.
  • Temps de confirmation d’une transaction pour les marchands: block time de 10 minutes.
  • Distribution de richesse (max. 21 millions BTC): dans les mains d’un nombre réduit d’early adopters.
  • Difficulté d’utilisation: sécurisation d’un portefeuille.
  • Capacité du réseau (TPS): Bitcoin max. 7 tx/s - Ethereum ~ 15 -> 25 tx/s - Solana ~ 5'000 -> 50'000 tx/s - Paypal ~ 193 tx/s - VISA ~ 1'700 -> 24'000 tx/s.

Bitcoin - Consommation énergétique

  • Pour obtenir le meilleur rendement, les mineurs s'installent dans des zones proches des sources d'énergie bon marché produite en surplus et qui serait de toute manière gaspillée sans demande.
  • Le problème n'est pas la quantité d'énergie utilisée par les mineurs, mais la quantité d'énergie carbonée. Les mineurs consomment en grande partie des énergies renouvelables (géothermique ou hydroélectrique).
  • Les 4,6 milliards de streams de "Despacito" ont consommé autant d'électricité que la consommation annuelle combinée du Tchad, de la Guinée-Bissau, de la Somalie, de la Sierra Leone et de la République centrafricaine (Source).

Le problème d'excès de consommation électrique de Bitcoin est à relativiser !

Scalability Trilemma

Scalability Trilemma - Solutions

  • Mise à l’échelle horizontale: augmenter la taille des blocs au détriment de la décentralisation et de la sécurité - Bitcoin Cash (8 MB).
  • Mise à l’échelle verticale: Bitcoin Layer 2 - Lightning Network.
  • Mise à l’échelle en parallèle: Sidechain au détriment de la décentralisation et de la sécurité - Liquid Network.
  • Sacrifier la décentralisation: Blockchain privée.

Mise à l’échelle verticale

Bitcoin Layer 2 - Lightning Network ⚡

Layer 2

  • Transactions off-chain instantanées.
  • Capacité de traiter des millions de transactions par seconde.
  • Frais de transactions minimes.
  • Objectif: faciliter la fonction de moyen d’échange de Bitcoin.
  • Analogie: ardoise dans un bar.
  • lightning.network

Layer 1

  • Consolidation (settlement) on-chain.
  • Validation décentralisée avec preuve et garantie cryptographique.

Lightning Network - Portefeuilles




Mise à l’échelle en parallèle

Sidechain - Liquid Network (L-BTC)

  • Le Liquid Network est une sidechain de la blockchain Bitcoin, créé par la société Blockstream.
  • Constituée d'une fédération de validateurs indépendants (semi-centralisé).
  • Propose une conversion 1-1 entre BTC et L-BTC (two-way peg).
  • Permet d'exécuter des transactions confidentielles, de réaliser des émissions d'actifs financiers numériques (digital assets), d'échanger des tokens, stablecoins, NFT avec une consolidation (settlement) en 2 minutes (2 blocs, 1 bloc par minute).

Blockchain privée

Blockchain publique

  • Permissionless.
  • Analogie: Internet.
  • Exemples:
    • Bitcoin.
    • Ethereum.
    • Cryptomonnaies.

Blockchain privée

  • Permissioned.
  • Analogie: Intranet.
  • Exemples:
    • Blockchain d'entrerpise: blockchain interne à une seule entreprise.
    • Blockchain fédérée: blockchain industrielle partagée entre plusieurs entreprises.
  • Slogan: "Blockchain not Bitcoin".

Blockchain publique vs Blockchain privée

Blockchain publique

  • Ouverte à la participation: lecture, écriture et audit en libre accès (permissionless).
  • Pseudo-anonyme.
  • Token natif (cryptomonnaie): actif échangé vit on-chain.
  • Mineurs/Minters avec récompense (PoW/PoS).
  • Lente et montée en charge difficile.
  • Décentralisée.
  • Sécurité élevée.

Blockchain privée

  • Fermée: lecture, écriture et audit seulement sous autorisation pour une ou plusieurs entités (permissioned).
  • Identité établie des acteurs.
  • Pas de token natif: actif échangé vit off-chain (single point of failure).
  • Validateurs sans récompense.
  • Efficace et montée en charge possible.
  • Partiellement centralisée.
  • Sécurité affaiblie.

Base de données partagée vs Blockchain privée

Base de données vs Blockchain privée - Comparatif

Base de données Blockchain privée
Centralisation Totale Partielle
Mise en service Optimisée et garantie par des dizaines d’années d’expérience Technologie récente, développement coûteux, encore expérimental
Bug Restauration, sauvegarde et rollback rapide Données inaltérables, requiert un consensus de tous les noeuds (validateurs) pour un rollback
Acteur malhonnête Révocation instantanée de l’accès de l’acteur malhonnête Consensus de tous les validateurs pour révoquer un acteur malhonnête
Enregistrement Écriture, validation et stockage exécutés une seule fois Écriture, validation et stockage exécutés par tous les noeuds de la blockchain
Actualisation logicielle Actualisation rapide et centralisée Doit être réalisé par tous les noeuds pour conserver le consensus sur les règles de validation à appliquer, ou doit être rétrocompatible
Mise à l’échelle Facile et rapide à mettre en place Délicate, le nombre de noeuds est un frein

Blockchain privée - Une fausse bonne idée ?

Félicitations ! Vous avez créés une base de données partagée inefficiente 😩

  • Une blockchain privée est plus coûteuse qu’une base de données en terme de mise en service, maintenance, actualisation, mise à l’échelle...
  • Le point fort d’une blockchain privée est sa nature "partiellement" décentralisée qui minimise le risque de single point of failure.
  • Si les règles de validation et actualisations de software changent fréquemment, le choix d’une base de donnée sera plus adaptée qu’une blockchain privée.

L’inaltérabilité et la résistance au changement est un atout de stabilité pour une monnaie, c’est pour cette raison qu’une blockchain est un outil bien adapté aux cryptomonnaies, mais pas nécessairement à d'autres usages.

Blockchain privée - Usage

Questions à se poser...

  • Le processus business s’exécute-t-il dans un environnement où interviennent différents acteurs qui ne sont pas de confiance ?
  • Ces acteurs ont-ils accès à une base de données partagée avec des droits d’accès en écriture ?
  • Peut-on éliminer le coût des intermédiaires centralisés en charge de gérer les droits d’écriture de ces différents acteurs et en charge de consolider leurs données ?
  • Les données représentent-t-elles des biens physiques ou numériques ? Si physiques, peut-on les numériser sous forme de jetons numériques (tokenization) ?
  • Les données échangées entre les acteurs peuvent-elles être représentées sous forme transactionnelles ?
  • La rapidité est-elle un élément non primordial ?
  • La sécurité qu’offre une blockchain décentralisée est-elle à privilégier par rapport au contrôle fourni par un système centralisé ?

Avez-vous répondu oui à toutes ces questions ?

Blockchain privée - Implementations

Distributed Ledger Solutions


Blockchain & Entreprise

  • Monnaie
  • Mise à l'échelle
  • Timechain
  • Applications business

Timechain

Le terme blockchain n’a jamais été employé par Satoshi Nakamoto, il est apparu plus tard…Satoshi Nakamoto a préféré employer le terme timechain.

  • Structure: blockchain (chaîne de blocs).
  • Fonction: timechain (chaîne chronologique d’événements).

Timechain - Enregistrement d’information

Selon les blockchains, il existe la possibilité d’introduire dans une transaction un texte/image arbitraire de taille réduite (NFT) ou de créer des tokens fongibles (stablecoin/DeFi) qui seront enregistrés et visibles dans la blockchain lorsque la transaction sera inclue dans un bloc.

  1. Bitcoin OP_RETURN (max. 80 bytes).
  2. Bitcoin Ordinals, Inscriptions, Runes (max. 40 Mb) -> ordinals.com.
  3. Tokens BRC-20

L’information peut être vraie ou fausse!

Timechain - Vérité vs Validité vs Existence

Mythe: les informations contenues dans la blockchain sont vraies.

  • Dans une blockchain la notion de "vérité" signifie que la majorité des noeuds du réseau sont arrivé à un consensus sur l’ordre et la validité des blocs de transactions.
  • La majorité des noeuds se sont mis d’accord sur une même "vérité" chronologique transactionnelle.
  • Enregistrer une information dans la blockchain ne veut pas dire que cette information soit comme par magie automatiquement vraie ou correcte.
  • Enregistrer une information dans la blockchain établit un point dans le temps à partir duquel on peut établir avec certitude que cette information a existé (timechain).

La blockchain ne nous dit rien sur la véracité d’une information !

Timechain - Analogie

Le tampon daté par la poste appliqué sur le timbre d’une enveloppe qui garantit que ce qui a été mis dans l’enveloppe l’a été avant la date du tampon.

Une timechain est une base de données publique et distribuée qui permet à n’importe qui de constater que "quelque chose" a eu lieu à un moment donné. Une timechain est un journal horodaté (timestamping log).

Timechain - Preuve d'Existence

Proof of Existence (PoE)

Timechain - Certification

  • Prouver qu’un document a existé à une date donnée sans révéler ni rendre public son contenu.
  • Certifier que celui qui a publié le document a été en possession de ce document sans révéler ses informations personnelles.
  • Ne garantit pas que le propriétaire du document en est l’auteur original.
  • Garantir l’intégrité du contenu du document.

L’ancrage de l'empreinte d'un document permet de prouver publiquement que vous possédez une certaine information sans en révéler son contenu ni votre identité.

La Preuve d'Existence offre un service de certification décentralisé.

Timechain - Services de notariat

Notary Services


Timechain - Provably Fair

  1. Un opérateur de jeux de hasard en ligne (casino) peut prouver que le résultat d’un jeu a été produit selon une procédure aléatoire honnête et loyale.
  2. Un joueur peut vérifier que le tirage d’un jeu n’a pas été manipulé.

Le procédé consiste en 3 étapes:

  1. Tirage au sort.
  2. Vérification de l'empreinte du serveur.
  3. Vérification du résultat du tirage au sort.

Timechain - Provably Fair

Tirage au sort

  • Seed = Nombre aléatoire très grand.
  • Nonce = Nombre à usage unique incrémenté de 1 à chaque nouveau pari. Le nonce est utilisé parce que les joueurs ne changent pas de seed après chaque pari. Comme le résultat est généré en combinant le seed du serveur et le seed du client, si les deux restent identiques pour le pari suivant, le résultat du pari suivant sera le même que celui du pari précédent.

Timechain - Provably Fair

Vérification de l'empreinte du serveur

Vérification du résultat du tirage au sort

Timechain - Provably Fair

Exemples de jeux en ligne provably fair



Timechain - Audit

Dans une timechain un fournisseur et consommateur de données ont la preuve qu’une donnée a existé à un temps t et qu’elle n’a pas été altérée.

Blockchain & Entreprise

  • Monnaie
  • Mise à l'échelle
  • Timechain
  • Applications business

Applications business

Cas d’utilisations types:

  • La blockchain comme registre de propriété.
  • La blockchain comme registre d’activité (timechain).

Applications business

Registre de propriété

  • Usage: enregistrer et prouver la possession d’un bien de valeur (asset), et vérifier le transfert de propriété d’un bien.
  • Bien: jeton numérique (digital token).
    1. Jeton numérique natif constitue le bien (bitcoin, cryptomonnaie).
    2. Jeton numérique représente un droit de propriété sur un bien externe (titre financier, bien immobilier,...).
  • Consensus: le réseau valide, accepte et enregistre dans la blockchain la transaction de changement de propriété.

Applications business

Registre d’activité

  • Usage: enregistrer une preuve horodatée inaltérable de l'existence d’une donnée.
  • Donnée: tout type d’information sous forme d’empreinte (un document, une image, un événement, un contrat signé entre parties...).
  • Consensus: le réseau valide, accepte et enregistre dans la blockchain l’empreinte de la donnée au moyen d'une transaction.

Dans le cas d’un contrat légal entre parties, une transaction multi-signatures avec l’empreinte (hash) du contrat est signée cryptographiquement (clé privée) par chacune des parties à des fins de non-répudiation (ne peut être remis en cause par l'une des parties).

Applications business - Exemples

  • Echange de titres financiers (actions, obligations…).
  • Registre cadastral et foncier.
  • Echange d’objets virtuels dans les jeux vidéos.
  • Traçabilité chaîne logistique (transparence et authentification: provenance, transporteur, distributeur, revendeur) - Industrie alimentaire, automobile, pharmaceutique, luxe...
  • Protection et transfert de copyright (photo, musique...).
  • Emission et transfert de certificats (diplôme d’étude, de formation professionnelle, certificat d’origine...).
  • Emission et transfert de contrats d’assurance.
  • Enregistrement de documents légaux.
  • Programme de fidélisation.
  • Commerce de production d’énergie (panneaux solaires) ou de certifcats carbone.
  • Micro-paiements entre objets connectés (IoT).
  • Paiement automatique par des véhicules autonomes (parking, péage, assurance, recharge, lavage...).

Applications business - Quel futur ?

  • ⚠️ Attention à ne pas vouloir intégrer à tout prix la technologie blockchain à des modèles d’entreprises et économiques existants.
  • 💡️ De nouveaux services et une nouvelle industrie vont émerger et se construire autour de la blockchain.

Un protocole de transfert de valeur


Internet permet de transmettre et échanger librement de l’information.


La blockchain permet de transmettre et échanger librement de la valeur sans déposer sa confiance dans une entité de contrôle centralisé.

Blockchain

Probablement la base de données la plus lente du monde...

Mais la plus fascinante !

It’s a feature not a bug

Vous avez apprécié ce cours ? Soutenez notre travail, faites un don 🙏