#47 // KW15 // 13.4.2023 // Was schwimmt da im Mempool? 🧠🏊‍♂️📈

Diese Woche schauen wir uns den Mempool etwas genauer an. Was ist der Mempool, bzw. was sind die Mempools, was ist seine Funktion und was passiert dort aktuell?

Block Height 785255Price 30.100 USD • Preis 27.350 EUR • WoW 7,9% • MVRV 1,5 • Market 🐂

// Today's Menu 📜

  • Es gibt nicht den einen Mempool, es gibt ca. 18.000 Mempools 🌊
  • Dr. Miner bittet zum Vorsprechtermin 🧑‍⚕️
  • Es kommt nicht auf die Größe an 😲

// Starter 🍸

Obwohl einige andere Themen, wie der kürzlich erschienene New York Times Artikel, in dem sich faktisch falsch und inhaltlich voreingenommen mit Bitcoin-Mining befasst wird, oder die Entdeckung des Satoshi Whitepapers auf Apple Computern momentan die heissen und viel besprochenen Nachrichten sind, hält auch die Diskussion über Ordinals und Inscriptions und besonders deren Auswirkungen auf das Bitcoin-Netzwerk an. Einer der viel besprochenen Aspekte bei diesem Thema ist die Auswirkung dieser Bitcoin-NFTs auf die Gebührenstruktur und somit Gewinnzusammensetzung für Miner, aber auch die direkten Auswirkungen auf On-Chain-Transaktionen durch die höheren Gebühren und den seit Wochen sehr vollen Mempool. Genau über den wollen wir uns diese Woche etwas detaillierter unterhalten, da es auch unter erfahrenen Bitcoinern immer noch einige Missverständnisse zu geben scheint.

// Primi 🍝

Fangen wir zunächst ganz vorne an. Regelmäßigen Leser//innen dieses Blogs sollte in Erinnerung sein, dass ich Anfang Februar einen Artikel über UTXOs und Gebührenmanagement geschrieben habe:

#37 // KW5 // 2.2.2023 // UTXOs & Fee-Management 👛🍺💱
Wer UTXOs vernünftig verwaltet, schützt nicht nur besser die eigene Privatsphärer, sondern kann sogar bares Geld dabei sparen. Da die meisten Menschen mit finanzieller Vorbildung gewohnt sind in Konten oder Guthaben zu denken, bedarf es beim Verständnis von UTXOs sicherlich ein wenig Unterstützung.

In diesem Artikel habe ich beschrieben wie Transaktionen zusammengesetzt sind und welche Möglichkeiten Nutzer//innen haben, um ihre persönlichen Transaktionen anhand variabler Gebühreneinstellungen schnell oder langsam im Netzwerk zu platzieren.

Welchen Nutzen haben hohe gegenüber niedrigen Gebühren? Bitcoin-Miner handeln nicht ganz uneigennützig, denn sie werden für ihre Arbeit entlohnt. Für jeden produzierten Block erhalten sie neben dem Blockanteil (Reward) auch sämtliche Transaktionsgebühren, der im neuen Block enthaltenen Transaktionen. Ohne zu sehr ins Detail zu gehen, bedeutet dies, dass Miner einen Anreiz haben, Transaktionen mit möglichst hohen Gebühren zuerst in den neuen Block zu schreiben, um so ihren Profit zu maximieren. Je höher eine Gebühr relativ zu denen der anderen Transaktionen im Mempool ist, desto wahrscheinlicher ist, dass diese Transaktion im nächsten Block landet. Das bietet dem/der Nutzer//in die Möglichkeit, die eigene Transaktion zu priorisieren.

