Festlegung von Vesting-Zeitplänen

Tastatur mit Werkzeugen

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

Überblick

Mit der Verabschiedung 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 identifiziert, der bei der Berechnung dieser neuen Vesting-Zeitpläne gemacht wurde, und einen Fix entwickelt, der die korrekten Zeitpläne wiederherstellt.

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

Dann werden wir erklären, wie das BetaNet Staking Rewards-Programm implementiert wurde, welche Probleme nach seiner Inkraftsetzung festgestellt wurden und wie wir diese Probleme beheben, was die Änderung falscher Vesting-Zeitpläne beinhaltet.

Schließlich veröffentlichen wir alle überarbeiteten Vesting-Zeitpläne unter https://vesting.xx.network für alle Münzhalter im JSON-Datenformat und einer begleitenden PNG-Datei mit Vesting-Grafiken. Wir bieten auch Beispiele für verschiedene Szenarien, die Coin-Inhaber aufgrund der oben genannten Probleme betroffen haben.

Wir werden diese Korrekturen am 21. Januar 2022 vorantreiben.

Was sind Vesting-Zeitpläne

Vesting ist ein Konzept, das traditionell bei Aktienoptionen verwendet wird, bei dem eine Anzahl von Aktieneinheiten gewährt wird, die Einheiten jedoch nur gegeben werden (sie Weste) in Portionen im Laufe der Zeit, z. B. vierteljährlich oder jährlich.

Im Kontext von xx network ist das Konzept ähnlich, aber die Ausführung ist anders. Der volle Betrag der zugeteilten Münzen wird direkt auf das Empfängerkonto gutgeschrieben, jedoch mit einem Vesting-Zeitplan Schlösser die Münzen für einen bestimmten Zeitraum. Coins, die für das Vesting gesperrt sind, können für jede Operation im Netzwerk verwendet werden (außer als reserviert Münzen), kann aber nicht auf ein anderes Konto übertragen werden. Coins unter Vesting werden dann in jedem Block freigeschaltet.

Ein Vesting-Zeitplan im xx network besteht aus drei Feldern:

  • Der Betrag, der durch Vesting gesperrt ist: SchlossD
  • Der Betrag, der jeden Block freischaltet: pro_block
  • Der Block, wenn die Münzen freigeschaltet werden: Startblock


Wir verwenden Vesting-Zeitpläne, um Coins zwei verschiedene Arten von Beschränkungen aufzuerlegen: eine Sperre des vollen Betrags für einen bestimmten Zeitraum oder eine lineare Entsperrung, beginnend zu einem bestimmten Zeitpunkt und mit einer bestimmten Dauer.

Beispiele:

Vesting-Zeitpläne für Münzen, die in monatlichen Tranchen von 7000 für BetaNet-Knoten ausgegeben werden, sehen folgendermaßen aus:

  • SchlossD:7000
  • pro_block:7000
  • Startblock:1123200

Dieses Beispiel platziert eine Sperre von 7000, die bei Block 1123200 beginnt und 7000 pro Block entsperrt. Dies bedeutet effektiv, dass diese Tranche von 7000 Münzen bis Block 1123200 gesperrt ist und bei Block 1123201 vollständig entsperrt wird. Dieses spezielle Beispiel gilt für BetaNet-Belohnungen für den Monat Januar 2021, da 1123200 Blöcke gleich 1123200/(24 Stunden * 600) sind Blöcke pro Stunde) = 78 Tage, was bedeutet, dass die Sperre am 1. Februar 2022 endet.

Vesting-Zeitpläne für Münzen, die für BetaNet-Staking-Belohnungen vergeben werden, sehen folgendermaßen aus:

  • SchlossD:23812
  • pro_block:0.009186728
  • Startblock:432000

Dieses Beispiel platziert eine Sperre von 23812, die bei Block 432000 beginnt und 0,009186728 pro Block entsperrt. Das bedeutet, dass die 23812 Münzen bis Block 432000 gesperrt sind und dann bei 0,009186728 pro Block entsperrt werden. Wir können die Dauer des Vesting berechnen, indem wir die Sperre durch per_block dividieren: 23812/0,009186728 ~= 2592000 Blöcke, was 2592000/(24*600) = 180 Tage entspricht. Das bedeutet, dass der Wert 6 Monate nach Beginn der Übertragung vollständig freigeschaltet wird, 432000/(24*600) = 30 Tage nach dem Start des Mainnets.

Betanet Staking-Belohnungen

Im März 2021 kündigte das Team das BetaNet Staking Rewards-Programm an, das ab dem Start des Mainnets für alle Coin-Inhaber gilt. Das Programm hat einen APY von 50%, wobei die Zinsen vom 1. März 2021 bis zum Start des Mainnets täglich berechnet werden. Coins, die nach dem 1. März eingehen, werden erst ab dem Tag der Zuteilung verzinst. Der Belohnungsbetrag 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 Belohnungsbetrag für jeden Coin-Inhaber im Claims-Modul oder direkt im BetaNet Staking Rewards-Modul konfiguriert.

Das Programm wurde mit den folgenden Belohnungsoptionen entwickelt:

  • Es werden keine Vesting- und 2%-Prämien gewährt
  • 1 Monat Unverfallbarkeit auf 1001 TP1T des Kapitalbetrags plus Prämie, 121 TP1T der Prämie werden gewährt
  • 3 Monate Unverfallbarkeit auf 90% des Kapitalbetrags plus Prämie, 45% der Prämie werden gewährt
  • 6 Monate Unverfallbarkeit auf 80% von Kapital plus Prämie, die Gesamtprämie wird gewährt. Dies ist die Standardoption, wenn keine Auswahl getroffen wird
  • 9 Monate Unverfallbarkeit auf 100% des Kapitalbetrags plus Prämie, 120% der Prämie werden gewährt


Das BetaNet Staking Rewards-Modul wurde entwickelt, um die erforderlichen Funktionen des Programms zu unterstützen. Dieses Modul ermöglichte es Benutzern, die ihre Münzen an einer xx network-Adresse beanspruchten, ihre gewünschte Option auszuwählen. Darüber hinaus wurde das Modul mit einer Umsetzungssperre konfiguriert, die auf 30 Tage nach dem Start des Mainnets festgelegt wurde. Dies war notwendig, um Zeit für die Abstimmung über die Annahme des Programms durch die Gemeinde zu haben. Das Programm wurde über ein Referendum genehmigt, bei dem die Coin-Inhaber eine Woche lang abstimmten.

Beim Inkraftsetzungsblock wurde das Programm ausgeführt, wobei Belohnungen aus dem Mainnet-Staking-Belohnungspool an alle Coin-Inhaber vergeben wurden und die Vesting-Zeitpläne gemäß der ausgewählten Option angewendet wurden. Die Standardoption der 6-monatigen Unverfallbarkeit wurde automatisch auf alle verbleibenden Ansprüche angewendet, wobei der Prämienbetrag zum Anspruchswert addiert und Unverfallbarkeitspläne hinzugefügt wurden.

Bestehende Probleme

Das Team identifizierte 3 Probleme, die sich auf die Umsetzung des BetaNet Staking Rewards-Programms auswirkten:

  1. Restforderungen – der zu sperrende Betrag wurde berechnet, nachdem die Prämie zum Kapital hinzugefügt wurde, dh Sperre = 0,8 * (Kapital + Prämie) + Prämie, statt Sperre = 0,8 * Kapital + Prämie. Dies führt bei vielen der Restforderungen zu einem höheren Sperrbetrag als erwartet
  2. Vesting-Berechnung – Der zu sperrende Betrag wurde berechnet, indem die erforderliche Sperre genommen und der aktuelle Betrag abgezogen wurde, der bereits beim Inkraftsetzungsblock gesperrt war. Dies war eine Best-Effort-Lösung, die den benötigten Betrag von Belohnungen sperrt und gleichzeitig die bestehenden Sperren beibehält, 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 vom Programm gefordert, was zu unfairen Situationen unter Coin-Inhabern führen kann, die andere Optionen ausgewählt haben. Darüber hinaus beginnt der gesperrte Wert in einigen Fällen höher als erforderlich und fällt dann auf einen niedrigeren Wert als zulässig ab
  3. Falsche Belohnungszahlung – Betrachten Sie einen Benutzer, der zwei separate Ansprüche hat, einen ohne Vesting-Zeitpläne (z. B. aus dem ursprünglichen Verkauf) und einen anderen mit. Wenn beide an derselben Adresse beansprucht werden, wird nur der Prämienwert des zweiten beibehalten. Das bedeutet, dass der Prämienwert aus dem ersten Anspruch bei der Inkraftsetzungssperre nicht ausbezahlt wurde. Dieses spezielle Problem betrifft nur 3 Münzhalter.

Behebung der Probleme

Wie bereits in einem Forum angekündigt Post, schlug das Team ein Blockchain-Laufzeit-Update vor, das zusätzliche Funktionen hinzufügte. Dazu gehörten zwei Funktionen, die dem Technischen Komitee durch einstimmigen Beschluss die Möglichkeit geben, Vesting-Zeitpläne in den Claims- und Vesting-Modulen zu ändern. Diese Aufrüstung wurde in einem Referendum genehmigt und letzten Donnerstag, den 13. Januar, beschlossen.

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

Neue Vesting-Zeitpläne

Informationen zum Vesting- und BetaNet Staking Rewards-Programm für alle Münzinhaber finden Sie unter https://vesting.xx.network.

Für jeden Münzhalter gibt es eine JSON-Datei mit folgenden Informationen:

  • Prinzipal: die Menge an Münzen, die bei der Entstehung vorhanden sind
  • Belohnung: Die gewährte Belohnung, angepasst an die gewählte Option
  • Option: die ausgewählte Option des BetaNet Staking Rewards-Programms
  • Vesting: alle Informationen zum Vesting
    • Original: Vesting-Zeitpläne bei Genesis vorhanden
    • betanet_rewards: Vesting-Zeitplan, der für die Betanet-Staking-Belohnungen erforderlich ist
    • on_chain: Vesting-Zeitpläne, die derzeit in der Kette sind
    • berechnet: feste Vesting-Zeitpläne
  • correct_on_chain: Das in der On-Chain-Vesting anzugebende Flag ist falsch


Für jeden Münzhalter gibt es eine PNG-Datei, die drei Diagramme der gesperrten Münzmenge in Abhängigkeit von der Blocknummer enthält. Diese bieten eine einfachere Möglichkeit, den durch verschiedene Vesting-Zeitpläne gesperrten Betrag im Laufe der Zeit zu vergleichen:

  • Ursprüngliches Vesting (links): Dieses Diagramm zeigt die ursprünglichen Vesting-Zeitpläne (blau) mit denen, die für die BetaNet Staking Rewards erforderlich sind (orange). Nach Inkrafttreten des Programms muss der gesperrte Betrag immer der restriktivste sein, dh max(original, betanet_rewards)
  • On-Chain-Vesting (Mitte): Dieses Diagramm zeigt die gleichen Informationen wie das vorherige, jedoch mit überlagerten On-Chain-Vesting-Zeitplänen (grün). Hier können Coin-Besitzer sofort sehen, ob das aktuelle Vesting ungültig ist und ob es mehr, weniger (oder beides) Coins sperrt
  • Neue Zuteilung (rechts): Dieses Diagramm zeigt die gleichen Informationen wie die erste, jedoch mit den neuen (festen) Zuteilungszeitplänen überlagert (grün). Hier können Coin-Besitzer die Vesting-Zeitpläne sehen, die vom Team festgelegt werden, um die gefundenen Probleme zu beheben, die, wie zu sehen ist, immer dem Maximum zwischen ursprünglicher und Betanet-Belohnung folgen. Wenn dieses Diagramm mit dem mittleren identisch ist, bedeutet dies, 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 nicht ab Block 870000 beansprucht wurden. Wir ermutigen alle Community-Mitglieder, ihre jeweiligen Informationen zu finden und sich an das Team zu wenden, wenn sie Probleme finden.

Methodik

Alle notwendigen Informationen wurden direkt aus dem Genesis-Block und dem On-Chain-Zustand an verschiedenen Blöcken zusammengestellt. Beim Generieren aller Dateien wurden mehrere Prüfungen durchgeführt, um Probleme zu erkennen und zu beheben. Die Berechnung der festen Vesting-Pläne wurde rekursiv durchgeführt, indem die ursprünglichen Pläne angepasst und Teile der BetaNet-Prämienpläne nach Bedarf hinzugefügt wurden, sodass die resultierende Gesamtsumme mit der erforderlichen Sperre in allen Blöcken übereinstimmt, was genau das Maximum zwischen beiden Arten von Plänen ist.

Beispiele für verschiedene Situationen

Restanspruch ohne Originalschlösser, zeigt Ausgabe 1

Restanspruch mit Originalschlössern, beide Ausgaben 1 und 2 zeigend

Restanspruch mit Originalschlössern, aber korrekter Unverfallbarkeit

Halter mit Originalschlössern, zeigt Problem 2, das zu höheren Sperren als erwartet führt

Halter mit Originalschlössern, zeigt Problem 2, das zu anfänglich höheren Sperren und dann zu niedrigeren Sperren als erwartet führt

Halter mit Originalschlössern, aber korrekter Belegung

Halter ohne Originalschlösser, aber korrekte Belegung

Inhaber mit Originalschlössern, der Fehler 1 aufweist, da er nach der Inkraftsetzung beansprucht wurde

Beliebt