Abstimmungs-Ertrag mit maBEETS
Vor zwei Wochen hat das Beethoven-X Protokoll auf Fantom die Reliquiaren (“Reliquaries”) eingeführt, eine Art Container, in der man die Protokoll-eigenen BEETS Token anlegen kann, um Stimmrechte zu erhalten. Die Abstimmung über die Ausschüttung neuer Tokens alle 14 Tage wird von einigen Protokollen mit Bonuszahlungen belohnt.
:GB: English version here
Die neue Herausforderung, den Ertrag zu berechnen
Bislang konnte an den durchschnittlichen Ertrag dieser Belohnungen ganz einfach berechnen:
Summe aller Bonuszahlungen / Summe der angelegten Token
Dies war so einfach, weil bislang jedes Token exakt 1 Stimmrecht repräsentiert hat. Mit dem neuen System verändert sich das aber: Im Gegensatz zu den häufig anzutreffenden ve-Protokollen („vote escrow“), bei denen man Tokens für einen langen Zeitraum festlegen musste, können Token aus einem Reliquiar jederzeit wieder entnommen werden, bleiben also flüssig.
Nun soll es trotzdem einen Anreiz geben, dem Protokoll über längere Zeit treu zu bleiben. Daher beinhaltet ein Reliquiar einen Reifeprozess, bei dem die Token in 10 wöchentlichen Schritten zur vollen Reife gelangen. Erst dann hat ein Token wieder exakt 1 Stimmrecht.
Mit dem Datum der Einführung wurden alle Token in die Stufe 0 versetzt, deren Faktor 4% beträgt. Wöchentlich kann jedes Reliquiar auf die nächste Stufe gehoben werden, solange nicht das Einstandsdatum verwässert wurde (siehe meinen Text dazu).
Durch dieses System verbunden mit der Möglichkeit, den Startzeitpunkt zu verwässern oder erhaltene Erträge in ein zweites Reliquiar unter der selben Adresse anzulegen, wird nun die Berechnung zunehmend aufwändig.
Die Gesamtzahl der angelegten Token befindet sich bei jeder Wahl in verschiedenen Stufen mit unterschiedlicher Gewichtung. Die aktuelle Verteilung kann man in diesem kleinen Tool einsehen: [https://mabeets-quorum.vercel.app/] — selbst wenn nach 11 Wochen die Mehrheit der Token das volle Stimmrecht erreicht haben, wird es immer einen kleineren Teil geben, die sich noch im Reifeprozess befinden.
Lösungsansatz
Wie man im o.g. Tool sehen kann, ist es möglich, die Anzahl und Gewichtung der Tokens in jedem Schritt abzufragen und die Summe der möglichen Wahlrechte zu ermitteln.
Mit Hilfe einer Schattendatenbank („Subgraph“) können die Werte auch für einen zurückliegenden Zeitpunkt abgefragt werden, also in unserem Fall dem Zeitpunkt, zu dem der „Snapshot“ getätigt wurde, also die Momentaufnahme der Stimmrechte für die jeweilige Abstimmung. Zusätzlich kann man noch herausfiltern, welche Adressen sich tatsächlich an der Wahl beteiligt haben und somit die Anzahl der Stimmrechte der Wähler ermitteln.
Natürlich lassen sich all diese Schritte automatisieren, so dass man nach dem Ende der Wahl den durchschnittlichen Ertrag wie folgt berechnen kann:
Summe der Bonuszahlungen / Summe der eingesetzten Wählerstimmen
Die Summe der eingesetzten Wählerstimmen wiederum errechnet sich zunächst einzeln für jede Reife-Stufe:
Aufstellung der Stimmrechte dieser Stufe
— gefiltert durch die Liste aller teilnehmenden Adressen
— — aufsummiert
— — — multipliziert mit dem Reife-Faktor für diese Stufe
— — — — Diese 11 Teilwerte werden zu einer Gesamtsumme addiert.
— — — — — Für die Angabe als Jahreszins wird die Gesamtsumme noch mit 26 multipliziert, da es in einem Kalenderjahr 26 Wahlzeiträume von je 14 Tagen gibt.
Ein Computer benötigt zum Glück nur wenige Sekunden für diese Berechnung.
Fazit
Die Berechnung des durchschnittlichen Ertrags an Bonuszahlungen auf die abgegebenen Stimmen wird deutlich komplizierter, kann aber durch Computer-Routinen übernommen werden.
Das Ergebnis wird man ca. 1 Stunde nach Wahlende in der Statistik sehen können:
https://www.beetswars.live/gaugeVoteHistory — die relevante Angabe heißt „Voting APR %“