二重暗号化: Z-Textがメッセージを保護する仕組み
多くの暗号化メッセンジャーは単一の暗号化レイヤーに依存しています。Z-Textは2つの独立した暗号化レイヤーを使用し、それぞれ異なる脅威ベクトルから保護します。
ほとんどの暗号化メッセンジャーは単一の暗号化レイヤーに依存しています。Z-Textは2つの独立した 暗号化レイヤーを使用し、それぞれが異なる脅威ベクトルに対して保護します。この記事では、 それらがどのように連携してメッセージの多層防御を提供するかを説明します。
レイヤー1: ブロックチェーンシールディング
最初の暗号化レイヤーは、BitcoinZブロックチェーン自体から提供されます。シールド トランザクションはzk-SNARKs(Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge) を使用して、すべてのトランザクションデータを暗号化します。
Z-Textメッセージがシールドトランザクションとして送信されると、以下がすべてのネットワーク オブザーバーから隠されます:
- 送信者のアドレス
- 受信者のアドレス
- 取引金額
- memoフィールド(メッセージが格納される場所)
受信者のz-addressのviewing keyの保持者のみが、memoフィールドを復号してメッセージの内容を 読むことができます。これにより、パッシブなネットワーク監視やブロックチェーン分析から 保護されます。
レイヤー2: コンタクトキー暗号化
2番目のレイヤーは、ブロックチェーンシールディングの上にエンドツーエンド暗号化を追加します。 ハンドシェイクプロセス中に、Z-Textは楕円曲線Diffie-Hellman(ECDH)鍵交換を使用して、 2つの連絡先間に共有秘密鍵を確立します。
メッセージがトランザクションmemoに配置される前に、この共有鍵で暗号化されます。つまり、 誰かがz-addressのviewing keyを(強制、盗難、または将来の脆弱性を通じて)取得しても、 別途導出されたコンタクトキーなしではメッセージを読むことができません。
ハンドシェイク鍵交換
コンタクトキーは、トラストレスなハンドシェイクプロトコルを通じて確立されます:
- AliceがBobのz-addressにハンドシェイクリクエストを送信し、彼女のエフェメラル公開鍵を含めます(シールドトランザクションのmemoに暗号化)
- BobはAliceに自分のエフェメラル公開鍵を送り返すことで受け入れます(同様にシールドトランザクション経由)
- AliceとBobの両方がECDHを使用して独立に同じ共有秘密を導出します
- この共有秘密が、今後のすべてのメッセージの対称暗号化鍵となります
このアプローチの優れた点は、鍵交換自体もレイヤー1のシールディングで保護されることです。 オブザーバーは、公開鍵が交換されていることも、ハンドシェイクが行われていることすらも 見ることができません。
なぜ2つのレイヤーが重要なのか
各レイヤーは異なる攻撃シナリオに対して保護します:
- レイヤー1のみの場合、ネットワークオブザーバーやブロックチェーンアナリストからは保護されますが、viewing keyの漏洩には脆弱です
- レイヤー2のみの場合、viewing keyの漏洩からは保護されますが、メッセージがオンチェーンで平文送信された場合には脆弱になります
- 両方のレイヤーが揃うと、攻撃者は2つの独立した暗号システムを同時に突破する必要があります
これは、メッセージング暗号化に適用された多層防御の原則です。メッセージを暴露できる 単一障害点はありません。
暗号プリミティブ
Z-Textの暗号化スタックは、確立された暗号プリミティブを使用しています:
- zk-SNARKs (Groth16) -- レイヤー1のシールドトランザクション用
- ECDH over Curve25519 -- 鍵交換用
- ChaCha20-Poly1305 -- レイヤー2の対称暗号化用
- BLAKE2b -- 鍵導出用
すべての暗号演算は、アプリケーションのRustコアで実行され、タイミングサイドチャネル攻撃を 防ぐための定時間実装を活用しています。
実用的な意味
ユーザーにとって、2層暗号化は完全に透明です。アプリがすべての鍵交換と暗号化を自動的に 処理します。メッセージは、その下で行われている高度な暗号技術を示すことなく、おなじみの チャットインターフェースに表示されます。
その結果、中央集権型メッセンジャーが提供できるものを超えるレベルのメッセージセキュリティが 実現されます -- 暗号技術がより複雑だからではなく、信頼モデルが根本的に異なるからです。 召喚状を出すサーバーもなく、強制する企業もなく、すべてを解除する単一の鍵もありません。