fbpx
Wikipedia

OpenTimestamps

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]

OpenTimestamps
Información general
Tipo de programa Sellado de tiempo
Desarrollador Abierto
Modelo de desarrollo Software libre
Licencia LGPL3
Información técnica
Programado en Python, Java, Javascript, Rust
Versiones
Última versión estable 0.7.0[1]​ 21 de agosto de 2019 (1 año, 11 meses y 16 días)
Asistencia técnica
Enlaces
Sitio web oficial

Prueba OTS y 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]

Creación del sello de tiempo

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

El sello de tiempo se divide en tres secciones principales:[3]

  1. Hash del fichero original
  2. Construcción del árbol de Merkle
  3. Atestación de la cabecera de bloque de Bitcoin

El sello de tiempo se guarda en un fichero binario para ahorrar en espacio y evitar problemas de interpretación, de codificación y de compatibilidad entre sistemas. Generalmente, este fichero tiene una extensión .ots y su número mágico es \x00 O p e n T i m e s t a m p s \x00 \x00 P r o o f \x00 \xbf \x89 \xe2 \xe8 \x84 \xe8 \x92 \x94.[6]

La operación info presenta el contenido del fichero de sello de tiempo de forma legible. En este caso se muestra una única atestación del fichero hello.txt que alcanza hasta la cabecera del bloque 518387 de Bitcoin.

$ ots info hello.txt.ots File sha256 hash: 03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340 Timestamp: append 72d8a09f54b12580b48c2f7c7dea4ce0 sha256 -> append fe0d089c9bfe5289c3ee579904af3551 sha256 prepend 5ad3d92b append 8fefb42191040403 verify PendingAttestation('https://alice.btc.calendar.opentimestamps.org') sha256 prepend f0e8b62a519b0b8fad763c33c558e0179a43b8d89cb4130b6dbaa91e3d3252f6 sha256 prepend beca183da3f86784a7d54778bc48e78c570245d51474f32475e6d1851989b140 sha256 append a95879c35c15ace7dc5fd1d2cf0a7d9b0e4110b5b8a74da4c64082835f6f6a2e sha256 append cf9b259e4506235f97225706f3a675f51ecf2657814639d87e4e6f42d8581ae7 sha256 prepend e3b7ff694e1b14b4420556ca77ea8e9509e44b7fbed0dc9a3b67c00fcf016ca2 sha256 prepend 01000000017230dffb1edd7cae0c8feb3fec7c91c34b33b22fdfac071b83e790ce34254b340000000017160014a4282cbf0f17fd6d51b61da f7cf4d56e32183b60fdffffff02d7c062000000000017a914365c46ff772b9f1da73efeb2c559777e1a2c33b4870000000000000000226a20 append f2e80700 # Bitcoin transaction id 7e6e5aafa1fc9d933992621a7ac321dc7b9368d0e1baa72ff77665b07b75315f sha256 sha256 append d67f1615f986694d707d7d044883c7885f3dded2ac9df5f6b9270a5bdda38aa3 sha256 sha256 append e551a80b2bdd88f417fc95014662f7a65d8c0c4d833b6df034bc12f1af35b953 sha256 sha256 append 0902830fc37fde4996c350de40c0ae621c739ce002a7be4b3725d7e281fc02a3 sha256 sha256 append 7ac1e262423598f1477825882f78ededc98b44bf0136f059e438391aa0e7a686 sha256 sha256 prepend 9ee83975bef756160275a336203059109fd4336572e5e47e9a3edadb82a8934c sha256 sha256 append 7a3229b63fc7a88d4edde4aa5b855416265842120fde246462271e5418f895bd sha256 sha256 prepend a4c712ca130f63862f329874f11466eb74ee7b505c191344ee11b30d14ca4946 sha256 sha256 append 13bf98cdb708ed3321b8d48ff290c5bdbefa6fb9be34717e97a3f3cfa9b87994 sha256 sha256 prepend d2aec8bd2edf2d6d10606df92f1b8b53a97362d7aba7d3fa15bf55c0aab94e35 sha256 sha256 verify BitcoinBlockHeaderAttestation(518387) # Bitcoin block merkle root b4f71191dc633cfb125543211022b1059d78b42a359408da5958fc15231ef6de 

Casos de uso

  • Los 750 000 000 ficheros de Internet Archive han sido registrados mediante OpenTimestamps para que no puedan ser modificados de forma encubierta. La evidencia final resultó en la anotación irreversible de la raíz de Merkle de todos esos ficheros en una única transacción de Bitcoin.[7]
  • Bitcoin Core usa OpenTimestamps para sellar el tiempo en Git de las actualizaciones de su código fuente.[8]

Otras aplicaciones incluyen publicaciones defensivas,[9]​ evidencias contra plagios, verificación de firmas desde claves PGP revocadas, etc.

