Timestamp GIT Secure your prior art without exposing code

← All posts

2026-09-28

ソフトウェアコードの存在証明とは?

ソフトウェアコードの存在証明とは?
timestamp git blockchain proof

ソフトウェアコードの存在証明とは何か?

開発者やコンプライアンスチームにとって、「存在証明」とは所有権や著作者を証明することではありません。それはただ一つの狭い問いに答えるものです:この正確なコードは、この時点で存在していたのか? Git履歴は書き換え可能で、ファイルのタイムスタンプは変更可能であり、内部ログはしばしば自己都合的なものとして退けられる世界において、ソフトウェアコードの存在証明とは、あなたの作業の暗号学的フィンガープリントを不変の公開台帳に固定することを意味します。

この記事では、存在証明の意味、その仕組み、そしてTimestamp GITがそれをゼロセットアップのGitHubワークフローに変える方法を説明します。

コードにおける「存在証明」とは何を意味するのか?

ソフトウェアコードの存在証明とは、特定のコード——より正確には、そのコードの暗号学的ハッシュ——が特定の時点で存在していたことを実証する能力です。

最後の点が重要です。ソースコードを公開する必要はなく、第三者にアップロードする必要もありません。代わりに、リポジトリの状態の一方向フィンガープリントを作成し、そのフィンガープリントを公開された改ざん耐性のある場所に記録します。

違いを理解するために:

  • 存在証明は、特定のコード状態が特定の日付に存在していたことを示します。
  • 著作者証明は、誰がそのコードを作成またはコミットしたかを示します。
  • 所有権証明は、著作者、雇用契約、譲渡、その他の証拠に基づく法的な結論です。

ブロックチェーンに固定されたタイムスタンプは、あなたがコードを書いたことを証明するものではありません。そのコードがその瞬間に存在していたことを証明します。多くの紛争では、その区別で十分です——なぜなら、あなたの実装が他者の特許出願や主張よりも前に存在していた場合、タイムラインは数学的に固定されるからです。

Gitでのフィンガープリントは次のようになります:

# Gitは正確なリポジトリ状態に対して一意のフィンガープリントを作成します
git rev-parse HEAD
# 6f1ed002ab5595859012f3f9b6b4c2b1e1c9a2e5

そのハッシュは、コミット時点の完全なリポジトリ状態を表します。1バイトでも変更すれば、ハッシュは完全に変わります。ハッシュ自体を逆算してソースコードを明らかにすることはできません。

シンプルな例え:公証人と金庫

封印された封筒を持って公証人のところへ行くところを想像してください。公証人は封筒を開けません。代わりに、日付を記録し、外側にスタンプを押し、台帳に署名します。数年後、法廷で封筒を開け、中身がその日付に存在していたことを示すことができます。なぜなら、公証人の記録は独立しており、改ざんが明らかになるからです。

ソフトウェアの存在証明も同じように機能します。ただし、「封筒」は暗号学的ハッシュであり、「公証人」はビットコインブロックチェーンです。

  • コードは非公開のままです。 公証人——この場合、タイムスタンプサービスと公開台帳——はフィンガープリントのみを見ます。
  • 記録は独立しています。 ビットコインブロックチェーンは、単一のベンダーが管理しない公開台帳です。トランザクションがブロックに確定されると、その記録を変更することは計算上非現実的です。
  • 証拠はベンダーよりも長く存続します。 証明はビットコインに固定されているため、タイムスタンプサービスが消滅しても検証できます。

この例えは、非技術的なステークホルダーが、ブロックチェーンタイムスタンプが内部Gitログとどう違うかを理解するのに役立ちます。内部ログは、あなたが管理または借りているインフラ上に存在します。ビットコインに固定された証明は、公開され、不変であり、独立して検証可能です。

存在証明の仕組み:内部の仕組み

プロセスは3つのステップに分解できます。

ステップ1:フィンガープリント

Gitはすでに最初のステップを行っています。すべてのコミットは一意のハッシュ——古いGitバージョンではSHA-1、新しいリポジトリではSHA-256サポート——を受け取り、その時点の完全なリポジトリ状態をカバーします。

このハッシュはあなたのコードではありません。固定サイズの数学的ダイジェストです。そこからソースを再構築することはできず、同じコード状態は常に同じハッシュを生成します。

ステップ2:アンカー

次のステップは、ハッシュを公開台帳に固定することです。Timestamp GITはコミットハッシュを収集し、日次マニフェストファイルにグループ化します。それらのハッシュからマークルツリーを構築し、OpenTimestamps証明を作成します。マークルルートはその後、ビットコイントランザクションに固定されます。

そのトランザクションがビットコインブロックに確定されると、タイムスタンプは不変になります。削除ボタンも、管理者による上書きも、後で編集できる独自データベースもありません。

フローは次のようになります:

commit hash -> daily manifest -> Merkle tree -> Bitcoin transaction -> .ots receipt

ステップ3:証明

出力は暗号学的レシートで、通常は.otsファイルです。そのレシートにより、標準のOpenTimestampsツールを使用して、誰でもビットコインブロックチェーンに対してタイムスタンプを検証できます。

これは重要です:証明はSHA-256とビットコインブロックデータに依存しています。単一ベンダーのフォーマットやインフラへのロックインはありません。SaaSプロバイダーが存在しなくなっても、証明は検証可能なままです。

これを生のOpenTimestampsツールで手動で行うことは可能ですが、カレンダー、マークルツリー、ビットコインの確認監視を自分で扱うことを意味します。その手動の複雑さこそが、Timestamp GITがGitHub Appの背後でパイプラインを自動化することで取り除くものです。

