Bitcoin en de blockchain: een inefficiënte en onveranderlijke database
Wat is een blockchain? Dat is een triviale en tegelijk complexe vraag. De term blockchain is in 2017 helemaal uitgemolken door allerlei projecten die het als buzz-woord gebruikten in white papers en mooie filmpjes. Tegelijkertijd is een blockchain iets dat in Bitcoin wél een belangrijke rol vervult.
De blockchain van Bitcoin
De term blockchain staat letterlijk voor ‘keten van blocken’. Het zijn de miners die de blokken met z’n allen aan elkaar rijgen. En iedere keer is het weer een andere miner (of mining pool) die dit doet.
In deze blokken zitten transacties. Meestal zitten er rond de 2.000 transacties in een block. In totaal zijn er al meer dan 600.000 blocken achter elkaar geregen door miners.
De grootte van zo’n block is overigens gelimiteerd op 1 MB, maar door de komst van SegWit is deze grens (optioneel) op te rekken. Daardoor zijn blocken op dit moment soms ook wel eens 1,3 MB groot.
Het totaal van alle blocken is inmiddels meer dan 315 GB groot. Zodra je een eigen node draait, sla je een kopie van deze blockchain op. Dan synchroniseert jouw node met het netwerk. Iedere keer komt er dus een nieuw block achter al deze eerdere blocken.
En het interessante is, dat zich een ketting vormt door middel van cryptografie. Als je een transactie uit het verleden wilt wijzigen, zul je de blocken die hierop volgen opnieuw moeten minen.
En omdat dit door de enorme concurrentie tussen de miners onmogelijk is, is de transactiegeschiedenis bij ieder nieuw block iets verder in de blockchain gebeiteld.
Een keten van data
Door het gebruik van een hash-algoritme (Bitcoin gebruikt SHA-256) krijgt iedere output van een beetje data dezelfde lengte.
Als je de input echter een klein beetje verandert, is de output compleet anders. Dat komt door het zogenoemde ‘avalanche effect’. Dat is mooi te illustreren met het volgende voorbeeld
input
output
korte tekst
9D82900FFF311CE451572D4ED05C441DE636F5B1B2D161C11C519DA2B0F514B6
Korte tekst (let op de hoofdletter)
67D772F44C448A4D64C3D19AC3B0996F0C2BC4C3810DA00E7E152C905CD73D37
Langere tekst met even korte uitkomst
49CC3923109FA0109179187193F7DC91396BEB88A53B12E40CE614349AA671EB
Op basis van de output is niet te achterhalen wat de input is. Maar als de input iets is aangepast, is daarmee de output compleet anders.
Een blockchain is als het ware een lijst van data met hash pointers die naar het vorige block verwijzen. Dit maakt het een ketting.
Deze verwijzing naar het vorige block, deze hash pointer, is een hash van de data uit het vorige block. Past iemand de informatie over de betalingen in dit block aan aan? Dan past het nieuwere block er (simpel gezegd) niet meer op.
Inefficiënte database
Een blockchain is eigenlijk een hele inefficiënte database. Het belangrijke aspect in Bitcoin hiervan is dat deze database gedistribueerd opgeslagen staat, maar de dupliceren van deze data is lang niet voor iedere toepassing geschikt.
Er zijn veel meer blockchains, naast de Bitcoin blockchain. Waar Bitcoin zich volledig bezig houdt met het bewaren van de transactiegeschiedenis, zijn er ook blockchains die processen of applicaties op een dergelijke manier decentraal en gedistribueerd proberen op te slaan.
In veel gevallen is een blockchain helemaal geen magisch middel, maar eerder een inefficiënte manier om deze dApps of processen te runnen. Want als een netwerk niet (super) decentraal is, voldoet een centrale database dan niet?
De voordelen
Een blockchain heeft dus wel voordelen, maar niet alles wordt beter als er een blockchain-sausje overheen zit. De voordelen (die Bitcoin geniet) zijn:
Meepraten? Kom tot slot eens gezellig langs in onze Telegram-groep. Join ook het nieuwskanaal om ieder nieuwtje automatisch in je Telegram feed te krijgen.