Prueba de existencia para código: qué es y por qué importa
La mayoría de los desarrolladores confían en el historial de Git para mostrar cuándo se incorporó una funcionalidad. Pero en una disputa legal, las fechas de los commits de Git son solo metadatos. Una persona con acceso al repositorio puede reescribir el historial, forzar nuevos cambios con fechas alteradas o editar la base de datos del servidor. Por eso la prueba de existencia para código ha pasado de ser una curiosidad criptográfica a una herramienta práctica de cumplimiento normativo.
La prueba de existencia te da algo más sólido que un mensaje de commit o una captura de pantalla con marca de tiempo: un registro matemático, público y a prueba de manipulaciones de que un estado concreto del repositorio existió en un momento concreto. Este artículo explica qué significa eso, cómo funciona sin exponer tu código fuente y cómo una GitHub App gestionada como Timestamp GIT lo convierte en un flujo de trabajo sin configuración.
¿Qué es la prueba de existencia para código?
La prueba de existencia es evidencia criptográfica de que un fragmento específico de código existió en un momento específico. No almacena tu código, no prueba que lo escribiste y no reemplaza el registro de derechos de autor. Prueba un hecho limitado pero poderoso: esta huella exacta existió antes de esta marca de tiempo.
La huella es un hash de commit de Git. Cuando haces un commit, Git genera un identificador unidireccional a partir del estado del repositorio:
git rev-parse HEAD
# 1a4f28c3e8f1d95b4e2a3cfe06cb0d5b9a4d1e7c
Ese hash es sensible. Cambia un solo carácter en cualquier archivo rastreado, o altera los metadatos del commit, y obtienes un hash completamente diferente. Pero el hash en sí no revela nada sobre nombres, rutas o código fuente.
Para que ese hash tenga significado a lo largo del tiempo, la prueba de existencia lo ancla en un registro público e inmutable: la blockchain de Bitcoin. El bloque de Bitcoin actúa como un reloj universal. Una vez que el ancla está confirmada, no hay forma práctica de alterar la marca de tiempo sin reescribir la historia de Bitcoin.
Las alternativas tradicionales son más débiles:
- Los registros internos de Git pueden editarse, eliminarse o alojarse en servidores fuera de tu control.
- La notarización prueba que una persona firmó un documento, pero es más lenta y a menudo requiere confianza en terceros.
- Las patentes son caras y lentas; además requieren divulgación pública.
Una huella anclada en blockchain es barata, automatizada y verificable matemáticamente. Incluso si el servicio de sellado de tiempo desaparece, la prueba puede verificarse directamente contra Bitcoin.
Una analogía sencilla: el sobre sellado
Imagina que te envías por correo un sobre sellado que contiene la descripción de una invención. Cuando el sobre llega, el matasellos prueba que la descripción existía en esa fecha. Mantienes el sobre sellado hasta que una disputa requiera abrirlo.
La prueba de existencia es la versión digital de ese truco:
- El hash de tu código es el sobre sellado. Oculta el contenido.
- La blockchain de Bitcoin es el matasellos. Registra el momento en que la huella se incorporó al registro público.
- El recibo
.otses el sobre en sí: la prueba criptográfica que conservas.
Pero un sobre físico tiene una debilidad: alguien podría teóricamente falsificar un matasellos o antedatar una carta. Una marca de tiempo de Bitcoin no tiene esa debilidad. La blockchain es pública, de solo anexión y está asegurada por prueba de trabajo. Una vez que el ancla queda enterrada bajo suficientes bloques, la antedatación es computacionalmente inviable.
Cómo funciona por dentro (brevemente)
El flujo completo es sorprendentemente simple:
Commit detectado
↓
Hash del commit de Git extraído
↓
Lote nocturno de hashes
↓
Árbol de Merkle construido
↓
Raíz de Merkle anclada en Bitcoin
↓
Recibo .ots devuelto
Paso 1: Huella. Git ya crea el hash único del commit cuando se realiza un commit. Timestamp GIT extrae solo ese hash, no el contenido que hay detrás.
Paso 2: Anclaje. Cada noche, el servicio agrupa los hashes de commits pendientes en un manifiesto. Construye un árbol de Merkle a partir de los hashes y ancla la raíz de Merkle en una transacción de Bitcoin usando el protocolo OpenTimestamps. Esto agrupa muchos commits en un solo ancla en cadena. La confirmación de Bitcoin normalmente tarda unas tres horas, por lo que los archivos de prueba aparecen después de que el ancla se confirma.
Paso 3: Prueba. El resultado es un archivo de recibo .ots. El recibo contiene la ruta criptográfica desde tu hash de commit hasta la cabecera del bloque de Bitcoin. Cualquiera puede verificar posteriormente la prueba localmente contra la blockchain.
Existe una forma manual de hacerlo tú mismo usando las herramientas de OpenTimestamps e interacciones manuales con Bitcoin. Funciona, pero implica mantener tus propios calendarios, recibos y flujo de verificación. Timestamp GIT existe precisamente para eliminar esa carga operativa. La GitHub App vigila tus repositorios, agrupa hashes cada noche y envía los archivos de prueba de vuelta a una rama de timestamps o a un repositorio espejo. Sin herramientas de CLI, sin pasos manuales de protocolo, sin comandos de OpenTimestamps.
Por qué la prueba de existencia importa para los desarrolladores
Protección contra los trolls de patentes
Los trolls de patentes a menudo presentan patentes amplias sobre tecnología común. Si implementaste la misma idea meses antes, una marca de tiempo inmutable puede invalidar la reclamación. No necesitas explicar tu implementación públicamente: solo necesitas demostrar que el código existía antes de la fecha de presentación.
Resolver disputas de autoría
Cuando un desarrollador principal se va, o un contratista afirma que construyó una funcionalidad primero, un hash de commit de Git anclado en Bitcoin resuelve el problema del “él dijo, ella dijo”. Puedes probar que el estado existió en una fecha específica, sin depender de registros de acceso internos que un tribunal podría descartar por considerarlos interesados.
Defensa contra acusaciones de “sala limpia”
Un competidor puede afirmar que desarrolló de forma independiente una funcionalidad similar después de que tú la lanzaras. Si tu código existió 18 meses antes, la marca de tiempo crea un muro matemático. La acusación se derrumba frente al registro público.
Fortalecer la evidencia legal
Los registros internos a menudo se consideran manipulables. Las pruebas ancladas en blockchain son a prueba de manipulaciones. Se basan en SHA-256 y en los datos de bloques de Bitcoin, estándares que pueden ser verificados por expertos independientes. Eso las hace mucho más sólidas en auditorías, negociaciones de acuerdos o litigios.
Conceptos erróneos comunes
- No es un registro de derechos de autor. Los derechos de autor protegen la expresión y surgen automáticamente, pero la prueba de existencia no reemplaza el registro. Respalda tu reclamación sobre el momento.
- No es una patente. Una marca de tiempo no otorga derechos exclusivos. Proporciona evidencia de estado de la técnica frente a reclamaciones competidoras posteriores.
- No prueba la propiedad. Prueba la existencia en un momento dado. La propiedad es una cuestión legal separada, respaldada normalmente por registros adicionales.
Entender ese alcance es importante. La prueba de existencia es una pieza poderosa del rompecabezas, no un escudo legal mágico.
Cómo Timestamp GIT lo hace sin esfuerzo
Timestamp GIT es un SaaS gestionado más una GitHub App que automatiza todo el proceso de sellado de tiempo. Lo instalas una vez, seleccionas los repositorios que quieres monitorizar y cada nuevo commit se ancla en Bitcoin durante el siguiente lote nocturno.
El detalle arquitectónico clave es el manejo de conocimiento cero de tu código fuente:
- Modo estándar usa la GitHub App para leer solo el hash del commit HEAD de un repositorio monitorizado. Timestamp GIT nunca ve, copia ni almacena tu código fuente real. Solo recibe el hash del commit.
- Modo Enterprise ZK usa una GitHub Action corta que se ejecuta en tu propio entorno. La acción envía solo el hash del commit a la API de Timestamp GIT, de modo que tu código fuente nunca sale de tu infraestructura.
Después del anclaje, la verificación está diseñada para ser amigable para los desarrolladores:
- Insignias integrables para tu README que muestran el estado público de verificación.
- Páginas de estado públicas que muestran la fecha de anclaje más temprana, los datos del bloque y la transacción de Bitcoin, y un mapa de calor de calendario.
- Certificados PDF descargables para una fecha específica.
- Verificación basada en navegador que se ejecuta localmente en tu navegador, de modo que la prueba puede comprobarse sin confiar en ningún servicio de terceros.
- Endpoints de API pública como
/api/statusLast/{user}/{repo}y/api/audit/{user}/{repo}que permiten integraciones e informes personalizados.
Timestamp GIT también admite una licencia autoalojada con Docker para entornos aislados o altamente regulados. El inicio rápido 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
Los precios comienzan con un nivel gratuito para repositorios públicos. Los repositorios privados y los casos de uso empresariales pasan a planes de pago. El objetivo es que obtener una marca de tiempo criptográfica se sienta tan normal como activar la protección de ramas.
Si quieres más detalles sobre el flujo de configuración, consulta Automatizar el sellado de tiempo de commits de Git con una GitHub App.
Preguntas frecuentes
¿Qué es exactamente la prueba de existencia para código?
La prueba de existencia es evidencia criptográfica de que un fragmento específico de código existió en un momento específico. Funciona aplicando un hash al código, o a un commit de Git, y anclando ese hash en la blockchain de Bitcoin. La inmutabilidad de la blockchain garantiza que la marca de tiempo no puede alterarse ni antedatarse, y la prueba puede verificarse de forma independiente por cualquiera.
¿En qué se diferencia la prueba de existencia de los derechos de autor o las patentes?
Los derechos de autor protegen la expresión de una idea y surgen automáticamente, pero probar la fecha de creación puede ser difícil. Las patentes protegen invenciones, pero son caras, lentas y requieren divulgación pública. La prueba de existencia proporciona una marca de tiempo a prueba de manipulaciones que puede respaldar tanto reclamaciones de derechos de autor como de patentes, pero no otorga derechos exclusivos por sí misma.
¿Puedo probar la existencia sin revelar mi código fuente?
Sí. La prueba de existencia usa un hash criptográfico del código, no el código en sí. Un hash es una función unidireccional: es computacionalmente inviable derivar el código original a partir del hash. La arquitectura de conocimiento cero de Timestamp GIT garantiza que solo el hash del commit se envía al servicio, nunca el código fuente. En el modo Enterprise ZK, incluso el hash se envía desde tu propio entorno.
¿El sellado de tiempo con Bitcoin es legalmente reconocido?
Aunque las leyes varían según la jurisdicción, las marcas de tiempo basadas en blockchain son cada vez más aceptadas como evidencia en los tribunales debido a su integridad criptográfica e inmutabilidad. El protocolo OpenTimestamps que usa Timestamp GIT se basa en estándares ampliamente aceptados como SHA-256 y la blockchain de Bitcoin. La prueba puede verificarse de forma independiente, lo que la convierte en evidencia sólida de existencia en un momento determinado.
¿Cómo empiezo con Timestamp GIT?
Empieza instalando la GitHub App de Timestamp GIT en tus repositorios. La app detecta automáticamente nuevos commits y los ancla a Bitcoin cada noche. Puedes monitorizar el estado mediante insignias o el panel público, y descargar informes de verificación. Para repositorios privados, puedes elegir un plan de pago o autoalojarlo con Docker.
Conclusión
La prueba de existencia para código cambia la pregunta de “¿confías en mi historial de Git?” a “¿puedes verificar este hash contra Bitcoin?”. Esa es una posición mucho más sólida.
No es un reemplazo del registro de derechos de autor ni de una estrategia de patentes. Es la capa que falta y que le dice al mundo, con certeza matemática, cuándo existió un estado del repositorio. Para desarrolladores, startups, agencias y equipos de cumplimiento, esa capa se está convirtiendo en práctica estándar.
Si quieres implementar la prueba de existencia sin gestionar recibos criptográficos manualmente, Timestamp GIT es la ruta gestionada. Instala la GitHub App una vez, conecta tus repositorios y deja que el anclaje nocturno en Bitcoin ocurra automáticamente. Puedes explorar el servicio en https://timestampgit.dev/.
Publicaciones relacionadas
- Automatizar el sellado de tiempo de commits de Git con una GitHub App
- Alternativa a OpenTimestamps: sellado de tiempo gestionado para Git
- Protección de código para freelancers: una solución de sellado de tiempo