Wat is een memory pool crypto

- 15 minute read

Bitcoin pool
Paul Hopmans
Crypto Expert
Paul Hopmans

Een memory pool is een verzameling transacties die in de wachtrij staat op een blockchain om uitgevoerd te worden. Transacties met de hoogste fees worden als eerste uitgevoerd.

Een memory pool, of de term mempool afgekort, is een manier om structuur aan te brengen in vraag en aanbod bij het verwerken van transacties op een blockchain. De duidelijkste omschrijving is een transactiewachtrij.

Memory pool
  • De beste omschrijving van een memory pool bij crypto is een transactiewachtrij
  • Een memory pool is essentieel voor een blockchain, anders zouden alle transacties direct uitgevoerd moeten worden
  • Als je crypto van het ene naar het andere adres stuurt komt het in de mempool terecht, waarna de nodes kijken of de transactie geldig is
  • Wie niet genoeg gas fees biedt kan te maken krijgen met een transactie die nooit uitgevoerd wordt
  • Op moeilijk schaalbare blockchains als Bitcoin en Ethereum moet je extra oppassen met hoeveel gas fees je biedt
  • Sommige transacties krijgen een hogere prioriteit, omdat ze een hoog volume hebben of omdat het een essentiĆ«le transactie is voor de werking van een blockchain
  • Op bepaalde sites kun je zien hoeveel de huidige gemiddelde gas fees zijn om een transactie uit te voeren en kun je ook zien hoe het met jouw transactie gesteld is via je TXID (Transaction ID)
  • Als de mempool vol is kan het zijn dat er geen nieuwe transacties meer gedaan kunnen worden, soms gooien nodes de transacties met de laagste gas fees er uit, een enkele node onthoudt alle transacties en biedt ze weer aan in rustigere tijden, dit is afhankelijk van de blockchain
  • Gas fees worden berekend door nodes door eerst de transacties met de hoogste fees te verwerken in het volgende blok en zo naar beneden tot het blok vol is, ze willen zo veel mogelijk verdienen
  • De mempool van Bitcoin stamt uit 2012 met het Bitcoin Improvement Proposal 35, waardoor alle transacties op Bitcoin per bloktijd van tien minuten verwerkt worden, op volgorde van hoogste naar lagere geboden gas fees
  • Per blok kunnen ongeveer 4200 transacties verwerkt worden op Bitcoin
  • Met de komst van Bitcoin Runes en Ordinals waren er regelmatig grote opstoppingen op Bitcoin en liepen de gas fees enorm op
  • Traditionele financiĆ«le systemen kunnen alle transacties direct verwerken
  • Bij een DEX kan de mempool ervoor zorgen dat je meer betaalt voor coins, omdat een bot via front running misbruik maakt van de mempool en voorkruipt, een goede reden om voorzichtig te zijn op een DEX
  • In de toekomst zal het noodzakelijk zijn dat mempools niet meer vollopen, anders kan crypto nooit mainstream worden, vooral Ethereum is hier stevig mee aan de slag gegaan

Inhoudsopgave

  1. Waarom is er een mempool in een blockchain?
  2. Hoe werkt een memory pool?
  3. Wat gebeurt er als de mempool vol is?
  4. Hoe worden gas fees berekend?
  5. De mempool van Bitcoin
  6. Het verschil met traditionele financiële markten
  7. Mempool op een DEX
  8. De toekomst van memory pools
Waiting row crypto transaction

Waarom is er een mempool in een blockchain?

Als transacties niet direct kunnen worden uitgevoerd moet er een systeem zijn dat alle transacties tijdelijk ergens opslaat, zodat ze niet verloren gaan. Dit systeem heeft men de mempool genoemd en wordt op een blockchain , een gedistribueerde database, gebruikt om alle nog niet uitgevoerde transacties op te slaan, op volgorde van de gas fees die gebruikers bereid zijn te betalen om hun transactie uitgevoerd te krijgen.

Zonder mempool zouden alle transacties direct uitgevoerd moeten worden. Het blockchain systeem is daar meestal niet voldoende voor uitgerust, omdat het minder transacties kan verwerken dan er binnenkomen. Een mempool is dus essentieel om een blockchain goed te laten werken.

