Im März wurde Monero (XMR) das Opfer einer Spamwelle. Dahinter stand ein spezifischer Angriff, der versuchte, die Anonymität von Ringsignaturen zu brechen. Wir erklären, was geschah.
Im Lauf des Märzes gab es einen Spam-Angriff auf den Privacycoin-Monero, der offenbar versuchte, die Transaktionen etwas weniger anonym zu machen.
In gewisser Weise stellte die Spam-Welle den bisher ausgefeiltesten Versuch dar, die Kryptowährung mit der ausgefeiltesten Anonymität zu brechen. Wir sind also im technologischen Krieg um Privatsphäre auf dem höchsten Gipfel angelangt, wo sich auch die Widersacher, Angreifer und Verteidiger, mit Hochachtung begegnen.
Anzahl täglicher Monero-Transaktionen seit Ende Dezember 2023 nach BitInfoCharts.com
Für uns als Laien wird es nicht ganz einfach, nachzuvollziehen, was geschah – aber ein Fest ist es dennoch. Auf der Oberfläche geschah das folgende: Anfang März sprang die Anzahl von Standard-Transaktionen von etwa 15.000 am Tag auf mehr als 100.000, und blieb fast den ganzen Monat über auf diesem Niveau. Die Größe der Blöcke, die alle zwei Minuten gefunden werden, erreichte einen Schwellenwert von 300 Kilobyte, woraufhin ein Mechanismus der dynamischen Anpassung griff, der die Größe der Blöcke sachte erhöhte.
In der Monero-Community vermutet man, dass es sich um einen „Black Marble“-Angriff handelte, wie ihn der Entwickler Rucknium beschreibt. Um ihn im Ansatz zu verstehen, muss man wissen, dass Monero sogenannte Ringsignaturen verwendet.
Der Unterschied zwischen Transaktionen bei Bitcoin und Monero
Wir müssen hier ein kleines Stückchen aushoilen: Eine Bitcoin-Transaktion nimmt einen Input – einen sogenanntes UTXO (unspent transaction output) – und sendet ihn als Output an einem Empfänger. Durch eine Signatur beweist der Sender, Besitzer des Inputs zu sein; die Kette der signierten Inputs verbindet die Adressen, wodurch man der Spur des Geldes gut folgen kann.
Bei Monero wird diese Kette durchbruchen. Ein Sender verwendet nicht einen einzelnen Input, sondern einen „Ring“ an gültigen Inputs. Unter diesen ist sein eigener, aber auch weitere, die er zufällig auf der Blockchain auswählt. Mit seiner Signatur beweist der Sender lediglich, dass er den Schlüssel für einen dieser Inputs hat, aber nicht, für welchen. Die Ringgröße gibt an, wie viele Inputs er verwendet. Sie ist derzeit standardmäßig 16.
Eine Monero-Transaktion: auf der Seite der Inputs findet man 16 Mitglieder der Ringgruppe. Nur einer davon versendet tatsächlich Geld.
Die Ringsignaturen machen es mehr oder weniger unmöglich, in einer Transaktion Sender und Empfänger zu identifizieren. Sie sind allerdings nur ein Teil des Privacy-Sets von Monero: Stealth Adressen sorgen dafür, dass die Adresse des Empfängers unbekannt bleibt, Zero Knowledge Proofs verbergen den versendeten Betrag.
In diesem Set sind Ringsignaturen das schwächste Glied. Das liegt auch mit am Black Marble Angriff, den man im März beobachten konnte.
Schwarzer Marmor
Wenn man versteht, wie Ringsignaturen funktionieren, ist der Black Marble Angriff leicht zu begreifen: Man spamt die Blockchain mit Transaktionen, um möglichst viele Outputs zu besitzen. Diese kann man dann in den Ringen anderer Transaktionen ausschließen, was deren effektive Ringgröße reduziert.
Ein Vorteil des Angriffs ist, dass der Algorithmus, mit dem einen Wallet den Ring bildet, neuere Outputs bevorzugt.
Der Name des Angriffs kommt daher, dass das Ausschlussverfahren daran erinnert, einen schwarzen Marmor durch hypergeometrische Verteilungen zu zeichnen. Die konkrete Formel ist zu viel Mathematik für diese Stelle, aber sie gibt an, wie hoch die Chance eines Angreifers ist, andere Ringe soweit zu verkleinern, dass man den Transaktionsstrom einigermaßen nachvollziehen kann.
So kann man kalkulieren, wie hoch die effektive Ringgröße während des Spam-Angriffs war. Wie der Monero-Forscher Rucknium zeigt, sank sie relativ rasch von 16 auf fünf bis sechs, während der Angreifer 75 Prozent aller frischen Outputs besaß.
Effektiv konnte der Angreifer also mit einer Wahrscheinlichkeit von etwa eins zu fünf erraten, welches der wahre Input einer Transaktion war. Monero hat, mit anderen Worten, weitgehend gehalten.
Künftige Szenarien
An sich könnte man sich jetzt zurücklehnen und ausatmen. Rucknium simuliert aber noch die langfristigen Szenarien. Was passiert etwa, wenn der Angreifer nicht nur 300 Kilobyte füllt, sondern auch 500, 1000 oder 2000? Halten die Ringsignaturen dann immer noch?
Dabei zeigt sich, dass bei der aktuellen Standard-Ringgröße von 16 die effektive Ringgröße schon ab 500 Kilobyte auf 4 und ab etwa 1000 auf zwei sinkt. Ab nun könnte ein Angreifer bei vielen Transaktionen sicher und bei noch mehr mit brauchbarer Wahrscheinlichkeit erraten, wer sie versendet hat.
Chart der nominellen und effektiven Ringgröße abhängig von der Stärke eines Black Marble Angriffs. Aus dem Paper von Rucknium.
Würde man dagegen die Ringgröße auf 40 oder 60 anheben, läge sie auch bei 2000 Kilobyte an Spam je Block noch im größtenteils sicheren Bereich. Dies hätte aber den Nachteil, dass die Transaktionen dadurch erheblich größer werden würden.
Eines der Probleme mit dem Black Marble Angriff ist, dass er relativ günstig ist. Laut Rucknium kostete die gesamte Spamwelle nur zwischen 61,5 und 81,3 Monero (XMR), je nachdem, welche Gebührenmodelle der Angreifer verwendete (was man nicht exakt feststellen kann, da Monero anonym ist). Das sind etwa 6500-9000 Euro, was für einen 23-tägigen Angriff nicht wirklich viel ist.
Allerdings dürften die Kosten für einen weitergehenden Angriff erheblich teurer werden. Denn sobald die 300-Kilobyte-Schwelle je Block geknackt ist, steigen die Gebühren deutlich an.
Probleme für die Nutzer
Die Ringsignaturen haben den Angriff also relativ gut überstanden. Man kann sie theoretisch brechen, doch das nur temporär, und dann muss man viel Geld investieren.
Dennoch überlegt die Monero-Community schon jetzt, die Ringgröße auf 64 zu erhöhen. Zudem hat sie mit „Full Chain Membership Proofs“ bereits ein Konzept zur Hand, das die Ringsignaturen ersetzen kann, und das nun, nach dem Angriff, früher als gedacht zum Einsatz kommt, womöglich bereits in sechs bis zwölf Monaten.
Eine unangenehmere Folge des Angriffs könnte die Nutzbarkeit von Monero betreffen. Viele User sahen ihre Transaktionen im Mempool feststecken; es kam fast den ganzen Monat über zu erheblich verzögerten Bestätigungen, die teilweise auf bis zu zwei Stunden eskalierten.
Noch unangenehmer war wohl, dass die meisten Remote Nodes hoffnungslos überlastet waren. An diese docken User mit ihrer Wallet an, die keinen Full Node haben. Für sie war Monero zwischenzeitlich fast schon unbenutzbar.
Sowohl das Problem mit den Remote Nodes als auch den verzögerten Transaktionen lässt sich durch eine bessere Software lösen, etwa indem man die Gebührenkalkulation verbessert oder den Mempool effektiver abfragt.
Schwieriger zu lösen ist aber ein anderes Problem: Der Angreifer hat für einige tausend Euro mehr als drei Gigabyte an Outputs geschaffen – die nie wieder gelöscht werden, da es keinen Konsens darüber gibt, wann ein Output wirklich verwendet wurde. So lässt sich die Monero-Blockchain mit relativ moderaten Beträgen soweit aufblähen, dass so gut wie jede Operation auf ihr massiv beeinträchtigt wird.
Privatsphäre ist eben hart und umkämpft. Sie ist kein Zustand, den man einmal erreicht hat, sondern den man fortwährend erhalten muss.