Cómo demostrar la autoría de software: una guía para desarrolladores
Maya es una desarrolladora freelance que creó una biblioteca de sincronización de datos pequeña pero crítica para un cliente a principios de 2025. Dieciocho meses después, el nuevo equipo de ingeniería del cliente afirma que la biblioteca fue creada bajo un contrato posterior y le pide que deje de usarla en sus otros proyectos. Maya tiene commits de Git del proyecto original, pero cuando envía capturas de pantalla del registro, el abogado del cliente las descarta: «El historial de Git se puede reescribir. Estas marcas de tiempo no prueban nada».
El problema de Maya no es que le falten pruebas. Es que las pruebas que tiene son afirmativas, no verificables. Demostrar la autoría de software en una disputa, una solicitud de patente, una auditoría de cumplimiento o una revisión de secreto comercial requiere más que una fecha de commit. Requiere un registro criptográfico que una parte independiente pueda verificar sin confiar en tu repositorio, tu plataforma o tu palabra.
Esta guía explica cómo los desarrolladores y los responsables de cumplimiento pueden crear ese registro en la práctica. Se centra en Timestamp GIT, un servicio gestionado que automatiza el protocolo OpenTimestamps subyacente. Instalas una GitHub App una vez y el servicio ancla los hashes de tus commits a la blockchain de Bitcoin en segundo plano.
Por qué la prueba de autoría tradicional se queda corta
La mayoría de los desarrolladores ya tienen varias formas de señalar una fecha. El problema es que ninguna resiste un escrutinio real.
El historial de Git autoalojado es mutable. Las fechas de los commits de Git no son a prueba de manipulaciones. Con variables de entorno como GIT_AUTHOR_DATE y GIT_COMMITTER_DATE, un commit puede ser retrofechado. El rebase, el force-push y la reescritura del historial pueden alterar la línea temporal aparente. Incluso si tú nunca haces eso, la parte contraria puede argumentar que podrías haberlo hecho.
Las plataformas de Git alojadas no solucionan esto. Un repositorio de GitHub muestra marcas de tiempo, pero esas marcas de tiempo no son una prueba de existencia independiente. Dependen de los servidores de GitHub, la seguridad de la cuenta de GitHub y la disposición o capacidad de GitHub para avalar los datos ante un tribunal. Un atacante que comprometa una cuenta puede potencialmente alterar el contenido del repositorio. Un cambio en la política de la plataforma puede dificultar la obtención de registros históricos.
La protección formal de la propiedad intelectual es cara y lenta. Las patentes pueden costar decenas de miles de dólares, tardar años en concederse y pueden requerir revelar información que preferirías mantener en privado. Para freelancers, startups, agencias y equipos pequeños, las patentes suelen ser poco prácticas como primera línea de defensa.
Un enfoque más sólido es anclar una huella criptográfica de tu trabajo en un registro público inmutable. La huella es un hash unidireccional. Demuestra que un estado específico del repositorio existió en un momento específico, pero no revela el código fuente detrás de ese estado. Cuando el registro es Bitcoin, la prueba puede ser verificada de forma independiente por cualquier persona con el archivo de recibo y un nodo de Bitcoin.
Para una explicación más profunda de por qué esto es importante en disputas de propiedad intelectual, consulta ¿Qué es el estado de la técnica criptográfico y por qué es importante para el software?.
Un manual práctico para demostrar la autoría con Timestamp GIT
Timestamp GIT es una capa gestionada sin configuración sobre OpenTimestamps. No necesitas ejecutar comandos de OpenTimestamps, gestionar transacciones de Bitcoin ni operar tu propia infraestructura de sellado de tiempo. Instalas una GitHub App, conectas un repositorio y sigues escribiendo código. El servicio se encarga del resto.
Paso 1: Instala la GitHub App de Timestamp GIT
Instala la GitHub App de Timestamp GIT en el repositorio u organización que quieras proteger.
El modo estándar requiere acceso de solo lectura a tu repositorio de código fuente y acceso de lectura/escritura a un repositorio de destino donde se almacenarán los archivos de prueba. El destino puede ser el mismo repositorio o un repositorio espejo separado. Dado que GitHub no ofrece acceso de solo lectura exclusivamente al hash del commit, el permiso de lectura existe aunque Timestamp GIT solo lea el hash del commit HEAD.
En el modo empresarial de conocimiento cero, no concedes acceso de lectura al repositorio de código fuente en absoluto. En su lugar, una GitHub Action se ejecuta en tu infraestructura y envía únicamente el hash del commit a la API de Timestamp GIT.
No hay nada que instalar en tus máquinas de desarrollo. Tu flujo de trabajo local de Git permanece igual.
Paso 2: Sigue haciendo commits como de costumbre
Una vez instalada la App, los webhooks notifican a Timestamp GIT cada vez que aparece un nuevo commit. En el modo empresarial de conocimiento cero, tu GitHub Action envía el hash en su lugar.
Tu flujo de trabajo normal se ve así:
git add src/
git commit -m "Implement rate limiter v2"
git push origin main
No se requiere ningún comando de sellado adicional. El commit en sí es el disparador.
Paso 3: Deja que el lote nocturno ancle tus hashes
Timestamp GIT no ancla cada commit individualmente. Agrupa el trabajo por lotes para mayor eficiencia, manteniendo una ruta verificable para cada hash de commit.
Cada día, el sistema:
- Detecta nuevos commits a través de webhooks o de la GitHub Action.
- Encola los hashes de los commits en un almacén clave-valor en memoria.
- Agrupa los hashes pendientes en archivos de manifiesto por repositorio en un worker programado.
- Construye un árbol de Merkle a partir del lote diario.
- Crea pruebas de OpenTimestamps utilizando calendarios OTS públicos.
- Ancla la raíz de Merkle en la blockchain de Bitcoin.
La confirmación de Bitcoin normalmente tarda alrededor de tres horas, por lo que los archivos de prueba aparecen unas horas después del lote nocturno.
Paso 4: Recibe tus archivos de prueba
Después de que el ancla se confirme, Timestamp GIT envía el material de prueba a la rama de marcas de tiempo o al repositorio espejo dedicado que configuraste.
La prueba incluye:
- Archivos de manifiesto que registran qué hashes de commit fueron incluidos.
- Archivos de recibo
.otsque contienen los datos de prueba de OpenTimestamps.
Puedes inspeccionar lo que llegó a la rama de pruebas:
git fetch origin timestamps
git ls-tree -r --name-only origin/timestamps | tail
También puedes incrustar una insignia de verificación en tu README a través del endpoint de insignias autenticado. La insignia muestra el estado verificado actual y enlaza a la página de estado pública de tu repositorio.
Paso 5: Verifica en cualquier momento, incluso sin Timestamp GIT
La verificación está disponible a través de las páginas públicas del producto. La página de verificación criptográfica recorre los datos de la cadena de Merkle localmente en tu navegador, de modo que el servicio no ve lo que estás verificando.
También puedes descargar el archivo .ots y verificarlo de forma independiente utilizando herramientas estándar de OpenTimestamps contra la blockchain de Bitcoin. Dado que la prueba depende únicamente de SHA-256 y de los datos de bloques de Bitcoin, la verificación no requiere que Timestamp GIT permanezca en línea.
Se puede hacer una comprobación rápida del estado a través de la API pública:
curl -s https://timestampgit.dev/api/statusSummary/your-user/your-repo
Para un registro completo, puedes descargar un CSV de auditoría. Para un día específico, puedes descargar un certificado en PDF.
Despliegues autoalojados y empresariales
Si necesitas el máximo aislamiento o trabajas en un entorno sin conexión, Timestamp GIT está disponible como imagen Docker con una licencia autoalojada. Una pila Compose mínima se ve así:
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
En el primer arranque, un asistente de configuración te guía para conectar tu GitHub App y configurar la instancia. Hay una licencia de demostración por tiempo limitado disponible para evaluación.
El modo empresarial de conocimiento cero utiliza una GitHub Action que se ejecuta en tu propia infraestructura. Envía únicamente el hash del commit a la API de Timestamp GIT, de modo que tu código fuente nunca sale de tu entorno.
Qué evitar al demostrar la autoría de software
No confíes únicamente en registros internos o marcas de tiempo del control de versiones. No son a prueba de manipulaciones. Un tribunal o un auditor puede descartarlos como interesados incluso si son precisos.
No reveles tu código fuente en el proceso de prueba. Una marca de tiempo debe demostrar que el código existió, no publicar lo que hace. Utiliza un método de conocimiento cero que ancle únicamente un hash unidireccional. Eso protege los secretos comerciales y evita divulgaciones accidentales.
No utilices servicios de sellado de tiempo propietarios que podrían desaparecer o alterar registros. Si la prueba depende de un sistema cerrado, vuelves a confiar en un intermediario. Estándares abiertos como SHA-256, OpenTimestamps y Bitcoin son verificables sin el proveedor.
No esperes a que surja una disputa. Empieza a sellar el tiempo pronto y con frecuencia. Una cadena continua de commits anclados muestra un patrón de trabajo continuo, no un intento de última hora de fabricar pruebas.
El enfoque manual de OpenTimestamps requeriría operar el protocolo tú mismo. Timestamp GIT existe para ocultar esa complejidad detrás de una GitHub App y una canalización nocturna automatizada.
Preguntas frecuentes
¿Qué es exactamente la prueba criptográfica de autoría de software?
La prueba criptográfica de autoría de software es un método para demostrar que una versión específica de tu código existió en un momento determinado, sin revelar el código en sí. Funciona creando un hash único, o huella digital, del código y anclando ese hash en un registro público inmutable como la blockchain de Bitcoin. Cualquiera puede verificar posteriormente que el hash existió en ese momento, proporcionando una prueba de autoría a prueba de manipulaciones.
¿Cómo demuestra Timestamp GIT la autoría sin ver mi código?
Timestamp GIT utiliza un enfoque de conocimiento cero. Lee únicamente el hash del commit, que es una huella criptográfica, nunca el código fuente real. El hash se incluye en un árbol de Merkle y se ancla en Bitcoin mediante el protocolo OpenTimestamps. Dado que el hash es unidireccional, nadie puede invertirlo para ver tu código, pero la marca de tiempo demuestra que el código existió en ese momento.
¿Puedo verificar la marca de tiempo yo mismo si Timestamp GIT desaparece?
Sí. La prueba se basa completamente en estándares abiertos: SHA-256, Bitcoin y OpenTimestamps. Recibes archivos de recibo .ots que pueden verificarse de forma independiente utilizando herramientas estándar de OpenTimestamps contra la blockchain de Bitcoin. No se requiere tecnología ni servicio propietario para la verificación, por lo que tu prueba sigue siendo válida incluso si Timestamp GIT deja de existir.
¿Está esto reconocido legalmente?
Las marcas de tiempo criptográficas ancladas en blockchains públicas están cada vez más reconocidas como pruebas sólidas en procedimientos legales. Proporcionan un registro de existencia en un momento específico a prueba de manipulaciones y matemáticamente verificable. El reconocimiento legal varía según la jurisdicción, pero estas pruebas son mucho más sólidas que los registros internos o las marcas de tiempo de correo electrónico. Pueden presentarse ante tribunales, auditores o partes contrarias para establecer el estado de la técnica o la autoría.
¿Cuánto cuesta Timestamp GIT?
Los repositorios públicos están soportados con un plan gratuito. Los repositorios privados están disponibles con el plan Pro Agency por 49 dólares al mes. El modo empresarial de conocimiento cero, que utiliza GitHub Actions, está disponible por 199 dólares al mes. También hay una licencia de demostración por tiempo limitado disponible para la evaluación autoalojada con Docker.
Conclusión: Haz de la prueba de autoría parte de tu flujo de trabajo
Demostrar la autoría de software no tiene por qué complicar tu proceso de desarrollo. Timestamp GIT convierte tus commits de Git existentes en recibos anclados a Bitcoin automáticamente. El flujo de trabajo es de conocimiento cero, lo que significa que tu código fuente permanece privado. La prueba es independiente del proveedor, lo que significa que sigue siendo verificable incluso si el servicio desaparece.
Instala la Timestamp GIT GitHub App, conecta un repositorio y deja que el anclaje nocturno se ejecute en segundo plano. Los repositorios públicos pueden empezar gratis, mientras que los repositorios privados están cubiertos por los planes Pro y Enterprise. Una vez que llegue la primera confirmación de Bitcoin, tendrás una respuesta criptográfica a la pregunta: «¿Puedes demostrar que escribiste esto primero?»
Publicaciones relacionadas
- Cómo verificar una marca de tiempo de un commit de Git
- Sellar automáticamente la marca de tiempo de los commits de Git con una GitHub App
- ¿Qué es el estado de la técnica criptográfico y por qué es importante para el software?