シードフレーズのためのShamir Secret Sharing: バックアップをシェアに分割する (SLIP-39)
— By Tony Rabbit in Tutorials

Shamir Secret Sharingシードフレーズのバックアップが、ウォレットの復元をN個のシェアに分割し、そのうち任意のM個で復元できる仕組みを学び、SLIP-39で単一障害点を排除します。
Shamir Secret Sharingシードフレーズのバックアップは、ウォレットの復元シークレットをいくつかの個別のシェアに分割します。選択された任意のサブセット(例えば、5つのうち3つ)で元のシークレットを再構築できますが、それより少ない数では何も明らかになりません。Shamir Secret Sharing (SSS) は、1979年に暗号学者Adi Shamirによって発表された数学に基づいたしきい値スキームであり、SLIP-39はこれを暗号ウォレットに適用する標準です。紛失、盗難、破壊される可能性のある脆弱な1つのバックアップの代わりに、冗長性と盗難への耐性を同時に得ることができます。このガイドでは、安易な分割が危険である理由、しきい値の数学がどのように機能するか、レイアウトの選択方法、そしてTrezorでそれを行う方法を説明します。
主要なポイント
- SSSはしきい値スキームです: N個のシェアのうちM個でウォレットを復元でき、M個未満では何も明らかになりません。
- 24単語のフレーズを手動で3分割するのは、各チャンクが実際の情報漏洩を引き起こすため安全ではありません。
- SLIP-39は、TrezorのようなハードウェアウォレットにSSSを実装するオープンスタンダードです。
- しきい値の選択(2-of-3 vs 3-of-5)は、利便性と盗難耐性をトレードオフします。
- SSSはストレージ媒体に依存しません。各シェアには引き続き紙または金属を選択します。
24単語のフレーズを安易に3分割するのが安全でない理由
直感的なアイデアは、24単語のシードフレーズを3枚のカードにそれぞれ8単語ずつ書き、別々に隠すというものです。これは自己管理における最も危険な間違いの1つであり、セキュリティのトレードオフの両端で失敗します。
まず、エントロピーが漏洩します。24単語のBIP-39シードは256ビットのランダム性をエンコードします。攻撃者が3枚のカードのうち1枚を見つけた場合、彼らは何も得ていないわけではなく、既知の位置にある具体的な8単語を知ってしまいます。これにより、残りの探索空間は劇的に縮小します。3枚のうち2枚のカードがあれば、残りの3分の1をブルートフォースで解読することは、意欲的な攻撃者にとって十分に可能です。チャンクは不透明な断片ではなく、キーの平文フラグメントです。
次に、実際の冗長性がありません。いずれか1枚のカードを紛失すると、シードは永遠に失われます。フレーズを再構築するには3つのチャンクすべてが必要だからです。したがって、盗難リスクを同時に高め、逃れようとしていた単一障害点の脆弱性を維持してしまっています。リカバリーフレーズがなぜこれほど重要なのかを再確認したい場合は、シードフレーズから暗号ウォレットを復元する方法に関するガイドをご覧ください。
SLIP-39とShamir Secret SharingがシードをM-of-Nシェアに分割する方法
Shamir Secret Sharingは、ハサミではなく数学で両方の問題を解決します。シークレットは、有限体上の多項式曲線上の点としてエンコードされます。M個の点が必要な曲線を定義するために、このスキームはそこからN個の点を抽出し、各株主に1つずつ渡します。任意のM個の点は、曲線を一意に決定し、したがってシークレットも一意に決定します。M-1個の点では、曲線は完全に未決定であり、すべての可能なシークレットが等しく可能性を秘めています。残りのシェアは正確にゼロの情報しか明らかにしません。
これが分割との決定的な違いです。SLIP-39のシェアは、あなたの単語の一部ではありません。各シェアはそれ自体が20単語または33単語のニーモニックであり、単独では暗号ノイズです。3-of-5設定の2つのシェアを持っていても、攻撃者にウォレットに関する有用な情報は何も伝わりません。これが、このスキームが負債を増やすものではなく、真の単一障害点除去となる理由です。SLIP-39 (SatoshiLabs Improvement Proposal 39) は、チェックサム、パスフレーズサポート、専用の単語リストを備え、これをウォレット向けにパッケージ化したオープンスタンダードです。
しきい値の選択: 2-of-3 vs 3-of-5とストレージの地理
MとNの選択は、技術的な決定ではなく、リスク管理の決定です。2つの数字がすべてを定義します。Mは復元に必要なシェアの数であり、NマイナスMは失っても許容できるシェアの数です。MとNの間のギャップが、あなたの冗長性予算です。
2-of-3のレイアウトは一般的な出発点です。1つのシェアを失っても復元でき、攻撃者は資金を盗むために3つの場所のうち2つを必要とします。3-of-5のレイアウトはより堅牢です。2つのシェアを失っても許容でき、攻撃者は5つの場所のうち3つを侵害する必要があります。しきい値が高いほど盗難耐性は向上しますが、実際に必要になったときに十分なシェアを集められない可能性も高まります。
ストレージの地理は数字と同じくらい重要です。同じ引き出しに保管されたシェアは、単一の損傷したコピーに対する冗長性を提供しますが、家事や強盗に対しては何も提供しません。シェアを異なる信頼ドメインに分散させてください: 自宅の金庫、銀行の貸金庫、信頼できる親戚、別の不動産などです。SSSはシークレットがどのように分割されるかを決定するものであり、各シェアがどのような素材に刻まれるかを決定するものではないため、紙と金属でシードフレーズを安全に保管する方法に関する私たちのアドバイスと組み合わせてください。遺産計画については、あなたが亡くなったときにあなたの暗号資産はどうなるかに関するガイドでも、相続人へのシェアの分配について説明しています。
Trezor SLIP-39 ウォークスルー
Trezorハードウェアウォレットは、Trezor Model TおよびSafeシリーズデバイスで利用可能なShamir Backupという名前でSLIP-39をネイティブに実装しています。SatoshiLabsがこの標準を策定したため、デバイス上のフローは一流です。Trezor Suiteアプリを使用した一般的な手順は次のとおりです。
- デバイスで新しいウォレットセットアップを開始し、単一のリカバリーフレーズの代わりにShamir Backupを選択します。既存の単一シードウォレットはそのまま変換できません。新しいウォレットを作成し、資金を移動する必要があります。
- デバイス画面で、シェアの総数(N)としきい値(M)を設定します。ハードウェアがルールを強制するため、不可能な組み合わせを選択することはできません。
- デバイスは各20単語のシェアを1つずつ表示します。各シェアを独自のバックアップカードまたは金属プレートに書き込み、「Share 1 of 5」のように明確にラベル付けします。
- デバイスは、完了する前に転記が正しいことを確認するために、各シェアからいくつかの単語を確定するよう促します。
- 選択した場所にシェアを配布します。後で復元するには、任意のM個のシェアをTrezorデバイスに再入力します。これにより、マスターシークレットはデバイス上でのみ再構築されます。
再構築はセキュアエレメント内で行われるため、完全なシークレットがインターネットに接続されたコンピューター上に存在することはありません。まだハードウェアを選択中の方は、最高のコールドウォレット比較でオプションを比較してください。
失敗モード: シェアの紛失、高すぎるしきい値、人的ミス
SSSは単一障害点を除去しますが、不注意だと自分自身をロックアウトする新しい方法を導入します。最も一般的な失敗は、シェアをどれだけ確実に保管できるかに対してしきい値を高すぎに設定することです。4-of-4スキームには冗長性がまったくありません。4つの損失のうちいずれか1つが致命的になるため、単一のバックアップよりも厳密に悪いです。常にNをMより大きく保ってください。
鏡像の失敗は、NマイナスM個を超えるシェアを失うことです。3-of-5の設定では、3つのシェアを失うと復元できません。定期的にシェアを監査し、損傷している、判読できない、または信頼できなくなった所有者のシェアは交換してください。2つの異なるウォレットからのシェア、または同じウォレットの2つの異なるSSSセッションからのシェアを混ぜると、シェアは一緒に生成されたセット内でのみ結合するため、これも失敗します。
最後に、各個別のシェアを、転送中の完全なシードと同じくらい注意深く扱ってください。しきい値未満のシェア数では何も明らかになりませんが、SLIP-39パスフレーズ(設定した場合)は、シェアとは完全に別に記憶または保管する必要がある唯一のピースです。より広範な運用セキュリティ習慣については、ハッカーから暗号資産を保護する方法に関するガイドをご覧ください。
この記事は教育目的のみであり、金融アドバイスではありません。