Festlegen von Freizügigkeitsplänen

Tastatur mit Werkzeugen

Das xx labs-Team drängt auf eine Korrektur der Vesting-Pläne am 21. Januar 2022

Übersicht

Mit der Einführung des BetaNet Staking Rewards Programms wurden den meisten Wallets auf dem xx network neue Vesting-Zeitpläne hinzugefügt. Das xx labs-Team hat einen Fehler bei der Berechnung dieser neuen Vesting-Pläne festgestellt und eine Korrektur entwickelt, die die korrekten Pläne wiederherstellt.

In diesem Beitrag beginnen wir mit einem tiefen Einblick in die Funktionsweise von Vesting im xx network.

Dann werden wir erklären, wie das BetaNet Staking Rewards Programm eingeführt wurde, welche Probleme nach seiner Einführung aufgetreten sind und wie wir diese Probleme beheben, indem wir die falschen Zeitpläne für die Freizügigkeit ändern.

Schließlich veröffentlichen wir alle überarbeiteten Ausübungspläne unter https://vesting.xx.network für alle Münzinhaber im JSON-Datenformat und eine begleitende PNG-Datei mit Vesting-Diagrammen. Außerdem stellen wir Beispiele für verschiedene Szenarien bereit, die sich aufgrund der oben genannten Probleme auf die Coin-Inhaber ausgewirkt haben.

Wir werden diese Korrekturen am 21. Januar 2022 vorantreiben.

Was sind Unverfallbarkeitsfristen?

Vesting ist ein Konzept, das traditionell bei Aktienoptionen verwendet wird, bei denen eine bestimmte Anzahl von Aktieneinheiten zugeteilt wird, die jedoch nur vergeben werden (sie weste) in Teilen im Laufe der Zeit, zum Beispiel vierteljährlich oder jährlich.

Im Zusammenhang mit xx network ist das Konzept ähnlich, aber die Ausführung ist anders. Der volle Betrag der zugesprochenen Coins wird direkt auf das Empfängerkonto überwiesen, allerdings mit einem Unverfallbarkeitsplan, der Schlösser die Münzen für einen bestimmten Zeitraum. Münzen, die für die Sperrung gesperrt sind, können für jede beliebige Operation im Netzwerk verwendet werden (außer für die Verwendung als reserviert Coins), können aber nicht auf ein anderes Konto übertragen werden. Münzen, die unter Vesting stehen, werden dann in jedem Block freigeschaltet.

Ein Freizügigkeitsplan in der xx network besteht aus drei Feldern:

  • Der Betrag, der durch die Unverfallbarkeit gesperrt ist: locked
  • Der Betrag, mit dem jeder Block freigeschaltet wird: pro_block
  • Der Block, in dem die Münzen freigeschaltet werden: start_block


Wir verwenden Vesting Schedules, um zwei verschiedene Arten von Beschränkungen für Coins festzulegen: eine Sperre des vollen Betrags für einen bestimmten Zeitraum oder eine lineare Freigabe, die zu einem bestimmten Zeitpunkt beginnt und ebenfalls eine bestimmte Dauer hat.

Beispiele:

Die Vesting-Pläne für Coins, die in monatlichen Tranchen von 7000 für BetaNet-Knoten vergeben werden, sehen wie folgt aus:

  • locked:7000
  • pro_block:7000
  • start_block:1123200

In diesem Beispiel wird eine Tranche von 7000 Münzen gesperrt, die ab Block 1123200 freigeschaltet wird und 7000 Münzen pro Block freigeschaltet werden. Das bedeutet, dass diese Tranche von 7000 Münzen bis zum Block 1123200 gesperrt ist und im Block 1123201 vollständig freigeschaltet wird. In diesem Beispiel geht es um BetaNet-Belohnungen für den Monat Januar 2021, denn 1123200 Blöcke entsprechen 1123200/(24 Stunden * 600 Blöcke pro Stunde) = 78 Tage, d.h. die Sperre endet am 1. Februar 2022.

Die Sperrfristen für die Münzen, die du für die BetaNet-Einsatzprämien erhältst, sehen wie folgt aus:

  • locked:23812
  • pro_block:0.009186728
  • start_block:432000

In diesem Beispiel wird eine Sperre von 23812 gesetzt, die ab Block 432000 entsperrt wird und 0,009186728 pro Block freigibt. Das bedeutet, dass die 23812 Münzen bis Block 432000 gesperrt sind und dann mit 0,009186728 pro Block entsperrt werden. Wir können die Dauer der Sperrung berechnen, indem wir die gesperrten Münzen durch pro_Block teilen: 23812/0,009186728 ~= 2592000 Blöcke, das sind 2592000/(24*600) = 180 Tage. Das bedeutet, dass der Wert 6 Monate nach Beginn des Vestings vollständig freigeschaltet ist, also 432000/(24*600) = 30 Tage nach dem Start des Mainnets.

Betanet-Einsatzbelohnungen

Im März 2021 kündigte das Team das BetaNet Staking Rewards Programm an, das für alle Coin-Inhaber ab dem Start des Mainnets gilt. Das Programm hat einen APY von 50%, wobei die Zinsen täglich berechnet werden, vom 1. März 2021 bis zum Start des Mainnets. Coins, die nach dem 1. März eingehen, werden erst ab dem Tag verzinst, an dem sie vergeben werden. Der Reward-Betrag wurde für jeden Coin-Inhaber berechnet und vor dem Start des Mainnets in der Genesis-Block-Tabelle veröffentlicht. Im Genesis-Block wurde der Reward-Betrag für jeden Coin-Inhaber im Claims-Modul oder direkt im BetaNet Staking Rewards-Modul eingestellt.

Das Programm wurde mit den folgenden Belohnungsoptionen konzipiert:

  • Keine Unverfallbarkeit und 2% der Belohnung werden gewährt
  • 1 Monat Sperrfrist für 100% des Kapitals plus Belohnung, 12% der Belohnung werden gegeben
  • 3 Monate Sperrfrist für 90% des Kapitals plus Belohnung, 45% der Belohnung wird gegeben
  • 6 Monate Unverfallbarkeit auf 80% des Kapitals plus Belohnung, die Gesamtbelohnung ist gegeben. Dies ist die Standardoption, wenn keine Auswahl getroffen wird.
  • 9 Monate Sperrfrist für 100% des Kapitals plus Belohnung, 120% der Belohnung wird gegeben


Das BetaNet Staking Rewards-Modul wurde entwickelt, um die erforderlichen Funktionen des Programms zu unterstützen. Mit diesem Modul konnten Nutzer, die ihre Coins auf eine xx network-Adresse eingezahlt haben, die gewünschte Option auswählen. Außerdem wurde das Modul mit einer Sperrfrist konfiguriert, die auf 30 Tage nach dem Start des Mainnet festgelegt wurde. Dies war notwendig, damit die Community über die Annahme des Programms abstimmen konnte. Das Programm wurde in einem Referendum angenommen, bei dem die Coin-Inhaber/innen eine Woche lang abstimmten.

Im Enactment-Block wurde das Programm ausgeführt, wobei die Belohnungen aus dem Mainnet Staking Rewards Pool an alle Coin-Inhaber vergeben wurden und die Unverfallbarkeitsfristen entsprechend der gewählten Option angewendet wurden. Die Standardoption der 6-monatigen Unverfallbarkeit wurde automatisch auf alle verbleibenden Ansprüche angewandt, wobei der Belohnungsbetrag zum Wert des Anspruchs addiert und die Unverfallbarkeitszeitpläne hinzugefügt wurden.

Bestehende Probleme

Das Team ermittelte 3 Probleme, die die Einführung des BetaNet Staking Rewards Programms beeinflussten:

  1. Restforderungen - der zu sperrende Betrag wurde berechnet, nachdem die Prämie zur Hauptforderung addiert wurde, d.h. Sperre = 0,8 * (Hauptforderung + Prämie) + Prämie, anstatt Sperre = 0,8 * Hauptforderung + Prämie. Dies führt dazu, dass der gesperrte Betrag in vielen der übrig gebliebenen Forderungen höher ist als erwartet.
  2. Vesting-Berechnung - der zu sperrende Betrag wurde berechnet, indem man die benötigte Sperre nahm und den aktuellen, bereits gesperrten Betrag beim Enactment-Block abzog. Dies war eine Best-Effort-Lösung, die den benötigten Betrag von den Belohnungen sperrt, während die bestehenden Sperren beibehalten werden, was zu Vesting-Sperren führt, die immer höher sind als zuvor. In vielen Szenarien kann diese Lösung jedoch zu gesperrten Werten führen, die niedriger sind als die vom Programm geforderten, was zu unfairen Situationen zwischen Münzinhabern führen kann, die unterschiedliche Optionen gewählt haben. Außerdem ist in manchen Fällen der gesperrte Wert anfangs höher als nötig und fällt dann auf einen niedrigeren Wert als erlaubt.
  3. Falsche Reward-Auszahlung - Nehmen wir an, ein/e Nutzer/in hat zwei getrennte Ansprüche, einen ohne Unverfallbarkeitsfristen (z. B. aus dem ursprünglichen Verkauf) und einen mit. Wenn beide Ansprüche auf dieselbe Adresse angemeldet werden, wird nur der Prämienwert des zweiten Anspruchs aufbewahrt. Das bedeutet, dass der Belohnungswert aus dem ersten Anspruch bei der Verfallssperre nicht ausgezahlt wurde. Dieses besondere Problem betrifft nur 3 Coin-Inhaber.

Behebung der Probleme

Wie bereits in einem Forum angekündigt Beitragschlug das Team ein Blockchain-Laufzeit-Update vor, das zusätzliche Funktionen enthält. Dazu gehörten zwei Funktionen, die es dem technischen Ausschuss ermöglichen, durch einstimmigen Beschluss die Freizügigkeitszeitpläne in den Modulen "Ansprüche" und "Freizügigkeit" zu ändern. Diese Aktualisierung wurde in einem Referendum genehmigt und am vergangenen Donnerstag, den 13. Januar, in Kraft gesetzt.

Diese privilegierten Funktionen werden vom Team verwendet, um die fehlerhaften Vesting-Zeitpläne zu beheben, und werden dann so bald wie möglich in einem weiteren Laufzeit-Upgrade entfernt.

Neue Freizügigkeitsregelungen

Informationen zum Vesting- und BetaNet Staking Rewards-Programm für alle Coin-Inhaber findest du unter https://vesting.xx.network.

Für jeden Münzhalter gibt es eine JSON-Datei, die die folgenden Informationen enthält:

  • Kapital: der Betrag der Münzen, der bei der Entstehung vorhanden ist
  • Belohnung: die Belohnung, die je nach gewählter Option angepasst wird
  • Option: das BetaNet Staking Rewards Programm ausgewählte Option
  • Vesting: alle Informationen zum Vesting
    • Original: Unverfallbarkeitspläne zum Zeitpunkt der Entstehung
    • betanet_rewards: Unverfallbarkeitsplan, der für die betanet-Einsatzprämien erforderlich ist
    • on_chain: derzeitige Unverfallbarkeitsfristen in der Kette
    • errechnet: feste Unverfallbarkeitsfristen
  • incorrect_on_chain: Das Flag, das in der On-Chain-Vesting angegeben wird, ist falsch


Für jeden Münzhalter gibt es eine PNG-Datei mit drei Diagrammen, die die Menge der gesperrten Münzen in Abhängigkeit von der Blocknummer darstellen. So kannst du die Anzahl der gesperrten Münzen im Laufe der Zeit besser vergleichen, wenn du verschiedene Sperrfristen einhältst:

  • Ursprüngliches Vesting (links): Diese Grafik zeigt die ursprünglichen Vesting-Zeitpläne (blau) mit den durch die BetaNet Staking Rewards (orange) vorgeschriebenen. Nach Inkrafttreten des Programms muss der gesperrte Betrag immer der restriktivste sein, d.h. max(ursprünglich, betanet_rewards)
  • On-Chain-Vesting (Mitte): Dieses Diagramm zeigt dieselben Informationen wie das vorherige, allerdings werden die On-Chain-Vesting-Pläne überlagert (grün). Hier können die Coin-Inhaber sofort sehen, ob das aktuelle Vesting ungültig ist und ob es mehr oder weniger (oder beides) Coins sperrt
  • Neues Vesting (rechts): Dieses Diagramm zeigt die gleichen Informationen wie das erste, aber mit den neuen (festen) Vesting-Zeitplänen überlagert (grün). Hier können die Coin-Inhaber/innen die Vesting-Zeitpläne sehen, die vom Team festgelegt werden, um die gefundenen Probleme zu beheben, und die, wie man sieht, immer dem Maximum zwischen dem ursprünglichen und dem betanet-Belohnungs-Vesting folgen. Wenn diese Grafik mit der mittleren übereinstimmt, bedeutet das, dass das On-Chain-Vesting bereits korrekt ist.


Der Dateiname für jede JSON- und PNG-Datei ist die xx network-Adresse des Münzinhabers oder die ETH-Adresse, wenn die Münzen ab Block 870000 nicht beansprucht wurden. Wir ermutigen alle Community-Mitglieder, ihre jeweiligen Informationen zu finden und sich an das Team zu wenden, wenn sie irgendwelche Probleme finden.

Methodik

Alle notwendigen Informationen wurden direkt aus dem Genesis-Block und dem On-Chain-Status der verschiedenen Blöcke zusammengestellt. Bei der Erstellung aller Dateien wurden mehrere Kontrollen durchgeführt, um eventuelle Probleme zu erkennen und zu korrigieren. Die Berechnung der festen Freizügigkeitspläne wurde rekursiv durchgeführt, indem die ursprünglichen Pläne angepasst und Teile der BetaNet-Belohnungspläne nach Bedarf hinzugefügt wurden, so dass die resultierende Gesamtsumme mit der notwendigen Sperre an allen Blöcken übereinstimmt, was genau das Maximum zwischen beiden Arten von Plänen ist.

Beispiele für verschiedene Situationen

Restforderung ohne Originalschlösser, mit Ausgabe 1

Restforderung mit Originalschlössern, die beide Ausgaben 1 und 2 zeigen

Restforderung mit Originalschlössern, aber korrekter Unverfallbarkeit

Halter mit originalen Schlössern, bei dem Problem 2 zu höheren Schlössern als erwartet führt

Halter mit originalen Schlössern, der zeigt, dass Problem 2 zu anfänglich höheren Schlössern führt und dann niedriger als erwartet ist

Halter mit Originalschlössern, aber korrektem Sperrvermerk

Halter ohne Originalschlösser, aber mit korrektem Sperrvermerk

Halter mit Originalschlössern, die Fehler 1 zeigen, weil sie nach dem Inkrafttreten reklamiert wurden

Beliebt