Timestamp GIT Secure your prior art without exposing code

← All posts

2026-09-05

代码的存在证明:它是什么以及为什么重要

代码的存在证明:它是什么以及为什么重要
timestamp git blockchain proof

代码的存在性证明:它是什么以及为什么重要

大多数开发者相信 Git 历史能显示某个功能是何时落地的。但在法律纠纷中,Git 提交日期只是元数据。任何拥有仓库访问权限的人都可以重写历史、强制推送新的日期,或者修改服务器数据库。这就是为什么代码的存在性证明已经从一种密码学上的新奇事物,变成了一种实用的合规工具。

存在性证明给你的东西比提交信息或带时间戳的截图更强:一份数学性的、公开的、防篡改的记录,证明某个特定的仓库状态在某个特定时刻确实存在。本文将解释这意味着什么、它如何在不暴露源代码的情况下工作,以及像 Timestamp GIT 这样的托管 GitHub App 如何将它变成一个零配置的工作流。

什么是代码的存在性证明?

存在性证明是一种密码学证据,证明某段特定代码在某个特定时间点确实存在。它不会存储你的代码,不能证明代码是你写的,也不能替代版权登记。它证明的是一个狭窄但有力的事实:这个精确的指纹在这个时间戳之前就已经存在。

这个指纹就是 Git 提交哈希。当你提交时,Git 会根据仓库状态生成一个单向标识符:

git rev-parse HEAD
# 1a4f28c3e8f1d95b4e2a3cfe06cb0d5b9a4d1e7c

这个哈希非常敏感。在任何被跟踪的文件中修改一个字符,或者更改提交元数据,你都会得到一个完全不同的哈希。但哈希本身不会泄露任何关于名称、路径或源代码的信息。

为了让这个哈希在时间推移中具有意义,存在性证明将它锚定到一个公开的、不可变的账本中:比特币区块链。比特币区块充当一个通用时钟。一旦锚定得到确认,除非重写比特币历史,否则实际上没有任何办法篡改时间戳。

传统的替代方案都更弱:

  • 内部 Git 日志可以被编辑、删除,或者托管在你无法控制的服务器上。
  • 公证证明某人签署了一份文件,但速度更慢,而且通常需要第三方信任。
  • 专利昂贵且缓慢;它们还要求公开披露。

区块链锚定的指纹便宜、自动化,并且可以通过数学方法验证。即使时间戳服务消失了,证明仍然可以直接对照比特币进行核验。

一个简单的类比:密封信封

想象你给自己寄一个密封信封,里面装着对一项发明的描述。当信封到达时,邮戳证明了这份描述在那个日期就已经存在。你保持信封密封,直到发生纠纷需要打开它。

存在性证明就是这个技巧的数字版本:

  • 代码的哈希就是密封信封。它隐藏了内容。
  • 比特币区块链就是邮戳。它记录了指纹被提交到公开记录的那一刻。
  • .ots 回执就是信封本身——你保留的密码学证明。

但实体信封有一个弱点:理论上有人可以伪造邮戳或者倒填信件的日期。比特币时间戳没有这个弱点。区块链是公开的、只可追加的,并且由工作量证明保护。一旦锚定被足够多的区块覆盖,倒填日期在计算上就不可行。

它在底层是如何工作的(简述)

完整流程出奇地简单:

检测到提交
    ↓
提取 Git 提交哈希
    ↓
每晚批量处理哈希
    ↓
构建 Merkle 树
    ↓
Merkle 根锚定到比特币
    ↓
返回 .ots 回执

第一步:指纹。 Git 在提交时已经创建了唯一的提交哈希。Timestamp GIT 只提取这个哈希,而不是它背后的内容。

第二步:锚定。 每晚,服务将待处理的提交哈希分组到一个清单中。它从这些哈希构建一棵 Merkle 树,并使用 OpenTimestamps 协议将 Merkle 根锚定到一笔比特币交易中。这样就把许多提交打包到一个链上锚定中。比特币确认通常需要大约三小时,因此证明文件会在锚定确认后出现。

第三步:证明。 结果是一个 .ots 回执文件。该回执包含从你的提交哈希到比特币区块头的密码学路径。任何人都可以在之后对照区块链在本地验证这个证明。

有一种原始的方法可以自己使用 OpenTimestamps 工具和手动比特币交互来完成这件事。它确实可行,但这意味着要维护你自己的日历、回执和验证工作流。Timestamp GIT 的存在正是为了消除这种运维负担。这个 GitHub App 会监视你的仓库,每晚批量处理哈希,并将证明文件推回到一个 timestamps 分支或影子仓库。不需要 CLI 工具,不需要手动协议步骤,也不需要 OpenTimestamps 命令。

为什么存在性证明对开发者很重要

抵御专利流氓

专利流氓经常就常见技术申请宽泛的专利。如果你在几个月前就实现了相同的想法,一个不可变的时间戳就可以使该权利要求无效。你不需要公开解释你的实现——你只需要证明代码在申请日之前就已经存在。

解决署名争议

当一位首席开发者离开,或者一位承包商声称他们先构建了某个功能时,一个锚定在比特币中的 Git 提交哈希就能解决“公说公有理,婆说婆有理”的问题。你可以证明该状态在某个特定日期存在,而不需要依赖法院可能视为自利证据的内部访问日志。

