Timestamp GIT Secure your prior art without exposing code

← All posts

2026-08-25

Gitコミットに暗号学的タイムスタンプを付与する方法(CLIツール不要)

Gitコミットに暗号学的タイムスタンプを付与する方法(CLIツール不要)
timestamp git blockchain proof

Git コミットを暗号学的にタイムスタンプする方法(CLI ツールなしで)

ほとんどの開発者は、git log を作業がいつ行われたかを示す信頼できる記録として扱っています。しかし、標準的な Git 履歴は暗号学的に信頼できるものではありません。コミット日付は任意の値に設定でき、履歴は force-push で書き換え可能であり、GitHub でホストされているリポジトリは管理者権限を持つ人によって変更される可能性があります。パテントトロール、元契約者、競合他社から、特定の実装がいつ存在したのかを証明するよう求められた場合、ローカルの git log は自己都合的なものとして退けられることがよくあります。

このガイドでは、OpenTimestamps をインストールしたり、Bitcoin ノードを実行したり、生のコマンドラインツールを学んだりすることなく、Git コミットを暗号学的にタイムスタンプする方法を紹介します。使用するのは Timestamp GIT です。これはコミットハッシュのみを読み取り、毎晩バッチ処理して Bitcoin にアンカーし、.ots 証明レシートを書き戻すマネージド GitHub App です。最終的に、監視対象リポジトリへのすべてのコミットが Bitcoin ブロックチェーンに対して検証可能になります。

基礎となる概念に馴染みがない場合は、ソフトウェアにおける存在証明:初心者ガイド を参照してください。この記事ではセットアップ作業に焦点を当てます。

前提条件

暗号の専門知識は必要ありませんが、以下が必要です:

  • 保護したいリポジトリを少なくとも 1 つ持つ GitHub アカウント。
  • Timestamp GIT の Web サイトから利用可能な Timestamp GIT GitHub App へのアクセス。
  • コミットやプッシュなどの通常の Git ワークフローに関する基本的な知識。
  • 無料で始めたい場合はパブリックリポジトリ。プライベートリポジトリは有料プランで利用可能です。

標準セットアップでは、ローカルへのインストール、OpenTimestamps クライアント、Bitcoin ウォレットは必要ありません。

ステップバイステップ:自動タイムスタンプのセットアップ

ステップ 1:Timestamp GIT GitHub App をインストールする

Timestamp GIT の Web サイトまたは GitHub Marketplace から始めます。Install GitHub App をクリックし、アプリを個人アカウントにインストールするか組織にインストールするかを選択し、GitHub の認証フローを完了します。

アプリはマネージドサービスになります。インストール後、選択したリポジトリを監視し、コミットを自動的にアンカーします。post-commit フックを追加したり、開発ワークフローを変更したりする必要はありません。

ステップ 2:必要な権限を付与する

Timestamp GIT は 2 つのモードで動作します:

  • 標準モード:GitHub App はソースリポジトリから最新のコミットハッシュのみを読み取ります。GitHub の権限システムには「コミットハッシュのみ」のアクセス権がないため、アプリはソースリポジトリへの読み取り専用アクセスを必要とします。また、証明ファイルが書き込まれるターゲットリポジトリへの読み書きアクセスも必要です。
  • Enterprise ZK モード:短い GitHub Action があなたのインフラストラクチャ上で実行され、コミットハッシュのみを Timestamp GIT API にプッシュします。このモードでは、ソースリポジトリへの読み取りアクセスは必要ありません。証明が保存されるターゲットリポジトリへの読み書きアクセスのみが必要です。

ほとんどのユーザーにとって、標準モードが最初に選ぶべきものです。重要な点は、どちらのモードでも Timestamp GIT がソースコードを読み取ることは決してないということです。

ステップ 3:監視するリポジトリを選択する

インストール中に、アプリが現在および将来のすべてのリポジトリを監視するか、選択したリポジトリのみを監視するかを選択します。パブリックリポジトリでテストしている場合は、今そのリポジトリを選択してください。