Der Mempool, kurz für Memory Pool, hat also was mit Transaktionen zu tun - und zwar ganz schön viel. Denn jede im System propagierte Transaktion landet zunächst im Mempool. Also kann man sagen, dass der Mempool sowas wie ein Wartezimmer, oder eine Warteschlange am Supermarkt oder im Vergnügungspark ist. Soll eine Transaktion in einen Block geschrieben werden, so muss sie sich erstmal anstellen. Dabei bleibt festzuhalten, dass Transaktionen erst im Netzwerk propagiert werden, bevor sie in einen Block geschrieben werden können. Wenn man also in seiner Wallet eine Transaktion abschickt und einen grünen Haken oder eine Animation angezeigt bekommt, dass die Transaktion erfolgreich versendet wurde, dann bedeutet dies schlicht nur, dass die Wallet die Nachricht, die diese Transaktion enthält, zunächst an eine Node (einen Knotenpunkt im Netzwerk) übertragen hat. Das dezentrale Peer-to-Peer Bitcoin-Netzwerk erledigt dann den Rest: Die Nodes propagieren diese Nachricht sofort weiter an alle verbundenen Nodes (Flooding genannt), und somit ist die Nachricht innerhalb weniger Sekunden an alle Netzwerkteilnehmer versendet. Dabei werden Transaktionen erstmal auf ihre Richtigkeit überprüft. Dann werden diese erst von den Mining-Nodes aus dem Mempool übernommen, die die Transaktionen sortieren und ihren Blöcken hinzufügen.

Transaktionen werden also von Wallets als Nachrichten ins Netzwerk gesendet. Ganz einfach gesprochen enthält jede Nachricht Informationen über den Sender, den Empfänger, die Höhe der versendeten Zahlung und die Höhe der angehefteten Gebühr. Diese Informationen müssen also erstmal im Netzwerk untergebracht werden, damit die Mining-Nodes aus diesem Pool von unbestätigten Transaktionen ihre Blöcke zusammensetzen können.

Jetzt sitzen also in diesem Wartezimmer ganz viele Transaktionen und warten darauf, aufgerufen zu werden, um von Dr. Miner in seinem Besprechungszimmer empfangen zu werden. Doch anders als beim Arzt, wo man in der Reihenfolge aufgerufen wird, in der man seinen Termin vereinbart hat, oder beim Straßenverkehrsamt, wo die Nummer auf dem kleinen Ticket, das man beim Eintritt gezogen hat, über die Reihenfolge entscheidet, sucht Dr. Miner sich selbst aus, welche Patienten (Transaktionen) er in welcher Reihenfolge sehen möchte. Dr. Miner bittet zum Vorsprechtermin. Und da alle Patienten ein kleines Schildchen hochhalten, auf dem die Gebühr steht, die sie bereit sind zu zahlen, um so schnell wie möglich von Dr. Miner empfangen zu werden, kann dieser ganz einfach diejenigen bevorzugen, die am meisten zahlen (würde so im normalen Leben ja keineswegs ablaufen - hrr hrr, Kassenpatienten!).

Damit möchte ich nicht sagen, dass bei Bitcoin ein Zwei- oder Mehrklassensystem besteht, wie das im deutschen Gesundheitssystem der Fall ist, allerdings gibt es Einzelnen die Freiheit darüber zu entscheiden, wie wichtig ihnen einzelne Transaktionen sind und wie viel sie bereit sind, dafür zu bezahlen (ähem, freie Marktwirtschaft, hust!) Diese variable Gebührenstruktur ist also ganz eng mit dem Anreizsystem von Bitcoin verbunden. Gebühren werden in sats/B oder sats/vB (Satoshis pro (virtual) Byte) berechnet, also wie viele Sats man pro Byte entrichten muss. Damit werden Transaktionen mit mehr Blockgewicht automatisch teurer (hallo Ordinals 👋), was eigentlich sehr fair ist, aber die variable Gebühreneinstellung in den meisten Wallets erlaubt Versendenden ihre Transaktion auch anderen Transaktionen gegenüber zu priorisieren, wenn diese es für notwendig halten.

Eine oft falsche Annahme ist, dass es irgendwie den einen Mempool gibt. Das ist natürlich falsch und aufgrund der dezentralen Struktur des Netzwerks auch gar nicht möglich. Vielmehr verfügt jede Node über ihren eigenen Mempool (mit seinen eigenen Einstellungen). Dieses Missverständnis rührt wahrscheinlich daher, dass immer von DEM Mempool gesprochen wird und Block-Explorer, wie mempool.space, durch ihre Übersicht suggerieren, dass diese Informationen aus DEM Mempool entstammen. Dabei sind Explorer oft nur die Visualisierung einer einzelnen Node, oder aggregieren verschiedene Informationen, um einen möglichst akkuraten Gesamteindruck darzustellen.