Een andere reden voor het bestaan van een mempool is het voorkomen van conflicterende transacties. Als iemand dezelfde coins tweemaal wil uitgeven bij verschillende nodes zal het blockchain protocol van een node deze coins eenmaal in een blok opnemen en dit aan alle andere nodes zenden, waarna de andere transactie uit de mempool gegooid wordt.

Hoe werkt een memory pool?

Een transactie van een cryptocurrency wordt aan de mempool (tijdelijke opslagplaats) toegevoegd als iemand crypto van het ene adres naar het andere stuurt. Zulk een transactie komt terecht bij alle (vaak duizenden) nodes of miners van een blockchain in hun lokale mempool. Elke node heeft zijn eigen instellingen, ook wat betreft de mempool. Die kan groter of kleiner zijn, naar voorkeur of software van de node of miner.

Checken of een transactie geldig is

Deze transactie komt pas in een blok terecht als een node hem opneemt voor verwerking in het volgende blok (permanente opslag). Alle nodes kijken of de transactie geldig is volgens het consensus mechanisme van de blockchain of het protocol en voegen hem dan toe aan de mempool. Als een transactie niet geldig is, bijvoorbeeld als de gebruiker niet voldoende fondsen heeft, de juiste private sleutels of als het een dubbele uitgave is, wordt hij verworpen en niet toegevoegd.

Aan het einde van de blokperiode, zoals de ongeveer tien minuten bij Bitcoin (deze is anders op elke blockchain), worden alle transacties die geldig zijn en genoeg gas fees bieden aan de blockchain toegevoegd in het volgende blok dat gemaakt wordt en is de nieuwe staat van de blockchain bekend, waarna deze langste blockchain keten wordt uitgezonden naar de andere nodes door de node die het blok gemaakt heeft.

Als je een transactie wilt doen op een blockchain moeten deze transacties goedgekeurd worden door nodes. Een node houdt de blockchain bij en zorgt ervoor dat alleen valide blokken worden doorgelaten. Een node kan ook zelf kiezen welke transacties zij als eerste verwerken. Sommige wallets kunnen de wachttijd inschatten voordat jouw transactie met deze fees verwerkt zijn op de betreffende blockchain, zodat je deze nog kunt aanpassen.

Onbevestigde transacties in een mempool uitgelegd

Person meditating

De memory pool bestaat uit alle transacties die nog niet verwerkt zijn. Een node heeft de keuze om transacties op te nemen in het volgende blok dat gemaakt wordt waarvan hij zelf het meeste profiteert. Logischerwijs zijn dat degenen die bereid zijn hogere transactiekosten (gas fees) te betalen. Als een blok op een blockchain vol is wordt hij toegevoegd aan de blockchain aan het einde van de bloktijd. In elk blok zitten de transacties met de hoogst mogelijke fees en de nieuwe coins. De transacties die verwerkt zijn worden uit de mempool van alle nodes verwijderd.

Als het erg druk is op een blockchain, dus als er veel transacties gedaan worden, zullen alleen transacties met hoge transactiekosten verwerkt worden. Hierdoor zullen transactiekosten stijgen. Dat betekent dat traders die te weinig bieden erg lang kunnen wachten totdat een node zijn transactie verwerkt. Theoretisch kan die transactie eeuwig pending of in behandeling blijven, maar er zijn altijd wel uren op een dag dat de handel vrijwel stilligt en waarin zulk een transactie met een beetje geluk verwerkt kan worden. Sommige blockchains gooien andere transacties met te weinig gas fees eruit na bepaalde tijd of weigeren hem ronduit.

Niet schaalbare blockchains

Turtle running

Sommige blockchains hebben de neiging om altijd druk te zijn, waardoor een transactie met lage fees veel langzamer verwerkt worden en opstopping ontstaat. Dit kan op sommige momenten essentieel zijn, bijvoorbeeld omdat er grote veranderingen plaatsvinden in de koers. Als je je dus afvraagt waarom jouw trade niet verwerkt wordt weet je nu dat je hogere fees moet bieden om de transactie sneller verwerkt te krijgen in het volgende blok.

