tradingview

Schnorr

Podpisy Schnorra (ang. Schnorr signatures) to schemat podpisu cyfrowego opracowany przez Clausa-Petera Schnorra, wprowadzony do Bitcoina razem z aktualizacją Taproot. Specyfikację dla Bitcoina opisuje BIP340, a aktywacja nastąpiła w listopadzie 2021 roku. Schnorr działa na tej samej krzywej eliptycznej secp256k1 co wcześniejsze ECDSA, więc klucze prywatne i seed pozostają te same – zmienia się sposób podpisywania i weryfikacji.

Czym Schnorr różni się od ECDSA

Cecha ECDSA Schnorr (BIP340)
Rozmiar podpisu zmienny, zwykle 71–72 bajty stały, 64 bajty
Klucz publiczny 33 bajty 32 bajty (tylko współrzędna x)
Liniowość brak tak – podpisy i klucze można sumować
Weryfikacja wsadowa niepraktyczna możliwa, szybsza dla wielu podpisów
Dowód bezpieczeństwa słabszy formalnie prostszy, dobrze zbadany

Agregacja kluczy i MuSig

Najważniejsza cecha Schnorra to liniowość. Kilka kluczy publicznych można połączyć w jeden klucz zagregowany, a uczestnicy mogą wspólnie wytworzyć jeden podpis ważny dla tego klucza. Służą do tego protokoły z rodziny MuSig (np. MuSig2). Na łańcuchu taka transakcja wygląda jak zwykła płatność z jednego klucza.

Porównaj to z klasycznym portfelem multisig 2 z 3 opartym na ECDSA: skrypt ujawnia wszystkie klucze publiczne i dwa podpisy. Z MuSig wspólne wydanie wszystkich stron to jeden klucz i jeden podpis. Zyskujesz mniejszą transakcję, niższą opłatę i prywatność – obserwator nie odróżni wspólnego portfela od zwykłego. Schematy progowe (np. 2 z 3) są bardziej złożone i wymagają dodatkowych protokołów, ale idea jest ta sama.

Schnorr w Taproot

Taproot łączy Schnorra z drzewem skryptów. Wyjście Taproot ma jeden klucz publiczny. Jeśli wszyscy uczestnicy się zgadzają, wydają je ścieżką klucza – jednym podpisem Schnorra. Gdy trzeba skorzystać z alternatywnego warunku, np. klucza awaryjnego po czasie, ujawnia się tylko ta jedna gałąź skryptu, a reszta pozostaje ukryta.

Przykład

Załóżmy, że trzy osoby wspólnie wydają środki. Klasyczny multisig 3 z 3 w SegWit wymaga w witness trzech podpisów ECDSA (ok. 72 bajty każdy) i skryptu z trzema kluczami (ok. 105 bajtów) – razem ponad 320 bajtów witness. Wydanie ścieżką klucza Taproot z MuSig to jeden podpis 64 bajty. Przy stawce 30 sat/vB i rabacie witness (1 bajt = 0,25 vB) różnica około 256 bajtów to około 64 vB, czyli około 1920 sat na każdym wydaniu.

Najczęstsze błędy

  • Przekonanie, że Taproot zmienił seed lub klucze – zmienił format adresów i podpisów, a nie krzywą.
  • Utożsamianie agregacji kluczy z „łączeniem transakcji” – MuSig dotyczy jednego wejścia, a nie wielu użytkowników.
  • Założenie, że Schnorr chroni przed komputerem kwantowym – nie chroni, podobnie jak ECDSA.
  • Własne implementacje podpisów – błąd w generowaniu nonce może ujawnić klucz prywatny.

Perspektywa tradera

Dla tradera Schnorr to przede wszystkim praktyczne korzyści przy przechowywaniu kapitału: tańsze i bardziej prywatne wydatki z portfeli wieloosobowych oraz adresy Taproot (bc1p…) obsługiwane przez coraz więcej portfeli. Jeśli trzymasz większą część kapitału w cold wallet albo we wspólnym portfelu firmy, rozwiązania oparte na MuSig mogą obniżyć koszty i ukryć strukturę zabezpieczeń. Sprawdź jednak, czy Twój portfel sprzętowy i oprogramowanie w pełni je obsługują – rozwiązanie niszowe bywa trudniejsze do odtworzenia w awaryjnej sytuacji.

Najczęstsze pytania

Kiedy podpisy Schnorra trafiły do Bitcoina?

Razem z aktywacją Taproot w listopadzie 2021 roku. Specyfikację opisuje BIP340.

Czy muszę przenieść środki, żeby korzystać ze Schnorra?

Podpisy Schnorra działają tylko dla wyjść Taproot. Środki na starszych adresach nadal podpisuje się ECDSA – działają poprawnie, ale nie korzystają z nowych możliwości.

Co to jest MuSig?

Protokół, w którym kilka osób tworzy wspólny klucz publiczny i jeden wspólny podpis Schnorra. Na łańcuchu wygląda to jak zwykła płatność z jednego klucza.

Czy podpisy Schnorra są bezpieczniejsze od ECDSA?

Oba schematy uznaje się za bezpieczne na tej samej krzywej. Schnorr ma prostszy dowód bezpieczeństwa i lepsze własności, ale nie chroni przed błędami implementacji ani przed zagrożeniem kwantowym.

Jak rozpoznać adres Taproot?

Adresy Taproot w sieci głównej zaczynają się od bc1p. Adresy natywnego SegWit v0 zaczynają się od bc1q i nadal używają podpisów ECDSA.

Tekst ma charakter edukacyjny i nie stanowi rekomendacji inwestycyjnej.