Denne artikkelen er en direkte oppfølging fra vår Taproot forklarer. Hvis du ikke har lest den artikkelen, bør du sannsynligvis gjøre det først.

Hvis Taproot distribueres på Bitcoin, vil mange smarte kontraktskonstruksjoner se ut som vanlige transaksjoner på blockchain. Så lenge alle deltakerne er enige om utfallet av kontrakten – et “samarbeidsavslutning” – gir den smarte kombinasjonen av Schnorr og MAST både dataeffektivitet og personvern.

Imidlertid, hvis en Taproot smart kontrakt er kompleks nok – det vil si hvis det er mange potensielle resultater – vil Merkle-banen som må avsløres i tilfelle en usamarbeidelig avslutning fremdeles være datatung.

EN oppfølgingsforslag av Bitcoin Core-bidragsyter Gregory Maxwell, “Graftroot”, kan gi lignende fordeler som Taproot, men uten denne ulempen, og tilby enda mer smart kontraktfleksibilitet.

Graftroot

Med Taproot kombinerer alle deltakere i en smart kontrakt sine offentlige nøkler for å lage en “terskel offentlig nøkkel”, som de kan bruke med “terskelsignaturen”. For Graftroot oppretter alle deltakere også en slik terskel offentlig nøkkel. Men denne gangen tilpasser de ikke denne terskelen offentlig nøkkel.

Deltakerne lager de forskjellige manusene: de alternative forholdene pengene kan brukes under. Men med Graftroot signerer de alle de forskjellige skriptene for å lage terskelsignaturer som tilsvarer disse skriptene. Enhver deltaker som ønsker å bruke et bestemt skript som en reserve, tar og lagrer skriptet og den tilsvarende terskelsignaturen. Disse signaturene kan senere bevise for verden at manuset var et gyldig alternativ, en “delegasjon”, som alle deltakerne ble enige om.

La oss si at Alice og Bob oppretter en smart kontrakt der begge kan bruke penger sammen, eller har Alice alene brukt det etter en uke, eller har Bob alene bruke det i kombinasjon med et hemmelig nummer. I dette tilfellet kombinerer Alice og Bob sine offentlige nøkler for å lage en terskel offentlig nøkkel som de senere kan bruke midlene fra hvis de gir terskelsignaturen. (De oppretter ikke denne terskelsignaturen ennå – bare når de bruker midlene.)

Deretter oppretter de og signerer umiddelbart de alternative skriptene. Alice holder terskelsignaturen som tilsvarer skriptet som lar henne bruke myntene etter en uke, og Bob holder terskelsignaturen som tilsvarer skriptet som lar ham bruke myntene i kombinasjon med et hemmelig nummer. (Merk at terskelsignaturene og tilsvarende skript alene ikke er tilstrekkelig til å bruke myntene; de ​​viser bare at skriptene er enige om både Alice og Bob. Betingelsene som er angitt i skriptene må fortsatt oppfylles for å bruke myntene. )

Neste dag, når tiden kommer til å gjøre opp kontrakten, vil Alice og Bob sannsynligvis bli enige om å signere forlikstransaksjonen. De skaper sammen en terskelsignatur å bruke fra terskelen til offentlig nøkkel, og ingen andre lærer om de alternative utgiftsforholdene, eller til og med at mer enn en person var involvert. Det ser ut som en vanlig transaksjon.

Men hvis samarbeidsavslutningen mislykkes av en eller annen grunn, kan den som kan oppfylle en alternativ betingelse bruke myntene alene. Hvis Bob har det hemmelige nummeret, avslører han “sitt” alternative skript i kombinasjon med terskelsignaturen som tilsvarer skriptet. Resten av verden kan sjekke terskelsignaturen mot terskelen offentlig nøkkel, og vil konkludere med at alle deltakerne i den smarte kontrakten ble enige om det alternative skriptet. Bob kan derfor med rette bruke myntene med det hemmelige nummeret. Alternativt, hvis en uke har gått, kan Alice avsløre ”hennes” alternative manus i kombinasjon med terskelsignaturen for manuset og bruke myntene. I begge tilfeller er det ingen som får vite om det alternative backup-skriptet.

Den største fordelen med Graftroot er at det ikke lenger betyr noe hvor kompleks en smart kontrakt er, eller, mer nøyaktig, hvor mange mulige resultater det er. Mens eksemplet ovenfor bare inneholder to alternative skript, kan en Graftroot-konstruksjon omfatte hundrevis, og det ville ikke utgjøre noen forskjell. Alice og Bob kunne til og med legge til flere betingelser etter at den opprinnelige smarte kontrakten ble bygget!

En ulempe er imidlertid at Graftroot er interaktiv. Deltakerne må kommunisere med hverandre for å signere de alternative manusene, selv før de bruker myntene. I tillegg må deltakerne lagre terskelsignaturene for de alternative skriptene. hvis de mister denne signaturen, mister de tilbakeslaget.

Graftroot’s Development

Så når vil Bitcoin-brukere kunne bruke denne teknologien?

Den gode nyheten er at med Segregated Witness tillater en funksjon som kalles “Script Versioning” en relativt enkel utrulling av denne typen endringer – Schnorr-signaturer, Taproot, Graftroot – på en bakoverkompatibel måte..

Ideelt sett foretrekker Bitcoin Core-bidragsytere som jobber med denne typen oppgraderinger – dette inkluderer Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell og Gregory Maxwell – alle disse forbedringene på en gang. Mens skriptversjonering gjør oppgradering enkelt, krever det at transaksjoner avslører hvilken protokolloppgradering som brukes. Så mens Graftroot perfekt kunne skjule at alternative skript var tilgjengelige, kunne manusversjonen fremdeles avsløre at transaksjonen bruker Graftroot. Ved å distribuere flere protokolloppgraderinger på en gang unngås dette til en viss grad, ettersom de alle bruker samme skriptversjon. I tillegg fordeler programvarekompatibilitet med å distribuere flere oppgraderinger samtidig.

På den annen side er en “relativt enkel utrulling” fortsatt et stort foretak når det gjelder konsensusendringer på en sikkerhetskritisk protokoll som kjører 24/7, noen ganger med varierende interesser og preferanser når det gjelder oppgraderinger. Hver potensielle funksjon har sine egne avveininger, så å kombinere mange på en gang kan også føre til flere innvendinger. Og selvfølgelig gjør ikke utviklingsprosessen noe enklere å kombinere flere funksjoner til en enkelt oppgradering.

For nå prioriteres derfor Schnorr-signaturer og Taproot, som skal foreslås som en enkelt pakke. Graftroot kan være et skritt etter det.

Dette er en generell oversikt over Graftroot-konseptet; spesifikasjoner for implementering kan variere. For mer informasjon, les originalt Graftroot-forslag av Gregory Maxwell eller se denne presentasjonen av Pieter Wuille.