Co Podpisy Schnorra Oznaczaj膮 dla Bitcoina?
Strona G艂贸wna
Artyku艂y
Co Podpisy Schnorra Oznaczaj膮 dla Bitcoina?

Co Podpisy Schnorra Oznaczaj膮 dla Bitcoina?

Zaawansowany
Opublikowane Jul 8, 2020Zaktualizowane Dec 28, 2022
6m

Spis Tre艣ci

Wprowadzenie

Jak ju偶 mo偶ecie wiedzie膰,聽Bitcoin egzekwuje prawa do w艂asno艣ci poprzez co艣, co nazywamy Elliptic Curve Digital Signature Algorithm (lub w skr贸cie ECDSA). Jest to algorytm, kt贸ry pozwala Ci wzi膮膰 pewn膮 okre艣lon膮 liczb臋 (np. klucz prywatny) i uzyska膰 z niej klucz publiczny.
Ca艂a magia polega na tym, 偶e bardzo proste jest uzyskanie klucza publicznego z klucza prywatnego, jednak偶e odwrotna czynno艣膰 jest niemo偶liwa. Tw贸j klucz prywatny to osobista przepustka do sieci Bitcoin. To dzi臋ki niemu mo偶esz wygenerowa膰 sw贸j adres, na kt贸ry otrzymasz p贸藕niej bitcoiny oraz prze艣lesz je dalej.聽

W tym artykule przyjrzymy si臋 algorytmowi podpisu Schnorra, czyli alternatywie do ECDSA, kt贸ra mo偶e wprowadzi膰 kilka interesuj膮cych zmian w 艣wiecie Bitcoina.


Kr贸tkie podsumowanie, czym s膮 podpisy cyfrowe

Podpisy cyfrowe dzia艂aj膮 bardzo podobnie jak ich papierowi przodkowie, ale s膮 o wiele bezpieczniejsze. Maj膮c czas i mog膮c w艂o偶y膰 w to odpowiedni膮 ilo艣膰 pracy, ka偶dy jest dzi艣 w stanie podrobi膰 fizyczny podpis. Tego samego jednak nie mo偶esz zrobi膰 z solidnym, cyfrowym schematem podpisu, nawet gdyby艣 mia艂 tysi膮ce lat do dyspozycji.

Istnieje wiele zastosowa艅 dla podpis贸w cyfrowych. Bardzo popularnym jest udowadnianie 艣wiatu, 偶e to w艂a艣nie Ty jeste艣 autorem danej wiadomo艣ci. Tak jak ju偶 wspomnieli艣my, jeste艣 w stanie wygenerowa膰 klucz publiczny z klucza prywatnego (gigantycznej liczby, kt贸r膮 powiniene艣 trzyma膰 w sekrecie). Proces ten polega na przeprowadzeniu sporej ilo艣ci dzia艂a艅 matematycznych na krzywej secp256k1. Gdy ju偶 masz sw贸j klucz publiczny, na jego podstawie mo偶esz wygenerowa膰 sw贸j publiczny adres.

Pami臋taj, 偶e w pe艂ni bezpieczne jest pokazywanie swojego klucza publicznego dowolnej osobie. Mo偶esz doda膰 go na swoj膮 stron臋 lub do opisu na Twitterze, dzi臋ki czemu inni b臋d膮 mogli Ciebie zweryfikowa膰 (cho膰 warto doda膰, 偶e nie jest to zalecana praktyka - zawsze u偶ywaj jednego adresu kryptowalut tylko raz). W ten sam spos贸b mo偶esz bez obaw udost臋pnia膰 sw贸j publiczny adres, by inni mogli przesy艂a膰 Tobie kryptowaluty.

Tw贸j klucz prywatny pozwala Ci stworzy膰 cyfrowy podpis. Poprzez napisanie wiadomo艣ci i przeprowadzenie operacji na niej przy u偶yciu klucza prywatnego, tworzysz podpisan膮 wiadomo艣膰. Ka偶dy mo偶e potem sprawdzi膰, czy faktycznie nale偶y ona do Ciebie, poprzez por贸wnanie jej z Twoim kluczem publicznym.

