Czym jest multisig 2-of-2?

·9 min czytania·Autor: SSP Editorial Team
Diagram portfela multisig 2-of-2 przedstawiający dwóch podpisujących zatwierdzających jedną transakcję

Jeśli kiedykolwiek posiadałeś kryptowaluty, niemal na pewno słyszałeś to samo ostrzeżenie: „chroń swoją frazę seed". Dwanaście lub dwadzieścia cztery słowa zapisane na papierze, których każdy, kto je znajdzie, może użyć, by opróżnić twój portfel z dowolnego miejsca na świecie. Ten pojedynczy ciąg słów stanowi cały model bezpieczeństwa większości portfeli self-custody — i to właśnie jest problem. Stracisz go, a środki przepadają. Ktoś go skopiuje, a środki przepadają. Jeden błąd, jedna chwila nieuwagi, jedna przekonująca strona phishingowa — efekt zawsze ten sam.

Multisig 2-of-2 jest najbardziej dostępną odpowiedzią na tę kruchość. Dzieli klucze portfela pomiędzy dwa urządzenia, dzięki czemu żadna pojedyncza fraza seed, ekran ani podpis nie może samodzielnie przesunąć twoich monet. Ten artykuł wyjaśnia, jak to działa, dlaczego ma to znaczenie i jakie ataki blokuje — a jakich nie.

Tryb awarii pojedynczej frazy seed

Większość portfeli kryptowalutowych — czy znajdują się w telefonie, w rozszerzeniu przeglądarki, czy na urządzeniu sprzętowym — zbudowana jest wokół jednego sekretu. Tym sekretem jest fraza seed: sekwencja słów wygenerowana w momencie pierwszej konfiguracji portfela, z której matematycznie wyprowadzany jest każdy klucz prywatny w danym portfelu. Każdy, kto posiada frazę seed, ma całkowitą, nieodwołalną kontrolę nad każdą monetą w tym portfelu, na każdym łańcuchu bloków, który obejmuje.

Jest to cudownie wygodne. Jest to także pojedynczy punkt awarii.

Pomyśl, co ten sekret musi przetrwać przez wszystkie lata, w których zamierzasz trzymać swoje monety. Musi przetrwać włamywacza, który wchodzi do twojego domu i znajduje karteczkę w szufladzie. Musi przetrwać pożar, powódź lub ciekawskie dziecko. Musi przetrwać laptopa zainfekowanego złośliwym oprogramowaniem, które skanuje schowek i wykonuje zrzuty ekranu. Musi przetrwać każdy mail phishingowy, każde fałszywe wyskakujące okienko, każdy telefon od fałszywego „wsparcia technicznego" proszący o wpisanie słów w formularz „weryfikacyjny". Musi przetrwać twoje własne przyszłe błędy — te, których dziś nie potrafisz przewidzieć.

W 2022 roku FBI oszacowało, że sami konsumenci w USA stracili ponad 2,5 miliarda dolarów na skutek kradzieży i oszustw związanych z kryptowalutami, a zdecydowana większość tych strat wynikała z jednego skompromitowanego sekretu. Mt. Gox, Bitfinex, most Ronin — każda powszechnie znana katastrofa kryptowalutowa ma ten sam kształt: jeden sekret, jedno włamanie, jeden nieodwracalny transfer.

Konfiguracja 2-of-2 oznacza: moje monety nie powinny być oddalone od utraty o jedną skradzioną karteczkę.

Multisig M-of-N w skrócie

Multisig — skrót od „multi-signature" — to portfel, który wymaga więcej niż jednego podpisu do wysłania transakcji. Forma ogólna nazywa się M-of-N: jest łącznie N kluczy, a dowolne M z nich musi podpisać, zanim monety mogą się przemieścić.

<span id="signer"></span>Podpisujący to urządzenie lub strona, która posiada jeden z tych N kluczy. W praktyce podpisujący to zwykle osobny element sprzętu lub oprogramowania: twój telefon, portfel sprzętowy na biurku, laptop, usługa współpodpisującego, a nawet zaufany przyjaciel. Istotną właściwością jest niezależność podpisujących — skompromitowanie jednego z nich nie powinno dawać atakującemu dostępu do pozostałych.

