blokkjede

for smarte personer*

*som føler seg som tullinger når noen nevner blokkjeder

Hva er en blokkjede?

Blokkjede er begrepet for en teknologi som først ble implementert i 2009 og som er best kjent for sin anvendelse innenfor kryptovaluta. Blokkjeden har blitt en hyppig brukt teknologi som raskt har skapt ringvirkninger innenfor et mangfold av sektorer, som cybersikkerhet, valg, eiendom, analytikk og felleskjøring.

Når det gjelder kryptovaluta, fungerer en blokkjede som en distribuert, offentlig regnskapsbok – en sikker metode for å registrere node-til-node-transaksjoner og gjøre dem offentlig verifiserbare. Blokkjeden er ikke avhengig av en sentral autoritet, og viktigst av alt – den gjør dobbeltbruk og forfalsking umulig. I teorien er det mulig med dobbeltbruk og forfalsking, men tiden det vil ta, overstiger universets nåværende alder.

Å få plass til en grundig forklaring av blokkjedeteknologi i denne artikkelen ville være enda mer umulig! I stedet skal vi forklare noen få, grunnleggende konsepter i sammenheng med hvordan Scrive bruker blokkjeden. Avhengig av hvor teknologikyndig du er, blir dette enten et overblikk på høyt nivå eller et detaljert dypdykk.

Hvorfor bruker Scrive en blokkjede?

Scrive garanterer integriteten til dokumentet ditt ved å forsegle det med en digital signatur. Blokkjedeteknologien tilbyr en metode for å sikre den digitale signaturen ved å føre den inn i en permanent, verifiserbar, offentlig protokoll. Dette betyr at dersom en tvist skulle oppstå, kan du bevise at dokumentet ditt:

Kryptografisk hash

Det er mulig å generere et unikt og uforfalskelig fingeravtrykk av enhver digital fil ved å bruke en algoritme på de binære dataene. Det resulterende fingeravtrykket er en verdi som kalles en kryptografisk hash. 

Et eksempel på en svært enkel hash-funksjon:

Blokkjede --> BOKEEX
Å være, eller ikke være; det er spørsmålet. --> ÅÆELEI

Gitt de mulige bokstavkombinasjonene ville ikke denne algoritmen lykkes med å generere virkelig unike fingeravtrykk for disse tekstkjedene. Det finnes imidlertid langt mer sofistikerte måter å gjøre det på. Du kan bruke binærrepresentasjonen av bokstaver og anvende funksjoner som er langt mer interessante enn «annenhver bokstav». Med tanke på at en enkel fil på 100 kB kan representeres av en 800 000 siffer lang streng bestående av tallene 1 og 0, er det ingen overraskelse at folk skriver doktoravhandlinger om hash-funksjoner.

Når det gjelder et Scrive-dokument, er filen en PDF av det elektronisk signerte dokumentet, bevispakken, samt eventuelle vedlegg. For å forsegle et elektronisk signert dokument bruker Scrive SHA-256-algoritmen, som gjør det umulig å generere en identisk hash fra andre dokumenter eller filer. Dessuten er det av natur umulig å bruke en kryptografisk hash til å gjenskape innholdet i dokumentet. Hashen blir deretter sendt inn til Scrives leverandør og partner, Guardtime.

Merkle-tre

For å sikre integriteten til flere filer, kan du innlemme hash-verdiene deres i en struktur som kalles et Merkle-tre. Hver hash er en node i trestrukturen.

Hvert av bladene (nodene på treets bunnivå) er en hash som representerer en digital fil (ikke selve filen). Du kan kombinere hashene til to tilstøtende blader (hash G og hash H) og bruke den samme hash-funksjonen (SHA-256-algoritmen) til å beregne en tredje hash-verdi, noe som oppretter en node ett nivå opp i treet (hash C). Ved å fortsette denne prosessen oppover treet kan du beregne toppnivå-hashen (topp).

