Fairness selbst prüfen
Alles, was die Website über den Smart Contract sagt, lässt sich in den offenen Netzwerkdaten abgleichen. Unten stehen Prüfungen von der einfachsten (zwei Minuten) bis zur tiefsten (den Code bauen). Für die meisten ist kein Programmieren nötig.
So funktioniert die Prüfung
Eine Website kann gefälscht sein oder sich irren, ein Eintrag in der Blockchain nicht. Prüfen Sie deshalb nicht auf der Projekt-Website, sondern in einem Netzwerk-Explorer: einer unabhängigen Website, die den Inhalt der Blockchain anzeigt (Solscan, Solana Explorer, SolanaFM und ähnliche). Öffnen Sie einen davon selbst, nicht über Links aus fremden Nachrichten.
Für die Prüfungen brauchen Sie zwei Adressen: das Programm (den Smart Contract) und den Token. Sie stehen auf der Seite „Sicherheit“. Gleichen Sie sie zusätzlich an mindestens zwei unabhängigen Stellen ab (Repository, offizielle Kanäle): Weichen die Adressen voneinander ab, versucht jemand, Sie zu täuschen.
Schnelle Prüfungen (2–10 Minuten)
| Was zu prüfen ist | Wo Sie nachsehen | Wie es sein muss | Wenn es anders ist |
|---|---|---|---|
| 1. Können neue Token gedruckt werden? | Die Token-Seite im Explorer, Feld Mint Authority | Leer (widerrufen) | Wer dort mit seiner Adresse steht, kann beliebig viele Token ausgeben und Ihre entwerten. |
| 2. Können Token eingefroren werden? | Dieselbe Seite, Feld Freeze Authority | Leer | Der Inhaber kann jedes Wallet einfrieren, auch Ihres. |
| 3. Wer kann den Code ändern? | Die Programm-Seite, Feld Upgrade Authority | Leer (Code eingefroren) oder die Adresse eines Multisigs mit Zeitverzögerung für Updates | Eine einzelne gewöhnliche Adresse bedeutet, dass der Inhaber jederzeit andere Regeln laden kann. |
| 4. Gesamtausgabe des Tokens | Token-Seite: Supply | Nicht mehr als 100.000.000.000, und sie sinkt nur durch die Verbrennung | Mehr bedeutet, dass die Ausgabe erhöht wurde. |
| 5. Stimmt der Token überein? | Die Token-Adresse in Ihrem Wallet gegen die Seite „Sicherheit“ | Die Adressen sind Zeichen für Zeichen identisch | Das ist nicht der echte FAIRDRUM. Nicht kaufen und nicht einzahlen. |
| 6. Reichen die Token im Vault? | Die Vault-Adresse von der Seite „Sicherheit“, Token-Guthaben; die Summen der Töpfe auf der Seite „Ökonomie“ | Das Guthaben des Vaults ist nicht kleiner als die Summe der Töpfe (plus die Spielguthaben der Spieler) | Der Smart Contract muss immer durch Token gedeckt sein. Eine Abweichung ist ein ernstes Signal. |
Die obere Tabelle auf der Seite „Sicherheit“ liest dieselben Felder direkt aus dem Netzwerk und markiert ✔ oder ⚠; verlassen Sie sich aber nicht allein darauf: Gleichen Sie einmal selbst ab.
Den eigenen Spin prüfen
Jeder Spin hinterlässt einen Eintrag im Netzwerk, und das Ergebnis auf dem Bildschirm lässt sich damit abgleichen.
Finden Sie die Transaktion
Nach einem Spin erscheint unter der Schaltfläche der Link „Transaktion“. Er öffnet den Eintrag im Explorer. Oder öffnen Sie den Verlauf Ihres Wallets im Explorer und wählen Sie die Transaktion mit dem FAIRDRUM-Programm.
So muss es sein: Status Success und eine Liste von Instruktionen.
Finden Sie die zwei Aufrufpaare
In der ersten Transaktion gibt es einen Switchboard-Aufruf (Zufallsanfrage, commit) und den Aufruf des FAIRDRUM-Programms
spin_commit(Einsatz). In der zweiten: einen Switchboard-Aufruf (Offenlegung, reveal) undspin_settle(Berechnung). Der Name sieht in den Explorern etwas unterschiedlich aus (SpinCommit, spinCommit).Vergleichen Sie die Reihenfolge
Der Einsatz wurde früher festgehalten, als die Zahl offengelegt wurde: Die erste Transaktion hat eine kleinere Blocknummer (Slot) als die zweite. Das bedeutet, dass weder Sie noch das Projekt das Ergebnis im Moment des Einsatzes kannten.
Sehen Sie das Protokoll (Logs) der zweiten Transaktion an
Dort steht das Ereignis
SpinSettledmit der Zahl der Spins, den Preisen und den Treffern bei Mini-Jackpot, Jackpot und Super-Jackpot. Es sind dieselben Zahlen, die das Rad gezeigt hat.Prüfen Sie den Eigentümer des Zufalls
Das in der Transaktion angegebene Zufallskonto muss dem Switchboard-Programm gehören. Der Smart Contract weist jedes andere selbst ab, aber eine Kontrolle lohnt sich: Öffnen Sie das Konto und sehen Sie das Feld Owner an.
Tiefe Prüfungen
Den Code bauen und den Hash vergleichen
Nehmen Sie das Projekt-Repository auf GitHub (Link erscheint nach der Veröffentlichung), bauen Sie das Programm im reproduzierbaren Modus (anchor build --verifiable) und vergleichen Sie den Hash mit dem im Netzwerk (solana-verify). Eine Übereinstimmung bedeutet, dass im Netzwerk genau dieser offene Code liegt.
Die Konstanten lesen
Alle Zahlen des Spiels stehen in einer einzigen Datei consts.rs: Anteile, Chancen, Preisleiter, Gebühren, Fristen. Die Website zeichnet ihre Tabellen genau daraus, und zwischen Website und Smart Contract darf es keine Abweichungen geben.
Die Tests laufen lassen
Im Repository gibt es Tests für Regeln und Berechnungen (cargo test) und für den Client (npm test). Sie prüfen zum Beispiel, dass die Summe aller Pools und Guthaben die Token im Vault nicht übersteigt.
Nachvollziehen, wie das Ergebnis gewählt wird
Aus den 32 Byte des offengelegten Zufalls gewinnt der Smart Contract Zahlen über SHA-256. Für das Hauptrad sind das Blöcke SHA-256("FDRM-M" + Zufall + Blocknummer), aus denen je 4 Byte (little-endian) eine Zahl pro ausgeführtem Spin liefern. Für das Goldrad: SHA-256("FDRM-G" + Zufall + Nummer des ausgeführten Spins). Die Zahl wird mit Schwellen in Anteilen von 232 verglichen; die Schwellen selbst hängen vom Wochenvolumen und der Größe der Töpfe im Moment der Berechnung ab, ein alter Spin lässt sich deshalb nur zusammen mit dem Programmzustand jenes Slots vollständig nachrechnen. Die Formeln stehen in math.rs und engine.rs.
Das Protokoll eines Zeitraums lesen
Jeder kann alle SpinSettled-Ereignisse eines Zeitraums aus dem Netzwerk exportieren und die Häufigkeit von Gold und die Größe der Töpfe selbst nachzählen. Vergleichen Sie mit den „Chancen“. Bei einer kleinen Zahl von Spins ist die Streuung enorm: Um eine Chance von 1 % zu sehen, braucht es Tausende Spins.
Was sich nicht prüfen lässt
- Die Ehrlichkeit des Orakels. Der Zufall kommt vom Switchboard-Netzwerk. Der Smart Contract prüft, dass die Zahl aus dem richtigen Konto stammt und nach dem Einsatz offengelegt wurde, kann aber nicht prüfen, dass sich die Orakel-Knoten nicht abgesprochen haben. Das ist eine externe Abhängigkeit.
- Die Fehlerfreiheit des Codes. Tests und offener Code erhöhen das Vertrauen, können aber ein unabhängiges Audit nicht ersetzen. Solange kein Link zu einem Audit angegeben ist, gibt es keines.
- Die Zukunft. Solange die Upgrade-Berechtigung nicht widerrufen ist, können sich die Regeln durch eine neue Version ändern. Beobachten Sie die Update-Transaktionen des Programms.
- Was der Administrator außerhalb des Smart Contracts tut. Verkäufe seiner Token, Marketing und Entscheidungen über Listings kontrolliert der Smart Contract nicht. Zahlungen aus dem Marketingfonds sind öffentlich, aber „wofür“ prüft der Smart Contract nicht.