Una estructura de datos criptográfica utilizada en Bitcoin para resumir y verificar eficientemente todas las transacciones en un bloque. La raíz de Merkle — un único hash en la cima del árbol — se incluye en la cabecera del bloque y permite verificar cualquier transacción sin descargar el bloque completo.
Una estructura de datos criptográfica utilizada en Bitcoin para resumir y verificar eficientemente todas las transacciones en un bloque. La raíz de Merkle — un único hash en la cima del árbol — se incluye en la cabecera del bloque y permite verificar cualquier transacción sin descargar el bloque completo.
Un árbol de Merkle (nombrado así por Ralph Merkle) es un árbol binario de hashes. En Bitcoin, cada transacción en un bloque es hasheada, luego los pares de hashes se combinan y se vuelven a hashear, repitiendo hacia arriba hasta que queda una única raíz de Merkle. Esta raíz se almacena en la cabecera del bloque y se compromete criptográficamente con cada transacción del bloque. Cambiar incluso una transacción produciría una raíz de Merkle completamente diferente.
El poder práctico de los árboles de Merkle reside en la verificación eficiente. Para demostrar que una transacción específica está incluida en un bloque, no necesitas descargar todas las transacciones — solo necesitas la transacción en sí más un pequeño número de hashes intermedios llamados prueba de Merkle (o camino de Merkle). Para un bloque con 1,000 transacciones, una prueba de Merkle requiere solo unos 10 hashes en lugar de los 1,000 hashes de transacción. Esta eficiencia logarítmica es lo que hace factibles las billeteras ligeras (SPV).
Los árboles de Merkle son fundamentales para la arquitectura de escalabilidad y seguridad de Bitcoin. Permiten que los nodos con almacenamiento limitado verifiquen la inclusión de transacciones sin almacenar toda la cadena de bloques. También habilitan la poda — los nodos completos pueden descartar datos de transacciones gastadas mientras retienen las raíces de Merkle para verificar la integridad. El concepto se ha extendido en el MAST (Árboles de Sintaxis Abstracta Merklizados) de Taproot, que aplica el mismo principio de eficiencia al sistema de scripting de Bitcoin.
Para demostrar que una transacción está en un bloque, proporcionas el hash de la transacción más los hashes hermanos en cada nivel del árbol. El verificador puede recalcular el camino hasta la raíz y compararla con la raíz de Merkle conocida en la cabecera del bloque. Esto requiere solo log2(N) hashes para N transacciones — aproximadamente 20 hashes para un millón de transacciones.
Los árboles de Merkle habilitan la Verificación Simplificada de Pagos (SPV), que Satoshi describió en el libro blanco de Bitcoin. SPV permite a los clientes ligeros verificar transacciones descargando solo las cabeceras de bloque (80 bytes cada una) en lugar de bloques completos. Esto era esencial para hacer que Bitcoin fuera utilizable en dispositivos con almacenamiento y ancho de banda limitados.
No. Los árboles de Merkle se usan en toda la ciencia de la computación y la criptografía. Git los usa para el control de versiones, los registros de transparencia de certificados los usan para auditoría, y virtualmente cada cadena de bloques usa alguna variante. Bitcoin popularizó su aplicación en la tecnología de registros distribuidos, pero el concepto data de 1979.