Op zulke momenten kunnen de transactiefees op bepaalde blockchains, zoals Bitcoin en Ethereum, flink oplopen vanwege de grote vraag. De maximale fees voor Bitcoin waren 300 euro per transactie in 2018 en die van Ethereum meer dan 100 euro op verschillende tijden, in 2017 waren de gas fees voor ETH rond de 1000 Gwei, maar was de prijs van ETH veel lager. Leuk weetje: een transactie van 100.000 Tether op Bitfinex in 2023 kostte maar liefst 23.5 miljoen dollar! Reden te meer om je transactiefees goed in de gaten te houden!

Prioriteit onbevestigde transactie

In sommige gevallen kunnen bepaalde onbevestigde transacties ook voorrang of prioriteit krijgen, ongeacht de gas fees. Dit doen nodes of miners met transacties van belangrijke adressen die ze kennen of met heel hoge volumes van bijvoorbeeld grote investeerdersfondsen, zoals pensioenfondsen of BlackRock. Een transactie van een essentiële gebruiker van een netwerk, zoals gebruikers die het netwerk onderhouden, kan ook voorrang krijgen.

Als je wilt weten hoe een mempool er uit ziet kun je daarvoor allerlei websites bezoeken, zoals https://www.blockchain.com/explorer/mempool/eth of https://mempool.space/ . Hier zijn er nogal wat van, dus kies er een die weergeeft waar je naar op zoek bent. Het belangrijkste dat je moet weten is hoeveel aan gemiddelde transactiekosten je ongeveer moet bieden om in een blok verwerkt te worden. Als je namelijk een transactie intrekt, ben je fees kwijt en moet je nog eens gas fees betalen om de nieuwe transactie in de mempool te krijgen.

Onderzoek naar je transactie in een mempool

Als je het idee krijgt dat je transactie niet wordt uitgevoerd kun je de TXID (Transaction ID) invoeren en kijken wat er met je transactie aan de hand is. Zo voorkom je de paniek die je kunt hebben als je denkt dat je fondsen weg zijn, verschillende factoren kunnen hieraan bijdragen. Zie je dat hij in behandeling is, maar te weinig fees biedt, dan kun je dit veranderen met een RBF (Replace By Fee) of een CPFP (Child Pays For Parent) transactie met hogere fees. Het gaat te ver voor dit artikel om dit helemaal uit te leggen. Je weet nu in ieder geval dat je er iets aan kunt doen.

Als je dus in het geheugen zwembad duikt en je ziet dat zelfs het pierenbad vol is zul je moeten besluiten of je bereid bent om je beurs te trekken of dat je de bijbel erbij neemt en hem uitleest en daarna kijkt of je transactie al verwerkt is.

Wat gebeurt er als de mempool vol is?

Zoals bij bijna elke gegevensverzameling is er een maximale hoeveelheid aan informatie die een memory pool kan bevatten. Zo kan de mempool van standaard nodes voor Bitcoin slechts 300 MB aan. Als hij vol is zullen miners bepaalde transacties uit de mempool gaan gooien. Het zal geen verrassing zijn dat dit de transacties zijn waarbij de gebruiker de minste gas fees biedt.

Er zijn echter ook nodes die elke binnenkomende transactie met zelfs de laagste fees nog opslaan in hun mempool. Dit betekent overigens niet dat ze ooit verwerkt zullen worden, want als de geboden fees te laag zijn zullen miners de transactie nooit meenemen in het volgende blok en wacht je tot de hel dichtvriest.

Elke blockchain heeft zulk een maximum, al zullen veel blockchains die schaalbaar zijn de transactie snel kunnen verwerken, doordat in rustigere tijden op een dag een inhaalslag kan worden gemaakt. Sommige blockchains zijn ook zo snel dat het heel weinig uitmaakt.

Twisting by the mempool

Als de mempool vol is zullen dus de minst aantrekkelijke transacties als eerste eruit gegooid worden. Zodra er weer ruimte komt zullen deze transacties weer toegevoegd worden aan de wachtrij, want ze worden niet gewoon weggegooid. Sommige nodes kunnen zo ingesteld worden dat ze geen enkele transactie “vergeten”. Zodra er weer ruimte komt in de mempool zullen deze nodes de goedkopere transacties weer versturen voor verwerking in de rustigere tijden als er minder transacties zijn.

