Blockkedja för smarta människor*

* Som känner sig dumma när någon pratar om blockkedja

Vad är blockkedja?

Blockkedja är begreppet för en teknik som implementerades 2009 och är mest känd för sin användning inom kryptovaluta. Blockkedja har blivit en allmänt använd teknik som snabbt rör om i så olika sektorer som cybersäkerhet, politiska val, fastighetsbranschen, finansiella analyser och samåkning.

Avseende kryptovaluta, används en blockkedja som en distribuerad offentlig huvudbok, en säker metod för registrering av transaktioner mellan vänner, som gör transaktionerna offentligt verifierbara. Blockkedja har inget behov av en central myndighet, och viktigast av allt, den gör dubbel bokföring och förfalskning omöjligt. Teoretiskt sett är dubbel bokföring och förfalskning möjligt, men tiden som krävs är längre än universums nuvarande ålder.

Att förklara blockkedjetekniken noggrant inom utrymmet för denna artikel är ännu mer omöjlig! Istället förklarar vi några grundläggande begrepp i det sammanhang som Scrive använder blockkedja. Beroende på din tekniska kunnighet, är det följande antingen en ögonblicksbild på hög nivå eller en detaljerad djupdykning.

Varför använder Scrive en blockkedja?

Scrive garanterar integriteten i ett dokument genom att försegla det med en digital signatur. Blockkedjetekniken tillhandahåller ett sätt att säkra den digitala signaturen genom att registrera den i en permanent, verifierbar publikation. I händelse av tvist, innebär det att man kan bevisa att ett dokument:

  • inte har ändrats
  • inte är en förfalskning
  • skapades exakt den dag och den tid som anges av den digitala signaturen

Kryptografisk hash

Det är möjligt att skapa ett unikt, oförglömligt fingeravtryck av digitala filer genom att tillämpa en algoritm på binär data. Det värde man får fram är ett fingeravtryck som kallas kryptografisk hash.

Exempel på mycket enkel hashing-funktion:

  • använd varannan bokstav
  • maximalt 6 bokstäver i hashen
  • lägg till X om så behövs

Blockkedja –> BOKEJX
Atvara eller inte vara, det är frågan –> ATAALE

Med tanke på de få möjliga bokstavskombinationerna, skulle denna algoritm inte kunna skapa ett verkligt unikt fingeravtryck för dessa textkedjor. Det finns emellertid mycket mer sofistikerade sätt att göra det på. Man kan använda binära representationer av bokstäver och tillämpa betydligt mer intressanta funktioner än “varannan bokstav”. Med tanke på att en enkel 100 Kb-fil kan representeras av en 800 000-siffrig sträng av 1:or och 0:or, är det föga förvånande att människor gör doktorsavhandlingar på hashing-funktioner.
När det gäller ett Scrive-dokument, består filen av en PDF-fil med det elektroniskt signerade dokumentet, bevispaketet och eventuella bilagor. För att försegla ett elektroniskt signerat dokument använder Scrive SHA-256-algoritmen, vilket gör det omöjligt att generera en identisk hash från ett annat dokument eller från en annan fil. Dessutom är den kryptografisk hashens karaktär sådan att den är omöjlig att använda den för att rekonstruera dokumentets innehåll. Hashen skickas sedan till Guardtime, som är Scrives leverantör och partner.

Merkleträd

För att säkerställa integriteten hos flera filer, kan man integrera filernas hashvärden i en struktur som kallas ett Merkleträd. Varje hash är en förgrening, en nod, i trädstrukturen.

Varje löv (utväxterna längst ner på trädet) är en hash som representerar en digital fil (inte själva filen). Man kan kombinera hasharna av två intilliggande löv (Hash G och Hash H) och använda samma hashing-funktion (SHA-256-algoritment) för att beräkna ett tredje hashvärde och skapa en nod en nivå högre upp i trädet (Hash C) . Genom att fortsätta med denna process uppåt i trädet, kan man beräkna topphashen (Topp) .

Samtliga noder i trädet (löven likväl som de mellanliggande hashvärdena) är relaterade till varandra på ett sätt så att man endast kan beräkna det korrekta topphashvärdet om samtliga hashar i trädet är korrekta, dvs. att de inte har ändrats eller förfalskats. Detta beräkningssätt gör förfalskning omöjlig, eftersom ändring av en enda hash inte kan kompenseras med ändring av en annan hash i trädet för att komma fram till den rätta topphashen.