Alle nodene på treet (bladene så vel som de mellomliggende hash-verdiene) er beslektet med hverandre på en slik måte at du bare kan beregne riktig toppnivåverdi hvis alle hashene i treet er riktige, altså hvis de ikke har blitt endret eller forfalsket. Denne beregningsmetoden gjør forfalsking umulig, for dersom én enkelt hash endres, kan du ikke kompensere ved å endre en annen hash i treet og dermed komme frem til riktig toppnivå-hash.

Hvis dokumentet ditt er representert av hash G i diagrammet, ville du trengt verdiene av hash H, hash D og hash B for å beregne topp.

Blokkjede

En blokkjede er en effektiv og sikker måte å lagre oppføringer for flere Merkle-trær på. Du kan tenke på en blokkjede som en database. I motsetning til de fleste konvensjonelle databaser, som består av tabeller med rader og kolonner, består en blokkjede av sekvensielle blokker som er lenket sammen på en sikker måte ved bruk av kryptografi. En annen forskjell er at sikkerheten ikke avhenger av tilgangstillatelser; i stedet blir dataene verifisert uavhengig.

I de fleste konvensjonelle databaser er det fire typer handlinger du kan utføre: opprette, lese, oppdatere og slette (CRUD). Men med blokkjeden er det kun mulig å opprette og lese. For å opprette nye data blir en ny blokk lagt til i kjeden, slik at den siste blokken i kjeden er den mest nylige. Hver gang en ny blokk blir lagt til, valideres den av flere uavhengige parter for å beskytte mot svindel.

En KSI-blokkjede er faktisk ett stort Merkle-tre i kontinuerlig vekst. Hver blokk er en hash-verdi som er knyttet til den forrige blokken på en slik måte at hvis noen av oppføringene i kjeden ble endret, ville det være umulig å gjøre en korrekt beregning av hash-verdiene til blokkene som ble lagt til senere.

Å legge til nye data i blokkjeden er det samme som å opprette en ny node i et Merkle-tre. Du kombinerer hashen av roten til et Merkle-tre (som ikke er knyttet til blokkjeden ennå) med hashen av forrige blokk. Deretter bruker du den samme hash-funksjonen (SHA-256-algoritmen) til å beregne hashen til den nye blokken. Den nyeste blokken er ubrytelig lenket både til den forrige blokken og til Merkle-treet som nettopp ble lagt til i blokkjeden.

Hvis vi ser på eksempelet med kryptovaluta igjen, inneholder hvert av bladene i Merkle-treet opplysninger om regnskapsboken. Siden regnskapsboken er offentlig og uforanderlig, kan hvem som helst beregne saldoen på en individuell konto, og ingen kan endre en saldo vilkårlig.

Verifisere et Scrive-dokument

Når det gjelder å forsegle og verifisere et Scrive-dokument, publiserer Guardtime toppnivå-hashen av det stadig voksende Merkle-treet med jevne mellomrom (én gang i måneden). Denne hashen er knyttet til hashene av alle Scrive-dokumentene som ble signert og forseglet i løpet av forrige måned.

For å validere den nye blokken publiserer Guardtime hashen i Financial Times, som overholder den juridiske standarden om «allment kjent media». Enkelt sagt har hashen blitt en del av offentlig protokoll. Endring av ett enkelt blad i et Merkle-tre ville brutt blokkjeden. Publisering av hashen i Financial Times er et middel for å verifisere korrekt verdi for en vilkårlig blokk, uavhengig av Scrive eller Guardtime.

Ved publisering blir alle Scrive-dokumentene som representeres av den nye hashen, forseglet en gang til. Den nye forseglingen lager en sti til toppen av treet, dvs. de mellomliggende hash-verdiene du ville trenge for å beregne den publiserte hashen på nytt.

Verifisering krever kun det forseglede dokumentet og tilgang til hashen som er publisert i Financial Times. Prosessen ville vært som følger:

Dette er ikke slutten

Med tanke på mangfoldet av blokkjedeapplikasjoner, -implementasjoner og nye utviklinger innenfor teknologien, er det sannsynlig at du vil finne en rekke forklaringer av disse emnene. Det finnes ingen rask og enkel måte å forstå blokkjedeteknologi på, og de fleste av oss vil aldri helt forstå de små detaljene. Så hvis du er interessert, bør du ta deg god tid og forhøre deg med flere kilder