HASH160
HASH160 désigne l'application successive de SHA-256 puis RIPEMD-160 sur une donnée. Bitcoin l'utilise pour transformer une clé publique en hash de clé publique, base des adresses P2PKH et P2SH. Le résultat fait 160 bits (20 octets), gage d'adresses compactes. C'est l'un des piliers du modèle d'adressage classique.
Une empreinte cryptographique compacte
HASH160 est une fonction composée largement utilisée dans Bitcoin. Elle applique d'abord SHA-256 à une donnée, puis RIPEMD-160 au résultat. La sortie fait 20 octets, soit 160 bits, plus courte qu'un SHA-256 simple.
Son rôle dans les adresses
HASH160 sert à dériver les empreintes de clés publiques et de scripts. Les adresses P2PKH (legacy) et P2SH utilisent cette empreinte pour identifier le destinataire d'une transaction sans révéler la clé publique complète.
Sécurité du double hachage
Combiner SHA-256 et RIPEMD-160 vise à réduire les risques liés à une éventuelle faiblesse future de l'une des deux fonctions. Cette défense en profondeur reste robuste depuis les origines de Bitcoin.
Limites et évolutions
Avec SegWit et Taproot, Bitcoin utilise désormais aussi SHA-256 simple sur 32 octets pour les nouveaux types de scripts. HASH160 demeure néanmoins un pilier du protocole, présent dans la grande majorité des UTXO historiques.
Termes lies
- SHA-256SHA-256 est la fonction de hachage cryptographique utilisée par Bitcoin pour le minage et l'identification des transactions. Issue de la famille SHA-2 conçue par la NSA, elle produit un condensat de 256 bits. Elle est considérée comme inviolable avec les moyens classiques. Bitcoin l'applique souvent en double (SHA-256(SHA-256(x))) pour plus de robustesse.
- RIPEMD-160RIPEMD-160 est une fonction de hachage produisant un condensat de 160 bits. Bitcoin l'utilise après SHA-256 pour générer des adresses (HASH160). Elle est moins répandue que SHA-2 mais résistante aux collisions. Son intérêt : produire des adresses plus courtes que SHA-256 seul.
- P2PKHP2PKH (Pay-to-Public-Key-Hash) est le format historique d'adresse Bitcoin (préfixe 1...). Le script verrouille les fonds sur le HASH160 de la clé publique. Il dévoile la clé publique uniquement à la dépense. Toujours valide mais peu utilisé sur les nouveaux wallets.
- P2SHP2SH (Pay-to-Script-Hash, BIP-16) verrouille les fonds sur le hash d'un script de dépense. Permet des conditions complexes (multisig, timelock) avec des adresses commençant par 3.... Très utilisé pour les multisig avant l'ère SegWit. Il est désormais souvent imbriqué (P2SH-P2WPKH/P2WSH).
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.