Schemat identyfikacji Schnorra – kolejny krok w stronę skalowania i prywatności.

Wkrótce do Bitcoin Core zostanie wprowadzony Segregated Witness. SegWit zmienia strukturę transakcji. Podpisy są przechowywane w innym miejscu, przez co starym nodom wydaje się, że transakcje są mniejsze (nie widzą / nie rozumieją danych SegWit, ale nadal uważają transakcję za poprawną). Nowe nody widzą, że transakcje są większe i nadal obowiązuje limit 1 MB, ale obliczany jako wielkość danych bez podpisów +1/4 SegWit. Dzięki temu bloki mogą mieć teoretycznie nawet do 4MB wielkości i nadal nie przekraczać limitu. W praktyce ocenia się, że przy obecnej liczbie zwykłych i wielopodpisowych transakcji (multisig) bloki będą miały mogły osiągać ok. 1,7 MB. SegWit jest mniej oszczędny dla zwykłych transakcji, a bardziej dla multisig.

Wprowadzenie Segregated Witness otwiera również drogę do zastosowania tzw. schematu identyfikacji Schnorra (ang. Schnorr signature). Schemat Schnorra opisuje matematyczne zależności między kluczem prywatnym, publicznym i podpisem cyfrowym. W porównaniu z obecnie stosowanym w Bitcoinie algorytmem ECDSA, ma praktycznie same zalety. Dlaczego więc Satoshi nie zdecydował się na jego wykorzystanie od samego początku? Chodzi prawdopodobnie o to, że schemat Schnorra był chroniony patentem do lutego 2008 roku i dlatego wcześniej nie brano go pod uwagę w programach niekomercyjnych. Był także mało znany i Satoshi mógł w ogóle nie wiedzieć o jego istnieniu, dlatego zdecydował się na powszechnie używany ECDSA.

Schemat identyfikacji Schnorra ma następujące zalety:

  • podpis cyfrowy jest krótszy
  • weryfikacja jest szybsza
  • jest odporny na tzw. plastyczność transakcji (transaction malleability)
  • wszystkie podpisy wejść danej transakcji można zastąpić tylko jednym podpisem (ma to miejsce np. wtedy gdy wysyłając bitcoiny portfel pobiera je z kilku adresów). Może to dać dodatkowych kilkanaście procent miejsca na transakcje w bloku.
  • obsługa multisig – transakcje z jednym wejściem, które wymaga wielu podpisów od często różnych osób również będą mogły być zastąpione jednym podpisem. Oznacza to także oszczędność miejsca i otwiera drogę do rozbudowanych kontraktów, które mogą wymagać nawet setek podpisów, a w blockchainie zajmą jedynie ułamek miejsca, które zajęłyby dziś przy użyciu ECDSA.
  • używanie CoinJoin oprócz zwiększenia prywatności będzie tańsze niż wysyłanie zwykłych transakcji. W CoinJoin transakcje od wielu osób są zamieniane w jedną transakcję z wieloma wejściami i wyjściami. Podpisy każdego wejścia będą mogły być zebrane w jeden podpis Schnorra. CoinJoin nie jest w tej chwili szczególnie popularny i niewiele portfeli go obsługuje, ale jeśli schemat Schnorra zostanie zaimplementowany do Bitcoin Core to może się to zmienić i CoinJoin stanie się standardem w każdym portfelu.

Schemat identyfikacji Schnorra jest wysoko na liście życzeń deweloperów. Do tej pory możliwość jego wprowadzenia była dyskusyjna, ale szanse znacząco rosną wraz z wprowadzeniem Segregated Witness i być może nastąpi to niedługo. Większość deweloperów jest przekonana, że będzie go można bezpiecznie zaimplementować do Bitcoina, ale prace jeszcze się nie rozpoczęły, więc nie można tego stwierdzić z całą pewnością.