En digital signatur er kryptografisk bevis på at en melding ble godkjent av innehaveren av en spesifikk privat nøkkel. I Bitcoin er meldingen en transaksjon, og signaturen beviser at du har lov til å bruke myntene.
Bedre enn en håndskrevet signatur
En signatur på papir ser lik ut på hvert dokument, så den kan kopieres. En digital signatur er forskjellig for hver melding. Den beregnes fra både den private nøkkelen og de nøyaktige transaksjonsdataene. Endre én satoshi eller én adresse, og signaturen blir ugyldig. Å kopiere den over på en annen transaksjon fungerer heller ikke.
Signere og verifisere
Signering: lommeboken din kombinerer transaksjonsdataene med din private nøkkel (og et ferskt tilfeldig tall) for å produsere signaturen.
Verifisering: hvilken som helst node kan sjekke signaturen med din offentlige nøkkel. Hvis matematikken fungerer, er transaksjonen autorisert. På intet tidspunkt avsløres den private nøkkelen.
Algoritmene
Bitcoin brukte opprinnelig ECDSA på secp256k1-kurven. Siden Taproot-oppgraderingen i 2021 støtter den også Schnorr-signaturer. Schnorr-signaturer er enklere, har et sikkerhetsbevis under standardantakelser (BIP340), og kan kombineres. Et multisig-bruk kan da se ut som en vanlig enkelt signatur on-chain, som sparer plass og forbedrer personvernet.
En berømt feil
Signaturer krever et ferskt tilfeldig tall hver gang. I 2010 gjenbrukte Sonys PlayStation 3 det samme tallet, og hackere klarte å hente tilbake dens private signeringsnøkkel. Noen tidlige Bitcoin-lommebøker med svak tilfeldighet hadde samme problem, og myntene deres ble stjålet. Moderne lommebøker avleder dette tallet deterministisk fra nøkkelen og meldingen (RFC 6979) for å unngå risikoen.
Signaturer er grunnen til at Bitcoin ikke trenger kontoer eller passord. Matematikk, ikke en bank, godkjenner bruken din.