stringtranslate.com

Marcas de tiempo abiertas

OpenTimestamps ( OTS ) es un proyecto de código abierto [2] que tiene como objetivo proporcionar un formato estándar para el sellado de tiempo de blockchain. [3] Con el advenimiento de sistemas como Bitcoin , es posible crear y verificar pruebas de existencia de documentos (marcas de tiempo) sin depender de un tercero confiable ; esto representa una mejora en términos de seguridad, ya que excluye la posibilidad de que un tercero confiable malintencionado (o descuidado) comprometa la marca de tiempo. [4]

OTS define un conjunto de reglas para crear fácilmente marcas de tiempo y luego verificarlas de forma independiente. Actualmente, el sellado de tiempo con Bitcoin es totalmente compatible, sin embargo, el formato es lo suficientemente flexible como para admitir una variedad de métodos. [a]

Cualquiera podría crear marcas de tiempo con la cadena de bloques sin permisos pagando las tarifas de transacción; para mayor comodidad, OTS construyó una infraestructura que agrega solicitudes de marcas de tiempo de los usuarios y las empaqueta en transacciones financiadas por servidores de calendario públicos; como resultado, los usuarios pueden marcar el tiempo de forma gratuita, en un entorno de confianza minimizada. [b]

¿Qué es una marca de tiempo?

Una marca de tiempo es una prueba de que algunos datos d existían antes de un cierto punto en el tiempo. [5]

Para crear dicha prueba, resulta que no es necesario publicar d en la blockchain, lo que sería costoso, sino que basta con confirmar d en la blockchain. Dicha confirmación prueba que d existía antes de un bloque determinado, en el sentido de que si d cambia, la prueba se vuelve inválida y, por lo tanto, inútil.

La prueba consiste en una secuencia de operaciones de compromiso, como sha256, append, prepend. [c] Estas operaciones son la ruta criptográfica que prueba que d se compromete con un determinado encabezado de bloque. En otras palabras, que d hizo que el encabezado del bloque tuviera su valor, de hecho, si d fuera diferente, entonces, debido a las propiedades matemáticas de las operaciones de compromiso, el encabezado del bloque sería diferente. Para verificar el compromiso, las operaciones se aplican en secuencia a los datos d , luego se verifica que el resultado, que debería ser la raíz merkle de la transacción, sea igual al observado en la cadena de bloques; si la verificación sale bien, entonces se puede afirmar que d existía antes del bloque.

Para el archivo con marca de tiempo hello.txt, la prueba OTS se codifica en un archivo llamado hello.txt.otsque contiene:

Con esta información, un retador puede verificar de forma independiente que hello.txtexistía antes de un determinado bloque.

Uso

OTS ofrece a los usuarios múltiples y sencillas formas de crear y verificar de forma independiente marcas de tiempo: [ cita requerida ]

En las siguientes secciones se muestra un ejemplo del uso del cliente Python.

Creación de marca de tiempo

La operación de sello crea la primera versión de la marca de tiempo. Se aplica al archivo cuya existencia se desea comprobar (archivo original).

$ cat  hello.txt ¡Hola mundo! $ ots  stamp  hello.txt Enviando al calendario remoto https://a.pool.opentimestamps.org Enviando al calendario remoto https://b.pool.opentimestamps.org Enviando al calendario remoto https://a.pool.eternitywall.com

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

Una vez transcurrido un tiempo razonable, el usuario ejecutará la operación de actualización en el mismo archivo OTS. Esto se comunicará con los servidores de calendario y actualizará el archivo OTS con la certificación del encabezado del bloque de Bitcoin. [5]

$ ots  upgrade  hello.txt.ots ¡Éxito! Marca de tiempo completa

También es posible crear marcas de tiempo para varios archivos diferentes simultáneamente. En ese caso, la operación de estampar enviará una única solicitud a los servidores de calendario con una raíz Merkle derivada de los archivos originales y, posteriormente, esa misma operación calculará las rutas del árbol Merkle y creará las marcas de tiempo para cada uno de los archivos originales.

