Verifique Carimbos de Data/Hora de Código Sem Compartilhar Seu Código-Fonte
A verificação é o momento em que uma alegação criptográfica se torna evidência. Você pode carimbar cada commit, mas se não puder verificar esse carimbo posteriormente sem entregar seu código-fonte, o sistema falha exatamente quando você mais precisa dele. O Timestamp GIT é um SaaS gerenciado e GitHub App que ancora hashes de commits Git no blockchain do Bitcoin por meio do protocolo OpenTimestamps. A prova é verificável por qualquer pessoa com o recibo, mas o recibo nunca contém seu código.
Por Que a Verificação é Importante para Carimbos de Data/Hora de Código
Um carimbo de data/hora é tão bom quanto sua história de verificação. Para estado da técnica, você precisa provar que um commit específico existia antes de uma data específica. Essa prova precisa funcionar em duas direções: deve ser forte o suficiente para um tribunal ou auditor, e deve ser privada o suficiente para que você não esteja expondo segredos comerciais apenas para provar que eles existiam.
A ideia central é a verificação de conhecimento zero: provar a existência sem revelar o conteúdo. Um hash de commit Git é uma impressão digital unidirecional do estado do repositório. O hash por si só não pode ser revertido para o código-fonte. Quando esse hash é ancorado no blockchain do Bitcoin, você obtém um registro público e imutável de que a impressão digital existia em um determinado momento.
Se você é novo no conceito, leia O Que É Prova de Existência para Código de Software?. Este artigo foca no lado da verificação: como é uma prova, como verificá-la e o que os resultados significam.
O Timestamp GIT automatiza o protocolo subjacente para que você não precise executar comandos OpenTimestamps ou gerenciar transações Bitcoin manualmente. Você instala o GitHub App uma vez, conecta um repositório e cada commit é agrupado e ancorado todas as noites. A verificação então acontece por meio de badges, páginas de status públicas e um visualizador de cadeia Merkle baseado em navegador.
Como É uma Prova de Carimbo de Data/Hora
Cada dia ancorado produz dois artefatos principais em seu repositório:
- Um arquivo de manifesto (
.txt) que lista os hashes de commit incluídos no lote daquele dia. - Um arquivo de recibo
.otsque contém a prova OpenTimestamps e os dados de ancoragem no Bitcoin.
Esses arquivos são enviados para um branch dedicado de timestamps em seu repositório ou para um repositório sombra. Eles contêm hashes de commit e dados de ancoragem — não código-fonte, conteúdo de arquivos ou metadados de repositório além do necessário para a prova.
Como o recibo .ots é público e autocontido, qualquer pessoa com o arquivo pode verificar a âncora contra o blockchain do Bitcoin. A prova não depende de um banco de dados privado. O Timestamp GIT fornece um verificador web que realiza as verificações da cadeia Merkle localmente em seu navegador, para que você possa verificar sem instalar software e sem expor qual repositório está verificando.
Para tornar a verificação visível, o Timestamp GIT suporta badges incorporáveis para seu README. O badge vincula à página de status pública do seu repositório. Para repositórios privados, a URL de status inclui um HMAC criptografado para que apenas usuários autorizados possam visualizar o resultado. O próprio badge pode mostrar o bloco Bitcoin ancorado mais recente, o total de commits carimbados ou um resumo combinado.
Verificação Passo a Passo Usando o Timestamp GIT
O fluxo de trabalho de verificação é projetado para alguém que não quer aprender o protocolo subjacente. Aqui está o caminho normal.
Passo 1: Instale o Timestamp GIT GitHub App em seu repositório
Esta é uma configuração única. No Modo Padrão, o GitHub App lê o hash do commit HEAD do seu repositório de origem monitorado. Ele precisa de acesso somente leitura ao repositório de origem porque as permissões do GitHub não expõem um nível de acesso apenas para hash de commit, e acesso de leitura e gravação ao repositório de destino onde o branch de prova será gravado. No Modo Enterprise ZK, uma GitHub Action curta é executada em sua infraestrutura e envia apenas o hash do commit para a API do Timestamp GIT. Nesse modo, o código-fonte nunca sai do seu ambiente.
Passo 2: Aguarde a ancoragem noturna
Os hashes de commit são detectados automaticamente. Todas as noites, um worker agrupa hashes pendentes, cria arquivos de manifesto, constrói uma árvore Merkle, cria provas OpenTimestamps usando calendários OTS públicos e ancora a raiz Merkle no blockchain do Bitcoin. A confirmação do Bitcoin geralmente leva cerca de três horas após o lote noturno, então um commit feito hoje normalmente é verificável no dia seguinte.
Passo 3: Use o badge ou a página de status
Para repositórios públicos, visite a página de status em:
https://timestampgit.dev/status/{user}/{repo}
Este painel público mostra longevidade da prova, data de ancoragem mais antiga, regularidade diária, dados de bloco e transação Bitcoin e um mapa de calor de calendário. Ele também vincula a relatórios CSV de auditoria e certificados PDF para download.
Você também pode consultar a API de status diretamente:
# Informações do último bloco Bitcoin ancorado
curl -s https://timestampgit.dev/api/statusLast/acme/webapp
# Contagem total de commits commitados/carimbados
curl -s https://timestampgit.dev/api/statusCount/acme/webapp
# Resumo combinado para badges Shields.io
curl -s https://timestampgit.dev/api/statusSummary/acme/webapp
Substitua acme/webapp pelo seu usuário ou organização do GitHub e o nome do repositório. Para repositórios privados, o endpoint autenticado GET /api/badgeLink/{user}/{repo} retorna URLs de badge e trechos Markdown com um HMAC criptografado anexado.
Passo 4: Abra a página de verificação para um dia específico
Para uma prova detalhada e passo a passo da cadeia Merkle, abra:
https://timestampgit.dev/verification/{user}/{repo}/{date}
Esta página executa o cálculo de verificação localmente em seu navegador. Ela mostra a cadeia Merkle de vários níveis desde o hash do seu commit até a raiz Merkle ancorada e o bloco Bitcoin. Como o cálculo é local, o serviço não vê o que você está verificando.
Passo 5: Baixe registros formais
Na página de status ou API, você pode baixar:
- Um livro-razão de auditoria CSV para o histórico completo:
GET /api/audit/{user}/{repo} - Um certificado PDF para uma data específica:
GET /api/report/{user}/{repo}/{date}
Estes são úteis para arquivos legais ou de conformidade. O certificado PDF fornece um registro legível por humanos, enquanto o CSV fornece uma trilha de auditoria completa.
Se você precisar dos dados de verificação subjacentes, o endpoint GET /api/verify/{user}/{repo}/{date} retorna os dados completos da cadeia Merkle para verificação local.
Interpretando Resultados de Verificação e Casos Limite
Uma verificação bem-sucedida significa uma coisa: o hash do commit foi incluído em uma árvore Merkle cuja raiz foi ancorada em um bloco Bitcoin específico em um momento específico. Uma vez que esse bloco é confirmado, o carimbo de data/hora é imutável. Nenhuma parte — incluindo o Timestamp GIT — pode alterá-lo ou forjá-lo.
Existem alguns casos limite para entender.
Âncoras pendentes
Logo após um commit, a prova ainda não existe. O Timestamp GIT agrupa e ancora hashes todas as noites. A confirmação do Bitcoin normalmente leva cerca de três horas após a execução do worker noturno. Durante essa janela, a página de status pode mostrar o lote como pendente. Uma vez que a transação é confirmada, a prova é imediatamente verificável.
Repositórios privados
Para repositórios privados, as URLs públicas de status e verificação não são acessíveis abertamente. O sistema anexa um HMAC criptografado que é específico para a instância do servidor. Apenas usuários autorizados com a URL assinada completa podem visualizar a página de status ou verificação. Isso mantém o nome do repositório e os metadados de commit privados, ao mesmo tempo que permite que auditores designados verifiquem a prova.
Independência dos servidores do Timestamp GIT
A verificação não requer que o Timestamp GIT permaneça online. A prova depende dos dados do blockchain do Bitcoin. Você pode baixar o arquivo .ots e usar ferramentas padrão de verificação OpenTimestamps contra o blockchain do Bitcoin se preferir o caminho difícil. O verificador de navegador do Timestamp GIT é a versão gerenciada dessa mesma verificação.
Arquivos .ots perdidos
O recibo .ots e os arquivos de manifesto são armazenados no branch dedicado de timestamps ou repositório sombra. Se você perder uma cópia local, baixe-a novamente do branch. A prova é recuperável do mesmo local Git onde o serviço a gravou originalmente.
Verificação Sem Compartilhar o Código-Fonte: A Vantagem do Conhecimento Zero
O maior equívoco sobre carimbo de data/hora de código é que o serviço deve ver seu código para provar que ele existiu. O Timestamp GIT não faz isso.
No Modo Padrão, o GitHub App lê apenas o hash do commit HEAD. Ele nunca lê, copia ou armazena seu código-fonte. No Modo Enterprise ZK, a GitHub Action é executada em sua infraestrutura e envia apenas o hash para a API do Timestamp GIT. O repositório de origem não precisa de acesso de leitura para o Timestamp GIT nesse modo. Isso torna o Modo Enterprise ZK adequado para ambientes altamente sensíveis.
Um terceiro — um auditor, advogado da parte contrária ou um tribunal — pode verificar um carimbo de data/hora sem que você conceda acesso ao repositório. Você fornece o arquivo .ots ou a URL de verificação assinada, e eles podem verificar a prova contra o blockchain do Bitcoin. Eles veem evidência criptográfica, não código-fonte.
Para os detalhes de configuração por trás dos dois modos de implantação, consulte Automatize o Carimbo de Data/Hora de Código com um GitHub App.
FAQ
Posso verificar um carimbo de data/hora sem instalar nada?
Sim. O Timestamp GIT fornece uma página de verificação baseada na web onde você pode usar o arquivo .ots ou a página de status pública. Todo o cálculo acontece localmente em seu navegador, então nenhuma instalação de software é necessária.
A verificação requer compartilhar meu código-fonte?
Não. A verificação usa apenas o hash do commit e o recibo .ots, que não contêm código-fonte. A arquitetura de conhecimento zero garante que seu código permaneça privado.
Quanto tempo leva para um carimbo de data/hora ser verificável?
Os carimbos de data/hora são ancorados todas as noites, e a confirmação do Bitcoin normalmente leva cerca de 3 horas. Uma vez confirmado, a prova é imediatamente verificável.
E se eu perder o arquivo de recibo .ots?
O arquivo .ots é armazenado em um branch dedicado do seu repositório ou em um repositório sombra. Você pode baixá-lo novamente de lá a qualquer momento.
Conclusão
A verificação é onde o carimbo de data/hora criptográfico se torna útil. Uma prova que você não pode verificar não é uma prova. O Timestamp GIT torna o caminho de verificação prático: instale o GitHub App uma vez, deixe os commits serem ancorados todas as noites e então use badges, páginas de status e verificação local no navegador para demonstrar quando seu código existiu — sem nunca compartilhar o código-fonte.
Configure seu primeiro repositório em Timestamp GIT.
Posts relacionados
- O Que É Prova de Existência para Código de Software?
- Como Provar que Seu Código Existia Antes de um Pedido de Patente
- Carimbe Commits Git para se Defender Contra Trolls de Patentes
- Automatize o Carimbo de Data/Hora de Código com um GitHub App