Uporabniki Bitcoinov bodo kmalu lahko izkoristili trik, imenovan “Taproot”. Najprej predlagano s strani sodelavca Bitcoin Core in nekdanjega generalnega direktorja Blockstreama Gregoryja Maxwella, bi Taproot razširil prilagodljivost Bitcoin-ovih pametnih pogodb, hkrati pa bi pri tem ponudil več zasebnosti. Tudi najbolj zapletene pametne pogodbe se na blockchainu običajno ne bi razlikovale od običajnih transakcij.
Čeprav je to veliko podjetje, to ni le teorija. Nekateri najbolj plodni sodelavci Bitcoin Core – med njimi Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell in, res, Gregory Maxwell – delajo na predlogu Schnorrjevega podpisa, ki bi vključeval Taproot. v eni nadgradnji protokola.
Tukaj je, kaj je Taproot in kako deluje.
P2SH
Vsi bitcoin so v bistvu “zaklenjeni” v skripte: nekaj vrstic kode, vdelane v transakcijo, vključeno v verigo blokov, ki določajo, kako lahko kovance porabite v naslednji transakciji. Pogoji porabe običajno vključujejo podpis dokazila o lastništvu kovancev. Toda drugi, dobro znani pogoji vključujejo na primer časovne zapore (kovance lahko porabite le po določeni višini ali datumu bloka) ali multisig (kovance lahko porabite le, če podpisuje nekaj zasebnih ključev iz nabora zasebnih ključev).
Različne pogoje je mogoče mešati in prilagajati, da se ustvarijo zapletene vrste pametnih pogodb. Primer takšne pogodbe je lahko, da lahko kovance porabite, če podpišeta tako Alice kot Bob, ali če Alice sama podpiše po preteku enega tedna, ali če Bob sam podpiše, hkrati pa navede tudi tajno številko. Kateri koli od teh treh pogojev je najprej izpolnjen, je način porabe kovancev.
Od leta 2012 skripti (pogoji) sprva pogosto niso javno vidni; samo novi lastnik kovancev ve, kako jih je mogoče porabiti. To se naredi s trikom, imenovanim P2SH (pay to script hash), kjer je sprva v verigo blokov vključen le razpršeni del skripta. Ta na videz naključno premešana številka vsebuje kovance. Ko lastnik porabi kovance, razkrije celoten scenarij tako dobro, kot “rešitev” scenarija hkrati. Nato lahko vsak uporabnik z začetno razpršitvijo preveri, ali je priloženi skript resnično prvotni skript, ki zaklepa kovance, in lahko takoj ugotovi, da so zahteve skripta izpolnjene.
Kljub temu pa je pri porabi kovancev trenutno treba razkriti vse možne pogoje, ki bi lahko bili izpolnjeni – vključno s pogoji, ki niso bili izpolnjeni. To ima dve glavni slabosti. Prvič, podatki so težki, še posebej, če obstaja veliko pogojev. In dve, slabo je za zasebnost. Vsakdo se nauči vseh različnih načinov porabe sredstev, ki lahko na primer razkrijejo, kakšna denarnica je bila uporabljena in morda še več.
MAST
MAST (Merkelized Abstract Syntax Tree) je predlagana rešitev, ki uporablja drevesa Merkle (desetletja stara, kompaktna podatkovna struktura, ki jo je izumil kriptograf Ralph Merkle) za rešitev teh dveh slabosti. Skratka, vsi različni pogoji, pod katerimi je mogoče porabiti sredstva, so posamično zgoščeno (v nasprotju s kombiniranim v eno samo zgoščeno) in vključeno v drevo Merkle, ki na koncu ustvari eno samo razpršeno: Merkleov koren. Ta Merkleov koren “zaklene” kovance.
Edinstvena prednost je, da če kaj podatkov v drevesu Merkle je mogoče razkriti koren Merkle in nekatere dodatne podatke (imenovane Merklejeva pot), da preverimo, ali so bili ti podatki vključeni v drevo Merkle. Preostalo drevo Merkle ostaja razpršeno in skrito.
Pri MAST to pomeni, da je treba razkriti le pogoj, ki je izpolnjen. Če v začetnem primeru zgolj Alice porabi sredstva po enem tednu, le razkrije to stanje (in Merklovo pot). Nihče ne izve, da bi denar lahko porabila tudi Alice in Bob skupaj ali samo Bob, če bi dodal skrivno številko. Zaradi tega je MAST bolj podatkovno učinkovit kot zapletene pametne pogodbe P2SH in dodaja zasebnost pri zagonu.
Toda s Schnorrjem lahko Taproot deluje še bolje: transakcija lahko skrije, da je MAST-struktura sploh obstajala.
Schnorr
Shema podpisa Schnorr je že dolgo na seznamu želja številnih razvijalcev Bitcoinov in je trenutno v fazi razvoja, da bi jo uvedli kot nadgradnjo protokola soft fork. Številni kriptografi menijo, da je Schnorrjeva shema podpisov najboljša na tem področju, saj njene matematične lastnosti ponujajo visoko stopnjo pravilnosti, ne trpi in je razmeroma hitro preveriti.
Schnorrjeva “linearna matematika” kot najbolj znana prednost v kontekstu Bitcoina omogoča združevanje podpisov: več podpisov v isti transakciji je mogoče združiti v enega. Podoben trik bi lahko uporabili pri transakcijah multisig. Če združite tako javne ključe kot podpise v »pragovne javne ključe« in »pragove podpise«, lahko multisig transakcijo ločite od katere koli običajne transakcije..
Shemo podpisa je mogoče uporabiti na še bolj zanimive načine. Podatke je na primer mogoče uporabiti za “poteg” tako zasebnega kot javnega ključa. Kot poenostavljen primer lahko zasebni ključ in ustrezni javni ključ prilagodimo tako, da oba pomnožimo z dvema. »Zasebni ključ x 2« in »javni ključ x 2« bi še vedno ustrezala, »zasebni ključ x 2« pa bi lahko še vedno podpisoval sporočila, ki bi jih bilo mogoče preveriti z »javnim ključem x 2«. Kdor se ne bi zavedal, da je bil prvotni par ključev prilagojen, ne bi videl niti razlike; potegnjene tipke izgledajo kot kateri koli drug par ključev.
To je tisto, kar omogoča Taproot.
Taproot
Taproot temelji na zanimivem spoznanju: ne glede na to, kako zapleten je, lahko skoraj vsaka konstrukcija MAST vključuje (ali bi morala) vključevati pogoj, ki vsem udeležencem omogoča, da se dogovorijo o izidu in se preprosto skupaj podpišejo za poravnavo. V prejšnjem primeru, če Bob ve, da lahko Alice že prihodnji teden sama zahteva vsa sredstva, lahko zdaj tudi sodeluje z njo, da se skupaj odjavi. (V mnogih tipičnih postavkah pametnih pogodb bi bil celo kaznovan, če tega ne stori. Kompleksnost v resnici služi le temu, da bi bili vsi pošteni.)
Taproot spominja na MAST in nenehno vključuje pogoj, v katerem lahko vsi udeleženci sodelujejo pri porabi sredstev: „zapreti zadrugo“.
Z uporabo Schnorrjevih podpisov je tu zanimivo.
Najprej bi zaprta zadruga uporabila trik Schnorrjevega praga, da bi bil videti kot običajna transakcija od ene osebe do druge. Torej se javni ključi vseh udeležencev seštejejo, kar ima za posledico »pražni javni ključ«. V skladu s tem pragovnim javnim ključem kombinacija podpisov vseh udeležencev – njihov „podpis praga“ – omogoča porabo sredstev.
Zaenkrat je dobro, toda poraba sredstev, kot da gre za normalno transakcijo, je edina stvar, ki jo lahko storijo – še nobene strukture, podobne MAST-u. Tu nastopi drugi Schnorrov trik.
Vsi alternativni načini porabe sredstev – nekooperativni rezultati – so tokrat združeni v drugačen scenarij. Ta skript je torej zgoščen in navajen poteg javni ključ praga. Namesto »javni ključ x 2«, kot je bil uporabljen v prejšnjem primeru, nastane »skript praga javnega ključa x«. (Še vedno poenostavljamo.) Ta »prag javni ključ x skript« seveda ustreza »pragu podpisa x skript«.
Če se denar porabi skupaj, vsi udeleženci svoje podpise združijo v »podpis praga« in ga potegnejo s skriptom. Nastali »podpis praga x skript« jim omogoča, da porabijo sredstva. A kar je pomembno, za zunanji svet bi vse to še vedno izgledalo kot navaden javni ključ in navaden podpis – redna transakcija.
Šele če se izkaže, da je tesna zadruga nemogoča, se lahko prikaže pražni javni ključ za to, kar v resnici je: potegnjen.
V tem primeru sta oba original razkrije se javni ključ praga in skript. To dokazuje, da je bil s tem specifičnim skriptom nastavljen “prag skripta za javni ključ x”. Tako kot hash v P2SH, tudi poteg dokazuje svetu, da bi morala biti sredstva porabljena, če so izpolnjeni alternativni pogoji, določeni v tem scenariju. (In tako kot pri P2SH so tudi ti pogoji za porabo sredstev seveda takoj izpolnjeni.)
Namesto da bi pražni javni ključ prilagodili s skriptom, lahko javni ključ praga prilagodite z Merkleovim korenom drevesa Merkle, ki vključuje vse različne pogoje, pod katerimi je mogoče porabiti sredstva: strukturo MAST. Za porabo sredstev je torej treba razkriti le izpolnjeni pogoj porabe.
Kot tak ponuja Taproot vse prednosti MAST-a, medtem ko v običajnih okoliščinah nihče ne bo nikoli vedel, da se v redni transakciji skriva tako zapletena pametna pogodba, kot je nadomestna.
To je splošen oris koncepta Taproot; posebnosti izvedbe se lahko razlikujejo. Za več podrobnosti preberite prvotni predlog Taproot avtor Gregory Maxwell ali pazi to predstavitev avtor Pieter Wuille.