Skip to content
BlockchainSign
es

Sello de tiempo con árbol Merkle: cómo funciona

Por Publicado el

Sello de tiempo con árbol Merkle: cómo funciona
Photo: Nurullah Degri

Si te has preguntado cómo un servicio puede sellar en el tiempo archivos en Bitcoin de forma gratuita cuando una transacción en Bitcoin no lo es, la respuesta es un árbol Merkle. Vale la pena entenderlo, porque el compromiso que hace es la principal diferencia entre los servicios de sello de tiempo del mercado.

El problema que resuelve

Escribir un hash en una blockchain cuesta dinero —una tarifa de transacción, pagada en la moneda de la cadena. Si cada archivo necesita su propia transacción, cada sello tiene un coste mínimo fijo.

Agrupar muchos hashes en una sola transacción elimina ese suelo. La dificultad consiste en hacerlo permitiendo que cualquiera demuestre que su hash específico estaba en el grupo, sin publicar todo el lote.

Cómo funciona un árbol Merkle

Coge un conjunto de hashes. Emparejalos y hashea cada par juntos. Vuelve a emparejar los resultados y hashea esos. Sigue así hasta que quede un solo hash.

h(A)  h(B)   h(C)  h(D)
   \  /         \  /
  h(AB)         h(CD)
      \        /
       h(ABCD)   ← la raíz Merkle

Ese valor final es la raíz Merkle, y compromete a todas las entradas. Cambia cualquiera de los hashes originales y la raíz cambia por completo.

Solo la raíz se escribe en la cadena. Una transacción, independientemente de cuántos archivos hubiera en el lote.

Demostrar que tu archivo fue incluido

Para mostrar que h(A) está bajo la raíz, no necesitas todo el árbol. Necesitas los hermanos a lo largo del camino desde tu hoja hasta la cima —en este caso, h(B) y h(CD). Cualquiera puede recalcular:

h( h( h(A), h(B) ), h(CD) ) == ¿la raíz en la cadena?

Esa breve lista de hermanos es la prueba Merkle o prueba de inclusión. Para un lote de un millón de archivos, son unos veinte hashes, porque la longitud del camino crece con el logaritmo del tamaño del lote, no con el propio lote.

Esto es genuinamente elegante. Es el mecanismo detrás de OpenTimestamps, y detrás de la mayoría de los sellos gratuitos.

Qué pierdes

Tres cosas, todas operativas más que criptográficas.

Debes conservar el archivo de prueba. La cadena contiene la raíz, no tu hash. Sin el camino de hermanos, no hay forma de conectar tu archivo con la transacción. Pierde la prueba y el sello desaparece —la transacción por sí sola no te ayudará.

Normalmente hay un retraso y un paso extra. Los lotes se cierran según un horario. Hasta que el lote se confirma y se registra, tu prueba está incompleta, y en algunos diseños debes volver más tarde para "actualizarla". Mucha gente nunca lo hace, y se da cuenta años después.

La verificación requiere explicaciones. Recalcular un camino Merkle es una operación sencilla para un desarrollador y una sorpresa desagradable para cualquier otra persona. Un registro cuya verificación requiere un tutorial es un registro más débil ante una audiencia no técnica.

La alternativa: una transacción cada uno

El otro enfoque es escribir cada hash en su propia transacción. Eso es lo que hacemos: el hash de tu carga útil va en los datos de entrada de una transacción Ethereum dedicada, donde cualquiera puede leerla en Etherscan con "Ver como UTF-8".

Agrupación Merkle Una transacción cada uno
Coste por sello Casi cero La tarifa completa de la transacción
Qué debes conservar Un archivo de prueba Nada — el hash está en la cadena
Si pierdes el artefacto Sello irrecuperable Recuperable de datos públicos
Paso extra tras enviar A menudo sí No
Verificación Recalcular un camino Merkle Leer la transacción
Explicárselo a un abogado Requiere un tutorial Abrir el enlace

Ninguno es criptográficamente más fuerte. Una prueba Merkle es exactamente tan sólida como una escritura directa. La diferencia radica enteramente en lo que ocurre después, con una persona que no eres tú, que sostiene un artefacto que no entiende.

Cuál elegir

Si sellas en volumen, tienes comodidad técnica y eres fiable conservando los archivos, la agrupación es excelente y el precio inmejorable.

Si sellas un pequeño número de documentos importantes, y la audiencia eventual es un cliente, una aseguradora o un tribunal, pagar por una escritura directa te compra una prueba que no tiene nada que perder ni nada que explicar.

La agrupación también es la forma sensata de ofrecer una capa gratuita, algo que vale la pena saber al comparar precios: un servicio que cobra céntimos por certificado casi certainly está agrupando, y uno que cobra dólares probablemente no lo esté.

Preguntas frecuentes

¿Cómo puede ser gratuito el sello de tiempo blockchain?
Mediante la agrupación. Muchos hashes se combinan en un árbol Merkle y solo el hash único de la raíz se escribe en la cadena, por lo que una tarifa de transacción se comparte entre todos los participantes de ese lote. El coste que asumes en su lugar es operativo: debes conservar la prueba de inclusión y, en algunos diseños, volver más tarde para completarla.
¿Qué pasa si pierdo mi archivo de prueba Merkle?
El sello es efectivamente irrecuperable. La transacción blockchain contiene la raíz Merkle, no tu hash, por lo que sin el camino de hermanos no hay forma de vincular tu archivo con ella. Esta es la forma más común en que la gente pierde sellos que creía tener.
¿Es una prueba Merkle una evidencia más débil que una transacción directa?
No criptográficamente —una prueba Merkle correctamente construida es exactamente tan sólida. La diferencia práctica es la presentación: verificarla significa recalcular un camino de hashes, lo que requiere una herramienta y una explicación, mientras que una escritura directa puede leerse directamente de un explorador de bloques público por cualquier persona.

Demuestra hoy que tu trabajo ya existía

Sella en el tiempo cualquier archivo en la blockchain de Ethereum y consigue un certificado inalterable y para siempre. Tu archivo nunca sale de tu navegador.