Denne artikel er en direkte opfølgning fra vores Taproot forklaring. Hvis du ikke har læst den artikel, skal du sandsynligvis gøre det først.

Hvis Taproot implementeres på Bitcoin, vil mange smarte kontraktkonstruktioner se ud som almindelige transaktioner på blockchain. Så længe alle deltagere er enige om resultatet af kontrakten – en “kooperativ lukning” – tilbyder den kloge kombination af Schnorr og MAST både dataeffektivitet og privatliv.

Men hvis en Taproot-smart kontrakt er kompleks nok – det vil sige, hvis der er mange potentielle resultater – vil Merkle-stien, der skal afsløres i tilfælde af en usamarbejdsvillig lukning, stadig være datatung.

EN opfølgningsforslag af Bitcoin Core-bidragyder Gregory Maxwell, “Graftroot”, kunne give lignende fordele som Taproot, men uden denne ulempe og tilbyde endnu mere smart kontraktfleksibilitet.

Graftroot

Med Taproot kombinerer alle deltagere i en smart kontrakt deres offentlige nøgler for at oprette en “offentlig tærskelnøgle”, hvorfra de kan bruge med deres “tærskelsignatur.” For Graftroot opretter alle deltagere også en sådan offentlig tærskelnøgle. Men denne gang tilpasser de ikke denne offentlige tærskelnøgle.

Deltagerne opretter de forskellige scripts: de alternative betingelser, hvorunder pengene kan bruges. Men med Graftroot underskriver de alle de forskellige scripts for at oprette tærskelsignaturer svarende til disse scripts. Enhver deltager, der ønsker at bruge et bestemt script som en reserve, tager og gemmer det script og den tilsvarende tærskelsignatur. Disse underskrifter kan senere bevise for verden, at manuskriptet var et gyldigt alternativ, en “delegation”, aftalt af alle deltagere.

Så lad os sige, at Alice og Bob opretter en smart kontrakt, hvor begge kan bruge penge sammen, eller har Alice alene brugt det efter en uge, eller har Bob alene til at bruge det i kombination med et hemmeligt nummer. I dette tilfælde kombinerer Alice og Bob deres offentlige nøgler for at skabe en offentlig tærskelnøgle, hvorfra de senere kan bruge midlerne, hvis de giver tærskelsignaturen. (De opretter ikke denne tærskelsignatur endnu – kun når de bruger pengene.)

Derefter opretter de og underskriver straks de alternative scripts. Alice holder tærskelsignaturen svarende til scriptet, der lader hende bruge mønterne efter en uge, og Bob holder tærskelsignaturen svarende til scriptet, der lader ham bruge mønterne i kombination med et hemmeligt nummer. (Bemærk, at tærskelsignaturerne og de tilsvarende scripts alene ikke er tilstrækkelige til at bruge mønterne; de ​​beviser bare, at scriptsene er aftalt af både Alice og Bob. Betingelserne specificeret i scriptsne skal stadig være opfyldt for at bruge mønterne. )

Den næste dag, når tiden er inde til at afvikle kontrakten, vil Alice og Bob sandsynligvis blive enige om at underskrive afviklingstransaktionen. De skaber sammen en tærskelsignatur, der skal bruges fra den offentlige tærskel, og ingen andre lærer om de alternative udgiftsbetingelser, eller endda at mere end en person var involveret. Det ligner en almindelig transaktion.

Men hvis den kooperative lukning mislykkes af en eller anden grund, kan den, der kan opfylde en alternativ betingelse, bruge mønterne alene. Hvis Bob har det hemmelige nummer, afslører han “sit” alternative script i kombination med tærskelsignaturen, der svarer til scriptet. Resten af ​​verden kan kontrollere tærskelsignaturen mod tærskelens offentlige nøgle og vil konkludere, at alle deltagere i den smarte kontrakt er enige om det alternative script. Bob kan derfor med rette bruge mønterne med det hemmelige nummer. Alternativt, hvis en uge er gået, kan Alice afsløre ”hendes” alternative script i kombination med tærskelsignaturen for scriptet og bruge mønterne. I begge tilfælde lærer ingen af ​​det alternative backup-script.

Den største fordel ved Graftroot er, at det ikke længere betyder noget, hvor kompleks en smart kontrakt er, eller mere præcist, hvor mange mulige resultater der er. Mens ovenstående eksempel kun indeholder to alternative scripts, kan en Graftroot-konstruktion omfatte hundreder, og det ville ikke gøre en forskel. Alice og Bob kunne endda tilføje flere betingelser efter den oprindelige smarte kontrakt blev bygget!

En ulempe er dog, at Graftroot er interaktiv. Deltagerne skal kommunikere med hinanden for at underskrive de alternative scripts, selv før de bruger mønterne. Derudover skal deltagerne gemme tærskelsignaturerne for de alternative scripts; mister de denne underskrift, mister de deres tilbagefald.

Graftroot’s Udvikling

Så hvornår vil Bitcoin-brugere være i stand til at bruge denne teknologi?

Den gode nyhed er, at med Segregated Witness giver en funktion kaldet “Script Versioning” mulighed for en relativt let udrulning af disse typer ændringer – Schnorr-signaturer, Taproot, Graftroot – på en bagudkompatibel måde.

Ideelt set foretrækker Bitcoin Core-bidragsydere, der arbejder på denne form for opgraderinger – dette inkluderer Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell og Gregory Maxwell – alle disse forbedringer på enkelt gang. Mens scriptversionering gør det let at opgradere, kræver det dog, at transaktioner afslører, hvilken protokolopgradering der bruges. Så mens Graftroot perfekt kunne skjule, at alternative scripts var tilgængelige, kunne scriptversionen stadig afsløre, at transaktionen bruger Graftroot. Implementering af flere protokolopgraderinger på én gang undgår dette i nogen grad, da de alle ville bruge den samme scriptversion. Oven i købet er implementering af flere opgraderinger på en gang til fordel for softwarekompatibilitet.

På den anden side er en “relativt let udrulning” stadig en kæmpe opgave, når det kommer til konsensusændringer på en sikkerhedskritisk protokol, der kører 24/7, undertiden med forskellige interesser og præferencer, når det kommer til opgraderinger. Hver potentiel funktion har sine egne afvejninger, så en kombination af mange på én gang kan også føre til flere indvendinger. Og selvfølgelig gør kombinationen af ​​flere funktioner i en enkelt opgradering heller ikke udviklingsprocessen lettere.

For nu prioriteres derfor Schnorr-signaturer og Taproot, der skal foreslås som en enkelt pakke. Graftroot kan være et skridt efter det.

Dette er en generel oversigt over Graftroot-konceptet; implementeringsspecifikationer kan variere. For flere detaljer, læs oprindelige Graftroot-forslag af Gregory Maxwell eller se denne præsentation af Pieter Wuille.