Duress Wallet to portfel przygotowany do ujawnienia, gdy ktoś zmusza właściciela do oddania dostępu do bitcoinów. Zależnie od rozwiązania otwiera go specjalny PIN lub inna passphrase, czyli dodatkowy tajny tekst. Chodzi o udostępnienie tego portfela zamiast głównego. Zawiera jednak prawdziwe bitcoiny, które można naprawdę wydać. Funkcja może ograniczyć ujawniony dostęp; nie gwarantuje, że druga osoba uwierzy w pokazane saldo albo przestanie grozić.
Portfel to aplikacja lub urządzenie do odbierania i wysyłania bitcoinów. Klucze prywatne to tajne liczby pozwalające zatwierdzić wydanie bitcoinów. Wyobraźmy sobie, że Piotr trzyma główne oszczędności w jednym portfelu, a drugi przygotowuje na ewentualny przymus. Obsługujące tę funkcję urządzenie może po specjalnym PIN-ie otworzyć tylko drugi: udostępnia jego klucze do podpisywania płatności. Główny portfel pozostaje w tym trybie niedostępny. Nie jest to jednak fałszywy ekran z wymyślonymi pieniędzmi. Płatność z drugiego portfela normalnie trafia do sieci Bitcoin. Sama nazwa Duress Wallet nie wyjaśnia sposobu wyprowadzania kluczy ani innych działań uruchamianych PIN-em. Piotr musi poznać dokładne zachowanie urządzenia, nie tylko etykietę w menu. [1] [6] [7]
PIN zwykle odblokowuje Hardware Wallet, urządzenie chroniące klucze. Passphrase BIP39 pełni inną funkcję: wraz z Seed Phrase, kopią zapisaną słowami, uczestniczy w obliczeniu seedu, czyli danych początkowych do tworzenia kluczy. Nawet passphrase z literówką zostaje zaakceptowana i zazwyczaj otwiera inny, pusty portfel. BIP39 przed obliczeniem ujednolica zapis znaków przez normalizację. Powrót wymaga właściwej kopii oraz pierwotnej passphrase; Trezor jej nie odzyska. Zmiana passphrase nie przypomina więc zmiany hasła do poczty: bitcoiny nie przeniosą się do nowego portfela. Obsługa passphrase nie oznacza też obsługi specjalnego Duress PIN-u. [2] [3]
Jeżeli ktoś wcześniej widział główny portfel Piotra lub zna jego adresy, mniejsza kwota na innym ekranie nie usuwa tej wiedzy. BIP39 dopuszcza różne poprawne portfele, ale nie dowodzi, że żaden dodatkowy nie istnieje. COLDCARD opisuje to przy SSSP, ustawieniach zasad wydawania dla jednego podpisującego: osoba znająca główny PIN może wyeksportować XPUB. Ten rozszerzony klucz publiczny pozwala obserwować odpowiednie adresy i saldo. Sam nie podpisuje płatności, może jednak ujawnić informacje. Znaczenie mają również zapisy zakupów i wcześniejszy dostęp do aplikacji. Samo powiązanie transakcji w blockchainie nie dowodzi natomiast tożsamości właściciela. [2] [5]
Niektóre Trick PIN-y tylko otwierają inny portfel, inne kasują tajne dane albo trwale blokują urządzenie. To różne skutki. Wyjścia Bitcoin, czyli kwoty przypisane do warunków wydania, pozostają zapisane w blockchainie. Pełna kopia zapasowa może umożliwić dostęp na innym urządzeniu. Jeśli zniknie jedyna użyteczna kopia kluczy, dostęp może stracić także właściciel. Wymazanie nie pozwala również sterować reakcją grożącej osoby. Opis funkcji nie jest zatem zaleceniem uruchamiania jej w niebezpiecznej sytuacji. [1] [6]
Notatka „zapasowy PIN” nie wystarczy Piotrowi. Musi wiedzieć, co odtwarza główny portfel, a co oddzielny: Seed Phrase, ewentualna passphrase i wymagane parametry wyprowadzania. Same słowa kopii nie zastąpią zapomnianej passphrase BIP39. Podczas próby z oddzielnymi danymi testowymi warto porównać znane adresy odbiorcze i sprawdzić, co otwiera się po ponownym uruchomieniu. Wyświetlenie jakiegoś poprawnego portfela nie potwierdza jeszcze odzyskania tego zamierzonego. Destrukcyjnych opcji nie należy próbować na jedynej kopii prawdziwego backupu. [3] [4]
Kradzież wyłączonego urządzenia, kradzież kopii i bezpośredni przymus wobec człowieka to trzy odmienne sytuacje. Przeciwnik ma w każdej inną wiedzę i możliwości. Duress Wallet może stanowić część przemyślanej Self-custody, w której samodzielnie kontroluje się klucze, ale nie zapewnia uniwersalnie skutecznego scenariusza. Nie istnieje też technicznie weryfikowalna „bezpieczna kwota” dla drugiego portfela. Trzeba uwzględnić własne bezpieczeństwo, bliskich, odzyskiwanie i możliwość własnego błędu. Test pokazuje zachowanie programu, nie przyszłe zachowanie napastnika. Dlatego EFF opiera planowanie bezpieczeństwa na konkretnych zagrożeniach i regularnej ponownej ocenie. [6] [5]
BIP85 pozwala wielokrotnie odtwarzać inne portfele z jednego głównego zestawu tajnych danych. Punktem wyjścia jest główny rozszerzony klucz prywatny BIP32: klucz prywatny wraz z danymi do wyprowadzania kolejnych kluczy. Obliczenie przebiega ścieżką złożoną wyłącznie z kroków hardened, z których każdy wymaga danych klucza prywatnego. Następnie wynik przetwarza HMAC, funkcja skrótu z kluczem. W tej hierarchii portfele pochodne nazywa się dziećmi, a główny punkt wyjścia korzeniem. Z dziecka nie powinno dać się obliczyć korzenia, lecz osoba posiadająca korzeń i wymagane parametry może odtworzyć dzieci. Oddzielne adresy nie gwarantują więc niezależnych kopii zapasowych. Trzeba rozróżnić portfel ze wspólnego korzenia, portfel z inną passphrase i portfel z rzeczywiście niezależnym seedem. Przy odzyskiwaniu nadal ważne są właściwa ścieżka oraz indeks, numer wybierający konkretne dziecko. [4]
Dokumentacja COLDCARD odróżnia Duress Wallet bez wymazywania głównego seedu od Wipe → Wallet, które usuwa ten seed, a następnie otwiera wybrany portfel. Wymienia trzy warianty BIP85 i starszy Legacy Wallet. Dla głównej kopii zapasowej liczącej 24 słowa warianty BIP85 używają indeksów 1001–1003, a dla 12 słów 2001–2003. Legacy korzysta ze ścieżki m/2147431408h/0h/0h; h oznacza krok hardened. To szczegóły konkretnej implementacji, nie zasady konsensusu Bitcoina. Inne urządzenie lub wersja firmware, czyli oprogramowania wewnątrz urządzenia, nie musi działać tak samo mimo podobnej nazwy. Także odzyskiwanie wymaga znajomości dokładnego trybu. [1]
Pełniejszy obraz uzyskasz, czytając to hasło razem z BIP85, BIP39 passphrase, Hardware Wallet, Samodzielne przechowywanie bitcoinów, Secure Element, Seed Phrase.