Om ditt dokument representeras av Hash G i diagrammet, behöver du endast värdena för Hash H, Hash D och Hash B för att beräkna Topp.

Blockkedja (Blockchain)

En blockkedja är ett effektivt och säkert sätt att lagra uppgifterna från flera Merkleträd. Man kan föreställa sig blockkedjor som en databas. Till skillnad från de flesta konventionella databaser som består av kolumner och rader, består en blockkedja av blocksekvenser som är säkert sammankopplade med hjälp av kryptografi. En annan skillnad är att säkerheten inte är beroende av tillträdesbehörigheter; uppgifterna verifieras oberoende istället.

I de flesta konventionella databaser finns det fyra typer av åtgärder man kan utföra: skapa, läsa, uppdatera och ta bort. Med blockkedja är det endast möjligt att skapa och läsa. För att skapa nya uppgifter, läggs ett nytt block till i kedjan, så det sista blocket i kedjan är det senaste. När varje nytt block läggs till, valideras det av flera oberoende parter för att skyddas mot bedrägerier.
En KSI blockkedja är i själva verket ett stort, kontinuerligt växande Merkleträd. Varje block är ett hashvärde kopplat till det föregående blocket på ett sådant sätt att om någon uppgift i kedjan ändrades skulle det vara omöjligt att korrekt kunna beräkna hashvärdena för de block som läggs till senare.

Att lägga till ny data i blockkedjan är samma sak som att skapa en ny nod i ett Merkleträd. Du kombinerar roten av ett Merkleträd (som ännu inte är kopplat till blockkedjan) och det föregående blockets hash. Sedan använder du samma hashing-funktion (SHA-256-algoritmen) för att beräkna hashen för det nya blocket. Det senaste blocket är obrytbart kedjat till föregående block samt till Merkleträdet, som just lagts till blockkedjan.
Om vi återgår till exemplet med kryptovaluta, så innehåller varje löv i Merkleträdet huvudboksinformation. Eftersom huvudboken är offentlig och omöjlig att ändra, kan vem som helst beräkna balansen på ett enskilt konto, och ingen kan godtyckligt ändra en balans.

Att verifiera ett Scrive-dokument

Vid försegling och verifiering av ett Scrive-dokument, publicerar Guardtime regelbundet (en gång per månad) topphashen av det kontinuerligt växande Merkleträdet. Denna hash är kopplad till hasharna i alla de Scrive-dokument som signerats och förseglades under föregående månad.

För att validera detta block, publicerar Guardtime hashen i Financial Times, som uppfyller de rättsliga kraven för “allmänt sedd media”. Löst uttryckt har hashen kommit in i det offentliga registret. Ändringen av ett enda löv på ett Merkleträd skulle bryta blockkedjan. Publicering av hashen i Financial Times är ett sätt att verifiera det korrekta värdet av vilket block som helst, oberoende av Scrive eller Guardtime.

Vid publicering förseglas alla Scrive-dokumenten som representeras av den nya hashen, en andra gång. Den andra förseglingen utgör en väg till toppen av trädet, dvs. de mellanliggande hashvärdena som man skulle behöva för att återberäkna den publicerade hashen.

För verifiering behövs endast det förseglade dokumentet och tillgång till hashen som publicerats i Financial Times. Processen är enligt följande:

  • Återberäkna dokumentets hash.
  • Rekonstruera Merkleträdet genom att använda uppgifterna i förseglingen.
  • Jämför topphashen med den hash som publicerats i Financial Times.

Inte slutet

Med tanke på den mängd förekommande blockkedjeapplikationer, dess genomförande och all ny utveckling inom tekniken, kommer du sannolikt att hitta ett flertal förklaringar till dessa begrepp. Det finns inget snabbt och enkelt sätt att lära sig förstå blockkedjeteknik, och de flesta av oss kommer aldrig att förstå dess detaljnivå. Om du är intresserad och tar dig tid kan ta del av fler källor.

Frågor?

Tell us about what you're trying to solve today

Kontakta oss

Starta en kostnadsfri provperiod

Prova eSign Online i 30 dagar, inget kreditkort, inga förpliktelser

Prova gratis