Timestamp GIT Secure your prior art without exposing code

← All posts

2026-08-29

如何为软件证明在先技术:开发者指南

如何为软件证明在先技术:开发者指南
timestamp git blockchain proof

如何为软件证明现有技术:开发者指南

为软件证明现有技术归结为一个精确的问题:你能否证明某个特定的 Git 提交在某个特定日期存在,并且有证据表明任何内部服务器、仓库管理员或第三方都无法篡改?本指南将逐步介绍如何在不暴露源代码的情况下创建此类证据。

你将使用 Timestamp GIT,这是一项托管服务和 GitHub App,可通过 OpenTimestamps 协议将你的 Git 提交哈希锚定到比特币区块链中。工作流程是一次安装、正常提交,然后让自动化的夜间锚定生成不可变的 .ots 回执文件。

阅读完本指南后,你将能够:

  • 在你想要保护的仓库上安装 GitHub App。
  • 配置加密证明的交付位置。
  • 为真实提交触发并确认比特币锚定时间戳。
  • 通过公共仪表板和徽章验证证明。
  • 排查最常见的权限和交付问题。

前置条件

开始之前,请确保你具备:

  • 一个 GitHub 账户以及至少一个你想要保护的仓库。
  • 对 Git 提交和哈希有基本了解。你不需要密码学或区块链经验。
  • 一个 Timestamp GIT 账户。公共仓库使用免费计划;私有仓库需要 Pro Agency 计划(每月 49 美元)或 Enterprise ZK 计划(每月 199 美元)。
  • 可选:如果你计划在隔离或企业环境中自托管 Timestamp GIT,则需要 Docker。

分步指南:设置 Timestamp GIT

托管路径不需要在你的开发机器上安装任何东西。你只需安装一次 GitHub App,选择仓库,之后每个提交都会在每晚自动锚定到比特币中。

第 1 步:注册并连接 GitHub

前往 Timestamp GIT 并使用你的 GitHub 账户登录。托管 SaaS 流程是默认路径。

如果你选择自托管,请从 Docker Compose 快速开始:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    restart: unless-stopped
  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

然后运行:

docker compose pull
docker compose up -d
docker compose logs -f timestampgit

自托管应用可在 http://localhost:8080 访问。首次启动时,设置向导会引导你连接 GitHub App 并应用许可证文件。

第 2 步:安装 Timestamp GIT GitHub App

在你想要保护的仓库上安装 GitHub App。

在标准模式下,Timestamp GIT 需要对源仓库的只读访问权限。这并不是因为它会读取你的代码——它只读取 HEAD 提交哈希——而是因为 GitHub 的权限系统不提供仅哈希的访问级别。

如果证明交付到单独的目标仓库,则该应用还需要对该目标仓库的读写访问权限。

第 3 步:选择要监控的仓库

在 Timestamp GIT 仪表板中,打开 Your Repositories 页面并选择你想要监控的仓库。

每个选中的仓库都会被添加到夜间证明流水线中。Timestamp GIT 不会检查文件内容、源代码或分支内容,只会检查锚定所需的提交哈希。

第 4 步:配置证明交付

对于每个受监控的仓库,选择加密证明的写入位置:

  • 同一仓库内的专用时间戳分支。
  • 一个单独的影子仓库,即使源仓库是公共的,该影子仓库也可以是私有的。

Timestamp GIT 会在每日锚定确认后,将清单文件和 .ots 回执写入该位置。

第 5 步:可选:启用 Enterprise ZK 模式

对于要求零源代码访问的团队,Enterprise ZK 模式是一种更强的部署模型。

在设置过程中,Timestamp GIT 会生成一个 12 行的 GitHub Action 工作流文件。你需要将该生成的文件添加到你的仓库中:

.github/workflows/timestampgit.yml

该 action 在你自己的基础设施上运行,而不是在 Timestamp GIT 的系统上运行。它仅将提交哈希推送到 Timestamp GIT API。在此模式下,Timestamp GIT 完全不需要对源仓库的读取权限——只需要对证明交付目标仓库的读写权限。

第 6 步:提交代码以触发流程

配置好监控后,正常提交并推送:

git add .
git commit -m "feat: add payment webhook handler"
git push origin main

在标准模式下,GitHub App 会自动检测新的 HEAD 提交哈希。在 Enterprise ZK 模式下,GitHub Action 会从你的 CI 环境发送哈希。

第 7 步:等待夜间比特币锚定

Timestamp GIT 在内存队列中批量处理待锚定的提交哈希。每晚,一个工作进程会:

  1. 按仓库对待处理哈希进行分组。
  2. 创建每日清单文件。
  3. 从提交哈希构建 Merkle 树。
  4. 使用公共 OTS 日历创建 OpenTimestamps 证明。
  5. 将 Merkle 根锚定到比特币区块链中。

