Secure Multiparty Computation (MPC)とは何ですか?
Secure Multiparty Computation (MPC)は、各参加者が自分の入力を明かさずに共同で計算を行う手法です。全員が参加し、誰も内容をのぞき見することなく、最終結果だけが安全に出てきます。友人と食事代を割り勘する場面を想像してください。アプリがあなたの支払額を教えてくれるが、誰も他人の注文金額を見られないようなイメージです。
「MPCは単一鍵より遅くて安全性が低い」という見方がありますが、必ずしもそうではありません。信頼を複数の人や機器に分散させることで単一管理者のリスクを減らし、現代のMPCは実際のウォレットや取引所で十分に高速です。
Secure Multiparty Computation (MPC)の仕組み
短い例です。トレジャリーが資金を移動させるために署名を必要とします。数人のチームメンバーがそれぞれ秘密の一部を保持し、短いプロトコルを実行すると、チェーン上に有効な署名が現れます。ひとつのprivate keyを復元することは決してありません。
- 招待: 誰かがグループを設定し、必要な承認数を決めてデバイスを追加します。
- 分割: 秘密は共有に分けて配布され、所定のしきい値の共有だけが承認できます。
- 計算: 取引の承認が必要になると、各当事者が短いメッセージラウンドを実行して部分署名を作ります。
- 検証: システムは部分署名が有効で、正しい人物やデバイスからのものであるかを確認します。
- 署名: 部分署名を結合してチェーンが受け入れる標準的な署名を作成します。どの単一デバイスも全ての秘密を目にすることはありません。
要点はここです: 秘密をさらさずに管理できることです。
Secure Multiparty Computation (MPC)が重要な理由
では何が得られるでしょうか?
- 利点: 単一管理者の失敗やシードフレーズの悲劇が減り、セルフカストディの感覚を保てます。
- 視点: 現在のセキュリティの考え方に合致します: 責任を分担し、被害範囲を小さくし、復旧可能性を保ちます。
- 関連性: MPCはウォレット、取引所、DAOで見られます。プライバシーレイヤーと組み合わせることで、標準署名を損なわずにプライベート取引を可能にします。
Secure Multiparty Computation (MPC)ウォレットをテストする際は、共有を異なるデバイスやネットワークに置き、適切なしきい値を設定して、少額でリハーサルを数回行ってください。承認の練習が退屈に感じられるくらいが望ましいです。
Secure Multiparty Computation (MPC)の主な特徴
際立つ点:
- 秘匿性: どの参加者も全ての秘密を見ることはなく、それでもグループとして有効な結果を出します。
- 閾値: 3人中2人や5人中3人のように、柔軟な承認条件を設定できます。
- 耐障害性: 1台のデバイスを失っても、閾値が満たせる限りアクセス不能にはなりません。
- 移植性: 最終出力はチェーンが既に受け入れる標準的な署名です。
- 拡張性: 効率が重要です。バッチ処理やセキュアエンクレーブがレイテンシを低く保つ仕組みは拡張性を参照してください。
- ポリシー: 支出上限、タイムロック、大きな移動に対する追加承認などのルールを加えられます。
バリエーション
MPCにはいくつかの種類があります:
- TSS: 閾値署名方式は、多数の部分署名からひとつの通常の署名を作成します。
- Shamir: シャミアの秘密分散は、秘密を多数の断片に分け、選んだ閾値で再構築できます。
- Garbled: ガーブルド回路ベースのMPCは、署名だけでなく一般的な秘密計算向けです。
- Hybrid: ハイブリッドは、追加の防御のためにハードウェアエンクレーブやセキュアエレメントと組み合わせた方式です。
- Network: 共有が異なるチームやカストディアンに保管される複数組織の設定です。
Secure Multiparty Computation (MPC)は単一管理者リスクを減らしますが、ブロックチェーン上の活動を不可視にするものではありません。サービスを運営する場合は、承認ルールを監査要件や規制に合わせてください。
例
ある取引所が出金承認のために独立した3つのチームを設定し、どれか2つが承認するとMPCが有効な署名を作成して取引が実行されます。
豆知識
MPCは80年代のアンドリュー・ヤオの「百万長者の問題」から発展しました。これは二人が互いの資産額を明かさずにどちらがより裕福かを知るという思考実験でした。
まとめ
要点: 信頼を分散し、数学的な仕組みを維持して、ひとつの機器が単一障害点とならないようにしましょう。
