begin
begin

De term „mempool” is een samentrekking van de Engelse woorden „memory” en „pool”, die in het Frans vertaald kunnen worden als „" memory "” en „" basin "”.” Een mempool is dus een tijdelijke ruimte met Bitcoin-transacties die wachten om in een blok te worden geïntegreerd. Deze ruimte wordt onderhouden door elk knooppunt in het netwerk.
In dit artikel kijken we naar de technische aard van mempools op Bitcoin, evenals hun rol in de werking van het protocol.
Als u een transactie op Bitcoin wilt uitvoeren, moet u deze eerst ondertekenen met de privésleutels in een portemonnee. Na ondertekening wordt de transactie verzonden naar een netwerkknooppunt dat ervoor zorgt dat de vastgestelde regels worden nageleefd. Als de transactie aan alle geldigheidscriteria voldoet, verspreidt dit knooppunt de transactie vervolgens naar andere knooppunten in het netwerk waarmee de transactie is verbonden. Dit streamingproces wordt voortgezet en al snel zou de transactie de meeste knooppunten op het Bitcoin-netwerk moeten hebben bereikt.

Als de transactie voldoende kosten heeft, wordt deze door een miner geselecteerd om deze in een blok te integreren. Zodra een miner erin slaagt een geldig blok te genereren dat de transactie bevat, wordt dit bevestigd door de distributie van het nieuwe blok op het netwerk.
De „" mempool "” verwijst naar de tijdelijke opslagruimte die transacties host die door de nodes zijn gevalideerd, maar nog niet in een blok zijn opgenomen.” Zolang een transactie op bevestiging wacht, bevindt deze zich in de node-mempools.
Hoewel de term „de mempool” vaak wordt gebruikt alsof het iets unieks is, zou het juister zijn om in het meervoud van „mempools” te spreken. Elk knooppunt in het Bitcoin-netwerk beheert inderdaad zijn eigen mempool, en er kunnen verschillen zijn tussen de mempools van elk knooppunt.
.png)
De mempool van een node evolueert daarom voortdurend op basis van de nieuwe informatie die het ontvangt. Wanneer nieuwe transacties worden uitgegeven door gebruikers, slaat het knooppunt deze op in zijn mempool. Omgekeerd, wanneer een miner een blok vindt om aan de blockchain toe te voegen, kijkt het knooppunt naar de transacties die in dat blok zijn bevestigd en verwijdert deze uit de mempool.
.png)
Aangezien mempools opslagruimte vertegenwoordigen voor transacties die wachten op bevestiging, zijn ze noodzakelijkerwijs beperkt in omvang. Het staat elk knooppunt inderdaad vrij om een maximumlimiet te bepalen voor zijn persoonlijke mempool.
Op Bitcoin Core (de meeste implementatie van het Bitcoin-protocol) is de maximale limiet standaard ingesteld op 300 MB. Dit betekent dat een node openstaande transacties accepteert totdat dit plafond is bereikt. Daarnaast zal hij beginnen met een proces van prioritering op basis van kosten. Transacties die de laagste kosten bieden, kunnen dan worden uitgesloten van de mempool van het knooppunt. Concreet resulteert dit in de verwijdering van deze transacties uit het geheugen.
Elk knooppunt kan de grootte van zijn mempool wijzigen door de parameter aan te passen Max Mempool in het configuratiebestand bitcoin.conf. De meeste nodes behouden echter de standaardlimiet van 300 MB. Er is dus een zekere homogeniteit wat betreft de capaciteit van mempools op Bitcoin.
.png)
Deze uniformiteit heeft een gevolg: wanneer een transactie wordt geweigerd uit mempools van 300 MB, wordt deze in feite van het Bitcoin-netwerk verwijderd, alsof deze is geannuleerd. Om dit scenario te voorkomen, wordt een indicator genaamd de” Zuiveringspercentage ” informeert ons over de minimale transactiekosten die nodig zijn om te voorkomen dat ze door de node-mempools worden vergeten.
Als het cumulatieve aantal openstaande transacties met meer dan 2 sats/VB bijvoorbeeld 300 MB bedraagt, wordt het zuiveringspercentage vastgesteld op 2 sats/VB. Transacties waarbij kosten onder deze drempel worden aangeboden, worden dan uitgesloten van mempools. Uiteraard fluctueert dit percentage afhankelijk van de vraag naar ruimte in de blokken en het aanbod dat door de mijnbouwactiviteit wordt gegenereerd.
.png)
➤ Ontdek de rol van nodes in Bitcoin.
Zoals in het vorige deel is uitgelegd, moet een node, om ermee in te stemmen een nieuwe onbevestigde transactie aan zijn mempool toe te voegen, aan bepaalde regels voldoen. Deze normen zijn onderverdeeld in twee soorten:
Consensusregels lijken een beetje op de fundamentele wetten van het Bitcoin-protocol. Ze zorgen voor de consistentie en integriteit van het hele systeem door de criteria te definiëren op basis waarvan transacties en blokken worden gevalideerd. Een transactie die de consensusregels schendt, kan niet worden opgenomen in een geldig blok. Een transactie met een ongeldige handtekening kon bijvoorbeeld niet worden ontgonnen op de blockchain. Deze consensusregels zijn hetzelfde voor alle Bitcoin-gebruikers en worden collectief toegepast.
De standaardisatieregels worden daarentegen door elk Bitcoin-knooppunt afzonderlijk bepaald. Ze definiëren aanvullende criteria voor de structuur van onbevestigde transacties die het knooppunt bereid is in zijn mempool te accepteren en onder zijn peers te verdelen. Deze regels worden lokaal door elk knooppunt geconfigureerd en uitgevoerd. Ze kunnen van knooppunt tot knooppunt verschillen en zijn alleen van toepassing op onbevestigde transacties. Een knooppunt accepteert dus alleen een transactie die het als niet-standaard beschouwt als deze al is opgenomen in een geldig blok.
Hoewel deze regels van knooppunt tot knooppunt kunnen verschillen, behouden de meeste de standaardinstellingen die zijn vastgelegd in Bitcoin Core. Aangezien deze implementatie meer dan 98% van het Bitcoin-netwerk vertegenwoordigt, is er in feite sprake van een homogeniteit van de standaardisatieregels tussen de knooppunten.
Een transactie die weliswaar in overeenstemming is met de consensusregels, maar deze standaardisatieregels niet respecteert, zal zich daarom moeilijk over het netwerk kunnen verspreiden. Het kan echter wel in een geldig blok worden opgenomen als het ooit een minor bereikt. In de praktijk worden deze transacties, die als niet-standaard worden omschreven, over het algemeen rechtstreeks naar een miner verzonden via kanalen buiten het peer-to-peer-netwerk van Bitcoin. Dit is vaak de enige manier om dit soort transacties te bevestigen.
Laten we, om het onderscheid tussen deze twee soorten regels te illustreren, transactiekosten als voorbeeld nemen. Vanuit een consensusperspectief zijn er geen vergoedingsvereisten. Een transactie kan daarom geen kosten met zich meebrengen en kan desondanks worden geïntegreerd in een blok dat voldoet aan de consensusregels. Het blok wordt geaccepteerd door het nodennetwerk. Hier is bijvoorbeeld een gemineerde transactie zonder kosten: fd456524104a6674693c2994693c29946543f8a0befccce5a352bda55ec8559fc630f5f3
Aan de andere kant vereisen de standaardisatieregels standaard dat transacties ten minste 1 sat/VB aan vergoedingen moeten toewijzen. Dus als een node een onbevestigde transactie ontvangt zonder kosten, zal het weigeren deze in zijn mempool te integreren en deze niet naar de andere nodes uitzenden.
Een transactie die gratis is, is daarom zowel geldig onder consensusregels als niet-standaard volgens de mempool-regels, omdat het standaardbeleid van Bitcoin Core voor de parameter MinRelay TX-vergoeding Is van 00001 (in BTC/kB).
➤ Meer informatie over de transactiekosten van Bitcoin.
De mempool vertegenwoordigt een tijdelijk reservoir binnen de knooppunten voor Bitcoin-transacties in afwachting van bevestiging. Elk netwerkknooppunt heeft zijn eigen mempool.
De capaciteit van mempools is in het algemeen beperkt tot 300 MB, in overeenstemming met de standaard Bitcoin Core-configuratie. Ze kunnen dus slechts een beperkt aantal transacties bevatten, geprioriteerd op basis van hun tarieven. Tijdens periodes van congestie wordt een „zuiveringspercentage” vastgesteld om de minimumvergoeding aan te geven die vereist is om te voorkomen dat een transactie van mempools wordt uitgesloten.
Om in een blok te worden geïntegreerd, moeten Bitcoin-transacties voldoen aan de consensusregels. Een tweede laag van restrictievere regels, de zogenaamde standaardisatie- of mempoolregels, wordt door elk knooppunt afzonderlijk toegepast. Transacties die niet aan deze aanvullende regels voldoen, worden niet toegevoegd aan de mempool van het knooppunt en worden daarom niet over het netwerk verspreid.