☝️
Kurz zusammengefasst: Ein Mempool ist die Warteschlange ausstehender und unbestätigter Transaktionen für eine Node. Es gibt keinen zentralen oder globalen Mempool. Jede Node verwaltet ihren eigenen Mempool, sodass verschiedene Nodes theoretisch unterschiedliche Transaktionen in ihren Mempools sammeln können. Transaktionen wiederum enthalten Gebühreninformationen, die für die Mining-Nodes wichtig sind, um diese zu priorisieren.
via Mempool.space

Wenn man sich das obige Bild einmal anschaut, versteht man auch, was es mit den Gebühren auf sich hat. Am einfachsten ist es sich vorzustellen, es gäbe eine Autobahn, auf der ein Algorithmus entscheidet, wie schnell alle Autos fahren. Um überhaupt auf diese Autobahn auffahren zu dürfen, muss man 1,98 sat/vB zahlen, sonst wird man gar nicht drauf gelassen. Diejenigen Transaktionen, die 4 sat/vB zahlen, dürfen zwar auf die Autobahn, stehen aber momentan auf dem Standstreifen und kommen nicht vorwärts. Wer mind. 5 sat/vB zahlt, fährt automatisch auf der rechten Spur, alle die mind. 7 sat/vB zahlen, fahren in der Mitte, und wer mind. 10 sat/vB ausgeben möchte, darf rechts am schnellsten fahren.

Oder um eine andere Analogie zu bemühen, schauen wir uns eine Warteschlange im Vergnügungspark an. Allerdings gibt es nicht nur eine lange Schlange, sondern verschiedene Schlangen für dieselbe Achterbahn mit unterschiedlich langen Wartezeiten. Jedoch muss man mehr Fahrpreis bezahlen, wenn man in die Schlange mit der kürzeren Wartezeit möchte (würde so im normalen Leben ja keineswegs ablaufen - hrr hrr, Genie-Pass im Disney World). Alle 10 Minuten fährt die Achterbahn eine Runde und nimmt immer nur eine gewisse Anzahl von Parkbesuchern mit, bis das Gewichtslimit der Bahn erreicht ist - nur das Gewicht der Fahrgäste ist entscheidend, nicht die Menge.

Es gibt einige Fahrgäste, denen es wert ist, auf jeden Fall in der nächsten Bahn zu sitzen, koste es was es wolle. Dann wiederum gibt es welche, die schauen, wie viele Fahrgäste schon in den jeweiligen Reihen stehen und sich ausrechnen, wie viel sie bezahlen müssten, um eine fast 100%ige Chance zu erhalten, in der nächsten Bahn zu sitzen, ohne unnötig draufzuzahlen. Dann gibt es diejenigen, denen es egal ist, denn sie wissen, dass sie auf jeden Fall irgendwann mitfahren, aber auf Schnelligkeit keinen Wert legen. Diese unterschiedlichen Warteschlangen lassen sich im folgenden Bild gut an den Kohorten der linken Spalte ablesen. Dort werden die jeweiligen Gebührenbereiche in sats/vB dargestellt und naturgemäß sind die unteren Bereiche mehr gefüllt, als die oberen.

Mempool by vBytes (sat/vByte)

Die Einordnung der Gebühren, das Analysieren der jeweiligen Bänder und das Errechnen der Mindestgebühren, etc. übernimmt natürlich nicht der Sender jedes Mal manuell. Wallets nutzen Algorithmen, um genau diese Informationen aus dem Netzwerk auszuwerten und um dann dem/der Nutzer//in die Gebühren schon einzustellen. Sollte es jedoch trotzdem vorkommen, dass die Gebühren zu niedrig eingestellt wurden und somit Transaktionen im Mempool stecken bleiben (sprich: Die Gebühren sind zu gering, um von Mining-Nodes als interessant genug erachtet zu werden und die Transaktion wird deshalb Block nach Block umgangen), gibt es die Möglichkeit Transaktionen zu pushen.

#29 // KW48 // 1.12.2022 // On-Chain Analytics ⛓️🕵️‍♀️
Hätte man die vorhandenen Mittel einer öffentlich einsehbaren Blockchain nicht verwenden können, um viele der Fiaskos dieses Jahr abzuwenden. Kann man On-Chain Analyse betreiben, um verdächtige Spieler ausfindig zu machen und was genau ist On-Chain Analyse eigentlich?

