Segregated Witness har gått inn i sitt siste teststadium før utrulling på Bitcoin-nettverket. Det er gode nyheter, viktigst av alt fordi innovasjonen introduserer en kapasitetsøkning for å tillate flere transaksjoner i nettverket, mens den også løser transaksjonsmobilitet.

Og det introduserer skriptversjonering – en utvidelse av Bitcoin-protokollen som gir mulighet for en helt ny kategori av innovasjon.

En av disse forestående innovasjonene har vært på toppen av flere Bitcoin-utvikleres ønskelister i noen tid: Schnorr signaturer.

Med den forestående utgivelsen av Segregated Witness, kan implementeringen av Schnorr kryptografiske signaturalgoritme følge kort tid etter, noe som potensielt forbedrer Bitcoins skalerbarhet, effektivitet og personvern, alt på en gang.

Dette er hvordan.

Underskrifter

Først en kort re-cap: hva er signaturer??

I hjertet av Bitcoin ligger det matematiske trikset som kalles “offentlig nøkkel-kryptografi”, et kryptografisk system som bruker to typer “nøkler” (virkelig strenger med tall): private nøkler og offentlige nøkler.

En privat nøkkel og en offentlig nøkkel er matematisk knyttet. Men selv om det er veldig enkelt å produsere en offentlig nøkkel fra en privat nøkkel, er det praktisk talt umulig å produsere den private nøkkelen fra en offentlig nøkkel. Det er en “enveis gate”.

For å bruke bitcoins fra en bestemt Bitcoin-adresse, må man bevise “eierskap” (eller: kunnskap) om den private nøkkelen som refererer til den offentlige nøkkelen som er knyttet til den adressen. Og for å bevise eierskap til en privat nøkkel, uten å måtte avsløre den private nøkkelen, brukes en kryptografisk signatur.

En signatur opprettes ved å utføre en beregning ved hjelp av transaksjonsdataene og den private nøkkelen. Og her kommer magien til kryptografi med offentlig nøkkel inn: Når man kjenner den offentlige nøkkelen, kan alle se om riktig privat nøkkel ble brukt til å lage signaturen. Uten å måtte trenge å kjenne selve den private nøkkelen.

“Eieren” av den private nøkkelen kan derfor signere en transaksjon og bruke bitcoins uten å bekymre seg for at noen andre kan ta den private nøkkelen og stjele bitcoins; den private nøkkelen blir aldri avslørt, og signaturen er bare gyldig for den spesifikke transaksjonen.

(For en mer utførlig forklaring av kryptografi med offentlig nøkkel i Bitcoin, se denne artikkelen. Eller bare fortsett å lese. Mens det grunnleggende signaturkonseptet betyr noe, er detaljene ikke avgjørende for formålet med denne artikkelen.)

Schnorr

Så hva er da Schnorr-signaturer?

Schnorr, oppkalt etter oppfinneren Claus-Peter Schnorr, er en signaturordning: serien av matematiske regler som knytter den private nøkkelen, den offentlige nøkkelen og signaturen sammen. Mange kryptografer anser Schnorr-signaturer som de beste i feltet, siden de tilbyr et sterkt nivå av korrekthet, ikke lider av smidbarhet, er relativt raske å verifisere, og – viktigere, – støtter multisignatur: flere signaturer kan samles til en enkelt, ny signatur.

Imidlertid har det hittil ikke vært mulig å bruke Schnorr i Bitcoin. En annen type signaturordning, Elliptic Curve Digital Signature Algorithm (ECDSA), er bakt inn i Bitcoin-protokollen, og endring som vil kreve en hard gaffel.

Det er her Segregated Witness kommer inn.

Med Segregated Witness blir alle signaturdata flyttet til en egen del av transaksjonen: vitnet, som ikke er innebygd i den “gamle” Bitcoin-protokollen. Og takket være versjonsversjon av skript, kan nesten alle regler som brukes i vitnet, endres gjennom en myk gaffel. Inkludert typen signaturordning som brukes.

Dette åpner døren for Schnorr.

Kapasitet

Schnorr-eiendommen som er til fordel for Bitcoin mest, er multisignaturaggregering.

Mange Bitcoin-transaksjoner inkluderer flere innganger, med henvisning til adressene bitcoins sendes fra. (Dette kan sammenlignes med hvordan kontantbetalinger ofte består av flere mindre regninger og mynter for å betale en større sum penger.) Akkurat nå krever alle disse inngangene sin egen signatur, noe som betyr at alle disse signaturene må inkluderes i en transaksjon, alle må overføres over nettverket, og alle må være inkludert i en blokk.

Med Schnorr vil imidlertid alle innganger i stedet bare kreve en kombinert signatur for å representere alle disse forskjellige signaturene. Dette gir en åpenbar datafordel, da bare en signatur må være inkludert i en transaksjon, bare en må overføres over nettverket, og bare en må inkluderes i en blokk. Dette betyr at det er mer plass for transaksjoner.

For eksempel:

