Hva er...
Bitcoin Script?
Bitcoin Script er et enkelt programmeringsspråk som definerer betingelser for hvordan bitcoin kan brukes. Hver transaksjon inneholder små programmer som må kjøres for at transaksjonen skal være gyldig.
Da Satoshi Nakamoto skapte bitcoin valgte han å inkludere Bitcoin Script fra dag én. I stedet for at en gyldig bitcoin-transaksjon var definert som "send disse pengene fra A til B", var det heller Bitcoin Script som sa om transaksjonen var gyldig. Den avgjørelsen skal vi være glade for, for det har gjort at bitcoin i ettertid har hatt muligheter for å utvikle seg.
De vanligste transaksjonene i dag benytter en veldig enkel variant av Bitcoin Script, som sier "send disse pengene fra A til B, så lenge det finnes en gyldig signatur". Andre vanlige og mer komplekse formater er multisignatur og CoinJoin.
Et veldig enkelt programmeringsspråk
Bitcoin Script skiller seg ganske mye fra vanlige programmeringsspråk. I Python og JavaScript kan du for eksempel hente ting fra internett, eller gjøre så komplekse matematiske beregninger du bare vil. Slik er det ikke i Bitcoin Script! Der er det ekstremt begrenset hva du kan gjøre:
- Verifisere digitale signaturer
- Beregne hash-verdier
- Gjøre helt enkel matte
Dette er med vilje! Satoshi Nakamoto designet Bitcoin Script for å være enkelt å verifisere, slik at det skulle være enkelt for noder på nettverket å delta. Alle noder må nemlig laste ned hele blokkjeden, og verifisere innholdet i alle Bitcoin Script i alle transaksjoner! Dette gjelder til sammen mange, mange millioner av transaksjoner. Da er det en stor fordel at ting er enkelt.
Smarte kontrakter
Et vanlig begrep innenfor bitcoin- og kryptovaluta-verden er smarte kontrakter, eller smart contracts på engelsk. Bitcoin Script var den aller første versjonen av smarte kontrakter! I ettertid har det kommet mange andre varianter, både på Bitcoin og andre kryptovalutaer. Bitcoin Script er en veldig begrenset variant av smarte kontrakter - men så er det også noe av poenget.
Hva kan det brukes til?
Hver gang du sender eller mottar bitcoin bruker du Bitcoin Script, helt uten å tenke på det! Av litt mer komplekse varianter du kanskje har hørt om, finnes Lightning-nettverket og BitVM.
Oppgraderinger
Den originale versjonen av Bitcoin var rimelig glup - men som alle nye ideer var det en del barnesykdommer og ting som ikke ble helt optimalt. Det har derfor vært flere oppgraderinger av Bitcoin og Bitcoin Script! De mest kjente av disse er Segwit og Taproot, mens mindre kjente eksempler fra Bitcoins tidlige historie er Pay to Script Hash (P2SH) og CLTV.
Vanskelig å jobbe med
Bitcoin Script (og smarte kontrakter generelt!) har vist seg vanskelige å jobbe med i praksis. Det er mange fallgruver å gå i, og en eneste liten tabbe kan vise seg å få veldig store konsekvenser. Det har derfor vært færre bruksområder for Bitcoin Script enn hva Satoshi Nakamoto kanskje så for seg.
De siste årene har derfor miniscript (https://bitcoinops.org/en/topics/miniscript/) blitt en stadig vanligere teknologi å bruke i bitcoin-lommebøker. Miniscript er en variant av Bitcoin Script som er laget for å gjøre det enklere å lage trygge programmer.