開発者とコンプライアンスにとって存在証明が重要な理由

存在証明が重要なのは、タイミングがIP紛争の中心的な問題であることが多いからです。

  • パテントトロール: 広範なソフトウェア特許に対する一般的な防御は先行技術です。出願日より前にコードが存在していたことを示せれば、特許請求は無効になる可能性があります。存在証明は、あなたのプライベートリポジトリを日付付きの検証可能な先行技術記録に変えます。詳細は特許出願前にコードが存在していたことを証明する方法を参照してください。
  • 従業員およびクライアントとの紛争: 開発者が退職したとき、またはクライアントがマイルストーンの完了時期に疑問を持ったとき、タイムスタンプ付きのコミットハッシュは、エクスポートされたチャットログや編集されたGit履歴よりも強力です。
  • コンプライアンスとガバナンス: セキュリティレビュー、デューデリジェンス、または内部ガバナンスのための監査証跡が必要なチームは、コード状態がいつ存在していたかの定期的で検証可能な記録を示すことができます。

また、よくある誤解を解消しておきます。

  • 著作権登録ではありません。 ブロックチェーンタイムスタンプは著作権登録の代わりにはならず、それ自体で著作者を証明するものでもありません。
  • 誰がコードを書いたかは証明しません。 特定のハッシュが特定の時点で存在していたことを証明します。著作者には依然として雇用記録、コミットメタデータ、その他の証拠が必要です。
  • 「単なる内部ログ」ではありません。 Git履歴は書き換え、force-push、または失われる可能性があります。ビットコインに固定された証明は、外部にあり、公開され、数学的に検証可能です。

Timestamp GITが存在証明を effortless にする方法

Timestamp GITは、存在証明パイプライン全体を自動化するマネージドSaaSおよびGitHub Appです。OpenTimestampsコマンドを実行したり、カレンダーを管理したり、ビットコインと直接やり取りしたりする必要はありません。

主なワークフローは:

  1. GitHub Appを一度インストールします。
  2. 監視したいリポジトリを選択します。
  3. 通常どおりコードをコミットし続けます。

毎晩、Timestamp GITは自動的に保留中のコミットハッシュをグループ化し、マークルツリーを構築し、OpenTimestamps証明を作成し、マークルルートをビットコインブロックチェーンに固定します。ビットコインの確認後——通常約3時間——マニフェストと.otsレシートファイルは専用のtimestampsブランチまたはシャドウリポジトリにプッシュバックされます。

主な特徴:

  • ゼロ知識設計。 Timestamp GITはソースコードを見ることも、コピーすることも、保存することもありません。コミットハッシュのみを処理します。
  • 手動ステップなし。 開発者マシンにインストールするCLIツールも、作成する生のビットコイントランザクションもありません。
  • 柔軟なデプロイ。 標準モードはGitHub Appを使用し、ソースリポジトリへの読み取りアクセスとターゲットリポジトリへの読み書きアクセスが必要です。Enterprise ZKモードは、あなたのインフラ上のGitHub Actionを使用してコミットハッシュのみをTimestamp GIT APIにプッシュするため、サービスはソースリポジトリへの読み取りアクセスをまったく必要としません。
  • 公開検証。 READMEにステータスバッジを埋め込んだり、公開ステータスページを確認したり、監査CSVをダウンロードしたり、PDF証明書を生成したりできます。
  • ベンダー非依存。 .otsレシートは、Timestamp GITが運営を停止しても、標準のOpenTimestampsツールでオフラインで検証できます。

セルフホストまたはエアギャップ環境向けに、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

公開ステータスエンドポイントに直接クエリを実行することもできます。例:

curl https://timestampgit.dev/api/statusLast/your-org/your-repo

そのエンドポイントは、監視対象リポジトリについて最後に固定されたビットコインブロックに関する情報を返します。

FAQ

存在証明は法的に認められていますか?

暗号学的タイムスタンプは、先行技術の証拠として法廷でますます受け入れられています。独立して検証可能な、強力で改ざんが明らかな記録を提供します。ただし、法的承認は管轄区域によって異なり、特定のケースについては弁護士に相談することをお勧めします。

存在証明はソースコードを公開しますか?

いいえ。存在証明は一方向関数である暗号学的ハッシュを使用します。実際のソースコードは送信も保存もされません。ハッシュのみがブロックチェーンに固定されるため、コードは非公開のままです。

コードのタイムスタンプにいくらかかりますか?

Timestamp GITは公開リポジトリ向けに無料ティアを提供しています。プライベートリポジトリ向けの有料プランは月額49ドルから、Enterprise ZKプランは月額199ドルです。セルフホストDockerライセンスも利用可能です。

Timestamp GITに依存せずにタイムスタンプを検証できますか?

はい。証明はOpenTimestampsプロトコルとビットコインブロックチェーンに基づいています。.otsレシートをダウンロードし、標準のOpenTimestampsツールを使用して検証できます。Timestamp GITが存在しなくなっても可能です。

結論

ソフトウェアコードの存在証明は、安価でありながら数学的に厳密で、法的およびコンプライアンスの両方の文脈で有用な、数少ない開発者ツールの一つです。著作者や所有権を証明するものではありませんが、争うことが極めて困難な固定された時点を作り出します。

難しい方法は、OpenTimestampsプロトコルを手動で実行することです。実用的な方法は、Timestamp GIT GitHub Appをインストールし、リポジトリを接続し、毎晩のアンカーパイプラインに任せることです。Timestamp GITでコミットのタイムスタンプを始めましょう。

関連記事

EU label: AI-generated content