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

Schnorrベースの新しいマルチシグ方式MuSig

 Schnorrベースの新しいマルチシグ方式MuSig

GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2019/04/musig/

shigeyuki azuchi

April 15, 2019
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. 1 Schnorr署名 公開鍵や署名の集約特性があるデジタル署名スキーム • 楕円曲線の生成点:G • 秘密鍵:x、公開鍵:P = xG •

    暗号学的ハッシュ関数: H • メッセージダイジェスト: m 【署名の生成】 • ランダムなnonce kを選択する。 • R = kGを計算する(Rは楕円曲線上の点)。 • s = k + H(P, R, m) x を計算する。 • (R, s)が署名データ 【署名の検証】 • sG = R + H(P, R, m)P が成立するか検証する。 秘密鍵 x の情報を知らなければ、 この式を満たす s は導出できない。
  2. 2 Schnorrベースのマルチシグ • 鍵ペア P1 = x1G • 鍵ペア P2

    = x2G マルチシグの公開鍵 P = P1 + P2 にコインをロック ※Pに対応する秘密鍵は誰も知らない Pにロックされたコインをアンロックする ② s1 = k1 + H(P, R, m)x1 を計算 ② s2 = k2 + H(P, R, m)x2 を計算 ③ s = s1 + s2 = k1 + k2 + H(P, R, m)(x1 + x2)を計算 署名データは(R, s) ※ 署名は各ユーザーが計算した各 s値の加算することで計算できる ④ sG = R + H(P, R, m)P を検証 ① nonce R1 = k1Gを計算し送付 ① nonce R2 = k2Gを計算し送付 署名に使用するnonceはR = R1 + R2
  3. 3 Rogue-Key攻撃の問題 • 鍵ペア P1 = x1G • 鍵ペア P2

    = x2G ① 公開鍵 P1を相手に送信 ② P3 = P2 - P1 を計算し、 P3を自分の公開鍵として送信する。 ③ マルチシグの公開鍵は P1 + P3 = P1 + P2 - P1 = P2 となり、悪意あるユーザーの鍵のみでマルチシグにロックされた資金を 回収するSchnorr署名を作ることができてしまう。 回避するにはP3に対応する秘密鍵を持っていること の証明を求める必要がある。
  4. 5 MuSig • 鍵ペア P1 = x1G • nonce R1

    = k1G • 鍵ペア P2 = x2G • nonce R2 = k2G ④ s1 = k1 + H(P, R, m) H(L, P1)x1 を計算 ④ s2 = k2 + H(P, R, m) H(L, P2)x2 を計算 ⑤ s = s1 + s2 = k1 + k2 + H(P, R, m)(H(L, P1)x1 + H(L, P2)x2)を計算 署名データは(R, s) ⑥ sG = R + H(P, R, m)P を検証 ※ P = H(L, P1) P1 + H(L, P2) P2の秘密鍵は H(L, P1)x1 + H(L, P2)x2 ① お互いに公開鍵を交換し、L = H(P1, P2)を計算する。 ② P = H(L, P1) P1 + H(L, P2) P2 をマルチシグの公開鍵とする。 ③ 署名に使用するnonceはR = R1 + R2
  5. 6 MuSigのポイント • 通常のSchnorrのマルチシグ P = P1 + P2 単純な公開鍵と公開鍵の加算なのでRogue-Key攻撃の懸念がある。

    • MuSigのマルチシグ P = H(L, P1)P1 + H(L, P2)P2 単純な加算ではなく、参加者の公開鍵のハッシュを乗算した公開鍵を 加算することで、署名の生成にH(L, P1)x1 + H(L, P2)x2の知識が 必要となり、Rogue-Key攻撃への耐性となる。 ※ P2の部分がP3 = P2 - P1になった場合、 P = H(L, P1) P1 + H(L, P3) P3となり、有効な署名を作るにはP3の 秘密鍵(x2 - x1)の情報が必要になり、誰もその情報を知らない。
  6. 7 まとめ • 通常のSchnorrベースのマルチシグの場合、 Key-Rogue攻撃の危険性がある。 • MuSigはKey-Rogue攻撃に耐性のあるSchnorrベースの マルチシグスキーム • Schnorrベースの2ラウンド型マルチシグスキームの

    安全性の証明はされていない? https://eprint.iacr.org/2018/417.pdf • secp256k1-zkpにマージ https://blockstream.com/2019/02/18/ja-musig-a-new-multisignature-standard/