Als de mempool vol is kan het ook zo zijn dat gebruikers die te weinig gas fees bieden niet eens opgenomen worden in de mempool, totdat de mempool weer ruimte heeft.

“We’re twisting by the pool.”
Dire Straits

Hoe worden gas fees berekend?

Gas fees meter

In een bepaalde bloktijd bestaat de mempool uit een hele reeks nog niet verwerkte transacties. Een blok kan een bepaalde hoeveelheid transacties aan. Een node of een miner zal het blok maximaal willen vullen met transacties om zo veel mogelijk te verdienen. Vraag en aanbod zullen de gas fees gaan bepalen.

Het volgende blok zal dus bestaan uit zo veel mogelijk transacties met zo hoog mogelijke transactiekosten. Om het simpel te houden zal een node dus beginnen te tellen bij de gebruiker die de hoogste gas fees biedt en zo naar beneden tot het blok vol is. Zo kan hij maximaal verdienen en worden alle transacties met de hoogst geboden gas fees uit de mempool gehaald en in het volgende blok gezet.

De gas fees zullen gaan oplopen als de mempool constant vol zit met transacties met hoge gas fees. Dit is meestal het geval als er iets bijzonders aan de hand is, zoals extreem hoge volumes vanwege een bull market of de introductie van iets belangrijks op een blockchain. In die tijden kan het erg lang duren voordat je transactie verwerkt is als je geen hoge gas fees wilt betalen.

De mempool van Bitcoin

Bitcoin memory pool

De mempool van Bitcoin was geen onderdeel van de whitepaper van Bitcoin. Nadat er genoeg geluiden waren dat dit toch echt nodig was besloten ontwikkelaars dit voor te stellen in Bitcoin Improvement Proposal 35 uit 2012. Dit voorstel werd aangenomen door de miners en geïmplementeerd, waarna elke transactie in Bitcoin als eerste terecht kwam in de mempool van Bitcoin.

Op Bitcoin heeft een miner de volledige kopie van de Bitcoin blockchain en controleert via Proof of Work protocollen of een transactie geldig is. De mempool wordt bijgehouden door het RAM-geheugen, zodat deze zo snel mogelijk bijgewerkt kan worden. Elke miner of node heeft zijn eigen mempool.

De bloktijd op Bitcoin

Ongeveer elke tien minuten wordt een nieuw blok op de Bitcoin blockchain gemaakt, geheel volgens schema van Satoshi Nakamoto , zodat de laatste Bitcoin rond 2140 wordt gemined. Elk blok bevat alle transacties die door miners in het blok zijn opgenomen, plus de blockreward, die sinds 2024 uit 3.125 BTC bestaat. De miner die de cryptografische puzzel oplost mag het blok maken en de beloning opstrijken.

Het economische principe van het toevoegen van transacties aan een blok is simpel. Een miner zal als eerste de transacties toevoegen aan een blok waar hij het meeste aan kan verdienen. Wie dus bereid is om meer transactiekosten te betalen zal als eerste aan de beurt zijn. Zodra het blok vol is, sinds SegWit zo rond de maximaal 4MB, wordt het blok na tien minuten door de winnende miner toegevoegd aan de blockchain en zijn alle transacties met de hoogste fees en een geldige digitale handtekening uitgevoerd.

Prioriteit van transacties

De mempool van Bitcoin wordt dus gevuld met alle transacties die traders willen maken, inclusief hoeveel gas fees (kosten per transactie) ze bereid zijn te betalen. In drukke tijden zullen alleen de transacties met hoge gas fees in een blok opgenomen worden en zullen de andere traders maar moeten wachten tot het wat minder druk is. Als het belangrijk is zullen ze genoegen moeten nemen met het betalen van hogere fees om er wat tempo achter te zetten.

Een mempool fee rate schatting wordt in veel gevallen voorgesteld door apps en wallets. Voor hoge prioriteit betaal je hoge gas fees. Dit doe je als je zo snel mogelijk tempo wilt maken, bijvoorbeeld bij erg hoge bedragen of bij een snel veranderende koers. Verder heb je nog medium, low en no priority. Je bepaalt zelf aan de hand van gas fees hoe snel je ongeveer geholpen zult worden.

