Glossar / Mining und Konsens
Selfish Mining
- Was ist Selfish Mining?
- Selfish Mining ist eine Strategie, bei der ein Miner einen gelösten Block verbirgt und ihn erst freigibt, um den Block eines Rivalen ungültig zu machen, wodurch er mehr verdient, als ihm sein Anteil an der Hashrate einbringen sollte.
Einen gelösten Block zurückzuhalten, ist normalerweise ein Eigentor, denn ein Rivale kann zuerst veröffentlichen, und Ihre Arbeit wird wertlos. Ein Paper von Ittay Eyal und Emin Gun Sirer aus dem Jahr 2013 zeigte, dass oberhalb von rund einem Drittel der Hashrate des Netzwerks die Rechnung kippt, und mit einem Propagationsvorteil sinkt die Schwelle in Richtung 25 Prozent. Auf der Hauptkette von Bitcoin wurde nichts Vergleichbares dokumentiert.
Wie es funktioniert
Selfish Mining verwandelt einen privaten Vorsprung in verschwendeten Strom für alle anderen.
Ein Selfish Miner findet einen Block und sagt nichts. Von dort verzweigt sich das Spiel. Veröffentlicht der Rest des Netzwerks einen Block, während der geheime noch verborgen ist, gibt der Selfish Miner seinen sofort frei und erzwingt ein Rennen zwischen zwei gleich hohen Spitzen, das er gewinnen kann, wenn genügend von der ehrlichen Hashrate zufällig seinen Block zuerst hört. Findet er stattdessen privat einen zweiten Block, hält er nun einen Vorsprung von zwei Blöcken, und er kann ehrliche Miner weiter auf einem bereits dem Untergang geweihten Zweig arbeiten lassen. Wenn sie endlich veröffentlichen, wird das verborgene Paar freigegeben, ihr Block wird verworfen, und ihre Arbeit hat nichts eingebracht.
Der Ertrag ist relativ, nicht absolut. Jeder verworfene ehrliche Block verringert die Gesamtzahl der Blöcke, die das Netzwerk akzeptiert, sodass der Selfish Miner kurzfristig weniger Bitcoin verdient, als er durch ehrliches Spiel verdient hätte. Was sich ändert, ist das Verhältnis: Er erhält ein größeres Stück von einem kleineren Kuchen. Der Kuchen wird dann durch die Schwierigkeitsanpassung wiederhergestellt, die alle 2.016 Blöcke neu berechnet und das Ziel senkt, weil die Blöcke langsam eintrafen. Erst nach dieser Neuberechnung, bis zu zwei Wochen später, zahlt sich die Strategie aus. Wer sie versucht, muss daher zwei Wochen mit verringerten Einnahmen finanzieren, während er sich auf eine Weise verhält, die statistisch von außen sichtbar ist.
Die Schwelle hängt von der Topologie des Netzwerks ab, und das ist der Teil des Papers, den die meisten Zusammenfassungen auslassen. Die relevante Variable ist, welcher Anteil ehrlicher Miner während eines Rennens auf dem Selfish-Block aufbaut. Ist dieser Anteil null, braucht Selfish Mining mehr als ein Drittel der gesamten Hashrate, um sich auszuzahlen. Ist er die Hälfte, genügt ein Viertel. Könnte ein Miner zuverlässig jeden Peer zuerst erreichen, würde der profitable Anteil noch viel weiter sinken, weshalb die Geschwindigkeit der Blockpropagation eine Sicherheitseigenschaft ist und kein Leistungsdetail.
Wo es auftritt
Selfish Mining taucht in der akademischen Literatur und im Design von Relay-Software auf, nicht in der beobachteten Geschichte von Bitcoin.
Drei praktische Tatsachen halten es dort. Die Propagation ist nahezu augenblicklich: Die kompakte Blockweitergabe, hinzugefügt in Bitcoin Core 0.13 im Jahr 2016, sendet eine kurze Skizze eines Blocks, die Peers aus ihren eigenen Mempools rekonstruieren, und dedizierte Relay-Netzwerke schneiden den Rest ab, sodass das Zeitfenster, in dem ein zurückgehaltener Block ein Rennen gewinnt, winzig ist. Pools sind außerdem öffentlich. Nahezu jeder Block trägt in seinem Coinbase-Skript ein Pool-Tag, und ein Pool, der ein seltsames Muster von Freigaben in letzter Sekunde erzeugte, würde schnell an einer Hashrate erkannt, die ihm nicht gehört, da seine Kunden ihre Maschinen innerhalb von Minuten anderswohin richten können.
Der Begriff wird auch mit zwei Nachbarn verwechselt. Block Withholding ist Sabotage gegen einen Pool, bei der ein Teilnehmer Teil-Shares einreicht, aber denjenigen verwirft, der tatsächlich einen Block löst, was den Pool und nicht das Netzwerk kostet. Ein Angriff mit 51 % schreibt bestätigte Historie neu. Selfish Mining tut beides nicht: Es bricht keine Konsensregel, macht keine Zahlung rückgängig und stiehlt Einnahmen von anderen Minern statt Bitcoin von Nutzern. Für jeden, der Bitcoin kauft oder hält, wäre das einzige Symptom eine höhere Rate veralteter Blöcke, und Bestätigungen würden weiterhin genau dasselbe bedeuten wie heute.