docs: update Proof of Potato model to v0.2
This commit is contained in:
1 parent
e2d0be22fd
commit
7397045a54
19 files changed
+588
-813
No files matched your search
+17
-19
@@ -1,26 +1,24 @@
|
||||
# Web-Wallet: Mindestumfang ab erstem funktionalem MVP
|
||||
# Potatium Web-Wallet: Mindestumfang ab dem ersten funktionalen MVP
|
||||
|
||||
**Beschlossene Priorität:** WebGUI von Beginn an, nicht erst nach dem Mining-Release. Das mitgelieferte `web/wallet/index.html` ist ausdrücklich **nur Layout/Vorschau**.
|
||||
**Vorhandene Dateien in `web/wallet/` sind nur eine deaktivierte UI-Vorschau.** Keine Schlüsselerzeugung, keine echten Daten oder Transaktionen vortäuschen.
|
||||
|
||||
## Sichtbare Seiten und Funktionen
|
||||
## Pflichtfunktionen
|
||||
|
||||
1. **Start / Wallet anlegen:** sichere Erzeugung, Passwort und Backup-Hinweise; Import/Recovery einer bestehenden Wallet.
|
||||
2. **Übersicht:** Wallet-Adresse kopieren, verfügbares PTM-Guthaben (nur aus vertrauenswürdig überprüfter Node-Antwort), Höhe/Netzwerkstatus.
|
||||
3. **Empfangen:** Adresse plus QR optional; Betrag darf optional als URI vorgeschlagen werden, falls Protokoll entschieden.
|
||||
4. **Senden:** Empfängeradresse validieren, Betrag in exakt definierter Basis-Einheit, Fee-/Total-Vorschau, explizite Bestätigung, Signieren im Browser, Submit an Node.
|
||||
5. **Historie:** Transaktionen mit Hash, Uhrzeit/Blockhöhe, Eingang/Ausgang, Bestätigungsstatus; leere oder Offlinezustände korrekt anzeigen.
|
||||
6. **Sicherheit:** sperren/entsperren, sicheres Export-/Backup-Verfahren, klare Warnung bei Verlust des Backups.
|
||||
- Im Browser Wallet kryptografisch sicher erstellen und importieren, verschlüsselt exportieren und durch Wiederherstellung testen.
|
||||
- Adresse/Kopieren, Balance aus echter verbundener Node, PTM senden mit Betrag/Empfänger/Fee/Bestätigung, empfangen, History und Transaktionsstatus.
|
||||
- Wallet sperren/entsperren, verständliche Offline- und Fehlermeldungen, Netzwerkstatus.
|
||||
- Private Keys, Seed-Phrases und Passwörter **niemals** ans Backend, an Miner oder in Logs/Telemetrie/Repo; Schlüsselmaterial nur im Browser, sichere gepinnte Bibliotheken, klar definierte Signing-Bytes.
|
||||
- Verschlüsselter Storage, starke KDF, CSP, lokale HTTP-Vorschau nur 127.0.0.1/SSH-Forwarding, später HTTPS; Backup- und XSS-Tests.
|
||||
|
||||
## Sicherheits- und UX-Vertrag
|
||||
## Zusatzfenster und Gebühren (PoP v0.2)
|
||||
|
||||
- Keine serverseitige Schlüsselverwaltung. Clientseitige Kryptografie auf Basis geprüfter, gepflegter Bibliotheken und dokumentierter Standardformate.
|
||||
- Keine Schlüssel, Mnemonics, Signaturgeheimnisse oder Klartext-Backups in HTTP-Requests, Logs, Telemetrie oder Git.
|
||||
- Keys verschlüsselt ablegen, starke Passwortableitung/KDF mit überprüfbaren Parametern, keine ungesicherten `localStorage`-Seeds; Backup/Recovery durch Tests prüfen.
|
||||
- Browser-XSS als Key-Leak-Risiko behandeln, strikte CSP, keine fremden Inline-Skripte oder CDN-Abhängigkeiten bei Wallet-Code; Third-Party-Libraries pinnen und auditieren.
|
||||
- Entwicklungsserver standardmäßig 127.0.0.1; für entfernten Zugriff VS-Code-Portforwarding/SSH. Später HTTPS mit geeigneter Authentifizierung und CORS-Regeln.
|
||||
- UI nie „Transaktion bestätigt“ anzeigen, bevor der konsensgeprüfte Status tatsächlich vorliegt. Keine erfundenen Zahlen, keine Demo-Schlüssel als echte Wallet ausgeben.
|
||||
- Mobile, Desktop und Tastaturnutzung berücksichtigen.
|
||||
- Miner startet immer ohne PTM mit **kostenlosem Fenster 1**.
|
||||
- Die Web-Wallet kann (nach Festlegung des Protokolls) optional erlauben, für **Fenster 2/3** eine eng begrenzte Gebühr zu bezahlen. Fixpreis und progressive Gebühr anhand der aus dem finalisierten Chain-State berechneten **Mining-Gewinne der letzten ca. 90 Tage** der zugeordneten Identität/Gruppe anzeigen. Die Zahlung wird **verbrannt**.
|
||||
- Nutzer sieht vor Autorisierung den **konkreten Preis je Zusatzfenster**, die maximale mögliche Gesamtausgabe, Gebührenrisiken und den Unterschied zwischen Qualifikations- und tatsächlicher Gewinnchance.
|
||||
- Gebühr nur nach **explizit signierter** Freigabe für Chain-ID, Miner-ID, Runde, Fenster, Betrag, Ablauf und Nonce. Ggf. später vorsichtig modellierbares widerrufbares Budget statt unbeschränkter Dauerfreigabe. Miner benötigt keine Wallet-Secrets.
|
||||
- Vor finaler Gebühren-/Signaturspezifikation alle Zahlungs-Aktionen deaktiviert lassen. Keine automatische Abbuchung nur wegen „Mining aktiviert“.
|
||||
- Bestätigte Zahlung vor Fenster-Freigabe; Fehlschlag führt nicht zur Erstattung. Nach erfolgreichem Proof oder Fristende keine weitere Freigabe.
|
||||
|
||||
## Design-Entscheidungen vor echter Implementierung
|
||||
## Sicherheitstests
|
||||
|
||||
Adressschema, Schlüsselsuite, Signing-Bytes, Nonce/Sequenz, Chain-ID, Gebühren, Unlock-Lebensdauer, Recovery-Standard, Wallet-Storage und API-Version als ADR dokumentieren.
|
||||
Replay über Runden, falsche Chain-ID, abgelaufene Autorisierung, negative/überlaufende Beträge, divergierende Fee-Snapshots, manipulierte Fees/Proofs, Backup-/Recovery-Fehler und Offline-Stati. Browser-/Go-Kompatibilität der gewählten Signatursuite erst nach ADR garantieren.
|
||||
Reference in new issue
Block a user