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

高速で安全な2者間のECDSA署名

 高速で安全な2者間のECDSA署名

GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2018/10/ecdsa_2-of-2_multisig/

shigeyuki azuchi

December 04, 2018
Tweet

More Decks by shigeyuki azuchi

Other Decks in Technology

Transcript

  1. 2 ECDSA Signature • 秘密鍵: x • 公開鍵: P =

    xG • メッセージ: m • ハッシュ関数: H() 【署名の生成】 1. ランダムなnonce k を選択。 2. kを秘密鍵とした楕円曲線上の点 R = kGを計算。 3. 点Rのx座標をrとする。 4.            を計算 5. 生成した (r, s)がECDSAの署名データ。 【署名の検証】
  2. 鍵ペア P1 = x1G nonce R1 = k1G 5 コインのロック

    Pにロックされたコインをアンロックするすためには が計算できればいい 鍵ペア P2 = x2G nonce R2 = k2G P1, R1, P2, R2を共有 P = x1 ・ P2 を計算 R = k1 ・R2 を計算 P = x2 ・ P1 を計算 R = k2 ・R1 を計算 計算した点Pと点Rはそれぞれ同じ点になる P宛にコインを送金するとマルチシグへのロックとなる
  3. 6 秘密計算で署名データを計算 ①アリスは、Paillier暗号用の鍵ペアを生成(priv, pub)  ※Paillier暗号は加法準同型性がある暗号スキーム ②pubを使ってアリスの秘密鍵x1を暗号化Enc(x1)し、 pubと一緒にボブに送信 Enc(x1) pub ③

    ボブは、以下の計算をしてpubで暗号化  Enc(x1)を使って以下を計算    c3 = c1⊕c2を計算して、アリスに送る。 ④ アリスはc3を復号して s’ を計算 ⑤ s’にk1^-1を掛けるとアンロックに必要な署名値 s が手に入る 両者ともに秘密鍵 x1, x2を明らかにすることなく、 マルチシグのアンロックに必要な署名値を計算できる 1
  4. 7 ECDSAベースのマルチシグのメリット • プライバシーの向上 ロックスクリプトも通常のP2PKHやP2WPKHのように単一の公開鍵への ロックとなるため、マルチシグを利用したコントラクトであることは当事者 以外分からない。 • データサイズの削減 通常のマルチシグの場合、1つの署名データにつき73バイトのデータを

    必要とするが、Lindellのマルチシグでは単一の署名データになるため、 その分トランザクションサイズが削減され、ブロックチェーンのスペースも 削減できる。 • さまざまなコントラクトへの適用 Lightning Network(Multi-Hop Locks)やAdaptor Signatureを利用した Atomic SwapなどScriptlessなコントラクトに(Schnorrを待たずとも) 今すぐ適用可能。