Verificación de marca de tiempo

La verificación de la prueba OTS requiere tanto el archivo OTS como el archivo original. El usuario también debe tener un nodo Bitcoin actualizado [f] en su propia máquina para realizar la verificación sin depender de terceros de confianza. [7]

$ ots  verifica  hello.txt.ots Se asume que el nombre del archivo de destino es 'hello.txt' ¡Éxito! Bitcoin certifica que los datos existían el lunes 16 de abril de 2018 a las 01:15:16 CEST

Mostrar información de la marca de tiempo

La estructura básica de una marca de tiempo se divide en tres secciones principales: [6]

  1. Hash de archivo
  2. Construcción del árbol de Merkle
  3. Certificación del encabezado del bloque de Bitcoin

La marca de tiempo se guarda en un archivo binario para ahorrar espacio y evitar problemas de interpretación, codificación y compatibilidad entre sistemas. [6] Generalmente, este archivo tiene una.ots extensión 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. [8]

La operación de información presenta el contenido de la marca de tiempo en un formato legible para humanos. En este caso, una única atestación de lahola.txtSe muestra el archivo, que hace un hash hasta el encabezado del bloque de Bitcoin en el bloque 518387.

$ ots  info  hello.txt.ots Hash sha256 del archivo: 03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340 Marca de tiempo: append 72d8a09f54b12580b48c2f7c7dea4ce0 sha256 -> append fe0d089c9bfe5289c3ee579904af3551  sha256  anteponer 5ad3d92b  anteponer 8fefb42191040403  verificar PendingAttestation('https://alice.btc.calendar.opentimestamps.org')  sha256  anteponer f0e8b62a519b0b8fad763c33c558e0179a43b8d89cb4130b6dbaa91e3d3252f6  sha256  anteponer beca183da3f86784a7d54778bc48e78c570245d51474f32475e6d1851989b140  sha256  añadir a95879c35c15ace7dc5fd1d2cf0a7d9b0e4110b5b8a74da4c64082835f6f6a2e  sha256  añadir cf9b259e4506235f97225706f3a675f51ecf2657814639d87e4e6f42d8581ae7  sha256  anteponer e3b7ff694e1b14b4420556ca77ea8e9509e44b7fbed0dc9a3b67c00fcf016ca2  sha256  anteponer 01000000017230dffb1edd7cae0c8feb3fec7c91c34b33b22fdfac071b83e790ce34254b340000000017160014a4282cbf0f17fd6d51b61da f7cf4d56e32183b60fdffffff02d7c062000000000017a914365c46ff772b9f1da73efeb2c559777e1a2c33b4870000000000000000226a20  adjuntar  f2e80700  # Id .  de transacción de Bitcoin 7e6e5aafa1fc9d933992621a7ac321dc7b9368d0e1baa72ff77665b07b75315f  sha256 adjuntar  sha256 d67f1615f986694d707d7d044883c7885f3dded2ac9df5f6b9270a5bdda38aa3  sha256  sha256 anexar  e551a80b2bdd88f417fc95014662f7a65d8c0c4d833b6df034bc12f1af35b953  sha256  sha256  anexar  0902830fc37fde4996c350de40c0ae621c739ce002a7be4b3725d7e281fc02a3  sha256  sha256 anexar 7ac1e262423598f1477825882f78ededc98b44bf0136f059e438391aa0e7a686  sha256  sha256  anteponer 9ee83975bef756160275a336203059109fd4336572e5e47e9a3edadb82a8934c  sha256  sha256  agregar 7a3229b63fc7a88d4edde4aa5b855416265842120fde246462271e5418f895bd  sha256  sha256  anteponer a4c712ca130f63862f329874f11466eb74ee7b505c191344ee11b30d14ca4946  sha256  sha256  anexar 13bf98cdb708ed3321b8d48ff290c5bdbefa6fb9be34717e97a3f3cfa9b87994  sha256  sha256  anteponer d2aec8bd2edf2d6d10606df92f1b8b53a97362d7aba7d3fa15bf55c0aab94e35  sha256  sha256  verificar BitcoinBlockHeaderAttestation(518387)  # Raíz merkle del bloque de Bitcoin      b4f71191dc633cfb125543211022b1059d78b42a359408da5958fc15231ef6de

