Les adresses bitcoin ou adresse bitcoin Il s'agit d'une chaîne unique de chiffres et de lettres qui nous permet d'envoyer et de recevoir nos pièces en toute sécurité sur le réseau Bitcoin.
Comment une adresse bitcoin est-elle générée ? Quel est ton secret? On vous dit tout sur ce processus.
Avant de commencer, il est essentiel de mentionner que cet article s'adresse aux utilisateurs qui ont des connaissances sur Bitcoin et le monde de la cryptographie. Nous vous recommandons donc de revoir certains sujets de ce monde afin que vous puissiez les comprendre. Avec cela, vous serez très clair sur la relation entre Bitcoin et la création d'adresses.
Par où devriez-vous commencer ? Nous vous recommandons de lire : cryptographie asymétrique, fonction de hachage, Algorithmes SHA-256, ECDSA y Qu'est-ce qu'une adresse Bitcoin?
Eh bien, dans le monde de crypto-monnaies, une adresse est un identifiant, le lieu auquel une certaine quantité de crypto-monnaies est associée et allouée. Par conséquent, toute personne souhaitant envoyer ou recevoir des crypto-monnaies devra toujours avoir une adresse. Par exemple, dans Bitcoin, les adresses publiques ressemblent généralement à ceci : 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. Comme on peut le voir, il s'agit d'un ensemble de lettres et de chiffres alternés dont la longueur varie entre 26 et 32 caractères.
Pour créer une adresse, un total de 9 étapes sont nécessaires, que nous expliquerons en détail ci-dessous.
Processus de création d'une adresse Bitcoin
Le processus de création d'une adresse Bitcoin commence par la génération d'un Clé privée qui nous fournira l'usage exclusif des fonds. A partir de là, un clé publique, ce qui nous permettra de partager des informations avec d'autres personnes sans mettre les nôtres en danger.
L'obtention de la clé publique via la clé privée est due à l'application de l'algorithme ECDSA. Une implémentation très efficace de la cryptographie à courbe elliptique, où la courbe est utilisée comme point générateur secp256k1 pour obtenir la clé publique.
Ensuite, une fois cette paire de clés générée, le processus de génération des adresses publiques de Bitcoin commence.
1.- Sélectionnez la clé publique obtenu à partir du processus précédent. Autrement dit, à partir de l'application de l'algorithme ECDSA a la clé privée. Qui devrait avoir une apparence similaire à celle-ci:
0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
2.- Appliquer un hachage à la clé publique en implémentant l'algorithme SHA-256. Cet algorithme permet de générer des sorties (sorties) d'extension fixe à partir d'entrées (entrées) d'extension variable, qui sont irréversibles. Par conséquent, ils sont unidirectionnels et il n'est pas possible de déduire la clé privée via la clé publique.
Après avoir appliqué la fonction de hachage, nous obtiendrons un Flux de 256 bits:
0b7c28c9b7290c98d7438e70b3d3f7c848fbd7d1dc194ff83f4f7cc9b1378e98
3.- Hashear à nouveau la sortie obtenue précédemment, en appliquant dans ce cas l'algorithme MÛR MD-160. avec lequel nous obtiendrons un Flux de 160 bits:
f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
4.- Ajouter l'octet de version utilisé pour le réseau principal Bitcoin (0x00) devant la sortie obtenue à partir de l'application de l'algorithme de hachage RIPEMD-160. Avec cela, nous obtiendrons une adresse Bitcoin au format hexadécimal, qui ressemblera à ceci:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31
Et en ajoutant cet octet, nous pouvons également identifier et distinguer les adresses Bitcoin des autres crypto-monnaies qui utilisent également le protocole.
5.- Faites le hachage avec l'algorithme SHA-256 au résultat obtenu à partir du RIPEMD-160. Cette étape est nécessaire en tant que mécanisme de vérification pour vérifier que l'adresse Bitcoin est correctement orthographiée.
ad3c854da227c7e99c4abfad4ea41d71311160df2e415e713318c70d67c6b41c
6.- Appliquer le hachage avec l'algorithme SHA-256 au résultat du hachage précédent. Avec cette étape, l'adresse obtenue est concaténée. Comme nous l'avons déjà mentionné, l'algorithme SHA-256 est appliqué deux fois comme mécanisme de vérification.
c7f18fe8fcbed6396741e58ad259b5cb16b7fd7f041904147ba1dcffabf747fd
7.- Choisissez les 4 premiers octets du dernier hachage SHA-256, qui représentent le somme de contrôle de l'adresse Bitcoin. Dans cet exemple, ils seraient:
c7f18fe8
8.- Ajoutez les 4 octets de la somme de contrôle du point précédent, au hachage étendu RIPEMD-160 à partir du point 4. Il s'agit d'une adresse binaire Bitcoin de 25 octets:
00f54a5851e9372b87810a8e60cdd2e7cfd80b6e31c7f18fe8
9.- Convertissez le résultat de la chaîne d'octets en utilisant l'encodage Base58Check, utilisé pour encoder les adresses Bitcoin. Ainsi, la chaîne d'octets sera transformée en chaîne base58.
1PMycacnJaSqwwJqjawXBERnLsZ7RkXUAs
C'est le format le plus utilisé pour les adresses Bitcoin. Donc l'encodage Base58Vérifier convertit la chaîne d'octets en un ensemble de chiffres et de lettres majuscules et minuscules, afin de les rendre plus faciles à distinguer. Bien que dans l'ensemble, ce sont encore des personnages illisibles et qui, à première vue, ne sont pas cryptiques.
Vous pouvez donc créer une adresse bitcoin afin que nous puissions l'utiliser comme nous le souhaitons. Tout ce processus est également effectué avec la Vanity Address, seulement dans ce dernier cas nous effectuons une génération par force brute afin de rechercher une adresse personnalisée.
Pour en savoir plus sur ces types d'adresses, consultez notre article sur Vanity Addres.
Caractéristiques des adresses Bitcoin
- Chaque adresse Bitcoin publique pèse environ Octets 25.
- Ils ont une longueur de entre 26 et 32 caractères.
- Ils peuvent commencer par le chiffre 1, pour les adresses standard (P2PKH) ou numéro 3, pour adresses multi-signatures (P2SH). Aussi, les indications SegWit commencer par bc1 (plage32). D'autre part, les directions Testnet Bitcoin Commencer avec m o 2.
- L'implémentation de Base58Check parmi ses nombreuses fonctions, empêche l'utilisation de caractères tels que O, I (majuscule) et l (minuscule) afin d'éviter d'être confondu avec le chiffre 0 ou le chiffre 1.