抵御“净室”指控

竞争对手可能声称他们在你发布之后独立开发了类似的功能。如果你的代码在 18 个月前就已经存在,时间戳就创造了一堵数学之墙。指控在公开记录面前不攻自破。

强化法律证据

内部日志通常被视为可被操纵的。区块链锚定的证明是防篡改的。它们依赖 SHA-256 和比特币区块数据,这些标准可以由独立专家验证。这使得它们在审计、和解谈判或诉讼中要强有力得多。

常见误解

  • 它不是版权登记。 版权保护表达形式并自动产生,但存在性证明不能替代登记。它支持你关于时间的主张。
  • 它不是专利。 时间戳不授予排他性权利。它提供的是针对后来竞争性权利要求的现有技术证据。
  • 它不证明所有权。 它证明的是在某个时间点的存在。所有权是一个独立的法律问题,通常需要额外的记录来支持。

理解这个范围很重要。存在性证明是拼图中强有力的一块,但不是一块神奇的法律盾牌。

Timestamp GIT 如何让它变得毫不费力

Timestamp GIT 是一个托管 SaaS 加 GitHub App,自动化了整个时间戳流水线。你只需安装一次,选择你想监视的仓库,每个新提交就会在下一个每晚批次中被锚定到比特币。

关键的架构细节是对源代码的零知识处理:

  • 标准模式使用 GitHub App 只从被监视的仓库读取 HEAD 提交哈希。Timestamp GIT 永远不会看到、复制或存储你的实际源代码。它只接收提交哈希。
  • 企业 ZK 模式使用一个在你自己的环境中运行的简短 GitHub Action。该 Action 只将提交哈希推送到 Timestamp GIT API,因此你的源代码永远不会离开你的基础设施。

锚定之后,验证被设计为对开发者友好:

  • 可嵌入徽章用于你的 README,显示公开验证状态。
  • 公开状态页面显示最早的锚定日期、比特币区块和交易数据,以及日历热力图。
  • PDF 证书可针对特定日期下载。
  • 基于浏览器的验证在你的浏览器中本地运行,因此无需信任任何第三方服务即可检查证明。
  • 公开 API 端点,如 /api/statusLast/{user}/{repo} 和 /api/audit/{user}/{repo},支持集成和自定义报告。

Timestamp GIT 还支持 Docker 自托管许可证,适用于隔离或高度监管的环境。快速启动看起来像这样:

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

定价从公共仓库的免费层开始。私有仓库和企业用例则转向付费计划。目标是让获取密码学时间戳变得像启用分支保护一样平常。

如果你想了解更多关于设置流程的细节,请参阅使用 GitHub App 自动化 Git 提交时间戳。

常见问题

代码的存在性证明到底是什么?

存在性证明是一种密码学证据,证明某段特定代码在某个特定时间点确实存在。它的工作原理是对代码或 Git 提交进行哈希,并将该哈希锚定到比特币区块链中。区块链的不可变性确保时间戳无法被更改或倒填,而且任何人都可以独立验证这个证明。

存在性证明与版权或专利有何不同?

版权保护思想的表达形式并自动产生,但证明创作日期可能很困难。专利保护发明,但昂贵、缓慢,并且需要公开披露。存在性证明提供了一个防篡改的时间戳,可以同时支持版权和专利主张,但它本身并不授予排他性权利。

我可以在不透露源代码的情况下证明存在吗?

可以。存在性证明使用的是代码的密码学哈希,而不是代码本身。哈希是一种单向函数:从哈希推导出原始代码在计算上是不可行的。Timestamp GIT 的零知识架构确保只有提交哈希被发送到服务,源代码永远不会被发送。在企业 ZK 模式下,连哈希都是从你自己的环境中推送的。

比特币时间戳在法律上被认可吗?

虽然法律因司法管辖区而异,但基于区块链的时间戳由于其密码学完整性和不可变性,正越来越多地被法院接受为证据。Timestamp GIT 使用的 OpenTimestamps 协议基于广泛接受的标准,如 SHA-256 和比特币区块链。证明可以被独立验证,使其成为某个时间点存在的有力证据。

我如何开始使用 Timestamp GIT?

通过在你的仓库上安装 Timestamp GIT GitHub App 来开始。该 App 会自动检测新提交,并每晚将它们锚定到比特币。你可以通过徽章或公开仪表板监视状态,并下载验证报告。对于私有仓库,你可以选择付费计划或使用 Docker 自托管。

结论

代码的存在性证明将问题从“你信任我的 Git 历史吗?”转变为“你能对照比特币验证这个哈希吗?”这是一个强得多的立场。

它不是版权登记或专利策略的替代品。它是缺失的那一层,以数学确定性告诉世界某个仓库状态是何时存在的。对于开发者、初创公司、代理机构和合规团队来说,这一层正在成为标准实践。

如果你想实现存在性证明,而不必手动管理密码学回执,Timestamp GIT 就是托管路线。安装一次 GitHub App,连接你的仓库,让每晚的比特币锚定自动发生。你可以在 https://timestampgit.dev/ 探索这项服务。

相关文章

EU label: AI-generated content