Blockchain til smarte mennesker*

(*Hvem føler sig dum, når nogen siger “blockchain”).

Et overblik over blockchain

Blockchain er betegnelsen på en teknologi, der først blev implementeret i 2009, og som er bedst kendt for at være brugt med kryptovaluta. Blockchain er blevet en meget anvendt teknologi, der hurtigt har betydet ændringer i sektorer som cybersikkerhed, valg, fast ejendom, analyse og deleøkonomisk transport.

Indenfor kryptovluta fungerer en blockchain som en distribueret offentlig regnskabsbog, en sikker metode til registrering af peer-to-peer-transaktioner, der gør dem offentligt verificerbare. Blockchain er ikke afhængig af en central myndighed, og vigtigst af alt gør det dobbeltudgifter og forfalskning umuligt. Teoretisk set er dobbeltforbrug og forfalskning muligt, men den påkrævede tid for dette er længere end universets nuværende alder.

At forklare blockchain-teknologi grundigt i denne artikel er endnu mere umuligt! I stedet for vil vi forklare et par grundlæggende koncepter omkring hvordan Scrive bruger blockchain. Afhængig af hvor teknisk du er, er følgende enten et indblik på højt niveau eller et meget generelt overblik.

Hvorfor bruger Scrive blockchain?

Scrive garanterer dit dokuments integritet ved at forsegle det med en digital signatur. Blockchain-teknologi tilbyder en metode til at sikre den digitale signatur ved at indtaste den i et permanent, verificerbart offentligt register. Dette betyder, at du kan bevise, at dit dokument i tilfælde af en tvist:

  • ikke er blevet ændret
  • ikke er en forfalskning
  • blev oprettet på den nøjagtige dato og tid angivet med den digitale signatur

Kryptografisk hash

Det er muligt at oprette et unikt, uforfalskeligt fingeraftryk af enhver digital fil ved at anvende en algoritme til de binære data. Fingeraftrykket er en værdi, der kaldes et kryptografisk hash.

Et eksempel på en meget enkel hashing-funktion:

  • Brug hvert andet bogstav
  • Hashet indholder maksimalt seks bogstaver
  • Udfyld om nødvendigt mellemrum med X

Blockchain –> BOKHIX
To be, or not to be, that is the question –> TBONTO

I forhold til de mulige kombinationer af bogstaver ville denne algoritme ikke skabe unikke fingeraftryk til disse tekstkæder. Der er dog meget mere sofistikerede måder at gøre det på. Du kan bruge binær repræsentation af bogstaver og anvende funktioner, der er langt mere interessante end “hvert andet bogstav”. Når man tænker på, at en simpel fil på 100 Kb kan repræsenteres med en 800.000-cifret linje af 1’er og 0’er, er det ikke overraskende, at folk laver ph.d.-projekter på hashfunktioner.

I et Scrive-dokument er filen en PDF-fil af det elektronisk underskrevne dokument, bevispakke og eventuelle vedhæftede filer. For at forsegle et elektronisk signeret dokument bruger Scrive SHA-256 algoritmen, hvilket gør det umuligt at generere et identisk hash fra andre dokumenter eller filer. Et kryptografisk hashs natur er, at det er umuligt at bruge det til at genskabe dokumentets indhold. Derefter indsendes hashet til Scrives leverandør og partner Guardtime.

Merkle-træ

For at sikre integriteten af flere filer kan du integrere deres hashværdier i en struktur kaldet et Merkle-træ. Hvert hash er et knudepunkt i træstrukturen.

Hvert blad (knudepunkterne på træets laveste niveau) er et hash, der repræsenterer en digital fil (ikke selve filen). Du kan kombinere hash fra to tilstødende blade (Hash G og Hash H) og bruge den samme hashing-funktion (SHA-256-algoritmen) til at beregne en tredje hashværdi og skabe et knudepunkt et niveau længere oppe på træet (Hash C). Fortsæt denne proces op ad træet, og du kan beregne topniveau-hash (Top).

