Antwoorden>Meer informatie over schaalbaarheid en prestaties>Wat veroorzaakt congestie in de blockchain?
Wat veroorzaakt congestie in de blockchain?
// Tags
overbelasting van de blockchainhoge gasvergoedingen
TL;DR: Er ontstaat congestie in de blockchain wanneer er meer transacties naar het netwerk worden verzonden dan er in het volgende blok passen. Elke blockchain heeft een maximale hoeveelheid rekenkracht of gegevens die per blok kan worden verwerkt, en wanneer de vraag die limiet overschrijdt, ontstaat er een achterstand in de mempool (de wachtrij voor onbevestigde transacties). Congestie leidt tot hogere transactiekosten (omdat gebruikers strijden om beperkte blokruimte), langere bevestigingstijden en een slechtere gebruikerservaring. De onderliggende oorzaken zijn onder meer de vaste blokcapaciteit, pieken in de vraag als gevolg van populaire evenementen, de dynamiek van de markt voor transactiekosten en de fundamentele ontwerpafwegingen waarbij veiligheid en decentralisatie voorrang krijgen boven ruwe doorvoercapaciteit.
De eenvoudige uitleg
Een blockchain verwerkt transacties in batches die ‘blokken’ worden genoemd. Elk blok heeft een capaciteitslimiet. Bij Ethereum wordt deze limiet uitgedrukt als een gaslimiet (momenteel ongeveer 30 miljoen gas per blok). Bij Bitcoin is het een gewichtslimiet (4 miljoen gewichtseenheden per blok). Bij Solana is het een combinatie van rekeneenheden en accountvergrendelingen per slot. Ongeacht het specifieke mechanisme geldt voor elke blockchain een maximum aan de hoeveelheid werk die per blok kan worden verricht.
Wanneer het aantal transacties dat aan het netwerk wordt aangeboden lager is dan de blokcapaciteit, verloopt alles soepel. Transacties worden in het volgende blok opgenomen, de kosten zijn laag en de bevestiging verloopt snel. Wanneer het aantal transacties de blokcapaciteit overschrijdt, ontstaat er een wachtrij. Deze wachtrij is de mempool, een door elk knooppunt onderhouden opslagruimte waar geldige maar nog niet bevestigde transacties wachten tot ze in een toekomstig blok worden opgenomen.
De mempool werkt niet volgens het principe ‘wie het eerst komt, het eerst maalt’. Het is een op vergoedingen gebaseerde prioriteitswachtrij. Blokproducenten (miners of validators) selecteren de transacties met de hoogste vergoedingen, omdat dat hun inkomsten maximaliseert. Wanneer de mempool vol is, moeten gebruikers die hun transacties snel bevestigd willen zien, iedereen overbieden door een hogere vergoeding aan te bieden. Deze biedingsstrijd zorgt ervoor dat de gasprijzen tijdens congestie omhoogschieten. Transacties van gebruikers die niet bereid of in staat zijn om de verhoogde vergoedingen te betalen, blijven minuten, uren of soms zelfs dagen vastzitten in de mempool.
Pieken in de vraag
De meest zichtbare oorzaak van congestie is een plotselinge piek in de vraag naar blokruimte. Deze pieken worden vaak veroorzaakt door specifieke gebeurtenissen. Een populaire NFT-mint kan binnen enkele minuten tienduizenden transacties genereren, doordat verzamelaars zich haasten om tokens in beperkte oplage te bemachtigen. De lancering van een DeFi-protocol of het claimen van een airdrop trekt een stortvloed aan gebruikers aan die tegelijkertijd interactie hebben met nieuwe slimme contracten. Een grote beurscrash leidt tot een golf van liquidaties, het sluiten van posities en paniekverkopen, terwijl DeFi-deelnemers zich haasten om hun posities aan te passen.
Op Ethereum werden enkele van de ergste congestieproblemen in de geschiedenis van het netwerk veroorzaakt door specifieke applicaties. De CryptoKitties-rage in december 2017 legde het netwerk dagenlang plat. De Otherside NFT-mint van Yuga Labs in mei 2022 zorgde ervoor dat de gasprijzen boven de 8.000 gwei uitkwamen, waarbij sommige gebruikers duizenden dollars aan kosten betaalden voor transacties die uiteindelijk mislukten. Airdrop-claims voor tokens zoals UNI van Uniswap en ARB van Arbitrum zorgden voor aanhoudende congestie die urenlang duurde, omdat miljoenen in aanmerking komende wallets zich haastten om hun claim in te dienen.
De handel in memetokens leidt tot terugkerende congestie op blockchains zoals Solana en Base, waar de lancering van een viraal token binnen enkele uren miljoenen swaptransacties kan genereren. In tegenstelling tot geplande evenementen (waarbij gebruikers ten minste weten dat er congestie op komst is), zijn pieken in de handel in memetokens onvoorspelbaar en kunnen ze de netwerkcapaciteit zonder veel waarschuwing vooraf overbelasten.
Vaste blokcapaciteit en productiesnelheid
De diepere oorzaak van de congestie is dat de blokcapaciteit en de productiesnelheid vastliggen in het ontwerp van het protocol, terwijl de vraag variabel is en soms explosief toeneemt. Ethereum produceert elke 12 seconden een blok met een gaslimiet van ongeveer 30 miljoen gas. Een eenvoudige ETH-overdracht kost 21.000 gas. Een Uniswap-swap kost 150.000 tot 300.000 gas. Een complexe DeFi-transactie kan 500.000 gas of meer kosten. Onder ideale omstandigheden kan Ethereum ongeveer 15-30 transacties per seconde verwerken, afhankelijk van de complexiteit van die transacties. Wanneer duizenden gebruikers tegelijkertijd proberen een NFT te mintten, een token te swappen of een airdrop te claimen, is 15-30 TPS bij lange na niet genoeg. Bitcoin kampt met dezelfde fundamentele beperking, maar dan met nog krappere limieten. Blokken worden elke 10 minuten geproduceerd (vergeleken met de 12 seconden van Ethereum), en elk blok kan ongeveer 2.000 tot 3.000 transacties bevatten. Dit geeft Bitcoin een doorvoercapaciteit van ongeveer 5 tot 7 TPS. Tijdens periodes van hoge vraag kunnen zich in de mempool van Bitcoin honderdduizenden onbevestigde transacties opstapelen, waarbij transacties met lage kosten dagenlang moeten wachten op bevestiging.
Deze capaciteitsbeperkingen zijn niet willekeurig. Ze zijn bedoeld om de decentralisatie in stand te houden. Als blokken groter zouden zijn of sneller zouden worden geproduceerd, zouden minder knooppunten aan de eisen voor gegevensverwerking kunnen voldoen, waardoor het netwerk zou centraliseren rond exploitanten met dure hardware. De afweging tussen doorvoercapaciteit en decentralisatie vormt de kern van het blockchainontwerp en wordt vaak het blockchain-trilemma genoemd (de moeilijkheid om tegelijkertijd schaalbaarheid, veiligheid en decentralisatie te realiseren).
MEV en prioritaire gasveilingen
Maximal Extractable Value (MEV) draagt op een minder voor de hand liggende maar wel belangrijke manier bij aan congestie. MEV verwijst naar de winst die blokproducenten en zoekers kunnen behalen door transacties binnen een blok te herschikken, in te voegen of te censureren. Wanneer zich een winstgevende MEV-kans voordoet (zoals arbitrage tussen twee DEX'en), concurreren meerdere zoekers om deze kans te benutten door transacties in te dienen met steeds hogere vergoedingen. Deze prioritaire gasveiling neemt blokruimte in beslag en drijft de vergoedingen voor iedereen op, zelfs voor gebruikers wier transacties niets te maken hebben met de MEV-kans.
Sandwich-aanvallen zijn een specifiek MEV-patroon dat directe gevolgen heeft voor gewone gebruikers. Een aanvaler detecteert een grote swap-transactie in de mempool, plaatst een kooporder vóór die transactie (front-running) en een verkooporder erna (back-running), en profiteert zo van de prijseffecten die de transactie van het slachtoffer veroorzaakt. Deze front-run- en back-run-transacties nemen extra blokruimte in beslag en vergroten de congestie boven het niveau dat door de natuurlijke vraag van gebruikers zou worden veroorzaakt.
Laag 2-oplossingen en het verlichten van congestie
Layer 2-netwerken (zoals Arbitrum, Base, Optimism en zkSync) zijn deels ontworpen om de congestie op Ethereum L1 te verlichten. Door transacties op een aparte keten te verwerken en samengevatte overzichten terug te sturen naar Ethereum, vergroten L2’s de totale doorvoercapaciteit die voor gebruikers beschikbaar is aanzienlijk. Een transactie die tijdens congestie op Ethereum L1 $5 aan gas kost, kost op een L2 mogelijk slechts $0,01. L2-netwerken kunnen echter ook zelf te maken krijgen met congestie tijdens extreme pieken in de vraag, en ze nemen bepaalde beperkingen over van de L1-keten waarmee ze afrekenen.
Solana hanteert een andere aanpak voor congestiebeheer met zijn lokale vergoedingsmarkten. In plaats van één wereldwijde vergoedingsmarkt waar alle transacties strijden om dezelfde blokruimte, probeert Solana congestie te beperken tot specifieke „drukke” accounts. Transacties die plaatsvinden met een overbelast contract (zoals een populaire DEX-pool) betalen hogere vergoedingen, terwijl transacties met niet-gerelateerde contracten hier geen last van hebben. Dit ontwerp vermindert de nevenschade van congestiepieken, hoewel deze hierdoor niet volledig worden weggenomen.
Hoe lang duurt de congestie in de blockchain?
De duur van de congestie hangt af van de oorzaak ervan. Een geplande gebeurtenis, zoals een veelbesproken NFT-mint of het claimen van een airdrop, zorgt meestal voor een scherpe piek die binnen enkele minuten tot een paar uur verdwijnt zodra de toestroom van claimers afneemt. Aanhoudende congestie is anders: wanneer een blockchain voortdurend bijna op volle capaciteit draait (bijvoorbeeld tijdens een langdurige bullmarkt of een virale meme-tokencyclus), kunnen hoge transactiekosten en trage bevestigingen dagenlang aanhouden. Overbelasting bij Bitcoin verdwijnt doorgaans langzamer dan bij Ethereum, omdat de bloktijd van 10 minuten ervoor zorgt dat de mempool in grotere, minder frequente stappen leegloopt. Het praktische signaal dat de overbelasting afneemt, is een afnemende omvang van de mempool in combinatie met dalende prioriteitskosten.
Overbelasting hangt ook nauw samen met de reden waarom blockchains in het algemeen trager gaan werken, en is iets anders dan een volledige uitval. Als een netwerk helemaal geen blokken meer produceert, is dat een ketenstilstand, geen overbelasting.
In hoeverre verschillen de bloklimieten per blockchain?
Omdat elke blockchain een limiet stelt aan de hoeveelheid werk die in een blok past, varieert de speelruimte voordat er congestie ontstaat sterk. In de onderstaande tabel worden de geschatte capaciteitsbeperkingen samengevat die bepalen hoe snel er bij elk netwerk een opstopping ontstaat onder belasting.
Blockchain
Bloktijd
Capaciteitsmaatstaf
Geschatte doorvoercapaciteit
Bitcoin
~10 minuten
4M gewichtseenheden
5 tot 7 TPS
Ethereum L1
~12 seconden
~30 miljoen gas per blok
15 tot 30 TPS
Solana
slot van ~400 ms
Rekenunits en accountvergrendelingen
Duizenden TPS
Arbitrum / Base (L2)
Minder dan een seconde
L2-gas, afgewikkeld naar L1
Honderden tot duizenden TPS
Keten met een hogere doorvoercapaciteit en Layer 2-netwerken kunnen pieken in de vraag beter opvangen, maar geen enkel ontwerp is hier volledig immuun voor. Voor een diepgaander inzicht in de relatie tussen snelheid en capaciteit, zie ‘doorvoercapaciteit versus latentie ’ en ‘wat is een Layer 2-blockchain’.
Wat is het verschil tussen congestie en een kettingstop?
Zowel congestie als een ‘chain halt’ lijken voor een eindgebruiker alsof ‘het netwerk niet werkt’, maar het zijn fundamenteel verschillende situaties met verschillende oorzaken en oplossingen. Congestie betekent dat de keten nog steeds blokken produceert; deze is alleen vol en het kost veel om er nog iets doorheen te krijgen. Een ‘chain halt’ betekent dat de productie van blokken volledig is gestopt.
Aspect
Verkeersopstopping
Kettingstop
Blokproductie
Gaat gewoon door
Gestopt
Transacties
Bevestig langzaam, hoge kosten
Bevestig dit absoluut niet
Oorzaak
De vraag is groter dan de capaciteit van het blok
Geen consensus bereikt of fout bij de client
Typische resolutie
De vraag neemt af, de tarieven dalen
Validators coördineren een herstart
Kortom, congestie is een prijs- en capaciteitsprobleem, terwijl een ketenstilstand een beschikbaarheidsprobleem is. MEV-activiteiten, zoals prioriteitsgasveilingen, kunnen congestie verergeren; inzicht in wat MEV precies inhoudt, helpt dus verklaren waarom de vergoedingen sneller stijgen dan op basis van de ruwe gebruikersvraag alleen te verwachten zou zijn.
Hoe kunnen ontwikkelaars de gevolgen van verkeersopstoppingen verminderen?
Applicaties kunnen congestie niet voorkomen, maar ze kunnen er wel betrouwbaar doorheen blijven functioneren. Gebruik dynamische kostenramingen in plaats van vastgelegde gasprijzen, implementeer herhalingslogica met goed nonce-beheer en zet niet-urgente transacties in de wachtrij voor periodes buiten de piekuren. Wat de gegevens betreft, geef de voorkeur aan push-gebaseerde levering boven strakke polling-lussen, zodat je gegevensopname gelijke tred houdt met de groei van de blokken. Inzicht in hoe RPC-verzoeken werken, de voorkeur geven aan streaming boven polling en rekening houden met RPC-snelheidsbeperkingen van providers: dit alles vermindert de kans dat congestie leidt tot verloren gegevens of mislukte transacties van gebruikers.
Veelgestelde vragen
Waarom schieten de gasvergoedingen omhoog bij congestie?
De ruimte in een blok is beperkt en de mempool is een op vergoedingen gebaseerde prioriteitswachtrij. Wanneer er meer transacties om een plek strijden dan er in een blok passen, bieden gebruikers hogere vergoedingen om als eerste te worden opgenomen. Die biedingsstrijd drijft de geldende gasprijs omhoog totdat de vraag weer onder de blokcapaciteit daalt.
Betekent congestie dat de blockchain niet werkt?
Nee. Tijdens congestie blijft de keten blokken produceren en transacties bevestigen; het gaat alleen langzamer en kost meer. Een netwerk dat stopt met het produceren van blokken, kampt met een ‘chain halt’, wat een apart probleem is.
Kunnen Layer 2-netwerken ook overbelast raken?
Ja. Layer 2-netwerken bieden een veel hogere doorvoercapaciteit dan Ethereum L1, waardoor ze grotere pieken aankunnen, maar bij extreme vraag kan hun capaciteit toch volledig worden benut en kunnen de transactiekosten stijgen. Ze nemen ook enkele beperkingen over van de Layer 1 waarop ze hun transacties afwikkelen.
Hoe kan ik zien of de verkeersopstopping aan het afnemen is?
Houd de omvang van de mempool en de prioriteitsvergoedingen in de gaten. Een afnemende achterstand aan onbevestigde transacties in combinatie met dalende prioriteitsvergoedingen is het duidelijkste teken dat de vraag weer onder de blokcapaciteit is gedaald.
Waarom maken blockchains de blokken niet gewoon groter?
Grotere of snellere blokken verhogen de hardwarekosten voor het draaien van een node, waardoor kleinere exploitanten worden verdrongen en het netwerk wordt gecentraliseerd. Capaciteitsbeperkingen vormen een bewuste afweging die de decentralisatie waarborgt; deze spanning wordt vaak het blockchain-trilemma genoemd.
De gevolgen van congestie voor ontwikkelaars die op Quicknode bouwen
Voor ontwikkelaars heeft congestie gevolgen voor zowel het indienen van transacties als het binnenhalen van gegevens. Wat het indienen betreft, blijven transacties met onvoldoende gasvergoedingen steken in de mempool of worden ze volledig afgewezen. Applicaties hebben behoefte aan een robuuste schatting van de vergoedingen, herhalingslogica en nonce-beheer om op een soepele manier met congestie om te gaan. De Core API van Quicknode zorgt voor een betrouwbare indiening van transacties met consistente prestaties, zelfs tijdens piekcongestie, en verbeterde API-methoden helpen applicaties bij het inschatten van passende gasprijzen op basis van de huidige netwerkomstandigheden.
Wat de gegevensopname betreft, betekent congestie meer transacties per blok, grotere blokken, meer te verwerken gebeurtenissen en grotere gegevensvolumes. Op polling gebaseerde architecturen hebben het moeilijk tijdens congestie, omdat het gegevensvolume per blok toeneemt terwijl het polling-interval vast blijft, waardoor er een verwerkingsachterstand ontstaat. Quicknode Streams gaat soepel om met congestie omdat de op push gebaseerde architectuur meegroeit met de blokgrootte. Of een blok nu 100 of 1.000 transacties bevat, Streams levert de volledige gegevens aan uw bestemming met dezelfde gegarandeerde levering en volgorde. Configureerbare batchverwerking en compressie helpen bij het beheren van het toegenomen gegevensvolume tijdens langdurige periodes van congestie.