Q「先日、Liquidの海外法人の取引所のMPCウォレットがハッキングされたとのことですが、MPCは秘匿計算や秘密計算などの分野で、結構前から研究されてるようですが、具体的にどのような技術なのでしょうか?」
よい質問なので、できるだけわかりやすく解説したいとおもいます。
Liquidは2019年に、MPC技術を自社のウォレットに取り入れてセキュリティを強化したというリリースを打っています。それが破られたのですから、皮肉ですね。
(https://blog.liquid.com/.../updates-our-cold-wallet...)
さて、MPCとは何かに入るまえに、それ以外の技術をざっとおさらいしておきましょう。
i)マルチシグ
マルチシグは複数の秘密鍵をもって署名したトランザクションを有効とするものです。典型的な2 of3のマルチシグでは3つの秘密鍵のうち2つによる署名があれば有効とします。これは、ビットコインのプロトコルのなかで処理検証されるもので、ビットコインによるルールになっています。
デメリットとしては、トランザクションのサイズが大きくなるという点があり、送金コストが掛かるという点です。しかし、NativeのSegwitを使えば、最もサイズが大きい公開鍵と署名部分をまるごと手数料からカウント除外できますので、マルチシグであっても普通の送金と同じコストで送金できます。よって大きなデメリットはなくなってきています。
マルチシグは、一斉に署名する必要がなく、それぞれ別の場所に存在する秘密鍵で、順番に署名していけばよく、途中のデータは他人に見られても問題ありません。
この手順がバラバラだったのですが、統一の規格もできて、マルチシグの利用が進んできているとおもいます。ただ、これはビットコインの話であって、取引所としては、マルチシグを利用できないコインの安全をどう守るかというのも考えなくてはいけません。
たとえばイーサリアムはプロトコルレベルでマルチシグの機能がありません(コントラクトで実現させるということになります)。
ii)シャミアの秘密分散法
そこで、より汎用的な秘密鍵の分散技術として、シャミアの秘密分散法というものを取り入れている取引所も多いです。
これは、単一の秘密鍵を複数の断片に分割します。たとえば3つなり5つなりです。この断片が揃うと元々の秘密鍵を復元できます。マルチシグのように3つの断片のうち2つが揃うと復元できるといった閾値を設定することも可能です。
大変便利におもいますが、最大の欠点があります。それは単一障害点があるということです。それぞれの断片を寄せ集めて、いちど完全な秘密鍵の情報に復元しなくては署名できないのです。つまり最終的には1つの秘密鍵で署名しているのと一緒なわけで、そこが単一障害点になります。
iii) MPC
シャミアの秘密分散法の単一障害点を取り除いたのがMPCです。
シャミアの分散法では、断片から秘密鍵を復元して、それをつかって署名をしました。復元のところが単一障害点になったのです。
MPCでは、秘密鍵を同じく3つなり5つの断片に分割しますが、秘密計算という手法をつかって、単一障害点をクリアしています。
どういうことかというと、まず、それぞれの断片の鍵をつかって電子署名をつくります。その電子署名は完全なものではなく、電子署名の断片です。この電子署名の断片自体は意味有る情報にはなっていません。
しかし、電子署名の断片をあつめると、なんと完全な電子署名を創りだすことができるのです。