証明ファイルは、専用ブランチ上の同じリポジトリに書き込むか、別のシャドウリポジトリに書き込むことができます。小規模なプロジェクトでは同じリポジトリを使用するのが一般的です。証明ファイルをメインリポジトリから完全に分離したい場合は、別のシャドウリポジトリが便利です。

ステップ 4:ダッシュボードでセットアップを確認する

インストール後、https://timestampgit.dev/repos を開きます。監視対象のリポジトリがそこにリストされているはずです。

以下を確認してください:

  • ソースリポジトリがリストに表示されていること。
  • 証明ターゲットが期待どおりに設定されていること。
  • リポジトリがアクティブとしてマークされていること。

リポジトリが表示されない場合は、GitHub App のインストール設定を再確認し、正しいリポジトリが選択されていることを確認してください。

ステップ 5:新しいコミットを作成する

Timestamp GIT は、リポジトリが接続された後に作成されたコミットのみを処理します。通常のコミットを作成してプッシュします:

git add src/validation.js
git commit -m "Add payment validation logic"
git push origin main

他に何も実行する必要はありません。GitHub App は Webhook を通じて新しいコミットを自動的に検出します。

ステップ 6:毎晩のバッチ処理を待つ

Timestamp GIT は各コミットを即座にアンカーするわけではありません。コミットはキューに収集され、毎晩 UTC の午前 0 時直後にナイトリーワーカーがそれらをグループ化します。

ワーカーは:

  1. 各リポジトリのマニフェストファイルを作成します。
  2. 保留中のコミットハッシュから Merkle ツリーを構築します。
  3. OpenTimestamps 証明を作成します。
  4. Merkle ルートを Bitcoin ブロックチェーンにアンカーします。

Bitcoin の承認には通常数時間かかります。証明の書き込みプロセス全体で合計数時間かかることがあるため、コミットをプッシュしてから数分以内にバッジやステータスページが更新されることを期待しないでください。

ステップ 7:証明の配信を確認する

バッチが承認されると、Timestamp GIT は証明ファイルを選択したターゲットにプッシュバックします。専用の timestamps ブランチまたはシャドウリポジトリに以下が含まれているのが確認できます:

manifests/2026-08-25.txt
proofs/2026-08-25.ots

.ots ファイルは暗号学的なレシートです。保管、公開、監査人への提出が可能です。証明は Timestamp GIT のインフラストラクチャから独立しています。

動作確認の方法(検証)

タイムスタンプが有効になっていることを確認する最速の方法は、リポジトリのステータスページを開くことです:

https://timestampgit.dev/status/{user}/{repo}

{user} と {repo} を GitHub のユーザー名または組織名とリポジトリ名に置き換えます。ステータスページには、最初のアンカー日、日次の規則性、Bitcoin ブロックとトランザクションのデータ、カレンダーのヒートマップが表示されます。

機械可読なチェックには、公開ステータス API を呼び出すことができます:

curl -s https://timestampgit.dev/api/statusLast/octocat/hello-world

レスポンスには、最後にアンカーされた Bitcoin ブロックの情報が含まれます。プライベートリポジトリの場合、URL には暗号化された HMAC が含まれ、許可されたユーザーのみがステータスにアクセスできます。

README に証明ステータスを直接表示するには、リポジトリのダッシュボードを開き、埋め込み可能なバッジの Markdown をコピーします。以下のようになります:

[![Timestamp GIT](YOUR_BADGE_URL)](https://timestampgit.dev/status/YOUR_USER/YOUR_REPO)

ダッシュボードには、リポジトリに適した Shields.io バッジ URL を含む完全なスニペットが表示されます。

より詳細な証明チェックについては、以下にアクセスしてください:

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

このページでは、Merkle チェーンの検証をブラウザ内でローカルに実行します。特定の日付の PDF 証明書をダウンロードしたり、ステータスダッシュボードから完全な監査台帳を CSV としてエクスポートしたりすることもできます。

.ots ファイルを完全に独立して検証したい場合は、それをダウンロードし、オープンソースの OpenTimestamps ツールを使用して Bitcoin ブロックチェーンに対してチェックできます。Timestamp GIT はこれを手動で行うことを要求しませんが、証明がベンダー非依存であるため、このオプションが存在します。専用のウォークスルーについては、Git コミットのタイムスタンプを検証する方法 を参照してください。

一般的な問題のトラブルシューティング

問題:コミット後に証明が表示されない。

解決策:GitHub App のインストール設定でリポジトリがまだ選択されていることを確認してください。また、コミットがインストール後に行われたことを確認してください。アプリが接続される前に行われたコミットは遡って処理されません。

問題:証明ブランチが作成されなかった。

解決策:アプリがターゲットリポジトリへの書き込みアクセスを持っていることを確認してください。別のリポジトリに証明を書き込んでいる場合、そのターゲットには読み書きアクセスが必要です。シャドウリポジトリを使用すると、この問題がきれいに解決されることがよくあります。

問題:検証バッジが不明または古いステータスを示している。

解決策:毎晩のバッチが完了し、Bitcoin の承認が行われるまで待ちます。通常、UTC の午前 0 時以降に数時間かかります。証明ファイルが書き戻された後にバッジを更新してください。

問題:プライベートリポジトリのステータスが他の人に見えない。

解決策:プライベートリポジトリのステータス URL には暗号化された HMAC が含まれています。公開ステータスエンドポイントではなく、Timestamp GIT ダッシュボードの認証済みバッジリンクを使用してください。

問題:エアギャップまたはセルフホストのデプロイが必要。

解決策:Timestamp GIT は Docker セルフホストライセンスとして利用可能です。最小限の Docker Compose セットアップは以下のようになります:

services:
  timestampgit:
    image: rue1401/timestampgit:prod
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
      - ./license.lic:/app/license.lic:ro
    restart: unless-stopped

  valkey:
    image: valkey/valkey:8
    restart: unless-stopped

起動後、アプリケーションは http://localhost:8080 で利用可能になり、セットアップウィザードが GitHub App の接続を案内します。期間限定のデモライセンスは Docker ライセンスページから入手できます。

FAQ

Timestamp GIT はどのようにして Git コミットを暗号学的にタイムスタンプするのですか?

Timestamp GIT は各コミットの SHA-1 または SHA-256 ハッシュを抽出し、それらのハッシュを毎日バッチ処理し、Merkle ツリーを構築し、OpenTimestamps プロトコルを使用して Merkle ルートを Bitcoin ブロックチェーンにアンカーします。これにより、コミットがその時点で存在していたことを示す不変の証明が作成されます。

CLI ツールを実行したり、OpenTimestamps を理解したりする必要はありますか?

いいえ。Timestamp GIT はマネージド GitHub App です。一度インストールすると、リポジトリを自動的に監視し、毎晩コミットをアンカーします。コマンドを実行したり、基盤となるプロトコルを管理したりする必要はありません。

タイムスタンプ処理中にソースコードが公開されることはありますか?

いいえ。Timestamp GIT はコミットハッシュのみを読み取ります。これは暗号学的なフィンガープリントであり、実際のコードではありません。Enterprise ZK モードでは、コミットハッシュさえも GitHub Action を介してあなたのインフラストラクチャからプッシュされるため、ソースコードが環境の外に出ることはありません。

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

はい。証明は標準の .ots レシートファイルとして保存されます。誰でもそれをダウンロードし、オープンソースの OpenTimestamps ツールを使用して Bitcoin ブロックチェーンに対して検証できます。Timestamp GIT が消滅しても証明は有効であり続けます。

まとめ

これで、Git コミットの自動暗号学的タイムスタンプが有効になりました。一度限りの GitHub App インストールの後、監視対象リポジトリへのすべてのコミットは毎晩バッチ処理され、Bitcoin にアンカーされ、検証可能な .ots 証明レシートに変換されます。このプロセスには、ローカルの CLI ツール、手動の OpenTimestamps コマンド、Bitcoin の専門知識は一切必要ありません。

パブリックリポジトリは無料で始められます。プライベートリポジトリは有料プランで利用可能です。今すぐ GitHub App をインストールして、コミット履歴を法的に防御可能なものにしましょう。

関連記事

EU label: AI-generated content