Casos de uso

Las aplicaciones incluyen publicaciones defensivas . [9]

Notas

  1. ^ A partir de ahora, también es posible marcar el tiempo con Litecoin y Ethereum , aunque no se admite la verificación.
  2. ^ Lo peor que puede hacer un calendario es no marcar con tiempo los datos de los usuarios; si eso sucede, los usuarios pueden marcar con tiempo ellos mismos.
  3. ^ Observe cómo, al combinar convenientemente estas operaciones de compromiso, es posible recorrer un árbol de Merkle . De manera similar a Bitcoin, OTS hace uso de esta estructura de compromiso para agrupar varias marcas de tiempo en una transacción.
  4. ^ Las marcas de tiempo tienen forma de árbol: a partir del hash inicial, varias ramas conducen a diferentes certificaciones. Esto proporciona redundancia que protege a los usuarios en caso de que un calendario deje de funcionar.
  5. ^ El sitio web es el método más sencillo para crear y verificar marcas de tiempo, pero es el menos seguro: a diferencia de los anteriores, los usuarios no pueden verificar de forma independiente la marca de tiempo, ya que la verificación la realiza un tercero.
  6. ^ No es estrictamente necesario que haya un nodo completo, de hecho, la certificación se encuentra en el encabezado del bloque, por lo que un nodo podado es suficiente para verificar una marca de tiempo. Tenga en cuenta que un nodo SPV tiene toda la cadena de encabezados de bloque , por lo que, en teoría, podría verificar marcas de tiempo; sin embargo, no verifica bloques y, por lo tanto, tiene una seguridad mucho menor en comparación con los nodos podados.

Referencias

  1. ^ ab "Cliente OpenTimestamps, última versión". GitHub . Consultado el 26 de agosto de 2022 .
  2. ^ "Repositorio de código OpenTimestamps". GitHub . Consultado el 7 de junio de 2018 .
  3. ^ "Sitio web OpenTimestamps" . Consultado el 7 de junio de 2018 .
  4. ^ Gao, Yuefei; Aplicaciones, Hajime (2017). "Un sellado de tiempo confiable y descentralizado basado en cadenas de bloques". IEEJ Journal of Industry Applications . 6 (4): 252–257. doi : 10.1541/ieejjia.6.252 .
  5. ^ ab Todd, Peter (15 de septiembre de 2016). «OpenTimestamps: sellado de tiempo distribuido, escalable y de confianza minimizada con Bitcoin» . Consultado el 5 de mayo de 2018 .
  6. ^ abc Weilbach, William Thomas (11 de diciembre de 2017). "Aplicación práctica de la tecnología de registros distribuidos en apoyo de los procesos de verificación de la integridad de la evidencia digital" (PDF) . Archivado desde el original (PDF) el 18 de abril de 2018. Consultado el 5 de mayo de 2018 .
  7. ^ "Repositorio del cliente OpenTimestamps". GitHub . Consultado el 7 de junio de 2018 .
  8. ^ "Definición de magia de encabezado en python-opentimestamps". GitHub . Consultado el 7 de junio de 2018 .
  9. ^ Douglas Heaven (4 de febrero de 2019). Nature (ed.). "Bitcoin para la literatura biológica". Nature . 566 (7742): 141–142. Bibcode :2019Natur.566..141H. doi : 10.1038/d41586-019-00447-9 . PMID  30718888. S2CID  256769716.