やさしく解説 · 全7部中 第5部
だれが読めて、何がプライベートのままか

世界中にではなく、ほんの数人にだけ何かを証明したいことがあります。まだ公表する準備のできていない発見の共著者たち。秘密の契約を交わす当事者。秘伝のレシピを託す友人。それでも、ブロックチェーンがもたらす、恒久的で改ざんを検知できるタイムスタンプはほしい。ただ、見知らぬ人にまで一緒に読まれたくはない、というわけです。
Label 309 の封緘済み証明は、これを解決します。選んだ人だけが開けるようにコンテンツに鍵をかけ、そのうえで、タイムスタンプ付きのレコードを公開台帳に記録します。すると当然、こんな心配がわきます。公開 台帳なのだから、だれでも見られる。では、実際には何が見えるのでしょうか。
正直なところ、答えは「驚くほどわずか」です。ただし、何も 見えないわけではありません。Label 309 は、その違いを正確に言い表すことに気を配っています。
鍵のかかった箱が並ぶ様子を思い描く
封緘したメッセージを、だれもが前を通れる金庫の壁に収めたと想像してください。その壁には、小さくて同じ形の施錠済みの箱がずらりと並んでいます。送る相手の人数分です。どの箱にも、同じメッセージを開ける鍵が入っていますが、それぞれの箱は特定のひとりの秘密鍵でしか開けられません。
通りかかる人は、壁を見られます。箱が並んでいるのが見えます。数を数えることさえできます。けれども できない のは、どの箱を開けることも、だれの鍵がどれに合うのかを知ることも、中に書かれた言葉をただの一語でも読むことも、です。
これが、Label 309 の封緘のほぼそのままの仕組みです。
見知らぬ人に見えるもの
- 何かが封緘されたということ。 レコードは、平文のままではなく施錠されたコンテンツを抱えていることを、はっきり示します。(見ている人は、ふつうの施錠とポスト量子に安全な施錠のどちらを使ったかまでは分かります。けれども、それ以上は分かりません。)
- タイムスタンプ。 ネットワークがレコードの存在に合意した瞬間で、秒単位まで正確です。これこそが狙いであり、公開されることを前提としています。
- コンテンツの フィンガープリント。 ふつうの存在証明と同じ一方向のコードです。コンテンツそのものについては何も明かさず、元に戻すこともできません。
- 受信者がおおよそ何人か。 施錠された箱の数です。これが唯一漏れるものであり、あとで改めて触れます。
隠れたまま残るもの
- コンテンツそのもの。 台帳には決して載りません。載るのはフィンガープリントと施錠された箱だけで、かき混ぜられたファイル本体はチェーンの外にあります。対になる秘密鍵がなければ、コンテンツはただの雑音です。
- 受信者がだれか。 Label 309 は、受信者の名前も公開鍵も、レコードのどこにも置きません。読み取れる「宛先:」フィールドはありません。受信者は、どれか一つが開くまで各箱に自分の鍵を静かに 試す ことではじめて、そのメッセージが自分のものだと気づきます。(ここで正直に細かな注釈を一つ。ある相手を疑い、その人の正確な公開アドレスを すでに手にしている 観測者がいても、古典的な X25519 の錠前はそれを確かめさせてはくれません。けれども既定のポスト量子方式の錠前は、その特定の約束まではしません。あとの注意点をご覧ください。)
- だれが送ったか。 ただし、署名しないことを選んだ場合です。Label 309 では、著作者性への署名はいつでも任意です。署名しなければ、レコードには送信者へ結びつくものが何も残りません。どの箱にも、だれも指し示さない真新しい使い捨ての鍵素材だけが入っています。
そして、もう少し見えにくい二つの保護も、同じくらい大切です。
- 受信者どうしは、互いを見られません。 自分の箱を開けても、ほかのだれについても何も分かりません。ほかにだれが含まれていたかを知ることはできず、相手も同じです。
- 順番はかき混ぜられます。 発行の前に、箱はランダムな順序に並べ替えられます。だから箱の 位置、先頭か末尾かといったことさえ、だれが「主役」なのか、グループがどう組まれているのかについて、何のヒントも漏らしません。
一つだけ、正直に言っておく注意点
数は見えます。見知らぬ人に受信者が だれか は分かりませんが、箱を数えて 何人いるか は分かります。たいていの用途では、これは無害です。共著者が三人、契約の当事者が二人、といった具合です。けれども、その人数すら機密である場合は、ぼかすことができます。詰め物として余分な箱をいくつか加えるか、送信をいくつかのレコードに分けるのです。Label 309 のほうで人数を隠してくれるわけではないので、それが重要な場面では、自分で手を打つことになります。
箱が だれ宛て かを隠すことについて、もう一つ正直に書いておきます。古典的な X25519 の錠前は、証明可能なかたちで「鍵プライベート」です。疑わしい受信者たちの公開アドレスの一覧を手にした観測者でさえ、どの箱が(もしあれば)そのうちのだれか宛てなのかを試すことはできません。既定のポスト量子方式の錠前(X-Wing)も、ふつうの見知らぬ人からは同じものを隠しますが、Label 309 はそれについてこの一段強い保証を 主張しません。疑わしい受信者の正確な公開鍵をすでに持っている攻撃者に対して、その試行を阻むと約束するのは、古典方式の錠前だけです。もしまさにその脅威が自分のものなら、封緘には古典方式の age1… 鍵を選んでください。そうでなければ、ポスト量子方式の既定が正しい選択です。
正確を期すついでに、小さな正直をもう二つ。タイムスタンプは秒単位まで正確なので、タイミングそれ自体 が機微にふれる漏えいでは、それがそのまま本物の露出になります。また、レコードでは、どのウォレットが Cardano トランザクションの 費用を支払った かを隠せません。それは封緘済みレコードの外側、トランザクションそのものに記録されているからです。ですから、それを隠す必要がある人は、ウォレットのレベルで手を打たなければなりません。
それから、鍵を渡した 相手は、保存されたコンテンツが存在するかぎり、いつまでもメッセージを読めることも、心に留めておく価値があります。封緘が守ってくれるのは世界からであって、自分が信頼を選んだ人たちからではありません。
強固なプライバシーと、一つの小さな漏れ、ありのままに
Label 309 の封緘は、コンテンツも、受信者がだれかも、そして(署名しなければ)送信者であるあなた自身さえも隠します。チェーンを見ている人が確実に知れる唯一のことは、おおよそ 何人 のために封緘したか、それだけです。一つだけ細かな注釈があります。疑わしい受信者の正確な公開鍵を すでに持っている 攻撃者に対して、「その本人かどうかすら確かめられない」という最も強い保証を主張するのは、古典的な X25519 の錠前だけで、ポスト量子方式の既定では主張しません。詳しい扱いについては セキュリティモデル をご覧ください。