Un bloque de Bitcoin puede contener miles de transacciones, pero su encabezado solo ocupa 80 bytes. La clave para «bloquear» cada una de las transacciones del bloque con tan pocos datos es el árbol de Merkle.
El encabezado de cada bloque $BTC almacena una raíz de Merkle que corresponde a todas las transacciones de ese bloque. Actualmente: 77,038.01 (24 h: -1.35%).
▍¿Qué tipo de árbol?
Un árbol de Merkle es una estructura en forma de árbol que combina grandes cantidades de datos mediante hashes por pares y los va fusionando capa por capa. En la capa inferior está el hash de cada transacción; se concatenan dos hashes adyacentes y se calcula otro hash para obtener la capa superior. El proceso continúa hasta que solo queda un hash, llamado raíz de Merkle.
Esta estructura lleva el nombre del criptógrafo Ralph Merkle. Se propuso a finales de los años 70, mucho antes de la cadena de bloques.
▍Por qué no se puede modificar
El encabezado de cada bloque de Bitcoin contiene la raíz de Merkle. Si se modifica cualquier transacción del bloque, su hash cambia. El cambio se propaga hasta la raíz de Merkle, también cambia el hash del bloque y, por tanto, los bloques posteriores dejan de coincidir.
Así que basta con vigilar este único hash del encabezado para tener controladas todas las transacciones del bloque.
▍Cómo verifican las transacciones las billeteras ligeras
Para demostrar que una transacción está en un bloque, no hace falta tener el bloque entero: solo se necesitan unos pocos hashes de la ruta que va desde esa transacción hasta la raíz de Merkle. Si se duplica el número de transacciones, solo hace falta un hash más. Para un bloque con miles de transacciones, bastan poco más de una decena de hashes.
La verificación de pagos simplificada (SPV), descrita en la sección 8 del libro blanco de Bitcoin, funciona así: los clientes ligeros solo guardan los encabezados de los bloques y luego solicitan a un nodo una ruta de Merkle para confirmar que la transacción se ha incluido en un bloque.
▍Aplicación en las pruebas de reservas
Las pruebas de reservas de los exchanges también utilizan árboles de Merkle: la plataforma organiza los saldos de todos sus usuarios en un árbol de Merkle y publica el hash raíz. Cada usuario recibe su propia ruta y puede comprobar por sí mismo si su saldo está incluido, sin que se hagan públicos los detalles de los demás.
▍Para terminar
La idea de los árboles de Merkle es muy sencilla: representar una gran cantidad de datos con un hash raíz breve. Este diseño es precisamente lo que hace posibles aplicaciones como las billeteras móviles y las pruebas de reservas. Si alguien afirma que ofrece una rentabilidad alta, desconfía.
¿A ustedes también les había quedado mal entendido este punto?