#dusk $DUSK @Dusk
今週はPhoenixのノート構造を読み解いて、「spent(使用済み)」がUTXOプライバシーモデル上で実際に何を意味するのか理解したかったのですが、答えは想像以上に意外でした。
Bitcoinのような透明なUTXOモデルでは、コインを消費(spend)するとネットワークは、どの未使用出力を消費したのかを正確に把握します。UTXO集合からそれを取り除きます。チェーンは、何がどこへ移動したかを追跡できます。
Phoenixはそれとは別のことをします。ノートを消費しても、ネットワークはノートのMerkleツリーからそれを削除しません。ホワイトペーパーは明確で、「ノートはMerkleツリーから削除されません。その代わり、ネットワークに新しいトランザクションが追加されることで、ツリーは成長し続けます」。
代わりに何が起きるかというと、nullifier(無効化子)が別のnullifierリストに追加されます。このnullifierは、ノートの秘密鍵から導出される決定論的な値です。ネットワークは、nullifierがこれまでに見られていないことを確認し、それによって二重支払いを防ぎます。しかし、ネットワークはnullifierをツリー内の特定のノートに対応付ける方法を持っていません。ネットワークは「何かが消費された」ことは分かりますが、「どのノートか」は分かりません。
この点は確かです。リンク不可能性(unlinkability)は、ネットワークが学習しないことによってまさに生まれます。Merkleツリー内のノートは、「使われたかどうか」に関わらず同一に見えます。チェーンを監視するオブザーバーは、「新しく未使用のノート」と「nullifierがすでにリストに載っているノート」を区別できません。
。時間の経過とともに、Phoenixの利用が増えるほど、完全なMerkleツリーの状態はノードにとって意味のあるストレージ負担になります。消費済みのノートがそのまま残り続け、稼働中のものと区別できないからです。
私は、これは見落としというより意図した設計トレードオフだと思っています。消費済みノートを削除すると、どのノートが使われたかが漏れてしまい、リンク不可能性が壊れます。しかしそれは、プライバシー保証に実際のインフラコストが付随し、それが利用量に応じて増大することを意味します。
まだ分かっていないのは、ネットワークが「永久に消費済み」と合意した非常に古いノートに対してプルーニング(間引き)の仕組みがあるのか、それとも圧縮戦略なしでツリーが無期限に成長するように設計されているのか、という点です。
今週はPhoenixのノート構造を読み解いて、「spent(使用済み)」がUTXOプライバシーモデル上で実際に何を意味するのか理解したかったのですが、答えは想像以上に意外でした。
Bitcoinのような透明なUTXOモデルでは、コインを消費(spend)するとネットワークは、どの未使用出力を消費したのかを正確に把握します。UTXO集合からそれを取り除きます。チェーンは、何がどこへ移動したかを追跡できます。
Phoenixはそれとは別のことをします。ノートを消費しても、ネットワークはノートのMerkleツリーからそれを削除しません。ホワイトペーパーは明確で、「ノートはMerkleツリーから削除されません。その代わり、ネットワークに新しいトランザクションが追加されることで、ツリーは成長し続けます」。
代わりに何が起きるかというと、nullifier(無効化子)が別のnullifierリストに追加されます。このnullifierは、ノートの秘密鍵から導出される決定論的な値です。ネットワークは、nullifierがこれまでに見られていないことを確認し、それによって二重支払いを防ぎます。しかし、ネットワークはnullifierをツリー内の特定のノートに対応付ける方法を持っていません。ネットワークは「何かが消費された」ことは分かりますが、「どのノートか」は分かりません。
この点は確かです。リンク不可能性(unlinkability)は、ネットワークが学習しないことによってまさに生まれます。Merkleツリー内のノートは、「使われたかどうか」に関わらず同一に見えます。チェーンを監視するオブザーバーは、「新しく未使用のノート」と「nullifierがすでにリストに載っているノート」を区別できません。
。時間の経過とともに、Phoenixの利用が増えるほど、完全なMerkleツリーの状態はノードにとって意味のあるストレージ負担になります。消費済みのノートがそのまま残り続け、稼働中のものと区別できないからです。
私は、これは見落としというより意図した設計トレードオフだと思っています。消費済みノートを削除すると、どのノートが使われたかが漏れてしまい、リンク不可能性が壊れます。しかしそれは、プライバシー保証に実際のインフラコストが付随し、それが利用量に応じて増大することを意味します。
まだ分かっていないのは、ネットワークが「永久に消費済み」と合意した非常に古いノートに対してプルーニング(間引き)の仕組みがあるのか、それとも圧縮戦略なしでツリーが無期限に成長するように設計されているのか、という点です。