Segregated Witness, som foreslått av Bitcoin Core, tilbyr en (omtrent) 75 prosent rabatt på alle dataene som er inkludert i vitnet, i stedet for den opprinnelige blokken. En megabyte vitnedata blir derfor “veid” som 25 megabyte, noe som vil gi plass til 75 megabyte transaksjonsdata i den opprinnelige blokken, for totalt 1 megabyte..

Hvis aggregerte Schnorr-signaturer reduserer den totale størrelsen på vitnedata, si fra 1 megabyte til 5 megabyte, vil denne 5 megabyte deretter bli redusert til 0,125 megabyte, og gi plass til opptil 0,875 megabyte i den opprinnelige blokken. (En kapasitetsøkning på omtrent 17 prosent.)

Den nøyaktige mengden ekstra rom avhenger av hvilke typer transaksjoner som inngår i blokker. Men grove estimater fra Bitcoin Core-utvikler Eric Lombrozo antyder at Schnorr-signaturer til slutt kan øke den totale kapasiteten med 40 prosent eller mer – det er på toppen av de 60–100 prosent som allerede er tilbudt av Segregated Witness.

Multisig

Kapasitetsøkningen som beskrevet ovenfor gjelder for vanlige transaksjoner, ettersom mange transaksjoner inkluderer mer enn ett input. Men fordelen kan være enda større når det gjelder multisig-transaksjoner – transaksjoner der en enkelt inngang i seg selv krever flere signaturer (vanligvis fra forskjellige personer).

Som med normale transaksjoner, trenger ikke mer enn en enkelt signatur å være inkludert i noen multisig-transaksjoner. Uansett hvor mange underskrifter som kreves, uansett hvor mange mennesker som er involvert.

Dette åpner døren til langt mer komplekse smarte kontraktkonstruksjoner, for en brøkdel av dataene som normalt kreves. Enten det er to av tre, tre av femten eller hundre hundre typer multisig-transaksjoner, vil alle ha samme mengde signaturdata som en typisk enkelt-signatur-transaksjon.

Personvern

Og for det tredje kan Schnorr-signaturer tilby en annen interessant fordel: incentivisert personvern.

Som nevnt kan en transaksjon inkludere flere innganger. Vanligvis refererer disse inngangene til adresser som alle kontrolleres av samme person. (I henhold til eksemplet med flere sedler og mynter.)

Men et personvernforbedrende triks oppfunnet av Bitcoin Core-utvikler Gregory Maxwell,  CoinJoin, lar forskjellige brukere kombinere alle sine transaksjoner i en enkelt transaksjon. Den ene transaksjonen vil omfatte flere innganger som kommer fra forskjellige betalere, som sender penger til flere utganger, tilhørende forskjellige betalingsmottakere.

(Dette kan sammenlignes med at en gruppe mennesker kaster sedler og mynter sammen i en kurv, som de bruker for å handle i forskjellige butikker for å kjøpe de produktene de alle ønsker. Hver person får varene den enkelte betalte for, men det er usannsynlig at den enkeltes “egen” regning betalt for produktet den enkelte kjøpte.)

Hvis det gjøres riktig, er CoinJoin en fin måte å forbedre personvernet på Bitcoin-protokollen, da det blir uklart hvilke innganger som betalte hvilke utganger nøyaktig, enn si hvilken person som betalte hvilken person.

CoinJoin er ikke et nytt konsept. Men inntil nå var CoinJoin vanligvis litt bry. Som sådan bryr de fleste seg ikke. Og siden de fleste ikke gidder, kan de som gidder automatisk bli markert som mistenkelige; potensielt å beseire formålet med å bruke CoinJoin i utgangspunktet.

Men Schnorr-signaturer kan gi CoinJoin en ny fordel. Det gjør det mulig for alle deltakere i en CoinJoin-transaksjon å ikke bare kombinere sine transaksjoner, men også å kombinere deres signaturer. Og å gjøre det betyr at størrelsen på transaksjonen faktisk ville være mindre enn alle individuelle transaksjoner til sammen. Som igjen betyr at gruvearbeidere vanligvis vil kreve et mindre gebyr for å behandle transaksjonen.

Med Schnorr ville CoinJoin derfor ikke bare øke personvernet, men også – viktigere – redusere kostnadene for alle involverte. Faktisk ville det være en kostnadsfordel å bruke det mest private alternativet, noe som bare kan gjøre det til alternativet for alle – det øker Bitcoin-personvernet for alle.

Merk: Prosessen med å implementere Schnorr-signaturer i Bitcoin er fortsatt i konseptfasen. Mens de fleste Bitcoin Core-utviklere ser ut til å tro at Schnorr-signaturer trygt kan distribueres i Bitcoin, er det for tidlig å si med sikkerhet.

Takk til Bitcoin Core-utvikler og  Blockstream medstifter Dr. Pieter Wuille for å gi informasjon, og Bitcoin Core-utvikler og  Ciphrex Konsernsjef Eric Lombrozo for korrekturlesing og ytterligere forslag.