セラフィス: モネロに何をもたらすか
Seraphis: Monero トランザクションのモジュール設計のアップグレード
この投稿では、Seraphis について説明します。Seraphis は、匿名の研究貢献者 koe
によって Monero エコシステムのために開発された一連のトランザクション プロトコル構造と抽象化であり、進行中のセキュリティ分析も含まれています。匿名の寄稿者 coinstudent2048
.
わかりやすくするために、いくつかの簡略化を行い、特定の技術的な詳細を省略しています。この理由と、Seraphis の設計はまだ進行中であるため、関心のある読者は最新情報について Seraphis のドキュメントを参照する必要があります。
モネロでの取引
ビットコインやモネロなどのプロトコルは、出力が転送可能な価値の表現である、いわゆる「出力モデル」に依存しています。
トランザクションは、送信者によって制御される 1 つ以上の出力を消費し、受信者に向けられた (または変更として送信者に返される) 新しい出力を生成します。消費されたアウトプットには、新しいアウトプットの値と正確に等しい合計値が含まれている必要があるという点で、トランザクションはバランスを取る必要があります(ネットワークが課す手数料を加えたもの)。
ビットコインのような多くのプロトコルでは、出力に含まれる値は、受信者と同様に平文で書き込まれます。
さらに、ブロックチェーンを見ることで、出力がいつ消費されたか (つまり、後のトランザクションで消費されたかどうか、およびどのトランザクションがそれを消費したか) を確認するのは簡単です。
対照的に、Monero のようなプロトコルは異なる設計を導入します:
- ブロックチェーン上で出力値が非表示になり、表示されない
- 受信者アドレスは、ワンタイム アドレッシング プロトコルの使用によって隠されています
- 出力が費やされたかどうかは、あいまいな署名の使用によって不明瞭になります
- コミットメント 数学的に有用な方法で金額を隠す
- レンジプルーフは供給を膨らませる可能性のあるオーバーフローを防ぎます
- リンク可能なリング署名は、署名者のあいまいさを提供し、二重支払いの試みを防ぎます
- コミットメント オフセットは、トランザクションのバランスが取れていることを主張します
その結果、外部情報がなければ、特定のアウトプットが費やされたかどうか、その価値は何か、誰がその受取人であるかを判断することは困難です。
現在の Monero トランザクション プロトコルは RingCT と呼ばれ、これらの設計目標を達成するためにいくつかの暗号化ビルディング ブロックを使用しています。
これらのビルディング ブロックは、RingCT プロトコルを構築するために慎重に絡み合っています。
RingCT プロトコルの有用な特性は、一部のビルディング ブロックを変更またはアップグレードして、全体的な設計と特性を損なわずに効率やセキュリティを向上できることです。 実際、この種のアップグレードは、Monero の歴史の中で数回発生しています (または発生する予定です)。 元の RingCT プロトコルの範囲証明はかさばり、低速でした。これらは後に Bulletproofs と呼ばれる構造に更新され、より優れたセキュリティ分析でトランザクションをより小さく、より高速にしました。また、Bulletproofs+ と呼ばれる新しい構造に更新して、さらに効率的な利点を得る予定です。
同様のプロセスが、リンク可能なリング シグネチャ ビルディング ブロックで行われました。 元のプロトコルでは、MLSAG と呼ばれる構造が使用されていました。 これは後に CLSAG と呼ばれる新しい構造に更新され、より高速でトランザクションが小さくなり、セキュリティ分析が改善されました。 Triptychに基づくさらに新しいリンク可能なリング署名の構築が提案されましたが、これはマルチ署名操作への影響のために展開に選択されませんでした。
セラフィス
Seraphis はこのアイデアをさらに一歩進めます。
既存の RingCT トランザクション プロトコルの個々のビルディング ブロックを更新するのではなく、さまざまなビルディング ブロックを利用して機能を改善できる別のプロトコルを導入します。
ビルディングブロック
Seraphis は、設計目標を達成するために異なる暗号化ビルディング ブロックのセットを使用します。
- コミットメント まだ金額を非表示
- レンジプルーフはオーバーフローを防ぎ、インフレーションを供給
- メンバーシップ証明 署名者のあいまいさを提供
- コミットメント オフセット 引き続きバランスを主張
- プルーフの承認二重支払いの試みを防止
ここでの変更に注意してください: リンク可能なリング署名は、メンバーシップ証明と承認証明の組み合わせに置き換えられます。 大まかに言えば、メンバーシップの証明は、消費された出力がより大きなセットの一部であることを示します。これは、RingCT で起こることと同様です。 しかし、RingCT とは異なり、メンバーシップの証明にはリンク タグがまったく含まれていません。 認証証明は、リンク タグが有効であり、最終トランザクションの署名に使用されていることを示します。
RingCT はリンク タグをあいまいな署名に焼き付けるため、署名 (およびマルチ署名) 操作はより多くの計算を必要とし、他のタグ関連機能を構築することがより困難になります。 しかし、Seraphis では、信頼性の高いデバイス (ハードウェア ウォレットのように計算能力が限られている可能性がある) から信頼性の低いデバイスにメンバーシップ証明の構築を安全に委任できます。署名 (およびマルチ署名) 操作は、はるかに単純な承認証明を使用してはるかに簡単です。
幸いなことに、Seraphis に必要なビルディング ブロックの一部は既に別の場所に存在しており、ゼロから設計する必要はありません。 Bulletproofs と Bulletproofs+ の両方の構造を範囲証明として使用できます。 Schnorr タイプの証明システムへの変更は、証明の承認に使用できます。 また、効率的な証明システムは、トリプティク、レランタス、およびスパーク*の基礎としてすでに使用されており、メンバーシップ証明のために変更できます。
* Cypher Stack は Spark 開発のための資金を受け取ります。
アドレッシング
残念ながら、現在使用されている Monero アドレスは Seraphis と互換性がありません。 Seraphis が実装されている場合、Monero を受け取るには、ウォレット キーから新しいアドレスを生成する必要があります。 ただし、このエコシステムのコストには多くのメリットがあります。
上記で説明した構造上の利点とは別に、Seraphis の設計はさまざまなアドレス構成の可能性に対応できますが、それぞれにトレードオフがあります。 Seraphis で使用される最終的なアドレス構成は まだ決定中です (多くの注目を集めているスキームの 1 つは JAMTIS と呼ばれます) が、いくつかの一般的で便利な機能について説明できます。
]Monero アドレスが ビュー キー機能を提供することをご存知かもしれません。この機能では、デバイスまたはサード パーティにビュー キーを提供し、あなたに代わって着信出力を監視できるようにしますが、支出をあきらめることはありません。権限。 これは、支出キーを安全に保管しながら最新の状態を保つことができるウォレットに役立ちます。 また、透明性を提供する公共慈善団体や経理部門のある会社など、外部ビュー アクセスが必要な場合にも役立ちます。
Monero ビュー キーの欠点は、完全なビュー アクセスまたは詳細なビュー アクセスが提供されないことです。 ウォレットがいつ資金を使用したかを確実に検出することはできないため、支出キーが利用できない場合にウォレットの残高を適切に計算することは困難です。 また、現在、それらの出力に含まれる値を学習せずに入力出力を検出することはできません (つまり、入力出力の検出を担当するサードパーティは、あなたが獲得している Monero の量を正確に学習します)。
Seraphis アドレス指定構造はこれを解決できます。 Seraphis では、アドレスにはさまざまなことができるさまざまなキーが装備されています。
- 着信出力を監視しますが、その値は非表示にします
- 着信出力を監視しますが、その値を表示します
- 送信出力を監視
- トランザクションを生成するのに役立ちますが、署名はしません
- 新しいアドレスを生成します (小売業者または多くの顧客との交換に役立ちます)
アドレス所有者として、他のデバイスまたはサードパーティに委任する権限を決定できます。
大きな絵
Seraphis は Monero エコシステムの大きな変化です。 アドレスとトランザクション ビルディング ブロックの変更が必要ですが、その設計は、今日の RingCT プロトコルでは不可能な柔軟性と便利な機能を提供します。 設計の大部分が最終化され、実装に発展している間、アドレス設計とセキュリティ分析が進行中です。 Seraphis は、Monero エコシステムを前進させる絶好の機会を提供します!
参考文献