151 / 736DURESS

Duress Wallet

強要される事態に備えた別のウォレット

別の PIN で別のウォレットが開くことがあります。何を切り分けられるのか、バックアップはなぜ必要か、そして機器だけでは人の安全を保証できない理由を説明します。

Duress Wallet は、ビットコインへのアクセスを渡すよう強要されたときに見せるため、あらかじめ用意するウォレットです。実装によって、専用の PIN や別の passphrase、つまり追加の秘密の文字列で開きます。主なウォレットの代わりにこちらへのアクセスを渡すことを意図しています。ただし、中のビットコインは本物で、実際に使えます。開示するアクセスを限定できる場合はあっても、相手が表示残高を信じることや、脅しをやめることまでは保証しません。

ウォレットは、ビットコインを受け取ったり送ったりするためのアプリや機器です。秘密鍵は、ビットコインの支出を承認するための秘密の数値です。ペーターが主な貯蓄を置くウォレットのほかに、強要される事態に備えて別のウォレットを用意したとします。対応機器では、専用 PIN を入れると後者だけが開き、そのウォレットの鍵で支払いに署名できるようになります。このモードから主なウォレットにはアクセスできません。しかし、架空の残高を見せる偽の画面ではありません。別のウォレットからの支払いも通常どおり Bitcoin ネットワークに送られます。Duress Wallet という名称だけでは、鍵の作り方も、PIN がほかに何を実行するかも分かりません。ペーターが理解すべきなのはメニュー名ではなく、機器の具体的な動作です。 [1] [6] [7]

PIN は通常、鍵を守る機器である Hardware Wallet のロックを解除します。BIP39 passphrase の役割は別です。単語で記録するバックアップである Seed Phrase とともに seed、つまり鍵を導出する出発点となるデータの計算に使われます。passphraseに入力ミスがあっても受け付けられるため、多くの場合は別の空のウォレットが開きます。BIP39 は計算前に正規化によって文字の表現をそろえます。元に戻るには正しいバックアップと元の passphrase が必要で、Trezor が代わりに復元することはできません。その変更はメールのパスワード変更とは違い、ビットコインが新しいウォレットへ移るわけではありません。passphrase 対応であっても、専用 Duress PIN があるとは限りません。 [2] [3]

相手がペーターの主なウォレットを見たことがある、あるいはそのアドレスを知っているなら、別の画面で小さい残高を示しても、その知識は消えません。BIP39 は複数の有効なウォレットを可能にしますが、ほかのウォレットが存在しないという証明にはなりません。COLDCARD は、一人の署名者の支出ルールを設定する SSSP の説明でこの点を示しています。主 PIN を知る人は XPUB、つまり対応するアドレスと残高を監視できる拡張公開鍵を出力できます。XPUB 単独で支払いに署名はできなくても、情報は分かります。購入記録や以前のアプリへのアクセスも関係します。ただし、ブロックチェーン上の取引のつながりだけで持ち主の身元が証明されるわけではありません。 [2] [5]

Trick PIN には別のウォレットを開くだけのものも、秘密データを消したり機器を永久に使用不能にしたりするものもあります。結果はそれぞれ異なります。支出条件に結び付けられた金額である Bitcoin の出力は、ブロックチェーン上に残ります。完全なバックアップがあれば、別の機器からアクセスできる場合があります。使える鍵のコピーが一つしかなく、それを失えば、持ち主自身もアクセスを失いかねません。また、消去しても脅している相手の反応は制御できません。この機能の説明は、危険な場面で使うよう勧めるものではありません。 [1] [6]

「予備の PIN」と書き留めるだけでは足りません。ペーターは主なウォレットと別のウォレットを、それぞれ何で復元するのかを知る必要があります。Seed Phrase、必要に応じた passphrase、実装が要求する導出パラメーターです。バックアップの単語は、忘れた BIP39 passphrase の代わりにはなりません。独立したテスト用データで練習する際は、既知の受取アドレスを照合し、再起動後にどのウォレットが開くかを確かめます。アプリが何らかの有効なウォレットを開いても、目的のウォレットを復元できた証拠にはなりません。実際のウォレットの唯一のバックアップで、破壊的な機能を試すべきではありません。 [3] [4]

電源を切った機器の盗難、バックアップの盗難、人への直接的な強要は別々の状況です。相手の情報や能力も違います。Duress Wallet は、自分で鍵を管理する Self-custody の計画に組み込める場合がありますが、必ず通用する筋書きはありません。別のウォレットに入れる額にも、技術的に安全を証明できる金額はありません。自分と身近な人の安全、復元できること、自分の操作ミスも考える必要があります。機器の試験で分かるのはソフトウェアの動作であって、攻撃者の将来の行動ではありません。EFF が安全計画の基礎に置くのは、具体的な脅威と定期的な見直しです。 [6] [5]

BIP85では、一組の主な秘密データから別のウォレットを繰り返し作り直せます。出発点はBIP32のマスター拡張秘密鍵で、秘密鍵に、さらに鍵を導出するためのデータを加えたものです。計算は全段階がhardenedのパスを通り、各段階で秘密鍵の情報を必要とします。その結果をHMACという鍵付きハッシュ関数で処理します。この階層では、導出されたウォレットを子、共通の出発点を根と呼びます。子から根を逆算できない設計ですが、根と必要なパラメーターを得た人は子を再生成できます。したがって、アドレスが別でもバックアップが独立しているとは限りません。共通の根から導出したウォレット、別のpassphraseを使うウォレット、本当に独立したseedを持つウォレットを区別する必要があります。復元には正しいパスと、特定の子を選ぶ番号であるindexも重要です。 [4]

COLDCARD の文書は、主 seed を消さない Duress Wallet と、主 seed を消してから指定ウォレットを開く Wipe → Wallet を区別します。三つの BIP85 方式と従来の Legacy Wallet が示されています。主な単語バックアップが 24 単語なら BIP85 方式の index は 1001–1003、12 単語なら 2001–2003 です。Legacy のパスは m/2147431408h/0h/0h で、h は hardened の段階を表します。これらは特定実装の情報であり、Bitcoin のコンセンサス規則ではありません。別の機器や firmware、つまり機器内部のソフトウェアの別バージョンで、似た名前だから同じ動作だと考えることはできません。復元にも正確なモードの把握が必要です。 [1]

理解を深めるには、この項目とあわせて次もお読みください BIP85, BIP39 passphrase, Hardware Wallet, セルフカストディ, Secure Element, Seed Phrase.

DOC · 001COLDCARD — PINs and Trick PINs文書 DOC · 002BIP 39 — Mnemonic code for generating deterministic keys仕様 DOC · 003Trezor — What is a passphrase?文書 DOC · 004BIP 85 — Deterministic Entropy From BIP32 Keychains仕様 DOC · 005COLDCARD — Single Signer Spending Policy文書 DOC · 006EFF — Your Security Plan一次資料 DOC · 007Bitcoin Developer Guide — Wallets文書
改訂日: 一次資料を優先 · 投資助言ではありません