Ta članek je neposredno nadaljevanje našega Razlagalec stožčastih korenin. Če tega članka niste prebrali, bi to verjetno morali storiti najprej.

Če je Taproot nameščen na Bitcoinu, bodo številne konstrukcije pametnih pogodb videti tako kot običajne transakcije na verigi blokov. Dokler se vsi udeleženci strinjajo o izidu pogodbe – “tesnem sodelovanju” – pametna kombinacija Schnorr-ja in MAST-a ponuja tako podatkovno učinkovitost kot zasebnost.

Če pa je pametna pogodba Taproot dovolj zapletena – torej če obstaja veliko potencialnih rezultatov – bi bila pot Merkle, ki jo je treba razkriti v primeru nesoglasja, še vedno težka.

A nadaljnji predlog avtorja Bitcoin Coreja Gregoryja Maxwella, “Graftroot,” bi lahko zagotovil podobne ugodnosti kot Taproot, vendar brez te negativne strani, ki ponuja še večjo prilagodljivost pametnih pogodb.

Cepič

S programom Taproot vsi udeleženci pametne pogodbe kombinirajo svoje javne ključe in tako ustvarijo »prag javnega ključa«, iz katerega lahko porabijo s svojim »pragom podpisa«. Za Graftroot vsi udeleženci ustvarijo tudi tak prag javni ključ. Tokrat tega praga ne prilagodijo javnemu ključu.

Udeleženci resnično ustvarijo različne scenarije: alternativne pogoje, pod katerimi je mogoče porabiti denar. Toda z Graftroot vsi podpišejo različne skripte, da ustvarijo podpise pragov, ki ustrezajo tem skriptom. Vsak udeleženec, ki želi uporabiti določen skript kot rezervni element, vzame in shrani ta skript in ustrezen prag. Ti podpisi lahko kasneje svetu dokažejo, da je bil scenarij veljavna alternativa, „delegacija“, za katero so se dogovorili vsi udeleženci.

Recimo, da Alice in Bob skleneta pametno pogodbo, kjer lahko oba skupaj porabita sredstva, ali naj ga po enem tednu preživi sama Alice, ali naj ga Bob porabi sam v kombinaciji s skrivno številko. V tem primeru Alice in Bob združita svoja javna ključa in tako ustvarita prag javnega ključa, iz katerega lahko kasneje porabijo sredstva, če priskrbijo podpis praga. (Tega praga še ne ustvarijo – šele ko porabijo sredstva.)

Nato tudi ustvarijo in takoj podpišejo alternativne skripte. Alice ohrani podpis praga, ki ustreza skripti, ki ji omogoča, da kovance porabi po enem tednu, Bob pa podpis praga, ki ustreza skripti, ki mu omogoča, da kovance porabi v kombinaciji s tajno številko. (Upoštevajte, da podpisi pragov in ustrezni skripti sami ne zadoščajo za porabo kovancev; oni samo dokazujejo, da se o scenarijih strinjata tako Alice kot Bob. Za porabo kovancev je treba še vedno izpolniti pogoje, določene v scenarijih. )

Naslednji dan, ko pride čas za poravnavo pogodbe, se bosta Alice in Bob verjetno dogovorila, da bosta podpisala poravnavo. Skupaj ustvarijo podpis praga za porabo iz javnega ključa praga in nihče drug ne izve za alternativne pogoje porabe ali celo, da je sodelovalo več oseb. Videti je kot običajna transakcija.

Če pa zadruga iz nekega razloga propade, lahko kdor koli izpolni drug pogoj, da kovance porabi sam. Če ima Bob skrivno številko, razkrije »svoj« nadomestni skript v kombinaciji s podpisom praga, ki ustreza skriptu. Preostali svet lahko preveri podpis praga glede na javni ključ praga in ugotovi, da so se vsi udeleženci pametne pogodbe dogovorili o alternativnem scenariju. Bob torej lahko kovance s pravico zapravi s tajno številko. Če je pretekel teden dni, lahko Alice razkrije “svoj” nadomestni scenarij v kombinaciji s podpisom praga za skript in porabi kovance. V obeh primerih nihče ne izve za nadomestni skript za varnostno kopiranje.

Glavna prednost Graftroota je, da ni več pomembno, kako zapletena je pametna pogodba ali, natančneje, koliko možnih rezultatov obstaja. Medtem ko zgornji primer vključuje samo dva nadomestna skripta, bi lahko konstrukcija Graftroot vključevala na stotine in to ne bi vplivalo. Alice in Bob sta lahko po izdelavi prvotne pametne pogodbe dodala celo več pogojev!

Slaba stran pa je, da je Graftroot interaktiven. Udeleženci morajo med seboj komunicirati, da podpišejo nadomestne scenarije, še preden porabijo kovance. Poleg tega bodo morali udeleženci shraniti podpise pragov za alternativne skripte; če izgubijo ta podpis, izgubijo rezervni del.

Graftroot’s Development

Kdaj bodo torej uporabniki Bitcoina lahko uporabili to tehnologijo?

Dobra novica je, da funkcija Segregated Witness, ki se imenuje »Script Versioning«, omogoča sorazmerno enostavno uvajanje tovrstnih sprememb – Schnorr-jevi podpisi, Taproot, Graftroot – na način, združljiv z nazaj..

Kljub temu bi v najboljšem primeru sodelavci Bitcoin Core, ki delajo na tovrstnih nadgradnjah – to so Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell in Gregory Maxwell, raje uvedli vse te izboljšave na enkrat. Čeprav različice skriptov olajšajo nadgradnjo, zahtevajo, da transakcije razkrijejo, katera nadgradnja protokola se uporablja. Torej, čeprav bi Graftroot lahko popolnoma prikril, da so na voljo nadomestni skripti, bi različica skripta še vedno lahko pokazala, da transakcija uporablja Graftroot. Uvajanje več nadgradenj protokola naenkrat se temu izogne, saj bi vsi uporabljali isto različico skripta. Poleg tega uvajanje več nadgradenj hkrati koristi združljivosti programske opreme.

Po drugi strani pa je “razmeroma enostavno uvajanje” še vedno velik zalogaj, ko gre za soglasne spremembe glede varnostno kritičnega protokola, ki deluje 24 ur na dan, 7 dni v tednu, včasih z različnimi interesi in preferencami pri nadgradnjah. Vsaka potencialna lastnost ima svoje kompromise, zato bi lahko združevanje več hkrati povzročilo več ugovorov. In seveda združevanje več funkcij v eno samo nadgradnjo tudi ne olajša razvojnega procesa.

Zaenkrat imajo torej prednost podpisi Schnorr in Taproot, ki jih je treba predlagati kot en paket. Graftroot bi lahko bil korak za tem.

To je splošen oris koncepta Graftroot; posebnosti izvedbe se lahko razlikujejo. Za več podrobnosti preberite izvirni predlog Graftroot avtor Gregory Maxwell ali pazi to predstavitev avtor Pieter Wuille.