- Comprendre la cryptographie sur courbe elliptique.
- Modèle Sepc256k1
Obtenir un nombre aléatoire sur 256 bits (32 bytes), nommé k
.
Obtenir la clé publique tel que Q = kG où G
est le générateur de Secp256k1 et k
la clé privée.
La clé publique correspond aux coordonnés (x,y) concaténés et sérialisés en hexadémical pour donner : hex(x).hex(y).
Hasher la clé publique sérialisée avec SHA256 et hasher le résultat avec Ripemd160.
Ajouter un byte (network ID) au résultat de l'étape 3 tel que :
- 0x00 pour le mainnet
- 0x6f pour le testnet
SHA256d sur le résultat de l'étape 4 : double hash. Récupérer les 4 premiers bytes du résultat. Ce sera le checksum
.
Ajouter le checksum
à la fin du résultat de l'étape 4. C'est la proto adresse.
Encoder la proto adresse avec Base58. C'est l'adresse publique résultante.
Le Wallet Import Format ou WIF est une méthode simple pour compacter une valeur codée en 256 bits, typiquement la clé privée k
et la rendre utilisable plus facilement.
Note : il existe plusieurs formats WIP, ici un seul est évoqué et c'est le plus courant.
Récupérer la clé privée k
.
Ajouter un byte (network ID) au début de la clé privée :
- 0x80 pour le mainnet
- 0xef pour le testnet
Hasher le résultat de l'étape 2 avec SHA256d (double SHA256). Récupérer les 4 premiers bytes, c'est le checksum
.
Ajouter le checksum
à la fin du résultat de l'étape 2.
Encoder le résultat de l'étape 4 avec Base58.