Edited at

マルチシグと秘密共有の違い

More than 1 year has passed since last update.

よく混同されるみたいなので書いておきます


シャミアの秘密共有法(SSSS)

秘密そのものを分割して保管する

分割する際に分割個数と復元に必要な鍵の数を決める

指定した鍵の数が揃えば完全な秘密が手に入る

保管は分散されるので比較的安全だが、複合時に必ず誰かが完全な秘密を知る中央集権的なリスクがある


秘密の中身

Open Sesami



3/6で分割した秘密

1-b27dc2acc980b1b44d963e

2-4f181c26ab4c578d9a9a5a
3-c3140bdc37ce17e0ba13f9
4-7965dda0b4b7274a584d9c
5-f569ca5a2835672778c42d
6-080c14d04af9811eafc86d

以下のURLで実験できます

https://ebixio.com/ssss.html

秘密から分割した鍵を作成するので当然あとから持ち主を変更することはできない


マルチシグ

前提条件として電子署名で契約を執行するための仕組で運用されることが必須

複数の秘密鍵を用意し、それぞれ公開鍵を作成する

全ての公開鍵と必要な鍵の数を事前に決定する

秘密鍵を保有する承認者には執行内容が書かれた契約書が回覧される

契約書に問題がない場合には承認者が電子署名をつけて他の承認者へ渡す。

必要な電子署名の数が揃った段階で契約書を完成とする。

承認者同士の秘密鍵を他の承認者が知る必要がないため中央集権的なリスクがない

ビットコインなどのutxoベースの場合にはスクリプトの式に公開鍵と必要な鍵の数が組み込まれる(後から承認者の変更が出来ない)

リップルなどのaccountベースの場合には公開台帳に公開鍵と必要な鍵の数が記録される(後から承認者の変更ができる)


マルチシグ2/3の設定

公開鍵1

公開鍵2
公開鍵3
署名は2つ


契約書

Aさんに鉛筆の代価として100円支払う



署名済み契約書

Aさんに鉛筆の代価として100円支払う

秘密鍵1による署名
秘密鍵3による署名


応用

マルチシグの秘密鍵の一つをssssを用いて分割するのはありうる