Schnorr Signatures

Schnorr Signature algoritam je novi predloženi algoritam za potpisivanje Bitcoin transakcija. Prvi puta ga je opisao Claus Schnorr, koji ga je i patentirao 1988. godine. Algoritam krasi jednostavnost, efikasnost i kreiranje kratkih potpisa. Glavna prednost za Bitcoin je da se u slučajevima kada se transakcija mora potpisati sa više potpisa, svi potrebni potpisi mogu spojiti u jedan te na taj način smanjiti veličinu transakcije u blockchain-u.

Trenutni algoritam

Bitcoin trenutno koristi “Elliptic Curve Digital Signature” algoritam (ECDSA) kako bi omogućio korisnicima da od svojih privatnih ključeva kreiraju javne ključeve koje mogu dijeliti drugim korisnicima.

ECDSA to omogućava jer je proces enkripcije podataka jednosmjeran. Podatak koji se ubaci u ECDSA se kriptira, no kriptirani podatak se nikako ne može vratiti u originalno stanje.

Zahvaljujući tome svatko može kreirati jednu ili više javnih adresa (adresa za primanje Bitcoina) i podijeliti ih sa drugim osobama bez straha da bi te osobe nekako mogle izračunati koji privatni ključ stoji iza tih javnih adresa jer pristup privatnom ključu znači i pristup Bitcoinu koji se nalazi na adresama povezanim sa tim privatnim ključem.

O tome koliko bi bilo teško pogoditi privatni ključ nekog korisnika, sam pisao više u temi Koliko je Bitcoin siguran?

Što je to Schnorr Signature algoritam?

Schnorr Signatures (u daljnjem tekstu samo Schnorr) je algoritam za jednosmjernu enkripciju podataka, baš kao i ECDSA, no ima određena svojstva koja mu daju veliku prednost prilikom kreiranja Bitcoin transakcija.

Prednosti Schnorr-a

Dok za ECDSA nema nikakav konkretan dokaz da je siguran (znamo da je siguran samo zato jer je izdržao veliku količinu napada) za Schnorr-a imamo dokaz da je i koliko siguran (više informacija pronađite na Schnorr Signature Wikipediji).

Za razliku od ECDSA, Schnorr je otporan na takozvani “malleability attack” (ne znam koji bi bio točan prijevod na hrvatski, pa ću ostaviti naziv tog napada na engleskom jeziku umjesto da prevodim riječ za riječ), no to je trenutno manje bitno svojstvo, pošto je zaštita od takve vrste napada uvedena sa uvođenjem SegWit-a.

Schnorr podržava i grupnu provjeru točnosti parova “javni ključ” – “potpis”, što ubrzava obradu blokova pošto se blokovi sastoje od velike količine upravo tih parova. Uvođenjem Schnorr-a provjera blokova bi trebala biti i do 2.5x brža.

I zadnje, no možda i najbitnije, je da Schnorr prirodno podržava “multisignature” transakcije, u kojima se više ključeva može potpisati sa jednim potpisom, te na taj način uštedjeti na veličini transakcije, što automatski smanjuje multisignature transakcije te štedi mjesto u bloku. Manje transakcije znače i jeftinije transakcije za onoga tko ih radi, no to dodatno oslobađa mjesto u bloku što za uzvrat povećava i broj transakcija koje stanu u jedan blok, te samim time povećava i broj transakcija koje Bitcoin može potvrditi u jedinici vremena. Pojednostavljeno možemo reći da povećava propusnost Bitcoin mreže.

Implementacijom Schnorr-a, mutisignature transakcije bi bile manje za 30-70%, no kako broj takvih transakcija nije velik u svakom bloku, tako sveukupno povećanje propusnosti ne bi bilo unutar tih brojki već dosta manje. Nagađa se (pregledom svih dosadašnjih Bitcoin transakcija) da bi se propusnost povećala do 20%.

Uz povećanje propusnosti, spajanje više potpisa u jedan, povećava i privatnost multisignature transakcija, koje je zbog toga nemoguće odvojiti od običnih 1 / 1 transakcija.

Ukratko, Schnorr daje dokazanu sigurnost, povećava brzinu obrade blokova, propusnost i privatnost multisignature transakcija.

Zašto Schnorr nije korišten od prvog dana?

Kao što sam napisao u samom početku, Claus-Peter Schnorr je patentirao svoj algoritam 1988. godine. Patent je istekao 2008. godine, godinu dana prije nego je kreiran Bitcoin. Iako se godinu dana čini kao dovoljno, kada se pogleda šira slika, malo tko bi odabrao teoretski bolji, ali praktički nov i slabo testiran algoritam za osiguranje otvorenog sistema kao što je Bitcoin. Kad je birao algoritam, Satoshi je morao odabrati algoritam koji je dobro poznat, dobro testiran, koji se nalazi u širokoj upotrebi, koji je brz i najbitnije, koji je u potpunosti Open Source.

U tom trenutku, Schnorr je tek izašao iz patentnog zatvora, te je iako stariji od ECDSA, jednostavno bio previše nepoznat, a nije ni bio podržan od strane OpenSSL-a, seta open source enkripcijskih alata. U usporedbi sa tada poznatim i korištenim opcijama, ECDSA je u tom trenutku bila najbolje rješenje.

Danas, 13 godina kasnije, Schnorr je puno poznatiji, postoje standardizirane implementacije, te je pregledan i testiran dovoljno puta da je sigurnost u njegovo korištenje dosegla visoki nivo.

Planovi za nadogradnju

Schnorr će biti dodan u Bitcoin protokol kao i SegWit putem soft fork-a u periodu od 3. mjeseca 2021. pa do 8. mjeseca 2022. godine. unutar nadogradnje koju si zovu “Taproot” no koja se ustvari sastoji od tri glavna dijela. Schnorr Signature-a (BIP 340), Taproot-a (BIP 341) i Tapscript-a (BIP 342)

Početkom 2. mjeseca 2021. dogovoreni su vremenski rokovi i očekivani datumi nadogradnje.

  • 17-31.03.2021 – Izdaje se Bitcoin full node koji u sebi sadrži sve tri nadogradnje
  • 23.07.2021 – Svi ekonomski nodovi su upgrade-ani na novi software. Mineri počinju sa signaliziranjem podrške za nadogradnju
  • 2 tjedna nakon što 90% hash rate-a signalizira podršku za upgrade, Taproot se aktivira
  • 01.08.2022 – cijeli Bitcoin ekosistem bi trebao biti nadograđen.

Kao što se može vidjeti, sasvim je moguće da nadogradnja bude aktivna puno prije krajnjeg roka ukoliko svi vlasnici full nodova i mineri budu surađivali u nadogradnji.

Ono što se još uvijek ne zna je što će se desiti ako ne dođe do suradnje te ako nadogradnja ne bude aktivirana do 01.08.2022. Hoće li se nadogradnje forsirati putem UASF-a kao i SegWit u tom trenutku, ili će se kao što neki žele, nadogradnja od samog početka forsirati putem UASF-a, što bi zahtijevalo i duže periode za nadogradnju.

Kako sada stvari stoje, za razliku od SegWit-a oko kojeg se vodio civilni rat unutar Bitcoin zajednice, Taproot nadogradnju podržavaju svi, te već sada skoro 90% minera signalizira da žele aktivirati tu nadogradnju, tako da bi po svemu sudeći nadogradnja mogla biti aktivna već ovo ljeto.

Za dodatna pitanja, komentare ili prijavu grešaka u tekstu, ostavite poruku na forumu: Bitcoin Hrvatska Forum – Schnorr Signatures


Objavljeno

u

autor/ica

Oznake: