Saltar al contenido
uencoder

Merkle Tree

Un árbol de Merkle coloca los hashes de datos en las hojas y los hashes de los hijos en los nodos internos, permitiendo una verificación de integridad eficiente de grandes datos; se usa en Git y en blockchains.

Propósito

Hacer eficiente la verificación de integridad de datos a gran escala y localizable en bloques de datos específicos.

Mecanismo

Las hojas contienen los hashes de los bloques de datos H(d_i). Los nodos internos hashean la concatenación de sus hijos, H(left||right). El hash raíz representa el todo. Verificar un bloque solo requiere los O(log n) hashes hermanos del camino raíz-hoja (una prueba de Merkle). Cualquier cambio en un bloque altera el hash raíz.

Casos de uso

  • Verificación del árbol de objetos de Git
  • Verificación de transacciones en blockchain
  • Direccionamiento de contenidos en IPFS
  • Consistencia de almacenamiento distribuido

Ejemplos

  • entrada
    4 data blocks → a 2-level Merkle tree
    Output
    The root hash represents all of them

    O(log n) verification

Errores comunes

Weak hashes enable collision forgery
Use a secure hash such as SHA-256

Términos relacionados

Herramientas relacionadas

References