Verifique las marcas de tiempo de código sin compartir su código fuente
La verificación es el momento en que una afirmación criptográfica se convierte en evidencia. Puede marcar temporalmente cada commit, pero si no puede verificar esa marca de tiempo más adelante sin entregar su código fuente, el sistema falla justo cuando más lo necesita. Timestamp GIT es un SaaS gestionado y una GitHub App que ancla los hashes de commits de Git en la blockchain de Bitcoin mediante el protocolo OpenTimestamps. La prueba es verificable por cualquier persona que tenga el recibo, pero el recibo nunca contiene su código.
Por qué la verificación es importante para las marcas de tiempo de código
Una marca de tiempo es tan buena como su historia de verificación. Para el estado de la técnica anterior, necesita demostrar que un commit específico existió antes de una fecha específica. Esa prueba debe funcionar en dos direcciones: debe ser lo suficientemente sólida para un tribunal o auditor, y debe ser lo suficientemente privada como para no exponer secretos comerciales solo para demostrar que existieron.
La idea central es la verificación de conocimiento cero: demostrar la existencia sin revelar el contenido. Un hash de commit de Git es una huella digital unidireccional del estado del repositorio. El hash por sí solo no puede revertirse para obtener el código fuente. Cuando ese hash se ancla en la blockchain de Bitcoin, se obtiene un registro público e inmutable de que la huella digital existió en un momento dado.
Si es nuevo en el concepto, lea ¿Qué es la prueba de existencia para código de software?. Este artículo se centra en el lado de la verificación: cómo es una prueba, cómo verificarla y qué significan los resultados.
Timestamp GIT automatiza el protocolo subyacente para que no necesite ejecutar comandos de OpenTimestamps ni gestionar transacciones de Bitcoin manualmente. Instala la GitHub App una vez, conecta un repositorio y cada commit se agrupa y ancla cada noche. La verificación se realiza luego mediante insignias, páginas de estado públicas y un visor de cadena de Merkle basado en navegador.
Cómo es una prueba de marca de tiempo
Cada día anclado produce dos artefactos principales en su repositorio:
- Un archivo de manifiesto (
.txt) que enumera los hashes de commits incluidos en el lote de ese día. - Un archivo de recibo
.otsque contiene la prueba OpenTimestamps y los datos de anclaje de Bitcoin.
Estos archivos se envían a una rama dedicada de marcas de tiempo en su repositorio o a un repositorio espejo. Contienen hashes de commits y datos de anclaje, no código fuente, contenido de archivos ni metadatos del repositorio más allá de lo necesario para la prueba.
Dado que el recibo .ots es público y autónomo, cualquier persona con el archivo puede verificar el anclaje contra la blockchain de Bitcoin. La prueba no depende de una base de datos privada. Timestamp GIT proporciona un verificador web que realiza las comprobaciones de la cadena de Merkle localmente en su navegador, para que pueda verificar sin instalar software y sin exponer qué repositorio está comprobando.
Para hacer visible la verificación, Timestamp GIT admite insignias integrables para su README. La insignia enlaza a la página de estado pública de su repositorio. Para repositorios privados, la URL de estado incluye un HMAC cifrado para que solo los usuarios autorizados puedan ver el resultado. La insignia en sí puede mostrar el último bloque de Bitcoin anclado, el total de commits sellados o un resumen combinado.
Verificación paso a paso con Timestamp GIT
El flujo de trabajo de verificación está diseñado para alguien que no quiere aprender el protocolo subyacente. Este es el camino normal.
Paso 1: Instale la GitHub App de Timestamp GIT en su repositorio
Esta es una configuración única. En el Modo Estándar, la GitHub App lee el hash del commit HEAD de su repositorio de origen monitoreado. Necesita acceso de solo lectura al repositorio de origen porque los permisos de GitHub no exponen un nivel de acceso solo de hash de commit, y acceso de lectura y escritura al repositorio de destino donde se escribirá la rama de prueba. En el Modo Enterprise ZK, una breve GitHub Action se ejecuta en su infraestructura y envía solo el hash del commit a la API de Timestamp GIT. En ese modo, el código fuente nunca sale de su entorno.
Paso 2: Espere el anclaje nocturno
Los hashes de commits se detectan automáticamente. Cada noche, un trabajador agrupa los hashes pendientes, crea archivos de manifiesto, construye un árbol de Merkle, crea pruebas OpenTimestamps utilizando calendarios OTS públicos y ancla la raíz de Merkle en la blockchain de Bitcoin. La confirmación de Bitcoin suele tardar unas tres horas después del lote nocturno, por lo que un commit realizado hoy normalmente es verificable al día siguiente.
Paso 3: Use la insignia o la página de estado
Para repositorios públicos, visite la página de estado en:
https://timestampgit.dev/status/{user}/{repo}
Este panel público muestra la longevidad de la prueba, la fecha de anclaje más antigua, la regularidad diaria, los datos de bloques y transacciones de Bitcoin, y un mapa de calor de calendario. También enlaza a informes descargables de auditoría en CSV y certificados en PDF.
También puede consultar la API de estado directamente:
# Información del último bloque de Bitcoin anclado
curl -s https://timestampgit.dev/api/statusLast/acme/webapp
# Recuento total de commits comprometidos/sellados
curl -s https://timestampgit.dev/api/statusCount/acme/webapp
# Resumen combinado para insignias de Shields.io
curl -s https://timestampgit.dev/api/statusSummary/acme/webapp
Reemplace acme/webapp con su usuario u organización de GitHub y el nombre del repositorio. Para repositorios privados, el endpoint autenticado GET /api/badgeLink/{user}/{repo} devuelve URLs de insignias y fragmentos de Markdown con un HMAC cifrado adjunto.
Paso 4: Abra la página de verificación para un día específico
Para una prueba detallada y paso a paso de la cadena de Merkle, abra:
https://timestampgit.dev/verification/{user}/{repo}/{date}
Esta página ejecuta el cálculo de verificación localmente en su navegador. Muestra la cadena de Merkle de varios niveles desde el hash de su commit hasta la raíz de Merkle anclada y el bloque de Bitcoin. Dado que el cálculo es local, el servicio no ve lo que está verificando.
Paso 5: Descargue registros formales
Desde la página de estado o la API, puede descargar:
- Un libro de auditoría CSV para el historial completo:
GET /api/audit/{user}/{repo} - Un certificado PDF para una fecha específica:
GET /api/report/{user}/{repo}/{date}
Estos son útiles para archivos legales o de cumplimiento. El certificado PDF le proporciona un registro legible por humanos, mientras que el CSV le da un rastro de auditoría completo.
Si necesita los datos de verificación subyacentes, el endpoint GET /api/verify/{user}/{repo}/{date} devuelve los datos completos de la cadena de Merkle para verificación local.
Interpretación de los resultados de verificación y casos límite
Una verificación exitosa significa una cosa: el hash del commit se incluyó en un árbol de Merkle cuya raíz se ancló en un bloque de Bitcoin específico en un momento específico. Una vez que ese bloque está confirmado, la marca de tiempo es inmutable. Ninguna parte, incluido Timestamp GIT, puede alterarla o falsificarla.
Hay algunos casos límite que debe comprender.
Anclajes pendientes
Justo después de un commit, la prueba aún no existe. Timestamp GIT agrupa y ancla hashes cada noche. La confirmación de Bitcoin normalmente tarda unas tres horas después de que se ejecuta el trabajador nocturno. Durante esa ventana, la página de estado puede mostrar el lote como pendiente. Una vez que la transacción se confirma, la prueba es verificable de inmediato.
Repositorios privados
Para repositorios privados, las URLs públicas de estado y verificación no son abiertamente accesibles. El sistema adjunta un HMAC cifrado que es específico de la instancia del servidor. Solo los usuarios autorizados con la URL firmada completa pueden ver la página de estado o verificación. Esto mantiene privados el nombre del repositorio y los metadatos del commit, al tiempo que permite a los auditores designados comprobar la prueba.
Independencia de los servidores de Timestamp GIT
La verificación no requiere que Timestamp GIT permanezca en línea. La prueba se basa en los datos de la blockchain de Bitcoin. Puede descargar el archivo .ots y usar las herramientas de verificación estándar de OpenTimestamps contra la blockchain de Bitcoin si prefiere el camino difícil. El verificador de navegador de Timestamp GIT es la versión gestionada de esa misma comprobación.
Archivos .ots perdidos
El recibo .ots y los archivos de manifiesto se almacenan en la rama dedicada de marcas de tiempo o en el repositorio espejo. Si pierde una copia local, vuelva a descargarla desde la rama. La prueba es recuperable desde la misma ubicación de Git donde el servicio la escribió originalmente.
Verificación sin compartir el código fuente: la ventaja del conocimiento cero
El mayor malentendido sobre el sellado de tiempo de código es que el servicio debe ver su código para demostrar que existió. Timestamp GIT no lo hace.
En el Modo Estándar, la GitHub App lee solo el hash del commit HEAD. Nunca lee, copia ni almacena su código fuente. En el Modo Enterprise ZK, la GitHub Action se ejecuta en su infraestructura y envía solo el hash a la API de Timestamp GIT. El repositorio de origen no necesita acceso de lectura para Timestamp GIT en ese modo. Esto hace que el Modo Enterprise ZK sea adecuado para entornos altamente sensibles.
Un tercero —un auditor, un abogado de la parte contraria o un tribunal— puede verificar una marca de tiempo sin que usted le conceda acceso al repositorio. Usted proporciona el archivo .ots o la URL de verificación firmada, y ellos pueden comprobar la prueba contra la blockchain de Bitcoin. Ven evidencia criptográfica, no código fuente.
Para los detalles de configuración detrás de los dos modos de implementación, consulte Automatice el sellado de tiempo de código con una GitHub App.
Preguntas frecuentes
¿Puedo verificar una marca de tiempo sin instalar nada?
Sí. Timestamp GIT proporciona una página de verificación basada en web donde puede usar el archivo .ots o la página de estado pública. Todo el cálculo ocurre localmente en su navegador, por lo que no se requiere instalación de software.
¿La verificación requiere compartir mi código fuente?
No. La verificación solo utiliza el hash del commit y el recibo .ots, que no contienen código fuente. La arquitectura de conocimiento cero garantiza que su código permanezca privado.
¿Cuánto tarda una marca de tiempo en ser verificable?
Las marcas de tiempo se anclan cada noche, y la confirmación de Bitcoin normalmente tarda unas 3 horas. Una vez confirmada, la prueba es verificable de inmediato.
¿Qué pasa si pierdo el archivo de recibo .ots?
El archivo .ots se almacena en una rama dedicada de su repositorio o en un repositorio espejo. Puede volver a descargarlo desde allí en cualquier momento.
Conclusión
La verificación es donde el sellado de tiempo criptográfico se vuelve útil. Una prueba que no puede comprobar no es una prueba. Timestamp GIT hace que la ruta de verificación sea práctica: instale la GitHub App una vez, deje que los commits se anclen cada noche y luego use insignias, páginas de estado y verificación local en el navegador para demostrar cuándo existió su código, sin compartir nunca el código fuente.
Configure su primer repositorio en Timestamp GIT.
Publicaciones relacionadas
- ¿Qué es la prueba de existencia para código de software?
- Cómo demostrar que su código existía antes de una solicitud de patente
- Selle temporalmente los commits de Git para defenderse de los trolls de patentes
- Automatice el sellado de tiempo de código con una GitHub App