CLI をスキップ: Git コミットにタイムスタンプを付けるより良い方法
手動 OpenTimestamps の代替手段を探しているなら、その決断はおそらく暗号技術というよりも運用の問題です。OpenTimestamps プロトコルは難しい部分を担ってくれます。つまり、ハッシュを Bitcoin ブロックチェーンに固定し、後から特定の時点にデータが存在していたことを証明できるようにするのです。本当の問題は、その証明をめぐるワークフローを誰が管理するかです。
手動タイムスタンプには、コマンドラインツール、スクリプト、スケジュール管理、レシートの保管、再現可能な検証プロセスが必要です。Timestamp GIT は逆のアプローチを取ります。OpenTimestamps プロトコルを完全に自動化し、隠蔽するマネージド SaaS 兼 GitHub App です。GitHub App を一度インストールしてリポジトリを接続すれば、毎晩すべてのコミットが自動的に Bitcoin に固定されます。
この記事では両方の道を比較し、開発ワークフロー、チーム、コンプライアンス要件に合った選択ができるようにします。
選択肢: 手動 OpenTimestamps とマネージド自動化
核となる購入判断はシンプルです。タイムスタンプパイプラインを自分で運用したいのか、それとも存在証明を通常の Git ワークフローの副次的効果として発生させたいのか。
手動 OpenTimestamps は機能させることが可能です。OpenTimestamps クライアントをインストールし、コミットハッシュに対してタイムスタンプ操作を実行し、生成された .ots レシートファイルを保存し、フォローアップのカレンダー認証をスケジュールし、最終的にそれらのレシートを Bitcoin ブロックチェーンに対して検証します。このワークフローは強力ですが、忘れやすいものでもあります。cron ジョブのスキップ、レシートファイルの紛失、古くなったローカルクライアントは、本来継続的であるべき証拠の連鎖にギャップを生み出す可能性があります。
Timestamp GIT は、そのような仕組みを維持したくない開発者のために作られています。Git コミットハッシュのみを読み取り、ハッシュを毎日バッチ処理し、OpenTimestamps 証明を作成し、Merkle ルートを Bitcoin に固定し、レシートファイルをリポジトリの専用ブランチにプッシュバックします。暗号的な強度は同じであり、運用上の負担が取り除かれます。
現状: 開発者が今日 Git コミットにタイムスタンプを付ける方法
ソフトウェアコミットの先行技術を確立しようとするとき、ほとんどのチームは 3 つのグループのいずれかに該当します。
手動 OpenTimestamps
従来の方法は、OpenTimestamps ツールをローカルにインストールし、コミットハッシュに対して自分で実行することです。一般的には次のことを意味します。
- 開発マシンまたはサーバーに OpenTimestamps クライアントをインストールして維持する
- 個々のコミットハッシュに対してタイムスタンプ操作を実行する
.otsレシートファイルを追跡する- Bitcoin ネットワークがアンカーを承認するのを待つ
- 後で各証明を検証する(多くの場合コマンドラインから)
このアプローチは無料で完全な制御が可能ですが、GitHub ネイティブの自動化はありません。自分で覚えておくか、スクリプト化するか、独自のスケジューリングを構築する必要があります。
サードパーティのタイムスタンプサービス
一部のサービスは、データのタイムスタンプ用に API や Web インターフェースを提供しています。これらは手動の負担の一部を取り除くことができますが、Git をネイティブに扱えないことがよくあります。つまり、すべてのコミットを自動的に保護したい場合は、依然としてカスタム統合コードが必要です。一部のサービスでは、ストレージや検証モデルを信頼する必要もあります。
Timestamp GIT
Timestamp GIT は、OpenTimestamps プロトコルを完全に自動化し、隠蔽するマネージド SaaS + GitHub App です。プロトコルクライアントをインストールしたり、カスタム統合コードを書いたりする代わりに、GitHub App を一度インストールし、監視したいリポジトリを選択します。
その時点から、Timestamp GIT は次のことを行います。
- 新しいコミットを自動的に検出する
- コミットハッシュのみを抽出する
- 毎晩それらをバッチ処理する
- 日次のハッシュから Merkle ツリーを構築する
- 公開 OTS カレンダーを使用して OpenTimestamps 証明を作成する
- Merkle ルートを Bitcoin ブロックチェーンに固定する
- マニフェストと
.otsレシートファイルをタイムスタンプブランチまたはシャドウリポジトリにプッシュバックする
プロトコルコマンドを実行したり、レシートファイルを手動で管理したり、タイムスタンプジョブをトリガーすることを覚えておく必要はありません。GitHub App が自動的に行います。
エアギャップまたはセルフホストの要件については、Timestamp GIT は Docker イメージとしても利用可能です。セルフホストオプションについては、この記事の最後にある関連ガイドで説明しています。
選択基準: タイムスタンプソリューションを選ぶ際に重要なこと
手動 OpenTimestamps とマネージド代替手段を比較するときは、実際の採用に影響する 5 つの基準に焦点を当ててください。
セットアップと継続的なメンテナンスの容易さ
手動 OpenTimestamps は、インストールと設定から始まります。その後、スクリプト、スケジュール、保存場所、パイプラインの維持責任者が必要です。時間が経つにつれて、依存関係の更新やマシンの変更が摩擦を増やします。
Timestamp GIT は GitHub App のインストールから始まります。リポジトリを選択すれば、ローカル設定なしで毎晩のアンカリングパイプラインが開始されます。開発マシンにインストールするものはなく、証明の配信は自動的に行われます。
自動化
重要な問題は、すべてのコミットがタイムスタンプされるかどうかです。手動 OpenTimestamps では、それは自分自身の自動化に依存します。それがなければ、選択したコミットのみを保護するか、忙しい時期に忘れてしまう可能性があります。
Timestamp GIT はすべてのコミットを自動的に監視します。リポジトリが接続されると、新しいコミットはキューに入れられ、毎晩固定されます。Bitcoin ブロックチェーンでの承認には数時間、通常は約 3 時間かかるため、証明の書き込みは当然コミット自体より遅れます。
セキュリティとゼロ知識
手動 OpenTimestamps はローカルで実行されるため、ソースコードがマシンから出ることはありません。それは良いことですが、プロセスは依然としてローカルの運用規律に依存します。
Timestamp GIT はソースコードを見たり、コピーしたり、保存したりしません。Git ハッシュを数学的にスタンプするだけです。標準モードでは、GitHub App は監視対象リポジトリの HEAD コミットハッシュのみを読み取ります。Enterprise ZK モードでは、GitHub Action がユーザーの環境で実行され、コミットハッシュのみを Timestamp GIT API にプッシュします。つまり、ソースがインフラストラクチャから出ることは一切ありません。
既存のワークフローとの統合
手動 OpenTimestamps は、手動で保存して提示する必要がある .ots ファイルを生成します。単独のエンジニアには問題ありませんが、チームのワークフローにはうまく適合しません。
Timestamp GIT は GitHub と直接統合されます。以下が得られます。
- 専用ブランチまたはシャドウリポジトリへの自動証明配信
- README ファイル用の埋め込み可能な検証バッジ
- 各リポジトリの公開ステータスダッシュボード
- ダウンロード可能な監査 CSV ファイル
- 特定の日付の PDF 証明書
- ステータス、検証、リポジトリ管理用の REST API
価格とスケーラビリティ
手動 OpenTimestamps はソフトウェアコストの面では無料ですが、エンジニアリング時間を消費します。手動パイプラインのスクリプト作成、監視、トラブルシューティングは、マネージドプランの価格よりも高くつく可能性があります。
Timestamp GIT の価格は、公開リポジトリ向けの無料ティアから始まります。Pro Agency はプライベートリポジトリ向けに月額 $49、Enterprise ZK は GitHub Actions とゼロ知識ハッシュプッシュ付きで月額 $199 です。
並べて比較: 手動 OpenTimestamps と Timestamp GIT
どちらのアプローチも、同じ基盤となる OpenTimestamps プロトコルと Bitcoin アンカリングに依存しています。変わるのは使いやすさです。
| 基準 | 手動 OpenTimestamps | Timestamp GIT |
|---|---|---|
| セットアップ時間 | 高い: クライアントのインストール、環境設定、スクリプト作成が必要 | 即時: GitHub App をインストールしてリポジトリを選択 |
| 自動化 | カスタム自動化を構築しない限り、コミットごとに手動 | 完全自動の毎晩のアンカリング |
| ソースコードへのアクセス | ローカルのみ。環境を自分で制御 | ゼロ知識: ハッシュのみ、ソースコードは決して扱わない |
| 検証方法 | .ots ファイルと Bitcoin データによるローカル検証 |
Web 検証ページ、バッジ、PDF レポート、監査 CSV |
| メンテナンス | 継続的: スクリプト、レシート、バックアップ、依存関係の更新 | マネージドサービスの場合はゼロメンテナンス |
| コスト | 無料だが時間がかかる | 公開リポジトリは無料。Pro $49/月、Enterprise ZK $199/月 |
| コンプライアンス対応 | DIY の証拠収集 | 法廷対応の PDF 証明書と監査台帳 |
重要なポイントは、Timestamp GIT がより弱いタイムスタンプを作成するわけではないということです。OpenTimestamps を介して Bitcoin に固定された SHA-256 フィンガープリントは、証明を手動で作成したか GitHub App を通じて作成したかに関係なく、同じ数学的セキュリティを提供します。違いは、Timestamp GIT が何かを実行することを覚えておかなくても継続的なカバレッジを提供することです。
ゼロ知識の主張にとって、小さなしかし重要な詳細があります。GitHub App が必要とするのは、監視対象リポジトリの HEAD コミットハッシュだけです。その値は、どの Git チェックアウトでも次のように表示されます。
git rev-parse HEAD
# a1b2c3d4e5f67890abcdef1234567890abcdef12
そのハッシュが、標準モードがソースリポジトリから読み取る唯一のデータです。それは暗号的なフィンガープリントであり、作業内容のコピーではありません。
結論: どちらを選ぶべきか
手動 OpenTimestamps を選ぶべき場合
- コマンドラインツールに慣れているソロ開発者である
- 特定のマイルストーンに対して時折タイムスタンプが必要なだけである
- サードパーティサービスなしで完全なローカル制御が必要である
- レシートの保存と検証を永久に自分で所有する意思がある
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
docker compose pull
docker compose up -d
docker compose logs -f timestampgit
このオプションは、Timestamp GIT の自動化が必要だが、マネージドクラウドサービスを使用できない場合に役立ちます。
Timestamp GIT(マネージド代替手段)の始め方
マネージドパスは意図的にシンプルです。
- Timestamp GIT GitHub App をインストールする
- 監視したいリポジトリを選択する
- 毎晩のアンカリングプロセスを自動的に開始させる
最初の証明が書き込まれた後、README に検証バッジを追加し、公開ステータスページをステークホルダーと共有できます。ステータスページには、証明の存続期間、最古のアンカー日、日次の規則性、Bitcoin ブロックとトランザクションデータ、カレンダーヒートマップが表示されます。特定の日付の監査 CSV と PDF 証明書をダウンロードすることもできます。
詳細なセットアップ手順については、How to Cryptographically Timestamp Git Commits (Without CLI Tools) を参照してください。無料の公開リポジトリティアを含むプランの詳細については、Timestamp GIT Pricing: Plans for Every Developer を参照してください。
Timestamp GIT の無料ティアから始めて、公開リポジトリを接続し、自動化されたワークフローが動作する様子を確認してください。
FAQ
Timestamp GIT は手動で OpenTimestamps を実行するのと同じくらい安全ですか?
はい。Timestamp GIT は同じ OpenTimestamps プロトコルを使用し、コミットハッシュを Bitcoin ブロックチェーンに固定します。暗号的な証明は同一です。違いは、Timestamp GIT がプロセスを自動化し、レシートを管理してくれることです。
Timestamp GIT は私のソースコードを見ますか?
いいえ。Timestamp GIT は Git コミットハッシュのみを処理し、実際のコードは決して扱いません。Enterprise ZK モードでは、ハッシュは GitHub Action を介してユーザーの環境からプッシュされるため、ソースがインフラストラクチャから出ることはありません。
Timestamp GIT のサーバーに依存せずにタイムスタンプを検証できますか?
はい。.ots レシートファイルをダウンロードし、標準の OpenTimestamps ツールを使用して Bitcoin ブロックチェーンに対して独立して検証できます。Timestamp GIT は、便宜上、Web ベースの検証ページと PDF 証明書も提供しています。
プライベートリポジトリのコミットにタイムスタンプを付ける必要がある場合はどうすればよいですか?
Timestamp GIT は、有料プラン(Pro Agency と Enterprise ZK)でプライベートリポジトリをサポートしています。標準モードでは GitHub App がソースリポジトリへの読み取りアクセスを必要としますが、Enterprise ZK モードでは GitHub Action を使用してコミットハッシュのみをプッシュするため、それさえも不要になります。
まとめ
手動 OpenTimestamps は正当なものですが、証明パイプラインの運用を要求します。Timestamp GIT は、数分でインストールでき、毎晩自動的に実行されるマネージド GitHub App を通じて、同じ暗号的な保証を提供します。運用上のオーバーヘッドを追加することなく先行技術の証明を必要とするチームや企業にとって、手動 OpenTimestamps よりも実用的な代替手段です。
チームが実際にソフトウェアを出荷する方法に合ったワークフローを選択してください。すべてのコミットに対して自動的で継続的かつ法廷対応の証明が必要な場合は、リポジトリを接続し、毎晩のアンカリングパイプラインに残りを任せましょう。
関連記事
- Self-Hosted Git Timestamping with Docker: A Guide
- How to Cryptographically Timestamp Git Commits (Without CLI Tools)
- Timestamp GIT Pricing: Plans for Every Developer