2017-06-01

Dialogic Blockchain Series #2

En blockchain består, som namnet antyder, av på varandra följande block med information. I föregående del har vi sett hur proof of work kan förhindra att alla lägger till information godtyckligt i en blockchain. Men hur fungerar det exakt?

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 2: block

I grund och botten kan en blockchain bäst förstås som en slags onlinekalkyl som delas med flera personer samtidigt, där alla ändringar är synliga för alla. Precis som en kalkyl kan man bara lägga till information längst ned, vilket gör att det förflutna alltid finns kvar. En blockchain är därför mycket transparent.

Men låt oss börja från början: hur ser egentligen ett 'block' ut? Ett block innehåller viss användbar information, som en digital transaktion eller en överenskommelse mellan två parter.

För att få blockchain att acceptera ditt block måste blockets hash (den digitala fingeravtrycket, se föregående artikel i denna serie) börja med ett fördefinierat antal 'nollor'. Genom att göra det visar du, som förklarades i föregående artikel, att du har utfört en viss mängd beräkningsarbete när du skapade blocket. Det förhindrar, som vi tidigare såg, att en person tar fullständig kontroll över en blockchain.

För att få fingeravtrycket att börja med det fördefinierade antalet nollor måste vi 'försöka' ett stort antal varianter av blocket. För att kunna göra det inkluderar vi i blockets innehåll ett (som annars inte används) nummer: nonce. Noncen varieras tills fingeravtrycket för blocket börjar med det fördefinierade antalet nollor.

'Double spend'

Blockchain är en kedja av block - kedjan kan endast förlängas med ett block åt gången. Det är möjligt att någon samtidigt har lyckats beräkna ett nytt block med någon annan. Dessa block kan motsäga varandra: ett block kan t.ex. innehålla en transaktion där pengar skickas till person A, medan det andra blocket kan innehålla en transaktion där pengar skickas till person B. Endast en transaktion kan naturligtvis behållas. Hur löser blockchain detta?

I en blockchain 'vinner' den längsta kedjan till slut. Om du alltså lyckas skapa det första blocket som följer på ett annat block är chansen större att det blocket till sist blir en del av 'den längsta' kedjan. Exemplet nedan visar detta. Blocken 006406 och 006274 skapas samtidigt. Eftersom fler block följer efter block 006406 blir detta block till slut en del av den längsta kedjan.

Denna princip hjälper även till att förhindra ändringar i gamla block. Om blocken innehåller penningtransaktioner vill du naturligtvis inte att utgivna pengar ska kunna dras tillbaka!

Om jag vill ändra transaktionen i block '006406', vad behöver jag göra? Att ändra transaktionen gör att blocket ändras, vilket även gör att blockets fingeravtryck ändras (och som tidigare nämnts är det omöjligt att ändra blocket så att det har exakt samma fingeravtryck som det gamla blocket). Vad som kan göras är att försöka lägga till blocket igen och också räkna ut de följande fyra blocken igen, vilket skapar en längre kedja än den nuvarande kedjan.

För att (totalt) bryta fem block måste man hitta fem gånger ett korrekt fingeravtryck. Ju längre kedjan är, desto svårare blir det. Jämför med de ryska Matroska-dockorna: om du vill byta ut den inre måste du ta isär dem en i taget och sätta ihop dem igen.

Samtidigt fortsätter de andra deltagarna naturligtvis att förlänga den längsta kedjan (där den oönskade transaktionen ingår). För att vara snabbare än de andra krävs betydligt mer beräkningskraft (närmare bestämt krävs det en 'majoritet' av >50% av den totala beräkningskraften i nätverket!).

Tack vare blockchain kan historisk information inte ändras och pengar kan endast spenderas en gång, på grund av den nödvändiga majoritetens beräkningskraft. Smart tänkt!

För att förstå hur något verkligen fungerar, föredrar jag att helt plocka isär det

Vill du veta mer om detta ämne?

Tommy van der Vorst, partner

Lär känna Tommy

Kan vi stå till tjänst?

Skicka enkelt ett meddelande till Tommy nedan:

Du kan också ringa oss på +31 30 215 05 80 eller mejla oss på tenderdesk@dialogic.nl. Vi svarar inom fem arbetsdagar.

Våra kontaktuppgifter