Al terminar esta lección podrás
- Construir el árbol Merkle de cuatro transacciones hasta la raíz
- Explicar qué es una prueba de inclusión y por qué es tan pequeña
La cabecera de un bloque ocupa 80 bytes, tenga el bloque cuatro transacciones o cuatro mil. Cabe porque no lleva las transacciones: lleva su raíz Merkle, un único hash que las resume todas.
Se construye por parejas. Abajo están los txid de las transacciones, en orden. Se juntan de dos en dos y se calcula el doble SHA-256 de cada pareja. Eso da el nivel siguiente, con la mitad de hashes. Se repite hasta que queda uno solo: la raíz. Si un nivel tiene un número impar de hashes, el último se empareja consigo mismo.
Con las 4 transacciones del bloque 100.000: Tx 1 y Tx 2 dan H1, Tx 3 y Tx 4 dan H2, y H1 con H2 dan la raíz. Esa raíz es exactamente la que lleva la cabecera del bloque. Si cambias cualquier dato que entra en el txid de una transacción, cambia su txid, su rama y la raíz. Las firmas SegWit no entran en el txid, pero van comprometidas aparte, en la coinbase, así que tampoco se pueden tocar sin que se note.
La gracia está en la prueba de inclusión. Para demostrar que la Tx 3 está en el bloque no hacen falta las demás transacciones. Basta con dos hashes: el de la Tx 4, para calcular H2, y H1, para calcular la raíz. Si sale la raíz de la cabecera, la Tx 3 está dentro. Cada vez que se duplican las transacciones, la prueba crece en un solo hash: con 4.096 transacciones son 12.
Así funcionan algunas billeteras ligeras, con lo que el whitepaper llama verificación simplificada de pagos (SPV): descargan las cabeceras y piden la prueba de sus transacciones. Es mucho más ligero que un nodo completo, pero confía en que la cadena con más trabajo solo contiene transacciones válidas, porque no las comprueba todas. Muchas billeteras de móvil ni siquiera hacen eso: preguntan a un servidor y se fían de lo que les diga.
Lee en Bitcoinpedia
Pruébalo
Pulsa una transacción para ver su prueba de inclusión: en naranja el camino hasta la raíz, con borde los hashes que hay que aportar.
100 % local: nada sale de tu navegadorEjercicio de construcción. En papel, dibuja el árbol de las 4 transacciones del bloque 100.000: Tx 1 a Tx 4 abajo, H1 y H2 en medio y la raíz arriba. Escribe de qué dos hashes sale cada nodo. Después compruébalo en el laboratorio y apunta qué dos hashes hacen falta para demostrar que la Tx 2 está en el bloque.
Piénsalo o escríbelo a mano. No guardamos lo que respondas.