OpenTimestamps

From Wikipedia, the free encyclopedia

OpenTimestamps (OTS) es un sistema descentralizado de sellado de tiempo que utiliza Bitcoin para probar la existencia de documentos. Interactúa normalmente con servidores de calendario para agrupar peticiones y registrar atestaciones.[2]

Creación del sello de tiempo

Una prueba OTS está compuesta por un sello de tiempo (también llamado «fichero OTS»), así como por el fichero original al que se refiere ese sello de tiempo. Cualquier persona o entidad que posea la prueba OTS puede verificar que el contenido del fichero se mantiene sin modificaciones al menos desde el momento en que se creó el sello de tiempo. Esta verificación de integridad se puede obtener sin delegar la consulta en un tercero de confianza.[3]

La operación stamp crea la primera versión del sello de tiempo. Se aplica sobre el fichero del que se quiere demostrar su existencia (fichero original).

$ cat hello.txt
Hello World!
$ ots stamp hello.txt
Submitting to remote calendar https://a.pool.opentimestamps.org
Submitting to remote calendar https://b.pool.opentimestamps.org
Submitting to remote calendar https://a.pool.eternitywall.com

La operación stamp calcula el hash SHA256 del fichero original, le concatena un nonce aleatorio de 128 bits para mantener la privacidad, y vuelve a calcular el hash SHA256, enviando este único valor a los servidores de calendario. Cada uno de los servidores de calendario añadirá el hash recibido a su árbol de Merkle y devolverá la respuesta necesaria para generar el fichero OTS inicial. Este fichero OTS está aún incompleto porque no contiene el registro en la cadena de bloques.[3]

Una vez que ha transcurrido un tiempo prudencial, el usuario lanzará la operación upgrade sobre el mismo fichero OTS. Así se comunicará con los servidores de calendario y se actualizará el fichero OTS con la atestación de la cabecera de bloque de Bitcoin.[4]

$ ots upgrade hello.txt.ots
Success! Timestamp complete

También se pueden crear sellos de tiempo para varios ficheros diferentes de forma simultánea. En ese caso, la operación stamp envíará una única petición a los servidores de calendario con una raíz de árbol de Merkle derivada a partir de los ficheros originales. Posteriormente esa misma operación recalculará las rutas del árbol de Merkle y creará los ficheros OTS adaptados a cada uno de los ficheros originales.

Verificación de la prueba OTS

La verificación de la prueba OTS requiere el fichero OTS y el fichero original. Para que la verificación se pueda realizar sin depender de terceros de confianza, el usuario debe tener un nodo de Bitcoin en su máquina con la cadena de bloques actualizada.[5]

$ ots verify hello.txt.ots
Assuming target filename is 'hello.txt'
Success! Bitcoin attests data existed as of Mon Apr 16 01:15:16 2018 CEST

Formato del sello de tiempo

Casos de uso

Referencias

Related Articles

Wikiwand AI