Alle knudepunkter i træet (bladene såvel som mellemliggende hashværdier) er relateret til hinanden på en sådan måde, at du kun kan beregne den korrekte øverste niveauværdi, hvis alle hash i træet er korrekte. Betydning: de er ikke blevet ændret eller forfalsket. Denne beregningsmetode gør forfalskning umulig, for hvis et enkelt hash ændres, kan du ikke kompensere ved at ændre et andet hash i træet for at nå det korrekte hash på topniveauet.

Hvis dit dokument er repræsenteret af Hash G i diagrammet, skal du bruge værdierne til Hash H, Hash D og Hash B for at beregne Top.

Blockchain: Sikker lagring

En blockchain er en effektiv og sikker måde at opbevare flere Merkle-træer på. Du kan tænke på en blockchain som en database. I modsætning til de fleste traditionelle databaser, der er sammensat af tabeller med kolonner og rækker, er en blockchain sammensat af sekventielle blokke, der er sikkert knyttet til hinanden ved hjælp af kryptografi. En anden forskel er, at sikkerheden ikke afhænger af adgangstilladelser; i stedet verificeres data uafhængigt heraf.

I de fleste traditionelle databaser er der fire typer handlinger, du kan udføre: oprette, læse, opdatere og slette (CRUD). Men med blockchain er det kun muligt at oprette og læse. For at oprette ny data tilføjes en ny blok til kæden, så den sidste blok i kæden er den seneste. Når en nye blok tilføjes, valideres den af flere uafhængige parter for at beskyttes mod svig.

En KSI-blockchain er faktisk et stort, voksende Merkle-træ. Hver blok er en hashværdi, der er knyttet til den forrige blok på en sådan måde, at hvis en post i kæden ændres, er det umuligt at beregne hashværdierne for de blokke, der er blevet tilføjet senere.

Tilføjelse af nye data til blockchain er det samme som at oprette et nyt knudepunkt i et Merkle-træ. Du kombinerer hash fra roden af et Merkle-træ (der endnu ikke er forbundet til blockchain) og hash fra den forrige blok. Derefter bruger du den samme hashing-funktion (SHA-256-algoritmen) til at beregne hashen for den nye blok. Den nyeste blok er ubrydeligt forbundet til den forrige blok såvel som til Merkle-træet, der netop er tilføjet blockchainen.

Når vi ser på eksemplet omrking kryptovaluta, indeholder hvert af bladene i Merkle-træet information om regnskab. Da regnskabet er offentligt og uforanderligt, kan enhver beregne saldoen på en individuel konto, og ingen kan vilkårligt ændre en saldo.

Dokumentverificering

I tilfælde af forsegling og verificering af et Scrive-dokument med jævne mellemrum (en gang om måneden), offentliggør Guardtime det øverste hash-nivaeu for det konstant voksende Merkle-træ. Denne hash er tilknyttet hash i alle Scrive-dokumenter, der er underskrevet og forseglet i løbet af den foregående måned.

For at validere den nye blok offentliggør Guardtime hash i Financial Times, der opfylder den juridiske standard for “widely witnessed media”. Overordnet set er hashet blevet optaget i den offentlige registrering. Ændringen af et enkelt blad på et Merkle-træ vil ødelægge blockchainen. Offentliggørelse af hash i Financial Times er et middel til at verificere den korrekte værdi af enhver blok uafhængigt af Scrive eller Guardtime.

Efter offentliggørelse forsegles alle Scrive-dokumenter, der er repræsenteret ved det nye hash, endnu en gang. Den anden forsegling tilvejebringer en vej til toppen af træet, dvs. de mellemliggende hashværdier, du har brug for til at beregne det offentliggjorte hash igen.

Verificering kræver kun det forseglede dokument og adgang til det hash, der er offentliggjort i Financial Times. Processen vil være som følger:

  • Beregn dokumentets hash igen.
  • Genskab Merkle-træet ved hjælp af oplysningerne i forseglingen.
  • Sammenlign topniveau-hash med hash, der er offentliggjort i Financial Times.

Men det er ikke alt

I forhold til forskellige blockchain-applikationer, implementeringer og nye udviklinger i teknologien finder du sandsynligvis en række forskellige forklaringer på disse emner. Der er ingen hurtig og nem måde at forstå blockchain-teknologi på, og de fleste af os vil aldrig forstå de små detaljer. Så hvis du er interesseret, skal du tage dig god tid og konsultere flere kilder.