Der Weg zu Monero / The way to Monero
If enough people show their interest in an English translation, I would take the time. Please reply with "English" and vote to show your interest.
Wie immer geht es mir darum, den Sachverhalt möglichst einfach zu erklären. Dazu benutze ich viele Grafiken. Präzision überlasse ich den Mathematikern :-).
Quellen und Links finden sich auf meiner Homepage: www.blockchain-nachrichten.com
Pseudo-Anonymität bei Bitcoin
Die Bitcoin Blockchain ist sehr transparent. Über den Explorer Blockchain.info ist alles bis auf die Kontoinhaber ersichtlich:
Am Anfang steht die Coinbase Transaktion. Um 16:40 am 14. November 2014 hat ein US Miner 25 Bitcoins + Gebühren über die IP Adresse 95.246.153.98 geschürft. Da er sich dem F2 Pool angeschlossen hat, wurden die Bitcoins an die Adresse 1KFHE7w8BhaENAswwryaoccDb6qcT6DbYY überwiesen. Der Inhaber der Adresse ist im Explorer nur ersichtlich, da es sich um einen Pool handelt. Diese Bitcoins wurden danach in 5 Transaktionen verwendet, die in einem Block enthalten sind, der durch einen polnischen Miner mit IP Adresse 84.238.140.176 geschürft wurde.
Durch eine Blockchain Analyse ist es meistens nur eine Frage der Zeit, bis feststeht, wer hinter einer Bitcoin Adresse steht. Auch Dienstleister wie Chainanalysis.com bieten solche Blockchain Analysen an. Ross Ulbricht, der Gründer des virtuellen Schwarzmarkts Silk Road wurde durch ein Datenleck in einem Rechenzentrum in Island aufgedeckt, obwohl er das dezentrale Netzwerk TOR benutzt hatte.
Vielleicht sagen Sie sich jetzt, dass es gut ist, dass solche Machenschaften aufgedeckt werden. Aber wie sieht es aus, wenn jemand Ihr Privatleben durchleuchten kann, indem er IHRE Bitcoin Adresse analysiert? Durch Knopfklick werden alle Ein- und Auszahlungen von einer Bitcoin Adresse ersichtlich:
Heutzutage läuft die Gesetzgebung in die Richtung, dass der Eintritt in die Kryptowelt streng reguliert werden soll. Kryptobanken wie Coinbase oder Fidor und Effektenhändler wie Bitcoin Suisse müssen ihre Kunden kennen (KYC = know your customer) und Geldwäscherei bekämpfen (AML =anti money laundering). Innerhalb der Kryptowelt wird dann Anonymität geduldet. Bei Poloniex muss nur eine E-mail Adresse angegeben werden. Zwar wird auch Vor- und Nachname verlangt, jedoch wird dies nicht kontrolliert. Nur, falls mehr als 2000 USD pro Tag abgehoben werden möchten, wird ein Foto mit ans Gesicht gehaltenem Pass (oder ID) verlangt.
Im Folgenden soll aufgezeigt werden, wie Anonymität zurückgewonnen werden kann. Ausgangspunkt sind folgende 3 Transaktionen:
Anna bezahlt ihre Steuern, Beat kauft Medikamente in der Apotheke und Corina konsumiert im Erotikshop. Können die Bitcoin Adressen den Namen zugeordnet werden, weiss der Blockchain Analyst wieviel Steuern Anna bezahlt hat, welche Krankheit Beat und welche Vorlieben Corina hat.
Eine Möglichkeit, die Transaktionen zu anonymisieren ist ein sogenannter Mixer:
Die drei zahlen an die Mixer Adresse 1BitmixerEiyyp3eTLaCpgBbhYERs48qza und der Mixer leitet die durchwirbelten Zahlungen weiter. Die weitergeleiteten Zahlungen (rechts) stehen nicht mehr in der gleichen Reihenfolge. Es sieht nun so aus, als wenn BitMixer die Zahlungen gemacht hätte. Natürlich ist jedem Blockchain Analyst klar, dass Zahlungen an 1BitmixerEiyyp3eTLaCpgBbhYERs48qza nur der Verschleierung dienen. Die Frage stellt sich, ob die eigentliche Zahlung trotzdem noch ausfindig gemacht werden kann. Probieren Sie einmal, nur aufgrund der obigen Grafik zuzuordnen.
Sofort erkennbar ist, dass Corina (bzw. von ihrer Adresse aus) im Erotikshop für 8 BTC konsumiert hat. Der Kauf in der Apotheke und die Zahlung der Steuern können aber nicht mehr zugeordnet werden, da zweimal der gleiche Betrag von 10 BTC bezahlt wurde.
Es würde wohl ziemlich lange dauern, bis genau gleiche Zahlungen gefunden würden. Die Einzahlungen an den Mixer können jedoch auch grösser als 10 BTC sein, womit ein Wechselgeld zurückgeschickt wird:
Normalerweise werden Ein- und Auszahlungen nicht gleichzeitig erfolgen, um die Verschleierung zu verbessern. Das Wechselgeld ist insofern problematisch, da dieser Effekt wieder neutralisiert werden könnte. Im obigen Beispiel ist offensichtlich, dass das Wechselgeld an Anna fliesst. In Realität werden jedoch auch Gebühren an BitMixer bezahlt und diese können wiederum eine zusätzliche Verschleierung bewirken:
Auszahlung = Einzahlung – Wechselgeld – Gebühr
Bei BitMixer beträgt die Minimumgebühr 0.5%. Würden alle diese verwenden, ergibt sich kein zusätzlicher Verschleierungseffekt. BitMixer rät daher, die Gebühr zu erhöhen. Je höher, desto schwieriger die Blockchain Analyse.
Bei dieser Variante muss dem Anbieter vertraut werden. BitMixer könnte sich mit dem Geld aus dem Staub machen. Eine Alternative ist CoinJoin, das zum Beispiel bei JoinMarket eingesetzt wird. Dabei handelt es sich um einen Smart Contract, der automatisch und dezentral abläuft.
Normalerweise stehen bei Bitcoin auf der Input-Seite Bitcoin Adressen des gleichen Nutzers. Dies muss jedoch nicht so sein, was zur Verschleierung ausgenutzt werden kann. CoinJoin, das über eine API an die Bitcoin Blockchain angebunden werden kann, aggregiert Inputs von mehreren Nutzern in einer Transaktion. Da es bereits Analyse Tools gibt, die solche CoinJoin Transaktionen aufspüren, können wir gleich mal über den Bitcoin Explorer eine anschauen:
Das Wechselgeld kann relativ einfach den Einzahlungen zugeordnet werden:
Wohl kaum werden spontan gleichzeitig drei Überweisungen vorgenommen, die exakt dem Wert 70.12179985 BTC entsprechen. Daher bietet JoinMarket monetäre Anreize. Wer Überweisungen im betreffenden Betrag an sich selber vornimmt, wird dafür bezahlt. Natürlich muss der Anbieter dieser Überweisungen unterschiedliche Sender- und Empfängeradressen angeben.
DASH
Bei der DASH Blockchain ist eine verbesserte CoinJoin App direkt ins Protokoll eingebaut:
Masternodes, sind spezielle Knoten, die sich nicht als Miner betätigen, sondern andere Funktionen übernehmen. Eine davon ist die Mixfunktion. Um eine Masternode zu betreiben, müssen 1000 DASH hinterlegt werden, was zum heutigen Kurs stolzen 15000 USD entspricht. Für die Dienstleistungen bekommen die Masternodes einen Teil des Blockentgelts und der Gebühren von den Minern. Bei DASH müssen nicht Transaktionen mit gleichen Beträgen gefunden werden, sondern es werden Denominationen festgelegt. Über PrivateSend können nur Beträge von 100, 10, 1 und 0.1 DASH überwiesen werden, womit das Matching vereinfacht wird. Um eine Überweisung von 110 DASH zu tätigen, müssen zwei Transaktionen im Wert von 100 DASH und 10 DASH gemacht werden. Hier ein Beispiel:
Die 1 am Ende entspricht der Transaktionsgebühr.
Das Pfand bewirkt einen gewissen Schutz vor Attacken. Trotzdem könnte Folgendes passieren:
Falls die NSA genügend Masternodes besetzten, könnten sie eine umfangreiche Blockchain Analyse starten. Deshalb durchlaufen Transaktionen bei DASH mehrere Masternodes.
Ein anderes Problem bei DASH ist, dass die Mixfunktion freiwillig ist:
Wenn Sie die NSA wären, welche Transaktionen würden Sie sich zuerst vorknüpfen?
Genau, diejenigen, die anscheinend etwas zu verbergen haben und daher die Mixfunktion wählen. Ausserdem kann die NSA die Effizienz der Blockchain Analyse noch erhöhen, indem sie selber viele Transaktionen mit PrivateSend vornimmt:
Anna dachte, ihre Überweisung sei sicher. Die NSA sieht aber sofort, welchen Betrag Anna an die Steuerverwaltung überwiesen hat.
Je mehr Transaktionen über PrivateSend versenden werden, desto teurer wird diese Attacke und desto sicherer ist DASH.
Monero
Monero geht bei der Verscheierung viel weiter und ist meiner Meinung nach eine Liga für sich. Die Mixfunktion ist Pflicht und das System dezentraler, da es nur Miner, jedoch keine Masternodes gibt. Dadurch werden Transaktionen aber langsamer.
Gemixt werden bei Monero nicht die Münzen (XMR), sondern Sender-Adressen. Als Beispiel wird Anna`s Zahlung an die Steuerbehörden herangezogen. Die Monero Software pickt nun beliebige andere Adressen aus der Monero Blockchain und mixt daraus eine sogenannte Ringsignatur.
Der Miner überprüft die Ringsignatur, kann aber nur feststellen, ob einer der dreien berechtigt ist, die XMR auszugeben; er weiss aber nicht wer. Wie kann ein Miner dann aber überprüfen, ob XMR nicht doppelt ausgegeben werden?
Dazu müssen sogenannte Stealth-Adressen aus der Sender- und Empfänger Adresse generiert werden. Jede Stealth Adresse kann nur einmal verwendet werden und beinhaltet einen geheimen gemeinsamen Punkt (GGP) auf der elliptischen Kurve. Dieser GGP ist dem Empfänger unbekannt, aber er kann mit seinem Private Key nach an ihn adressierten Stealth Adressen suchen. Der GGP lässt sich wie folgt berechnen (G = Generator Point auf der elliptischen Kurve):
Daraus lässt sich die Stealth Adresse der Steuerverwaltung ableiten:
Anna`s Monero Wallet berechnet folglich aus ihrem Private Key (kA) und dem Public Key der Steuerverwaltung (KS) den Punkt GGP und daraus über eine Hashfunktion die Stealth Adresse.
Das Wallet der Steuerverwaltung führt dann mit sämtlichen Public Keys der Monero Datenbank (Ki) folgende Umformungen durch:
Jetzt wird die Monero Datenbank nach diesen potentiellen Stealth Adressen durchforstet. Falls gefunden, wird diese Transaktion dem Wallet der Steuerverwaltung zugefügt. Damit die Steuerverwaltung weiss, wer die Transaktion geschickt hat, kann eine Payment ID an die Transaktion angehängt werden.
Den Private Key der Stealth Adresse erhalten wird durch "Division" der Stealth Adresse mit G:
Natürlich ist die "Division" mit G praktisch unmöglich, sonst wäre die ganze Kryptografie überflüssig. Aber das Wallet der Steuerverwaltung kennt den Private Key (kS) und den gefundenen GGPn.
Würde Anna im folgenden Jahr ihre Steuern von derselben Monero Adresse überweisen, entstände die gleiche Stealth Adresse. Dies muss vermieden werden, um doppelte Ausgabe zu verhindern. Darum wird in der Hashfunktion noch ein Index (i) eingebaut.
Bei der zweiten Überweisung stünde dann:
Da die Hashfunktion bei kleinsten Veränderungen einen komplett anderen Wert ergibt, gibt es keinen Hinweis auf die erste Stealth Adresse. Jede Stealth Adresse ist einmalig bzw. geht die Wahrscheinlichkeit, dass es je zwei gleiche gibt gegen null.
Um doppelte Ausgabe von XMR zu verhindern, wird aus dem Private Key (kStealth) ein sogenannter Image Key berechnet und in die Transaktion geschrieben. Dieser berechnet sich folgendermassen:
Bei der Verifizierung von Transaktionen kontrolliert der Miner, ob das Image nicht schon einmal verwendet wurde.
Nachfolgend wird eine Transaktion aus dem Monero Explorer analysiert:
Links stehen 5 Inputs mit entsprechendem Key Image. Es ist unbekannt, ob die Überweisungen von einer oder verschiedenen Personen aufgegeben wurden. Jede Input Stealth Adresse wird hier mit 3 weiteren gemixt (Mixin = 3). Deshalb brauchen die Outputs nicht mehr wie bei DASH gleiche Beträge aufzuweisen, sondern werden einfach der Grösse nach aufgelistet.
Monero geht aber noch weiter. Sender- und Empfänger Adresse können zwar nicht mehr ausfindig gemacht werden. Jedoch kann ein Blockchain Analyst allein aus den Beträgen trotzdem noch gewisse Informationen erhalten. Deshalb hat Monero mit dem letzten Software Upgrade sogenannte CT Ringsignaturen eingeführt. CT steht für "Confidential Transaction". Damit sind nicht einmal mehr die Beträge sichtbar. Auf Ringsignaturen gehe ich in einem späteren Blog ein. Hier soll nur ein Beispiel aus dem Monero Explorer aufgezeigt werden:
Die Beträge sind überall gleich null gesetzt. Diese Option ist momentan noch freiwillig und reduziert damit etwas die Verschleierung. Mit dem nächsten Upgrade werden CT Ringsignaturen aber Pflicht.
Anfangs wurde gezeigt, welche Informationen über den Bitcoin Explorer frei zur Verfügung stehen, wenn die Bitcoin Adresse eingegeben wird. Schauen Sie doch mal nach, was für Informationen Sie erhalten, wenn meine Monero Adresse in den Monero Explorer eingegeben wird:
46T9iYT8owaeGdSnp7Z6QBTbETGffbggDFYbPMhoxJDUH9BW5MLEqHSiqqYjdFkWnt85KoxcrFvuMSavSiqEG3dwG1rjDHu
Das genügt Monero aber immer noch nicht. Beispielsweise könnte die chinesische Regierung weiterhin feststellen, von welcher IP Adresse sich jemand bei Monero eingeloggt hat. In Zukunft soll Monero mit dem anonymen Internet Netzwerk I2P gekoppelt werden. Dieses ist dezentraler als TOR. Bei letzterem könnte passieren, dass zufälligerweise von der NSA besetzte Server die Schnittstellen Monero-TOR (Eintritt) und TOR-Monero (Austritt) besetzen. Da I2P dezentraler aufgestellt ist, geht diese Wahrscheinlichkeit dort gegen null. Regierungen können dann nicht einmal mehr feststellen, ob jemand das Monero Wallet geöffnet hat.
Damit trotzdem gerichtliche Erlasse durchgesetzt oder Revisionen durchgeführt werden können, gibt es bei Monero auch noch einen Private und Public View Key:
Der Private View Key wird vom Wallet benutzt, um die Monero Blockchain zu durchforsten und der Public View Key kann weitergereicht werden.
Die Monero Adressen ergeben sich aus einer Kombination von Private Key und Private View Key.
Super Beitrag, vielen Dank dafür
Danke auch.
Großes Lob - ein qualitativ sehr hochwertiger Beitrag. Tolle Grafiken, klare Sprache, reichhaltige Informationen. Upvote, Follow und Chapeau:
kann ich nur zustimmen
Vielen Dank für die Blumen ;-).
Super Erklärung vielen vielen Dank !!!