Gitコミットのタイムスタンプを検証する方法
Git コミットタイムスタンプを検証する方法
Git のコミットタイムスタンプは主張に過ぎません。検証こそが証明です。Git では、コミット日付は変更可能なメタデータです。git commit --date で任意の日付を設定でき、rebase は履歴を書き換え、force-push は共有リモートを書き換えることができます。先行技術を証明するためにコミットタイムスタンプに依存しているなら、ログ内の日付文字列よりも強力なものが必要です。
Timestamp GIT は、OpenTimestamps プロトコルを使用して Git コミットハッシュを Bitcoin ブロックチェーンにアンカーすることで、このギャップを埋めます。これはマネージド SaaS および GitHub App です。アプリを一度インストールし、リポジトリを接続するだけで、毎晩すべてのコミットが自動的にアンカーされます。CLI ツールも手動のプロトコル手順も不要です。
この記事では検証側に焦点を当てます。証明がどのようなものか、Timestamp GIT の組み込みツールでそれを確認する方法、そして結果を解釈する方法です。特許紛争においてこれがなぜ重要なのかという全体的な動機については、特許トロールからソフトウェアをタイムスタンプで守るを参照してください。
コードの先行技術にとって検証が重要な理由
タイムスタンプは、後で証明できて初めて価値を持ちます。内部の Git ログは通常、そのテストに合格しません。完全に制御できないサーバー上に存在するか、編集可能なデータベースに保存されているからです。法的監査やコンプライアンスレビューでは、そのようなログは自己都合的なものとして却下されることがよくあります。
Timestamp GIT は、Bitcoin にアンカーされた暗号学的証明を生成します。これが状況を変えます。
- 公開性: アンカーは Bitcoin ブロックチェーンに埋め込まれ、誰でも検証できます。
- 不変性: Bitcoin ブロックが確定すると、Timestamp GIT を含むいかなる主体もアンカーを変更または偽造できません。
- ゼロ知識: 検証はソースコードを公開せずに行われます。サービスはコミットハッシュのみを読み取り、基になるファイルには一切アクセスしません。
- 独立性: 証明は SHA-256 と Bitcoin ブロックデータに基づいています。Timestamp GIT がオンラインであり続けることに依存しません。
証明はコミットハッシュのみを含むため、ソースコードにアクセスすることなく、誰でも特定のコミットが特定の時点で存在したことを検証できます。これにより、検証は弁護士、監査人、コンプライアンス担当者に引き継げる実用的なステップになります。
Timestamp GIT の証明の仕組み
リポジトリを Timestamp GIT GitHub App に接続すると、サービスはコードを読み取りません。コミットハッシュのみを読み取ります。毎晩、ワーカーが保留中のハッシュをリポジトリごとのマニフェストファイルに収集し、Merkle ツリーを構築し、OpenTimestamps 証明を作成し、Merkle ルートを Bitcoin ブロックチェーンにアンカーします。
生成された証明アーティファクトは、専用の timestamps ブランチまたはシャドウリポジトリにプッシュされます。典型的な timestamps ブランチは概念的には次のようになります。
timestamps/
└── 2026/
└── 08/
└── 22/
├── manifest.txt
└── manifest.txt.ots
2 つの重要なファイルは次のとおりです。
manifest.txt: 日次マニフェストファイル。そのリポジトリと日付のコミットハッシュをグループ化します。.otsレシートファイル: 暗号学的証明。ダイジェスト、カレンダー認証、およびマニフェストが特定の Bitcoin ブロックとトランザクションにアンカーされたことを証明するために必要な Bitcoin ブロックヘッダーデータが含まれています。
証明は自己完結型です。.ots ファイルをダウンロードし、標準の OpenTimestamps 検証ツールを使用して Bitcoin ブロックチェーンに対して検証できます。完全にオフラインで、Timestamp GIT のインフラストラクチャなしで行えます。Timestamp GIT は使いやすい手段を提供しますが、基になる証明はあなたのものです。
Timestamp GIT ツールを使用したステップバイステップの検証
Timestamp GIT は複数の検証手段を提供しています。ワークフローに合ったものを使用できます。
1. 公開ステータスページを確認する
接続されたリポジトリについては、次の URL に移動します。
https://timestampgit.dev/status/{user}/{repo}
{user} を GitHub ユーザーまたは組織に、{repo} をリポジトリ名に置き換えます。
ステータスページには、証明の継続期間、最も古いアンカー日付、日次の規則性、Bitcoin ブロックとトランザクションのデータ、カレンダーヒートマップが表示されます。そこから、特定の日付の監査 CSV や PDF 証明書をダウンロードすることもできます。
公開リポジトリの場合、誰でもこのページにアクセスできます。プライベートリポジトリの場合、アクセスは暗号化された HMAC によって制限され、許可されたユーザーのみがステータスを表示できます。
2. README に検証バッジを埋め込む
リポジトリ内のタイムスタンプは、コントリビューター、顧客、監査人が一目で確認できるとより有用になります。Timestamp GIT は埋め込み可能な Shields.io バッジを提供しています。
まず、認証済みエンドポイントからバッジスニペットを取得します。
curl https://timestampgit.dev/api/badgeLink/your-org/your-repo
レスポンスにはバッジ URL と、そのまま貼り付けられる Markdown スニペットが含まれます。
{
"badgeUrl": "https://img.shields.io/endpoint?url=https://timestampgit.dev/api/statusSummary/your-org/your-repo",
"markdown": "[](https://timestampgit.dev/status/your-org/your-repo)"
}
Markdown を README.md に貼り付けます。バッジは公開ステータスページにリンクしているため、誰でもクリックして最新のタイムスタンプを検証できます。
3. 暗号学的検証ページを実行する
検証ページでは、特定の日の Merkle チェーンをステップバイステップで確認できます。
https://timestampgit.dev/verification/{user}/{repo}/{date}
たとえば、2026 年 8 月 22 日にタイムスタンプされたリポジトリを検証するには、次のようにします。
https://timestampgit.dev/verification/your-org/your-repo/2026-08-22
このページでは、多層の Merkle チェーン検証が表示されます。すべての暗号学的計算はブラウザ内でローカルに実行され、Timestamp GIT が検証内容を確認することはありません。
生の Merkle チェーンデータをプログラムで扱いたい場合は、公開検証エンドポイントを使用します。
curl https://timestampgit.dev/api/verify/your-org/your-repo/2026-08-22
4. PDF 証明書をダウンロードする
会議、法的紛争、コンプライアンスファイルでは、ポータブルな文書が必要になることがよくあります。Timestamp GIT は特定の日付の PDF 証明書を生成できます。
ステータスページからダウンロードオプションを使用するか、レポートエンドポイントを直接呼び出します。
curl -o timestamp-proof-2026-08-22.pdf \
https://timestampgit.dev/api/report/your-org/your-repo/2026-08-22
PDF にはその日付の証明の詳細が含まれ、人間が確認しやすい形式になっています。
5. 自動化のために公開 API を使用する
検証を CI/CD チェック、内部ダッシュボード、コンプライアンススクリプトに統合したい場合、Timestamp GIT は公開ステータスエンドポイントを公開しています。
最後にアンカーされた Bitcoin ブロックを確認します。
curl https://timestampgit.dev/api/statusLast/your-org/your-repo
コミット済みおよびスタンプ済みのコミットの総数を確認します。
curl https://timestampgit.dev/api/statusCount/your-org/your-repo
Shields.io が利用できる複合サマリーを確認します。
curl https://timestampgit.dev/api/statusSummary/your-org/your-repo
典型的な statusSummary レスポンスは次のようになります。
{
"schemaVersion": 1,
"label": "timestamped",
"message": "42 commits",
"color": "brightgreen"
}
検証結果とエッジケースの解釈
検証が成功したということは、次のチェーンが成立したことを意味します。
- コミットハッシュがリポジトリの日次マニフェストに含まれていた。
- マニフェストが Merkle ツリーに含まれていた。
- Merkle ルートが Bitcoin トランザクションにアンカーされた。
- そのトランザクションが Bitcoin ブロックで確定された。
平たく言えば、コミットハッシュは Bitcoin ブロックの時刻より前に存在していたということです。そのブロック時刻が先行技術の主張の上限となります。
保留中の証明と確定遅延
Timestamp GIT は毎晩コミットをバッチ処理します。バッチが作成された後、Bitcoin ネットワークがアンカートランザクションを確定する必要があります。通常、これには数時間かかります。今日作成されたコミットは、翌日まで完全に検証済みとして表示されない場合があります。
ステータスページが役立ちます。最も古いアンカー日付と日次の規則性が表示されるため、リポジトリがスケジュールどおりか、特定の日がまだ保留中かを確認できます。
プライベートリポジトリと HMAC アクセス
プライベートリポジトリの検証リンクには暗号化された HMAC が含まれています。この HMAC は Timestamp GIT サーバーインスタンスに固有で、許可されていないユーザーがプライベートステータス情報を閲覧するのを防ぎます。
GitHub App 自体もプライベートリポジトリにアクセスするための適切な権限が必要です。その権限がなければ、Timestamp GIT はそもそもコミットハッシュを読み取ることができません。
Timestamp GIT からの独立性
.ots レシートファイルは Timestamp GIT のサーバーに紐付いていません。OpenTimestamps プロトコルに基づいて構築され、Bitcoin にアンカーされた証明です。Timestamp GIT が消滅しても、標準の OpenTimestamps ツールを使用して Bitcoin ブロックチェーンに対してレシートを検証できます。
リポジトリの全タイムスタンプの完全な台帳については、監査 CSV をダウンロードします。
curl -o audit-ledger.csv https://timestampgit.dev/api/audit/your-org/your-repo
この CSV は、法的証拠開示、内部監査、継続的なタイムスタンプ履歴の提示に役立ちます。
FAQ
ソフトウェアをインストールせずに Git コミットタイムスタンプを検証できますか?
はい。Timestamp GIT は Web ベースの検証ページを提供しており、すべての暗号学的チェックがブラウザ内でローカルに実行されます。公開ステータスページや埋め込みバッジを使用して、インストールなしで検証ステータスを確認することもできます。
Timestamp GIT が廃業したらどうなりますか?タイムスタンプは検証できますか?
もちろんです。証明は OpenTimestamps プロトコルに基づいており、Bitcoin ブロックチェーンにアンカーされています。.ots レシートファイルをダウンロードし、標準の OpenTimestamps ツールを使用して Bitcoin ブロックチェーンに対して検証できます。Timestamp GIT から独立しています。
コミットが検証可能になるまでどのくらいかかりますか?
Timestamp GIT は毎日コミットをバッチ処理し、Bitcoin ブロックチェーンにアンカーします。確定には通常、日次バッチの処理後数時間かかります。ステータスページに最も古いアンカー日付と日次の規則性が表示されます。
プライベートリポジトリのタイムスタンプを検証できますか?
はい、ただしアクセスは制限されています。プライベートリポジトリの検証リンクには暗号化された HMAC が含まれており、許可されたユーザーのみがステータスを表示できます。GitHub App はプライベートリポジトリにアクセスするための適切な権限が必要です。
GitHub App を削除したらどうなりますか?
すでに生成された .ots レシートとマニフェストはリポジトリに残り、独立して検証できます。新しいコミットは、GitHub App を再インストールするまで自動的にタイムスタンプされません。
結論: 信頼せよ、されど検証せよ
検証こそが、タイムスタンプを証明に変える場所です。Timestamp GIT は、それらの証明を作成する運用上の負担を取り除きながら、確認するためのシンプルで開発者に優しい方法を提供します。公開ステータスページ、README バッジ、ブラウザベースの Merkle チェーンビューア、PDF 証明書、監査 CSV、公開 API です。
生の OpenTimestamps コマンドを学んだり、Bitcoin ノードを実行したり、レシートを手動で管理したりする必要はありません。GitHub App がパイプラインを処理し、検証ページが残りを処理します。しかし、基になる証明は標準的で Bitcoin にアンカーされているため、ロックインされることはありません。
まだタイムスタンプを始めていないなら、最速の方法は Timestamp GIT GitHub App をインストールし、リポジトリを接続して、最初の夜間アンカーが現れるのを確認することです。エアギャップまたはセルフホストのセットアップが必要な場合、Timestamp GIT は期間限定のデモライセンス付き Docker イメージとしても利用可能です。
https://timestampgit.dev で始めましょう。
関連記事
- 特許トロールからソフトウェアをタイムスタンプで守る
- OpenTimestamps vs Timestamp GIT: コードに適しているのはどちらか?
- 自動 Git コミットタイムスタンプを数分でセットアップする