マルチシグの安全性を数理的に考察してみる
Bitcoin 2021カンファレンスの話題が盛り上がっていますね。
エルサルバドルでビットコインを法定通貨とする法案が提出されるとの発表があるなど(先ほど提出・可決された?)、着実にビットコインが社会に浸透しつつあるように思えます。
そうなるとビットコインの管理方法は改めて気になるポイントになってきます。
ということで、ビットコインをしっかり安全に保管するにはと調べるとマルチシグアドレスという仕組みに行き着きます。鍵が複数なんだから攻撃にも強そうだしセキュリティが上がって安全、といった代物に感じますよね。
では、ちょっと具体的に考えてみましょう。次の3つのアドレスのうちどれが一番安全でしょうか。
1.シングルシグ(普通のウォレット)
2.2-of-3マルチシグ(アドレスの紐付く3つの秘密鍵のうち2つの署名でもって出金できる)
3.2-of-4マルチシグ(アドレスの紐付く4つの秘密鍵のうち2つの署名でもって出金できる)
今回は、この疑問に数理モデルをつくってアプローチしてみようと思います。
マルチシグの法人利用・個人利用
本サロンのメンバーですとマルチシグアドレスに関して造詣の深い方ばかりかと思いますが、
簡単に確認すると複数の署名でもって資産を取り出せるアドレスのことで、2-of-3マルチシグといった言い方をする場合、アドレスと紐付く3つの鍵のうち2つの鍵での署名でもって送金を実行できる仕組みとなります。
これを使うとイメージとしては稟議書を回してハンコを集めて決裁し送金を行うといったことを実現できます。
取り扱う資産の量が大きい取引所などでは絶対的なセキュリティが要求されるコールドウォレットの実体として利用されています。
複数人の署名権限者が関わることで初めて資産を動かせるようにしています。こうした牽制の仕組みを取り入れることで、ソーシャルハック耐性を上げる設計ですね。
さて、こう聞くといかにも企業が使うイメージですが、個人で利用することももちろんできます。
TrezorやLedgerといったハードウェアウォレットを組合わせて使う方法を本サロンでもレポートにしています。
個人で使う場合、1つは手元に、もう一つは銀行の貸金庫に置いておくなど地理的に分散して保管するなどし窃盗への耐性を上げることができそうですね。
また、2-of-4マルチシグとし4つの鍵を全部地理分散させておけば、あの厄介なニモニックによるバックアップもいらなくなるんじゃないか、とも思えます。2つ鍵を無くしたって動かせるし。
ちょっと冷静に考えてみましょう。本当にこれでいいんでしたっけ。
・Trezorを3台どこどこに保管した、と覚えておかなきゃ
・3つのニモニックを1カ所に置いておくわけにいかないのでこれも分散して保管しないと
・2-of-4の4台中3台を目の届かないところに置いておいたら気付いたら2台無くなっていた
などなどいかにも複雑で、少し気を抜くと逆に資産にアクセスできなくなったり、盗まれたりしそうです。
色々と考えるとよく分からなくなってきます。
こういったときは理論の出番です。数理モデルを構築して考察してみようと思います。
マルチシグのリスク評価
前提
マルチシグアドレスにおける資産を動かせる権限が窃取されるリスクを評価することを目的とします。
M-of-Nマルチシグにおいて、M個の秘密鍵漏洩でもって資産を動かせる権限が窃盗されたと判断することにします。
ハッキングや窃盗などにより秘密鍵が漏洩するというイベントはいつでも低確率で起こりうると仮定します。
本考察では、運用ミスによる秘密鍵の漏洩、リモートの攻撃者による窃盗による漏洩、物理的盗難による漏洩など漏洩イベントの内訳は区別しないこととします。
これらの前提の元、リスクを評価するための式を導出しました。
細かい議論なので外部リンクにしておきます。
https://www.notion.so/andgo/df2a867edeba4ef58e0158aa4b221940
考察
上で導出した数理モデルを元に次の4パターンを比較考察してみようと思います。
A.シングルシグ ニモニックあり (緑グラフ)
B.2-of-3マルチシグ ニモニック無し (赤グラフ)
C.2-of-3マルチシグ ニモニックあり (ピンクグラフ)
D.2-of-4マルチシグ ニモニック無し (青グラフ)

グラフの横軸Xは鍵1つあたりの漏洩リスク、縦軸Yはアドレスから資産を動かす権限が漏洩するリスクを表します。数字が大きいほどリスクが大きいです。
例えば、鍵を保管する場所が銀行の金庫であれば盗まれたりしにくいだろうからX=0.01といった値をとり、誰もが出入りできるコワーキングの机の上ならちょっと大きめにX=0.2といった値をとってみます。このとき、赤のグラフ(2-of-3マルチシグ)であれば2つ以上の鍵が漏洩し資産を動かされてしまうリスクを縦軸Yの値として見積もります。X=0.01であればY=0.001,X=0.2であればY=0.1 といったかんじです。
どうやらコワーキングのような場所で鍵3つを保管していると銀行の金庫での保管に比べ100倍アドレスからの資産窃取リスクがあがってそうだ、と読み取ることができそうです。
注目してほしいのは緑グラフ(シングルシグ)とその他のグラフとのX=0付近でのグラフの傾きの違いです。
シングルシグよりはマルチシグのほうがあきらかに資産を動かす権限の窃取リスクは低い、と読み取ることができます。
さて、前述の4パターンですが、鍵の保管が比較的しっかりしているといえるX=0付近で考えてみると以下の順で安全性が高いといえます(上が安全)。
B 2-of-3マルチシグ ニモニック無し(赤)
D 2-of-4マルチシグ ニモニック無し(青)
C 2-of-3マルチシグ ニモニックあり (ピンク)
...(圧倒的な差)...
A シングルシグ ニモニックあり(緑)
シングルシグよりマルチシグのほうがどうやら安全そうだ、は直感に反しないかと思います。
ニモニックによるバックアップの有無に関しては、BとCとを比較すると、マルチシグにおいてはやらないほうがよさそうだということも読み取れます。今回はニモニックの漏洩も元とする鍵の漏洩も同じ程度のリスクがあるとの仮定で議論しています。そのため、ニモニックがある分だけ取扱注意なものが増える結果として資産を動かされる権限の窃取リスクが高くなる、ということですね。
まとめ
今回は話を単純にするため、いわゆるGoxリスク(ハッキングなど)とセルフGoxリスク(紛失など)の可能性を全部いっしょくたに同じレベルで起きる、と仮定して議論を進めました。
実際にはマルチシグの運用は複雑であり、セルフGoxリスクはより大きいと思います。
次ステップでは、こうしたより実際の運用に近い値を使ってシミュレーションをしてみると面白そうですね。
さて冒頭の3択に関していえば、2番目の2-of-3マルチシグの運用でニモニックバックアップはとらない、がよさそうとの結論を得ました。
置いた仮定や数理モデルによってこの結論も違ってくる可能性があります。こんなリスク評価を行った論文があるよ、など情報をお持ちの方がいらっしゃいましたら是非コメントをお願い致します。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。

ディスカッション