Blockkedjeteknik. Kan decentraliserade register förändra världen?
Den stora bankkrisen 2008 satte återigen fokus på det faktum att det finns ett stort och brett missnöje med de finansiella systemen. Många människor känner stor misstro mot banker och finansmarknader och detta leder i sin tur till allehanda konspirationsteorier kring vad som händer bakom kulisserna och kring vem som “verkligen” äger saker. Som en effekt av detta missnöje lanserades 2008 konceptet med ett decentraliserat (och därför mer transparent och demokratiskt) register för ekonomisk information, byggt på tidigare forskning kring säker decentraliserad autentisering av dokument, i form av blockkedjeteknik. Detta koncept utvecklades sedermera till kryptovalutan bitcoin.
Idag har vi tusentals kryptovalutor som bygger på blockkedjeteknik men världen håller också stegvis på att få upp ögonen för att den bakomliggande tekniken med blockkedjor har mycket allmännare och bredare nytta än köp och sälj av digitala valutor.
I denna artikel fördjupar vi oss i tekniken och tittar lite mer på vad den skulle kunna användas till i framtiden.
Blockkedjor
Idag pratar media mer och mer om kryptovalutor i stil med bitcoin, ether eller dogecoin. Men för att förstå bitcoin och kryptovalutor måste man nog först förstå själva tekniken som ligger bakom den, det som kallas blockkedjor. Med denna förståelse kommer förhoppningsvis också insikten att tekniken och användningsområdena bakom blockkedjor är långt mycket större och viktigare än enskilda kryptovalutor. Förhållandet mellan blockkedjor och kryptovalutor är motsvarande förhållandet mellan internet och Google. Internet är den stora viktiga infrastrukturen och Google (Alphabet INC) är företaget vars program och system utnyttjar den infrastrukturen. Blockkedjetekniken är tekniken och infrastrukturen, bitcoin är bara en tänkbar applikation som använder tekniken. I längden har blockkedjor en möjlighet att omforma vårt samhälle långt mycket mer än en enskild kryptovaluta, eller ens alla kryptovalutor tillsammans.
Det decentraliserade registret
Blockkedjor är ett sätt att hålla ett gemensamt och transparent register över någon form av information eller resurser. Det är utformat så att varje förändring av information – exempelvis vem som äger vad – distribueras till varje användare. Systemet bygger på asymmetrisk kryptering. Med hjälp av denna asymmetriska kryptering kan du som användare vara säker på att informationen i blockkedjan – exempelvis då vem som äger vad – är korrekt, utan att du för den delen får reda på exakt vad den informationen är. Medlemmar i ett decentraliserat blockkedjeregister, exempelvis bitcoin, har alltså inte insyn i vad varje medlem äger och inte äger. Den informationen är privat och krypterad. Däremot kan de, om de handlar med någon annan person i blockkedjenätverket, känna sig trygga med att personen har de resurser den utger sig för att ha, eftersom denna information är distribuerad till alla. En transaktion i bitcoinnätverket kan inte gå igenom om det inte finns täckning för den, eftersom både köpare och säljare har krypterad tillgång till information om var varje bitcoin finns, motsvarande att de har den kunskap en bank vanligtvis har monopol på.
I teorin finns det ingen anledning till varför låneregistret på ett folkbibliotek inte skulle kunna vara gjort i blockkedjeform. Böckerna i samlingen skulle kunna vara distribuerade mellan ett centralt bibliotek och alla intressenter (alla som vill ha ett lånekort) och varje förflyttning av böcker skulle kunna registreras i kedjan på ett sätt som gör att böckerna inte hela tiden skulle behöva förvaras på biblioteket eller lämnas till nästa användare med omvägen via biblioteket. Om jag sökte en bok skulle jag kunna få reda på vilken användare som hade boken (anonymiserat genom kryptering, såklart) och kontakta denna för överlämning av boken, förutsatt att den överenskomna lånetiden gått ut. Att det verkligen skulle vara just den användaren som hade just den boken skulle vara garanterat eftersom varje förflyttning av varje bok skulle finnas registrerat i kedjan och den informationen skulle finnas tillgänglig för inspektion av varje användare.
Som biblioteksanställd ser du nu givetvis hundra anledningar till varför detta låter som en helt galen idé och självklart finns det mängder med skäl till varför det inte fungerar i praktiken – men det finns inget egentligt teoretiskt problem med att ett låneregister för böcker decentraliseras och distribueras med blockkedjeteknik på detta sätt. Fördelen med ett dylikt system skulle till exempel vara att driftsäkerheten ökade och att risken för attacker mot systemet minskade. Låneregistret skulle gå att komma åt helt oavsett hur bibliotekets datorer mådde för stunden.
Hur blockkedjan fungerar
Själva ordet blockkedja säger ganska mycket om vad det handlar om. Informationen i det öppna, distribuerade registret placeras i ett block. Detta block kan innehålla information från flera olika användare.
Blocket länkas sedan till det tidigare publicerade informationsblocket i kedjan genom ett kryptografiskt fingeravtryck – en så kallad “hash”, som gör att de två blocken sitter ihop på ett sätt som inte går att bryta eller manipulera. I ett blocks hash ingår all exakt information om blocket (storlek, information, identitet). I blockets hash ingår också information om det föregående blockets hash. När detta block sedan läggs till nästa ingår detta blocks hash som en liten del i informationen i nästa block och påverkar i liten grad nästa hash. Detta skapar en kedja där du tydligt kan följa utvecklingen och kontrollräkna varje block. Block B måste innehålla element av block As hash. Block C måste innehålla element av block Bs hash, som då i sin tur har element av block As hash. Det går alltså inte att stoppa in falska block eller en kopia av ett redan godkänt eller existerande block i kedjan. Alla block blir helt unika och dess position i kedjan tydlig och spårbar. När ett informationsblock lagts till kedjan distribueras information om det ut till alla medlemmar i nätverket och med hjälp av kontrollmekanismerna kopplat till hashfunktionerna som förklaras ovan kan alla se att blocket är korrekt tillagt – utan att de för den sakens skull har insyn i exakt vilka förändringar av information som blocket innehåller. I bitcoins fall handlar det ju om information om ekonomiska transaktioner. Varje dator kopplad till blockkedjan kan när som helst kontrollera en bit information i blockkedjan bakåt.
Proof of Work
I samband med att ett block ska få läggas till kedjan har många blockkedjor infört kravet att datorn eller ett nätverk av datorer ska behöva lösa ett komplicerat matematiskt problem innan blocket godkänns. Detta är en del i kontrollfunktionen för att ett block ska räknas som korrekt av resten av blockkedjenätverket. Problemet ska vara komplicerat nog för att en hel massa datorkraft i det samlade nätverket ska gå åt för att lösa det, men samtidigt inte så oändligt komplicerat att det gör att hela blockkedjan stannar upp i väntan på att det ska bli löst. Detta koncept kallas proof of work. Syftet är att om någon bedrägligt försöker ändra, förvanska eller förfalska information i blockkedjan så måste de – på grund av att blocken sitter fästa i varandra med fingeravtryck, som ju hashen i praktiken är, som är länkade till varandra – byta ut varje block i kedjan (eller egentligen räkna om en ny hash för varje nytt fuskat block) för att komma undan med detta lurendrejeri. Eftersom varje block kräver proof of work i form av komplicerade uträkningar så behöver bedragarna då i teorin ha mer beräkningskraft än resten av hela blockkedjenätverket för att lyckas och få sin falska nya blockkedja accepterad av mer än 50% av nätverket – en så kallad 51%-attack. Detta är något mycket svårt att lyckas med i ett stort distribuerat blockkedjenätverk och i praktiken har vi bara sett exempel på det i mindre, nystartade nätverk.
Exempel:
I en blockkedja med någon form av påhittad kryptovaluta (låt oss kalla det Krämercoins) med tusen sammanlänkade datorer, försöker bedragaren X sig på ett bedrägeri där hen först köper guld av en annan användare i kedjan för ett värde motsvarande 10 miljoner i Krämercoins. Säljaren av guldet behöver inte oroa sig för betalningen. Eftersom all finansiell information om alla Krämercoins finns lagrad i blockkedjan så skulle inte en transaktion gå igenom om det faktiskt inte tidigare i kedjan fanns information om att köparen på något sätt tillskansat sig Krämercoins motsvarande den summan. Betalningen går igenom, köparen får guldet skeppat till sig och säljaren får motsvarande tio miljoner i Krämercoins. Så långt inget konstigt. Men det är nu bedrägeriet sker. Köparen av guldet använder sina hackingfärdigheter och återställer balansen på sitt konto med de pengar hen nyss spenderat och försöker sedan köpa diamanter av en annan användare för samma pengar en gång till. För att blocket som innehåller denna information ska gå igenom måste balansen på köparens konto stämma med informationen i hela den existerande blockkedjan och det gör den inte. Fingeravtrycket har ändrats i och med att information om Krämercoins som skulle vara spenderade nu är ändrat till information om att pengarna är där igen. Andra datorer i nätverket kommer inte att acceptera detta nya block. För att bedrägeriet ska lyckas måste bedragaren justera varje block i kedjan med nya omräknade hashar och kontrollera mer än hälften av datorerna i nätverket för att den “nya” (falska) informationen ska accepteras som den nya “sanningen”. Eftersom varje block som läggs till kräver proof of work-beräkningar så har bedragaren ett svårt jobb framför sig.
Länk till den förklarande filmen Hur fungerar en Blockchain – enkel förklaring av Simply Explained på YouTube. (Filmen är på engelska.)
Användningsområden för blockkedjor i framtiden
Lite förenklat kan man säga att varje centraliserat register eller databas över information som finns idag skulle i teorin komma att förvandlas till ett decentraliserat system med hjälp av blockkedjeteknik. Det finns många fördelar med ett system som inte kräver en central part för autentisering och som ändå är säkert – ja, till och med säkrare: en effektivare inmatning av information, en ökad motståndskraft mot attacker, en större och öppnare tillgång och – för att lösa problemet som lyfts fram i ingressen – en ökad tilltro som kommer med ökad transparens. Exempel på register som på detta sätt skulle kunna decentraliseras är:
- Livsmedelskontroll med blockkedjor som tillåter konsumenter att följa sina livsmedel från åker till bord. Konsumenttransparens lyfts ofta fram som en av de kommande konsumtionstrenderna.
- Fastighetsregister och lantmäteri. Idag kräver mycket handel med tomter och fastigheter central registrering och med blockkedjeteknik skulle informationen kunna bli mer transparent och registrering kunna ske utan central kontroll.
- Röstning. Blockkedjeteknik lyfts fram som en framtida möjlig teknik för röstningsförfarande och autentisering, även om säkerhetsexperter pekar på att det fortfarande finns hinder att överkomma innan detta är lämpligt på bredare front.
- Inom sjukvården och läkemedelsindustrin har man pratat om att använda blockkedjeteknik till att hålla reda på bland annat vaccinationsprocessen mot Covid-19.
- Register för konst och antikviteter för att etablera tydlig proveniens och försäljningshistorik för att undvika förfalskningar.
Användningsområdena för tekniken är således breda och tekniken får nog fortfarande beskrivas som i sin linda. Framtiden får utröna exakt hur mycket tekniken kan komma att förändra och förenkla.
I korthet
- Blockkedjor är ett distribuerat register av information.
- Varje block i kedjan lägger till ny information.
- Varje block i kedjan är unikt och har ett unikt kryptografiskt fingeravtryck. En del av detta fingeravtryck är kopplat till blocket tidigare vilket gör dess plats i kedjan unik och omöjlig att manipulera utan att behöva byta ut hela kedjan.
- Varje nytt block som läggs till godkänns i datornätverket som gemensamt äger blockkedjan. Godkännandet sker genom att blocket kontrolleras/kontrollräknas och att det kryptografiska fingeravtrycket stämmer.
- När ett block i kedjan blivit godkänt har alla tillgång till den nya informationen i blocket.
- För att få lägga till ett block till kedjan krävs ofta lösning av svåra matematiska problem. Detta kallas proof of work.
- Proof of work försvårar försök att manipulera blockkedjan. Eftersom manipulation av de faktiska blocken och kedjorna mellan blocken inte är möjlig så kräver bedrägliga förändringar som du gjort i ett block att du istället justerar hela kedjan och gör proof of work för alla block. I takt med att datorers förmåga att räkna stora tal ökar, ökar också komplexiteten i det tal som blockkedjorna kräver som proof of work.
- Blockkedjetekniken är ny och för varje år som går lanseras nya områden inom vilken ett decentraliserat register av denna sort skulle kunna vara till användning.
Fördjupad läsning
Denna artikel om blockkedjeteknik är en del av ett större paket om kryptovalutor. Om du vill ha en ännu större tugga och lära dig om bitcoin, kryptovalutors ekologiska fotavtryck och den underliggande krypteringen bakom blockkedjor. Gå då till Digitekets kurs Bitcoin, kryptovalutor och blockkedjor.
Puffbild: Foto av Shubham Dhage, licensierad enligt Unsplash License