Wie wir in meinem Artikel vom Dezember letztes Jahres gesehen haben, wurde mit Version 0.24 des Bitcoin Core Protokolls eine Änderung in der Core Implementierung vorgenommen:

Und zwar wird der Default von Opt-in auf Full replace-by-fee (RBF) geändert. RBF ist eine Mempool-Funktion, die 2015 vorgeschlagen wurde und ins Protokoll übernommen wurde, die Nutzer//innen eine Möglichkeit gibt feststeckende Transaktionen voranzutreiben, wenn diese lange Zeit unbestätigt im Mempool hängen. Wenn Nutzer//innen diese jetzt beschleunigen wollen, können sie eine höhere Gebühr zahlen, um die eigene Transaktion attraktiver zu machen. In der 2016 eingeführten Opt-in RBF Funktion, müssen Nutzer//innen aktiv einwilligen, dass ihre Transaktionen durch Transaktionen mit höheren Gebühren ersetzt werden, wohingegen die neue Full RBF Funktion standardmäßig jede Transaktion ersetzbar macht, solange für die Ersetzung eine höhere Gebühr gezahlt wird.
☝️
Kurz zusammengefasst: Der Mempool funktioniert als Sammelbecken für alle dem Netzwerk übertragenen Transaktionen, die dann von den Minern sukzessive in einen Block gepackt werden. Dies erfolgt in der Regel nach Höhe der Gebühren, d.h. Transaktionen, die eine höhere Gebühr mit sich führen, werden von Minern präferiert, da dies deren Profit steigert. Wurde eine Transaktion mit geringer Gebühr übertragen, oder treten aus verschiedenen Gründen hohe Gebührenspitzen auf, können die unpräferablen Transaktionen im Mempool hängen bleiben.

Wie wir jetzt wissen, verwaltet jede Node ihren separaten, individuellen Mempool. Die Einstellungen können die Betreiber der Nodes selbst vornehmen, denn während die Standardgröße auf eine Memory-Grenze von 300 MB festgelegt ist, kann jeder Knotenbetreiber seinen eigenen Wert festlegen. Die Mempool-Größenbeschränkung bezieht sich jedoch nicht auf die serialisierten Daten oder das Transaktionsgewicht der Transaktionen in der Warteschlange, sondern auf die tatsächliche Speichernutzung der deserialisierten Transaktionsdaten auf der jeweiligen Node.

Wenn die Mempool-Grenze einer Node erreicht ist, werden die Transaktionen mit der niedrigsten Gebühr gelöscht und die Node gibt dem Netzwerk bekannt, dass vorerst keine Transaktionen unter einer gewissen Gebühr weitergeleitet werden sollen. Da jede Node unterschiedliche Grenzen hat, kann es sein, dass eine Node mit einem kleineren oder größeren Mempool Transaktionen früher oder später löscht.

Nachdem der Rückstand unter die (meistens) 300 MB-Grenze gesunken ist, senken Nodes ihre Gebührenmindestanforderung und beginnen wieder damit, Transaktionen zu akzeptieren, die zuvor ausgeschlossen wurden.

Jetzt ist es auch über drei Monate her, dass das Ordinals / Inscriptions Protokoll veröffentlicht wurde und nach einem anfangs relativ langsamen Start (trotz heftiger Diskussionen, vieler Publikationen zu dem Thema, etc.) wurden in dieser Zeit mittlerweile mehr als 1 Millionen Artefakte hochgeladen.

via Dune.com/dgtl_assets

Das Hochladen so vieler (meistens) Bilder direkt in die Bitcoin-Blockchain ist mit recht hoher Sicherheit der Treiber dafür, dass der Mempool seit einiger Zeit komplett ausgelastet ist (also die 300 MB-Grenze übersteigt) und, wie oben gesehen, zum Zeitpunkt des Verfassens, ca. 17.000 Transaktionen darauf warten, in einen Block geschrieben zu werden. Dies entspricht etwa 90 Blöcken, die das Netzwerk produzieren könnte, ohne dass eine einzige weitere Transaktion hinzu kommt. Die große Menge an hochgeladenen Daten hat auch dazu geführt, dass Gebühren zeitweise in den Bereich von 20-40 sat/vByte gehoben wurden.

via Johoe's Bitcoin Mempool Size Statistics

