如何验证你的 Git 提交时间戳
如何验证你的 Git 提交时间戳
Git 提交时间戳是一种声明。验证才是证据。在 Git 中,提交日期是可变的元数据——git commit --date 可以设置任意日期,rebase 会重写历史,force-push 可以重写共享远程仓库。如果你依赖提交时间戳来证明在先技术,你需要比日志中的日期字符串更可靠的东西。
Timestamp GIT 通过使用 OpenTimestamps 协议将你的 Git 提交哈希锚定到比特币区块链中,弥补了这一缺口。它是一个托管的 SaaS 和 GitHub App:安装一次应用,连接一个仓库,每个提交都会在每晚自动锚定。无需 CLI 工具,无需手动协议步骤。
本文聚焦于验证方面:证明长什么样、如何使用 Timestamp GIT 的内置工具检查它,以及如何解读结果。如果你需要了解为什么这在专利纠纷中至关重要的完整动机,请参阅用时间戳保护你的软件免受专利流氓侵害。
为什么验证对你的代码在先技术至关重要
时间戳只有在你能在日后证明它时才有价值。内部 Git 日志通常无法通过这一检验,因为它们存储在你无法完全控制的服务器上,或者存储在可以被编辑的数据库中。在法律审计或合规审查中,这些日志往往被视为自利性证据而被驳回。
Timestamp GIT 生成锚定在比特币中的密码学证明。这改变了局面:
- 公开:锚点嵌入在比特币区块链中,任何人都可以验证。
- 不可篡改:一旦比特币区块被确认,任何实体——包括 Timestamp GIT——都无法更改或伪造锚点。
- 零知识:验证过程中不会泄露你的源代码。该服务只读取提交哈希,从不读取底层文件。
- 独立:证明基于 SHA-256 和比特币区块数据。它不依赖 Timestamp GIT 保持在线。
由于证明只涉及提交哈希,任何人都可以在不访问你源代码的情况下验证某个提交在某个时间点存在。这使得验证成为一个可以交给律师、审计师或合规官的实用步骤。
Timestamp GIT 证明长什么样
当你将仓库连接到 Timestamp GIT GitHub App 时,该服务不会读取你的代码。它只读取提交哈希。每晚,一个工作进程将待处理的哈希收集到每个仓库的清单文件中,构建 Merkle 树,创建 OpenTimestamps 证明,并将 Merkle 根锚定到比特币区块链中。
生成的证明产物被推送到一个专门的时间戳分支或影子仓库。一个典型的时间戳分支在概念上可能如下所示:
timestamps/
└── 2026/
└── 08/
└── 22/
├── manifest.txt
└── manifest.txt.ots
两个关键文件是:
manifest.txt:每日清单文件。它将该仓库和日期的提交哈希分组在一起。.ots收据文件:密码学证明。它包含摘要、日历证明和比特币区块头数据,用于证明清单被锚定在特定的比特币区块和交易中。
证明是自包含的。你可以下载 .ots 文件,并使用标准 OpenTimestamps 验证工具对照比特币区块链进行验证,完全离线且无需 Timestamp GIT 的基础设施。Timestamp GIT 为你提供了便捷路径;底层证明仍然属于你。
使用 Timestamp GIT 工具进行分步验证
Timestamp GIT 提供了多种验证界面。你可以使用任何适合你工作流程的方式。
1. 查看公开状态页面
对于任何已连接的仓库,访问:
https://timestampgit.dev/status/{user}/{repo}
将 {user} 替换为你的 GitHub 用户或组织,将 {repo} 替换为仓库名称。
状态页面显示证明存续时间、最早锚定日期、每日规律性、比特币区块和交易数据,以及日历热力图。你还可以从那里下载审计 CSV 或特定日期的 PDF 证书。
对于公开仓库,任何人都可以访问此页面。对于私有仓库,访问受到加密 HMAC 的限制,只有授权用户才能查看状态。
2. 在 README 中嵌入验证徽章
当你的贡献者、客户或审计师能一目了然地看到仓库中的时间戳时,它们会变得更有用。Timestamp GIT 提供了可嵌入的 Shields.io 徽章。
首先,从认证端点获取徽章代码片段:
curl https://timestampgit.dev/api/badgeLink/your-org/your-repo
响应包含徽章 URL 和可直接粘贴的 Markdown 片段:
{
"badgeUrl": "https://img.shields.io/endpoint?url=https://timestampgit.dev/api/statusSummary/your-org/your-repo",
"markdown": "[](https://timestampgit.dev/status/your-org/your-repo)"
}
将 Markdown 粘贴到你的 README.md 中。徽章链接到公开状态页面,任何人都可以点击并验证最新的时间戳。
3. 运行密码学验证页面
验证页面为你提供特定日期的 Merkle 链分步视图:
https://timestampgit.dev/verification/{user}/{repo}/{date}
例如,要验证 2026 年 8 月 22 日打上时间戳的仓库:
https://timestampgit.dev/verification/your-org/your-repo/2026-08-22
此页面显示多级 Merkle 链验证。所有密码学计算都在你的浏览器本地进行——Timestamp GIT 不会看到你验证的内容。
如果你更倾向于以编程方式处理原始 Merkle 链数据,可以使用公开验证端点:
curl https://timestampgit.dev/api/verify/your-org/your-repo/2026-08-22
4. 下载 PDF 证书
对于会议、法律纠纷或合规文件,你通常需要一份便携文档。Timestamp GIT 可以为特定日期生成 PDF 证书。
从状态页面使用下载选项。或者直接调用报告端点:
curl -o timestamp-proof-2026-08-22.pdf \
https://timestampgit.dev/api/report/your-org/your-repo/2026-08-22
PDF 包含该日期的证明详情,并经过格式化以便人工审阅。
5. 使用公开 API 进行自动化
如果你希望将验证集成到 CI/CD 检查、内部仪表板或合规脚本中,Timestamp GIT 公开了状态端点。
检查最后锚定的比特币区块:
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
检查已提交和已打时间戳的提交总数:
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
检查可供 Shields.io 使用的综合摘要:
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
典型的 statusSummary 响应如下所示:
{
"schemaVersion": 1,
"label": "timestamped",
"message": "42 commits",
"color": "brightgreen"
}
解读验证结果和边界情况
验证成功意味着以下链条成立:
- 你的提交哈希被包含在该仓库的每日清单中。
- 该清单被包含在 Merkle 树中。
- Merkle 根被锚定在一笔比特币交易中。
- 该交易在一个比特币区块中被确认。
用通俗的话说:该提交哈希在比特币区块时间之前就已存在。该区块时间成为你在先技术主张的上限。
待处理证明和确认延迟
Timestamp GIT 每晚批量处理提交。批次创建后,比特币网络必须确认锚定交易。这通常需要几个小时。今天做出的提交可能要到第二天才会显示为完全验证。
状态页面在这里很有帮助:它显示最早锚定日期和每日规律性,因此你可以看到仓库是否按计划进行,或者特定日期是否仍处于待处理状态。
私有仓库和 HMAC 访问
私有仓库的验证链接包含加密的 HMAC。此 HMAC 特定于 Timestamp GIT 服务器实例,可防止未经授权的用户查看私有状态信息。
GitHub App 本身需要适当的权限才能访问私有仓库。没有这些权限,Timestamp GIT 首先就无法读取提交哈希。
独立于 Timestamp GIT
.ots 收据文件不依赖于 Timestamp GIT 的服务器。它们是建立在 OpenTimestamps 协议之上并锚定在比特币中的证明。即使 Timestamp GIT 消失,你仍然可以使用标准 OpenTimestamps 工具对照比特币区块链验证收据。
要获取仓库所有时间戳的完整账本,请下载审计 CSV:
curl -o audit-ledger.csv https://timestampgit.dev/api/audit/your-org/your-repo
此 CSV 对于法律取证、内部审计或展示连续的时间戳历史非常有用。
常见问题
我可以在不安装任何软件的情况下验证 Git 提交时间戳吗?
可以。Timestamp GIT 提供了基于 Web 的验证页面,所有密码学检查都在你的浏览器本地运行。你还可以使用公开状态页面或可嵌入徽章来查看验证状态,无需任何安装。
如果 Timestamp GIT 倒闭了怎么办?我还能验证我的时间戳吗?
完全可以。证明基于 OpenTimestamps 协议并锚定在比特币区块链中。你可以下载 .ots 收据文件,并使用标准 OpenTimestamps 工具对照比特币区块链进行验证,完全独立于 Timestamp GIT。
提交需要多长时间才能被验证?
Timestamp GIT 每天批量处理提交并将其锚定到比特币区块链中。确认通常在每日批次处理完成后的几个小时内完成。状态页面显示最早锚定日期和每日规律性。
我可以验证私有仓库的时间戳吗?
可以,但访问受到限制。私有仓库的验证链接包含加密的 HMAC,只有授权用户才能查看状态。GitHub App 需要适当的权限才能访问私有仓库。
如果我移除 GitHub App 会发生什么?
已经生成的 .ots 收据和清单保留在你的仓库中,仍然可以独立验证。新的提交在你重新安装 GitHub App 之前不会自动打上时间戳。
结论:信任但要验证
验证是时间戳变成证明的环节。Timestamp GIT 消除了创建这些证明的操作负担,同时为你提供了简单、开发者友好的检查方式:公开状态页面、README 徽章、基于浏览器的 Merkle 链查看器、PDF 证书、审计 CSV 和公开 API。
你不必学习原始的 OpenTimestamps 命令、运行比特币节点或手动管理收据。GitHub App 处理流水线;验证页面处理其余部分。但由于底层证明是标准的且锚定在比特币中,你永远不会被锁定。
如果你还没有开始打时间戳,最快的路径是安装 Timestamp GIT GitHub App,连接一个仓库,然后等待第一个夜间锚点出现。如果你需要隔离或自托管设置,Timestamp GIT 也可以作为 Docker 镜像使用,并提供限时演示许可证。
从 https://timestampgit.dev 开始。