OpenBlock Operation

Posted on May 11, 2023Read on Mirror.xyz

MPCウォレットとは

昨今、ウォレットからの資産流出が世間を騒がせています。 私たちはどのようにしてウォレットの安全性を高めることができるでしょうか。 ウォレットアプリにはさまざまな種類があり、それぞれが異なる特徴を持ちます。 中でも高い安全性を誇るのがMPCウォレットです。 一体どのようなウォレットなのか、以下に解説します。

MPCウォレットとは

MPCウォレットとは、Multi-Party Computation(マルチパーティーコンピューテーション)技術を用いたウォレットです。 MPC技術で複数の参加者がそれぞれ別々に計算を行うことで単一障害点をなくし、秘密鍵をより安全に管理することができます。 MPC技術自体は、1980年代から研究されてきた暗号化技術であり、金融、医療、IoTなどの分野で幅広く活用されています。 この技術を秘密鍵管理に応用したのがMPCウォレットです。

MPCウォレットの仕組み

一般的なウォレットでは単一の秘密鍵を使用していますが、 MPCウォレットでは独立して作成された2つの鍵を用いて秘密鍵を管理します。

一つはユーザーのデバイスに保存され、 もう一つはMPCウォレットを運営する会社のサーバーに保存されます。 この方式により、1つの鍵が失われた場合でも残りの鍵を使用してウォレットにアクセスできるため、より高い安全性が確保されます。

マルチシグウォレットとの相違点

MPCウォレットとマルチシグウォレット、両者とも複数人で秘密鍵を管理することには変わりありませんが、その仕組みに大きな違いがあります。

マルチシグウォレットは、事前に複数人が参加するマルチシグの設定を行い、ある特定の取引に必要な署名の数を設定します。例えば、3人でマルチシグウォレットを管理する場合、3人中2人、または3人全員の署名を必要とすることができます。マルチシグウォレットでは、それぞれの参加者が個別に秘密鍵を持ち、各取引で複数人が署名を行います。

一方で、MPCウォレットでは秘密鍵を持つ複数の参加者が、それぞれ秘密鍵を使って計算を行い、その計算結果から秘密鍵を生成します。この時、生成された秘密鍵を用いて取引を行います。MPCウォレットでは一人の参加者が秘密鍵を紛失しても、残りの参加者が秘密鍵を再生成することでウォレットへのアクセスが可能になるというメリットがあります。

MPCウォレットのメリット

①単一障害点が存在しない

単一障害点とは、あるシステムや装置において、1つの部分が壊れてしまった場合にその部分の故障が原因でシステム全体の動作に悪影響が及んでしまう部分を指します。 MPCウォレットには単一障害点が存在しません。 一ヶ所で秘密鍵が作成されたり、保管されたりすることがないため、サイバー犯罪や内部の不正行為から鍵を保護し、暗号資産の盗難を防ぐことができます。

②新しいチェーンを含めた、様々なプロトコルに対応可能

MPCウォレットはマルチシグウォレットよりも数多くのチェーンやDappsに対応できます。マルチシグウォレットは全てのチェーンやプロトコルにサポートされているわけではありません。一方、MPCウォレットは多くのブロックチェーンで使用され、標準化されているECDSA(楕円曲線電子署名アルゴリズム)またはEdDSA(エドワード曲線電子署名アルゴリズム)を用いているため、様々なブロックチェーンやDappsに柔軟に対応することができます。

③手数料が安い

一般的に、マルチシグウォレットはシングルアドレスウォレットよりも手数料が高くなります。これは複数のアドレスに対して署名が必要であるためです。 一方、MPCウォレットはブロックチェーン上で単一のアドレスとして表現され、分散署名はブロックチェーンの外で計算されます。 これにより、マルチシグよりも手数料を抑えることができます。 1日に数百件ものトランザクションを発行する際、大きな差となって表れます。

④MPC技術は検証され、実用化されている

MPC技術は1980年代から広くレビューを受け、多数の侵入テストをクリアしてきた技術です。そのため、攻撃対象領域が最小限に抑えられています。マルチシグウォレットではプロトコルごとにマルチシグ対応のコードを書く必要があるため、安全性はその分低下します。実際、マルチシグの実装が上手くいかなかったばかりに資産の流出を許してしまった事件が過去に何度も起きています。

⑤オペレーションの柔軟性を高める

組織のメンバーが増減する際には、それに伴ってウォレットのアクセスに必要な署名数を変更する必要があります。

マルチシグウォレットの場合「5名中、3名の署名が必要」であったウォレットを、「10名中6名の署名が必要」な状態に変更する際には、新しいウォレットを作成し、全ての資産を新たなウォレットに移動した後、新たなウォレットアドレスを取引先に通知するという手続きが必要になります。 取引先へ新たなウォレットアドレスを通知する前に、取引先が古いアドレスに送金した場合、その資金は取り出せなくなる危険性があります。(古いウォレットの秘密鍵を保管していた場合は、その限りではありません。)一方でMPCウォレットの場合は、既存の担当者が『新しい分散計算』と『新しいユーザーシェアの追加』に同意すれば、署名スキームとウォレットアドレス(入金アドレス)を維持することができます。結果的に、新しいウォレットを作る必要はなく、資産を移動する必要もありません。取引先は引き続き既存のアドレスに送金可能です。この点を踏まえると、MPCウォレットは組織の変化に柔軟に対応可能なウォレットであると言えます。

⑥プライバシーとアカウンタビリティ

プライバシーの観点から、署名に関して『オンチェーンで透明性を持つこと』は、組織にとって必ずしも有益に働くとは限りません。 署名スキームやワークフローが全世界に公表されることに等しいからです。 誰がいつ署名しているのか、何名の署名が必要なのかといった機密情報が公開されてしまうと、物理的に攻撃されるリスクが生じます。

MPCウォレットならば、この問題を回避できます。 MPCウォレットでは各共同署名コンポーネントが部外者に公開されることはありません。 どの鍵が署名に参加したのかは、オフチェーンのアカウンタビリティを提供することで監査可能です。

⑦ハードウェア隔離モジュールと併用することで安全性を高めることが可能

暗号鍵保護を目的とした暗号化プロセッサ『ハードウェア隔離モジュール』(HSM:Hardware Security Module) という装置があります。これ単体では依然としてのリスクが残りますが、MPCウォレットとHSMの併用によって、HSMだけではカバーしきれなかった穴を埋め、多重構造の強固なセキュリティを実現可能です。

MPCウォレットのデメリット

①より多くの計算資源が必要となる

複数の参加者が秘密鍵生成のための乱数生成を必要とするため、コンピューターの計算資源を多く必要とします。これにより、アプリケーション全体のパフォーマンスが低下したり、応答時間が遅くなる可能性があります。

②高い通信コストが掛かる

複数の参加者にデータを配布するため、通常と比較すると通信コストが増加する可能性があります。

おすすめのMPCウォレット『Openblock Wallet』

OpenblockはEthereumメインネットはもちろん、Polygon、Avalanche、Solana、Cosmos、Aptosといったネットワークにも対応しており、さらにネットワークを切り替える必要もありません。シームレスなWeb3体験をより安全に。

OpenBlock:https://openblock.com/ OpenBlock Japan Twitter:https://twitter.com/OpenBlockJapan