Vor SegWit (Segregated Witness) wurden Gebühren nach Transaktionsgröße bestimmt. SegWit führte das Konzept des Blockgewichts ein und änderte die zu erhebenden Gebühren nach Gewichtseinheit anstelle der Transaktionsgröße. Diese Änderung wurde eingeführt, um die Transaktionsgebühren insgesamt zu senken, jedoch kommt es dennoch vor, dass Blöcke erstellt werden, die überwiegend aus Inscriptions bestehen.

SegWit war ironischerweise auch der Soft Fork, der es erst ermöglichte, dass Inscriptions in der heutigen Form hochgeladen werden können. Mehr dazu hier:

#38 // KW6 // 9.2.2023 // Ordinals & Inscriptions 🔢✍️🪨
Ordinals sind momentan heiß diskutiert und in aller Munde (wie Zähne). Doch wie genau funktoniert die Ordinals-Theorie und warum ist sie so kontrovers?

Um das Ordinals / Inscriptions Thema abzuschließen, bleibt bei aller Kritik auf der einen Seite und einem neuen Geschäftsmodell / einer neuen Einnahmequelle für Miner auf der anderen Seite, zu sagen, dass der Anteil an Transaktionsgebühren, die auf Ordinals / Inscriptions zurückzuführen sind, doch recht überschaubar ist.

via Dune.com/21shares_research

Es bleibt festzuhalten, dass der Mempool einen sehr wichtigen Teil des Bitcoin-Netzwerks darstellt. Er ermöglicht uns zu verstehen, wie ge- oder überfüllt das Netzwerk ist und ob es Transaktionsstaus gibt, die zu langsameren Bestätigungszeiten und höheren Gebühren führen. Er hilft fortgeschrittenen Nutzer//innen zu verstehen, wie sie ihre Gebühren am besten einstellen, aber bietet auch einen Überblick über den gesamten Zustand des Netzwerks. Will man sich einen Gesamteindruck über Bitcoin - das Netzwerk - machen, schaut man sich nicht den aktuellen Tageskurs an, sondern vielmehr den Mempool und die Hashrate. Diese zwei Quellen bieten eine Menge Auskunft darüber, was gerade im Netzwerk passiert und vielleicht passieren wird.

Los Miner, ihr habt zu viele ungelesene Transaktions-Nachrichten in eurem Mempool-Postfach!



// Secondi 🍲

News

CAR to drop crypto as legal tender - Central Banking
Country bows to pressure from partners in regional monetary union

Schade, dass das Projekt schon aufgegeben wurde. Allerdings, muss man dazu sagen, dass es im Vergleich zu El Salvador nie wirklich um Bitcoin als Währung ging, sondern vielmehr ein Versuch / ein Experiment war und neben Bitcoin auch Kryptowährungen erlaubt waren. Dies zeigt auch, dass man sich Bitcoin aktiv mit allen Konsequenzen öffnen muss, alleine den Zahlungsverkehr zu legalisieren führt nicht weit.

RoboSats Reached A Record P2P Trading Volume in March
RoboSats is a simple and private way for to exchange fiat currencies for bitcoin and vice versa.

Es ist schön und wichtig zu sahen, dass no-KYC-Bitcoin Anbieter / Handelsplattformen, wie RoboSats, stetig wachsen. Das zeigt auf der einen Seite, dass diese Services benutzerfreundlicher werden und auf der anderen Seite, dass eine reale Nachfrage nach Bitcoin außerhalb der großen Börsen besteht.

EU Lawmakers Vote in Favor of Payment Limits on Anonymous Crypto Wallets
Crypto rules form part of a money-laundering overhaul supported by the European Parliament Committees

Ach, EU, ach! 🤡


// Candy 🍭


Maßgeschneidert und individuell, die passende Infrastruktur für dein Unternehmen. Ob Kiosk, Restaurant, Online-Shop oder als Reisender ohne Internet. Finde deine Lösung auf business-bitcoin.de
Sweater, T-Shirts, Jacken, Mützen und vieles mehr von der wildesten Bitcoin-Fashion-Brand direkt aus Frankfurt auf bitcoin-rebel.com

Feels good to be back! Aber irgendwie ist Urlaub schon was Feines ;)

In diesem Sinne, 2... 1... Risiko!‌

Sven