Bitcoin-brugere kan inden længe være i stand til at drage fordel af et trick kaldet “Taproot.” Først foreslog af Bitcoin Core-bidragyder og tidligere Blockstream CTO Gregory Maxwell ville Taproot udvide Bitcoins smarte kontraktfleksibilitet, samtidig med at det giver mere privatliv ved at gøre det. Selv de mest komplekse smarte kontrakter ville på blockchain typisk ikke skelnes fra regelmæssige transaktioner.

Mens det er en stor virksomhed, er dette ikke kun teori. Flere af de mest produktive Bitcoin Core-bidragydere – herunder Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell og faktisk Gregory Maxwell – arbejder på et Schnorr-underskriftsforslag, der vil omfatte Taproot, alle i en protokolopgradering.

Her er hvad Taproot er, og hvordan det fungerer.

P2SH

Alle bitcoins er i det væsentlige “låst” i scripts: et par kodelinjer indlejret i en transaktion inkluderet i blockchain, der definerer, hvordan mønterne kan bruges i den næste transaktion. Forbrugsbetingelser indebærer normalt at give en underskrift for at bevise ejerskab af mønterne. Men andre, velkendte forhold inkluderer f.eks. Tidslåse (mønter kan kun bruges efter en bestemt blokhøjde eller -dato) eller multisig (mønter kan kun bruges, hvis et antal private nøgler ud af et sæt private nøgler giver underskrifter).

Forskellige forhold kan blandes og matches for at skabe komplekse typer smarte kontrakter. Et eksempel på en sådan kontrakt kan være, at mønter kan bruges, hvis både Alice og Bob underskriver, eller hvis Alice alene underskriver efter en uges tid er gået, eller hvis Bob alene underskriver samtidig med at han giver et hemmeligt nummer. Uanset hvilken af ​​disse tre betingelser der er opfyldt først, er det, hvordan mønterne bruges.

Siden 2012 er scripts (betingelserne) ofte ikke offentligt synlige i starten; kun den nye ejer af mønterne ved, hvordan de kan bruges. Dette gøres med et trick kaldet P2SH (løn til script-hash), hvor oprindeligt kun en hash af scriptet er inkluderet i blockchain. Dette tilsyneladende tilfældigt krypterede tal holder mønterne. Når ejeren bruger mønterne, afslører han hele scriptet såvel som “løsningen” på scriptet på samme tid. Alle kan derefter bruge den indledende hash til at kontrollere, at det medfølgende script faktisk var det originale script, der låste mønterne op, og kan straks konkludere, at kravene til scriptet var opfyldt.

Når mønterne er brugt, er det stadig nødvendigt at afsløre alle de mulige betingelser, der kunne have været opfyldt – inklusive de betingelser, der ikke blev opfyldt. Dette har to store ulemper. Den ene er datatung, især hvis der er mange forhold. Og to, det er dårligt for privatlivets fred. Alle lærer alle de forskellige måder, hvorpå midler kunne have været brugt, som f.eks. Kan afsløre, hvilken slags tegnebog der blev brugt og måske endnu mere.

MAST

MAST (Merkelized Abstract Syntax Tree) er en foreslået løsning, der bruger Merkle-træer (en årtier gammel, kompakt datastruktur opfundet af kryptograf Ralph Merkle) til at arbejde omkring disse to ulemper. Kort sagt er alle de forskellige betingelser, hvorunder midlerne kan bruges individuelt hashede (i modsætning til kombineret til en enkelt hash) og inkluderet i et Merkle-træ, som i sidste ende producerer en enkelt hash: Merkle-roden. Denne Merkle-rod “låser” mønterne op.

Den unikke fordel er, at hvis nogen af dataene i Merkle-træet afsløres, kan Merkle-roden og nogle yderligere data (kaldet Merkle-stien) bruges til at verificere, at de specifikke data var inkluderet i Merkle-træet. Resten af ​​Merkle-træet forbliver hash og skjult.

Med MAST betyder det, at kun den betingelse, der er opfyldt, skal afsløres. Hvis Alice i det indledende eksempel ovenfor bruger pengene alene efter en uge, afslører hun bare den tilstand (og Merkle-stien). Ingen lærer, at pengene også kunne have været brugt af Alice og Bob sammen eller af Bob alene, hvis han havde tilføjet et hemmeligt nummer. Dette gør MAST mere dataeffektiv end komplekse P2SH-smarte kontrakter og tilføjer privatliv til boot.

Men med Schnorr kan Taproot gøre det endnu bedre: En transaktion kan skjule, at der overhovedet eksisterede en MAST-struktur.

Schnorr

Schnorr-signaturordningen har længe været på ønskelisten for mange Bitcoin-udviklere og er i øjeblikket under udvikling, der skal implementeres som en soft fork-protokolopgradering. Mange kryptografer anser Schnorr-signaturskemaet for at være det bedste i marken, da dets matematiske egenskaber tilbyder et stærkt niveau af korrekthed, det lider ikke under formbarhed og er relativt hurtigt at kontrollere.

