La cryptographie dans Bitcoin

in #cryptofr7 years ago

Je ne suis pas un expert en cryptographie mais je connais bien le fonctionnement de 2 technologies utilisées dans le protocole Bitcoin.

  • Les Hashs.
  • La signature électronique.

Les Hashs

Une fonction de hachage, est une fonction qui prend en entrée un document de taille variable, et va sortir une chaine de caractères de taille fixe. Dans Bitcoin on va utiliser SHA-256 qui va coder la sortie sur 256bits (pour rappel, un "bit" est représenté par 1 ou par un 0)

Quelques propriétés très utiles :

  • Très rapide : un ordinateur, même très vieux, ne mettra que quelque millisecondes pour calculer le hash d'un document.
  • Impossible de prédire la sortie : le résultat est complètement imprévisible.
  • La même entrée donnera toujours la même sortie.
  • Impossible de retrouver l'entrée à partir de la sortie.
  • Le moindre changement, même d'un seul bit, au niveau de l'entrée, engendre une sortie complètement différente

Typiquement, on va utiliser les hashs pour générer une "empreinte digitale" d'un document. Si vous changez le moindre pixel de votre pdf (par exemple) le hash qui sera généré sera complètement différent. Ce sera la preuve que le document n'est plus le même.

Où sont utilisés les hashs dans Bitcoin ? Et bien partout :) Que ce soit pour la transmission de votre transaction, pour lier chaque bloc de la blockchain entre eux ou bien tout simplement si vous êtes un mineur : vous calculez une tonne de hash par secondes.

La signature électronique

Rien de compliqué, vous aller avoir 2 clés.

  • La clé privée : comme son nom l'indique, elle doit rester privée et connue seulement par vous. Cette clé va être utilisée pour chiffre votre transaction : c'est votre signature.

  • La clé publique, qui sera envoyée avec votre transaction et qui va permettre à tout le monde de déchiffrer votre message et par conséquent, vérifier que c'est bien vous à l'origine de votre transaction.

Dans le protocole Bitcoin, la clé privée est codée sur 256bits. Soit 2^256 possibilités. C'est un chiffre astronomique, impossible à représenter. Il y aurait même plus de possibilités que d'atomes dans notre univers...Donc oui, votre clé privée n'est en fait qu'un nombre. C'est d'ailleurs pour cela que vous DEVEZ générer votre clé privée en dehors de toute connexion réseau. Si vraiment vous avez un peu de temps à perdre, vous pouvez générer votre clé privée avec une pièce de monnaie :

  • Face = un 0
  • Pile = 1

Il suffit de répéter l'opération 256fois, et vous aurez une clé privée valide. Magique non?

Une fois que vous avez ce nombre, la clé publique est créée en appliquant une fonction de hachage sur la clé privée. Par conséquent, elles sont "liées" mais IMPOSSIBLE de retrouver la clé privée à partir de la clé publique.

Et enfin, votre adresse de réception est elle aussi générée à partir de la clé publique. Là on applique même une double fonction de hachage, tout en rajoutant une petite vérification (comme pour un compte bancaire) afin d'être sûr que l'adresse est correcte.

Vous comprenez j'espère qu'il est extrêmement important de garder sa clé privée : c'est à partir de cette clé que tout est recalculé.

Sort:  

Très bonne article, tu expliques très bien.

Congratulations @decrypto! You received a personal award!

1 Year on Steemit

Click here to view your Board of Honor

Do not miss the last post from @steemitboard:

Saint Nicholas challenge for good boys and girls

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @decrypto! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.16
TRX 0.13
JST 0.027
BTC 60535.76
ETH 2598.15
USDT 1.00
SBD 2.54