Gebührenmechanismen sind ein wichtiges Merkmal von Blockchains. Netzwerkbetreuer wie Validatoren verfügen über begrenzte Ressourcen, daher ist es wichtig, für knappe Ressourcen Gebühren in einer Weise zu erheben, die die Kosten für das Netzwerk widerspiegelt. Gebühren schaffen auch Anreize für Teilnehmer des Netzwerks, wie etwa Benutzer, Anwendungsentwickler und Validatoren.
In dieser Reihe werden wir den aktuellen Gebührenmechanismus von Solana untersuchen, den Gestaltungsspielraum für einen Gebührenmechanismus formalisieren und einige vorgeschlagene Änderungen am Gebührenmechanismus von Solana analysieren.
Dieses Stück ist das erste der Serie. Hier erklären wir, wie die Gebühren von Solana heute funktionieren, wobei wir uns auf transaktionsbasierte Gebühren konzentrieren.
Dies sind Solana-spezifische Definitionen, die zum Verständnis des Gebührenmechanismus erforderlich sind.
Unterschrift: Mindestens eine und in der Regel genau eine pro Transaktion.
Lamport: die kleinste atomare Einheit von SOL. 1 SOL entspricht einer Milliarde (10^9) Lamports.
Recheneinheit (CU): eine Recheneinheit pro Solana-BPF-Anweisung, die die Kosten für die Ausführung der Anweisung annähern soll. Ähnlich wie Gaseinheiten auf Ethereum.
Verwendete CU: Die Anzahl der Recheneinheiten, die zur Ausführung einer Transaktion verwendet werden. Erst nach der Hinrichtung bekannt.
CU angefordert: durch die Transaktion angegeben; Wenn die Transaktion während der Ausführung dieses Rechenbudget überschreitet, wird die Ausführung angehalten und die Transaktion schlägt fehl. Die maximal angeforderte (und verwendete) CU pro Transaktion beträgt 1.400.000 CUs.
Konto: ein einzelner Staat in der Solana-Blockchain.
Scheduler: Der kontinuierliche Blockbildungsmechanismus, der standardmäßig im von Solana Labs erstellten Solana-Client enthalten ist.
Heutzutage fallen bei einer Solana-Transaktion zwei Gebühren an: eine Grundgebühr und eine Vorranggebühr.
Die Grundgebühr ist pro Unterschrift auf 5000 Lamports (0,000005 SOL, 0,0003 $ bei 60 $/SOL) pro Unterschrift festgelegt; Die überwiegende Mehrheit der Solana-Transaktionen hat eine Signatur.
Die optionale Prioritätsgebühr wird in der Transaktion angegeben und wird in Mikrolamports pro angeforderter CU angegeben. Beachten Sie, dass dies nicht pro verwendeter CU gilt, da die verwendeten CUs erst bekannt sind, wenn eine Transaktion ausgeführt wird. Transaktionen mit höherer Prioritätsgebühr werden vom Planer nicht deterministisch priorisiert. Der spezifische Mechanismus wird im Lebenszyklus einer Solana-Transaktion beschrieben.
Die Gebühren werden zu Beginn der Transaktionsausführung vom Gebührenzahler abgebucht. Wenn der Zahler die geforderte Gebühr nicht zahlen kann, wird die Ausführung übersprungen, die Transaktion gilt als ungültig und wird nicht berücksichtigt.
Sowohl von der Grundgebühr als auch von der Prioritätsgebühr behält der Marktführer 50 % als Anreiz, Transaktionen in Blöcken einzubeziehen, und 50 % werden verbrannt.
In dieser Beispieltransaktion fordert die Transaktion 600.000 Recheneinheiten an und legt eine Prioritätsgebühr von 2500 Mikrolamports pro angeforderter CU fest. Da die Transaktion nur eine Signatur hat, beträgt die Gesamtgebühr für die Transaktion 5000 Lamports + 600.000 angeforderte CU * 2500 Mikrolamports / angeforderte CU = 6500 Lamports oder 0,0000065 SOL.
Solana erhebt zusätzlich eine Gebühr für die Schaffung eines neuen Staates, die sogenannte Mietbefreiung (Legacy-Begriff). Die aktuellen Kosten für die Mietbefreiung betragen statisch 6,96 SOL pro MB. Bei der Erstellung eines neuen Kontos wird die Gebühr dem Konto zugeordnet; Bei Löschung des Kontos kann die Mietbefreiungsgebühr eingezogen werden.
Da die Grundgebühr nicht von der genutzten oder angeforderten CU abhängig ist, besteht durch die Grundgebühr kein Anreiz, die Rechennutzung zu optimieren oder CUs anzufordern, die der tatsächlich genutzten Menge nahekommen. In der Praxis erfordern viele Transaktionen auf Solana weit mehr CUs, als letztendlich verwendet werden. Dies führt zu Ineffizienzen im Scheduler.
In der obigen Beispieltransaktion fordert die Transaktion 600.000 CUs an, verbraucht jedoch weniger als 250.000.
Während die Vorranggebühr einen Anreiz zur Reduzierung der angeforderten und damit genutzten CUs beinhaltet, ist dieser Anreiz meist schwach und kommt nur in Zeiten der Überlastung zum Tragen. Eine einfache Änderung wäre die Erweiterung der Grundgebühr, sodass auch eine Gebühr pro angeforderter CU verlangt wird. Dies würde Entwicklern und Transaktionssendern einen Anreiz geben, ihre Rechennutzung zu reduzieren und nur die erforderlichen Ressourcen anzufordern.
Ein Mechanismus ist anreizkompatibel, wenn alle Teilnehmer des Mechanismus ihr bestes Ergebnis erzielen, indem sie entsprechend ihren wahren Präferenzen handeln. Im Zusammenhang mit einem Gebührenmechanismus bedeutet dies ungefähr, dass der Validator die Gebühren maximiert, indem er den standardmäßigen Blockbildungsalgorithmus ausführt, und dass Transaktionssender die Wohlfahrt maximieren, indem sie Transaktionen mit vorrangigen Gebühren entsprechend ihrer tatsächlichen Zahlungsbereitschaft einreichen.
Der Gebührenmechanismus von Solana ist heute für Validatoren und Transaktionssender nicht anreizkompatibel. Wie oben beschrieben, behält der Anführer 50 % der Transaktionsgebühr und 50 % werden verbrannt. Da nicht die gesamte Gebühr an den Marktführer geht, entsteht ein Anreiz für einen Transaktionssender, mit dem Marktführer zusammenzuarbeiten: Anstatt eine vorrangige Gebühr anzugeben, um eine vorrangige Einbeziehung zu erhalten, kann der Absender stattdessen einen Nebenvertrag mit dem Marktführer abschließen, um die Gebühr zu bezahlen Prioritätsgebühr außerhalb des Netzwerks, wodurch die Verbrennung unterbunden wird, während weiterhin Priorität erhalten wird.
Validatoren, die einen solchen Mechanismus betreiben, erhalten theoretisch mehr Gebühren und können somit ihren delegierten Stakern höhere Belohnungen anbieten, wodurch eine zentralisierende Kraft entsteht.
Neben der direkten vertikalen Integration sehen wir dieses Nebengeschäft heute vor allem durch Jito-Auktionen auf dem Markt. Validatoren, die Jito-Solana (eine Modifikation des Clients von Solana Labs) ausführen, durchbrechen den kontinuierlichen Blockbildungsmechanismus und führen in der ersten Hälfte ihrer Slots eine Blockspace-Auktion durch.
Wir haben derzeit keine anderen derartigen Nebengeschäfte auf dem Markt beobachtet. Das ist weil:
Im Gegensatz zu den meisten anderen Blockchains verlangt Solana von Transaktionssendern, dass sie angeben, welche Zustandsteile für die Ausführung der Transaktion erforderlich sind. Dies ermöglicht die parallele Transaktionsausführung und lokalisierte Gebührenmärkte, auf denen verschiedene Bundesstaaten unterschiedliche Gebühren erheben, je nachdem, wie umstritten ein bestimmter Bundesstaat ist. Ein lokalisierter staatlicher Hotspot muss nicht zu mehr Konflikten oder Gebühren in der gesamten Blockchain führen.
Ein weit verbreitetes Missverständnis über Solana ist, dass es heute lokale Gebührenmärkte gibt. Zwar ist es wahrscheinlicher, dass eine Transaktion, die eine höhere Prioritätsgebühr zahlt, höher in den Block aufgenommen wird und dass der umstrittene Zustand wahrscheinlich eine höhere Priorität erfordert, dieses Verhalten ist jedoch nicht deterministisch und ein Ergebnis der Umsetzung des Solana-Standards Planungsalgorithmus. Wir gehen näher darauf ein im Abschnitt „Lebenszyklus einer Solana-Transaktion“.
Insbesondere wird dieses Verhalten nicht durch Konsens erzwungen, und eine deterministische Reihenfolge nach Prioritätsgebühr ist weder durch Konsens noch durch die Scheduler-Implementierung garantiert. Der kontinuierliche Blockaufbau und die Blockausbreitung von Solana verhindern eine deterministische Ordnung, es sei denn, große Änderungen (z. B deterministische Ordnung und asynchrone Ausführung) sind implementiert.
Eine im Konsens durchgesetzte, vorhersehbare Grundgebühr für den Zugang zu Staaten, die auf historischen Meinungsverschiedenheiten basiert, könnte die Effizienz und die Benutzerfreundlichkeit für den Zugang zu stark umkämpften Staaten verbessern. Dies würde die Spam-Kosten erhöhen und gleichzeitig Transaktionsabsender dazu anregen, nur die minimale Menge an Status zu sperren, die sie tatsächlich benötigen. Die Grundursache von Spam, die durch kontinuierliche Blockbildung (daher ist Latenz wichtig) und Jitter entsteht, würde dadurch nicht angegangen. Wir werden dieses Design später in dieser Serie untersuchen.
Da Transaktionen in erster Linie danach geordnet werden, wann sie den Anführer (Scheduler) erreichen, und diese Reihenfolge aufgrund der parallelisierten Scheduler-Implementierung sowohl Netzwerk-Jitter als auch Jitter unterliegt, besteht ein Anreiz, Transaktionen zu spammen, wenn der Absender möchte, dass eine Transaktion so schnell wie möglich einbezogen wird möglich. Solche Transaktionen bringen eine negative externe Wirkung auf das Netzwerk in Form von Spam, der in der Kette landet (Stand Januar 2023, werden 58 % der On-Chain-Rechenleistung von Solana für die Rückgängigmachung von Transaktionen verwendet) und Spam, der den Marktführer erreicht, mit sich.
Von Jito Labs
In diesem Artikel haben wir beschrieben, wie der Gebührenmechanismus von Solana heute funktioniert und welche Auswirkungen er auf das Netzwerk hat. Wir haben auf einige Eigenschaften hingewiesen, die ein idealer Gebührenmechanismus erfüllen würde, wie z. B. genaue Hinweise für den Planer (CU erforderlich), Anreizkompatibilität und tatsächlich lokalisierte Gebührenmärkte. Im nächsten Teil werden wir einen Formalismus für die Ziele definieren, für die der Gebührenmechanismus optimiert werden soll. Dies wird verwendet, um den aktuellen Gebührenmechanismus sowie vorgeschlagene Änderungen des Mechanismus genauer zu analysieren, als hier zum Ausdruck gebracht wurde.
Teilen
Gebührenmechanismen sind ein wichtiges Merkmal von Blockchains. Netzwerkbetreuer wie Validatoren verfügen über begrenzte Ressourcen, daher ist es wichtig, für knappe Ressourcen Gebühren in einer Weise zu erheben, die die Kosten für das Netzwerk widerspiegelt. Gebühren schaffen auch Anreize für Teilnehmer des Netzwerks, wie etwa Benutzer, Anwendungsentwickler und Validatoren.
In dieser Reihe werden wir den aktuellen Gebührenmechanismus von Solana untersuchen, den Gestaltungsspielraum für einen Gebührenmechanismus formalisieren und einige vorgeschlagene Änderungen am Gebührenmechanismus von Solana analysieren.
Dieses Stück ist das erste der Serie. Hier erklären wir, wie die Gebühren von Solana heute funktionieren, wobei wir uns auf transaktionsbasierte Gebühren konzentrieren.
Dies sind Solana-spezifische Definitionen, die zum Verständnis des Gebührenmechanismus erforderlich sind.
Unterschrift: Mindestens eine und in der Regel genau eine pro Transaktion.
Lamport: die kleinste atomare Einheit von SOL. 1 SOL entspricht einer Milliarde (10^9) Lamports.
Recheneinheit (CU): eine Recheneinheit pro Solana-BPF-Anweisung, die die Kosten für die Ausführung der Anweisung annähern soll. Ähnlich wie Gaseinheiten auf Ethereum.
Verwendete CU: Die Anzahl der Recheneinheiten, die zur Ausführung einer Transaktion verwendet werden. Erst nach der Hinrichtung bekannt.
CU angefordert: durch die Transaktion angegeben; Wenn die Transaktion während der Ausführung dieses Rechenbudget überschreitet, wird die Ausführung angehalten und die Transaktion schlägt fehl. Die maximal angeforderte (und verwendete) CU pro Transaktion beträgt 1.400.000 CUs.
Konto: ein einzelner Staat in der Solana-Blockchain.
Scheduler: Der kontinuierliche Blockbildungsmechanismus, der standardmäßig im von Solana Labs erstellten Solana-Client enthalten ist.
Heutzutage fallen bei einer Solana-Transaktion zwei Gebühren an: eine Grundgebühr und eine Vorranggebühr.
Die Grundgebühr ist pro Unterschrift auf 5000 Lamports (0,000005 SOL, 0,0003 $ bei 60 $/SOL) pro Unterschrift festgelegt; Die überwiegende Mehrheit der Solana-Transaktionen hat eine Signatur.
Die optionale Prioritätsgebühr wird in der Transaktion angegeben und wird in Mikrolamports pro angeforderter CU angegeben. Beachten Sie, dass dies nicht pro verwendeter CU gilt, da die verwendeten CUs erst bekannt sind, wenn eine Transaktion ausgeführt wird. Transaktionen mit höherer Prioritätsgebühr werden vom Planer nicht deterministisch priorisiert. Der spezifische Mechanismus wird im Lebenszyklus einer Solana-Transaktion beschrieben.
Die Gebühren werden zu Beginn der Transaktionsausführung vom Gebührenzahler abgebucht. Wenn der Zahler die geforderte Gebühr nicht zahlen kann, wird die Ausführung übersprungen, die Transaktion gilt als ungültig und wird nicht berücksichtigt.
Sowohl von der Grundgebühr als auch von der Prioritätsgebühr behält der Marktführer 50 % als Anreiz, Transaktionen in Blöcken einzubeziehen, und 50 % werden verbrannt.
In dieser Beispieltransaktion fordert die Transaktion 600.000 Recheneinheiten an und legt eine Prioritätsgebühr von 2500 Mikrolamports pro angeforderter CU fest. Da die Transaktion nur eine Signatur hat, beträgt die Gesamtgebühr für die Transaktion 5000 Lamports + 600.000 angeforderte CU * 2500 Mikrolamports / angeforderte CU = 6500 Lamports oder 0,0000065 SOL.
Solana erhebt zusätzlich eine Gebühr für die Schaffung eines neuen Staates, die sogenannte Mietbefreiung (Legacy-Begriff). Die aktuellen Kosten für die Mietbefreiung betragen statisch 6,96 SOL pro MB. Bei der Erstellung eines neuen Kontos wird die Gebühr dem Konto zugeordnet; Bei Löschung des Kontos kann die Mietbefreiungsgebühr eingezogen werden.
Da die Grundgebühr nicht von der genutzten oder angeforderten CU abhängig ist, besteht durch die Grundgebühr kein Anreiz, die Rechennutzung zu optimieren oder CUs anzufordern, die der tatsächlich genutzten Menge nahekommen. In der Praxis erfordern viele Transaktionen auf Solana weit mehr CUs, als letztendlich verwendet werden. Dies führt zu Ineffizienzen im Scheduler.
In der obigen Beispieltransaktion fordert die Transaktion 600.000 CUs an, verbraucht jedoch weniger als 250.000.
Während die Vorranggebühr einen Anreiz zur Reduzierung der angeforderten und damit genutzten CUs beinhaltet, ist dieser Anreiz meist schwach und kommt nur in Zeiten der Überlastung zum Tragen. Eine einfache Änderung wäre die Erweiterung der Grundgebühr, sodass auch eine Gebühr pro angeforderter CU verlangt wird. Dies würde Entwicklern und Transaktionssendern einen Anreiz geben, ihre Rechennutzung zu reduzieren und nur die erforderlichen Ressourcen anzufordern.
Ein Mechanismus ist anreizkompatibel, wenn alle Teilnehmer des Mechanismus ihr bestes Ergebnis erzielen, indem sie entsprechend ihren wahren Präferenzen handeln. Im Zusammenhang mit einem Gebührenmechanismus bedeutet dies ungefähr, dass der Validator die Gebühren maximiert, indem er den standardmäßigen Blockbildungsalgorithmus ausführt, und dass Transaktionssender die Wohlfahrt maximieren, indem sie Transaktionen mit vorrangigen Gebühren entsprechend ihrer tatsächlichen Zahlungsbereitschaft einreichen.
Der Gebührenmechanismus von Solana ist heute für Validatoren und Transaktionssender nicht anreizkompatibel. Wie oben beschrieben, behält der Anführer 50 % der Transaktionsgebühr und 50 % werden verbrannt. Da nicht die gesamte Gebühr an den Marktführer geht, entsteht ein Anreiz für einen Transaktionssender, mit dem Marktführer zusammenzuarbeiten: Anstatt eine vorrangige Gebühr anzugeben, um eine vorrangige Einbeziehung zu erhalten, kann der Absender stattdessen einen Nebenvertrag mit dem Marktführer abschließen, um die Gebühr zu bezahlen Prioritätsgebühr außerhalb des Netzwerks, wodurch die Verbrennung unterbunden wird, während weiterhin Priorität erhalten wird.
Validatoren, die einen solchen Mechanismus betreiben, erhalten theoretisch mehr Gebühren und können somit ihren delegierten Stakern höhere Belohnungen anbieten, wodurch eine zentralisierende Kraft entsteht.
Neben der direkten vertikalen Integration sehen wir dieses Nebengeschäft heute vor allem durch Jito-Auktionen auf dem Markt. Validatoren, die Jito-Solana (eine Modifikation des Clients von Solana Labs) ausführen, durchbrechen den kontinuierlichen Blockbildungsmechanismus und führen in der ersten Hälfte ihrer Slots eine Blockspace-Auktion durch.
Wir haben derzeit keine anderen derartigen Nebengeschäfte auf dem Markt beobachtet. Das ist weil:
Im Gegensatz zu den meisten anderen Blockchains verlangt Solana von Transaktionssendern, dass sie angeben, welche Zustandsteile für die Ausführung der Transaktion erforderlich sind. Dies ermöglicht die parallele Transaktionsausführung und lokalisierte Gebührenmärkte, auf denen verschiedene Bundesstaaten unterschiedliche Gebühren erheben, je nachdem, wie umstritten ein bestimmter Bundesstaat ist. Ein lokalisierter staatlicher Hotspot muss nicht zu mehr Konflikten oder Gebühren in der gesamten Blockchain führen.
Ein weit verbreitetes Missverständnis über Solana ist, dass es heute lokale Gebührenmärkte gibt. Zwar ist es wahrscheinlicher, dass eine Transaktion, die eine höhere Prioritätsgebühr zahlt, höher in den Block aufgenommen wird und dass der umstrittene Zustand wahrscheinlich eine höhere Priorität erfordert, dieses Verhalten ist jedoch nicht deterministisch und ein Ergebnis der Umsetzung des Solana-Standards Planungsalgorithmus. Wir gehen näher darauf ein im Abschnitt „Lebenszyklus einer Solana-Transaktion“.
Insbesondere wird dieses Verhalten nicht durch Konsens erzwungen, und eine deterministische Reihenfolge nach Prioritätsgebühr ist weder durch Konsens noch durch die Scheduler-Implementierung garantiert. Der kontinuierliche Blockaufbau und die Blockausbreitung von Solana verhindern eine deterministische Ordnung, es sei denn, große Änderungen (z. B deterministische Ordnung und asynchrone Ausführung) sind implementiert.
Eine im Konsens durchgesetzte, vorhersehbare Grundgebühr für den Zugang zu Staaten, die auf historischen Meinungsverschiedenheiten basiert, könnte die Effizienz und die Benutzerfreundlichkeit für den Zugang zu stark umkämpften Staaten verbessern. Dies würde die Spam-Kosten erhöhen und gleichzeitig Transaktionsabsender dazu anregen, nur die minimale Menge an Status zu sperren, die sie tatsächlich benötigen. Die Grundursache von Spam, die durch kontinuierliche Blockbildung (daher ist Latenz wichtig) und Jitter entsteht, würde dadurch nicht angegangen. Wir werden dieses Design später in dieser Serie untersuchen.
Da Transaktionen in erster Linie danach geordnet werden, wann sie den Anführer (Scheduler) erreichen, und diese Reihenfolge aufgrund der parallelisierten Scheduler-Implementierung sowohl Netzwerk-Jitter als auch Jitter unterliegt, besteht ein Anreiz, Transaktionen zu spammen, wenn der Absender möchte, dass eine Transaktion so schnell wie möglich einbezogen wird möglich. Solche Transaktionen bringen eine negative externe Wirkung auf das Netzwerk in Form von Spam, der in der Kette landet (Stand Januar 2023, werden 58 % der On-Chain-Rechenleistung von Solana für die Rückgängigmachung von Transaktionen verwendet) und Spam, der den Marktführer erreicht, mit sich.
Von Jito Labs
In diesem Artikel haben wir beschrieben, wie der Gebührenmechanismus von Solana heute funktioniert und welche Auswirkungen er auf das Netzwerk hat. Wir haben auf einige Eigenschaften hingewiesen, die ein idealer Gebührenmechanismus erfüllen würde, wie z. B. genaue Hinweise für den Planer (CU erforderlich), Anreizkompatibilität und tatsächlich lokalisierte Gebührenmärkte. Im nächsten Teil werden wir einen Formalismus für die Ziele definieren, für die der Gebührenmechanismus optimiert werden soll. Dies wird verwendet, um den aktuellen Gebührenmechanismus sowie vorgeschlagene Änderungen des Mechanismus genauer zu analysieren, als hier zum Ausdruck gebracht wurde.