はじめに
Label 309 とは何か、何を保証する原則なのか、そしてサーバーを信頼することなく誰でもレコードを検証できる仕組みについて説明します。
Label 309 は、Cardano ブロックチェーン上で 存在証明(Proof of Existence, PoE) を実現するためのオープン標準です。発行者はコンテンツの暗号学的ハッシュ値を計算し、メタデータラベル 309 のもとで Cardano トランザクションにそれを記録します。その瞬間から、トランザクション参照を持つ者は誰でも、そのコンテンツがブロックの時刻以前に存在していたことを証明できます。必要なのは公開されたブロックチェーンだけで、発行者やドメイン、サーバーを信頼する必要は一切ありません。
この標準は、その中核をあえて小さく保っています。コンテンツのハッシュ値それ自体が主張であり、それ以外はすべて、その主張に付随する任意のメタデータにすぎません。この中核の上に、任意の著作者性を示す署名と、特定の受信者に宛てて暗号化された(「封緘された」)ペイロードを定義していますが、いずれも信頼できる仲介者を必要とすることはありません。
5 つの不変条件
Label 309 のすべては、譲れない 5 つの原則から導かれます。
- コンテンツ第一(コンテンツ・ファースト)。 コンテンツのハッシュ値が主たる主張であり、それ以外のフィールドはすべて、その主張に付随するメタデータです。
- 発行者非依存。 どのウォレットでもレコードを発行できます。検証者が発行者を信頼することは決してありません。
- ストレージ非依存。 ストレージ URI は任意かつ複数指定できるリスト(
ar://、ipfs://)です。ハッシュ値のみのレコードも完全に有効です。 - 単独で検証可能。 検証者に必要なのは、トランザクションのメタデータと、必要に応じてコンテンツのバイト列、そして公開されたブロックチェーンエクスプローラーだけです。発行者のサーバーは一切必要ありません。
- アルゴリズム俊敏性(アルゴリズムを差し替え可能)。 ハッシュ、AEAD、KEM、KDF、署名はいずれも、拡張可能なレジストリに登録された名前付きの識別子を参照します。ポスト量子アルゴリズムへの移行は追加によって行われ、互換性を壊す変更にはなりません。
適合プロファイル
レコードは、単なるタイムスタンプから、受信者に宛てて暗号化されたペイロードまで、階層化された 4 つのプロファイルのいずれかで機能します。各プロファイルは、その一つ上のプロファイルの厳密な上位集合です。
| プロファイル | 追加されるもの | 答える問い |
|---|---|---|
| core | ラベル 309 のもとに置かれたコンテンツのハッシュ値 | 「このコンテンツは時刻 T までに存在していた」 |
| signed | 1 つ以上の COSE_Sign1 レコード署名 | 「……そしてこの鍵がそれを保証する」 |
| sealed | 暗号化されたペイロード(パスフレーズまたは受信者) | 「……秘匿されたまま、タイムスタンプが付与される」 |
| recipient-sealed | 受信者ごとの鍵スロット(X25519 または X-Wing) | 「……特定の鍵に宛てて配信され、私的に保持される」 |
著作者性と暗号化は常に任意です。core しか理解しない検証者でも、どのレコードについてもタイムスタンプの主張を検証できます。
検証の概要
Label 309 は 3 つの検証者の役割を定義します。それぞれが一つ前の役割を厳密に拡張したものです。
- 構造バリデーター — レコードのバイト列に対する純粋関数です。ネットワーク通信も、署名の検証も、復号も行いません。レコードがスキーマと標準の規則に照らして正しく構成されているかを確認するだけです。
- 公開検証者 — 公開されたエクスプローラーからトランザクションを取得し、構造の検証を実行し、レコードがチェーン上に記録されていることを確認したうえで、著作者性を示す署名を検証します。復号は行いません。
- 受信者検証者 — 公開検証者に加えて秘密鍵を保持し、自分宛てに封緘されたペイロードを復号して、平文のハッシュ値を再計算します。
いずれの役割も公開データと検証者自身が選んだエクスプローラーだけで動作するため、検証が発行者のインフラに依存することは決してありません。
中核となる性質
Label 309 の証明は、誰でも自分自身で確認できるものです。トランザクション参照と、コンテンツに関する主張であれば元のバイト列さえあれば、準拠した実装はいずれも、公開されたチェーンのみから同じ判定に到達します。
本仕様書の構成
以降の各章では、ワイヤーフォーマット(ラベル 309 のもとに置かれるレコード)、アルゴリズムのレジストリ、暗号鍵モデル、著作者性を示す署名、封緘(暗号化)配信、検証パイプラインとそのエラーカタログ、セキュリティモデル、そして言語をまたぐ準拠の契約を定義します。各ページは自己完結しており、実装者が必要とする名前付きの定数と規則を明示しています。