如何对 Git 提交进行加密时间戳认证(无需 CLI 工具)
大多数开发者将 git log 视为工作发生时间的可靠记录。但标准 Git 历史在密码学上并不可信:提交日期可以被设置为任意值,历史可以通过强制推送被重写,托管在 GitHub 上的仓库也可能被具有管理员权限的人修改。如果专利流氓、前承包商或竞争对手要求你证明某个具体实现是何时存在的,你本地的 git log 往往会被视为自说自话而不予采信。
本指南将向你展示如何对 Git 提交进行加密时间戳认证,而无需安装 OpenTimestamps、运行比特币节点或学习原始命令行工具。你将使用 Timestamp GIT,这是一个托管型 GitHub App,它只读取你的提交哈希,每晚进行批量处理,将其锚定到比特币区块链中,并写回 .ots 证明回执。到最后,受监控仓库中的每一次提交都将能够对照比特币区块链进行验证。
如果你对底层概念还不熟悉,请参阅软件中的存在性证明:初学者指南。本文专注于设置任务本身。
前置条件
你不需要任何密码学专业知识,但你需要:
- 一个 GitHub 账户,以及至少一个你想要保护的仓库。
- 能够访问 Timestamp GIT GitHub App,可从 Timestamp GIT 网站获取。
- 基本熟悉常规 Git 工作流程,如提交和推送。
- 如果你想免费开始使用,需要一个公开仓库。私有仓库在付费计划中提供。
标准设置无需本地安装、OpenTimestamps 客户端或比特币钱包。
分步指南:设置自动时间戳认证
第 1 步:安装 Timestamp GIT GitHub App
从 Timestamp GIT 网站或 GitHub Marketplace 开始。点击 Install GitHub App,选择将应用安装到你的个人账户还是组织,然后完成 GitHub 授权流程。
该应用以托管服务的形式运行:安装后,它会监控所选仓库并自动锚定提交。你无需添加提交后钩子,也无需更改你的开发工作流程。
第 2 步:授予所需权限
Timestamp GIT 以两种模式运行:
- 标准模式:GitHub App 仅从你的源仓库读取最新的提交哈希。由于 GitHub 的权限系统没有“仅提交哈希”的访问级别,该应用需要对源仓库的只读访问权限。它还需要对用于写入证明文件的目标仓库具有读写访问权限。
- 企业零知识模式:一个简短的 GitHub Action 在你的基础设施上运行,仅将提交哈希推送到 Timestamp GIT API。在此模式下,无需对源仓库的读取访问权限。你只需要对存储证明的目标仓库具有读写访问权限。
对于大多数用户来说,标准模式是合适的起点。关键在于:无论哪种模式,Timestamp GIT 都不会读取你的源代码。
第 3 步:选择要监控的仓库
在安装过程中,选择应用是监控所有当前和未来的仓库,还是仅监控选定的仓库。如果你正在使用公开仓库进行测试,请立即选择该仓库。
证明文件可以写入同一仓库的专用分支,也可以写入一个独立的影子仓库。对于小型项目,使用同一仓库较为常见。如果你希望将证明文件完全排除在主仓库之外,使用独立的影子仓库会很有用。
第 4 步:在仪表板中确认设置
安装完成后,打开 https://timestampgit.dev/repos。你应该能看到受监控的仓库列在那里。
检查:
- 源仓库出现在列表中。
- 证明目标按预期配置。
- 仓库标记为活跃状态。
如果仓库没有出现,请重新检查 GitHub App 安装设置,并确认已选择正确的仓库。
第 5 步:进行一次新提交
Timestamp GIT 只处理仓库连接之后产生的提交。创建一个常规提交并推送:
git add src/validation.js
git commit -m "Add payment validation logic"
git push origin main
你不需要运行任何其他命令。GitHub App 会通过 webhook 自动检测到新提交。
第 6 步:等待每晚的批量处理
Timestamp GIT 不会立即锚定每个提交。提交会被收集到一个队列中,一个夜间工作进程会在 UTC 午夜后不久对它们进行分组处理。
该工作进程:
- 为每个仓库创建清单文件。
- 从待处理的提交哈希构建 Merkle 树。
- 创建 OpenTimestamps 证明。
- 将 Merkle 根锚定到比特币区块链中。
比特币确认通常需要数小时。完整的证明写入过程总共可能需要几个小时,所以不要期望在推送提交后的几分钟内就看到徽章或状态页面更新。
第 7 步:检查证明交付
一旦批次得到确认,Timestamp GIT 会将证明文件推送回你选择的目标位置。你会看到一个专用的 timestamps 分支或一个影子仓库,其中包含:
manifests/2026-08-25.txt
proofs/2026-08-25.ots
.ots 文件就是你的加密回执。你可以保留它、发布它,或将其交给审计人员。该证明独立于 Timestamp GIT 的基础设施。
如何确认它已生效(验证)
确认时间戳认证已生效的最快方法是打开仓库状态页面:
https://timestampgit.dev/status/{user}/{repo}
将 {user} 和 {repo} 替换为你的 GitHub 用户名或组织名以及仓库名。状态页面会显示最早的锚定日期、每日规律性、比特币区块和交易数据,以及日历热力图。
如需机器可读的检查,你可以调用公开状态 API:
curl -s https://timestampgit.dev/api/statusLast/octocat/hello-world
响应中包含最后锚定的比特币区块信息。对于私有仓库,URL 包含加密的 HMAC,因此只有授权用户才能访问状态。
要在你的 README 中直接显示证明状态,请打开仓库仪表板并复制可嵌入的徽章 Markdown。它看起来类似于:
[](https://timestampgit.dev/status/YOUR_USER/YOUR_REPO)
仪表板会提供完整的代码片段,包括适用于你仓库的正确 Shields.io 徽章 URL。
如需更深入的证明检查,请访问:
https://timestampgit.dev/verification/{user}/{repo}/{date}
该页面会在你的浏览器中本地逐步完成 Merkle 链验证。你还可以从状态仪表板下载特定日期的 PDF 证书,或将完整审计账本导出为 CSV。
如果你想完全独立地验证 .ots 文件,可以下载它并使用开源的 OpenTimestamps 工具对照比特币区块链进行检查。Timestamp GIT 不要求你手动执行此操作,但这一选项之所以存在,是因为证明是独立于供应商的。如需专门的操作指南,请参阅如何验证你的 Git 提交时间戳。
常见问题排查
问题:提交后没有出现证明。
解决方案:确认该仓库在 GitHub App 安装设置中仍处于选中状态。同时确认提交是在安装之后进行的。应用连接之前产生的提交不会被追溯处理。
问题:证明分支未被创建。
解决方案:检查应用是否对目标仓库具有写入权限。如果你将证明写入另一个仓库,该目标必须具有读写访问权限。使用影子仓库通常可以干净利落地解决此问题。
问题:验证徽章显示未知或过期的状态。
解决方案:等待每晚的批量处理完成以及比特币确认发生。这通常需要 UTC 午夜后数小时。在证明文件写回后刷新徽章。
问题:私有仓库的状态对他人不可见。
解决方案:私有仓库的状态 URL 包含加密的 HMAC。请使用 Timestamp GIT 仪表板中经过身份验证的徽章链接,而不是公开状态端点。
问题:你需要气隙隔离或自托管部署。
解决方案:Timestamp GIT 以 Docker 自托管许可证的形式提供。一个最小的 Docker Compose 设置如下所示:
services:
timestampgit:
image: rue1401/timestampgit:prod
ports:
- "8080:8080"
volumes:
- ./data:/app/data
- ./license.lic:/app/license.lic:ro
restart: unless-stopped
valkey:
image: valkey/valkey:8
restart: unless-stopped
启动后,应用程序可在 http://localhost:8080 访问,设置向导会引导你完成 GitHub App 的连接。Docker 许可证页面提供限时演示许可证。
常见问题解答
Timestamp GIT 如何对我的 Git 提交进行加密时间戳认证?
Timestamp GIT 提取每个提交的 SHA-1 或 SHA-256 哈希,每天批量处理这些哈希,构建 Merkle 树,并使用 OpenTimestamps 协议将 Merkle 根锚定到比特币区块链中。这创建了一个不可篡改的证明,证明该提交在那一刻已经存在。
我需要运行任何 CLI 工具或了解 OpenTimestamps 吗?
不需要。Timestamp GIT 是一个托管型 GitHub App。安装后,它会自动监控你的仓库并每晚锚定提交。你无需运行任何命令,也无需管理底层协议。
时间戳认证过程中我的源代码会被暴露吗?
不会。Timestamp GIT 只读取提交哈希,这是一种加密指纹,而非实际代码。在企业零知识模式下,即使是提交哈希也是通过 GitHub Action 从你的基础设施推送的,因此你的源代码永远不会离开你的环境。
我可以在不依赖 Timestamp GIT 的情况下独立验证时间戳吗?
可以。证明以标准的 .ots 回执文件形式存储。任何人都可以下载它,并使用开源的 OpenTimestamps 工具对照比特币区块链进行验证。即使 Timestamp GIT 消失,该证明仍然有效。
结论
现在你已经为 Git 提交启用了自动加密时间戳认证。经过一次性的 GitHub App 安装,受监控仓库中的每一次提交都会在每晚被批量处理、锚定到比特币中,并转换为可验证的 .ots 证明回执。整个过程无需本地 CLI 工具、无需手动执行 OpenTimestamps 命令,也无需比特币专业知识。
公开仓库可以免费开始使用。私有仓库在付费计划中提供。立即安装 GitHub App,让你的提交历史具备法律上的可辩护性。
相关文章
- Timestamp GIT 定价:适合每位开发者的计划
- 软件中的存在性证明:初学者指南
- 如何验证你的 Git 提交时间戳
- 利用时间戳保护你的软件免受专利流氓侵害
- OpenTimestamps 与 Timestamp GIT:哪个更适合你的代码?
- 几分钟内设置自动 Git 提交时间戳认证