Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PoDLE - 離散対数の等価性の証明

PoDLE - 離散対数の等価性の証明

GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2020/08/podle/

shigeyuki azuchi

August 12, 2020
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. 1 PoDLE
 未使用のUTXOを所有していること、UTXOを明らかにすることなく証明したい
 
 • UTXOを明かしてはならないので、UTXOの秘密鍵で署名するアプローチはNG
 
 • 暗号コミットメントを使った証明アプローチ
 commitment

    = Hash(UTXO || nonce)
 commitmentをオープンする際に nonceを明らかにする。
 ◦ UTXOのハッシュのみでは、 UTXOセットから対象を特定できる。 
 ◦ nonceを切り替えることで、同じ UTXOに対して同時に異なるコミットメントが作れてしまう 
 
 
 
 PoDLE(Proof of discrete log equivalence)=離散対数の等価性の証明

  2. UTXO
 2 PoDLEの証明スキーム
 • G:楕円曲線のベースポイント 
 • J:Gとは別のNUMSポイント(誰もJの離散対数を知らない点) 
 •

    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署名の有効性検証

  3. 3 JoinMarketでの利用
 JoinMarket = CoinJoinの実装。
 Tx
 In
 A
 B
 C


    D
 Out
 C
 A
 D
 B
 CoinJoinは複数の参加者が、同じ金種の UTXOを持ち寄り、
 送金先をシャッフルするミキシング技術。 
 トランザクションのインプットとアウトプットのリンクを破壊することで 
 コインのトラッキングを難読化する。 
 PoDLEの導入ポイント 
 • JoinMarketで、悪意あるユーザーが途中で意図的に処理を中断することで他の参加者の UTXO
 セットの情報を学習し、最終的にチェーン上のミキシングトランザクションを紐解く攻撃の懸念。 
 • ミキシングセッションの開始前に、 PoDLEのコミットメントの提出を義務付ける。 
 ◦ 正常に動作する場合、最終的に全参加者がコミットメントをオープンし、PoDLEの検証を行う。
 ◦ 悪意あるユーザーは、コミットメントの提出により1セッション1UTXOが必要となり、
 スパイ行為の攻撃コストが増加する。

  4. 4 LNのDual Fundingでの利用
 Funding Tx
 In
 Out
 2-of-2 マルチシグ
 アリスのUTXO


    Dual Funding Tx
 In
 Out
 2-of-2 マルチシグ
 アリスのUTXO
 ボブのUTXO
 Dual Fundingのサポート
 PoDLEの導入ポイント 
 • JoinMarketと同様、悪意あるユーザーがチャネルセットアップの途中で処理を中断し、相手のUTXO情報を 学習することで、LNユーザー管理下のUTXOセットの情報がリークする可能性。 
 • セットアップが途中で停止した場合に、UTXO情報や PoDLEの情報をネットワークに 
 ゴシップすることでスパイ行為へ対応するという議論も。