<span id="threshold"></span>Próg (M) to liczba podpisów wymagana do wydania środków. Jeśli próg wynosi 2, to dwóch z N podpisujących musi zatwierdzić i podpisać kryptograficznie, zanim łańcuch bloków uzna transakcję za ważną. Portfel 2-of-3 ma trzech podpisujących i wymaga dowolnych dwóch. Portfel 3-of-5 ma pięciu podpisujących i wymaga dowolnych trzech. Próg jest ustalany przy tworzeniu portfela i wymuszany przez sam łańcuch bloków, a nie przez jakąkolwiek firmę.

Próg i liczba podpisujących razem definiują model bezpieczeństwa portfela: ile rzeczy musi pójść dobrze, abyś mógł wydać środki, i ile musiałoby pójść źle jednocześnie, aby zrobił to złodziej.

Konkretny model 2-of-2

<span id="2-of-2"></span>W multisigu 2-of-2 próg jest równy całkowitej liczbie podpisujących: są dokładnie dwa klucze i oba muszą podpisać każde wydanie. Nie ma klucza zapasowego, podpisującego rezerwowego ani kworum, do którego można się odwołać. Albo oba urządzenia zatwierdzają transakcję, albo ona nie następuje.

To najprostsza konfiguracja multisig, która nadal zapewnia znaczącą ochronę. W porównaniu z 2-of-3 jest łatwiejsza w konfiguracji — zarządzasz tylko dwoma podpisującymi, nie trzema — i nie wymaga wyboru osoby trzeciej ani lokalizacji do przechowywania klucza zapasowego. Kompromisem jest to, że 2-of-2 nie ma wbudowanej ścieżki odzyskiwania: jeśli jeden z dwóch podpisujących zostanie trwale utracony lub zniszczony, nie możesz już wydawać monet z tego adresu. Odzyskiwanie w 2-of-2 odbywa się poprzez oddzielne tworzenie kopii zapasowej frazy seed każdego podpisującego, zwykle na zaplombowanej kopii papierowej lub stalowej przechowywanej oddzielnie od samego urządzenia.

Dla użytkownika self-custody najczęstszą parą 2-of-2 jest „telefon plus klucz sprzętowy" lub „telefon plus drugie zaplombowane urządzenie". Użytkownik podpisuje na obu, za każdym razem.

Jak portfel znajduje swój adres: BIP48

<span id="bip48"></span>BIP48 — Bitcoin Improvement Proposal 48 — to standard techniczny, który mówi portfelom multisig, jak wyprowadzać klucze publiczne i adresy z frazy seed każdego podpisującego w sposób przenośny między dostawcami oprogramowania. To dlatego portfel 2-of-2 utworzony w jednej aplikacji może zostać ponownie otwarty, audytowany lub odzyskany w innej kompatybilnej aplikacji wiele lat później.

Wersja uproszczona: fraza seed każdego podpisującego jest zamieniana w hierarchię kluczy zgodnie z deterministyczną ścieżką. BIP48 określa dokładną ścieżkę dla portfeli multisig — w tym slot rejestrujący, czy portfel używa adresów legacy, SegWit czy native SegWit — oraz slot dla wykorzystywanego „konta" w obrębie frazy seed. Gdy dwóch podpisujących wyprowadza swoje klucze publiczne wzdłuż tej samej ścieżki BIP48, portfel łączy te dwa klucze publiczne w jeden adres multisig. Monety wysłane na ten adres mogą zostać odblokowane wyłącznie podpisami z obu oryginalnych fraz seed.

Dlaczego standard ma znaczenie? Bo bez niego portfel multisig byłby czarną skrzynką. Gdyby dostawca zniknął, miałbyś dwie frazy seed i żadnego przenośnego sposobu, by odtworzyć adres, który chronią. BIP48 sprawia, że adres jest czysto funkcją fraz seed i ścieżki — każdy, kto ma standard i frazy, może odbudować portfel, na zawsze, bez zaufania do jakiejkolwiek firmy.

Ethereum i łańcuchy EVM używają innego mechanizmu (portfele oparte na smart kontraktach i ERC-4337), ale model widoczny dla użytkownika jest taki sam: dwóch podpisujących, jeden adres, oboje wymagani.

Co 2-of-2 faktycznie powstrzymuje

Najjaśniejszym sposobem zobaczenia wartości 2-of-2 jest przejście przez konkretne ataki i zadanie pytania: co się zmienia, gdy atakujący musi skompromitować dwa niezależne urządzenia zamiast jednego?

Phishing. Użytkownik klika w przekonujący link „migracji portfela" i wpisuje jedną ze swoich fraz seed na fałszywej stronie. W portfelu z pojedynczą frazą seed środki znikają w ciągu kilku minut — atakujący importuje frazę i nadaje transfer. W 2-of-2 atakujący posiada teraz połowę portfela. Nie może przesunąć ani jednej monety bez kradzieży również drugiej frazy seed, która znajduje się na innym urządzeniu, na które użytkownik nigdy nie wpisywał danych na stronie phishingowej. Próba phishingu przechodzi z katastrofalnej w jedynie niepokojącą.

Złośliwe oprogramowanie na telefonie lub laptopie. Złośliwe oprogramowanie przejmujące schowek lub info-stealer kompromituje jedno urządzenie podpisujące. W portfelu z pojedynczym kluczem w momencie, gdy urządzenie próbuje wykonać transakcję, malware może podmienić adres docelowy, a użytkownik sam ją podpisuje. W 2-of-2 drugie urządzenie pokazuje użytkownikowi prawdziwe, niezmodyfikowane szczegóły transakcji na ekranie, którego malware nie kontroluje. Użytkownik dostrzega rozbieżność i odmawia współpodpisania.

Utracone urządzenie. Telefon użytkownika zostaje skradziony w pociągu. W hot wallecie z pojedynczym podpisem chronionym tylko kodem PIN zdeterminowany atakujący może wyciągnąć frazę seed w ciągu kilku godzin. W 2-of-2 utracony telefon jest jednym z dwóch podpisujących — bezużyteczny samodzielnie. Użytkownik ma czas, aby przenieść środki na nowy adres, używając ocalałego podpisującego oraz kopii zapasowej frazy seed telefonu.

Przymus („atak kluczem francuskim za 5 dolarów"). Ktoś z fizycznym dostępem żąda frazy seed użytkownika. W przypadku pojedynczej frazy uległość oznacza całkowitą stratę. W 2-of-2, w którym obaj podpisujący znajdują się w różnych miejscach fizycznych — na przykład jeden w domu, jeden w skrytce bankowej, albo jeden w rękach zaufanej usługi współpodpisującego — użytkownik naprawdę nie może wykonać transferu na miejscu. Atakujący zostaje pozbawiony natychmiastowego zysku, który czyni takie ataki w ogóle wartymi podjęcia.

W każdym przypadku zasada jest ta sama: dwa niezależne kompromisy w tym samym krótkim oknie czasowym to znacznie trudniejszy problem niż jeden.

Przed czym 2-of-2 nie chroni

Multisig nie jest magią. Nie chroni przed celowym podpisaniem złośliwej transakcji — jeśli oba twoje urządzenia pokazują ten sam niewłaściwy adres docelowy, a ty i tak go zatwierdzisz, łańcuch bloków nie ma jak tego rozpoznać. Nie chroni przed utratą obu kopii zapasowych w tym samym pożarze lub powodzi — dlatego obie kopie powinny znajdować się w fizycznie oddzielonych miejscach. Nie chroni przed błędami w samym oprogramowaniu portfela, choć otwartoźródłowa i zgodna z BIP48 natura tych portfeli oznacza, że takie błędy mogą zostać poddane audytowi i obejściu w sposób niemożliwy w zamkniętym systemie powierniczym. I nie chroni przed samym użytkownikiem, który dobrowolnie podpisuje rezygnację ze swoich monet na obu urządzeniach w odpowiedzi na wystarczająco przekonujące oszustwo. Próg podnosi poprzeczkę; nie usuwa użytkownika z procesu.

Wypróbuj sam

Najbardziej użytecznym sposobem zrozumienia multisig 2-of-2 jest skonfigurowanie go i obserwowanie, jak prawdziwa transakcja wymaga dwóch zatwierdzeń, zanim zostanie nadana. SSP Wallet jest zaprojektowany właśnie wokół tego modelu od samego początku — twój telefon i twoja przeglądarka działają jako dwóch podpisujących i nie ma żadnego trybu pojedynczej frazy seed ukrywającego się w tle.

Konfiguracja pierwszego portfela SSP prowadzi cię krok po kroku przez parowanie, kopię zapasową i pierwszą podpisaną transakcję.

Udostępnij ten artykuł

Powiązane artykuły