2021年6月9日 4 min read

マルチシグの安全性を数理的に考察してみる

マルチシグの安全性を数理的に考察してみる
Photo by bruce mars / Unsplash

Bitcoin 2021カンファレンスの話題が盛り上がっていますね。

エルサルバドルでビットコインを法定通貨とする法案が提出されるとの発表があるなど(先ほど提出・可決された?)、着実にビットコインが社会に浸透しつつあるように思えます。

そうなるとビットコインの管理方法は改めて気になるポイントになってきます。

ということで、ビットコインをしっかり安全に保管するにはと調べるとマルチシグアドレスという仕組みに行き着きます。鍵が複数なんだから攻撃にも強そうだしセキュリティが上がって安全、といった代物に感じますよね。

では、ちょっと具体的に考えてみましょう。次の3つのアドレスのうちどれが一番安全でしょうか。

1.シングルシグ(普通のウォレット)

2.2-of-3マルチシグ(アドレスの紐付く3つの秘密鍵のうち2つの署名でもって出金できる)

3.2-of-4マルチシグ(アドレスの紐付く4つの秘密鍵のうち2つの署名でもって出金できる)

今回は、この疑問に数理モデルをつくってアプローチしてみようと思います。

マルチシグの法人利用・個人利用

本サロンのメンバーですとマルチシグアドレスに関して造詣の深い方ばかりかと思いますが、

簡単に確認すると複数の署名でもって資産を取り出せるアドレスのことで、2-of-3マルチシグといった言い方をする場合、アドレスと紐付く3つの鍵のうち2つの鍵での署名でもって送金を実行できる仕組みとなります。

これを使うとイメージとしては稟議書を回してハンコを集めて決裁し送金を行うといったことを実現できます。

取り扱う資産の量が大きい取引所などでは絶対的なセキュリティが要求されるコールドウォレットの実体として利用されています。

複数人の署名権限者が関わることで初めて資産を動かせるようにしています。こうした牽制の仕組みを取り入れることで、ソーシャルハック耐性を上げる設計ですね。

さて、こう聞くといかにも企業が使うイメージですが、個人で利用することももちろんできます。

TrezorやLedgerといったハードウェアウォレットを組合わせて使う方法を本サロンでもレポートにしています。

ハードウェアウォレットを使ったマルチシグの構築
今回は、表題のとおり、HWウォレットをつかってマルチシグを構築するということにチャレンジしてみました。 利用したのは、Electrumと、Trezor/Ledgerウォレットの組み合わせです。結論からいうと、わりあい簡単に構築することができ、このサロンの皆さんであれば、自分でやってみることも可能とおもいます。ただし同時に、マルチシグの落とし穴というか、単純ではない側面や、現状の課題も浮き彫りになりましたので、それもあわせてレポートにまとめています。大金をウォレットに保存しているのが怖いという話、マルチシグでなんとか解決できるのでしょうか?すこし長くなったので、リンク先からお読みください

個人で使う場合、1つは手元に、もう一つは銀行の貸金庫に置いておくなど地理的に分散して保管するなどし窃盗への耐性を上げることができそうですね。

また、2-of-4マルチシグとし4つの鍵を全部地理分散させておけば、あの厄介なニモニックによるバックアップもいらなくなるんじゃないか、とも思えます。2つ鍵を無くしたって動かせるし。

ちょっと冷静に考えてみましょう。本当にこれでいいんでしたっけ。

・Trezorを3台どこどこに保管した、と覚えておかなきゃ

・3つのニモニックを1カ所に置いておくわけにいかないのでこれも分散して保管しないと

・2-of-4の4台中3台を目の届かないところに置いておいたら気付いたら2台無くなっていた

などなどいかにも複雑で、少し気を抜くと逆に資産にアクセスできなくなったり、盗まれたりしそうです。

色々と考えるとよく分からなくなってきます。

こういったときは理論の出番です。数理モデルを構築して考察してみようと思います。

マルチシグのリスク評価

前提

マルチシグアドレスにおける資産を動かせる権限が窃取されるリスクを評価することを目的とします。

M-of-Nマルチシグにおいて、M個の秘密鍵漏洩でもって資産を動かせる権限が窃盗されたと判断することにします。

ハッキングや窃盗などにより秘密鍵が漏洩するというイベントはいつでも低確率で起こりうると仮定します。

本考察では、運用ミスによる秘密鍵の漏洩、リモートの攻撃者による窃盗による漏洩、物理的盗難による漏洩など漏洩イベントの内訳は区別しないこととします。

これらの前提の元、リスクを評価するための式を導出しました。

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to ビットコイン研究所.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.