Wat is netwerkcongestie op de blockchain?
Basis
Netwerkcongestie in een blockchain ontstaat wanneer het volume van transacties de capaciteit van het netwerk om ze efficiënt te verwerken overschrijdt. Factoren die bijdragen aan congestie zijn onder andere een toename van transactieactiviteiten, beperkte blokgroottes en vertraagde blockbevestigingstijden. De implicaties van netwerkcongestie kunnen aanzienlijk zijn: hogere transactiekosten, langere bevestigingstijden en een suboptimale gebruikerservaring. Een duidelijk voorbeeld deed zich voor in het voorjaar van 2023 toen het Bitcoin-netwerk congestie ervoer door verhoogde transacties in verband met BRC-20-tokens. Als gevolg stapelden niet-bevestigde transacties zich op en bereikten de kosten ongekende niveaus.
Hoe ontstaat netwerkcongestie op de blockchain?
Netwerkcongestie ontstaat wanneer het volume van transacties de verwerkingscapaciteit van een netwerk overtreft. Verschillende factoren, waaronder externe elementen zoals marktvolatiliteit en inherente kenmerken van het netwerk, zoals blokgrootte en blocktijd, beïnvloeden dit. Voordat we dieper ingaan op de specifics, is het belangrijk te begrijpen hoe blokken aan de blockchain worden toegevoegd.
Blockchain-technologie: hoe werkt het?
In de kern van blockchain-technologie ligt een reeks onderling verbonden blokken, waarbij elk blok transactiegegevens bevat die door gebruikers zijn bijgedragen. Zodra blokken aan de keten zijn toegevoegd, zijn ze onveranderlijk en niet meer aan te passen. Deze blokken reizen door een gedecentraliseerd netwerk van nodes, waarbij elke node een kopie van de volledige blockchain bewaart. Door middel van cryptografische methoden en speltheorie vormt de blockchain de fundamentele infrastructuur voor populaire cryptocurrencies zoals Bitcoin en Ethereum.
Om de factoren die bijdragen aan congestie in blockchain-netwerken te begrijpen, is het noodzakelijk sleutelconcepten te bekijken die de verwerkingscapaciteit van het netwerk beïnvloeden. Deze concepten omvatten mempools, candidate blocks, finaliteit en het principe van de langste keten.
Wat is een “mempool”?
Een mempool fungeert als opslagplaats voor niet-geverifieerde transacties die wachten op opname in het volgende blok van een blockchain. Wanneer een gebruiker een transactie initieert op het Bitcoin-netwerk, doorloopt deze een proces voordat deze permanent op de blockchain wordt vastgelegd. Aanvankelijk komt de transactie in de mempool terecht, die fungeert als tijdelijke wachtruimte voor openstaande transacties. Transacties blijven in de mempool totdat ze worden bevestigd en aan een blok worden toegevoegd. Bevestiging vindt plaats wanneer miners de transactie valideren door deze op te nemen in een nieuw gedolven blok. Zodra een transactie is bevestigd, wordt deze uit de mempool verwijderd en permanent aan de blockchain toegevoegd, waardoor de onveranderlijkheid wordt gewaarborgd.
Wat zijn “candidate blocks”?
Candidate blocks, ook wel "proposed blocks" genoemd, zijn blokken die miners of validators naar voren schuiven als potentiële toevoegingen aan de blockchain. Deze blokken bevatten niet-bevestigde transacties die naar het netwerk zijn uitgezonden, maar nog niet in de blockchain zijn opgenomen.
Om een bevestigd blok te worden, moet een candidate block het mijn- of validatieproces ondergaan dat wordt bepaald door het specifieke consensusmechanisme van de blockchain. In het geval van Bitcoin's Proof of Work (PoW) consensusmechanisme concurreren miners om een complex wiskundig probleem op te lossen. De eerste miner die het probleem succesvol oplost, krijgt de mogelijkheid om zijn candidate block aan de blockchain toe te voegen en een beloning te ontvangen.
Bij Ethereum's Proof of Stake (PoS)-consensusmechanisme worden validators willekeurig gekozen om candidate blocks voor te stellen. Andere validators geven vervolgens attestaties om de geldigheid van het blok te verifiëren. Zodra een candidate block voldoende attestaties ontvangt, verandert het van candidate block in een bevestigd blok.
Wat betekent blockchain "finality"?
Finaliteit in de context van blockchain verwijst naar de toestand waarin een transactie of bewerking onherroepelijk wordt en niet meer kan worden gewijzigd of teruggedraaid. Zodra een transactie finaliteit bereikt, is deze onveranderlijk en permanent op de blockchain vastgelegd. Het Bitcoin-netwerk zendt transacties uit naar het netwerk en voegt ze toe aan de mempool. Miners selecteren en valideren transacties uit deze pool en nemen ze op in nieuwe blokken die aan de blockchain worden toegevoegd. De in een blok opgenomen transacties worden als bevestigd beschouwd, maar er blijft een theoretische mogelijkheid dat andere miners een concurrerend blok kunnen mijnen.
Het niveau van finaliteit van transacties neemt toe naarmate er meer blokken aan de blockchain worden toegevoegd. In het geval van Bitcoin worden transacties doorgaans als "definitief" beschouwd zodra er nog eens zes blokken zijn toegevoegd aan het blok dat die transacties bevat. Ethereum, met zijn kortere blocktijd, raadt doorgaans een groter aantal bevestigingen aan om een vergelijkbaar niveau van vertrouwen in de finaliteit van een transactie te bereiken.
Principe van de langste keten: wat is dat?
Zoals eerder uitgelegd is het mogelijk dat meerdere miners tegelijkertijd geldige blokken produceren, wat kan leiden tot tijdelijke forks in de blockchain. Het principe van de langste keten stelt dat de geldige versie van de blockchain wordt bepaald door de hoeveelheid rekenwerk die erin is geïnvesteerd, doorgaans weergegeven door de langste keten van blokken. Daardoor worden de "geldige" blokken op kortere ketens, vaak orphan of stale blocks genoemd, verworpen en worden hun transacties teruggezet naar de mempool.
In het geval van Ethereum was het principe van de meest uitgebreide keten van toepassing toen het netwerk op het Proof of Work (PoW)-consensusmechanisme draaide. Na de overgang van Ethereum naar Proof of Stake (PoS) in 2022, nam het netwerk een bijgewerkt fork-choice-algoritme aan dat het "gewicht" van de keten beoordeelt. Dit gewicht wordt berekend op basis van de cumulatieve som van validator-stemmen, rekening houdend met de gestakte ether-balansen van validators.
Blockchain-netwerkcongestie: wat veroorzaakt het?
Blockchain-netwerkcongestie ontstaat wanneer het volume van ingediende transacties de verwerkingscapaciteit van het netwerk overtreft. Deze congestie kan aan verschillende factoren worden toegeschreven:
- Toegenomen vraag: naarmate meer gebruikers transacties naar de blockchain sturen, kan het aantal onbevestigde transacties in de mempool de capaciteit van een enkel blok overschrijden. Dit is vooral relevant voor blockchains met beperkingen in blokgrootte en blocktijd. Een toegenomen vraag kan voortkomen uit plotselinge prijsvolatiliteit die een golf van transacties veroorzaakt of uit massale adoptie.
- Kleine blokgrootte: elke blockchain heeft een vooraf bepaalde blokgrootte die het maximale aantal transacties per blok bepaalt. Zo had Bitcoin aanvankelijk een blokgroottebeperking van 1 megabyte. Upgrades zoals Segregated Witness (SegWit) hebben de theoretische limiet van de blokgrootte echter vergroot tot ongeveer 4 megabyte. Als het aantal transacties deze limiet overschrijdt, leidt dat tot netwerkcongestie.
- Trage blocktijden: blocktijd verwijst naar het interval tussen het toevoegen van opeenvolgende blokken aan de blockchain. Bitcoin streeft bijvoorbeeld naar een blocktijd van ongeveer 10 minuten. Als transacties sneller en in grotere volumes worden gegenereerd dan het netwerk aankan, ontstaat er een achterstand van transacties die bijdraagt aan congestie.
Samengevat kan blockchain-netwerkcongestie voortkomen uit toegenomen vraag, kleine blokgroottes en trage blocktijden, waardoor het netwerk belemmerd wordt in het efficiënt verwerken van transacties.
Hoe beïnvloedt netwerkcongestie de blockchain?
Netwerkcongestie in blockchain-netwerken kan verschillende negatieve gevolgen hebben die de soepele werking van het netwerk verstoren. Deze gevolgen omvatten:
Hogere transactiekosten
Wanneer een blockchain-netwerk congestie ervaart, betalen gebruikers vaak hogere transactiekosten om de aandacht van miners te trekken en hun transacties voorrang te geven. Dit kan het gebruik van de blockchain duurder maken, vooral voor kleinere transacties, omdat gebruikers hogere kosten moeten betalen om ervoor te zorgen dat hun transacties snel worden verwerkt.
Vertraagde bevestigingstijden
Netwerkcongestie kan leiden tot langere wachttijden voordat transacties worden bevestigd en definitief zijn. Soms blijven transacties uren, dagen of nog langer onbevestigd. Dergelijke vertragingen kunnen frustratie veroorzaken bij gebruikers die tijdige bevestiging van hun transacties verwachten.
Slechte gebruikerservaring
Hoge kosten en trage bevestigingstijden hebben een aanzienlijke invloed op de gebruikerservaring. Wanneer gebruikers geconfronteerd worden met hoge kosten en lange wachttijden, kan dat hun tevredenheid en vertrouwen in de blockchain verminderen. Dit kan op zijn beurt de adoptie en bruikbaarheid van blockchain-technologie belemmeren.
Marktvolatiliteit
Congestie in het blockchain-netwerk kan bijdragen aan marktvolatiliteit. Als veel gebruikers proberen hun crypto-activa te verkopen tijdens een congestieperiode, maar het netwerk deze transacties niet efficiënt kan verwerken, kan dat onzekerheid creëren en de marktvolatiliteit versterken.
Daarnaast kan netwerkcongestie beveiligingsrisico's met zich meebrengen en het risico op centralisatie vergroten. Langere bevestigingstijden vergroten de kans op double-spending aanvallen, waarbij een gebruiker probeert dezelfde cryptocurrency meerdere keren uit te geven voordat transacties bevestigd zijn. Hoge kosten kunnen ook leiden tot concentratie van mining- of validatiekrachten bij een paar deelnemers, wat resulteert in een minder gedecentraliseerd netwerk. Netwerkcongestie kan dus hogere kosten, vertraagde bevestigingen, een slechtere gebruikerservaring, marktvolatiliteit, beveiligingsrisico's en zorgen over centralisatie veroorzaken. Deze uitdagingen benadrukken het belang van schaalbaarheid en optimalisatie om een efficiënte werking van blockchain-netwerken te waarborgen.
Voorbeelden van netwerkcongestie
De Bitcoin- en Ethereum-netwerken hebben significante netwerkcongestie ondervonden, wat verschillende gebruikersproblemen en prestatieverlies van het netwerk tot gevolg had.
Congestie op het Bitcoin-netwerk
Bitcoin kende een opvallende episode van netwerkcongestie tijdens de prijsstijging eind 2017 en begin 2018. De toegenomen populariteit en vraag naar Bitcoin leidde tot een massale toename van transacties, wat aanzienlijke vertragingen en hoge transactiekosten veroorzaakte. Op een gegeven moment stegen de gemiddelde transactiekosten tot meer dan $50, waardoor het verzenden van transacties kostbaar en tijdrovend werd.
In het voorjaar van 2023 kreeg het Bitcoin-netwerk opnieuw te maken met congestie, veroorzaakt door een toename van transacties gerelateerd aan BRC-20-tokens. Deze transactiepiek leidde tot een snel oplopend aantal wachtende transacties en hogere kosten. De mempool, waar onbevestigde transacties wachten, liep vast met bijna 400.000 onbevestigde transacties. Binnen enkele weken stegen de transactiekosten met meer dan 300%.
Congestie op het Ethereum-netwerk
Het Ethereum-netwerk heeft ook gevallen van congestie gekend. In 2017 vertraagde het virale succes van het "CryptoKitties"-project het Ethereum-netwerk aanzienlijk. De overweldigende vraag en de transacties rond het project zorgden voor congestie, wat leidde tot vertragingen in de transactieverwerking en hogere gasprijzen.
Bovendien heeft de explosieve groei van gedecentraliseerde financiële toepassingen (DeFi) op het Ethereum-netwerk bijgedragen aan netwerkcongestie. De grote vraag naar het uitvoeren van smart contracts en interactie met DeFi-protocollen heeft gasprijzen doen stijgen, waardoor transacties voor gebruikers duurder werden.
Hoewel elk blockchain-netwerk congestie kan ervaren, hebben de gevallen van netwerkcongestie bij Bitcoin en Ethereum meer aandacht gekregen vanwege hun wijdverbreide populariteit en impact in het crypto-ecosysteem. De gevolgen van congestie op deze netwerken benadrukken de noodzaak van schaaloplossingen en optimalisaties om soepelere en efficiëntere verwerking van transacties te garanderen.
Oplossingen om netwerkcongestie te verminderen
Het aanpakken van netwerkcongestie op blockchain-netwerken is een complexe uitdaging met verschillende benaderingen, elk met hun afwegingen en overwegingen. Hieronder volgen diverse strategieën die kunnen worden toegepast.
Blokgrootte uitbreiden
Deze aanpak houdt in dat de grootte van elk blok wordt vergroot, zodat meer transacties tegelijk verwerkt kunnen worden. Grotere blokken verhogen de doorvoer van het netwerk, maar doen er langer over om zich over het netwerk te verspreiden, wat tijdelijk tot forks kan leiden. Daarnaast vereisen grotere blokken meer opslagruimte, wat centralisatiezorgen kan vergroten.
Blocktijd verkorten
Het verkorten van de tijd die nodig is om nieuwe blokken te genereren kan de transactieverwerking versnellen. Kortere blocktijden kunnen echter resulteren in een hoger aantal orphaned blocks, wat de veiligheid van de blockchain kan verminderen.
Layer 2-oplossingen
Deze off-chain oplossingen stellen transacties buiten de hoofdblockchain mogelijk, waarbij de eindstatus on-chain wordt vastgelegd. Voorbeelden zijn het Lightning Network voor Bitcoin en Plasma voor Ethereum. Layer 2-oplossingen kunnen de schaalbaarheid aanzienlijk verbeteren. Hun implementatiecomplexiteit en bijbehorende veiligheidskwesties moeten echter zorgvuldig worden aangepakt.
Sharding
Sharding houdt in dat de blockchain wordt verdeeld in kleinere shards, die elk in staat zijn transacties te verwerken en smart contracts onafhankelijk uit te voeren. Deze aanpak kan de capaciteit van het netwerk aanzienlijk vergroten. Net als bij Layer 2-oplossingen brengt sharding echter extra complexiteit en potentiële veiligheidsrisico's met zich mee.
Aanvullende maatregelen om netwerkcongestie te verlichten zijn onder andere aanpassingen van vergoedingen en schaaloplossingen zoals optimistic en zero-knowledge rollups. Bovendien kan de adoptie van het Proof of Stake (PoS)-consensusmechanisme, dat over het algemeen sneller is dan Proof of Work (PoW), de efficiëntie van het netwerk verbeteren. Het is essentieel de voor- en nadelen van deze benaderingen grondig te evalueren om de meest geschikte oplossing voor specifieke blockchain-netwerken te bepalen. Een goed begrip van de netwerkvereisten, veiligheidsaspecten en gebruikersbehoeften is cruciaal bij het aanpakken van congestieproblemen.
Conclusie
Netwerkcongestieproblemen worden steeds relevanter naarmate meer gebruikers blockchain-technologie gaan gebruiken. Voor brede adoptie en waarde moet een netwerk in staat zijn een groot volume aan transacties efficiënt te verwerken. Dit is vooral belangrijk voor blockchain-systemen die bedoeld zijn om realtime, alledaagse transacties te faciliteren. Hoewel netwerkcongestie aanzienlijke uitdagingen met zich meebrengt, werkt de community continu aan oplossingen om deze te beperken. De blockchain-industrie investeert intensief in onderzoek naar schaalbaarheid.