Multi Party Computation (MPC)とは何ですか?
Multi Party Computation (MPC) は、複数の当事者が互いの秘密の入力を明かすことなく共同で計算を行える仕組みです。暗号分野では、秘密鍵を複数の共有に分割し、どの個人や端末も鍵全体を保持しないようにしてそれでもグループとして取引に署名できるようにすることを指すことが多いです。仲間がそれぞれ自分の鍵を同時に回すことで金庫が開く、というイメージです。
「MPCは単に秘密を守るだけだ」という見方がありますが、完全にはそうではありません。プライバシーに役立ちますが、主な利点は実際の鍵を共有せずにセキュリティを高め、管理を分散できる点です。 プライバシー
Multi Party Computation (MPC) の仕組み
MPCウォレットがトークン送金に署名する場合の簡単な流れは次のとおりです:
- ステップ 1:スマートフォンで取引を承認します。そのリクエストは秘密の共有を保持する端末やサービスに送信されます。
- ステップ 2:各参加者はローカルで暗号計算を行い、自分の共有から部分署名を作成します。誰も自分の共有を公開しません。
- ステップ 3:部分署名を組み合わせて一つの有効な署名を作成します。完全な秘密鍵はどこにも存在しません。
- ステップ 4:閾値を満たすと、ブロックチェーンは通常のECDSAやEdDSA署名と同様にその署名を受け入れます。
- ステップ 5:共有はローテーションやリフレッシュが可能で、端末の紛失がセキュリティ低下につながるのを防げます。
この流れは多くのウォレットやカストディサービスで見られます。
Multi Party Computation (MPC) が重要な理由
利点は明確です:
- 利点:単一障害点がありません。端末を一つ失っても破滅的な結果にはなりません。どの端末も鍵全体を保持していないからです。
- 視点:署名はオフチェーンで行われるため、チームや財務の承認を柔軟に保ちながら全体的な スケーラビリティ に寄与します。
- 利用例:セルフカストディウォレット、チーム承認フローを持つ取引所、DAO、ポリシーが厳格な機関向けカストディなどで採用されています。
チームに合った閾値を選んでください。5人中3人の設定は、出張や端末故障があっても支払いが止まらない余裕を与えます。
Multi Party Computation (MPC) の主要な特徴
目立つ点は次のとおりです:
- 閾値:n参加者のうち任意のtが署名できるため、1つの共有がオフラインでも作業を続けられます。
- キーレス:秘密鍵は決して組み立てられないため、署名やバックアップ時に単一の漏洩が起きる可能性が低くなります。
- ポリシー:タイムロック、ジオフェンス、資産ごとの上限などのルールを署名の前に追加できます。
- リフレッシュ:公開アドレスを変えずに共有を更新できるため、長期的な露出を抑えられます。
- 監査:各署名ステップをログに残してレビューできるため、リスク分析 に適しています。
バリエーション
MPCは一連の技術群です。次のような種類があります:
- 閾値署名:参加者が協力して標準的なECDSAやEdDSAの署名を共同生成する方式。
- 共有:Shamirなどの秘密分散方式で鍵共有や更新を行う方式。
- 回路:当事者が入力を明かさずにプログラムを共同評価するガーブルド回路など。
- 準同型:暗号化データ上で計算し、最終結果だけを公開する方式。
MPCは署名プロセスを保護します。チェーン上での公開活動自体を隠すものではありません。金額や誰が誰とやり取りしたかを隠したい場合は、ゼロ知識証明を検討してください。
例
DAOの資金管理で5人中3人の署名が必要な場合を考えてみてください。各署名者の端末が部分署名を作成し、システムがそれらを結合して一つの有効な署名にします。チェーン上では通常の取引として扱われます。
豆知識
この考えは1980年代のYaoによる「百万長者問題」に由来します。これは二人が自分の正確な資産を明かさずにどちらが裕福かを知るという思考実験です。暗号技術はその思考実験を実務に応用しました。
まとめ
Multi Party Computation (MPC) により、誰も秘密を明かすことなくグループが一つの安全な署名者のように振る舞えます。これはチームワークですが、判定役は数学です。
