O Que É Prova de Existência para Código de Software?
Para desenvolvedores e equipes de conformidade, “prova de existência” não se trata de provar propriedade ou autoria. Ela responde a uma única pergunta objetiva: este código exato existia neste momento específico? Em um mundo onde o histórico do Git pode ser reescrito, os carimbos de data/hora dos arquivos podem ser alterados e os logs internos são frequentemente descartados como tendenciosos, a prova de existência para código de software significa ancorar uma impressão digital criptográfica do seu trabalho em um registro público imutável.
Este artigo explica o que significa prova de existência, como ela funciona internamente e como o Timestamp GIT a transforma em um fluxo de trabalho do GitHub sem configuração.
O Que “Prova de Existência” Significa para Código?
Prova de existência para código de software é a capacidade de demonstrar que um trecho específico de código — ou, mais precisamente, um hash criptográfico desse código — existia em um momento específico.
Esse último ponto é importante. Você não precisa publicar seu código-fonte e não precisa enviá-lo a terceiros. Em vez disso, você cria uma impressão digital unidirecional do estado do repositório e registra essa impressão digital em algum lugar público e resistente a adulterações.
Para entender a diferença:
- Prova de existência mostra que um determinado estado de código existia em uma determinada data.
- Prova de autoria mostra quem criou ou fez commit daquele código.
- Prova de propriedade é uma conclusão jurídica baseada em autoria, contratos de trabalho, cessões ou outras evidências.
Um carimbo de data/hora ancorado em blockchain não prova que você escreveu o código. Ele prova que o código existia naquele momento. Em muitas disputas, essa distinção é suficiente — porque se sua implementação existia antes do pedido de patente ou da alegação de outra pessoa, a linha do tempo se torna matematicamente ancorada.
Veja como a impressão digital se parece no Git:
# O Git cria uma impressão digital única para o estado exato do repositório
git rev-parse HEAD
# 6f1ed002ab5595859012f3f9b6b4c2b1e1c9a2e5
Esse hash representa o estado completo do repositório no momento do commit. Altere um byte e o hash muda completamente. O hash em si não pode ser revertido para revelar seu código-fonte.
Uma Analogia Simples: O Cartório e o Cofre
Imagine que você entra em um cartório com um envelope lacrado. O tabelião não o abre. Em vez disso, ele registra a data, coloca um carimbo na parte externa e assina um registro em livro. Anos depois, você pode abrir o envelope no tribunal e mostrar que o conteúdo existia naquela data, porque o registro do cartório é independente e à prova de adulteração.
A prova de existência para software funciona da mesma forma, exceto que o “envelope” é um hash criptográfico e o “cartório” é o blockchain do Bitcoin.
- Você mantém o código privado. O cartório — neste caso, o serviço de carimbo de data/hora e o registro público — vê apenas a impressão digital.
- O registro é independente. O blockchain do Bitcoin é um registro público que nenhum fornecedor controla. Uma vez que uma transação é confirmada em um bloco, alterar esse registro é computacionalmente impraticável.
- A evidência sobrevive ao fornecedor. Como a prova está ancorada no Bitcoin, você pode verificá-la mesmo que o serviço de carimbo de data/hora desapareça.
Essa analogia ajuda partes interessadas não técnicas a entender por que um carimbo de data/hora em blockchain é diferente de um log interno do Git. Um log interno vive em infraestrutura que você controla ou aluga. Uma prova ancorada no Bitcoin é pública, imutável e independentemente verificável.
Como a Prova de Existência Funciona Internamente
O processo pode ser dividido em três etapas.
Etapa 1: Impressão Digital
O Git já faz a primeira etapa para você. Cada commit recebe um hash único — SHA-1 em versões mais antigas do Git, com suporte a SHA-256 em repositórios mais novos — que cobre o estado completo do repositório naquele ponto.
Esse hash não é o seu código. É um resumo matemático de tamanho fixo. Você não pode reconstruir o código-fonte a partir dele, e o mesmo estado de código sempre produz o mesmo hash.
Etapa 2: Ancoragem
A próxima etapa é ancorar o hash em um registro público. O Timestamp GIT coleta hashes de commit e os agrupa em arquivos de manifesto diários. Ele constrói uma árvore de Merkle a partir desses hashes e cria provas OpenTimestamps. A raiz de Merkle é então ancorada em uma transação do Bitcoin.
Uma vez que essa transação é confirmada em um bloco do Bitcoin, o carimbo de data/hora se torna imutável. Não há botão de excluir, nem substituição administrativa, nem banco de dados proprietário que possa ser editado posteriormente.
O fluxo se parece com isto:
hash do commit -> manifesto diário -> árvore de Merkle -> transação Bitcoin -> recibo .ots
Etapa 3: Prova
O resultado é um recibo criptográfico, normalmente um arquivo .ots. Esse recibo permite que qualquer pessoa verifique o carimbo de data/hora contra o blockchain do Bitcoin usando ferramentas padrão do OpenTimestamps.
Isso é importante: a prova depende de SHA-256 e dos dados de blocos do Bitcoin. Não há dependência do formato ou da infraestrutura de um único fornecedor. Mesmo que o provedor SaaS deixe de existir, a prova permanece verificável.
Fazer isso manualmente com ferramentas brutas do OpenTimestamps é possível, mas significa lidar com calendários, árvores de Merkle e monitoramento de confirmação do Bitcoin por conta própria. Essa complexidade manual é exatamente o que o Timestamp GIT elimina ao automatizar o pipeline por trás de um GitHub App.
Por Que a Prova de Existência Importa para Desenvolvedores e Conformidade
A prova de existência importa porque o tempo é frequentemente a questão central em disputas de propriedade intelectual.
- Trolls de patentes: Uma defesa comum contra uma patente de software ampla é o estado da técnica. Se você puder mostrar que seu código existia antes da data de depósito, a reivindicação da patente pode ser invalidada. A prova de existência transforma seu repositório privado em um registro de estado da técnica datado e verificável. Para mais detalhes, consulte Como Provar que Seu Código Existia Antes de um Pedido de Patente.
- Disputas com funcionários e clientes: Quando um desenvolvedor sai ou um cliente questiona quando um marco foi concluído, um hash de commit com carimbo de data/hora é mais forte do que um log de chat exportado ou um histórico do Git editado.
- Conformidade e governança: Equipes que precisam de trilhas de auditoria para revisões de segurança, due diligence ou governança interna podem mostrar um registro regular e verificável de quando os estados de código existiam.
Também há equívocos comuns a esclarecer.
- Não é registro de direitos autorais. Um carimbo de data/hora em blockchain não substitui o registro de direitos autorais e, por si só, não prova autoria.
- Não prova quem escreveu o código. Prova que um determinado hash existia em um determinado momento. A autoria ainda precisa de registros de emprego, metadados de commit ou outras evidências.
- Não é “apenas um log interno”. O histórico do Git pode ser reescrito, sofrer force-push ou ser perdido. Uma prova ancorada no Bitcoin é externa, pública e matematicamente verificável.
Como o Timestamp GIT Torna a Prova de Existência Sem Esforço
O Timestamp GIT é um SaaS gerenciado e GitHub App que automatiza todo o pipeline de prova de existência. Você não precisa executar comandos do OpenTimestamps, gerenciar calendários ou interagir diretamente com o Bitcoin.
O fluxo de trabalho principal é:
- Instale o GitHub App uma vez.
- Selecione os repositórios que deseja monitorar.
- Continue fazendo commits normalmente.
Toda noite, o Timestamp GIT agrupa automaticamente os hashes de commit pendentes, constrói uma árvore de Merkle, cria provas OpenTimestamps e ancora a raiz de Merkle no blockchain do Bitcoin. Após a confirmação do Bitcoin — normalmente em torno de três horas — os arquivos de manifesto e o recibo .ots são enviados de volta para um branch de timestamps dedicado ou repositório sombra.
Características principais:
- Zero conhecimento por design. O Timestamp GIT nunca vê, copia ou armazena seu código-fonte. Ele processa apenas hashes de commit.
- Sem etapas manuais. Não há ferramentas de CLI para instalar nas máquinas dos desenvolvedores e nem transações brutas de Bitcoin para criar.
- Implantação flexível. O Modo Padrão usa o GitHub App e requer acesso de leitura ao repositório de origem e acesso de leitura e gravação ao repositório de destino. O Modo Enterprise ZK usa um GitHub Action em sua infraestrutura para enviar apenas o hash do commit para a API do Timestamp GIT, de modo que o serviço não precisa de acesso de leitura ao repositório de origem.
- Verificação pública. Você pode incorporar selos de status no seu README, inspecionar a página de status pública, baixar CSVs de auditoria ou gerar certificados em PDF.
- Independência de fornecedor. O recibo
.otspode ser verificado offline com ferramentas padrão do OpenTimestamps, mesmo que o Timestamp GIT deixe de operar.
Para ambientes auto-hospedados ou isolados, uma imagem Docker está disponível:
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
Você também pode consultar endpoints públicos de status diretamente, por exemplo:
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
Esse endpoint retorna informações sobre o último bloco do Bitcoin ancorado para um repositório monitorado.
Perguntas Frequentes
A prova de existência é legalmente reconhecida?
Carimbos de data/hora criptográficos são cada vez mais aceitos em tribunais como evidência de estado da técnica. Eles fornecem um registro forte e à prova de adulteração que pode ser verificado de forma independente. No entanto, o reconhecimento legal varia conforme a jurisdição, e é aconselhável consultar um advogado para casos específicos.
A prova de existência revela meu código-fonte?
Não. A prova de existência usa hashes criptográficos, que são funções unidirecionais. O código-fonte real nunca é transmitido ou armazenado. Apenas o hash é ancorado ao blockchain, então seu código permanece privado.
Quanto custa para carimbar meu código com data/hora?
O Timestamp GIT oferece um plano gratuito para repositórios públicos. Os planos pagos começam em US$ 49/mês para repositórios privados, com um plano Enterprise ZK a US$ 199/mês. Licenças Docker auto-hospedadas também estão disponíveis.
Posso verificar o carimbo de data/hora sem depender do Timestamp GIT?
Sim. As provas são baseadas no protocolo OpenTimestamps e no blockchain do Bitcoin. Você pode baixar o recibo .ots e verificá-lo usando ferramentas padrão do OpenTimestamps, mesmo que o Timestamp GIT deixe de existir.
Conclusão
A prova de existência para código de software é uma das poucas ferramentas de desenvolvedor que é simultaneamente barata, matematicamente rigorosa e útil tanto em contextos jurídicos quanto de conformidade. Ela não prova autoria ou propriedade, mas cria um ponto fixo no tempo que é extremamente difícil de contestar.
O caminho difícil é executar o protocolo OpenTimestamps manualmente. O caminho prático é instalar o Timestamp GIT GitHub App, conectar seus repositórios e deixar o pipeline de ancoragem noturno fazer o resto. Comece a carimbar seus commits no Timestamp GIT.
Posts relacionados
- Como Provar que Seu Código Existia Antes de um Pedido de Patente
- Carimbe Commits do Git para se Defender de Trolls de Patentes
- Automatize o Carimbo de Data/Hora de Código com um GitHub App