Ločena priča je vstopila v svojo zadnjo fazo testiranja pred uvedbo v Bitcoin omrežje. To je dobra novica, kar je najpomembneje, ker inovacija uvaja povečanje zmogljivosti, ki omogoča več transakcij v omrežju, hkrati pa rešuje tudi gibčnost transakcij..

Poleg tega uvaja različico različic skripta – razširitev protokola Bitcoin, ki omogoča povsem novo kategorijo inovacij.

Ena od teh neposrednih novosti je že nekaj časa na vrhu seznamov želja razvijalcev Bitcoinov: podpisi Schnorrja.

Z bližajočo se izdajo ločene priče bi lahko kmalu zatem sledila implementacija algoritma kriptografskega podpisa Schnorr, ki bi lahko naenkrat izboljšala razširljivost, učinkovitost in zasebnost Bitcoina..

Evo kako.

Podpisi

Najprej kratek povzetek: kaj so podpisi?

V središču Bitcoina leži matematični trik, imenovan »kriptografija z javnimi ključi«, kriptografski sistem, ki uporablja dve vrsti »ključev« (v resnici nize številk): zasebne ključe in javne ključe.

Zasebni in javni ključ sta matematično povezana. A čeprav je iz zasebnega ključa zelo enostavno izdelati javni ključ, je iz javnega ključa praktično nemogoče izdelati zasebni ključ. To je “enosmerna ulica”.

Če želite porabiti bitcoin z določenega naslova Bitcoin, morate dokazati “lastništvo” (ali: znanje) zasebnega ključa, ki se nanaša na javni ključ, povezan s tem naslovom. In za dokazovanje lastništva zasebnega ključa, ne da bi ga bilo treba razkriti, se uporablja kriptografski podpis.

Podpis se ustvari z izvajanjem izračuna z uporabo podatkov o transakciji in zasebnega ključa. In tu nastopi čarobnost kriptografije z javnim ključem: ko pozna javni ključ, lahko vsak vidi, ali je bil za izdelavo podpisa uporabljen pravi zasebni ključ. Ne da bi kdaj morali poznati zasebni ključ.

“Lastnik” zasebnega ključa lahko torej podpiše transakcijo in zapravi bitcoin, ne da bi se skrbel, da lahko nekdo drug vzame zasebni ključ in ukrade bitcoine; zasebni ključ ni nikoli izpostavljen in podpis velja samo za to določeno transakcijo.

(Za podrobnejšo razlago kriptografije javnega ključa v Bitcoinu glejte ta članek. Ali pa preprosto nadaljujte z branjem. Čeprav je osnovni koncept podpisa pomemben, podrobnosti za ta članek niso ključne.)

Schnorr

Torej, kakšni so potem Schnorrovi podpisi?

Schnorr, poimenovan po izumitelju Claus-Peter Schnorr, je shema podpisov: vrsta matematičnih pravil, ki povezujejo zasebni ključ, javni ključ in podpis. Številni kriptografi menijo, da so Schnorrovi podpisi najboljši na tem področju, saj ponujajo visoko stopnjo pravilnosti, ne trpijo gibljivosti, jih je razmeroma hitro preveriti in – kar je pomembno – podpirajo podpisovanje: več podpisov je mogoče združiti v en sam, nov podpis.

Vendar do zdaj Schnorrja ni bilo mogoče uporabiti v Bitcoinu. Druga vrsta podpisne sheme, Elliptic Curve Digital Signature Algorithm (ECDSA), je vpeta v protokol Bitcoin in spreminjanje, ki bi zahtevalo trdo vilico.

Tu vstopi ločena priča.

Pri ločeni priči se vsi podatki o podpisu premaknejo v ločen del transakcije: pričo, ki ni vdelana v “stari” protokol Bitcoin. In zahvaljujoč različicam skript, lahko skoraj vsako pravilo, ki se uporablja v priči, spremenite z mehkimi vilicami. Vključno z vrsto uporabljene sheme podpisa.

To odpira vrata Schnorrju.

Zmogljivost

Lastnost Schnorrja, ki bo Bitcoinu najbolj koristila, je združevanje več podpisov.

Številne Bitcoin transakcije vključujejo več vhodov, ki se nanašajo na naslove, s katerih so bitcoini poslani. (To lahko primerjamo s tem, kako so gotovinska plačila pogosto sestavljena iz več manjših računov in kovancev za plačilo večje vsote denarja.) Trenutno vsi ti vložki zahtevajo lasten podpis, kar pomeni, da morajo biti vsi ti podpisi vključeni v transakcijo, vsi morajo biti prenesene po omrežju in vse morajo biti vključene v blok.

Pri Schnorrju pa bodo vsi vhodi namesto tega zahtevali le en kombiniran podpis, ki predstavlja vse te različne podpise. To ponuja očitno podatkovno prednost, saj mora biti v transakcijo vključen samo en podpis, samo en mora biti poslan po omrežju in samo en mora biti vključen v blok. To pomeni, da je več prostora za transakcije.

Na primer:

