如何证明软件作者身份:开发者指南
Maya 是一名自由职业开发者,她在 2025 年初为客户构建了一个小巧但关键的数据同步库。十八个月后,客户的新工程团队声称该库是在后来的一份合同下创建的,并要求她停止在其他项目中使用它。Maya 有原始项目的 Git 提交记录,但当她发送日志截图时,客户的律师不以为然:“Git 历史可以被重写。这些时间戳证明不了什么。”
Maya 的问题不在于她缺乏证据。问题在于她所拥有的证据是断言性的,而非可验证的。在争议、专利申请、合规审计或商业秘密审查中证明软件作者身份,需要的不仅仅是一个提交日期。它需要一份加密记录,让独立第三方无需信任你的仓库、你的平台或你的说辞就能进行核验。
本指南解释了开发者和合规人员如何在实践中创建这样的记录。它重点介绍 Timestamp GIT,这是一项托管服务,自动化了底层的 OpenTimestamps 协议。你只需安装一次 GitHub App,该服务就会在后台将你的提交哈希锚定到比特币区块链上。
为什么传统的作者身份证明不够充分
大多数开发者已经有几种方式可以指向某个日期。问题在于,这些方式在真正的审查下都站不住脚。
自托管的 Git 历史是可篡改的。 Git 提交日期不具备防篡改性。通过 GIT_AUTHOR_DATE 和 GIT_COMMITTER_DATE 等环境变量,提交可以被回溯日期。变基、强制推送和历史重写都可以改变表面上的时间线。即使你从未这样做过,对方也可以辩称你有可能这样做。
托管 Git 平台并不能解决这个问题。 GitHub 仓库会显示时间戳,但这些时间戳并不是独立的存证证明。它们依赖于 GitHub 的服务器、GitHub 的账户安全,以及 GitHub 在法庭上为数据作证的意愿或能力。攻击者一旦入侵账户,就有可能篡改仓库内容。平台政策的变更也可能使历史记录更难获取。
正式的知识产权保护昂贵且缓慢。 专利可能花费数万美元,需要数年才能获批,而且可能要求披露你宁愿保密的信息。对于自由职业者、初创公司、代理机构和小型团队来说,专利作为第一道防线往往不切实际。
更强有力的方法是将你工作的加密指纹锚定到不可变的公共账本中。指纹是一种单向哈希。它证明了特定的仓库状态在特定时间存在,但不会揭示该状态背后的源代码。当账本是比特币时,任何持有回执文件和比特币节点的人都可以独立验证该证明。
关于为什么这对知识产权争议至关重要,更深入的解释请参见什么是加密现有技术,为什么它对软件很重要?。
使用 Timestamp GIT 证明作者身份的实用操作手册
Timestamp GIT 是 OpenTimestamps 之上的零配置托管层。你无需运行 OpenTimestamps 命令、管理比特币交易或运营自己的时间戳基础设施。你安装一个 GitHub App,连接一个仓库,然后继续编写代码。其余的工作由服务处理。
第 1 步:安装 Timestamp GIT GitHub App
在你想要保护的仓库或组织上安装 Timestamp GIT GitHub App。
标准模式需要对源仓库的只读访问权限,以及对用于存储证明文件的目标仓库的读写访问权限。目标可以是同一个仓库,也可以是一个独立的影子仓库。由于 GitHub 不提供仅提交哈希的只读访问权限,因此即使 Timestamp GIT 只读取 HEAD 提交哈希,读权限仍然存在。
在零知识企业模式中,你完全不授予源仓库的读访问权限。取而代之的是,一个 GitHub Action 在你自己的基础设施上运行,仅将提交哈希推送到 Timestamp GIT API。
你的开发机器上无需安装任何东西。你本地的 Git 工作流程保持不变。
第 2 步:像往常一样继续提交代码
App 安装后,每当出现新提交时,webhook 会通知 Timestamp GIT。在企业零知识模式中,你的 GitHub Action 会代替发送哈希。
你的日常工作流程如下:
git add src/
git commit -m "Implement rate limiter v2"
git push origin main
无需额外的标记命令。提交本身就是触发器。
第 3 步:让夜间批处理锚定你的哈希
Timestamp GIT 不会单独锚定每个提交。它为了提高效率而进行批处理,同时为每个提交哈希保留可验证的路径。
每天,系统会:
- 通过 webhook 或 GitHub Action 检测新提交。
- 将提交哈希排队到内存中的键值存储中。
- 在定时工作器中将待处理的哈希按仓库分组到清单文件中。
- 从每日批次构建 Merkle 树。
- 使用公共 OTS 日历创建 OpenTimestamps 证明。
- 将 Merkle 根锚定到比特币区块链中。
比特币确认通常需要大约三个小时,因此证明文件会在夜间批处理后的几个小时内出现。
第 4 步:接收你的证明文件
锚定确认后,Timestamp GIT 会将证明材料推送到你配置的专用 timestamps 分支或影子仓库。
证明包括:
- 清单文件,记录包含了哪些提交哈希。
.ots回执文件,包含 OpenTimestamps 证明数据。
你可以检查证明分支上到达了什么:
git fetch origin timestamps
git ls-tree -r --name-only origin/timestamps | tail
你还可以通过认证徽章端点在你的 README 中嵌入验证徽章。徽章显示当前的验证状态,并链接到你仓库的公开状态页面。
第 5 步:随时验证——即使没有 Timestamp GIT
验证可通过产品的公开页面进行。加密验证页面在浏览器本地遍历 Merkle 链数据,因此服务不会看到你在验证什么。
你还可以下载 .ots 文件,并使用标准的 OpenTimestamps 工具对照比特币区块链独立验证。由于证明仅依赖于 SHA-256 和比特币区块数据,验证不需要 Timestamp GIT 保持在线。
可以通过公开 API 进行快速状态检查:
curl -s https://timestampgit.dev/api/statusSummary/your-user/your-repo
如需完整账本,可以下载审计 CSV。对于特定日期,可以下载 PDF 证书。
自托管和企业部署
如果你需要最大程度的隔离,或在隔离网络中运行,Timestamp GIT 以 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
首次启动时,设置向导会引导你连接 GitHub App 并配置实例。评估可使用限时演示许可证。
企业零知识模式使用在你自己的基础设施上运行的 GitHub Action。它仅将提交哈希推送到 Timestamp GIT API,因此你的源代码永远不会离开你的环境。
证明软件作者身份时应避免的事项
不要仅依赖内部日志或版本控制时间戳。 它们不具备防篡改性。法院或审计人员即使在其准确的情况下,也可能将其视为自利性证据而不予采信。
不要在证明过程中泄露你的源代码。 时间戳应该证明代码存在,而不是公开它的功能。使用仅锚定单向哈希的零知识方法。这既保护了商业秘密,也避免了意外披露。
不要使用可能消失或篡改记录的专有时间戳服务。 如果证明依赖于封闭系统,你就又回到了信任中间人的老路上。SHA-256、OpenTimestamps 和比特币等开放标准无需供应商即可验证。
不要等到争议出现才开始。 尽早并持续地进行时间戳标记。一条连续的锚定提交链展示的是持续工作的模式,而非最后一刻试图制造证据。
手动使用 OpenTimestamps 需要你自己操作协议。Timestamp GIT 的存在就是为了将这种复杂性隐藏在 GitHub App 和自动化夜间流水线之后。
常见问题解答
什么是软件作者身份的加密证明?
软件作者身份的加密证明是一种方法,用于证明你的代码的特定版本在某个时间点存在,而无需揭示代码本身。它的工作原理是创建代码的唯一哈希(即指纹),并将该哈希锚定到比特币区块链等不可变公共账本中。任何人都可以在之后验证该哈希在那个时间确实存在,从而提供防篡改的作者身份证据。
Timestamp GIT 如何在不查看我的代码的情况下证明作者身份?
Timestamp GIT 使用零知识方法。它只读取提交哈希,这是一种加密指纹,从不读取实际源代码。该哈希被包含在 Merkle 树中,并通过 OpenTimestamps 协议锚定到比特币。由于哈希是单向的,没有人可以逆向推导出你的代码,但时间戳证明了代码在那个时刻存在。
如果 Timestamp GIT 消失了,我可以自己验证时间戳吗?
可以。证明完全基于开放标准:SHA-256、比特币和 OpenTimestamps。你会收到 .ots 回执文件,可以使用标准的 OpenTimestamps 工具对照比特币区块链独立验证。验证不需要任何专有技术或服务,因此即使 Timestamp GIT 不复存在,你的证明仍然有效。
这在法律上被认可吗?
锚定在公共区块链中的加密时间戳在法律程序中被越来越广泛地认可为有力证据。它们提供了防篡改的、数学上可验证的特定时间存在记录。法律认可因司法管辖区而异,但此类证明远比内部日志或电子邮件时间戳更加可靠。它们可以提交给法院、审计人员或对方当事人,以确立现有技术或作者身份。
Timestamp GIT 的费用是多少?
公共仓库在免费计划中受支持。私有仓库可使用 Pro Agency 计划,每月 49 美元。使用 GitHub Actions 的企业零知识模式每月 199 美元。Docker 自托管评估还提供限时演示许可证。
结论:让作者身份证明成为你工作流程的一部分
证明软件作者身份不必使你的开发流程复杂化。Timestamp GIT 会自动将你现有的 Git 提交转化为比特币锚定的回执。该工作流程是零知识的,意味着你的源代码保持私密。证明是供应商无关的,意味着即使服务消失,它仍然可以验证。
安装 Timestamp GIT GitHub App,连接一个仓库,让夜间锚定在后台运行。公共仓库可以免费开始使用,而私有仓库则由 Pro 和企业计划覆盖。当第一个比特币确认落地后,你就拥有了一个加密答案来回应这个问题:“你能证明你是先写出这个的吗?”