Aantal transacties per tien minuten op Bitcoin

Iedere transactie wordt bekeken om te bepalen of er genoeg UTXO (Unspent Transaction Output) is, dat wil zeggen dat je ook genoeg BTC hebt om de transactie te betalen. Bitcoin is niet bepaald schaalbaar. Er kunnen ongeveer maximaal 7 transacties per seconde verwerkt worden. Een kleine rekensom leert dat er dan in een blok van tien minuten 7x60x10 transacties verwerkt kunnen worden, 4200 stuks dus. Als een transactie na ongeveer twee weken nog niet in een blok is opgenomen wordt hij uit de mempool verwijderd.

Bitcoin gas fees en opstopping

Endless row of people

Er zijn tijden dat er veel gebeurt op de Bitcoin blockchain, bijvoorbeeld toen BRC-20 (Ordinals) en Bitcoin Runes verzonnen werd door Casey Rodarmor. Er stonden af en toe een half miljoen transacties in de mempool, dus als je toevallig achteraan stond moest je ongeveer 1280 minuutjes wachten, ongeveer 22 uur. Ook kan de hash rate lager worden, waardoor het Bitcoin netwerk niet genoeg rekenkracht heeft om alle pending transacties te verwerken.

Als je gaat kijken naar de historische gas fees op de Bitcoin blockchain zul je zien dat begin 2018, tijdens de krankzinnige bull market, de fees per Bitcoin transactie konden oplopen tot meer dan 300 euro! Zo hoog zijn ze nooit meer geweest, maar soms komen de gas fees toch weer rond de 100 euro te liggen, als er weer eens iets gebeurt dat de mempool vol laat lopen in Bitcoinland.

Het verschil met traditionele financiële markten

Bij een traditioneel gecentraliseerd financieel systeem, zoals een bank, worden transacties direct verwerkt. Ze hoeven nergens op te wachten en hebben geen toestemming nodig van miners of nodes. De software van een bank wordt geacht dit allemaal automatisch te kunnen en alleen geldige transacties door te laten.

Een bank heeft allerlei vormen van inkomsten, waardoor ze niets hoeven te vragen voor een transactie in de meeste gevallen. Hierdoor hoeft er alleen maar gecheckt te worden op geldigheid en kan de transactie direct verwerkt worden.

Centraal versus decentraal

Bij een blockchain worden transacties verzameld in een mempool door gedecentraliseerde nodes, die de blockchain bij houden en ervoor zorgen dat alleen geldige transacties verwerkt worden. Bovendien bepalen deze nodes wanneer ze verwerkt worden, volgens de regels van de blockchain, maar ook volgens hun eigen belangen.

Zodra een blok goedgekeurd is door een meerderheid van de nodes worden alle transacties in dat blok verwerkt. Dit kan tot aanzienlijke vertragingen leiden bij vooral de minder schaalbare blockchains, zoals Bitcoin en Ethereum. Er zijn zelfs tijden dat je transactie helemaal niet behandeld wordt, omdat je niet genoeg gas fees biedt.

Mempool op een DEX

Als je gaat handelen op een gedecentraliseerde exchange (DEX) kan de mempool tegen je gaan werken. Als je een transactie wilt doen zal die eerst in de mempool van de DEX worden gezet. Ook op een DEX worden de gas fees bepaald door vraag en aanbod.

Front running

Er bestaan trading bots die een mempool in de gaten kunnen houden en voordelige trades kunnen opmerken. Als zo’n bot ziet dat hij door hogere gas fees te betalen bij jou kan voorkruipen ( front running ) en jou een hogere prijs voor je coins kan laten bepalen is het een eenvoudige rekensom om te kijken of het een positief resultaat oplevert.

Aangezien er geen enkel toezicht is op een DEX en alles via een Automated Market Maker en smart contracts geregeld wordt kan een mempool bot de hele dag gaan voorkruipen om jou hogere prijzen aan te smeren voor je coins.

Voorzichtig met traden op een DEX

