Une adresse Bitcoin est une chaîne de chiffres et de lettres qui peut être partagée avec toute personne souhaitant vous envoyer des bitcoins. Une adresse Bitcoin générée à partir d'une clé publique (une chaîne également composée de chiffres et de lettres) commence par le chiffre "1". Voici un exemple d'adresse Bitcoin :
1J7mdg5rbQyUHENYdx39WVWK7fsLpEoXZy
Dans une transaction, l'adresse Bitcoin apparaît généralement comme le bénéficiaire. Si l'on compare une transaction Bitcoin à un chèque, l'adresse Bitcoin est le bénéficiaire, c'est-à-dire ce que l'on inscrit dans le champ bénéficiaire. Le bénéficiaire d'un chèque peut être un compte bancaire, une entreprise, une organisation, ou même un chèque au porteur. Au lieu de spécifier un compte particulier, un chèque utilise un nom abstrait comme bénéficiaire, ce qui en fait un instrument de paiement assez flexible. Dans le même ordre d'idées, les adresses Bitcoin utilisent une abstraction similaire, ce qui rend également les transactions Bitcoin flexibles. Une adresse Bitcoin peut représenter le propriétaire d'une paire de clés publique et privée, ou elle peut représenter autre chose. Regardons maintenant un exemple simple de génération d'une adresse Bitcoin à partir d'une clé publique.
Les adresses Bitcoin peuvent être obtenues à partir de clés publiques par un algorithme de hachage cryptographique unidirectionnel. Un algorithme de hachage est une fonction unidirectionnelle qui prend une entrée de longueur arbitraire pour produire une empreinte digitale ou un hachage. Les fonctions de hachage cryptographique sont largement utilisées dans Bitcoin : adresses Bitcoin, adresses scriptées, et dans les algorithmes de preuve de travail pour l'exploitation minière. Les algorithmes utilisés pour générer les adresses Bitcoin à partir des clés publiques sont le Secure Hash Algorithm (SHA) et le RACE Integrity Primitives Evaluation Message Digest (RIPEMD), plus précisément SHA256 et RIPEMD160.
En utilisant la clé publique K comme entrée, on calcule son hachage SHA256 et on utilise le résultat pour calculer le hachage RIPEMD160 afin d'obtenir un nombre de 160 bits (20 octets) de long.
A = RIPEMD160(SHA256(K))
Dans la formule, K est la clé publique et A est l'adresse Bitcoin générée.
Indice : Les adresses Bitcoin sont différentes des clés publiques. Les adresses Bitcoin sont générées par une fonction de hachage unidirectionnelle de la clé publique.
Les adresses Bitcoin que les utilisateurs voient généralement sont encodées avec "Base58Check" (voir la section "Encodage Base58 et Base58Check"), qui utilise 58 caractères (une base 58. L'encodage Base58Check est également utilisé ailleurs dans Bitcoin, comme dans les adresses Bitcoin, les clés privées, les clés chiffrées et les hachages de scripts, afin d'améliorer la lisibilité et la correction de la saisie.
