tapscrollWIKI

Marktintegrität

Wash-Trading-, Alt-Account- und Selbstkauf-Erkennung — und warum markierte Trades ausgeschlossen statt blockiert werden.

Gavel v1.0.0Paper · Folia supported1.21 – 1.21.x

Ein Auktionshaus ist eine Geldwäschemaschine, solange niemand hinschaut. Zwei Accounts, die dasselbe Item zu überhöhten Preisen hin- und herhandeln, verschieben Währung zwischen Spielern ohne Papierspur — und vergiften nebenbei jede Preisschätzung auf dem Server.

Genau dafür bewertet Gavel Trades.

Was markiert wird

plugins/Gavel/config.yml
integrity:  enabled: true  wash-trading:    enabled: true    window-hours: 72    min-trades: 4    min-volume: 500000.0    price-multiple: 10.0  shared-address-check: true  self-trade-check: true
SignalLöst aus, wenn
Wiederholtes PaarDasselbe Verkäufer/Käufer-Paar handelt min-trades (4) Mal oder öfter innerhalb von window-hours (72).
VolumenDieses Paar bewegt im Fenster mindestens min-volume untereinander.
PreisausreißerEin Trade liegt price-multiple (10×) oder mehr über dem Median des Items — für sich genommen verdächtig, unabhängig von der Paarhistorie.
Geteilte AdresseBeide Accounts haben sich von derselben IP verbunden. Das stärkste Signal überhaupt.
SelbstkaufEin Spieler kauft sein eigenes Angebot über einen Zweitaccount.

Die drei Wash-Trading-Signale verstärken sich: Ein Paar, das häufig und zum Zehnfachen des Medians handelt, liegt weit jenseits dessen, was jedes Signal allein auslösen würde.

Was mit einem markierten Trade passiert

YAML
integrity:  actions:    exclude-from-pricing: true    notify-staff: true    log-to-file: true    block-transaction: false
AktionStandardWirkung
exclude-from-pricinganDer Trade fließt nie in die Preisstichprobe.
notify-staffanTeammitglieder mit gavel.admin.integrity werden benachrichtigt.
log-to-fileanWird nach plugins/Gavel/logs/integrity.log geschrieben.
block-transactionausWeist den Handel komplett ab.

Blockieren ist aus gutem Grund aus

Ein Fehlalarm, der einen legitimen Handel blockiert, kostet dich ein Support-Ticket, einen wütenden Spieler und den Ruf eines kaputten Auktionshauses. Ein Fehlalarm, der lediglich einen Verkauf aus einer 30-Tage-Stichprobe ausschließt, kostet gar nichts.

Lass block-transaction: false, bis du dein eigenes Integritäts-Log ein paar Wochen beobachtet hast und deine Fehlalarmquote kennst.

Warum Ausschluss die eigentliche Verteidigung ist

exclude-from-pricing ist die Einstellung, auf die es ankommt — und sie wirkt auch dann, wenn niemand das Log liest.

Der Grund, einen Markt zu manipulieren, ist die Verschiebung des Referenzpreises: den Median eines Items hochpumpen und dann den eigenen Bestand zum aufgeblasenen „fairen" Preis an echte Spieler verkaufen, den das Plugin nun anzeigt. Fließen die manipulierten Trades nie in die Stichprobe ein, produziert das ganze Schema nichts als zwei Accounts, die Geld im Kreis reichen.

Deshalb teilen sich Integrität und Preisberechnung ihre Infrastruktur, statt getrennte Features zu sein. Der Detektor existiert, um den Schätzer zu schützen.

Das Log lesen

TEXT
plugins/Gavel/logs/integrity.log

Jede Zeile hält den Trade fest, beide Accounts, das Item, den Preis, die ausgelösten Signale und was getan wurde. Es ist Klartext und lässt sich problemlos greppen.

Realistische Muster, die du sehen wirst:

  • Zwei Accounts, gleiche IP, handeln Erde für 500.000. Währungstransfer zwischen den eigenen Accounts eines Spielers, oder ein außerhalb des Servers ausgehandelter Verkauf. Einen Blick wert.
  • Ein Trade zum 40-Fachen des Medians, einmalig, zwischen Accounts ohne Historie. Meist ein vertippter Preis und ein schneller Käufer, kein Missbrauch.
  • Ein Paar handelt achtmal am Tag zu normalen Preisen. Meist zwei Freunde mit einer Shop-Absprache. Rauschen, sofern das Volumen nicht ebenfalls extrem ist.

Feinabstimmung

Beginne mit den Standardwerten und beobachte zwei Wochen. Dann:

SymptomÄnderung
Zu viele Markierungen bei normal handelnden Freundenmin-trades auf 6–8 erhöhen oder min-volume anheben
Auf einem großen Server löst nie etwas ausmin-volume senken — der Standard geht von mittelgroßen Wirtschaften aus
Legitime Raritäten als Preisausreißer markiertprice-multiple auf 15–20 erhöhen
Familienmitglieder an einem Anschluss markiertshared-address-check abschalten

Geteilte IPs sind kein Beweis

Geschwister, Wohnheime und geteilte Netze existieren. shared-address-check ist ein starkes Signal, keine Verurteilung — genau deshalb ist die Standardreaktion, den Trade aus der Statistik zu nehmen, und nicht, jemanden zu bestrafen.

Datenschutz-Hinweis

Die Adressprüfung vergleicht Verbindungsadressen, die dein Server ohnehin protokolliert. Nichts wird irgendwohin gesendet; der Vergleich passiert in deiner eigenen Datenbank. Wenn du in der EU betreibst und eine Datenschutzerklärung veröffentlichst, gehört das unter deinen bestehenden Punkt zu Server-Logs.