比特币确认通常需要约 3 小时。确认后,清单和 .ots 回执文件会被推送到你配置的时间戳分支或影子仓库。

如何确认它已生效

夜间运行完成后,你可以通过多种方式验证证明。

1. 检查时间戳分支

获取时间戳分支并确认清单文件和 .ots 回执是否存在:

git fetch origin timestamps
git ls-tree -r --name-only origin/timestamps | head

确切的分支名称取决于你的配置,但重要的信号是 .ots 文件与每日清单数据成对出现。

2. 使用公共验证页面

Timestamp GIT 提供了一个基于浏览器的验证页面,所有 Merkle 链计算都在你的浏览器本地完成:

https://timestampgit.dev/verification/{user}/{repo}/{date}

将 {user}、{repo} 和 {date} 替换为你的仓库以及你想要验证的日期。

3. 检查状态 API

你可以通过公共状态端点确认最新锚定的比特币区块:

curl https://timestampgit.dev/api/statusLast/acme/widget-api

响应中包含该仓库最新锚定的比特币区块信息。

4. 下载 PDF 证书

对于特定日期,可以从以下地址下载 PDF 证书:

https://timestampgit.dev/api/report/{user}/{repo}/{date}

该仓库的审计账本也可以 CSV 格式获取:

https://timestampgit.dev/api/audit/{user}/{repo}

5. 嵌入验证徽章

Timestamp GIT 仪表板提供徽章 URL 和可直接复制粘贴到 README 的 Markdown 片段。私有仓库会在徽章 URL 中附加加密的 HMAC,以便只有授权查看者才能看到状态信息。

徽章链接到一个公共验证页面,任何人都可以在那里检查证明。.ots 文件本身仍然是标准的 OpenTimestamps 回执,因此技术审计人员也可以下载它,并使用标准 OpenTimestamps 工具独立地对照比特币区块链进行验证。

常见问题排查

24 小时后仍无证明

检查 GitHub App 权限。标准模式至少需要对源仓库的只读访问权限。同时确认该仓库在 Timestamp GIT 仪表板中仍处于选中状态。

私有仓库状态不可见

私有仓库使用 HMAC 签名 URL。请确保徽章或状态链接来自 Timestamp GIT 仪表板,并且包含 HMAC 参数。HMAC 特定于生成它的服务器实例。

Enterprise ZK action 未交付证明

验证生成的工作流文件是否存在于 .github/workflows/timestampgit.yml,以及 GitHub Action 是否已安装在该仓库中。证明交付的目标仓库必须根据你的 action 配置具有读写访问权限。

自托管 Docker 实例未生成时间戳

确认许可证文件已在设置向导中上传。同时检查该实例是否具备 GitHub App OAuth 和时间戳锚定所需的网络连接。

证明验证失败

确保你正在验证正确的 .ots 文件和日期。一个仓库和日期的回执无法验证来自不同日期或仓库的提交。

常见问题解答

问:什么是软件中的现有技术?

答:现有技术是证明你的发明(如代码、算法或设计)在某个特定日期之前已经存在的证据。它通常用于使专利权利要求无效或证明作者身份。

问:比特币锚定如何证明现有技术?

答:你的 Git 提交哈希通过 OpenTimestamps 协议嵌入到比特币交易中。一旦在区块中确认,该时间戳就是不可变的,任何人都可以验证,从而证明该哈希在彼时已经存在。

问:Timestamp GIT 对开源项目免费吗?

答:是的。Timestamp GIT 为公共仓库提供免费计划。私有仓库需要付费计划,可选择 Pro Agency 或 Enterprise ZK。

问:我可以在不暴露源代码的情况下使用 Timestamp GIT 吗?

答:可以。在标准模式下,只读取提交哈希——不读取源代码。在 Enterprise ZK 模式下,GitHub Action 仅从你自己的基础设施推送哈希,因此源代码永远不会离开你的环境。

问:时间戳确认需要多长时间?

答:夜间工作进程会在午夜后对哈希进行分组和锚定。比特币确认通常在锚定交易后约需 3 小时,因此预计 .ots 证明文件会在那之后不久出现。

结论

仅凭 Git 历史并不是强有力的现有技术证据,因为它可以被编辑、删除,或被视为主观自利的记录。比特币锚定的 OpenTimestamps 回执在数学上更难被忽视。

Timestamp GIT 让这项目工作对日常开发者变得切实可行:安装一次 GitHub App,选择一个仓库,然后继续像往常一样提交。夜间锚定、证明交付、徽章、PDF 证书和审计 CSV 都会自动处理。你永远不需要运行 OpenTimestamps 命令,也不需要手动与比特币区块链交互。

前往 Timestamp GIT 免费开始使用公共仓库。

相关文章

EU label: AI-generated content