151 / 736DURESS

Duress Wallet

Отдельный кошелёк на случай принуждения

Другой PIN может открыть другой кошелёк. Что это разделяет, зачем нужна резервная копия и почему устройство не гарантирует безопасность человека.

Duress Wallet — кошелёк, подготовленный для раскрытия доступа, если кто-то заставляет владельца отдать доступ к биткоинам. В зависимости от реализации он открывается специальным PIN или другой passphrase — дополнительным секретным текстом. Задача состоит в том, чтобы показать этот кошелёк вместо основного. Однако биткоины в нём настоящие, и их действительно можно потратить. Функция способна ограничить раскрываемый доступ, но не гарантирует, что другой человек поверит показанному балансу или перестанет угрожать.

Кошелёк — приложение или устройство для получения и отправки биткоинов. Приватные ключи — это секретные числа, позволяющие разрешить расходование биткоинов. Представим, что Пётр хранит основные сбережения в одном кошельке, а другой готовит на случай принуждения. Поддерживающее эту функцию устройство после особого PIN может открыть только второй: предоставить его ключи для подписания платежей. Основной кошелёк в этом режиме недоступен. Но это не поддельный экран с вымышленными деньгами. Платёж из второго кошелька обычным образом попадает в сеть Bitcoin. Название Duress Wallet само по себе не объясняет ни способ получения ключей, ни другие действия, запускаемые PIN. Петру нужно понимать точное поведение устройства, а не только надпись в меню. [1] [6] [7]

PIN обычно разблокирует Hardware Wallet — устройство, защищающее ключи. У passphrase BIP39 другая роль: вместе с Seed Phrase, резервной копией в словах, она участвует в вычислении seed, то есть исходных данных для создания ключей. Даже passphrase с опечаткой принимается программой и обычно открывает другой пустой кошелёк. Перед вычислением BIP39 приводит запись символов к единому виду посредством нормализации. Для возвращения нужны правильная копия и исходная passphrase; Trezor не сможет её восстановить. Поэтому её изменение не похоже на смену пароля почты: биткоины не переместятся в новый кошелёк. Поддержка passphrase также не означает поддержку специального Duress PIN. [2] [3]

Если кто-то уже видел основной кошелёк Петра или знает его адреса, меньшая сумма на другом экране не стирает прежние сведения. BIP39 допускает разные действительные кошельки, но не доказывает отсутствие других. COLDCARD показывает это на примере SSSP — настройки правил расходования для одного подписанта: знающий основной PIN человек может экспортировать XPUB. Этот расширенный публичный ключ позволяет наблюдать соответствующие адреса и баланс. Сам он не подписывает платежи, но способен раскрыть информацию. Важны также записи покупок и прежний доступ к приложению. При этом одна лишь связь транзакций в блокчейне ещё не доказывает личность владельца. [2] [5]

Одни Trick PIN только открывают другой кошелёк, другие стирают секреты или навсегда блокируют устройство. Это разные последствия. Выходы Bitcoin — суммы, связанные с условиями расходования, — остаются записанными в блокчейне. При наличии полной резервной копии они могут оставаться доступными с другого устройства. Если исчезнет единственная пригодная копия ключей, доступ может потерять и владелец. Стирание также не управляет реакцией угрожающего человека. Поэтому описание функции не является советом включать её в опасной ситуации. [1] [6]

Пометки «запасной PIN» Петру недостаточно. Нужно знать, какие данные восстанавливают основной кошелёк, а какие отдельный: Seed Phrase, возможную passphrase и необходимые параметры получения ключей. Одни слова копии не заменяют забытую passphrase BIP39. При репетиции с отдельными тестовыми данными стоит сравнить известные адреса получения и проверить, что открывается после перезапуска. Появление какого-либо действительного кошелька в приложении ещё не подтверждает восстановление нужного. Разрушительные опции нельзя испытывать на единственной резервной копии настоящего кошелька. [3] [4]

Кража выключенного устройства, кража резервной копии и прямое принуждение человека — три разные ситуации. Знания и возможности противника в них различаются. Duress Wallet может быть частью продуманной Self-custody, когда владелец сам контролирует ключи, но не предлагает универсально надёжного сценария. Нет и технически проверяемой «безопасной суммы» для второго кошелька. Нужно учитывать личную безопасность, близких, восстановление и собственные ошибки. Испытание устройства показывает поведение программы, а не будущие действия нападающего. Поэтому EFF строит планирование безопасности на конкретных угрозах и регулярном пересмотре плана. [6] [5]

В BIP85 один основной набор секретных данных позволяет повторно создавать другие кошельки. Отправная точка — главный расширенный приватный ключ BIP32: приватный ключ вместе с данными для получения следующих ключей. Вычисление проходит по пути, где каждый шаг относится к типу hardened и требует приватного ключевого материала. Затем результат обрабатывает HMAC, хеш-функция с ключом. В этой иерархии производные кошельки называют потомками, а общий исходный ключ — корнем. По потомку не должно быть возможно вычислить корень; однако человек, получивший корень и нужные параметры, может воссоздать потомков. Поэтому разные адреса не гарантируют независимых резервных копий. Следует различать кошелёк от общего корня, кошелёк с другой passphrase и кошелёк с действительно отдельным seed. Для восстановления по-прежнему важны правильный путь и индекс — номер выбора конкретного потомка. [4]

Документация COLDCARD различает Duress Wallet без стирания основного seed и Wipe → Wallet, который стирает его, а затем открывает выбранный кошелёк. Она описывает три варианта BIP85 и более старый Legacy Wallet. Для основной резервной копии из 24 слов варианты BIP85 используют индексы 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Документация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией