Glosario
Infraestructura blockchain

Árbol de Merkle

Un árbol de Merkle es una estructura de datos que resume un gran conjunto de elementos en un solo hash mediante emparejamientos y hashes repetidos: se calcula el hash de cada transacción, los hashes se emparejan y se vuelven a procesar juntos, esos resultados se emparejan y se procesan de nuevo, y así hasta que queda un único valor: la raíz de Merkle. Las blockchains almacenan esta raíz en el encabezado de cada bloque, con lo que se comprometen con todas las transacciones del bloque con solo 32 bytes.

La fuerza de esta estructura es la prueba eficiente. Para demostrar que una transacción concreta está incluida en un bloque no necesitas el bloque entero, solo la transacción y los pocos hashes hermanos que hay en su camino hasta la raíz, lo que se llama una prueba de Merkle (Merkle proof). Quien verifica recalcula el camino y comprueba que produce la raíz conocida; en un bloque con miles de transacciones, la prueba implica solo una docena de hashes más o menos. Por ejemplo, así es como una billetera ligera de Bitcoin en un teléfono confirma que ha recibido un pago: solo guarda encabezados de bloques, pide a un nodo completo la prueba de Merkle de su transacción y verifica ella misma las matemáticas; el nodo no puede falsear la inclusión, porque eso exigiría romper la función hash.

Un error común es creer que los árboles de Merkle almacenan o protegen los datos de las transacciones en sí; solo se comprometen con ellos: los datos están en otro lugar y el árbol hace que la manipulación sea detectable, no imposible de intentar. Existen variantes que amplían la idea: Ethereum usa tries de Merkle-Patricia para comprometerse con todo su estado de cuentas, y diseños más nuevos como los árboles de Verkle buscan reducir aún más las pruebas, lo que importa para aligerar la verificación de la cadena.

Términos relacionados