こちらの続きです
Keygenの動作を確認します
Keygenのココがすごい
- 各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開始」をクリック
観察結果
本実験では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のログから確認できる
- Node-REDのデバッグからも確認できる
Keygen編 以上


