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
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
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
17. Portefeuille / Wallet
Ou encore sur le web : https://www…
Application sur ordinateur Application sur téléphone Portefeuille matériel
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
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
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. 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.
29. 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
30. 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.
31. Bon , ok, Seed et Clé privée, on fait quoi maintenant ?
35. 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
38. 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
40. 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
41. 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
48. 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
49. 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
50. Signature
La signature a été générée avec la clé privée et la transaction
Fonction à sens unique (ECDSA)
55. NODES
Les nodes sont des constituants du réseau Bitcoin
Ordinateurs, serveurs, … qui communiquent via internet
Elles appartiennent à des entreprises, des particuliers, …
56. 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
62. SignatureVérification de la
La node va examiner transaction,
signature et clé publique, pour
vérifier la validité de la signature
63. 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.
“
64. 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
70. 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
71. 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
73. 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
74. 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
75. 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 ?
76. 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
77. 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
78. Éviter trop de split
Pourquoi 10 minutes ?
sur la blockchain
80. 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
83. 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
84. 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
85. 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)
86. 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
87. 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
88.
89. 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
91. 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
94. En pratique, les mineurs n’œuvrent pas seuls
Ils se regroupent en “coopérative” :
Les minings pools
95. 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)
97. 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
99. 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
103. 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
104. Dès qu’un bloc est ajouté à une chaîne, l’autre chaîne est abandonnée
105. Dès qu’un bloc est ajouté à une chaîne, l’autre chaîne est abandonnée
106. 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
107. Les transactions qui n’ont pas été confirmées dans
les autres blocs sont remises dans la mempool
108. Les transactions qui n’ont pas été confirmées dans
les autres blocs sont remises dans la mempool
109. TransactionCycle de vie d’une
Envoi au
réseau Vérification
Ajout dans
un bloc
Minage
Vérification
et ajout à la
blockchain
118. 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
122. 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
127. 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