Aller au contenu principal
Cryptographie

Racine de Merkle

La racine de Merkle (Merkle root) est le hash sommet d'un arbre de Merkle. Elle figure dans l'en-tête de bloc et résume toutes les transactions du bloc en 32 octets. Modifier une seule transaction modifie la racine. C'est la pierre angulaire de l'intégrité des blocs.

Définition et origine

La racine de Merkle est le sommet d'un arbre de hachage binaire (Merkle tree), inventé par Ralph Merkle en 1979 dans le cadre des signatures digitales. Bitcoin l'utilise depuis le bloc genèse pour résumer l'intégralité des transactions d'un bloc en exactement 32 octets, qui sont eux-mêmes inclus dans l'en-tête de bloc de 80 octets soumis au proof of work.

Comment elle est calculée

L'algorithme procède par paires :

  1. On hash chaque transaction individuellement : H_i = SHA256(SHA256(tx_i)).
  2. On concatène les hashes deux à deux et on rehash : H_{i,j} = SHA256(SHA256(H_i || H_j)).
  3. Si le nombre d'éléments est impair, le dernier est dupliqué (une particularité Bitcoin qui a causé la vulnérabilité CVE-2012-2459).
  4. On répète jusqu'à obtenir un unique hash de 32 octets : la racine de Merkle.
        Root
       /    \
     H_AB   H_CD
     / \    / \
    HA HB  HC HD
    |  |   |  |
    A  B   C  D    <- transactions

Pourquoi c'est crucial

La racine de Merkle assure trois propriétés essentielles :

  • Intégrité : modifier une seule transaction change la racine, donc l'en-tête, donc invalide le proof of work.
  • Preuves compactes : prouver qu'une transaction est dans un bloc demande seulement log₂(N) hashes (12 pour un bloc de 4 000 transactions) — c'est la base du SPV décrit dans le whitepaper section 8.
  • Vérification légère : les clients SPV téléchargent les en-têtes seuls et demandent des Merkle proofs ponctuelles, sans avoir besoin de la chaîne entière.

Détails Bitcoin spécifiques

| Élément | Valeur | |---------|--------| | Algorithme | Double SHA-256 | | Taille | 32 octets | | Position | Octets 36-67 de l'en-tête | | Bloc genèse | 4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b |

À retenir

La racine de Merkle est ce qui transforme des millions de transactions en un seul nombre infalsifiable. Sans elle, ni le minage, ni le SPV, ni la vérification du contenu d'un bloc ne seraient envisageables à l'échelle de Bitcoin.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.