Referencias

  1. «OpenTimestamps client». Consultado el 24 de agosto de 2019. 
  2. Peter Todd y Harry Halpin (abril de 2017). Springer, ed. «OpenTimestamps: Securing Software Updates Using the Bitcoin Blockchain». Consultado el 22 de febrero de 2019. 
  3. William Thomas Weilbach (11 de diciembre de 2017). . Archivado desde el original el 18 de abril de 2018. Consultado el 17 de abril de 2018. 
  4. «OpenTimestamps: Scalable, Trust-Minimized, Distributed Timestamping with Bitcoin». 15 de septiembre de 2016. Consultado el 17 de abril de 2018. 
  5. «OpenTimestamps Client». Consultado el 17 de abril de 2018. 
  6. «python-opentimestamps/opentimestamps/core/timestamp.py». Github. Consultado el 17 de abril de 2018. 
  7. Aaron van Wirdum (6 de junio de 2017). Bitcoin Magazine, ed. «For the first time ever, historical archived data cannot be altered without being noticed.». Consultado el 12 de noviembre de 2017. 
  8. «Bitcoin Core devtools README - Create and verify timestamps of merge commits». GitHub. Consultado el 22 de febrero de 2019. 
  9. Douglas Heaven (4 de febrero de 2019). Nature, ed. «Bitcoin for the biological literature». Consultado el 22 de febrero de 2019. 
  •   Datos: Q43069765

