0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MPC-TSS(閾値署名)の実験(その3 Keygen編)

0
Posted at

こちらの続きです

Keygenの動作を確認します

:v:Keygenのココがすごい:v:

  • 各Partyが作成するのは秘密鍵ではなく「鍵のシェア(分散片)」で、それぞれ異なる
  • にもかかわらず、各Partyが作成する「公開鍵」は同じになる
  • Keygen過程にも秘密鍵は存在しない
    • ここは今回の実験では確認できない

実験内容

  • 3人で鍵を作成(keygen)
  • keygenを開始するとParty間で計算データのやり取りが行われるので、その様子を観察
  • 各Partyが作成した「鍵のシェア」が、それぞれ異なることを確認
  • 各Partyが作成した「公開鍵」が同一であることを確認

実験手順

1.コンテナ起動

cd C:\mpc-tss-trial
docker-compose up --build

2.Node-RED起動

Node-RED起動後、ブラウザでhttp://localhost:1880/flexdashを開き、ダッシュボード画面を表示

3.Keygen実行

ダッシュボード画面で「KEYGEN開始」をクリック

Animation.gif

観察結果

本実験ではMPCプロトコルにGG18を使用しています。

Keygen時のParty間通信シーケンス

  • round 0 ~ 2 で行われる
  • round 0 は 各Partyからbroadcastが行われる
    • round 1 でbroadcastする値のハッシュを先に送っておく(らしい)
  • round 1 は broadcast と P2P通信が送られる
    • broadcastされた値がround 0の値と整合するか確認する(らしい)
    • P2Pで秘密を分割した値を送る(secret sharing)
  • round 2 は 各Partyから同じ値がbroadcastされる
    • 全員で正しいか検証している
      :

各Partyの持つ「鍵のシェア」が異なることを確認

  • 各コンテナに格納したファイル(鍵のシェア)のMD5ハッシュ値を出力して、異なっていることを確認できる
> docker exec -it party1 md5sum /workspace/co_signer1.key
852242425cece94c13786de3c357b0eb  /workspace/co_signer1.key
> docker exec -it party2 md5sum /workspace/co_signer2.key
9e3a774a66a78900421dc4a23160b6db  /workspace/co_signer2.key
> docker exec -it party3 md5sum /workspace/co_signer3.key
5d60f9c7a50212e163daf82f0b82f023  /workspace/co_signer3.key

各Partyがそれぞれに作成した公開鍵が同一であることを確認

  • Dockerのログから確認できる

image.png

  • Node-REDのデバッグからも確認できる

image.png

Keygen編 以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?