Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Bitcoin, comment ça marche ?

562 views

Published on

Fonctionnement détaillé (et simple à comprendre je l'espère) de Bitcoin.

Retrouvez la vidéo ici : https://youtu.be/M7ov5BqYO-8

Si vous voulez faire une donation (en BTC), voici une adresse : 3EfwTwUQnBq7g5AKaHGGKJUMnfP6doShon

Published in: Economy & Finance
  • Be the first to comment

Bitcoin, comment ça marche ?

  1. 1. itcoin
  2. 2. C’est quoi le Bitcoin ? Portefeuille & Adresse Création de transaction Réseau Bitcoin Minage Blockchain
  3. 3. se concentrer sur le fonctionnement Le but ?
  4. 4. C’est quoi le Bitcoin ? Une cryptomonnaie décentralisée ?
  5. 5. B I T C O I N Décalage des lettres de 1 C J U D P J O B -> C I -> J T -> U C -> D O -> P I -> J N -> O Cryptographie Exemple simple
  6. 6. Monnaie ¥£€ $ Euro - EUR Dollar Américain - USD Yuan - CNYLivre sterling - GBP
  7. 7. Centralisé Décentralisé Décentralisé Pouvoir/contrôle réparti entre plusieurs entités
  8. 8. Crypto monnaie décentralisée
  9. 9. Nom : Bitcoin Surnom : BTC Naissance : 03/01/2009 Créateur(s) : Satoshi Nakamoto
  10. 10. Le code de Bitcoin est open source (accessible à tous) Beaucoup d’entreprises, de développeurs particuliers, etc y travaillent dessus Le fait que le code soit visible de tous évite de potentielles dérives CodeOpen Source Les modifications importantes sont débattues avant implémentation
  11. 11. Interface Envoyer / Recevoir Portefeuille Adresse de portefeuille Bitcoins 0.0025 BTC Pour utiliser des bitcoins il vous faut plusieurs choses
  12. 12. Transaction 1. Le receveur donne son adresse 2. L’expéditeur renseigne ou scan l’adresse 3. L’expéditeur indique le montant en bitcoin ou en €, $, £, … 4. L’expéditeur envoie le paiement 3aze87DqsjHg876dsq 976jkhqsd676DgJQS côté utilisateur
  13. 13. Ouvrons le capot
  14. 14. 20€ 0.0025 BTC Vous Un ami Un ami ou une plateforme d’échange
  15. 15. 0.0025 BTC = 250 000 satoshi Un peu comme 1€ = 100 centimes
  16. 16. Portefeuille et Adresse
  17. 17. Portefeuille / Wallet Ou encore sur le web : https://www… Application sur ordinateur Application sur téléphone Portefeuille matériel
  18. 18. ! Tous les portefeuilles ont des 
 avantages et des inconvénients Attention aux faux portefeuilles Ne criez pas sur tous les toits que 
 vous avez des bitcoins Vous êtes responsable de la sécurité de vos bitcoins
  19. 19. portefeuille Maintenant, voyons le rôle du (et entrons dans la partie technique)
  20. 20. Le portefeuille créé pour vous ce qu’on appelle une clé privée. PortefeuilleRôle du
  21. 21. E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262 Exemple de clé privée Clé privée
  22. 22. E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262 Pas facile à retenir on est d’accord… Clé privée
  23. 23. C’est pourquoi cette clé privée peut être générée avec une graine. Une suite de 12 ou 24 mots plus facile à retenir abandon balance design elephant siren hamster giraffe umbrella winner emotion run kiwi La seed est parfois accompagnée d’un mot de passe additionnel Seed / Graine
  24. 24. Seed / Graine Stockage à froid
  25. 25. Seed Clé privée Comment on passe de la Seed à la clé privée ? HMAC-SHA512 Avec cette fonction
  26. 26. Fonction f(x) = x * 4 f(5) = 5 * 4 = 20 f(100) = 100 * 4 = 400 Le devoir de cette fonction est de multiplier par 4 ce qu’on lui envoie Exemples un exemple
  27. 27. Seed Clé privée Comment on passe de la Seed à la clé privée ? HMAC-SHA512 Ici, c’est donc le même principe sauf que la fonction HMAC-SHA512 est une fonction de hachage cryptographique
  28. 28. On dit de ces fonctions qu’elles sont à sens unique. Fonction de Hachage cryptographique Il est facile de produire un résultat avec des paramètres mais impossible de retrouver les paramètres avec le résultat
  29. 29. Seed ou clé privée Conservez en plusieurs copies en sécurité. Si vous les perdez ou qu’on vous les voles, on vous vole vos bitcoins.
  30. 30. Bon , ok, Seed et Clé privée, on fait quoi maintenant ?
  31. 31. Une Clé Publique
  32. 32. Clé privée Comment on passe de la clé privée à la clé publique ? secp256k1 Un autre type de fonction à sens unique Clé publique
  33. 33. Avec cette Clé publique, on génère une Adresse
  34. 34. Comment on passe de la clé publique à l’adresse ? RIPEM-160 + SHA-256 + Base58Clé publique 2 fonctions à sens unique + Base58 pour rendre l’adresse plus lisible Adresse
  35. 35. Fonctions différentes Mais pourquoi toutes ces ? Cela permet d’avoir différentes couches de sécurité
  36. 36. Seed Clé privée Clé publique Adresse
  37. 37. Un moyen facile de retenir sa clé privée et de la retrouver Seed Un moyen d’accéder à ses bitcoins Clé publique Clé privée Vérifier la signature Adresse Un moyen de recevoir des bitcoins
  38. 38. J’ai enfin mon adresse Voilà tes bitcoins BTC0.0025 ENVOYER
  39. 39. Adresse Votre Pour l’instant vous ne donnez qu’une seule chose : Pas d’email, pas de nom, pas de prénom, … Donc un certain degré d’anonymat
  40. 40. Vous voilà donc en possession de 0.0025 BTC Si vous décidez d’acheter quelque chose, de transférer vos bitcoins, … Étudions maintenant ce qu’il se passe lors d’une Transaction
  41. 41. Création de transaction
  42. 42. Je vais vous faire dépenser vos bitcoins sur …
  43. 43. Une Pizza 10 000 BTC ?
  44. 44. Cette pizza coûte 10€ soit 0.0010 BTC Vous ouvrez votre portefeuille, scannez le QR Code, renseignez le montant et vous appuyez sur…
  45. 45. ENVOYER
  46. 46. TRANSACTION Votre portefeuille va générer une transaction
  47. 47. Transaction Le portefeuille compile les informations importantes côté portefeuille Montant à payer au receveur Adresse du receveur Votre Clé publique Votre Signature Montant pour les frais de minage 0.010 BTC 0.000012 BTC
  48. 48. Signature La signature a été générée avec la clé privée et la transaction C’est un moyen d’attester que l’expéditeur est en possession des fonds Sans révéler la clé privée Elle change lors de chaque transaction
  49. 49. Signature La signature a été générée avec la clé privée et la transaction Fonction à sens unique (ECDSA)
  50. 50. Réseau Bitcoin
  51. 51. RéseauPropagation de la transaction dans le Votre portefeuille
  52. 52. RéseauPropagation de la transaction dans le Votre portefeuille
  53. 53. RéseauBitcoin node Que sont ces nodes ? À qui appartiennent-elles ? Nœud en français
  54. 54. NODES Les nodes sont des constituants du réseau Bitcoin Ordinateurs, serveurs, … qui communiquent via internet Elles appartiennent à des entreprises, des particuliers, …
  55. 55. NODES: Les rôles Portefeuille Mineur Les nodes occupent des rôles différents au sein du réseau Full node Fully-Validating Node Aucune node n’a plus de pouvoir que ses pairs
  56. 56. NODESDifférentes + + + Bitcoin Core Solo Miner Une node peut occuper plusieurs rôles
  57. 57. Revenons à notre Transaction
  58. 58. TransactionVérification de la Bitcoins non dépensés Les vérifications à effectuer sont définies dans le code du Bitcoin Signature correcte etc…
  59. 59. SignatureVérification de la La node va examiner transaction, signature et clé publique, pour vérifier la validité de la signature
  60. 60. Seul le détenteur de la clé privée qui a généré cette clé publique aurait pu produire cette signature sur cette transaction “ Mastering Bitcoin de Andreas Antonopoulos Il existe une relation mathématique entre la clé privée et la clé publique qui permet d’utiliser la clé privée pour signer [une transaction] , et la clé publique pour valider cette signature sans révéler la clé privée. “
  61. 61. Vous pouvez acheter et vendre des cryptomonnaies mais ce ne sont pas des portefeuilles. Les plateformes d’échange gardent vos clés privées donc vous remettez votre sécurité entre leurs mains. Plateformes d’échange
  62. 62. Et après ? Transaction vérifiée
  63. 63. La transaction est envoyée aux autres nodes Elle est placée dans la mempool de la node Transaction vérifiée 1. 2.
  64. 64. MEMPOOL La mempool est la piscine de transactions vérifiées Vérifiées mais pas confirmées, pas encore… Vérifiée = valide Confirmée = reçue
  65. 65. Minage
  66. 66. MineurÀ quoi ressemble un
  67. 67. Va piocher dans sa mempool Et va constituer un bloc candidat Chaque node qui a le rôle mineur et qui reçoit la Transaction
  68. 68. Bloc candidat Les transactions avec les plus hauts frais sont choisies en 1er Il est appelé Bloc candidat car il n’est pas encore validé Transaction Coinbase Notre transaction Header du bloc On y reviendra plus tard
  69. 69. Transaction Coinbase Récompense qui sera versée au mineur Si il mine le bloc avec succès De combien est cette récompense ?
  70. 70. Transaction Coinbase 50 BTC 25 BTC 12.5 BTC 6.25 BTC 3.125 BTC 2009 2012 2016 2020 2024 2140 0 BTC La récompense par bloc miné diminue au cours du temps C’est le Halving, qui a lieu environ tous les 4 ans
  71. 71. 255075100 2009 2020 2032 2044 2056 2068 2080 2092 2104 2116 2128 2140 21 000 000 10 500 000 0 5 250 000 15 750 000 18 500 000 En 2020, environ 18 500 000 bitcoins créés via le minage sont en circulation Transaction coinbase
  72. 72. Le fonctionnement de Bitcoin le fait tendre vers une “monnaie” déflationniste Le nombre de bitcoins en circulation ne dépassera pas les 21 millions C’est la principale raison pour laquelle on le compare souvent à l’or Bitcoinmonnaie déflationniste ?
  73. 73. Minage Les mineurs doivent résoudre un problème mathématique Ce problème est complexe et conçu spécifiquement pour les ordinateurs Le problème à résoudre
  74. 74. Pour qu’un bloc soit miné environ toutes les 10 minutes Minage Le problème à résoudre La difficulté du problème est ajustée tous les 2016 blocs (environ 14 jours) en fonction de la puissance de minage sur le réseau
  75. 75. Éviter trop de split Pourquoi 10 minutes ? sur la blockchain
  76. 76. Problème mathématique À quoi ressemble concrètement ce ?
  77. 77. La fonction SHA-256 est utilisée Lorsqu’on lui passe un contenu elle nous donne un résultat Ce résultat aura toujours 64 caractères Minage Le problème à résoudre
  78. 78. SHA-256(Brigade Du Fric) 6c5adc1adeec9200c0f0c93cf52bea077a2a33e3918fa39c6f3af5175e11d8f5 SHA-256(Brigade Du Fric!) 0f27c623535e41327d736e8c3d04eeccfcf8a6ebe8ddf73c5932889076d4fb05 Un caractère peut complètement changer le résultat SHA-256
  79. 79. Démonstration de SHA-256 Cliquer ici pour accéder à la démo https://emn178.github.io/online-tools/sha256.html
  80. 80. Le mineur n’utilise pas n’importe quel texte Il utilise les informations du header du bloc candidat Date et heure Hash du bloc précédent Hash des transactions Nonce 000000004ebadb55ee9096c9a2f8880e09da59c0d68b1c228da88e48844a1485 0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098 1 2009-01-09 02:54:25
  81. 81. Date et heure Hash du bloc précédent Hash des transactions Nonce SHA-256( , , , ) 000000004ebadb55ee9096c9a2f8880e09da59c0d68b1c228da88e48844a1485 0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098 1 2009-01-09 02:54:25 Caractère “aléatoire” qui permet de changer le résultat facilement X X X 1
  82. 82. Trouver un résultat qui commence par un certains nombre de zéros (ou plus) Plus le nombre de zéros demandé est élevé, plus le calcul est complexe Ce nombre de zéros est ajusté en fonction de la rapidité des mineurs Objectif du mineur (Pour respecter la règle des 10 minutes par bloc)
  83. 83. SHA-256(X, X, X, 2 573 394 688) u847hdc91ed00p4[…]16y5 SHA-256(X, X, X, 1) 075428af3h9cd42[…]72k9 SHA-256(X, X, X, 2) 4un753e01azkbr9[…]0a34 SHA-256(X, X, X, 3) 00006fhu08ma7sw[…]y621 ... SHA-256(X, X, X, 2 573 394 689) 00000000839a8e6[…]6048 Trouver un résultat qui commence par 8 zéros ou plus
  84. 84. La meilleure solution pour le mineur est d’essayer au hasard Il y a un nombre IMMENSE de résultats possibles Il n’y a pas d’autres méthodes qui puissent lui permettre de tricher Il doit essayer encore et encore et encore… Résultatdu minage
  85. 85. Je vous donne 2 dés Obtiens un résultat inférieur à 10 Obtiens un résultat inférieur à 4 Plus rapide et facile de faire un lancé gagnant Plus long et difficile de faire un lancé gagnant Pour les mineurs c’est un peu le même principe avec le nombre de 0
  86. 86. Problème résolu Et après ?
  87. 87. 2 573 394 689 C’est la preuve que le mineur a travaillé Proof of work Ajout du NONCEdans le header avec les autres informations, c’est la réponse Preuve de travail Le mineur récupère plus tard la récompense (transaction coinbase) et les frais des transactions de son bloc
  88. 88. RéseauPropagation du bloc dans le
  89. 89. RéseauPropagation du bloc dans le
  90. 90. En pratique, les mineurs n’œuvrent pas seuls Ils se regroupent en “coopérative” : Les minings pools
  91. 91. BlocVérification du De la même façon que les transactions, les blocs sont vérifiés par les nodes Les nodes essayent de résoudre le Bloc avec la Réponse proposée par le mineur Ce sont les règles du consensus (Définies dans le code du Bitcoin)
  92. 92. Blockchain
  93. 93. BlocAjout de Quand les nodes ont vérifié le Bloc elle l’ajoute à Elles ont atteint le consensus à la Blockchain Quand la plupart des nodes ont réalisé cette opération : leur Blockchain
  94. 94. leurBlockchain Ça veut dire qu’il n’y a pas qu’une blockchain ?
  95. 95. Chaque Full node a sa propre copie de la blockchain Mais puisqu’elles obéissent aux mêmes règles : Les blockchains se ressemblent BlockchainOù est la
  96. 96. Résolvent un bloc Et si 2 mineurs en même temps ?
  97. 97. RéseauPropagation du bloc dans le
  98. 98. RéseauPropagation du bloc dans le
  99. 99. Il y a donc un split sur la blockchain Les mineurs vont travailler sur l’une des deux chaines Un split se produit environ 1 fois toutes les semaines sur Bitcoin
  100. 100. Dès qu’un bloc est ajouté à une chaîne, l’autre chaîne est abandonnée
  101. 101. Dès qu’un bloc est ajouté à une chaîne, l’autre chaîne est abandonnée
  102. 102. Dès qu’un bloc est ajouté à une chaîne, l’autre chaîne est abandonnée La chaîne la plus longue, qui a le plus de “Proof of work” est conservée
  103. 103. Les transactions qui n’ont pas été confirmées dans les autres blocs sont remises dans la mempool
  104. 104. Les transactions qui n’ont pas été confirmées dans les autres blocs sont remises dans la mempool
  105. 105. TransactionCycle de vie d’une Envoi au réseau Vérification Ajout dans un bloc Minage Vérification et ajout à la blockchain
  106. 106. Blocs Comment les sont liés entre eux ?
  107. 107. Les informations du header du bloc Hash du bloc précédent 000000004ebadb55ee9096c9a2f8880e09da59c0d68b1c228da88e48844a1485
  108. 108. 0839a8e6886ab5951d76f4114 c90947ee320161bbf18eb6048 000000006a625f06636b8bb6ac7b960a 8d03705d1ace08b1a19da3fdcc99ddbd 0000000082b5015589a3fdf2d4baff40 3e6f0be035a5d9742c1cae6295464449 000000004ebadb55ee9096c9a2f8880e 09da59c0d68b1c228da88e48844a1485 000000009b7262315dbf071787ad3656 097b892abffd1f95a1a022f896f533fc
  109. 109. 0839a8e6886ab5951d76f4114 c90947ee320161bbf18eb6048 000000006a625f06636b8bb6ac7b960a 8d03705d1ace08b1a19da3fdcc99ddbd 0000000082b5015589a3fdf2d4baff40 3e6f0be035a5d9742c1cae6295464449 000000004ebadb55ee9096c9a2f8880e 09da59c0d68b1c228da88e48844a1485 000000009b7262315dbf071787ad3656 097b892abffd1f95a1a022f896f533fc
  110. 110. 0839a8e6886ab5951d76f4114 c90947ee320161bbf18eb6048 000000006a625f06636b8bb6ac7b960a 8d03705d1ace08b1a19da3fdcc99ddbd 0000000082b5015589a3fdf2d4baff40 3e6f0be035a5d9742c1cae6295464449 000000004ebadb55ee9096c9a2f8880e 09da59c0d68b1c228da88e48844a1485 000000009b7262315dbf071787ad3656 097b892abffd1f95a1a022f896f533fc
  111. 111. 0839a8e6886ab5951d76f4114 c90947ee320161bbf18eb6048 a441b15fe9a3cf56661190a0b93b9dec 7d04127288cc87250967cf3b52894d11 d04b98f48e8f8bcc15c6ae5ac050801c d6dcfd428fb5f9e65c4e16e7807340fa e9058ab198f6908f702111b0c0fb5b36 f99d00554521886c40e2891b349dc7a1 334185493590a2c15332038effeff89b 1a68cc51defb81138d81dfea204864f4 La blockchain permet de constater l’immutabilité de Bitcoin mais ne la garantit pas C’est le minage qui garantit cette immutabilité
  112. 112. Bitcoins Où sont conservés mes ?
  113. 113. Dans le portefeuille ? NON
  114. 114. Vos bitcoins sont conservés dans la blockchain de chaque full node La blockchain est une base de données, un registre de toute l’histoire des transactions de Bitcoin BitcoinsOù sont les
  115. 115. Votre portefeuille récupère les transactions dans le réseau Et il additionne les Bitcoins non dépensés
  116. 116. C’est pour cela qu’en conservant votre Clé privée (ou Seed) Si vous perdez votre portefeuille vous pouvez accéder à vos Bitcoins
  117. 117. Notre Pizza
  118. 118. En général il est conseillé d’attendre 6 blocs pour avoir une preuve suffisante de l’irréversibilité de la transaction Pour une transaction peu chère comme une pizza, 1 bloc peut suffire Plus le montant est important plus il est conseillé d’attendre
  119. 119. Pour approfondir Des pistes
  120. 120. Attaque 51% Cette attaque est extrêmement improbable sur le réseau Bitcoin Une attaque qui peut permettre de réécrire l’histoire (où une partie)
  121. 121. Une solution en cours de développement Lightning Network Pour répondre au problème de scalabilité de Bitcoin
  122. 122. itcoin
  123. 123. Présentation créée par Brigade Du Fric Merci de nous citer si vous utilisez ce travail :) Typographies : Raleway, Boldness, Courrier, Luckiest guy youtube.com/brigadeDuFric WWW brigadedufric.com

×