什么是代码的密码学作者身份证明?
如果你曾经需要回答“这段代码最早是什么时候存在的?”这个问题,你就已经明白为什么密码学作者身份证明很重要。仅仅说你写了某个东西是不够的。在法律纠纷、审计或专利挑战中,你需要证据来证明某个特定的提交在某个特定时刻存在——这些证据不能被编辑、倒填日期,也不能被当作内部日志而驳回。
这就是代码的密码学作者身份证明所提供的:一个防篡改、可数学验证的记录,将 Git 提交绑定到一个时间点上。本文解释这实际上意味着什么、它在底层如何运作,以及 Timestamp GIT 如何将其转化为零配置的 GitHub App 工作流。
密码学作者身份证明意味着什么?
密码学作者身份证明有两个核心要素:
- 存在时间:证明代码在某个特定日期或之前就已经存在。
- 作者身份上下文:将该代码链接到特定的提交、仓库、作者元数据或实体。
Git 提交哈希是一个很好的起点。Git 根据仓库状态、提交信息、父提交和作者元数据生成一个唯一的哈希。相同的代码,在不同的时间提交或带有不同的元数据,会产生不同的哈希。
但仅凭哈希并不能证明它何时存在。任何人都可以在本地生成一个 Git 提交,并把系统时钟调到更早的日期。内部日志、GitHub 推送时间戳和服务器记录也可能被操纵,或被质疑为自利性证据。版权登记有帮助,但它速度慢,在某些情况下成本高昂,而且不能提供同样的密码学确定性。
更强的方法是将 Git 提交哈希锚定到一个公开的、不可篡改的账本中:比特币区块链。一旦该哈希被嵌入到一个比特币区块中,它在那个时间点的存在就变得可数学验证。没有任何公司、开发者或攻击者能够在不重做不可能完成的工作量的情况下,追溯性地更改一个比特币区块。
这就是现有技术保护的黄金标准:你工作的密码学哈希,被冻结在公开账本中,任何人都可以永远验证。
一个简单的类比:将你的代码封存在公共保险库中
想象你写了一份文档,把它放进一个密封的信封里。你不会在公开场合打开这个信封。相反,你计算信封内容的唯一指纹,并将该指纹发布到一个无法打开或更改的公共保险库中。
之后,如果有人声称他们在你之后发明了同样的想法,你可以指向保险库说:“我的指纹在这个日期就已经在这里了。”指纹不会揭示信封里有什么,但它证明了信封的存在。
用软件术语来说:
- 信封是你的 Git 仓库。
- 指纹是 Git 提交哈希。
- 公共保险库是比特币区块链。
- 存在证明是
.ots回执文件。
这是一个零知识过程。Timestamp GIT 永远不会看到你的源代码。它只处理提交哈希。哈希无法被逆向还原出代码,因此你可以在不披露专有逻辑、商业机密或未完成工作的前提下证明存在性。
密码学作者身份证明在底层如何运作
完整过程分为三个步骤。
第一步:指纹
每次你进行提交时,Git 都会生成一个唯一的单向哈希。根据仓库格式的不同,这个哈希可以是 SHA-1 或 SHA-256。它代表了该提交时仓库的确切状态,包括文件内容、提交元数据、作者和提交者字段,以及提交信息。
你可以在本地查看最新的提交哈希:
git rev-parse HEAD
该输出就是你的代码在那一刻的密码学指纹。
第二步:锚定
提交哈希会与其他等待时间戳的提交哈希一起被收集。Timestamp GIT 从每日批次的哈希中构建一棵 Merkle 树。然后使用 OpenTimestamps 协议将 Merkle 根嵌入到一笔比特币交易中。
关键点在于:你个人的提交哈希与一个特定的比特币区块建立了密码学连接。一旦该区块被确认,时间戳就是不可变的。
第三步:证明
你会收到一个不可变的 .ots 回执文件。该回执包含从你的提交哈希到比特币区块头的密码学路径。任何人都可以使用该回执对照实时比特币区块链验证时间戳,而无需信任 Timestamp GIT、任何服务器或任何第三方。
Timestamp GIT 将这一切自动化。一个 GitHub App 检测新的提交。哈希被排队。一个夜间工作进程创建 Merkle 树,写入 OpenTimestamps 证明,将 Merkle 根锚定到比特币中,并将清单和 .ots 回执推送到一个专用的 timestamps 分支或影子仓库。
这意味着你不需要手动操作 OpenTimestamps 工具、手动创建比特币交易,或运行验证命令。困难的方式是自己管理所有这些;Timestamp GIT 是托管路径。
如需更深入的比较,请参阅 Timestamp GIT 与 OpenTimestamps:哪个更适合你?。
为什么密码学作者身份证明对开发者和合规很重要
防御专利流氓
一个非实施实体可能会就你已经使用的技术申请一项宽泛的专利。如果你在他们申请之前几个月就实现了该技术,你就需要证据。一个不可变的比特币时间戳,显示你的提交在专利申请之前就已存在,就是强有力的现有技术。它让你有能力使该权利要求无效,而无需依赖模糊的内部记录。
解决作者身份争议
当一位首席开发者离职,或承包商声称拥有所有权时,问题往往变成:这个功能到底是什么时候创建的?Git 历史可以被重写。服务器日志可能被质疑。一个密码学时间戳将争议简化为一次数学检查。
加强合规和审计追踪
对于受监管环境、合同义务或客户交付争议,可验证的审计追踪非常有价值。Timestamp GIT 提供公开状态仪表板、审计 CSV 导出和 PDF 证书。这些工件支持合规审查和法律程序,而无需审计员信任你的内部基础设施。
常见误解
- “这是关于隐藏代码。” 不是。目标是证明存在性而不暴露源代码。哈希是指纹,不是代码的加密。
- “它取代了版权。” 不是。版权是一种法律权利。密码学证明通过提供工作何时存在的强有力证据来补充版权。你仍然拥有对代码的正常权利。
- “只有大公司才需要这个。” 自由职业者、代理机构和初创公司往往损失最大。一个没有法律预算的独立开发者仍然可以生成一个比特币支持的时间戳,让专利流氓无法忽视。
- “Git 历史就够了。” Git 提交可以在本地机器上被重建、重写或任意标注日期。在高风险争议中,内部日志往往被当作自利性证据而驳回。
关于初创公司视角的商业案例,请参阅 初创公司如何在不申请专利的情况下保护其软件知识产权。
Timestamp GIT 如何让密码学作者身份证明变得毫不费力
Timestamp GIT 是一个托管的 SaaS 和 GitHub App。你只需安装一次 GitHub App,连接一个仓库,之后被监控仓库的每一次提交都会在每晚自动锚定到比特币中。
工作流程是:
- 安装 GitHub App。
- 选择你想要监控的仓库。
- 继续正常提交代码。
- 在专用的 timestamps 分支或影子仓库中接收
.ots证明。
无需 CLI 工具,无需 OpenTimestamps 命令,无需手动比特币交易。验证同样简单。
你可以将可嵌入徽章添加到 README 中:
[](https://timestampgit.dev/status/acme/widget-service)
你可以使用公共 API 查看最新锚定的比特币区块:
curl -s https://timestampgit.dev/api/statusLast/acme/widget-service
对于私有仓库,URL 包含加密的 HMAC,因此只有授权用户才能访问状态。
Timestamp GIT 还提供多种部署模式:
- 标准 GitHub App 模式:GitHub App 仅从被监控的仓库读取 HEAD 提交哈希,并将证明写入专用分支。
- 企业零知识模式:一个 GitHub Action 在你的基础设施上运行,仅将提交哈希推送到 Timestamp GIT API。你的源代码永远不会离开你的环境。
- Docker 自托管:对于隔离环境,你可以将完整应用作为 Docker 镜像运行。
例如,一个最小的 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 以自动为你的提交添加时间戳。
常见问题
密码学作者身份证明和版权有什么区别?
版权是在创作时自动授予的法律权利,但证明确切的创作日期可能很困难。密码学作者身份证明提供了一个防篡改、可数学验证的时间戳,证明代码在特定时刻存在,可作为法律纠纷中的证据。
我可以在不暴露源代码的情况下证明作者身份吗?
可以。Timestamp GIT 使用零知识方法:它只处理 Git 提交哈希,这是一个密码学指纹。源代码本身从未被读取或存储。哈希被锚定到比特币区块链中,因此你可以在不披露专有代码的情况下证明存在性。
获得时间戳证明需要多长时间?
Timestamp GIT 每天批量处理提交,并将其锚定到比特币区块链中。确认通常在每日批次处理后的几个小时内完成——通常约 3 小时。一旦确认,证明就是不可变的,可以随时验证。
该证明在法庭上有效吗?
基于比特币区块链的密码学时间戳越来越被认可为可靠的证据,因为它们依赖于数学确定性,而不是对第三方的信任。Timestamp GIT 提供符合全球公认密码学标准的法庭就绪证据,你可以生成 PDF 证书和审计报告用于法律程序。
结论
代码的密码学作者身份证明解决了一个实际问题:证明一个提交何时存在,而不暴露它包含什么。通过将 Git 提交哈希锚定到比特币区块链中,你创建了一个不可变的记录,能够经受法律审查、专利挑战和内部争议。
最棒的是,你不需要成为密码学专家。Timestamp GIT 将整个流程自动化,封装在一个 GitHub App 背后。安装一次,连接你的仓库,每一次提交都会自动贡献到一条不断增长的、可验证的现有技术轨迹中。公共仓库可以免费开始使用,这使其成为一种低风险的方式,为你的开发工作流增加一层保护。