W środę 15 maja kontrowersyjna kryptowaluta Bitcoin Cash (BCH) zostanie poddana okresowemu, przeprowadzanemu co pół roku, procesowi aktualizacji swojego protokołu. Ostatni hard fork, który miał miejsce 15 listopada zeszłego roku, odbył się w atmosferze zamieszania i niezgody co do przyszłości projektu w obrębie społeczności Bitcoin Cash. Skutkowało to podziałem łańcuchów na dominujący BCH oraz secesyjny Bitcoin SV (BSV), promowany przez ekscentrycznego Craiga Wrighta, podającego się za twórcę bitcoina (BTC), Satoshiego Nakamoto. Nadchodzący hard fork nie będzie jednak obfitował w podobne, emocjonujące społeczność wydarzenia, zaś w jego wyniku nie dojdzie do kolejnego podziału sieci i postania nowej kryptowaluty, jak miało to miejsce pół roku temu. Środowa aktualizacja Bitcoin Cash jest jednak istotna i ciekawa z innego powodu - znajdująca się aktualnie na czwartym miejscu w rankingu kapitalizacji rynkowej kryptowaluta jako pierwsza wśród wiodących projektów zaimplementuje tzw. podpisy Schnorra, które przyniosą korzyści zarówno pod względem prywatności transakcji, jak i wysokości opłat za ich realizację.
Szybciej niż bitcoin
Planowana implementacja podpisów Schnorra przez Bitcoin Cash (BCH) mogła wywołać zaskoczenie wśród obserwatorów przestrzeni walut cyfrowych, gdyż to sam bitcoin (BTC) stawiany był jako przyszły pionier tego rozwiązania, które docelowo miało zostać wprowadzone właśnie w wiodącej kryptowalucie. Jak się jednak okazuje, na podpisy Schnorra w BTC trzeba będzie jeszcze trochę poczekać, podczas gdy od 15 maja to niezwykle efektywne i najzwyczajniej lepsze od dotychczasowego rozwiązanie zacznie funkcjonować w sieci Bitcoin Cash. O co dokładnie w nim chodzi, w czym różni się od obecnego sposobu tworzenia cyfrowych podpisów kryptograficznych i jakie korzyści przyniesie użytkownikom Bitcoin Cash?
Starsze rozwiązania czasem są lepsze
Obecnie cyfrowe podpisy w BTC i pokrewnych kryptowalutach generowane są z wykorzystaniem kryptograficznego algorytmu krzywych eliptycznych (ECDSA - ang: Elliptic Curve Digital Signature Algorithm), co sprawia że każdy pojedynczy podpis waży od ok. 70 do 75 bajtów. W przypadku transakcji zawierających więcej niż jeden podpis (tzw. multisignature), ich rozmiar ulega odpowiedniemu zwiększeniu, zależnemu od liczby podpisów, z których się składają. Waga samego podpisu jest o tyle istotna, że ma ona bezpośredni wpływ, po pierwsze na wysokość opłat transakcyjnych, po drugie na przepustowość całej sieci w momentach krytycznego obciążenia, po trzecie zaś na tempo przyrostu pełnego rozmiaru sieci blockchain w czasie. Stąd też wysiłki mające na celu obniżenie rozmiaru cyfrowych odpisów należy uznać za uzasadnione i pożądane.
Co zatem w tej mierze są w stanie poprawić podpisy, zwane również schematami identyfikacji, Schnorra?
Po pierwsze, rozmiar pojedynczego podpisu jest mniejszy i jego stała wartość to 64 bajty. Jest to niewielka korzyść w porównaniu z podpisami ECDSA, jednak na przestrzeni czasu przyniesie znaczne „odchudzenie” sieci. Po drugie, podpisy Schnorra pozwalają na agregowanie transakcji multisignature w ramach jednego zbiorczego podpisu, którego rozmiar również wynosi jedynie 64 bajty, co przy ECDSA jest niemożliwe. Zastosowanie podpisów Schnorra w transakcjach multisignature znacznie zwiększa przepustowość sieci i obniża opłaty transakcyjne. Po trzecie, podpisy Schnorra pozwalają developerom portfeli m.in. na generowanie kontraktów zawierających zbiorcze transakcje skupione w obrębie jednego podpisu, co zapewni prywatność takich operacji, gdyż zarówno dla górników, jak i węzłów taki kontrakt będzie identyfikowany jako jeden podpis. W przyszłości możliwe będzie również skupianie znacznej liczby podpisów w ramach jednego, zmniejszając tym samym opłaty transakcyjne i zwiększając szybkość transakcji w przypadku Bitcoin Cash o teoretycznie ok. 20%.
Warto zauważyć, że rozwiązanie to, opracowane w latach 80. XX w przez niemieckiego kryptologa Clausa Schnorra, zostało objęte amerykańskim patentem, który obowiązywał do końca 2008 r. Co ciekawe, było ono starsze od algorytmu krzywych eliptycznych ECDSA zastosowanego m.in. w bitcoinie, jednak najprawdopodobniej z powodu obowiązujących jeszcze wówczas praw patentowych anonimowy twórca pierwszej kryptowaluty nie zdecydował się na wykorzystanie schematów identyfikacji Schnorra, gdyż kłóciłoby się to z otwartoźródłowym charakterem kodu BTC (ECDSA była jedynym rozwiązaniem kompatybilnym z biblioteką OpenSSL 0.9.8). Trudno bowiem przypuszczać, że ktoś, kto był w stanie napisać kod źródłowy bitcoina od zera, nie wiedział o istnieniu podpisów Schnorra.
Co muszą zrobić posiadacze Bitcoin Cash?
Mająca miejsce w środę 15 maja aktualizacja protokołu BCH nie wymaga od jego użytkowników żadnych działań. Wszystkie giełdy kryptowalut obsługujące Bitcoin Cash najprawdopodobniej przeprowadzą aktualizację swoich portfeli, również większość węzłów w sieci (poza BitcoinXT, których aktualna liczba to pięć) zadeklarowało aktualizację swojego oprogramowania, tak aby było ono zgodne z podpisami Schnorra. Nie zmieni się format adresów publicznych, ani sposób przeprowadzania transakcji z punktu widzenia posiadacza BCH. Co ciekawe, użytkownicy sieci nie są zobowiązani do aktualizacji swoich portfeli - jeśli nie maja na to ochoty, nie muszą korzystać z podpisów Schnorra, gdyż środowa aktualizacja jest opcjonalna. Dlatego też powinna ona być określana mianem soft-forku, gdyż hard-fork wyklucza opcjonalność i wsteczną kompatybilność. Z pewnością jednak jest to zmiana w dobrym kierunku, co powinni przyznać nawet krytycy wizji skalowalności, jaką rozwija Bitcoin Cash.