Ett snabbt försök att förklara vad ”blockchain” är.

En blockchain är ett sätt att inom ett nätverk av jämlikar enas om vad som är sanningen. Alltså utan att det finns en central part som de inblandade litar på. Det brukar kallas ”distribuerad konsensus”. Namnet kommer från den mekanismen i Bitcoin, där transaktioner klumpas ihop i ”block” som relaterar till föregående block så att de bildar en kedja. Med hjälp av kryptografi verifierar man att man nått konsensus om ett block och eftersom de hänger ihop i en kedja minskar risken att någon skulle kunna fiffla med ett block exponentiellt för varje block som läggs till kedjan.

Inom Bitcoin har man löst konsensus genom att använda sig av ”proof of work”. Det betyder att noder i nätverket tävlar om att hitta en sekvens av siffror som tillsammans med blockets transaktioner ger ett visst värde när man matar in det i en ”hash-funktion”.

Ofta när Bitcoin/Blockchain förklaras brukar det kallas att noderna löser ett komplicerat matematiskt problem. Men det är inte så komplicerat. Det handlar bara om att prova sig fram tills man hittar en fungerande sekvens av siffror. Andreas Antonopolous har liknat det vid att lösa ett stort sudoku. Poängen är att det ska ta en viss tid för en nod i nätverket att göra det. I genomsnitt tio minuter. Och nätverket justerar svårighetsgraden (storleken på sudokut) så att det fortsatt tar så lång tid i takt med att datorer blir snabbare.

Till saken hör också att när man väl har ett vinnande svar så går det väldigt fort att bekräfta att det stämmer. Jämför återigen med ett sudoku: de tar lång tid att lösa men du kan snabbt kolla att bara en av siffrorna 0–9 förekommer i varje rad och kolumn. Och det är just vad noderna i nätverket börjar göra när svar skickas in från noder, de verifierar att det stämmer.

Effekten av det blir att det skulle krävas mycket datorkraft för att fiffla med det senaste blocket i kedjan. Och för block längre bak i kedjan blir det som sagt exponentiellt svårare. Som mottagare av Bitcoin vill du vara säker på att de pengar du tagit emot inte redan har spenderats. Och ju längre du väntar, ju fler block som hinner verifieras, desto mindre blir risken. För att kunna spendera pengar fler gånger inom en timme (6 block) behöver man 10% av all datorkraft i nätverket. Och för att det skulle löna sig för bedragaren behöver det vara rejäla summor pengar det handlar om.

Så ungefär fungerar konsensus i Bitcoin/Blockchain. Sedan finns det andra algoritmer. Där Bitcoin använder ”proof of work” finns det t ex ”proof of stake” som används av Ethereum, ”practical byzantine fault tolerance” som används av Ripple, Hyperledger, m fl. Sedan finns det ytterligare andra. Jag vet inte så mycket om hur de fungerar. Men principen är att noder i ett nätverk enas om vilket data som är det korrekta, och vilken historik av förändringar i det datat som är den korrekta. Och nätverket kan vara allt från helt öppet till slutet och parter i nätverket kan ha varierande grad av tillit till varandra.

För Bitcoin är datat transaktioner i valutan Bitcoin, nätverket är helt öppet, parterna helt anonyma och potentiellt bedrägliga och man når konsensus genom rå datorkraft. Men i ett annat sammanhang kan datat kan vara något annat, nätverket kan vara olika grader av öppet eller slutet, parterna kan vara anonyma eller kända och tilliten obefintlig eller varierande och man kan använda en annan konsensusmekanism. Och i varje situation där det finns flera parter som har intresse av något slags gemensamt data och det är kostsamt att ordna med en central part för att garantera det här datats korrekthet – och det historiskt har varit värt den kostnaden – så skulle ”blockchain” eller distribuerad konsensus ha stor nytta och bespara tid och pengar.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.