2017-05-18

Dialogic Blockchains serie #1.

Du kanske inte förväntar dig det, men den grundläggande byggstenen i en blockkedja liknar starkt något vi alla har: ett fingeravtryck. Digitala fingeravtryck ser till att inte en enda part kan ta över kontrollen över en blockkedja. Men hur fungerar det exakt? Dags för lite matematik...

Denna text är automatiskt översatt och kan därför avvika från originalet. Ingen rätt kan härledas av denna översättning.

💬 Click here to read this page in English.

Hur fungerar en blockchain? Del 1: fingertoppskänsla

En fingertopp är unik. Om du har en persons fingertopp, kan du enkelt kontrollera om den här fingertoppen tillhör en viss person. Bara en fingertopp är det (utan en tidigare insamlad lista över fingertoppar) praktiskt taget omöjligt att hitta personen utan att gå igenom fingertopparna hos alla personer. Matematiskt sett kan du också bestämma fingertoppen för en bit information.

Hash

Denna digitala fingertopp, också kallad hash, utgör grunden för en blockchain. För att förstå varför digitala fingertoppar är så viktiga är det viktigt att först förstå hur de fungerar.

Alla kan bestämma den digitala fingertoppen för en bit information genom att beräkna en (komplicerad) matematisk beräkning. Det spelar ingen roll hur lång informationen är (precis som att personers fingertoppar inte specifikt är beroende av deras längd!). Om du har informationen och fingertoppen kan du enkelt kontrollera om de hör ihop.

I Bitcoin, en blockchain för ekonomiska transaktioner, används den så kallade ‘SHA-256’-hashmetoden. Du kan till exempel själv räkna ut SHA-256-fingertoppskänslan för en bit text här. Hash för texten “Tommy” är till exempel:

5bee7cef227fe327178bd04bb7cc75ba9a36f1b8867ba1025430761a226539e9.

Nu kommer vi att ändra stor bokstav till en liten bokstav: vad är hashen för “tommy”?

044f4b3501cd8e8131d40c057893f4fdff66bf4032ecae159e0c892a28cf6c8e

Trots att det bara skiljer sig med en bokstav är fingertoppskänslan helt annorlunda! Inte oväntat: din och din brors eller systers fingertoppar kommer, även om ni liknar varandra mycket, också vara helt olika.

Om jag bara skulle ge dig hashen “044f4b..” ovan, är det enda sättet att ta reda på vilken text den hör till att gå igenom alla möjliga texter. Först efter många försök skulle du upptäcka att fingertoppskänslan hör till texten “tommy”. Matematiker kallar fingertoppmetoden därför one-way: att beräkna fingertoppen för information är enkelt, men att hitta informationen med en fingertopp är nästan omöjligt.

Proof of work

Hashernas slumpmässighet möjliggör en intressant tillämpning. Som du såg ovan är bokstäverna och siffrorna i fingertoppskänslan mycket slumpmässiga. Matematiskt sett är sannolikheten att en fingertoppskänsla för en viss text börjar med en ‘0’ 1 av 16. Om jag ber dig att hitta en text vars hash börjar med en ‘0’, kommer du i genomsnitt behöva försöka sexton texter (och om du har otur, fler!). Om jag skulle be om en hash som börjar med två nollor, kommer det i genomsnitt att kosta dig 16 x 16 = 256 försök; för om det första talet är en ‘0’, finns det bara en chans av 1/16e att det andra talet är noll.

Antalet nollor som en hash börjar med säger något om antalet texter du (i genomsnitt) har behövt försöka innan du kom fram till denna hash. En sådan hash kan alltså användas som en slags ‘bevis på prestation’ (proof of work). Om du visar mig en text vars hash börjar med två nollor, vet jag att du ungefär 256 gånger har behövt beräkna en hash.

Nu tillbaka till blockchain: vad har vi att göra med dessa fingertoppskänslor? I blockchain accepteras endast nya block när du har visat att du har utfört en viss mängd beräkningar. Det förhindrar att alla bara kan lägga till block: beräkningskraft kostar pengar och själva beräkningen tar tid. Eftersom det är mycket dyrt att alltid ha mer beräkningskraft än de andra deltagarna, är det så praktiskt taget omöjligt att ensam få kontroll över en blockchain!

För att förstå hur något verkligen fungerar, föredrar jag att ta isär det helt och hållet och försöka sätta ihop det igen själv.

Vill du veta mer om detta ämne?

Tommy van der Vorst, partner

Lär känna Tommy

Begär offert?

Har du en konkret forskningsfråga eller uppdrag och vill ha en offert från oss? Skicka i så fall din fråga via e-post till tenderdesk@dialogic.nl. Du kan också kontakta oss på denna adress angående (offentliga) upphandlingar. Vi svarar inom fem arbetsdagar.

Mer information