Vooruitgang op het netwerk
Op de achtergrond
Vooruitgang op het bitcoinnetwerk betekent niet alleen meer, kleinere, snellere of goedkopere transacties, maar ook het verbeteren van de gezondheid en robuustheid van het netwerk zelf. Ook hier wordt gestaag voortgang geboekt, hoewel dit waarschijnlijk door velen onopgemerkt gaat.
Een robuuster netwerk
Er wordt door de bitcoin-ontwikkelaars aandacht besteed aan het voorkomen van onregelmatigheden op het netwerk en het zo soepel mogelijk doorgeven van transacties en blocks over het netwerk. Wil bitcoin een wereldwijd betaalmiddel zijn, dan is het van belang dat het netwerk altijd betrouwbaar is. Zo nu en dan een storing bij een bank is al vervelend, maar een dergelijke storing mag bij een ambitieus project als bitcoin eigenlijk nooit voorkomen. Tot zover doet bitcoin het wat dat betreft goed, maar er is altijd ruimte voor verbetering en optimalisatie. De tijd die men werkt aan het efficiënt maken van het netwerk is daarom goed besteed.
Een van de punten waarop hier voortgang geboekt wordt is het doorsturen van blocks over het netwerk. Het is van belang dat dit snel gebeurt en een nieuwgevonden block zo snel mogelijk bekend wordt bij alle deelnemers in het netwerk om te voorkomen dat het netwerk niet goed of niet consistent opereert. Wanneer dit - op het eerste oog simpele - onderdeel van het netwerk niet goed functioneert kan het bijvoorbeeld zijn dat transacties een valse bevestiging krijgen die later ongedaan worden gemaakt. Dit zou afbreuk doen aan de betrouwbaarheid van een bevestiging; iets dat uiteraard voorkomen moet worden. Een bevestiging moet definitief zijn, over het hele netwerk.
Daarnaast zou het voor sommige miners nadelig zijn als blocks langzaam over het netwerk verstuurd worden. Het zou bijvoorbeeld kunnen zijn dat de miners die snel een block ontvangen consistent een voorsprong hebben op het vinden van het volgende block, hoewel de rekenkracht die zij hebben gelijk is aan de miners die het block pas later ontvangen. Dit maakt de 'race' naar het vinden van het volgende block oneerlijk. Consistentie over het netwerk en efficiëntie bij het doorsturen van informatie is dus van belang.
Vooruitgang gevisualiseerd
Onderzoekers van de Decentralized Systems and Network Services Research Group (DSN) van het Karlsruher Institut für Technologie (KIT) hebben de afgelopen drie jaar het bitcoinnetwerk gemonitord en op basis van de verzamelde gegevens interessante visualisaties gemaakt. De eerste visualisatie hieronder toont de verspreiding van een block over het netwerk in 2015. Elk stipje op de kaart is een node in het netwerk.
De verspreiding is niet bijster snel te noemen en zou op langere termijn tot de eerder genoemde problemen kunnen leiden. Dezelfde visualisatie is hieronder te zien, maar dan voor 2018. Het is duidelijk hoeveel efficiënter het netwerk een block verspreid - een gezonder netwerk. Hoewel er vandaag de dag natuurlijk meer nodes in het netwerk zijn dan in 2015, is het merendeel van de voortgang te danken aan verbeteringen aan het netwerk.
Vooruitgang betekent niet altijd sneller
Het lijkt logisch om ook het verspreiden van transacties over het netwerk alsmaar efficiënter te maken. Dit is deels waar. Als er manieren zijn om transacties kleiner te maken, zodat het minder bandbreedte kost om deze te verspreiden, dan is een dergelijke optimalisatie zeker de moeite waard. De snelheid van de verspreiding van transacties verbeteren is echter niet even voor de hand liggend.
Er valt namelijk redelijk wat (persoonlijke) informatie te achterhalen op basis van de verspreiding van transacties. Het is aannemelijk dat de eerste node die een transactie doorgeeft, de node is waar de transactie vandaan komt. Hierdoor zou het IP-adres van een node te koppelen zijn aan een transactie. Dit is een anonimiteitsprobleem. Om een dergelijke de-anonimisering uit te voeren is het nodig dat de 'aanvaller', dat wil zeggen: diegene die identiteiten probeert te achterhalen, een redelijk groot aantal nodes in het netwerk heeft om zo goed in de gaten te kunnen houden waar transacties vandaan komen.
Veel bitcoin-analysetools, zoals Chainalysis, werken met soortgelijke technieken. Ook is op bijvoorbeeld blockchain.info bij een transactie te zien welke node (lees: welk IP-adres) de transactie het eerste meldde bij de node van blockchain.info. De betrouwbaarheid van de informatie van dergelijke diensten is echter afhankelijk van de hoeveelheid nodes waarmee de dienst direct verbonden is. Het kan dus bevordelijk zijn voor de privacy van gebruikers om het wat lastiger te maken om te achterhalen waar een transactie in eerste instantie vandaan kwam.
Dit wordt bereikt door een kleine vertraging toe te passen bij het verspreiden van transacties over het netwerk. Door deze vertraging is het lastiger te bepalen van welke node een transactie in eerste instantie afkomstig is. Wanneer een node een transactie doorstuurt naar een enkele andere node en beide nodes pas na een vertraging doorsturen naar volgende nodes, wordt het voor de volgende nodes lastig om te bepalen welke van de twee eerste nodes de oorsprong van de transactie is.
Vergeleken met de verspreiding in 2018, te zien de visualisatie hieronder, werden de transacties in 2015 sneller doorgegeven dan tegenwoordig. Let wel dat met ongeveer drie seconden in beide visualisaties ongeveer dezelfde hoeveelheid nodes bereikt is; de vertraging doet met name in het begin van de verspreiding zijn werk om het lastiger te maken de oorsprong te identificeren en zorgt over het geheel genomen dus niet voor een vertraging van het netwerk.
Hoewel de vertraging het niet onmogelijk maakt om het IP-adres van oorsprong te achterhalen, wordt het wel een stukje moeilijker gemaakt. Hoeveel moeilijker is onduidelijk, en een onderwerp waar onderzoek naar gedaan wordt. Het verbeteren en robuust maken van de privacy is dan ook niet gedaan met een enkel trucje, maar vereist een samenkomst van verschillende aanpakken.
Bekijk alle visualisaties op de website van de DSN.