Shielded ZEC のための FROST としきい値カストディ
FROST プロトコルの暗号学的な詳細については、FROST 技術ページを参照してください。
FROST しきい値カストディは Zcash の会話でたびたび話題になります。ZecHub Hackathon 2026 でも最も注目されたトラックでしたが、その概念が平易な言葉で説明されるとは限りません。このページでは、それが何を意味するのか、実際にいつ必要になるのか、どのようなトレードオフがあるのか、そして現在どのツールが対応しているのかを扱います。
要点
- FROST を使うと、鍵保有者のグループが、誰か一人が完全な秘密鍵を保持することなく、shielded Zcash アドレスを共同で管理できます。
- t-of-n しきい値とは、支出のために t 人の共同署名が必要であり、t-1 人以下では単独で資金を動かせないことを意味します。
- トランザクションは通常の shielded トランザクションと同じ見た目で、しきい値署名が使われたことを示すオンチェーン上の痕跡はありません。
- これは transparent multisig(オンチェーンで公開され、Zcash が長年サポートしてきたもの)とは根本的に異なります。FROST は shielded プールの内部で機能します。
- DAO、取引所、カストディサービス、共同貯蓄、チームの財務管理など、鍵の単一障害点が許容できない場面で役立ちます。
FROST とは何か? 平易な説明
3 人のビジネスパートナーが、それぞれ鍵の一部を持っていると想像してください。共有ウォレットから支出するには、そのうち 2 人が同意して共同署名する必要があります。できあがるトランザクションは、通常の個人による送金とまったく同じに見えるため、ブロックチェーンを見ただけでは複数人が関与したことは分かりません。
FROST(Flexible Round-Optimized Schnorr Threshold Signatures)は、shielded Zcash でこれを可能にする暗号プロトコルです。これは Chelsea Komlo(University of Waterloo / Zcash Foundation)と Ian Goldberg によって作られました。
主な特性は次のとおりです。
- しきい値: 署名には t-of-n の署名者だけが参加すればよい(例: 2-of-3、3-of-5)
- Shielded: Orchard プライバシープール内で機能し、金額、送信者、受信者は非公開のまま
- 識別不能: 最終署名は通常の Zcash shielded トランザクションと同じ見た目
- ノンカストディアル: 完全な鍵を単独で保持する主体は存在せず、コーディネーターでさえ持ちません
どんなときにしきい値カストディを使うべきか?
しきい値カストディは、1 つの鍵や 1 人を失っても資金を失うことになってはならない場面で意味があります。
| 状況 | しきい値カストディが役立つ理由 |
|---|
| DAO またはチームの財務金庫 | 単独の管理者が一方的に資金を引き出せない。合意が必要 |
| 取引所またはカストディ事業者 | 鍵リスクを複数のセキュリティ領域や従業員に分散できる |
| 個人のコールドストレージ(信頼できる家族と) | あなた + 家族 2 人の 2-of-3。死亡やアクセス喪失があっても資金は失われない |
| エスクロー | 買い手、売り手、仲裁者がそれぞれシェアを保有し、2 者の合意で資金を解放 |
| 高額な助成金の支払い | ZCG 方式のように、支払い前に複数の独立した署名者を必要とする |
| 開発者の鍵管理 | 内部不正の脅威を防ぐ。単独のエンジニアがプロトコル資金を引き出せない |
一方で、単独で管理する個人ウォレットや少額資金、あるいは追加の調整コストがリスク低減を上回るような状況では、しきい値カストディはおそらく必要ありません。
transparent multisig とどう違うのか?
Zcash は長年にわたり transparent multisig をサポートしてきました。これは t-address からの支出に複数の鍵を必要とする仕組みです。しかし transparent multisig には大きなプライバシーコストがあります。multisig の構造、すべての公開鍵、そしてすべての署名者がブロックチェーン上で可視化されるのです。
FROST は、shielded プール内で動作することでこれを解決します。
| Transparent multisig | FROST しきい値(shielded) |
|---|
| プール | Transparent(公開) | Orchard(shielded) |
| 署名者がオンチェーンで見えるか | はい — すべての公開鍵が露出 | いいえ — 単独署名者の支出と区別不能 |
| 金額が見えるか | はい | いいえ |
| 必要な調整 | オンチェーンスクリプト | オフチェーンでの通信ラウンド |
| プライバシー | なし | 完全な shielded プライバシー |
トレードオフと制約
FROST は強力ですが、使う前に理解しておくべき現実的なトレードオフがあります。
調整のオーバーヘッド
署名ラウンドを完了するには、署名者が同時、またはほぼ同時にオンラインである必要があります。t 人の署名者が複数のタイムゾーンに分かれていたり、接続が不安定だったりすると、支出には単独ウォレットにはない調整が必要になります。
クォーラムが利用できないと署名できない
十分な数の鍵保有者が不在(病気、移動中、応答不能)だと、資金は一時的に使えなくなります。しきい値とシェア数は慎重に選ぶ必要があります。2-of-3 は 2-of-2 よりも耐障害性があります。
鍵生成セレモニー
FROST のセットアップには、n 人の参加者全員が同時にオンラインになる分散鍵生成(DKG)セレモニーが必要です。これは一度きりですが、慎重に行わなければなりません。DKG 中に参加者が侵害されると、セキュリティが損なわれます。
ツールはまだ成熟途上
shielded Zcash 向け FROST は比較的新しい技術です。IETF 標準(draft-irtf-cfrg-frost)は成熟していますが、ウォレット統合はまだ限定的です。標準的な単一鍵ウォレットと比べると、多少の粗さがあることを想定してください。
復旧の複雑さ
シャードを 1 つ失っても終わりではありません(それがしきい値の意義です)。しかし復旧計画は事前に文書化しておく必要があります。バックアップは誰が持つのか? 2 つのシャードを同時に失ったらどうするのか?
Zcash で FROST を構築しているのは誰か?
Zcash Foundation — frost.zfnd.org
Zcash Foundation は、動作する FROST 実装とデモサイトを公開しています。これはテストと開発に使われているリファレンス実装です。
Ywallet FROST Demo
Ywallet には初期段階の FROST デモ統合があり、Ywallet FROST Demo ガイドで解説されています。Ywallet は現在メンテナンスされておらず、Ironwood 向けに更新される予定もないため、このガイドは現在実行するものではなく、背景情報としてお読みください。同じ開発者による Zkool はメンテナンスされている後継であり、機能の一つとして FROST マルチシグを挙げています。
ZecHub Hackathon 2026 — FROST トラックのプロジェクト
FROST トラックは ZecHub Hackathon 2026 で最も競争の激しい部門でした。注目プロジェクトは次のとおりです。
- ZecVault — メインネット上で決済される 2-of-3 shielded エスクロー(FROST しきい値)
- Steward — 復旧重視の UX を備えた shielded Zcash 向けしきい値カストディ
Coinbase
Coinbase は、自社のしきい値署名システム(Bitcoin 向け)のために本番用 FROST 実装を構築しました。これは前処理段階を取り除き、アグリゲーターの役割をすべての参加者に分散するよう修正されたものです。彼らの経験は、本番スケールにおける FROST のセキュリティモデルを裏づけています。
署名セッションの流れ(簡略版)
-
セットアップ(一度だけ): n 人の参加者全員が分散鍵生成(DKG)セレモニーを実行します。各参加者は秘密シャードを受け取り、共有公開鍵が導出されます。完全な秘密鍵を知る者は誰もいません。
-
署名者を調整: 支出が必要になったら、コーディネーター(署名者の 1 人でもよい)が、署名に参加する意思のある t 人の参加者からコミットメントを集めます。
-
ラウンド 1: 各参加署名者が nonce を生成し、コミットメント(公開情報であり機微情報ではない)をブロードキャストします。
-
ラウンド 2: 各参加署名者が、自分の秘密シャードを使って部分署名を計算し、それをブロードキャストします。
-
集約: コーディネーターが t 個の部分署名を 1 つの最終 Schnorr 署名にまとめます。これはオンチェーンでは単独署名と区別できません。
-
ブロードキャスト: トランザクションは通常どおり Zcash ネットワークにブロードキャストされます。
もし署名者の誰かが不正な部分署名を送信した場合、プロトコルはその署名者を特定して中止します(その署名者は今後のセッションから除外されます)。調整はオフチェーンで行われ、ブロックチェーンに見えるのは最終トランザクションだけです。
しきい値パラメータの選び方
| Setup | Resilience | Risk |
|---|
| 1-of-1 | 耐障害性なし — 単一障害点 | 鍵の紛失 = 永久的な損失 |
| 2-of-2 | 両方の署名者が必須 — 耐障害性なし | 1 人でも不在なら資金凍結 |
| 2-of-3 | 1 つのシャードを失うか利用不能でもよい | 3-of-5 よりセキュリティ余裕は低い |
| 3-of-5 | 2 つのシャードを失ってもよい; 強いセキュリティ | 調整オーバーヘッドが大きい |
| 3-of-7 | 機関向けグレード; 2 件の障害に耐える | 調整コストが高い |
多くのチームにとって実用的な出発点は、2-of-3(耐障害性があり、調整が最小限)または 3-of-5(機関向けで、より高いセキュリティ)です。
関連ページ
- FROST — 技術的詳細解説 — プロトコルの暗号学的詳細(DKG、署名ラウンド、セキュリティ証明)
- Ywallet FROST Demo ガイド — 背景:Ywallet は現在メンテナンスされていません
- Viewing Keys — shielded アドレスへの読み取り専用アクセス(しきい値カストディを補完)
- Zcash Shielded Assets — FROST は ZSA 発行のための重要な基盤でもある
リソース