Jak wi膮偶e si臋 to z Bitcoinem? Ot贸偶 za ka偶dym razem, gdy dokonujesz transakcji Bitcoinem, wysy艂asz cyfrow膮 wiadomo艣膰 o tre艣ci Wysy艂am te monety, kt贸re wcze艣niej zosta艂y wys艂ane do mnie. Potem, gdy ta wiadomo艣膰 trafia do innych w臋z艂贸w sieci, mog膮 one sprawdzi膰, czy Tw贸j podpis ECDSA pasuje do wiadomo艣ci. Je偶eli tak nie jest, w臋z艂y i walidatorzy po prostu odrzuc膮 wiadomo艣膰.


Czym s膮 podpisy Schnorra?

Podpisy Schnorra s膮 innym rodzajem technologii. Dzia艂aj膮 one bardzo podobnie do Elliptic Curve Digital Signature Algorithm, z kt贸rego obecnie korzystamy, ale posiadaj膮 du偶o wyr贸偶niaj膮cych je zalet. Podpisy Schnorra s膮 starsze ni偶 ECDSA, przez co wielu zastanawia si臋, dlaczego od samego pocz膮tku nie korzystamy z nich w BTC.聽

Jednym z mo偶liwych wyja艣nie艅 jest to, 偶e Claus P. Schnorr 鈥 tw贸rca schematu 鈥 opatentowa艂 sw贸j pomys艂. Patent wygas艂 na pocz膮tku 2008 roku, na kilka miesi臋cy, zanim pojawi艂o si臋 Whitepaper Bitcoina, ale schemat dalej nie by艂 znormalizowany. Z tej racji Satoshi Nakamoto zdecydowa艂 si臋 na powszechnie akceptowane (i b臋d膮ce w formacie open-source) ECDSA.


Dlaczego podpisy Schnorra s膮 bardziej korzystne?

Podpisy Schnorra s膮 dosy膰 proste w por贸wnaniu z innymi schematami. W rezultacie s膮 te偶 bezpieczniejsze od swoich alternatyw. Na pierwszy rzut oka mo偶e to nie oznacza膰 zbyt wiele dla Ciebie, jednak maj膮 one jeszcze jedn膮 pot臋偶n膮 w艂a艣ciwo艣膰: liniowo艣膰.聽
M贸wi膮c wprost, sprawia to, 偶e te schematy s膮 szczeg贸lnie atrakcyjne dla poszczeg贸lnych aktywno艣ci 鈥 zw艂aszcza dla wielopodpisowych transakcji. By膰 mo偶e wiesz, 偶e Bitcoin ju偶 teraz wspiera multisig, jednak nie robi tego w najschludniejszy spos贸b.

Gdy tworzysz adres wielopodpisowy, osoba wysy艂aj膮ca Tobie fundusze nie musi zna膰 warunk贸w, jakie ustawi艂e艣 w kwestii ich wydania. Nie musz膮 nawet wiedzie膰, 偶e wysy艂aj膮 je na adres multisig 鈥 jedynym znakiem szczeg贸lnym takiego adresu jest to, 偶e zaczyna si臋 od liczby 鈥3鈥.聽

Odkrywa on swoj膮 natur臋 dopiero, gdy chcesz przenie艣膰 fundusze. Za艂贸偶my, 偶e u偶y艂e艣 konfiguracji trzy z trzech wraz z Alice i Bobem. By wyda膰, powiedzmy 5 BTC, ka偶dy z waszej tr贸jki musi poda膰 sw贸j klucz publiczny i poprawny podpis. Gdy przenosisz fundusze z adresu, ca艂a sie膰 mo偶e si臋 dowiedzie膰, co si臋 sta艂o, patrz膮c na blockchain.聽

