約11分で読めます
存在証明と OpenTimestamps:あなたの仕事に合うタイムスタンプはどちらか
OpenTimestamps は、Bitcoin にアンカーされたシンプルなタイムスタンプに優れています。Label 309 はそこへ署名・封印・受信者・Merkle バッチ処理を備えた Cardano ネイティブの証明レコードを加えます。選び方を解説します。

公開ブロックチェーンに対して誰でも検証できる、コンパクトで持ち運び可能なタイムスタンプだけが必要なら、OpenTimestamps は用途を絞った優れた選択肢です。一方、署名、封印(暗号化)されたペイロード、受信者への配信、コンテンツアドレス指定ストレージへのポインター、Merkle バッチ処理まで載せられる、より豊かなオンチェーンの証明レコードが必要なら、Label 309 がそのために作られています。両者は中核となる主張(「これらのバイト列は時刻 T までに存在していた」)では重なり合い、その周辺のすべてで分かれます。
どちらも、企業のサーバーを信頼することなく、ある時刻までに存在していたことを証明します。違いは形です。OpenTimestamps は小さな外部証明ファイルを生成し、Label 309 は Cardano 上に構造化されたレコードを公開します。この記事では、それぞれがどこに適しているのかを整理します。
OpenTimestamps とは
OpenTimestamps は、ブロックチェーンによるタイムスタンプのためのプロトコルおよびツール群で、最も一般的には Bitcoin にアンカーされます。考え方はシンプルです。データをハッシュ化し、タイムスタンプの証明を構築すると、そのコミットメントが最終的に Bitcoin のトランザクションに収まります。それ以降、データがそのブロックの時刻より前に存在していたことを、誰でも確認できます。
コストを抑えるため、OpenTimestamps は カレンダーサーバー を使い、多数のユーザーのハッシュを単一の Bitcoin トランザクションに集約します。これにより、ファイルごとにトランザクションを 1 つ用意する必要はありません。クライアントは、データのそばに添えて持ち運べる .ots 証明ファイルを生成します。
信頼モデルが表れるのは検証の場面です。.ots 証明を元のファイルと Bitcoin チェーンのビューに照らして検証し、その過程に信頼すべきサーバーは介在しません。公式クライアントは、ローカルでの検証には Bitcoin Core ノードが必要であり、プルーニングされたノードでも十分だと述べています。
これは、最小限で独立に検証できるタイムスタンプのための、洗練され成熟した設計です。
Label 309 とは
Label 309 は、Cardano 上の存在証明(Proof of Existence)レコードのための、オープンでベンダー中立な標準です。レコードは Cardano トランザクションのメタデータ内、メタデータラベル 309 の下に置かれ、そのトランザクションのブロック時刻が、コミットされたバイト列がその瞬間までに存在していたことの証人となります。この標準こそが永続する成果物であり、CardanoWall の Web アプリ、コマンドラインツール、SDK は、その下流にある参照実装です。
この標準は Cardano の CIP プロセスに提出され、Metadata カテゴリーの提案として CIP エディターによる審査を受けています(公開中のプルリクエスト は現在、暫定的な番号の下に表示されています)。なお、オンチェーンの識別子であるメタデータラベル 309 は、最終的に割り当てられる CIP 番号とは別物です。
Label 309 の証明を検証するには、誰でも公開エクスプローラーから Cardano トランザクションを取得し、正規のレコードを再構成し、その構造を検証し、確認深度を確認し、署名があれば検証し、コミットされたコンテンツのハッシュまたは Merkle 包含証明を再計算します。最も単純なレベルでは、OpenTimestamps と同じ問いに答えます。しかしこれは単一の証明ファイルではありません。複数の証明レイヤーを一度に載せられるように設計された、オンチェーンのレコード形式です。より詳しい解説は、Label 309 の仕組み と ブロックチェーンに実際に載るもの をご覧ください。
両者の本当の違いは何か
OpenTimestamps はタイムスタンプ専用に作られています。Label 309 は、完全な存在証明レコードのために作られています。
OpenTimestamps がより適するのは、次のような問いのときです。
- このファイルは、Bitcoin が証する時刻より前に存在していたか
- 小さな証明ファイルを保管しておき、後から検証できるか
- ファイルの中身を明かさずにタイムスタンプを付与できるか
- カレンダーサーバーが多数のリクエストをまとめ、ファイルごとに支払わずに済むか
Label 309 がより適するのは、次のような問いのときです。
- このファイル、マニフェスト、または Merkle ルートは、この Cardano のブロック時刻までに存在していたか
- 特定のアイデンティティ鍵がレコードに署名したか
- ファイルそのものを封印(暗号化)し、後から復元できるか
- レコードを特定の受信者向けに暗号化できるか
- 1 つのレコードで、数千・数百万のリーフを一度にコミットできるか
- CardanoWall のアカウントも、当社サーバーへのアクセスもなしに、誰でも検証できるか
どちらも、公開された合意形成に根ざした証明システムです。その形、そしてそれが解き放つワークフローが、異なります。
OpenTimestamps が特に得意とすることは何か
OpenTimestamps が最も力を発揮するのは、外部証明オブジェクトを中心に据えた、最小限で公開のタイムスタンプです。ファイルにタイムスタンプを付与し、.ots 証明をそのそばに保管し、後でコミットメントが Bitcoin 上で確認されたら証明をアップグレードします。カレンダーモデルにより、多数のユーザーがアンカーのコストを分担できます。
健全な「狭さ」も備えています。機密配信システムにも、メディアの来歴標準にも、ソフトウェア署名のエコシステムにも、法的な公証にもなろうとしません。タイムスタンプを付与する、その 1 つの仕事をきれいにこなします。実戦で鍛えられたツールから Bitcoin に裏打ちされたタイムスタンプを得たい人にとって、その絞り込みはむしろ長所です。
Label 309 はタイムスタンプの上に何を加えるのか
Label 309 は、タイムスタンプという主張のまわりに構造を巻きます。単一のレコードには、次のものを含められます。
- 項目ごとに 1 つ以上のコンテンツハッシュ
- コンテンツアドレス指定ストレージへのポインター(Arweave 用の
ar://、IPFS 用のipfs://) - レコード全体にかかる、任意のレコードレベルの署名
- 封印された項目のための暗号化エンベロープ。暗号文はオフチェーンに保持されます
- 選んだ受信者にコンテンツ鍵をラップする、受信者ごとの鍵スロット
- 1 つのオンチェーンのルートを、任意に大きなオフチェーンのリーフリストに結び付ける Merkle コミットメント
- 以前のレコードを指す
supersedesポインター(追記専用であり、以前のレコードを失効させることはありません) - 将来のコンパニオン仕様のために予約された、名前空間付きの拡張キー
これは、ワークフローが「タイムスタンプの証明ファイルがあります」以上のものを必要とした途端に効いてきます。たとえば送信者は、ファイルを封印し、受信者宛てに指定し、暗号化された暗号文をコンテンツアドレス指定の URI に公開しながら、それでも公開レコードを独立に検証可能なまま保てます。ハッシュ・署名・封印・共有 をご覧ください。大量処理を行う AI サービスは、多数の生成物の代理となる 1 つの Merkle ルートを公開できますし、CI/CD パイプラインは、マニフェスト一式全体をカバーするリリース証跡レコードに署名できます。数千ファイルを 1 レコードで をご覧ください。こうしたワークフローには、素の .ots 証明が運ぶよりも豊かなレコードが必要です。
より分散しているのはどちらか
ここはスローガンを掲げる場ではありません。だからこそ、それぞれのモデルが何を信頼するよう求めるのかを正確に述べます。
OpenTimestamps は Bitcoin にアンカーされます。そのプルーフ・オブ・ワークの履歴は、タイムスタンプにとって非常に強固な基盤です。証明は、必要とするデータがそろえば独立に検証されます。完全な .ots 証明はローカルの Bitcoin ノードに対して完全に検証できますが、不完全なものは、ブロックヘッダーへの経路を供給してもらうためにカレンダーサーバーをなお必要とします。
Label 309 は Cardano にアンカーされます。その検証が信頼するのは、公開された Cardano チェーン、レコードのバイト列、そしてコンテンツハッシュであり、それ以外には何もありません。中核の証明に関して、CardanoWall や、発行者が運用するいかなるサーバーへの信頼も要求しません。検証者が必要とするのは、トランザクション参照、(任意で)コンテンツのバイト列、そして自分で選んだ公開エクスプローラーだけです。
抽象的にどちらが「より分散している」というものではありません。実務的な問いは、どのチェーン、ツール、証明の形、コストモデル、エコシステムが自分のワークフローに合うかです。
プライバシーはどうか。どちらかがファイルを漏らすのか
どちらも非公開のファイルを公開せずにタイムスタンプを付与でき、どちらにも正直に言えば限界があります。
OpenTimestamps のカレンダーサーバーが受け取るのは、平文ファイルではなくコミットメントです。とはいえプロジェクト自身が、タイムスタンプの付与はメタデータを漏らすと率直に認めています。短い間隔で複数のタイムスタンプを作成すると、攻撃者がそれらを結び付けられますし、1 つのコマンドでファイルをまとめると、ほぼ同一のコミットメント操作が生じて共通の作成者を示唆しますし、カレンダーの REST API は現時点でプライバシーを提供しようとはしていません。ノンスはカレンダーが何にタイムスタンプを付与したかを学習するのを防ぎますが、その周辺のメタデータは隠されません。
Label 309 は、ハッシュのみの証明では平文をオフチェーンに保ち、封印された証明では平文を暗号化して、暗号文だけをコンテンツアドレス指定の URI に保存します。設計上、チェーンは受信者の公開鍵を一切明かしません。受信者はスロットの試行復号(trial-decrypt)に成功して初めてメッセージを認識するため、読み取れる宛先フィールドは存在しないのです。それでも隠せないのは、タイミング、手数料の支払い、ゲートウェイへのアクセス、アカウントの挙動、そしてありふれた運用上のミスです。封印付きレコードは鍵の保有者だけが平文を読めるようにしますが、匿名性を保証するものではなく、受信者は復号した後でいつでも平文を漏らすことができます。
どちらのシステムでも、プライバシーはワークフロー全体の性質であって、証明形式だけの性質ではありません。
両方を併用できるか
できます。そして重要度の高いレコードでは、その価値があります。独立した 2 つの公開タイミング経路を得るには、同じマニフェストを両方でアンカーします。
- リリース、データセット、メディア、または証跡のマニフェストを作成します。
- マニフェストをハッシュ化します。
- そのハッシュまたはファイルに対して OpenTimestamps の証明を作成します。
- 同じマニフェスト、またはそれを含む Merkle ルートに対して、Label 309 の証明を公開します。
- 両方の証明参照を、元の証跡とともに保管します。
これにより、Bitcoin 寄りの経路が 1 つ、Cardano ネイティブで Label 309 に構造化された経路が 1 つ得られます。追加の冗長性が運用上の手間に見合うときは両方を使ってください。たいていの仕事では、片方で十分です。
OpenTimestamps を選ぶべきはどんなときか
仕事が素のタイムスタンプ付与であり、Bitcoin にアンカーされた証明がまさに望むものであるときは、OpenTimestamps を選んでください。次のような用途によく合います。
- 単純なファイルのタイムスタンプ
- Git や PGP のタイムスタンプワークフロー
- すでに Bitcoin による検証を運用し、信頼しているチーム
- 外部の
.ots証明ファイルを持ち運ぶことを好むワークフロー - より豊かなオンチェーンのレコードを必要としない最小限のコミットメント
意図的に絞り込まれており、その絞り込みこそが要点です。
Label 309 を選ぶべきはどんなときか
証明レコードそれ自体がタイムスタンプ以上のものを必要とするときは、Label 309 を選んでください。次のような用途によく合います。
- Cardano ネイティブの存在証明
- 著作者性を証明に結び付ける、署名付きレコード
- チェーン上にコミットされた、封印(暗号化)されたファイル
- 特定の受信者への機密配信
- 大規模または反復的なセットのための Merkle バッチ処理
- コンテンツアドレス指定ストレージへのポインター
- CardanoWall の Web、API、CLI、SDK、またはセルフホストのゲートウェイ経路
- メタデータラベル
309の下で共有された証明形式を求めるアプリケーションプロトコル
全体が github.com/cardanowall でオープンソースとして公開されているため、レコードの読み書きに特定ベンダーのツールへ縛られることは決してありません。Label 309 はオープンソースです と レコードを自分で検証する方法 をご覧ください。
どちらのシステムも証明しないことは何か
どちらも、真実、所有権、著作者性、適法性、品質を、それ単独で証明することはありません。OpenTimestamps は、タイムスタンプ付きのコミットメントを証明します。Label 309 は、タイムスタンプ付きのコミットメントに加えて、レコードが運ぶ任意のレイヤーを証明します。いずれにせよ、証明が示すのは、まさにそのバイト列が公開された時刻までに存在していたことであって、誰が正しいか、誰が何を所有しているか、コンテンツが適法かどうかではありません。その周辺の主張には、なお署名、アイデンティティの文脈、プロセスの証跡、法的分析、そして人間の判断が必要です。これについては 証明が証明しないこと で詳しく解きほぐします。
要するに
OpenTimestamps は、強力で、用途を絞った、Bitcoin にアンカーされたタイムスタンプシステムです。Label 309 は、署名、封印による保全、受信者への配信、コンテンツアドレス指定ストレージ、Merkle バッチ処理、そして将来の拡張のための余地を備えた、Cardano ネイティブの存在証明レコード形式です。実際に答える必要のある問いに、その証明の形が合うほうを選んでください。冗長性に価値があるときは、両方を使ってください。
より広い比較対象がほしいときは、存在証明とタイムスタンプ局 と、基礎となる 存在証明とは何か をご覧ください。
さらに読む
- OpenTimestamps:opentimestamps.org
- オープン標準の Label 309:label309.org
- Label 309 の CIP 提出:cardano-foundation/CIPs PR #1205
- オープンソースの SDK と CLI:github.com/cardanowall