Een kort voorbeeld zou zijn dat je voor 10.000 euro van een obscure coin, waar de DEX om bekend staat, wilt kopen. Je zult hierbij allerlei fees moeten betalen, zoals de gas fees. Je biedt 50 euro aan gas fees en wil de cryptocurrency kopen voor 10 euro per stuk, met een slippage van 2%. De bot kan dan 2% van jouw 10.000 euro als winst zien, minus gas fees van meer dan 50 euro. De bot zal dan voorkruipen en jou deze crypto verkopen voor 10.20 euro, waarbij hij ongeveer 150 euro in zijn eigen zak steekt.

Pas dus op met het inzetten van grote bedragen op een DEX, want dit komt op vrijwel alle DEX’en met een onbeschermde mempool voor. Het alternatief is dat je obscure coins gaat kopen op een DEX die wel aan tradersbescherming doet en bijvoorbeeld een limitprijs aanbiedt bij het kopen of andere protectie tegen front running.

De toekomst van memory pools

Futuristic pool

Blockchain is continue in ontwikkeling. Het is veel blockchains wel duidelijk dat een memory pool een blockchain flink kan vertragen en dat dit voor gebruikers een bron van ergernis kan zijn. Vooral grote blockchains als Ethereum hebben de neiging om elk probleem in de wereld van blockchain en cryptocurrency aan te pakken.

Ethereum de probleemoplosser

Als Ethereum (of een andere blockchain) een oplossing heeft gevonden voor netwerkopstopping door een mempool zal deze oplossing al snel door andere blockchains opgepikt worden en geprobeerd te integreren in hun protocollen. Ethereum staat erom bekend dat ze de gebruiker zoveel mogelijk tegemoet willen komen en ze hebben al veel gedaan om de schaalbaarheid te verhogen en de transactiekosten te verlagen via verschillende protocolupdates.

Technologische vooruitgang

Advanced technology

Technologische ontwikkelingen spelen ook een rol. Computers en internetverbindingen worden steeds sneller en kunnen steeds meer opslaan en verwerken. Dit zal voor nodes niet anders zijn. Om zoiets te implementeren kost echter geld, tijd en consensus. Nodes en miners moeten in een gedecentraliseerd systeem steeds hun goedkeuring geven voor updates aan de protocollen, waardoor er vertraging kan optreden in de vooruitgang.

In databasetechnieken, waar de mempool een onderdeel van is, kan men gaan werken met sharding , een techniek die informatieverwerking door een database opdeelt in kleinere stukjes, waardoor nodes minder belast worden. Een aantal blockchains werkt hier al mee. Ethereum zal het iets anders aanpakken met hun (Proto-)Danksharding techniek, waardoor de schaalbaarheid enorm toeneemt.

Layer 2 roll ups en andere schaalbaarheidsoplossingen

Een andere veel gebruikte techniek is om transacties op een populaire blockchain door een ander netwerk te laten oprollen in een gebundeld aantal transacties, die in één keer door de hoofdblockchain kunnen worden verwerkt. Hierdoor wordt de hoofdblockchain flink minder belast en loopt de mempool veel minder snel vol. Deze layer 2 roll ups , zoals Arbitrum of Stacks, schieten als paddenstoelen uit de grond.

Ook cross chain technieken als de bridge of de multi chain en de sidechain kunnen een mempool ontlasten, doordat niet alles op de hoofdblockchain verwerkt hoeft te worden.

Andere wegen kunnen ook bewandeld worden, zoals het verhogen van het geheugen van de mempool of het verlagen van de informatie in een transactie, waardoor er meer in een mempool en in een blok past. Hashing en Merkle Trees kunnen hierbij een handje helpen.

Schaalbaarheid bepaalt de toekomst van cryptocurrency

Aangezien decentrale technieken als een blockchain nodes nodig hebben om de blockchain decentraal bij te houden zullen mempools altijd noodzakelijk zijn. Nieuwe transacties moeten nu eenmaal ergens in een database gezet moeten worden. Uiteindelijk zullen blockchains de noodzaak wel inzien van schaalbaarheid. Zonder dat kunnen blockchain en cryptocurrency nooit mainstream worden.

“The pool may be full, but the memory lasts forever.”
Unknown author