Denne teksten er automatisk oversatt og kan derfor avvike fra originalen. Ingen rettigheter kan utledes fra denne oversettelsen.
Hvordan fungerer en blockchain? Del 1: fingeravtrykk
Et fingeravtrykk er unikt. Når du har fingeravtrykket til en person, kan du enkelt verifisere om dette fingeravtrykket tilhører en bestemt person. Hvis du bare har et fingeravtrykk, er det (uten en tidligere samlet liste med fingeravtrykk) praktisk umulig å finne personen knyttet til det uten å gå gjennom fingeravtrykkene til alle personer. Matematisk sett kan du også bestemme fingeravtrykket til en informasjonsbit.
Hash
Et slikt digitalt fingeravtrykk, også kjent som hash, danner grunnlaget for en blockchain. For å forstå hvorfor digitale fingeravtrykk er så viktige, er det viktig å først forstå hvordan de fungerer.
Enhver kan bestemme det digitale fingeravtrykket til en informasjonsbit ved å beregne en (komplisert) matematisk formel. Det spiller ingen rolle hvor lang informasjonen er (akkurat som fingeravtrykkene til personer ikke er spesifikke for deres lengde!). Når du har informasjonen og fingeravtrykket, kan du enkelt verifisere om de hører sammen.
I Bitcoin, en blockchain for økonomiske transaksjoner, brukes den såkalte 'SHA-256'-hashmetoden. Du kan for eksempel beregne SHA-256-fingeravtrykket av en tekstbit selv her. Hashen av teksten “Tommy” er for eksempel:
5bee7cef227fe327178bd04bb7cc75ba9a36f1b8867ba1025430761a226539e9.
Nå skal vi endre stor bokstav til en liten bokstav: hva er hashen av “tommy”?
044f4b3501cd8e8131d40c057893f4fdff66bf4032ecae159e0c892a28cf6c8e
Selv om det bare er én bokstav som er annerledes, er fingeravtrykket helt annerledes! Ikke uventet: ditt fingeravtrykk og din bror eller søsters fingeravtrykk vil, selv om dere ligner veldig på hverandre, også være helt annerledes.
Hvis jeg bare ga deg hashen “044f4b..” fra ovenfor, er den eneste måten å finne ut hvilken tekst den hører til, å prøve alle mulige tekstbiter. Først etter mye prøving ville du finne ut at fingeravtrykket hører til teksten “tommy”. Matematikere kaller fingeravtrykkmåten derfor enveis: det er enkelt å beregne fingeravtrykket av informasjon, men å finne informasjonen basert på fingeravtrykket er nesten umulig.
Bevis på arbeid
Det tilfeldige ved hashene gjør det mulig å bruke dem til en interessant anvendelse. Som du så ovenfor, er bokstavene og tallene i fingeravtrykket svært tilfeldige. Matematisk sett er sjansen for at et fingeravtrykk av en spesifikk tekstbit starter med en ‘0’ 1 av 16. Hvis jeg ber deg finne en tekstbit som har en hash som starter med en ‘0’, vil du i gjennomsnitt måtte prøve seksten tekstbiter (og hvis du er uheldig, enda flere!). Hvis jeg skulle be deg om en hash som starter med to nuller, vil det i gjennomsnitt kreve 16 x 16 = 256 forsøk; fordi hvis det første tallet er en ‘0’, er det bare en sjanse på 1/16e for at det andre tallet er null.
Antallet nuller som en hash starter med, sier derfor noe om antall tekstbiter du (gjennomsnittlig) har måttet prøve før du kom fram til denne hashen. En slik hash kan derfor brukes som en slags ‘bevis på arbeid’ (proof of work). Hvis du viser meg en tekst som har en hash som starter med to nuller, vet jeg at du omtrent har beregnet en hash 256 ganger.
Nå tilbake til blockchain: hva har vi nytte av disse fingeravtrykkene? I blockchainen blir kun nye blokker akseptert når du har bevist at du har gjort en viss mengde regnearbeid. Dette forhindrer at alle kan legge til blokker vilkårlig: databehandlingskraft koster penger, og selve beregningen tar tid. Fordi det er svært kostbart å alltid ha mer databehandlingskraft enn de andre deltakerne, er det praktisk talt umulig å få kontroll over en blockchain alene!