Como Verificar um Timestamp de Commit Git
Um timestamp de commit Git é surpreendentemente fácil de falsificar. Você pode definir GIT_AUTHOR_DATE, GIT_COMMITTER_DATE, fazer rebase de uma branch ou simplesmente editar os metadados do commit antes de enviar. Em uma disputa legal ou auditoria de conformidade, um log Git comum muitas vezes prova muito pouco.
É por isso que a verificação importa mais do que a própria ancoragem. Ancorar coloca o hash de um commit na blockchain do Bitcoin. A verificação é a etapa que permite que você, um auditor ou um tribunal confirme que um hash de commit específico realmente foi incluído em um bloco específico do Bitcoin em um momento específico. Este artigo foca nesse fluxo de trabalho de verificação usando o Timestamp GIT, um GitHub App gerenciado que automatiza todo o processo e oferece ferramentas baseadas em navegador, badges e uma API pública.
Por Que a Verificação Importa para Timestamps de Commit Git
Um histórico Git padrão vive em servidores que você não controla totalmente. Plataformas de hospedagem de repositórios, painéis administrativos e repositórios locais podem ser modificados. Mesmo quando ninguém age de forma maliciosa, os timestamps podem ser alterados acidentalmente durante merges, squashes ou migrações de dados.
A ancoragem criptográfica muda o jogo. Quando o Timestamp GIT processa um repositório, ele não depende do timestamp do commit Git. Ele pega o hash do commit — uma impressão digital criptograficamente segura do estado exato do repositório — e inclui esse hash em um manifesto diário. O hash do manifesto é inserido em uma árvore de Merkle, e a raiz de Merkle é ancorada em um bloco do Bitcoin usando o protocolo OpenTimestamps.
A verificação então responde a três perguntas:
- Este hash de commit está presente no manifesto diário?
- A prova de Merkle conecta esse hash do manifesto à raiz de Merkle ancorada?
- Essa raiz de Merkle está incluída em um bloco confirmado do Bitcoin?
Se todas as três verificações passarem, você tem evidência matemática de que o commit existia até aquela data. Se um contexto mais profundo sobre por que isso importa para IP de software for útil, veja O Que É Prior Art Criptográfica e Por Que Ela Importa para Software?.
O Timestamp GIT oculta o fluxo de trabalho bruto do OpenTimestamps. Você não precisa instalar uma CLI, executar comandos manuais de carimbo ou criar transações Bitcoin. O GitHub App detecta commits, os agrupa todas as noites e grava arquivos de prova padronizados de volta no seu repositório.
Como É uma Prova do Timestamp GIT
Uma prova do Timestamp GIT não é um único arquivo. É uma pequena coleção de artefatos que juntos permitem verificação independente.
Os componentes principais são:
- Hash do commit: o hash SHA-1 ou SHA-256 que identifica um commit específico.
- Arquivo de manifesto diário: um arquivo de texto simples contendo todos os hashes de commit pendentes de um repositório naquela data.
- Árvore de Merkle: uma árvore de Merkle nativa construída a partir dos hashes dos manifestos diários entre repositórios.
- Recibo OpenTimestamps: um arquivo
.otsque vincula criptograficamente o hash do manifesto a um bloco do Bitcoin. - Informações do bloco Bitcoin: altura do bloco, dados da transação e status de confirmação da âncora.
A prova é gravada em uma branch dedicada de timestamps ou em um repositório sombra, dependendo da sua configuração. Um diretório de prova típico para um determinado dia pode se parecer com isto:
timestamps/
2026-09-20/
manifest.txt
receipt.ots
O recibo .ots é autocontido no sentido de que qualquer pessoa pode verificá-lo posteriormente usando apenas matemática SHA-256 e dados de blocos do Bitcoin. Não há tecnologia proprietária e não há aprisionamento. Se o Timestamp GIT desaparecesse amanhã, os arquivos de prova ainda existiriam e permaneceriam verificáveis contra a blockchain do Bitcoin.
Como apenas o hash do commit é ancorado, a prova não contém seu código-fonte. O fluxo de verificação opera sobre o hash, não sobre o conteúdo do repositório.
Verificação Passo a Passo Usando as Ferramentas do Timestamp GIT
O Timestamp GIT oferece vários caminhos de verificação. Você pode usar o painel visual para verificações rápidas, baixar relatórios para conformidade ou consultar a API para automação.
Passo 1: Abra a página de status do repositório
Cada repositório conectado tem uma página de status pública ou autenticada em:
https://timestampgit.dev/status/{user}/{repo}
Esta página mostra a data de ancoragem mais antiga, a longevidade da prova, a regularidade diária, os dados do bloco e da transação Bitcoin, e um mapa de calor em calendário. Da mesma página você pode baixar um CSV de auditoria ou um certificado PDF.
Para uma verificação rápida de status, este geralmente é o lugar mais rápido para começar. Se o repositório for privado, a URL inclui um HMAC criptografado para que apenas visualizadores autorizados possam acessá-la.
Passo 2: Use o badge de verificação no seu README
Após conectar um repositório, o Timestamp GIT pode gerar um badge de verificação incorporável. O badge mostra o status de verificação mais recente diretamente no README, e clicar nele leva à página de verificação ou ao painel de status.
A marcação do badge é gerada para você na página do repositório conectado ou através da API de badge. Você não deve escrever manualmente a URL do shield; em vez disso, copie o trecho Markdown gerado pelo Timestamp GIT. Isso evita erros com as URLs de repositórios privados assinadas por HMAC.
Passo 3: Inspecione a cadeia de Merkle no navegador
Para uma data específica, abra:
https://timestampgit.dev/verification/{user}/{repo}/{date}
Esta página percorre a verificação da cadeia de Merkle em vários níveis. Ela mostra o hash do commit, o hash do manifesto diário, os nós intermediários de Merkle e a âncora do bloco Bitcoin.
Todo o cálculo acontece localmente no navegador. O Timestamp GIT não vê qual hash você está verificando, e você não envia código-fonte para lugar nenhum. A página confirma se o hash do commit pertence ao manifesto e se o manifesto se conecta à raiz ancorada.
Passo 4: Baixe o certificado PDF ou o CSV de auditoria
Para registros de conformidade, auditorias legais ou documentação interna, o Timestamp GIT fornece dois artefatos baixáveis:
- Certificado PDF: um certificado de um único dia mostrando a data ancorada e o status de verificação.
- CSV de auditoria: um livro-razão completo de todos os commits ancorados e datas do repositório.
Eles são úteis quando você precisa anexar evidências a um processo, enviar prova a um cliente ou armazenar um registro offline.
Passo 5: Verifique programaticamente com a API pública
O Timestamps GIT expõe endpoints de API pública para automação. Para repositórios públicos, você pode consultar informações de status diretamente com curl.
Verifique o último bloco Bitcoin ancorado:
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
Verifique o número total de commits feitos e carimbados:
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
Obtenha um resumo de status combinado, que também é usado para badges do Shields.io:
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
Busque os dados completos da cadeia de Merkle para uma data específica:
curl https://timestampgit.dev/api/verify/your-org/your-repo/2026-09-20
Para repositórios privados, os endpoints exigem um HMAC criptografado na URL. O HMAC é gerado por instância de servidor e apenas usuários autorizados podem acessar o status desses repositórios.
Interpretando Resultados de Verificação e Casos Limite
Uma verificação bem-sucedida significa que a seguinte cadeia está intacta:
- O hash do commit está presente no manifesto.
- O hash do manifesto está corretamente incluído na árvore de Merkle.
- A raiz de Merkle está ancorada em um bloco do Bitcoin via OpenTimestamps.
- Esse bloco do Bitcoin está confirmado na blockchain.
Uma vez que essas condições se mantêm, o timestamp do commit é respaldado pela imutabilidade do Bitcoin.
Existem alguns casos limite de tempo e acesso para entender.
Corte do lote diário. Os commits são coletados e ancorados todas as noites. Um commit feito após o corte de um determinado dia aparece na âncora do dia seguinte. Se você não vir um commit no dia esperado, verifique a página de verificação do dia seguinte.
Atraso de confirmação do Bitcoin. A ancoragem acontece uma vez por dia, mas confirmar a âncora no Bitcoin normalmente leva cerca de 3 horas. Os arquivos de prova são gravados de volta após a confirmação, então a verificação fica disponível algumas horas após o lote noturno.
Repositórios privados. As URLs de status e verificação para repositórios privados usam caminhos assinados por HMAC. Se um colega não conseguir abrir a página de status, provavelmente precisa de acesso ao link criptografado ou ao repositório através do GitHub App.
Verificação de conhecimento zero. A verificação nunca revela o código-fonte. Ela prova que um hash existia naquele momento, não o que o código continha. Isso é intencional: a prova é sobre existência, não divulgação.
E se a verificação falhar? Uma verificação falha pode significar que o commit não foi incluído no lote diário, que o arquivo de prova está incompleto ou que os dados foram adulterados. Comece verificando a página de status do repositório para a data correta. Se a âncora estiver ausente ou corrompida, entre em contato com o suporte do Timestamp GIT.
FAQ
Como verifico um timestamp de commit Git com o Timestamp GIT?
Você pode verificar um timestamp de commit visitando a página de status do repositório no Timestamp GIT, clicando no badge de verificação no seu README ou usando os endpoints da API pública. A página de verificação mostra a cadeia de Merkle e permite verificação local no seu navegador.
Posso verificar um timestamp de commit sem revelar meu código-fonte?
Sim. O Timestamp GIT usa apenas o hash do commit, não o código-fonte. A verificação é realizada contra o hash e a blockchain do Bitcoin, então seu código permanece privado.
Quanto tempo leva para um timestamp de commit ser verificável?
Os timestamps são ancorados todas as noites, e a confirmação do Bitcoin normalmente leva cerca de 3 horas. Depois disso, a prova fica disponível e verificável.
E se a verificação falhar?
Se a verificação falhar, pode indicar que o commit não foi incluído no lote diário ou que a prova está corrompida. Verifique a página de status do repositório para detalhes, ou entre em contato com o suporte do Timestamp GIT.
Conclusão: Confie, mas Verifique Seu Histórico Git
Um hash de commit ancorado no Bitcoin só é útil se você puder verificá-lo posteriormente. Timestamps Git sozinhos são evidências fracas. Provas criptográficas são fortes — mas apenas quando o caminho de verificação é claro, repetível e independente.
O Timestamp GIT transforma esse caminho de verificação em um fluxo de trabalho prático. Instale o GitHub App uma vez, conecte um repositório, e cada commit é ancorado automaticamente todas as noites. Quando você precisar de prova, pode abrir o painel de status, clicar em um badge, inspecionar a cadeia de Merkle no navegador, baixar um certificado PDF ou chamar um endpoint da API.
Para desenvolvedores, startups, agências e equipes de conformidade, isso elimina o trabalho manual sem sacrificar as garantias matemáticas da ancoragem no Bitcoin. Se seu próximo passo é proteger seu próprio histórico de commits, instale o GitHub App ou confira a página de preços.
Posts relacionados
- Carimbar Commits Git Automaticamente com um GitHub App
- O Que É Prior Art Criptográfica e Por Que Ela Importa para Software?
- Como Provar que Código Existia em um Momento Específico (Sem Revelá-lo)