Timestamp GIT Secure your prior art without exposing code

← Todos los artículos

2026-09-17

Cómo demostrar que el código existía en un momento específico (sin revelarlo)

Cómo demostrar que el código existía en un momento específico (sin revelarlo)
timestamp git blockchain proof

Cómo demostrar que el código existía en un momento específico (sin revelarlo)

Si necesitas demostrar que un fragmento de código específico existía antes de una fecha determinada —para una disputa de patentes, un desacuerdo entre empleados o la afirmación de “desarrollo independiente” de un competidor—, el historial estándar de Git no es suficiente. Los registros internos viven en servidores que no te pertenecen, pueden editarse y suelen descartarse en auditorías legales por considerarse interesados. Este artículo explica la tarea exacta: demostrar que el código existía en un momento específico sin revelar el código en sí.

Lo harás anclando hashes de commits de Git —no el código fuente— a la blockchain de Bitcoin mediante la aplicación gestionada Timestamp GIT para GitHub. Al final, tendrás una prueba inmutable y lista para presentar ante un tribunal que cualquiera puede verificar de forma independiente, sin trabajo criptográfico manual y sin que el código fuente salga jamás de tu repositorio.

Si eres nuevo en el concepto subyacente, consulta ¿Qué es la prueba criptográfica de autoría de código?.

Requisitos previos

  • Una cuenta de GitHub y un repositorio que quieras sellar temporalmente. Los repositorios públicos funcionan con el plan gratuito Open Source. Los repositorios privados requieren un plan de pago Pro Agency o Enterprise ZK.
  • Acceso a la aplicación Timestamp GIT para GitHub y una cuenta de Timestamp GIT. Instalarás la aplicación una vez desde la página del producto en Timestamp GIT.
  • Familiaridad básica con los commits de Git y la estructura de repositorios. No se necesitan conocimientos avanzados de criptografía.
  • Para repositorios privados, asegúrate de que tu cuenta tenga un plan de pago que incluya repositorios privados.

Paso a paso: configuración del sellado temporal automático

Paso 1: Instala la aplicación Timestamp GIT para GitHub

Ve al panel de Timestamp GIT e inicia la instalación de la aplicación de GitHub. Elige tu cuenta personal u organización y concede los permisos solicitados:

  • Acceso de lectura al repositorio de origen. El sistema de permisos de GitHub requiere al menos acceso de solo lectura porque los hashes de commits no se exponen sin él.
  • Acceso de lectura y escritura al repositorio de destino donde se escribirán los archivos de prueba.

La garantía importante: Timestamp GIT nunca lee, copia ni almacena tu código fuente. Solo extrae los hashes de los commits.

Paso 2: Conecta tu repositorio

Después de instalar la aplicación, abre el panel de Timestamp GIT y selecciona el repositorio que quieres supervisar. Elige dónde deben entregarse las pruebas:

  • Una rama dedicada timestamps en el mismo repositorio, o
  • Un repositorio espejo separado.

Esta ubicación de destino es donde se subirán posteriormente el manifiesto y los archivos de recibo .ots.

Paso 3: Configura las preferencias de sellado temporal

El comportamiento predeterminado es el procesamiento por lotes automático nocturno. Los hashes de commits pendientes se agrupan diariamente, se construye un árbol de Merkle, se crean pruebas de OpenTimestamps y la raíz de Merkle se ancla a Bitcoin. En la mayoría de los casos, no necesitas cambiar nada.

Si usas el modo Enterprise ZK, ejecutarás una breve GitHub Action en tu propia infraestructura en lugar de conceder acceso de lectura al repositorio de origen. Esa acción envía únicamente los hashes de commits a la API de Timestamp GIT, de modo que tu código fuente nunca sale de tu entorno.

Paso 4: Haz un nuevo commit

Haz commits en tu repositorio como de costumbre. La aplicación de GitHub detecta el nuevo commit automáticamente mediante webhooks.

git add .
git commit -m "Add new feature logic"
git push origin main

No se necesita ningún comando adicional de sellado temporal. El hash del commit entra automáticamente en la cola de Timestamp GIT.

Paso 5: Espera el trabajo cron nocturno

Cada noche, Timestamp GIT procesa los hashes pendientes:

  1. Agrupa todos los hashes de commits pendientes del día.
  2. Crea archivos de manifiesto de texto para cada repositorio.
  3. Construye un árbol de Merkle de forma nativa.
  4. Crea pruebas de OpenTimestamps utilizando calendarios OTS públicos.
  5. Ancla la raíz de Merkle en la blockchain de Bitcoin.

La confirmación de Bitcoin suele tardar unas horas después del lote nocturno.

Paso 6: Recibe tu prueba

Una vez confirmada la transacción de Bitcoin, Timestamp GIT sube los archivos de prueba a la rama designada. Verás:

  • Un archivo de manifiesto con la lista de hashes de commits.
  • Archivos de recibo .ots para el lote diario.

Estos archivos de prueba son independientes del proveedor. Puedes verificarlos más adelante incluso si el servicio Timestamp GIT desaparece.

Paso 7: Añade una insignia de verificación a tu README

Desde la página de estado del repositorio, copia el markdown de la insignia de Shields.io proporcionado y pégalo en tu README.md. Para repositorios públicos, la insignia enlaza a una página pública de verificación. Para repositorios privados, la URL de la insignia incluye un HMAC cifrado para que solo los usuarios autorizados puedan ver el estado.

El panel proporciona el fragmento de markdown exacto, que tendrá un aspecto similar a:

[![Timestamped](https://timestampgit.dev/api/badgeLink/your-user/your-repo/shields)](https://timestampgit.dev/status/your-user/your-repo)

Sustituye your-user y your-repo por los valores reales que se muestran en el panel.

Cómo confirmar que funcionó (verificación)

Consulta el panel de estado del repositorio

Abre la página pública de estado de tu repositorio. Muestra:

  • Longevidad de la prueba y fecha de anclaje más antigua.
  • Regularidad del anclaje diario y un mapa de calor de calendario.
  • Altura del bloque de Bitcoin y datos de la transacción.
  • CSV de auditoría descargable y certificado PDF para una fecha específica.

Ejecuta la verificación en el navegador

Usa la página de verificación para un repositorio y una fecha específicos. Recorre la verificación de la cadena de Merkle paso a paso, y todo el cálculo se realiza localmente en tu navegador. Nadie ve lo que verificas.

Descarga un certificado PDF

Para un documento listo para presentar ante un tribunal, descarga el certificado PDF de la fecha que necesites. Esto te da una prueba limpia y compartible sin exponer ningún código.

Consulta la API mediante programación

Puedes consultar los endpoints públicos de estado con curl:

curl https://timestampgit.dev/api/statusLast/your-user/your-repo
curl https://timestampgit.dev/api/statusCount/your-user/your-repo
curl https://timestampgit.dev/api/statusSummary/your-user/your-repo

El último endpoint devuelve un resumen combinado adecuado para las insignias de Shields.io.

Verificación independiente para usuarios avanzados

Dado que la prueba se basa únicamente en SHA-256 y en los datos de bloques de Bitcoin, puedes descargar el recibo .ots y verificarlo con las herramientas estándar de verificación de OpenTimestamps contra la blockchain de Bitcoin. Esto no requiere confiar en Timestamp GIT ni en ningún proveedor. La aplicación gestionada simplemente automatiza el proceso que de otro modo requeriría trabajo manual con el protocolo.

Solución de problemas comunes

No aparece ningún sello temporal después de un commit

Comprueba que la aplicación de GitHub esté instalada en la cuenta u organización y que el repositorio esté conectado en el panel de Timestamp GIT. Solo se sellarán temporalmente los commits realizados después de la configuración.

La prueba no se entrega después de 24 horas

La confirmación de Bitcoin puede tardar varias horas después del lote nocturno. Consulta el panel de estado del repositorio para ver si hay un estado pendiente. Si usas un repositorio privado, confirma que tu plan incluya repositorios privados.

La insignia muestra “unverified” o un enlace roto

Verifica la URL de la insignia desde el panel y asegúrate de que el repositorio sea público o de que el HMAC cifrado esté incluido para repositorios privados. Un enlace roto suele significar que el repositorio o el nombre de usuario están mal escritos.

Necesitas demostrar la existencia de código que no está alojado en GitHub

Usa el modo Enterprise ZK. Una GitHub Action se ejecuta en tu infraestructura y envía únicamente los hashes de commits a la API. Esto funciona con cualquier repositorio Git, y Timestamp GIT no necesita acceso de lectura al repositorio de origen.

Quieres autoalojarlo en un entorno aislado

Timestamp GIT está disponible como imagen Docker con una licencia autoalojada. Puedes ejecutar el mismo flujo de trabajo gestionado en tu propia infraestructura utilizando la configuración de Docker Compose proporcionada:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

Luego inícialo con:

docker compose pull
docker compose up -d
docker compose logs -f timestampgit

La aplicación está disponible en http://localhost:8080 después del arranque. Hay una licencia de demostración con límite de tiempo disponible para evaluación.

Preguntas frecuentes

¿Sellar temporalmente mi código revela su contenido a alguien?

No. Timestamp GIT solo extrae el hash del commit de Git —una huella criptográfica— y ancla ese hash en la blockchain de Bitcoin. El servicio nunca lee, copia ni almacena tu código fuente real.

¿Cuánto tarda en obtenerse una prueba de sellado temporal?

El proceso es automático. Después de hacer el commit, el hash se pone en cola y se ancla en el siguiente lote nocturno. La confirmación de Bitcoin suele tardar unas horas, tras lo cual los archivos de prueba se suben a tu repositorio.

¿Puedo verificar el sello temporal sin depender de Timestamp GIT?

Sí. La prueba se basa en el protocolo OpenTimestamps y en los datos de la blockchain de Bitcoin. Puedes descargar el recibo .ots y verificarlo de forma independiente utilizando las herramientas estándar de OpenTimestamps, incluso si Timestamp GIT desaparece.

¿Qué pasa si necesito demostrar la existencia de código que no está alojado en GitHub?

Timestamp GIT ofrece un modo Enterprise ZK en el que una GitHub Action se ejecuta en tu infraestructura y envía únicamente los hashes de commits a la API. Esto funciona con cualquier repositorio Git, y tu código nunca sale de tu entorno.

Conclusión

Ahora sabes cómo demostrar que el código existía en un momento específico sin revelarlo: instala la aplicación Timestamp GIT para GitHub una vez, conecta un repositorio y deja que el servicio ancle cada hash de commit a Bitcoin automáticamente. Tu código fuente nunca sale de tu repositorio: solo se sellan temporalmente las huellas criptográficas.

Las pruebas son independientes de cualquier proveedor individual, se basan en las matemáticas de Bitcoin y pueden verificarse en un navegador, mediante API o con las herramientas estándar de OpenTimestamps. Para repositorios públicos, el plan gratuito Open Source es un punto de partida práctico. Para repositorios privados o entornos aislados, las opciones Pro Agency, Enterprise ZK y la licencia Docker autoalojada cubren el resto.

Si quieres comprender los conceptos subyacentes o comparar el enfoque gestionado con el protocolo en bruto, consulta los artículos siguientes.

Publicaciones relacionadas

EU label: AI-generated content