Une adresse bitcoin est composée de 27 à 34 caractères choisi parmi les 58 possibles de l'encodage base58check (
https://en.bitcoin.it/wiki/Base58Check_encoding).
-L'adresse bitcoin à toujours une longueur de 25 octets. C'est la conversion en base58check qui donne une adresse qui contient entre 27 et 34 caractères (cela dépends de la valeur binaire de l'adresse).
Bonjour,
au sujet de la longueur d'une adresse, on voit de tout, parfois entre 27 et 34, parfois entre 26 et 35, etc...
Qu'en est-il exactement ?
Par exemple ici :
https://en.bitcoin.it/wiki/Address paragraphe What's in an address, ca dit entre 26 et 34.
Most Bitcoin addresses are 34 characters. They consist of random digits and uppercase and lowercase letters, with the exception that the uppercase letter "O", uppercase letter "I", lowercase letter "l", and the number "0" are never used to prevent visual ambiguity.
Some Bitcoin addresses can be shorter than 34 characters (as few as 26) and still be valid. A significant percentage of Bitcoin addresses are only 33 characters, and some addresses may be even shorter. Every Bitcoin address stands for a number. These shorter addresses are valid simply because they stand for numbers that happen to start with zeroes, and when the zeroes are omitted, the encoded address gets shorter.
As quelle étape du processus de passage de la clé publique à l'adresse, correspond le "nombre débutant par 0" dont il est question dans l'explication ci-dessus ?
Car le résultat d'une fonction de hachage produit toujours un résultat de longueur fixe, donc ca ne peut être que la conversion en base58check qui induit la réduction de la longueur de l'adresse, exact ?
C'est donc si le résultat de l'étape 6 donne un nombre commencant par des zéros, que l'adresse sera plus courte ?Pour déduire une adresse bitcoin à partir de là clé public, il faut appliquer l'algorithme suivant:
1: Calculer le hash de la clé public avec SHA-256
2: Calculer le hash du précédent hash avec RIPEMD-160
3: Ajouter la version du réseau au début du hash (0x00 pour les adresses "classiques")
4: Calculer le hash du résultat précédent avec SHA-256
5: Calculer un nouveau hash à partir du hash précédent avec SHA-256 (oui oui on fait bien deux hash SHA-256 à suivre)
6: Ajouter les 4 derniers octets du résultat précédent à la fin du résultat obtenu à l'étape 3 (le hash RIPEMD-160 avec la version ajoutée au début). On obtient l'adresse bitcoin sous forme binaire sur 25 octets.
7: Et enfin, convertir ce dernier résultat en base58check (cette conversion donne l'adresse telle qu'on peut la voir partout)
Et pourquoi ca ne descend pas à moins de 26 ?
Si quelqu'un peut donner la démonstration. Merci.