Coraz cześciej można usłyszeć, że bitcoin (BTC) jako pionierska i jednocześnie czołowa kryptowaluta pod względem technicznym jest daleko w tyle za nowszymi, szybszymi i znacznie lepiej skalowalnymi projektami blockchainowymi, które rzekomo w przyszłości doprowadzą do systematycznej marginalizacji BTC, powolnie odsuwającego się w cień, zarówno pod względem kapitalizacji rynkowej, jak i powszechnej adopcji. Na razie jednak nic na to nie wskazuje, gdyż „król wciąż jest tylko jeden” - bitcoin stanowi ponad połowę szacowanej wartości całego rynku kryptowalut, jest bezapelacyjnie najszerzej rozpoznawalną walutą cyfrową (w świadomości wielu osób jedyną istniejącą) i jednocześnie najbardziej zdecentralizowaną spośród wszystkich istniejących „następców bitcoina”. Nie da się natomiast ukryć, że BTC z niezmiennymi od dekady parametrami, takimi jak m.in. dziesięciominutowy docelowy czas bloku, czy jego maksymalny rozmiar na poziomie 1 MB nie jest najbardziej wydajną i skalowalną kryptowalutą. Mylą się jednak ci, którzy twierdzą, że stoi on w miejscu. W sierpniu 2017 r. doszło do wprowadzenia niezwykle istotnej aktualizacji obejmującej tzw. SegWit, która nie tylko zmniejszyła opłaty transakcyjne, ale przede wszystkim otworzyła drogę do rozwoju rozwiązań drugiej warstwy, takich jak Lightning Network, a także do wprowadzenia zmian podpisywania transakcji, takich jak implementacja podpisów Schnorra. I to właśnie tajemniczo brzmiącym i jednocześnie niezwykle korzystnym dla użyteczności bitcoina podpisom Schnorra poświęcony jest niniejszy artykuł. Czym są, dlaczego są korzystne i z jakiego powodu nie zostały wprowadzone w BTC znacznie wcześniej?
Jak jest teraz?
Od początku istnienia bitcoina cyfrowe podpisy transakcji, służące do generowania kryptograficznych kluczy, pozwalających na wysyłanie i przechowywanie BTC oparte są na popularnym algorytmie ECDSA, czyli cyfrowych podpisach bazujących na kryptografii krzywych eliptycznych. Krzywa eliptyczna wykorzystywana w BTC oparta jest na parametrach secp256k1, po raz pierwszy zastosowanych właśnie w bitcoinie i od kilku lat zyskująca na popularności, również poza sferą kryptowalut. Aktualnie, pojedynczy podpis waży od ok. 70 do 75 bajtów, warto jednak zwrócić uwagę na fakt, że transakcje multisig, w tym również przesłanie środków z kilku portfeli na jeden adres, wymagają zastosowania odpowiednio większej liczby podpisów, z których każdy zwiększa rozmiar transakcji. Jak powszechnie wiadomo, skalowalność i przepustowość sieci bitcoina jest mocno ograniczona, stąd też każde rozwiązanie, które zmniejszy rozmiar transakcji i obniży liczbę oraz wagę wymaganych podpisów przyczyni się do zwiększenia funkcjonalności BTC.
Wprowadzenie SegWit pozwoliło na ok. czterokrotne obniżenie opłat transakcyjnych i zmniejszenie wielkości transakcji poprzez wyłączenie wagi podpisów z rozmiaru samej transakcji i dołączenie ich w osobnym segmencie. Co równie istotne, SegWit wyeliminował również tzw. elastyczność podpisanej transakcji (ang. transaction malleability), pozwalającą na modyfikację m.in. identyfikatora transakcji (txID), co otworzyło drogę dla wielu nowych rozwiązań w sieci bitcoina, w tym również dla podpisów Schnorra.
Krzywa eliptyczna secp256k1 wykorzystywana w bitcoinie w ujęciu graficznym
Jak może być?
Podpisy Schnorra, nazywane również schematem identyfikacji Schnorra, są jednym z rodzajów cyfrowych podpisów, cechujących się wysoką wydajnością i niewielką długością. Mimo, że pierwsze wzmianki o zaimplementowaniu ich w bitcoinie pochodzą jeszcze z 2012 r., to dopiero kilka miesięcy temu Peter Wuille, wpływowy developer BTC i współzałożyciel firmy Blockstream - pracującej m.in. nad rozwojem Lightning Network - postanowił realnie zająć się wprowadzeniem podpisów Schnorra w bitcoinie. Otworzył on publiczne repozytorium, będące roboczą propozycją Bitcoin Improvement Proposal (BIP), mające na celu opracowanie kodu źródłowego podpisów Schnorra możliwych i bezpiecznych do zaimplementowania w sieci BTC. Repozytorium na portalu github wyczerpująco wyjaśnia również dlaczego będą one korzystniejsze od obecnych podpisów ECDSA. Co istotne, proponowane podpisy Schnorra mają funkcjonować w oparciu o tę samą krzywą eliptyczną, co obecnie, czyli sep256k1, dzięki czemu gruntowna reorganizacja aktualnego sposobu tworzenie cyfrowych podpisów w bitcoinie nie będzie konieczna. Oznacza to, że - podobnie jak w przypadku implementacji SegWit - do wprowadzenia podpisów Schnorra wymagany będzie jedynie soft-fork (aktualizacja ze wsteczną kompatybilnością od momentu jej wprowadzenia - w przeciwieństwie do hard-forku).
Wg developerów Blockstream, najbardziej zauważalną korzyścią wynikającą z wprowadzenia podpisów Schnorra będzie zwiększenie liczby transakcji mieszczących się w pojedynczym bloku nawet o 30%, przy pozostaniu przy aktualnym limicie pojemności bloków transakcyjnych (1 MB), co będzie możliwe dzięki bardziej wydajnej strukturze podpisów. To jednak dopiero początek korzyści.
Jakie korzyści dają podpisy Schnorra?
- Warto zacząć od najbardziej ewidentnej zalety podpisów Schnorra w BTC, jaką jest ich niewielki rozmiar. Jest on stały i wynosi 64 bajty, czyli mniej od obecnych podpisów ECDSA, które ważą - jak wspomniano wcześniej - od 70 do 75 bajtów. Wydaje się to niewielką oszczędnością, jednak - po pierwsze - na przestrzeni chociażby jednej doby (144 bloków transakcyjnych) jest to zauważalne „odchudzenie” sieci, zaś w przypadku kopania pełnych bloków - zwiększenie jej przepustowości. Po drugie zaś, dzięki podpisom Schnorra ich liczba ulegnie zmniejszeniu, o czym jednak w dalszej części.
- Przy wykonywaniu transakcji multisig, dotychczas wymagających do realizacji oddzielnych podpisów wszystkich posiadaczy kluczy prywatnych, z zastosowaniem podpisów Schnorra możliwe będzie wygenerowanie wspólnego, zbiorczego podpisu, składającego się z n-liczby podpisów osób biorących udział w transakcji. Wówczas taki podpis, bez względu na skomplikowanie transakcji multisig, będzie ważył 64 bajty. Podobna sytuacja będzie miała miejsce w przypadku dokonywania transakcji z wielu portfeli na jeden adres. Transakcje multisig dzięki zastosowaniu podpisów Schnorra będą nie tylko lżejsze, ale także tańsze w realizacji.
- Podpisy Schnorra pozwolą na ulepszenie i zaimplementowanie nowych rozwiązań zwiększających prywatność transakcji w bitcoinie. Znana od 2013 r. metoda CoinJoin, polegająca na mieszaniu wielu transakcji w celu zwiększenia ich prywatności, dzięki podpisom Schnorra pozwoli na wygenerowanie jednego zbiorczego podpisu, dzięki czemu koszty ulegną zmniejszeniu. Podpisy Schnorra otworzą również drogę implementacji o nazwie Taproot, która - w największym skrócie - sprawi, że transakcje w rejestrze bloków będą wyglądały identycznie dla osób postronnych, co wymiernie zwiększy prywatność transakcji BTC. Co więcej, sam podpis Schnorra, bez względu na to jak skomplikowaną operację multisig potwierdza, zawsze wygląda identycznie dla obserwatorów sieci, co również jest istotne z punktu widzenia prywatności.
- Podpisy Schnorra pozwolą również na zwiększenie stabilnej przepustowości i bezpieczeństwa sieci, gdyż efektywnie przyczynią się do zmniejszenia ryzyka wystąpienia ataków spamerskich, w których do transakcji o minimalnej wartości dołączano jak największą liczbę cyfrowych podpisów w celu jak najszybszego zapełnienia bloku. Podpisy Schnorra niwelują ryzyko zapełniania bloków spamerskimi podpisami transakcji.
Dlaczego dopiero teraz?
Skoro implementacja podpisów Schnorra w bitcoinie ma w zasadzie wyłącznie zalety, to dlaczego nie zdecydowano się na ich wprowadzenie wcześniej? Z jakiego powodu nie wykorzystał ich sam Satoshi Nakamoto podczas pisania od podstaw kodu źródłowego BTC? Aby odpowiedzieć na te pytania, należy cofnąć się w czasie. Koncepcja schematu identyfikacji Schnorra została opracowana przez niemieckiego kryptologa Clausa Schnorra jeszcze w latach 80. XX w. W 1990 r. podpisy Schnorra otrzymały amerykański patent (US 4995082), który chronił je prawami autorskimi aż do 2008 r. Jak wiadomo, white paper bitcoina został opublikowany 31 października 2008 r., zaś sam anonimowy twórca jego kodu źródłowego z pewnością pracował nad nim przynajmniej kilka miesięcy, najprawdopodobniej kiedy patent Clausa Schnorra był wciąż objęty prawami autorskimi. Ponadto podpisy Schnorra z oczywistych względów nie były rozpowszechnione w środowisku open source w owym czasie, dlatego też Satoshi Nakamoto zdecydował się na wykorzystanie najpopularniejszych podpisów cyfrowych opartych o kryptografię krzywych eliptycznych. W późniejszym czasie zastanawiano się nad możliwością modyfikacji podpisów ECDSA na rzecz podpisów Schnorra - pierwsze wzmianki na ten temat pochodzą z 2012 r., jednak z technicznego punktu widzenia stało się to realne dopiero od 21 lipca 2017 r., kiedy wprowadzono aktualizację SegWit, niwelującą tzw. „elastyczność transakcji”, o czym wspomniano wyżej.
Warto dodać, że bitcoin nie ma już szans na stanie się pionierem wykorzystania podpisów Schnorra w walutach cyfrowych - obecnie z tego rozwiązania korzysta m.in. sieć kryptowaluty Zilliqa (ZIL).
Czytaj także: Zilliqa (ZIL) - co musisz o nim wiedzieć? Opis kryptowaluty, historia, notowania, opinie
![Zilliqa (ZIL) - co musisz o nim wiedzieć? Opis kryptowaluty, historia, notowania, opinie](https://www.fxmag.pl/images/cache/article_square_filter/images/articles/zilliqa-zil-co-musisz-o-nim-wiedziec-opis-kryptowaluty-historia-notowania-opinie.jpg)
Co może pójść nie tak?
Podpisy Schnorra dla bitcoina proponowane przez developerów Blockstream znajdują się we wczesnej fazie rozwoju, co oznacza że do momentu uznania ich za odpowiednio przetestowane i w pełni bezpieczne rozwiązanie minie najprawdopodobniej jeszcze kilka miesięcy. To jednak dopiero początek potencjalnych komplikacji - jak wiadomo nie od dziś, proces wprowadzania tak znaczących aktualizacji w zdecentralizowanej sieci BTC jest wyjątkowo żmudny i czasochłonny, głównie ze względu na brak jednomyślności wśród członków społeczności. Wystarczy w tym miejscu przytoczyć sytuację związaną z wprowadzeniem SegWit, która finalnie doprowadziła do podziału (hard forku) sieci i powstania nowego łańcucha odrzucającego aktualizację, którym był Bitcoin Cash (BCH). Oczywiście plan wprowadzenia podpisów Schnorra wzbudza znacznie mniej emocji wśród społeczności bitcoina, jak dotąd również nie wyklarowała się skonsolidowana grupa jego wpływowych przeciwników. Mimo wszystko, trudno liczyć na to, że do implementacji podpisów Schnorra dojdzie wcześniej niż w drugiej połowie 2019 r. Jeśli jednak już się to stanie, będzie to jedna z najważniejszych aktualizacji w całej dotychczasowej, dziesięcioletniej historii funkcjonowania bitcoina.
Czytaj także: Soft i hard fork bitcoina. Podziały sieci go zabiją czy wzmocnią?
![Soft i hard fork bitcoina. Podziały sieci go zabiją czy wzmocnią?](https://admin.fxmag.pl/api/image?url=../../../images/cache/article_square_filter/images/articles/hard-fork-bitcoina-podzialy-sieci-go-zabija-czy-wzmocnia.jpeg)