Om gelijk de meest prangende vraag te beantwoorden: ja, je kunt een blockchain zien als een reeks blocks die met elkaar verbonden zijn.
In deze post ga ik hier dieper op in.
Een voorbeeld
Ik begin met het klassieke voorbeeld van de boekhouding:
Stel: er zijn 5 personen: Jason, Jana, Cedric, Stefan en Marthe. Goede vrienden die wel eens iets voorschieten voor de ander.
De vraag is: wat is de meest efficiënte manier om voor iedereen bij te houden wie wie nog hoeveel schuldig is? Een centrale boekhouding kan de oplossing hier vormen.
Maar: wat als Jason nou niet zo’n goede bedoelingen heeft?
Aangezien het een centrale boekhouding is zou hij stiekem dingen kunnen veranderen…
De oplossing hiervoor is een gedecentraliseerde boekhouding. En laat dat nu net zijn wat blockchain in de basis is. Iedereen heeft toegang tot de volledige transactiehistorie van iedereen, maar men kan er niks aan veranderen. Zoals we dadelijk zullen zien is iedereen bovendien min of meer anoniem: zolang je de sleutel niet hebt kun je niet weten wie er achter een deur zit.
Dit is totaal verschillend van banken en andere instellingen die gegevens centraal opslaan: zij weten precies wie er wat heeft.
Daarom is blockchain toch net niet goed?, hoor ik je denken. Wel, net het feit dat iedereen alles anoniem kan zien zorgt er ook voor dat er een zekere controle is op het netwerk. Hierover meer in de volgende post van Blockchained.
Hoe werkt dat nu eigenlijk?
Alle transacties worden opgeslagen in blocks. Deze blocks worden gemined door zogeheten miners: mensen die de rekenkracht van hun computers of servers ter beschikking stellen in ruil voor een beloning. In de block zit namelijk een unieke cryptografische puzzel of ‘hash’. Zo’n block kan bovendien gemiddeld een paar duizend transacties bevatten.
De puzzel bestaat naast de transacties uit nog enkele belangrijke dingen: namelijk de hash van de vorige block, waardoor er dus letterlijk een ketting ontstaat, en een ‘timestamp’: een afdruk van de exacte seconde waarop de block is ontcijferd.
Technisch detail: er bestaan verschillende soorten hash-algoritmes. Bitcoin maakt bv gebruik van het SHA-256-algoritme.
Aangezien de hash bij iedere wijziging van de inhoud van de block verschillend is, kan er dus ook zeer moeilijk mee worden geprutst: iedere block heeft hash van de vorige, die op zijn beurt ook weer de hash van de vorige heeft en zo door. Een aanvaller zou al een 51%-aanval moeten uitvoeren om met zekerheid een blockchain te kunnen beïnvloeden. Hoe dat precies in zijn werk gaat lees je ook in de volgende blog.
Iedere blockchain heeft verschillende methodes, maar bij ons bekende voorbeeld Bitcoin zit er een stukje slimme code dat zorgt dat er altijd gemiddeld 10 minuten tussen elke geminede block zitten. Als de rekenkracht van alle computers bij elkaar groter wordt, wordt de hash ook moeilijker om op te lossen om dit te compenseren. Dit betekent dat gemiddeld iedere 10 minuten een miner erin slaagt om de cryptografische puzzel op te lossen. Je moet niet vergeten dat die iedere seconde verandert (want de ‘timestamp’ was ook een deel van de inhoud van een block), dus je kunt je wel voorstellen hoeveel rekenkracht er nodig is om alle mogelijkheden af te gaan. Dat zijn er letterlijk tientallen tot honderden miljarden, waarbij de juiste oplossing dus iedere seconde verandert.
Samengevat
We kunnen dus samengevat stellen dat een block het volgende is:
- Een deel van een ketting
- Met een timestamp
- Met een hoop transacties
- Met een cryptografische puzzel
- Met de uitkomst van de cryptografische puzzel van de vorige block (previous hash)
- Die op de een of andere manier door gebruik van rekenkracht, wat ‘minen’ heet:
- Wordt toegevoegd aan de rest van de chain
- Waarbij de miner een zekere beloning krijgt
- Dat door deze cryptografie anonimiteit bevorderd
Volgende keer in Blockchained!
Beveiliging en gevaren
- Hoe veilig is een blockchain eigenlijk?
- Wat zijn de grootste gevaren?
- Hoe werken wallets?
Dit en meer lees je in de volgende post uit deze reeks!