Ločena priča, kot predlaga Bitcoin Core, ponuja (približno) 75-odstotni popust na vse podatke, vključene v pričo, namesto na prvotni blok. En megabajt podatkov priče je torej “tehtan” kot 25 megabajtov, kar bi v prvotnem bloku omogočilo prostor za 75 megabajt podatkov o transakcijah, skupaj za 1 megabajt.

Če združeni Schnorrjevi podpisi zmanjšajo skupno velikost podatkov prič, recimo z 1 megabajta na 5 megabajtov, bi teh 5 megabajtov nato znižali na 0,125 megabajta, v prvotnem bloku pa bi ostalo prostora do 0,875 megabajta. (Povečanje zmogljivosti za približno 17 odstotkov.)

Natančen znesek dodane sobe je odvisen od vrst transakcij, vključenih v bloke. Toda grobe ocene razvijalca Bitcoin Core Eric Lombrozo kažejo, da bi lahko podpisi Schnorrja sčasoma povečali skupno zmogljivost za 40 odstotkov ali več – to je poleg dodanih 60 do 100 odstotkov, ki jih že ponuja ločena priča.

Multisig

Zgoraj opisano povečanje zmogljivosti velja za običajne transakcije, saj veliko transakcij vključuje več kot en vhod. Toda prednost je lahko še večja v primeru multisig transakcij – transakcij, pri katerih en sam vnos zahteva več podpisov (običajno od različnih ljudi).

Tako kot pri običajnih transakcijah tudi pri nobeni multisig transakciji ni treba vključiti več kot en podpis. Ne glede na to, koliko podpisov je treba, ne glede na to, koliko ljudi je vpletenih.

To odpira vrata za bistveno bolj zapletene konstrukcije pametnih pogodb za delček podatkov, ki so običajno potrebni. Ne glede na to, ali gre za dve od treh, tri od petnajst ali sto od sto vrst multisig transakcij, bodo vse imele enako količino podatkov o podpisu kot običajna transakcija z enim podpisom.

Zasebnost

In tretjič, podpisi Schnorrja bi lahko ponudili še eno zanimivo prednost: spodbuditev zasebnosti.

Kot smo že omenili, lahko ena transakcija vključuje več vhodov. Najpogosteje se ti vnosi nanašajo na naslove, ki jih nadzoruje ista oseba. (Glede na primer več računov in kovancev.)

Toda trik za izboljšanje zasebnosti, ki ga je izumil razvijalec Bitcoin Core Gregory Maxwell,  CoinJoin, omogoča različnim uporabnikom, da vse svoje transakcije združijo v eno transakcijo. Ta ena transakcija bo vključevala več vložkov različnih plačnikov, ki pošiljajo denar v več izhodov, ki pripadajo različnim prejemnikom plačil.

(To lahko primerjamo s skupino ljudi, ki svoje račune in kovance metajo skupaj v košarico, s katero kupujejo izdelke, ki si jih vsi želijo. Vsak posameznik bo dobil blago, ki ga je posameznik plačal, vendar malo verjetno je, da je posameznikov “lasten” račun plačal izdelek, ki ga je posameznik kupil.)

Če naredimo pravilno, je CoinJoin odličen način za izboljšanje zasebnosti protokola Bitcoin, saj postane nejasno, kateri vložki so plačali, kateri izhodi natančno, kaj šele, katera oseba je plačala kateri osebi.

CoinJoin ni nov koncept. Toda do zdaj je bil CoinJoin običajno nekoliko moteč. Kot taka se večina ljudi ne moti. In ker se večina ljudi ne moti, bi lahko tiste, ki se motijo, samodejno označili kot sumljive; potencialno premagal namen uporabe CoinJoin.

Toda podpisi Schnorr lahko dodajo novo prednost CoinJoin. Vsem udeležencem v transakciji CoinJoin omogoča, da ne samo kombinirajo svoje transakcije, temveč tudi kombinirajo svoje podpise. To pomeni, da bi bila velikost transakcije dejansko manjša od vseh posameznih transakcij skupaj. Kar pa pomeni, da rudarji običajno zaračunajo manjšo pristojbino za obdelavo transakcije.

S Schnorrjem torej CoinJoin ne bi samo povečal zasebnosti, ampak tudi – kar je pomembno – znižal stroške za vse vpletene. Dejansko bi bila stroškovno koristna uporaba najbolj zasebne možnosti, zaradi česar bi lahko postala možnost za vsakogar – močno povečala zasebnost Bitcoinov za vse.

Opomba: Postopek implementacije Schnorrjevih podpisov v Bitcoin je še v fazi zasnove. Čeprav se zdi, da večina razvijalcev Bitcoin Core verjame, da je mogoče podpise Schnorrja varno namestiti v Bitcoin, je prezgodaj, da bi z gotovostjo trdili.

Zahvaljujoč razvijalcu Bitcoin Core in  Blockstream soustanovitelj dr. Pieter Wuille za zagotavljanje informacij in razvijalec Bitcoin Core in  Ciphrex Izvršni direktor Eric Lombrozo za lektoriranje in nadaljnje predloge.