Za każdym razem, gdy tradycyjny portfel podpisuje transakcję, kompletny klucz prywatny musi przez cały czas trwania tej operacji znajdować się w pamięci — na Twoim telefonie, serwerze lub urządzeniu sprzętowym. Ten moment, w którym klucz istnieje w całości, staje się celem ataku. Portfele oparte na obliczeniach wielostronnych (MPC) zaprojektowano wokół jednej idei: całkowicie wyeliminować ten moment. Nie przez lepsze ukrycie klucza, ale przez zagwarantowanie, że nigdy nie zostanie on w całości zgromadzony w jednym miejscu.
To druga część serii Poza frazą seed. W pierwszej części wyjaśniliśmy, dlaczego tradycyjne zarządzanie kluczami tworzy strukturalny pojedynczy punkt awarii. Ten artykuł skupia się na tym, jak portfele MPC działają na poziomie kryptograficznym i jakie są rzeczywiste kompromisy związane z ich używaniem.
Jaki problem rozwiązują obliczenia MPC
Tradycyjne portfele — sprzętowe i programowe — generują jeden klucz prywatny. W chwili podpisywania musi on być dostępny w całości. Jeśli napastnik przejmie kontrolę nad urządzeniem w tym momencie, klucz zostanie ujawniony. Okno, w którym można go przechwycić, otwiera się wielokrotnie — przy każdej transakcji wychodzącej.
Dzielenie sekretu Shamira (SSS) było jedną z pierwszych prób rozproszenia tego ryzyka. Sekret dzieli się na N udziałów za pomocą interpolacji wielomianowej, a do jego odtworzenia wystarczy dowolnych M udziałów (schemat progowy M z N). W konfiguracji 2 z 3 dowolne dwa z trzech udziałów pozwalają odtworzyć oryginał. Problem polega na tym, że aby podpisać transakcję, SSS musi najpierw odtworzyć pełny klucz prywatny na jednym urządzeniu. Ten moment sam w sobie stanowi pojedynczy punkt awarii — napastnik, który przejmie wtedy kontrolę nad urządzeniem, może wykraść klucz. SSS rozprasza przechowywanie klucza, ale nie obliczenia wykonywane z jego użyciem.
Obliczenia wielostronne (MPC) to dziedzina kryptografii, w której wiele stron wspólnie oblicza funkcję na podstawie swoich prywatnych danych wejściowych, nie ujawniając ich sobie nawzajem. W przypadku podpisów oznacza to, że strony mogą utworzyć prawidłowy podpis w blockchainie, nie przechowując nigdy pełnego klucza prywatnego na jednym urządzeniu — ani podczas podpisywania, ani nawet generowania klucza.
Główna zaleta MPC nie polega na rozproszeniu miejsc przechowywania klucza. Polega na rozproszeniu samych obliczeń, dzięki czemu klucz nigdy nie istnieje w całości.
SSS a TSS: różnica w odtwarzaniu klucza
Zrozumienie różnicy między dzieleniem sekretu Shamira a progowymi schematami podpisu (TSS) jest ważne, ponieważ w materiałach marketingowych opisujących oba rozwiązania często się je ze sobą myli.
SSS podczas podpisywania: Każda strona przechowuje udział. Aby podpisać transakcję, zbiera się wystarczającą liczbę udziałów i odtwarza oryginalny klucz prywatny na jednym urządzeniu. Następnie urządzenie podpisuje transakcję w zwykły sposób. Klucz istniał w jednym miejscu.
TSS podczas podpisywania: Każda strona przechowuje udział klucza i używa go do utworzenia częściowego podpisu. Częściowe podpisy łączy się za pomocą interpolacji Lagrange’a, tworząc końcowy podpis poprawny dla danego łańcucha. Jak podaje dokumentacja Web3Auth, strony „jednocześnie tworzą częściowe podpisy, które następnie są łączone za pomocą interpolacji Lagrange’a, co pozwala zweryfikować końcowy podpis bez odtwarzania klucza”. Żadne urządzenie nie widzi pełnego klucza.
Rozproszona generacja klucza (DKG) idzie o krok dalej. W prawdziwej konfiguracji TSS-MPC para kluczy nigdy nie jest składana w całość, nawet podczas tworzenia. Strony przeprowadzają interaktywny protokół, w wyniku którego każda otrzymuje udział klucza powiązanego ze znanym adresem publicznym, choć pełny klucz prywatny nigdy nie istniał w żadnym miejscu.
Przykład: SSS przypomina przekazanie trzem współpracownikom po jednej trzeciej kombinacji do sejfu. Nadal muszą spotkać się w jednym pomieszczeniu i wprowadzić tę samą kombinację, by go otworzyć. TSS przypomina przekazanie każdej osobie osobnego zamka częściowego, który otwiera się tylko przy wspólnym działaniu. Mogą razem otworzyć sejf, choć żadna z nich nie zna pełnej kombinacji.
Weryfikowalne dzielenie sekretu (VSS), będące ulepszeniem podstawowego SSS, pozwala uczestnikom sprawdzić poprawność udziałów bez odtwarzania sekretu. Zmniejsza ryzyko związane ze złośliwym dealerem, ale nie eliminuje podatności wynikającej z odtwarzania klucza podczas podpisywania.
Podział udziałów: 2 z 2, 2 z 3 i znaczenie tych progów
Wartość progu wpływa zarówno na poziom bezpieczeństwa, jak i dostępne opcje odzyskiwania. W praktyce konsumenckie portfele MPC stosują dwa układy.
2 z 2: Obie strony muszą podpisać transakcję. Żadna nie może działać samodzielnie. Z tego modelu korzysta ZenGo: jeden udział znajduje się na urządzeniu mobilnym użytkownika, a drugi na serwerze ZenGo. Do podpisania transakcji konieczna jest komunikacja między nimi. Zaletą jest prostota, wadą — trwała utrata dostępu do portfela, jeśli którykolwiek udział przestanie być dostępny. Odzyskiwanie dostępu w ZenGo opiera się na trzech elementach: zaszyfrowanej kopii zapasowej udziału z urządzenia, przechowywanej na serwerze ZenGo, kodzie deszyfrującym zapisanym w prywatnej chmurze użytkownika (iCloud lub Google Drive) oraz skanie twarzy z użyciem danych biometrycznych.
2 z 3: Istnieją trzy udziały, a dowolne dwa mogą podpisać transakcję. Ten układ zapewnia nadmiarowość. Binance Web3 Wallet stosuje ten model, rozdzielając udziały między: (1) urządzenie użytkownika, (2) serwer Binance oraz (3) zaszyfrowaną kopię zapasową w chmurze, chronioną hasłem odzyskiwania zapisanym w iCloud lub Google Drive. Jeśli użytkownik zgubi telefon, udziały 2 i 3 — serwer oraz kopia zapasowa w chmurze — mogą wspólnie podpisać transakcję migracji bez udziału 1.
Portfel MPC Coinbase, jeden z pierwszych produktów tej klasy przeznaczonych dla szerokiego grona użytkowników (do czerwca 2023 r. utworzono ponad 5 milionów portfeli), rozdziela udziały między urządzenie użytkownika, infrastrukturę Coinbase i usługę tworzenia kopii zapasowych. Model 2 z 3 Web3Auth wykorzystuje udział powiązany z logowaniem OAuth (zarządzany przez sieć Web3Auth), udział z urządzenia oraz udział kopii zapasowej lub 2FA. Obsługuje protokoły podpisywania, takie jak GG19, GG20, EdDSA i DKLS19.
Portfel OKX był jednym z pierwszych dużych portfeli giełdowych, które jednocześnie zintegrowały MPC z 37 blockchainami. On również korzysta z architektury opartej na trzech udziałach.
W przypadku instytucji wyższe progi — na przykład 3 z 5 — pozwalają dodać kolejnych sygnatariuszy na potrzeby zgodności z przepisami lub ładu korporacyjnego. Fireblocks, które obsłużyło transakcje aktywami cyfrowymi o wartości ponad 10 bilionów dolarów na ponad 150 blockchainach, stosuje model 2 z 3, w którym udział 3 można przechowywać na odizolowanym od sieci urządzeniu mobilnym. Tworzy to poziom podpisywania offline bez potrzeby korzystania z osobnego urządzenia sprzętowego.
Odświeżanie klucza: przewaga, której SSS nie zapewnia
Jedną z najważniejszych praktycznych przewag TSS-MPC nad dowolnym schematem SSS jest proaktywne dzielenie sekretu, nazywane również odświeżaniem lub rotacją klucza.
Strony mogą wspólnie obliczyć nowy zestaw udziałów, które nadal odpowiadają temu samemu kluczowi publicznemu i temu samemu adresowi w blockchainie, nie składając nigdy pełnego klucza prywatnego w całość. Po odświeżeniu stare udziały tracą wartość kryptograficzną. Jeśli udział zostanie skradziony przed odświeżeniem, napastnik nic na tym nie zyska.
Ma to praktyczne konsekwencje: organizacje mogą zmieniać personel, unieważniać przejęte urządzenia lub aktualizować infrastrukturę bez przenoszenia środków w łańcuchu. Okno, w którym skradziony udział może zostać wykorzystany, ogranicza się do czasu między kolejnymi odświeżeniami.
Protokół MPC-CMP Fireblocks umożliwia podpisanie transakcji w jednej rundzie komunikacji, podczas gdy starszy standard GG18 wymaga dziewięciu rund. Jest więc około 8 razy szybszy, co sprawia, że częste odświeżanie klucza jest praktyczne operacyjnie na dużą skalę.
Odświeżanie klucza nie jest dostępne w SSS Shamira, gdzie udziały pozostają niezmienne po wygenerowaniu, ani w tradycyjnym multisig, gdzie klucze podpisujące w łańcuchu są stałe.
Niuanse samodzielnego przechowywania: czy MPC rzeczywiście jest niekustodialne?
To właśnie tutaj język marketingowy najczęściej rozmija się z rzeczywistością techniczną. Odpowiedź zależy od tego, kto przechowuje udziały i co się stanie, gdy dostawca zniknie.
W modelu 2 z 2, w którym jeden udział przechowuje dostawca, nie może on samodzielnie ukraść środków — do podpisania transakcji potrzebuje udziału użytkownika znajdującego się na jego urządzeniu. Może jednak zablokować każdą transakcję. To samodzielne przechowywanie z ograniczeniami: sam dostawca nie może okraść użytkownika, ale może pozbawić go dostępu do środków w razie zamknięcia konta lub przymusu regulacyjnego. W systemach MPC kwestia samodzielnego przechowywania nie sprowadza się do wyboru między „tak” a „nie”.
W modelu 2 z 3 wszystko zależy od tego, które strony przechowują poszczególne udziały. Jeśli użytkownik niezależnie przechowuje dwa udziały — na urządzeniu i w osobnej kopii zapasowej w chmurze — udział dostawcy nie jest potrzebny do odzyskania dostępu. Jednak w większości konsumenckich portfeli MPC udział dostawcy bierze udział w każdej rundzie podpisywania. W praktyce oznacza to, że portfel ma cechy powierniczego przechowywania, gdy serwer przestaje działać lub konto zostaje zamknięte.
Każdy użytkownik powinien zadać sobie kluczowe pytanie: Czy jeśli ta firma jutro zakończy działalność, nadal będę mieć dostęp do swoich środków? W przypadku większości konsumenckich produktów MPC uczciwa odpowiedź brzmi: tylko wtedy, gdy istnieje sposób na odzyskanie obu udziałów bez udziału dostawcy. Model kopii zapasowej zaszyfrowanych udziałów ZenGo zaprojektowano tak, by działał również po zamknięciu firmy. Niektóre produkty nie opisują tego równie jasno.
W przypadku aktywów o dużej wartości nadal warto porównać MPC z portfelem sprzętowym. Urządzenie sprzętowe generuje klucz i podpisuje transakcje w trybie offline, bez współdzielonego sekretu. Dzięki temu model bezpieczeństwa jest prostszy i nie wymaga zaufania, że dostawca będzie dostępny. Portfele MPC zapewniają wygodniejsze odzyskiwanie dostępu i lepszą obsługę wielu urządzeń kosztem tej prostoty.
Uzależnienie od dostawcy to cecha strukturalna większości obecnych produktów MPC, a nie przypadek. Własnościowe protokoły podpisywania (MPC-CMP, GG20, DKLS19) sprawiają, że formatów udziałów klucza nie da się przenosić między dostawcami. Udziału z Fireblocks nie można zaimportować do ZenGo — ani odwrotnie. W przypadku frazy seed można przenieść środki do dowolnego zgodnego portfela. W MPC nie ma takiej gwarancji. Użytkownicy nie mogą swobodnie przenosić się między produktami MPC tak, jak mogą zmieniać portfele HD, korzystając z frazy odzyskiwania. W 2026 roku uzależnienie od dostawcy wynikające z własnościowej logiki podpisywania uznaje się za istotne ryzyko w portfelach MPC opartych na SaaS.
Ryzyka, które warto poznać przed podjęciem decyzji
Żaden duży konsumencki portfel MPC nie utracił środków wskutek złamania samej warstwy kryptograficznej MPC — protokół się sprawdził. Warstwa protokołu to jednak tylko jeden z potencjalnych celów ataku.
- Jednoczesne przejęcie udziałów: Model 2 z 2 lub 2 z 3 pomaga tylko wtedy, gdy udziały są przechowywane w rzeczywiście niezależnych systemach. Atakujący, który jednocześnie przejmie serwer dostawcy i urządzenie użytkownika, uzyska dostęp do środków.
- Zamknięcie dostawcy lub zajęcie przez organy regulacyjne: MPC nie eliminuje ryzyka przerwania działalności. Jeśli serwer dostawcy przestanie działać na stałe, a użytkownik nie ma niezależnej możliwości odzyskania dostępu, środki mogą stać się niedostępne.
- Częstotliwość odświeżania: Skradziony udział staje się bezużyteczny po odświeżeniu. Jeśli jednak odświeżanie następuje dopiero podczas odzyskiwania dostępu albo odbywa się rzadko, okres narażenia jest długi.
- Niejasny status portfeli giełdowych: Portfele MPC oferowane przez giełdy (Binance, OKX, Coinbase) zacierają granicę między samodzielnym a powierniczym przechowywaniem. W razie przymusu regulacyjnego giełda przechowująca jeden z udziałów może odmówić współpodpisania transakcji. Użytkowników przekonanych, że samodzielnie przechowują środki, może od zablokowania portfela dzielić jedno postanowienie sądu.
W 5. części tej serii porównano obok siebie różne scenariusze awarii w ramach szerszego modelu zagrożeń obejmującego MPC, klucze dostępu i metody odzyskiwania.
Co zrobić dalej
- Ustal, kto przechowuje poszczególne udziały w każdym używanym przez Ciebie portfelu MPC. Udział na urządzeniu, udział dostawcy i udział w kopii zapasowej w chmurze to odrębne elementy — dowiedz się, jak działa każdy z nich.
- Przetestuj odzyskiwanie dostępu, zanim będzie potrzebne. Większość portfeli MPC oferuje symulację odzyskiwania. Skorzystaj z niej.
- Zapytaj wprost, co się stanie po zamknięciu usługi przez dostawcę. Sprawdź, czy opublikował opis funkcji „eksportu klucza” lub „odzyskiwania z własnego serwera”.
- Sprawdź ustawienia odświeżania klucza. Jeśli można je konfigurować, krótsze odstępy między odświeżeniami skracają okres narażenia w przypadku kradzieży udziału.
- Dopasuj model przechowywania do wartości swoich aktywów. Przy dużych zasobach portfel sprzętowy bez współdzielonego sekretu nadal jest prostszym i bardziej przenośnym rozwiązaniem bazowym — wygoda odzyskiwania w MPC wiąże się z mniejszą przenośnością i zależnością od dostawcy.



