Author

Topic: Questions sur les adresses Bitcoin (Read 1211 times)

legendary
Activity: 1176
Merit: 1233
May Bitcoin be touched by his Noodly Appendage
July 19, 2013, 09:19:41 AM
#8
Ah je savais même pas! D'ailleurs je l'ai même jamais lu cet article, j'ai entendu dire qu'il était bof.

Quote
Une adresse bitcoin est fabriquée à partir du RIPEMD-160 du SHA-256 de la clef publique que l'adresse identifie.

Comment est déterminée la clef publique ?
Tout ça marche grâce à des courbes spéciales, les courbes elliptiques (y^2 = x^3 + a * x + b mod p).
Bitcoin en utilise une particulière, la secp256k1. Sur cette courbe on définit l'opération "addition de point" et on y prend un point précis, appelé G.

Une clé privée pk est seulement un nombre.
La clé publique est alors (pk * G), c'est-à-dire (G + G + G + ... + G).

C'est donc un point avec deux coordonnées: x et y. Lorsque qu'on veut la transformer en "texte", il y a deux façons de faire (une clé publique, et donc une clé privée correspond donc à DEUX adresses): une méthode "non-compressée" (ce qui a été utilisé par défaut au début) et une "compressée".

  • Non-compressée: préfixe+X+Y
    • préfixe = '04'
    • X est la valeur de x en hexadécimal, de longueur 32 octets (64 caractères hexadécimaux, on remplit de '0' à gauche si x est trop petit)
    • Y est la valeur de y en hexadécimal, de longueur 32 octets (64 caractères hexadécimaux, on remplit de '0' à gauche si y est trop petit)

  • Compressée: préfixe+X
    • préfixe = '02' si Y est pair, et '03' si Y est impair
    • X est la valeur de x en hexadécimal, de longueur 32 octets (64 caractères hexadécimaux, on remplit de '0' à gauche si x est trop petit)


Par exemple:
Prenons la clé privée 14063D4FCF4C0F0BFDB1E152BC18EBE286FE7CDA3B0E4115062EAE81D573048A en hexadécimal, c'est-à-dire 9057281212247872144055363307744826308390942297983618612007248844883030639754 en décimal (preuve)
La clé publique est le point ayant pour coordonnées:
  •   x=92696E83591C650907DCDFFBF966F8FA932C16462F0D248E05F8C6F4C3CC82DA en hexadécimal
  •   y=8898735D0F504066F2F1ED97C14C257A30E920D0D03F81B69614ACF699544965 en hexadécimal


Les équivalents en texte sont donc:
  • 0292696E83591C650907DCDFFBF966F8FA932C16462F0D248E05F8C6F4C3CC82DA8898735D0F504 066F2F1ED97C14C257A30E920D0D03F81B69614ACF699544965
  • 038898735D0F504066F2F1ED97C14C257A30E920D0D03F81B69614ACF699544965  (03 car y est impair)

Les hash160 correspondants sont ripemd160(sha256(publickey)) où publickey est la version binaire des 02xxx et 03xxx ci-dessus. La conversion est primordiale!
Ce qui donne '4a8299e0b5e21692a99b99cc552a8f77df6ee307' et 'aa1abed018c83ff17055fdfbe9fed3e0530c4512'

Liens utiles:
https://www.bitaddress.org
http://www.fileformat.info/tool/hash.htm
http://fr.wikipedia.org/wiki/Cryptographie_sur_les_courbes_elliptiques
http://fr.wikipedia.org/wiki/Courbe_elliptique
copper member
Activity: 76
Merit: 15
BTC TRADER SINCE 2010
July 19, 2013, 08:41:15 AM
#7
Je viens de regarder comment été fabriqué ces adresses, j'adore ta réponse jackjack tiré de Wiki Cheesy

Quote
Une adresse bitcoin est fabriquée à partir du RIPEMD-160 du SHA-256 de la clef publique que l'adresse identifie.

Comment est déterminée la clef publique ?
legendary
Activity: 1176
Merit: 1233
May Bitcoin be touched by his Noodly Appendage
July 18, 2013, 12:29:43 PM
#6
Si deux personnes possèdent la même adresse c'est qu'ils possèdent tous les deux la clé privé correspondante. Cf mon message précédent.

Je pense qu'il est important de se poser ce genre de questions.
Et encore plus important de se rendre compte que c'est impossible dans la vie réelle. Garde toujours en tête qu'il y a 30 fois plus d'adresses possibles que de molécules d'eau sur Terre et que rien qu'en toi il y a déjà un milliard de milliards de milliards (1000000000000000000000000000) de molécules d'eau.
legendary
Activity: 1484
Merit: 1003
Still wild and free
July 18, 2013, 12:14:27 PM
#5
Et si admettons, 2 personnes possèdent la même adresse, comment ça se passe ? (Vu que c'est possible)

Tout est dans le "admettons". Les chances que ca arrivent sont ridiculement petites, c'est une probabilité similaire à gagner l'euromillion 5 fois de suite.
En théorie, on peut répondre à ta question (de même qu'on peut spéculer sur un type qui gagne 5 fois de suite...), mais si tu connais pas grand chose aux bitcoins, ne perd pas ton temps avec ça il y a plus pertinent comme interrogation. Quoi que ce soit de pratique, et pas un truc théorique.
copper member
Activity: 76
Merit: 15
BTC TRADER SINCE 2010
July 18, 2013, 11:52:57 AM
#4
Et si admettons, 2 personnes possèdent la même adresse, comment ça se passe ? (Vu que c'est possible)
legendary
Activity: 1176
Merit: 1233
May Bitcoin be touched by his Noodly Appendage
July 18, 2013, 11:22:49 AM
#3
Les bitcoins ne bougent pas.
Tu dis juste que ton bitcoin appartient maintenant à la personne qui peut prouver qu'il a la clé privée correspondant à l'adresse X.


Si plusieurs la possèdent, ils peuvent tous utiliser les bitcoins (mais une fois que c'est fait les autres ne peuvent plus bien sûr). Si personne ne la possède, les bitcoins sont condamnés.
legendary
Activity: 1484
Merit: 1003
Still wild and free
July 18, 2013, 11:12:27 AM
#2
Peut - on avoir 2 adresses Bitcoin similaire ? (je pense que non, mais pourquoi justement ?)
Il est possible de générer deux fois la même addresse indépendament. Mais c'est ridiculement improbable (de l'ordre d'une chance sur 2^160).

Si j'envoie 1 bitcoin à l'adresse X, comment le Bitcoin y va ? comment sait-il ou se trouve l'adresse ?
Les bitcoins sont plus malins que tu ne le crois, et peuvent trouver la bonne addresse même dans le noir.
copper member
Activity: 76
Merit: 15
BTC TRADER SINCE 2010
July 18, 2013, 11:08:12 AM
#1
Salut

J'ai 2 questions sur les adresses Bitcoin :

Peut - on avoir 2 adresses Bitcoin similaire ? (je pense que non, mais pourquoi justement ?)

Si j'envoie 1 bitcoin à l'adresse X, comment le Bitcoin y va ? comment sait-il ou se trouve l'adresse ?

Merci
Jump to: