Varje gång en bitcointransaktion sker så är digitala signaturer inblandade på något sätt. När Adam skickar bitcoin till Bertil så säger transaktionen egentligen något i stil med "lås de här pengarna och låt endast någon som har den privata nyckeln P som motsvarar bitcoinadressen A komma åt dem". A är alltså Bitcoinadressen som Bertil gett till Adam och P är den privata nyckel som A genererats utifrån och som bara Bertil känner till. När Bertil ska skicka dessa bitcoin vidare måste han signera transaktionen med P.
Signaturer är alltså centrala i Bitcoin och utgör en stor del av all data i blockkedjan. Beskrivningen ovan är dessutom lite förenklad. I verkligheten kan det vara så att Bertil när han ska skicka bitcoin vidare behöver "samla ihop" bitcoin från flera s.k. "inputs" och då behövs faktiskt en signatur för varje input. Den här komplexiteten är förstås något som normalt sett döljs för användaren så strunta i att det kan verka lite komplicerat för det som är intressant att förstå är alltså att det spelar roll för blockens storlek.
I nuläget använder Bitcoin en algoritm som heter Elliptic Curve Digital Signature Algorithm (ECDSA) och även om det har funkat fint så långt så finns det finns det bättre alternativ. Schnorrsignaturer har fått sitt namn av skaparen Claus Schnorr och har flera fördelar gentemot ECDSA. I fallet ovan där flera signaturer behövs eftersom flera inputs används skulle det med Schnorrs variant bara krävas 1 signatur eftersom det finns ett fiffigt sätt att slå ihop flera signaturer till en enda. Det har gjorts uppskattningar att endast den här effekten av att kombinera inputs skulle ge utrymmesbesparingar i blockkedjan på hela 25%.
Ett annat område där Schnorrsignaturer får stor effekt är s.k. multisignaturer. Med multisignaturer kan du konstruera lösningar där bitcoin kan kommas åt så länge t.ex. minst 2 av 3 utvalda personer godkänner transaktionen. Multisignaturer är kanske inte något som gemene man stöter på rent konkret men faktum är att de används bakom kulisserna t.ex. i Lightning Network så de är långt ifrån oväsentliga. På samma sätt som signaturer för flera inputs kan kombineras ihop till en så kan samma sak göras för de olika signaturer som krävs i en multisignaturlösning. Detta innebär också en förbättring av integriteten för användarna eftersom en transaktion inte längre avslöjar de individuella signaturerna eller ens hur många som signerat den.
Det finns dessutom fler fiffiga saker, relaterat till smarta kontrakt, som möljiggörs tack vare Schnorrsignaturer. För ett konkret exempel där en lyssnare betalar en artist för en sång, kolla in den här utmärkta artikeln av Aaron van Wirdum på Bitcoin Magazine:
Att introducera en ny typ av signaturer är en stor förändring och inget som genomförs i en handvändning. Idén har diskuterats under ett antal år och i början av 2018 publicerades en forskningsrapport av Gregory Maxwell, Andrew Poelstra, Yannick Seurin och Pieter Wuille som går igenom hur Schnorrsignaturer skulle kunna användas i Bitcoin. De kallar lösningen för MuSig. För knappt en månad sedan meddelade Andrew Poelstra i ett blogginlägg att forskningen nu också kompletterats med fungerande kod. Poelstra uppmuntrar alla som har möjlighet att testa koden och komma med feedback.
Vi har dock en bit kvar innan vi får se det här på plats i Bitcoin Core och någon tidsuppskattning vågar Poelstra inte sig på:
The first step is putting together a concrete, specific proposal, and sending this to the bitcoin-dev mailing list for community review. The review process will likely take many months, during which time the proposal could undergo many changes. In parallel to this, and continuing afterward, code needs to be written, tested and reviewed. The software then needs to be widely deployed before the changes can be activated. It is hard to say how long this entire process will take.
Värt att notera är att det inte kommer att behövas en hard fork för att implementera detta. I samband med att SegWit introducerades fick vi nämligen också en versionsmekanism för Bitcoins scriptspråk som förenklar införandet av just den här typen av ändringar.
Kommentarer