Som sin mest kendte fordel i forbindelse med Bitcoin giver Schnorrs “lineære matematik” mulighed for signaturaggregering: flere signaturer i samme transaktion kan kombineres til en. Et lignende trick kunne anvendes på multisig-transaktioner. Ved at kombinere både offentlige nøgler og underskrifter i “tærskel offentlige nøgler” og “tærskel signaturer” kan en multisig-transaktion gøres uadskillelig fra enhver almindelig transaktion.

Og signaturordningen kan bruges på endnu mere interessante måder. For eksempel er det muligt at bruge data til at “finjustere” både en privat nøgle og en offentlig nøgle. Som et forenklet eksempel kan en privat nøgle og den tilhørende offentlige nøgle tweakes ved at gange dem begge med to. “Privat nøgle x 2” og “offentlig nøgle x 2” svarer stadig, og “privat nøgle x 2” kan stadig underskrive meddelelser, der kan verificeres med “offentlig nøgle x 2.” Enhver, der ikke er klar over, at det oprindelige nøglepar blev justeret, kunne ikke engang se nogen forskel; de justerede taster ligner ethvert andet nøglepar.

Dette gør det muligt for Taproot.

Taproot

Taproot er baseret på en interessant erkendelse: uanset hvor kompleks, næsten enhver MAST-konstruktion kunne (eller burde) omfatte en betingelse, der gør det muligt for alle deltagere at blive enige om resultatet og blot logge på en afviklingstransaktion sammen. I det tidligere eksempel, hvis Bob ved, at Alice alene kan kræve alle midlerne i næste uge, kan han lige så godt samarbejde med hende nu for at underskrive sammen. (I mange typiske smarte kontraktopsætninger ville han endda blive straffet, hvis han ikke gør det. Kompleksiteten tjener virkelig bare til at holde alle ærlige.)

Taproot ligner MAST og altid inkluderer en betingelse, hvor alle deltagere kan samarbejde om at bruge midlerne: “kooperativet tæt.”

Ved at bruge Schnorr-signaturer bliver det interessant.

Først og fremmest ville den kooperative lukning bruge Schnorrs tærskeltrick for at få det til at ligne en regelmæssig transaktion fra en person til en anden. Så de offentlige nøgler for alle deltagere tilføjes sammen, hvilket resulterer i “offentlig tærskelnøgle”. Svarende til denne offentlige tærskelnøgle giver kombinationen af ​​alle deltageres underskrifter – deres “tærskelsignatur” – mulighed for at bruge midlerne.

Indtil videre så godt, men at bruge midlerne som om det var en normal transaktion er det eneste, de kan gøre – ingen MAST-lignende strukturer endnu. Det er her det andet Schnorr-trick kommer ind.

Alle de alternative måder, hvorpå midlerne kan bruges – de ikke-samarbejdsvillige resultater – kombineres denne gang til et andet script. Dette script er derefter hashet og brugt til tweak tærsklen til offentlig nøgle. I stedet for “offentlig nøgle x 2”, som brugt i eksemplet tidligere, resulterer dette i et “tærskel offentlig nøgle x script.” (Vi forenkler stadig.) Dette “tærskel for offentlig nøgle x-script” svarer naturligvis til et “tærskelsignatur x-script.”

Hvis pengene nu bruges sammen, kombinerer alle deltagere deres underskrifter i “tærskelsignaturen” og finjusterer dem med scriptet. Det resulterende “tærskelsignatur x-script” giver dem mulighed for at bruge pengene. Alligevel, og vigtigere, for omverdenen vil alt dette stadig bare ligne en almindelig offentlig nøgle og en regelmæssig underskrift – en regelmæssig transaktion.

Kun hvis en kooperativ lukning viser sig umulig, kan den offentlige tærskelnøgle vises for hvad den virkelig er: tweaked.

I dette tilfælde er både original tærskel offentlig nøgle og scriptet afsløres. Dette beviser, at “tærsklen til offentlig nøgle x-script” blev finjusteret med dette specifikke script. Så ligesom hash i P2SH, er tweak beviser for verden, at midlerne skal kunne bruges, hvis de alternative betingelser, som specificeret i dette script, er opfyldt. (Og som med P2SH er disse betingelser naturligvis straks opfyldt for at bruge pengene.)

Alternativt kan stedet for at tilpasse den offentlige tærskelnøgle med script tweaked den offentlige tærskelnøgle med en Merkle-rod af et Merkle-træ, der inkluderer alle de forskellige betingelser, hvorunder midlerne kan bruges: en MAST-struktur. For at bruge midlerne skal kun den udgiftsbetingelse, der er opfyldt, afsløres.

Som sådan tilbyder Taproot alle fordelene ved MAST, mens under normale omstændigheder ingen nogensinde vil vide, at en regelmæssig transaktion skjulte en så kompleks kompleks kontrakt som en tilbageførsel..

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