opentimestamps, sistema, descentralizado, sellado, tiempo, utiliza, bitcoin, para, probar, existencia, documentos, interactúa, normalmente, servidores, calendario, para, agrupar, peticiones, registrar, atestaciones, información, generaltipo, programasellado, t. OpenTimestamps OTS es un sistema descentralizado de sellado de tiempo que utiliza Bitcoin para probar la existencia de documentos Interactua normalmente con servidores de calendario para agrupar peticiones y registrar atestaciones 2 OpenTimestampsInformacion generalTipo de programaSellado de tiempoDesarrolladorAbiertoModelo de desarrolloSoftware libreLicenciaLGPL3Informacion tecnicaProgramado enPython Java Javascript RustVersionesUltima version estable0 7 0 1 21 de agosto de 2019 1 ano 11 meses y 16 dias Asistencia tecnicaEnlacesSitio web oficial editar datos en Wikidata Indice 1 Prueba OTS y sello de tiempo 1 1 Creacion del sello de tiempo 1 2 Verificacion de la prueba OTS 2 Formato del sello de tiempo 3 Casos de uso 4 ReferenciasPrueba OTS y sello de tiempo EditarUna prueba OTS esta compuesta por un sello de tiempo tambien llamado fichero OTS asi 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 creo el sello de tiempo Esta verificacion de integridad se puede obtener sin delegar la consulta en un tercero de confianza 3 Creacion del sello de tiempo Editar La operacion stamp crea la primera version 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 operacion 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 unico valor a los servidores de calendario Cada uno de los servidores de calendario anadira el hash recibido a su arbol de Merkle y devolvera la respuesta necesaria para generar el fichero OTS inicial Este fichero OTS esta aun incompleto porque no contiene el registro en la cadena de bloques 3 Una vez que ha transcurrido un tiempo prudencial el usuario lanzara la operacion upgrade sobre el mismo fichero OTS Asi se comunicara con los servidores de calendario y se actualizara el fichero OTS con la atestacion de la cabecera de bloque de Bitcoin 4 ots upgrade hello txt ots Success Timestamp complete Tambien se pueden crear sellos de tiempo para varios ficheros diferentes de forma simultanea En ese caso la operacion stamp enviara una unica peticion a los servidores de calendario con una raiz de arbol de Merkle derivada a partir de los ficheros originales Posteriormente esa misma operacion recalculara las rutas del arbol de Merkle y creara los ficheros OTS adaptados a cada uno de los ficheros originales Verificacion de la prueba OTS Editar La verificacion de la prueba OTS requiere el fichero OTS y el fichero original Para que la verificacion se pueda realizar sin depender de terceros de confianza el usuario debe tener un nodo de Bitcoin en su maquina 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 CESTFormato del sello de tiempo EditarEl sello de tiempo se divide en tres secciones principales 3 Hash del fichero original Construccion del arbol de Merkle Atestacion de la cabecera de bloque de BitcoinEl sello de tiempo se guarda en un fichero binario para ahorrar en espacio y evitar problemas de interpretacion de codificacion y de compatibilidad entre sistemas Generalmente este fichero tiene una extension ots y su numero magico es x00 O p e n T i m e s t a m p s x00 x00 P r o o f x00 xbf x89 xe2 xe8 x84 xe8 x92 x94 6 La operacion info presenta el contenido del fichero de sello de tiempo de forma legible En este caso se muestra una unica atestacion del fichero hello txt que alcanza hasta la cabecera del bloque 518387 de Bitcoin ots info hello txt ots File sha256 hash 03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340 Timestamp append 72d8a09f54b12580b48c2f7c7dea4ce0 sha256 gt append fe0d089c9bfe5289c3ee579904af3551 sha256 prepend 5ad3d92b append 8fefb42191040403 verify PendingAttestation https alice btc calendar opentimestamps org sha256 prepend f0e8b62a519b0b8fad763c33c558e0179a43b8d89cb4130b6dbaa91e3d3252f6 sha256 prepend beca183da3f86784a7d54778bc48e78c570245d51474f32475e6d1851989b140 sha256 append a95879c35c15ace7dc5fd1d2cf0a7d9b0e4110b5b8a74da4c64082835f6f6a2e sha256 append cf9b259e4506235f97225706f3a675f51ecf2657814639d87e4e6f42d8581ae7 sha256 prepend e3b7ff694e1b14b4420556ca77ea8e9509e44b7fbed0dc9a3b67c00fcf016ca2 sha256 prepend 01000000017230dffb1edd7cae0c8feb3fec7c91c34b33b22fdfac071b83e790ce34254b340000000017160014a4282cbf0f17fd6d51b61da f7cf4d56e32183b60fdffffff02d7c062000000000017a914365c46ff772b9f1da73efeb2c559777e1a2c33b4870000000000000000226a20 append f2e80700 Bitcoin transaction id 7e6e5aafa1fc9d933992621a7ac321dc7b9368d0e1baa72ff77665b07b75315f sha256 sha256 append d67f1615f986694d707d7d044883c7885f3dded2ac9df5f6b9270a5bdda38aa3 sha256 sha256 append e551a80b2bdd88f417fc95014662f7a65d8c0c4d833b6df034bc12f1af35b953 sha256 sha256 append 0902830fc37fde4996c350de40c0ae621c739ce002a7be4b3725d7e281fc02a3 sha256 sha256 append 7ac1e262423598f1477825882f78ededc98b44bf0136f059e438391aa0e7a686 sha256 sha256 prepend 9ee83975bef756160275a336203059109fd4336572e5e47e9a3edadb82a8934c sha256 sha256 append 7a3229b63fc7a88d4edde4aa5b855416265842120fde246462271e5418f895bd sha256 sha256 prepend a4c712ca130f63862f329874f11466eb74ee7b505c191344ee11b30d14ca4946 sha256 sha256 append 13bf98cdb708ed3321b8d48ff290c5bdbefa6fb9be34717e97a3f3cfa9b87994 sha256 sha256 prepend d2aec8bd2edf2d6d10606df92f1b8b53a97362d7aba7d3fa15bf55c0aab94e35 sha256 sha256 verify BitcoinBlockHeaderAttestation 518387 Bitcoin block merkle root b4f71191dc633cfb125543211022b1059d78b42a359408da5958fc15231ef6deCasos de uso EditarLos 750 000 000 ficheros de Internet Archive han sido registrados mediante OpenTimestamps para que no puedan ser modificados de forma encubierta La evidencia final resulto en la anotacion irreversible de la raiz de Merkle de todos esos ficheros en una unica transaccion de Bitcoin 7 Bitcoin Core usa OpenTimestamps para sellar el tiempo en Git de las actualizaciones de su codigo fuente 8 Otras aplicaciones incluyen publicaciones defensivas 9 evidencias contra plagios verificacion de firmas desde claves PGP revocadas etc Referencias Editar OpenTimestamps client Consultado el 24 de agosto de 2019 Peter Todd y Harry Halpin abril de 2017 Springer ed OpenTimestamps Securing Software Updates Using the Bitcoin Blockchain Consultado el 22 de febrero de 2019 a b c William Thomas Weilbach 11 de diciembre de 2017 Practical Application of Distributed Ledger Technology in Support of Digital Evidence Integrity Verification Processes Archivado desde el original el 18 de abril de 2018 Consultado el 17 de abril de 2018 OpenTimestamps Scalable Trust Minimized Distributed Timestamping with Bitcoin 15 de septiembre de 2016 Consultado el 17 de abril de 2018 OpenTimestamps Client Consultado el 17 de abril de 2018 python opentimestamps opentimestamps core timestamp py Github Consultado el 17 de abril de 2018 Aaron van Wirdum 6 de junio de 2017 Bitcoin Magazine ed For the first time ever historical archived data cannot be altered without being noticed Consultado el 12 de noviembre de 2017 Bitcoin Core devtools README Create and verify timestamps of merge commits GitHub Consultado el 22 de febrero de 2019 Douglas Heaven 4 de febrero de 2019 Nature ed Bitcoin for the biological literature Consultado el 22 de febrero de 2019 Datos Q43069765Obtenido de https es wikipedia org w index php title OpenTimestamps amp oldid 134837040, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos