58 lines
5.8 KiB
Markdown
58 lines
5.8 KiB
Markdown
# Potatium: Dynamische Worker und Fonds-Rückflüsse (Forschungsstand v0.1)
|
||
|
||
**Status:** Simulationsentwurf, noch keine Protokoll- oder Coinparameter freigegeben.
|
||
**Basis:** PoP-Cluster v0.1, Worker-Gebührenforschung v0.4, Gebührenflussanalyse v0.1.
|
||
|
||
## Ziel und Fragestellung
|
||
|
||
1. Lohnt ein weiterer Worker bei einer Worker-Gebühr von 1x, 3x oder 5x?
|
||
2. Unterschied `fixed` (alle bezahlbaren Worker) vs. `dynamic` (je Runde auf Schätzwert basierte Wirtschaftlichkeitsentscheidung).
|
||
3. Was passiert mit Fondsbestand, Betreiber-Guthaben und Mining-Chancen bei 100 % Fondszufluss und 0 % Burn?
|
||
4. Wie wirkt **hypothetische** Rückgabe von Fondsvermögen auf Aktivierung und Vermögensverteilung?
|
||
5. Haben Betreiber mit 0 oder 1 Worker eine reale Chance gegenüber Clustern mit 3, 5, 8, 10 Workern und Neueinsteigern?
|
||
|
||
## Abgebildete Regeln
|
||
|
||
- Je registriertem Betreiber **ein Hub-Mining-Platz ohne Worker-Gebühr** und bis zu zehn zusätzliche bezahlte Worker-Mining-Identitäten im *Forschungsmodell*. Zweite Hubs sind nicht gratis zusätzliche Mining-Identitäten.
|
||
- Eine Mining-ID darf pro Runde höchstens ein gültiges Ticket qualifizieren. Pro Runde höchstens ein Gewinner; Preis beispielhaft 1 PTM.
|
||
- Alle drei Fenster werden je Mining-ID sequenziell versucht. F1 kostenlos, F2/F3 nur wenn vorheriger Versuch erfolglos und das gewählte Modell die Gebühr deckt.
|
||
- Vor Versuch in jedem Fenster wird die Gebühr bezahlt, *vor* dessen Bernoulli-Entscheid. Worker-Aktivierung ebenfalls vor F1. Keine bezahlte Aktivierung bei Guthabenmangel.
|
||
- Alle Mining-Belohnungen und 90-Tage-Erträge je Betreiber zusammengefasst. **Die Gebührenprogression nutzt nur Mining-Belohnungen der letzten 90 Tage, nicht Wallet-Kontostände und nicht Fondsauszahlungen.**
|
||
- Auszahlungen gehen ins gemeinsame Betreiber-Wallet. Guthaben im Code nur abstrakter Float-Forschungswert, kein privater Schlüssel.
|
||
- Worker-Gebühr pro Runde marginal: W1–3 je 0,001, W4–7 je 0,003, W8–10 je 0,005 PTM, skaliert mit `--scales` 1/3/5. Beispielwerte, keine finale Gebühr.
|
||
- `balanced`-Profil: PoP-Fenstererfolge 55 % / 30 % / 20 %. `low`-Fenstergebühren nutzen 1 % der vorher modellierten Progressionskomponente plus jeweilige Grundgebühr.
|
||
- Zeitachse 180 bzw. 360 Tage, 72 oder 720 Runden pro Tag (Forschungswerte, keine CometBFT-Blockhäufigkeit).
|
||
- Betreiberkapazität wiederholt die Liste 0,1,3,5,8,10. 20 bestehende Betreiber, 5 kommen an Tag 90 hinzu. Zugewiesene Startguthaben gelten bereits als Genesis-Bestand aller Operatoren.
|
||
- `hold`: Gebühren verbleiben im Fonds. `redistribute`: alle `--payout-interval` Tage wird `--payout-share` des **aktuellen** Fondsbestands *gleichmäßig an alle aktuell aktiven Betreiber* ausgeschüttet. Verteilung = REINES WHAT-IF, kein Governance-Beschluss. Fonds-Rückflüsse werden nicht erneut als Mining-Ertrag klassifiziert.
|
||
- Rechnerische Identität **Genesis + minted = Fonds + alle Wallets** muss an jedem Tag gelten; `burned=0`.
|
||
|
||
## Grenzen der Simulation
|
||
|
||
**Kein** echter Hash-/Mining-Prozess, keine Ressourcenunterschiede bei Pi/Alt-PC, kein Netzwerk oder Konsens, keine Ausfälle, keine rechts- oder ökonomisch belastbare Bewertung. Wallet-/Betreiber-Identitäten werden nicht als physische Geräte verifiziert. Kein Sybil-Schutz, keine anonymen Mehrfachbetreiber, keine Simulation unterschiedlicher 90-Tage-Historien bei externen Wallet-Transfers. Keine Kursbewertung oder Fiat-Preise.
|
||
|
||
`dynamic` ist ausdrücklich *kein mathematisch optimaler Miner*: Die Strategie verwendet für die Workerwahl ein vereinfachtes erwartetes Anteilsschema mit F1-Ticketwahrscheinlichkeit und dem exponentiell geglätteten Rivalen-Ticketstand vergangener Runden. Die Entscheidung für Fenster 2/3 ist ebenfalls eine grobe Heuristik. Ein perfektes oder spieltheoretisches Gleichgewicht wird **nicht** behauptet.
|
||
|
||
Das hypothetische gleichmäßige Ausschütten des Fonds würde einen starken **Sybil-Anreiz** schaffen: Mehr Betreiberidentitäten könnten mehr Auszahlungen beanspruchen. Diese Variante ist ausdrücklich kein Vorschlag für die reale Fonds-Governance. Bei `redistribute` fließt der Fonds auch zu Betreibern zurück, die selbst Worker-Gebühren gezahlt haben; Brutto-Zahlungen und Nettoeinnahmen bitte getrennt bewerten.
|
||
|
||
Gini berücksichtigt Wallet-Guthaben registrierter Betreiber **ohne** das Gemeinschafts-Fondskonto. Gemessene Gini-Werte sind weder universelle Fairnessmaße noch direkt mit früheren 20-Miner-Szenarien vergleichbar.
|
||
|
||
**Vorsicht bei `72` statt `720`:** 72 Runden/Tag macht Tests schneller, verändert aber die Zahl der in 90 Tagen verdienten Coins und damit die Gebührenprogression. Die Ergebnisse sind daher ein eigenständiges Szenario, kein skaliertes Äquivalent zu den früheren 720-Runden-Modellen.
|
||
|
||
## Ausgabedateien
|
||
|
||
- `_summary.txt`: Vergleich der Szenarien in Textform.
|
||
- `_comparison.csv`: Parameter und Durchschnittswerte pro Gebühren- und Fondsvariante; zusätzlich gruppierte Ergebnisse je Clusterkapazität (`capacity_X_net`, `capacity_X_activated`, `capacity_X_wallet` usw.).
|
||
- `_operators.csv`: Ergebnis pro Betreiber/Seed, brutto, Gebühren, Fondsrückfluss, Netto, aktive Worker, Gewinne.
|
||
- `_daily.csv`: täglicher Fonds-, Emissions-, Wallet-, Gini- und Aktivierungsverlauf.
|
||
- `_results.json`: vollständige Szenarios mit Parametern, Tageswerten, Betreiberwerten und Modellgrenzen.
|
||
- `*_ERGEBNISSE.zip`: automatisch erzeugtes Uploadarchiv mit den fünf Ergebnisdateien.
|
||
|
||
## Verifikation
|
||
|
||
```bash
|
||
python3 -m unittest discover -s tests -p 'test_pop_dynamic.py' -v
|
||
python3 scripts/simulate_pop_dynamic.py --operators 6 --newcomers 2 --join-day 3 --days 5 --rounds-per-day 20 --replicates 1
|
||
```
|
||
|
||
Echte Chain-/Wallet-/Netzwerk-Tests sind dadurch **nicht** ersetzt. Nach den Forschungsruns erst gemeinsames Review, dann gezielte Dokumentations-/ADR-Anpassung im Repository. Unentschiedene Gebühren oder Fondsausgaben nicht als verbindlich markieren.
|