Como Provar que um Código Existia em um Momento Específico (Sem Revelá-lo)
Se você precisa provar que um trecho específico de código existia antes de uma determinada data — para uma disputa de patente, um desacordo entre funcionários ou a alegação de “desenvolvimento independente” de um concorrente — o histórico padrão do Git não é suficiente. Logs internos vivem em servidores que você não controla, podem ser editados e frequentemente são descartados em auditorias legais por serem autointeressados. Este artigo percorre a tarefa exata: provar que um código existia em um momento específico sem revelar o próprio código.
Você fará isso ancorando hashes de commits do Git — não o código-fonte — à blockchain do Bitcoin usando o aplicativo gerenciado Timestamp GIT para GitHub. Ao final, você terá uma prova imutável e pronta para uso judicial que qualquer pessoa pode verificar de forma independente, sem trabalho manual de criptografia e sem que o código-fonte jamais saia do seu repositório.
Se você é novo no conceito subjacente, consulte O Que É Prova Criptográfica de Autoria de Código?.
Pré-requisitos
- Uma conta no GitHub e um repositório que você deseja carimbar com timestamp. Repositórios públicos funcionam no plano gratuito Open Source. Repositórios privados exigem um plano pago Pro Agency ou Enterprise ZK.
- Acesso ao aplicativo Timestamp GIT para GitHub e uma conta Timestamp GIT. Você instalará o aplicativo uma vez a partir da página do produto em Timestamp GIT.
- Familiaridade básica com commits do Git e estrutura de repositórios. Não é necessário conhecimento avançado de criptografia.
- Para repositórios privados, certifique-se de que sua conta tenha um plano pago que inclua repositórios privados.
Passo a Passo: Configurando o Timestamp Automático
Passo 1: Instale o aplicativo Timestamp GIT para GitHub
Acesse o painel do Timestamp GIT e inicie a instalação do aplicativo GitHub. Escolha sua conta pessoal ou organização e conceda as permissões solicitadas:
- Acesso de leitura ao repositório de origem. O sistema de permissões do GitHub exige pelo menos acesso somente leitura porque os hashes de commit não são expostos sem isso.
- Acesso de leitura e escrita ao repositório de destino onde os arquivos de prova serão gravados.
A garantia importante: o Timestamp GIT nunca lê, copia ou armazena seu código-fonte. Ele apenas extrai hashes de commit.
Passo 2: Conecte seu repositório
Após instalar o aplicativo, abra o painel do Timestamp GIT e selecione o repositório que deseja monitorar. Escolha onde as provas devem ser entregues:
- Uma branch dedicada
timestampsno mesmo repositório, ou - Um repositório espelho separado.
Este local de destino é onde o manifesto e os arquivos de recibo .ots serão enviados posteriormente.
Passo 3: Configure as preferências de timestamp
O comportamento padrão é o agrupamento noturno automático. Os hashes de commit pendentes são agrupados diariamente, uma árvore de Merkle é construída, as provas OpenTimestamps são criadas e a raiz de Merkle é ancorada ao Bitcoin. Na maioria dos casos, você não precisa alterar nada.
Se você estiver usando o modo Enterprise ZK, executará uma GitHub Action curta em sua própria infraestrutura em vez de conceder acesso de leitura ao repositório de origem. Essa ação envia apenas hashes de commit para a API do Timestamp GIT, de modo que seu código-fonte nunca sai do seu ambiente.
Passo 4: Faça um novo commit
Faça commit no seu repositório como de costume. O aplicativo GitHub detecta o novo commit automaticamente por meio de webhooks.
git add .
git commit -m "Add new feature logic"
git push origin main
Nenhum comando adicional de timestamp é necessário. O hash do commit entra automaticamente na fila do Timestamp GIT.
Passo 5: Aguarde o cron job noturno
Todas as noites, o Timestamp GIT processa os hashes pendentes:
- Agrupa todos os hashes de commit pendentes do dia.
- Cria arquivos de manifesto em texto para cada repositório.
- Constrói uma árvore de Merkle nativamente.
- Cria provas OpenTimestamps usando calendários OTS públicos.
- Ancora a raiz de Merkle na blockchain do Bitcoin.
A confirmação do Bitcoin normalmente leva algumas horas após o lote noturno.
Passo 6: Receba sua prova
Uma vez que a transação do Bitcoin é confirmada, o Timestamp GIT envia os arquivos de prova para a branch designada. Você verá:
- Um arquivo de manifesto listando os hashes de commit.
- Arquivos de recibo
.otspara o lote diário.
Esses arquivos de prova são independentes de fornecedor. Você pode verificá-los posteriormente mesmo que o serviço Timestamp GIT desapareça.
Passo 7: Adicione um selo de verificação ao seu README
Na página de status do repositório, copie o markdown do selo Shields.io fornecido e cole-o no seu README.md. Para repositórios públicos, o selo aponta para uma página pública de verificação. Para repositórios privados, a URL do selo inclui um HMAC criptografado para que apenas usuários autorizados possam visualizar o status.
O painel fornece o trecho markdown exato, que será semelhante a:
[](https://timestampgit.dev/status/your-user/your-repo)
Substitua your-user e your-repo pelos valores reais mostrados no painel.
Como Confirmar que Funcionou (Verificação)
Verifique o painel de status do repositório
Abra a página pública de status do seu repositório. Ela mostra:
- Longevidade da prova e data de ancoragem mais antiga.
- Regularidade da ancoragem diária e um mapa de calor em calendário.
- Altura do bloco do Bitcoin e dados da transação.
- CSV de auditoria e certificado PDF para download referentes a uma data específica.
Execute a verificação no navegador
Use a página de verificação para um repositório e data específicos. Ela percorre a verificação da cadeia de Merkle passo a passo, e todo o cálculo acontece localmente no seu navegador. Ninguém vê o que você verifica.
Baixe um certificado PDF
Para um documento pronto para uso judicial, baixe o certificado PDF da data que você precisa. Isso fornece uma prova limpa e compartilhável sem expor nenhum código.
Verifique a API programaticamente
Você pode consultar os endpoints públicos de status com 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
O último endpoint retorna um resumo combinado adequado para selos Shields.io.
Verificação independente para usuários avançados
Como a prova depende apenas de SHA-256 e dos dados de blocos do Bitcoin, você pode baixar o recibo .ots e verificá-lo com ferramentas padrão de verificação OpenTimestamps contra a blockchain do Bitcoin. Isso não exige confiar no Timestamp GIT ou em qualquer fornecedor. O aplicativo gerenciado simplesmente automatiza o processo que, de outra forma, exigiria trabalho manual com o protocolo.
Solução de Problemas Comuns
Nenhum timestamp aparece após um commit
Verifique se o aplicativo GitHub está instalado na conta ou organização e se o repositório está conectado no painel do Timestamp GIT. Apenas commits feitos após a configuração serão carimbados com timestamp.
Prova não entregue após 24 horas
A confirmação do Bitcoin pode levar várias horas após o lote noturno. Verifique o painel de status do repositório para um estado pendente. Se você estiver usando um repositório privado, confirme que seu plano inclui repositórios privados.
O selo mostra ‘unverified’ ou um link quebrado
Verifique a URL do selo no painel e certifique-se de que o repositório é público ou que o HMAC criptografado está incluído para repositórios privados. Um link quebrado geralmente significa que o repositório ou nome de usuário foi digitado incorretamente.
Você precisa provar a existência de código não hospedado no GitHub
Use o modo Enterprise ZK. Uma GitHub Action é executada na sua infraestrutura e envia apenas hashes de commit para a API. Isso funciona com qualquer repositório Git, e o Timestamp GIT não precisa de acesso de leitura ao repositório de origem.
Você deseja auto-hospedar em um ambiente isolado (air-gapped)
O Timestamp GIT está disponível como imagem Docker com uma licença auto-hospedada. Você pode executar o mesmo fluxo de trabalho gerenciado em sua própria infraestrutura usando a configuração Docker Compose fornecida:
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
Em seguida, inicie com:
docker compose pull
docker compose up -d
docker compose logs -f timestampgit
O aplicativo fica disponível em http://localhost:8080 após a inicialização. Uma licença de demonstração com tempo limitado está disponível para avaliação.
FAQ
Carimbar meu código com timestamp revela seu conteúdo para alguém?
Não. O Timestamp GIT apenas extrai o hash do commit do Git — uma impressão digital criptográfica — e ancora esse hash na blockchain do Bitcoin. Seu código-fonte real nunca é lido, copiado ou armazenado pelo serviço.
Quanto tempo leva para obter uma prova de timestamp?
O processo é automático. Após o commit, o hash entra na fila e é ancorado no próximo lote noturno. A confirmação do Bitcoin normalmente leva algumas horas, após as quais os arquivos de prova são enviados para o seu repositório.
Posso verificar o timestamp sem depender do Timestamp GIT?
Sim. A prova é baseada no protocolo OpenTimestamps e nos dados da blockchain do Bitcoin. Você pode baixar o recibo .ots e verificá-lo de forma independente usando ferramentas padrão OpenTimestamps, mesmo que o Timestamp GIT desapareça.
E se eu precisar provar a existência de código não hospedado no GitHub?
O Timestamp GIT oferece um modo Enterprise ZK em que uma GitHub Action é executada na sua infraestrutura e envia apenas hashes de commit para a API. Isso funciona com qualquer repositório Git, e seu código nunca sai do seu ambiente.
Conclusão
Agora você sabe como provar que um código existia em um momento específico sem revelá-lo: instale o aplicativo Timestamp GIT para GitHub uma vez, conecte um repositório e deixe o serviço ancorar cada hash de commit ao Bitcoin automaticamente. Seu código-fonte nunca sai do seu repositório — apenas impressões digitais criptográficas são carimbadas com timestamp.
As provas são independentes de qualquer fornecedor único, baseiam-se na matemática do Bitcoin e podem ser verificadas no navegador, via API ou com ferramentas padrão OpenTimestamps. Para repositórios públicos, o plano gratuito Open Source é um ponto de partida prático. Para repositórios privados ou ambientes isolados, as opções Pro Agency, Enterprise ZK e licença Docker auto-hospedada cobrem o restante.
Se você quiser entender os conceitos subjacentes ou comparar a abordagem gerenciada com o protocolo bruto, consulte os artigos abaixo.
Posts relacionados
- O Que É Prova Criptográfica de Autoria de Código?
- Timestamp GIT vs. OpenTimestamps: Qual É o Ideal para Você?
- Instale um Aplicativo GitHub para Carimbar Seus Commits Automaticamente