Un ejemplo completo, con números reales
Esto no es una simulación. Es un sellado que ocurrió el 7 de septiembre de 2026, y todos los valores de esta página se pueden comprobar en un explorador de bloques que no es nuestro. Si algo de lo que decimos no cuadrara, esta página sería el sitio donde se vería.
El esquema
La pregunta natural es «¿cómo se llega, desde un bloque de Bitcoin, hasta la huella de mi documento?». La respuesta tiene un matiz que conviene decir antes que nada:
No se llega. No se puede ir hacia atrás. SHA-256 no se deshace, y además la hoja va cegada con 16 bytes aleatorios, así que los 32 bytes que hay grabados en la cadena no revelan ni qué documento es, ni de quién, ni cuántos había en el lote. Eso no es un fallo: es exactamente la razón por la que de su navegador solo salen 64 caracteres.
Lo que sí se hace —y es lo que enseña el esquema— es un encuentro. Por arriba se lee la cadena pública, que no es de nadie. Por abajo se calcula desde su fichero y su certificado. Y las dos mitades tienen que dar el mismo valor.
Los valores exactos
| Fichero | contrato-despliegue.txtNo lo tenemos. Nunca salió del navegador de quien lo selló, y Expertiot no conserva copia de nada. |
|---|---|
| Huella SHA-256 | 95b0fd2349f68a707272bfc1080fa68787006278328765978793766dfd42354eEl hash inicial. Lo calculó el navegador; es lo único que viajó. |
| Código | MS8273D1CNJCESPPSe puede cotejar en cronosello.expertiot.es/v/MS8273D1CNJCESPP, sin credenciales. |
| Nonce del cegado | c011fbe4acfe8dfaa567b57a9708c26416 bytes aleatorios. Van impresos en el certificado, y sin ellos la cuenta no sale: son los que impiden que nadie deduzca la huella desde la cadena. |
| Hoja cegada | 20b708ef91f133141709153e5327e9b9c5ef7f3cfbb7f62d43a525b3a90db8ecSHA-256( 00 ‖ huella ‖ nonce ). El byte 00 delante distingue una hoja de un nodo, para que nadie pueda hacer pasar una cosa por la otra. |
| Raíz del lote | 20b708ef91f133141709153e5327e9b9c5ef7f3cfbb7f62d43a525b3a90db8ecCoincide con la hoja porque este lote llevaba un solo documento. En un lote de quince, aquí habría que subir por el camino de Merkle que da el certificado. |
| OP_RETURN | c30bbc4cf576f722d17fd9190cd0d2a4c959e4291356fd19639715b2741dcd4aLos 32 bytes que quedan escritos en Bitcoin, después de 17 pasos del árbol de OpenTimestamps que van dentro del recibo .ots incrustado en el certificado. |
| Bloque | 00000000000000000001c2f9e9f9401cddec5e1814b5698770b5865c3cdeebcaAltura 965.946, minado el 07-09-2026 a las 15:23:28 UTC, con 3462 transacciones. Verlo en mempool.space. |
| Raíz de Merkle del bloque | 46c0e3f8ccd1cdc0371a22a58c8ab99e2912efa685331a671653351d15c62487Va dentro de la cabecera que se minó. Cambiar una sola transacción del bloque la cambiaría entera. |
Tres anclajes, no uno
OpenTimestamps trabaja con varios calendarios independientes y cada uno publica su propia transacción. Este sellado está en la cadena 3 veces, por tres caminos que no dependen entre sí: la prueba sobrevive a que dos de los tres desaparezcan.
| Bloque 965.946 | 1bae7276300427a8b247e41aceeb71a6dcddc9c8a703db6fc583e9728290f91bCalendario alice.btc.calendar.opentimestamps.org. Ver la transacción. |
|---|---|
| Bloque 965.956 | faed463c3a8bfb67847c96d3b22b4c125728db8acdbe44b1ded72cbf5bb7aba5Calendario bob.btc.calendar.opentimestamps.org. Ver la transacción. |
| Bloque 965.974 | 8b61de7d4a1e6b8c09da114227c266f434f65baea63d4a82c0cc640701b1e66eCalendario finney.calendar.eternitywall.com. Ver la transacción. |
El certificado enseña el más temprano de los tres, que es el límite superior más ajustado y por tanto el que menos concede.
Cómo comprobarlo usted mismo, sin nosotros
- Saque el recibo del certificado. El PDF lleva dentro, como ficheros adjuntos, el recibo
documento.otsy elmerkle.json. En Adobe Acrobat Reader (gratuito): menú Vista › Mostrar/Ocultar › Paneles laterales › Adjuntos; en Firefox: barra lateral › Vistas › Adjuntos; Edge, Chrome y Vista Previa suelen no enseñar los adjuntos. Guárdelos en una carpeta. Con poppler instalado, en una terminal:pdfdetach -saveall certificado.pdf. - Sin comandos, verifíquelo contra Bitcoin. Abra opentimestamps.org/#stamp-and-verify (una web ajena a nosotros, en inglés), arrastre primero
documento.otsal recuadro de borde discontinuo (o púlselo para elegirlo) y, cuando lo pida, su fichero: su huella se calcula en su navegador y el fichero no se sube. Responde con el bloque de Bitcoin y el día: ya existía, a más tardar, entonces. No pasa por nosotros en ningún momento, pero sí consulta un explorador de bloques ajeno. - O por línea de comandos, si tiene un nodo de Bitcoin Core propio (aunque sea podado, sincroniza toda la cadena): con un recibo ya confirmado, así no se consulta a ningún tercero. En Linux, o en Windows dentro de WSL (con el nodo también dentro de WSL), y con Python 3 y pipx, escriba en una terminal, en la carpeta donde guardó el recibo,
pipx install opentimestamps-client, que instala el cliente, yots verify -f su-fichero documento.ots, que verifica el recibo contra su documento (cambiesu-ficheropor su nombre). Para comparar a mano la huella de su fichero:Get-FileHash su-ficheroen Windows (PowerShell),shasum -a 256 su-ficheroen macOS,sha256sum su-ficheroen Linux; tiene que salir la misma cadena de 64 caracteres que figura en la página 1 del certificado (Get-FileHash la escribe en mayúsculas, y es la misma). - Y si quiere hacerlo a mano, el esquema de arriba tiene los pasos: el recibo
.otses una lista de operaciones («antepón esto», «añade aquello», «vuelve a aplicar SHA-256») que arranca en su huella y termina en el OP_RETURN que está en el bloque.
Qué queda fuera, dicho aquí y no en letra pequeña
Entre el momento en que se selló (14:55:30 UTC) y el momento que atestigua el bloque (15:23:28 UTC) pasaron 28 minutos. Bitcoin no dice nada de lo que ocurrió dentro de esa ventana: solo garantiza que el documento existía antes del final. La hora exacta del sellado la declaramos nosotros, y vale lo que valga nuestra palabra.
Además, la marca de tiempo de un bloque la declara quien lo minó, con un margen que el protocolo tolera. Por eso lo honesto es leerlo como un límite superior: «este documento ya existía antes de este bloque», nunca «este documento se creó a esta hora».
En cronosello.expertiot.es/hoja está la hoja de una cara con lo que este tipo de prueba demuestra y lo que no, escrita para quien tenga que valorarla.