P 1 = xG:所有を証明したいUTXOの公開鍵 P 1 = xG P 2 = xJ P 1 の管理下にある未使用の UTXOを所有していることを証明したい ① P 1 と同じ離散対数を使って P 2 を計算。 C = H(P 2 ) ② P 2 のコミットメントを計算し、検証者に送信。 使用済みコミットメント ③ 使用済みのUTXOコミットメントの リストにCがないかチェック ④ ランダムなnonce kを選択し、R 1 、R 2 を計算し、eとsを算出。 R 2 = kJ R 1 = kG e = H(R 1 || R 2 || P 1 || P 2 ) s = k + ex ⑤ R 1 、R 2 、P 1 、P 2 、e、sを検証者に送信 ⑥ 以下の検証を行う。 • H(P 2 ) = Cが一致するかどうか。 • R 1 = sG - eP 1 • R 2 = sJ - eP 2 • e = H(R 1 || R 2 || P 1 || P 2 ) • チェーン上にP 1 のUTXOが存在すること。 同じnonce k、秘密鍵xを使っているため、 P 1 、P 2 に対して有効なSchnorr署名 P 2 はJをベースにしているため、 nonce抜きのコミットメントでもOK Schnorr署名の有効性検証
D Out C A D B CoinJoinは複数の参加者が、同じ金種の UTXOを持ち寄り、 送金先をシャッフルするミキシング技術。 トランザクションのインプットとアウトプットのリンクを破壊することで コインのトラッキングを難読化する。 PoDLEの導入ポイント • JoinMarketで、悪意あるユーザーが途中で意図的に処理を中断することで他の参加者の UTXO セットの情報を学習し、最終的にチェーン上のミキシングトランザクションを紐解く攻撃の懸念。 • ミキシングセッションの開始前に、 PoDLEのコミットメントの提出を義務付ける。 ◦ 正常に動作する場合、最終的に全参加者がコミットメントをオープンし、PoDLEの検証を行う。 ◦ 悪意あるユーザーは、コミットメントの提出により1セッション1UTXOが必要となり、 スパイ行為の攻撃コストが増加する。