Z punktu widzenia prywatno艣ci, nie jest to najlepsze rozwi膮zanie. Co wi臋cej, gdy chcemy stworzy膰 wi臋kszy multisig (powiedzmy osiem z dziesi臋ciu), zajmujemy zdecydowanie wi臋cej miejsca na blockchainie. Mo偶e si臋 to okaza膰 kosztowne i doprowadzi膰 do d艂u偶膮cych si臋 transakcji 鈥 pami臋taj, 偶e im wi臋cej bajt贸w w Twojej transakcji, tym wi臋cej musisz za ni膮 zap艂aci膰.

Podpisy Schnorra s膮 uwa偶ane za rozwi膮zanie dla problem贸w z prywatno艣ci膮 i skalowalno艣ci膮. Ot贸偶 pozwalaj膮 one na co艣, co nazywamy agregacj膮 podpis贸w, czyli 艂膮czenie wielu podpis贸w w jeden wsp贸lny. Wynikaj膮cy z tego 鈥減odpis nadrz臋dny鈥 mia艂by t臋 sam膮 d艂ugo艣膰, jak podpis pojedynczego u偶ytkownika, co prowadzi nas do znacz膮cej oszcz臋dno艣ci pami臋ci.聽
Co wi臋cej, po艂膮czone podpisy utrudniaj膮 obserwatorom stwierdzenie, kto podpisa艂 (a kto nie) transakcj臋. W schemacie m z m (w kt贸rym to wszyscy uczestnicy musz膮 podpisa膰 transakcj臋), niemo偶liwe jest rozr贸偶nienie, czy transakcj臋 zawiera pojedyncza osoba, czy grupa os贸b korzystaj膮cych z multisig.
Zasadniczo podpisy Schnorra umo偶liwiaj膮 budowanie blok贸w gotowych na dalszy rozw贸j. Gdy ju偶 zostan膮 zaimplementowane, mo偶na je wykorzysta膰 w celu udoskonalenia technologii kryptowalutowych, takich jak atomic swaps i Lightning Network.



Kiedy podpisy Schnorra zostan膮 zaimplementowane do Bitcoina?

Nie jeste艣my pewni. Jak z wi臋kszo艣ci膮 aktualizacji protoko艂u Bitcoina, mo偶e min膮膰 nieco czasu, zanim szersza spo艂eczno艣膰 u偶ytkownik贸w Bitcoina zaakceptuje implementacj臋 podpis贸w Schnorra. Deweloperzy Bitcoin Core, a dok艂adniej Pieter Wuille, Jonas Nick i Tim Ruffing, zaproponowali ju偶 BIP (Bitcoin Improvement Proposal) w tej sprawie, ale jeszcze d艂uga droga przed nami, zanim zostanie on uko艅czony.
Blockstream opublikowa艂 ju偶 poprawn膮 implementacj臋 podpis贸w Schnorra 鈥 MuSig. Pozwala ona na agregacje kluczy i podpis贸w, dzi臋ki czemu mog艂aby pos艂u偶y膰 jako fundament schematu podpis贸w Schnorra dla Bitcoina.
Podpisy Schnorra mo偶na po艂膮czy膰 z kodem w postaci soft fork'u, dzi臋ki czemu nie trzeba b臋dzie dzieli膰 sieci. Zamiast tego by艂aby to aktualizacja 鈥渄o kt贸rej mo偶na si臋 zapisa膰鈥. Niemniej jednak wizja implementacji podpis贸w Schnorra w najbli偶szej przysz艂o艣ci jest bardzo optymistyczna 鈥 prawdopodobnie zajmie to jeszcze kilka lat, zanim konsensus zostanie osi膮gni臋ty.


Przemy艣lenia ko艅cowe

Podpisy Schnorra to jeden z najbardziej oczekiwanych kamieni milowych na mapie rozwoju Bitcoina. Dzi臋ki jednej aktualizacji uda si臋 zwi臋kszy膰 prywatno艣膰 i skalowalno艣膰. Co ciekawe, dzi臋ki nim mo偶e zrobi膰 si臋 rozw贸j na dalszy rozw贸j inteligentnych kontrakt贸w Bitcoina i innych zaawansowanych struktur, takich jak Taproot.