Inhalt
Einführung
Was sind vertrauliche Transaktionen?
Ein Überblick über die beteiligte Kryptographie
Was können vertrauliche Transaktionen leisten?
Abschluss
Einführung
Es wird oft als entscheidend für das Funktionieren einer Blockchain angesehen, dass das System transparent ist. Das bedeutet, dass jeder Knoten im Netzwerk in der Lage sein muss, eine Kopie zu speichern und zu überprüfen, ob keine Regeln verletzt wurden. Für viele verteilte Ledger kann jeder einen Online-Block-Explorer hochladen, der es ihm ermöglicht, Blöcke, Transaktionen und Adressen zu durchsuchen.
Aus datenschutzrechtlicher Sicht ist dies keine ideale Situation. In einem System wie Bitcoin kann jede Transaktion mit der vorhergehenden verknüpft werden. Münzen sind technisch gesehen nicht fungibel, das heißt, sie können an bestimmte Transaktionen gebunden sein. Niemand kann Sie daran hindern, Bitcoins zu senden, aber Ihre Transaktion kann abgelehnt werden, wenn die darin enthaltenen Münzen zuvor über eine „schwarze Liste“-Adresse weitergeleitet wurden.
Im schlimmsten Fall könnte die mangelnde Fungibilität tiefgreifende Auswirkungen auf die Grundlagen des Systems haben. „Saubere“ Münzen könnten einen Aufschlag gegenüber ihrem Wert entwickeln, während alte Münzen aufgrund ihrer Geschichte an Wert verlieren würden.
Bei Bitcoin wird der Datenschutz oft überbewertet. Es können nicht nur die Coins verfolgt werden, sondern auch die Nutzer. Diese genießen eine „Pseudonymität“ (anstelle von Namen sind öffentliche Adressen sichtbar), die nicht ohne Mängel ist. Ausgefeilte Analysetechniken können mit zunehmender Präzision Adressen aggregieren, um Entitäten im Netzwerk zu deanonymisieren.
Einer der Aktualisierungsvorschläge, um Transaktionen wirklich privat zu machen, ist „Vertrauliche Transaktionen“.
Was sind vertrauliche Transaktionen?
Vertrauliche Transaktionen (Confidential Transactions, CT) wurden erstmals 2013 von Adam Back, CEO von Blockstream, angesprochen; und später erweiterte Gregory Maxwell – Bitcoin-Entwickler – seine Analyse. Maxwell würde die im vorherigen Abschnitt erwähnten Probleme hervorheben (d. h. Fungibilität und schwache „Pseudonymität“) und eine Lösung vorschlagen. Die gesendeten Beträge könnten vom Rest des Netzwerks abgeschirmt werden, sodass nur die an der Transaktion beteiligten Parteien diese Daten kennen könnten.
Unter normalen Umständen (bei öffentlich sichtbaren Transaktionen) kann ein Knoten leicht überprüfen, ob der empfangene Betrag den gesendeten Betrag nicht übersteigt. Wenn Alice Bob 0,3 BTC senden möchte, nimmt sie einen nicht ausgegebenen Output (z. B. 1 BTC) und teilt ihn in zwei Teile: 0,3, die sie an Bob sendet, und 0,69, die sie an sich selbst zurücksendet (die Differenz, die fehlt). entspricht dem Abzug der Bergprovision).
Für die anderen Knoten ist dies einfache Algebra: 1 ist größer als 0,3 + 0,69, die Signaturen sind alle korrekt und Alices Eingaben wurden noch nirgendwo anders ausgegeben, daher muss die Transaktion gültig sein. Wenn die Mengen jedoch verschleiert werden, sind die Dinge nicht mehr so trivial. Wie kann man überhaupt beurteilen, ob eine unbekannte Größe gleich oder größer als die Summe zweier anderer unbekannter Größen ist?
Ein Überblick über die beteiligte Kryptographie
Um Daten zu verbergen, ist eine Verschlüsselung erforderlich. Herkömmliche Methoden sind jedoch mit der Aufbewahrung von Dokumenten in einem Tresor vergleichbar: Einmal darin eingeschlossen, sind sie unbrauchbar, bis der Tresor entfernt wird. Damit Confidential Transactions funktioniert, brauchen wir einen digitalen Safe, der seinen Inhalt nicht preisgibt, dessen Eigenschaften aber von Außenstehenden überprüft werden können.
Die Antwort auf diese Frage liegt in der homomorphen Verschlüsselung, genauer gesagt in einem Schema namens „Pedersen Commitment“. Diese Art der Verschlüsselung ermöglicht es einem Außenstehenden, für verschiedene Zwecke Vorgänge an verschlüsselten Daten (die er nicht sehen kann) durchzuführen.
Ein gewöhnlicher Hash kann zum Übertragen von Daten verwendet werden, die Sie später offenlegen möchten. Stellen Sie sich vor, Sie möchten in sozialen Netzwerken einen Wettbewerb ausschreiben, bei dem jeder, der Ihre Lieblingsbörse errät, einen Preis von 0,01 BTC gewinnt. Die Teilnehmer sind möglicherweise skeptisch, ob Sie die Antworten nach Abschluss des Wettbewerbs sehen können und eine Börse auswählen können, die nicht erwähnt wurde.
Was Sie tun könnten, wäre, Ihren Followern einen Hash zur Verfügung zu stellen: eine Folge scheinbar zufälliger Zahlen und Zeichen, die einem bestimmten Eintrag zugeordnet sind. Sie leiten Ihren Austausch durch eine Funktion, um ein bestimmtes Ergebnis zu erhalten. Wir veranschaulichen es mit dem SHA256-Algorithmus:
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191Wenn Sie sich das ansehen, haben Sie keine Ahnung, was die Eingabe war. Sie können die Funktion auch nicht umkehren, um sie zu erhalten. Wenn Sie jedoch wissen, dass der Eintrag „Binance“ war, können Sie leicht überprüfen, ob Ihr Hash mit dem oben genannten übereinstimmt. Auf diese Weise können Ihre Follower sicher sein, dass Sie Ihre Antwort am Ende des Wettbewerbs nicht ändern, da dies zu einem völlig anderen Ergebnis führen würde.
Realistisch gesehen ist dies jedoch nicht sehr sicher. Während Ihre Follower den Algorithmus nicht zurückentwickeln können, können sie eine Liste potenzieller Trades erstellen und jeden einzelnen Handel hashen, bis sie eine Übereinstimmung erhalten. Wir können die Wahrscheinlichkeit dafür verringern, indem wir den Daten, die wir hashen wollen, einige zufällige Daten, sogenannte Blindfaktoren, hinzufügen.
Wenn wir „Binance ist meine Lieblingsbörse, ich liebe sie mehr als jede andere Börse 2#43Wr“ eingeben, wird es für einen Gegner viel schwieriger zu erraten (und bei 0,01 BTC ist es sicherlich unwahrscheinlich, dass jemand es versuchen wird).
Eine Pedersen-Zusage ermöglicht es uns, die Beiträge hinter den Zusagen hinzuzufügen. Wie Maxwell veranschaulicht:
C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)Dabei ist BF der Verblindungsfaktor und D die Daten.
Von hier aus gibt es noch ein paar weitere Schritte, die Kryptografie mit elliptischen Kurven und Bereichstests beinhalten, aber die Grundidee ist, dass ein Benutzer eine starke Bindung an seine Adresse hat. Beim Senden von Geldern werden zwei zusätzliche Verpflichtungen erstellt (eine für die an den Benutzer zurückzusendende Änderungsadresse und eine für die Zieladresse).
Niemand weiß, wie viel gesendet wird, aber er kann überprüfen, ob sich die Austausch- und Zielverpflichtungen (die linke Seite der Maxwell-Gleichung) zur Quelladresse (die rechte Seite der Gleichung) addieren. Wenn dies korrekt ausgewertet wird, ist die Transaktion des Benutzers gültig, da nachgewiesen werden kann, dass die Eingaben den Ausgaben entsprechen.
Was können vertrauliche Transaktionen leisten?
Wenn vertrauliche Transaktionen in Bitcoin implementiert würden, würden wir uns über ein viel privateres System freuen. Sowohl Ein- als auch Ausgänge würden vom breiteren Netzwerk ausgeblendet und Einträge im Hauptbuch würden verschleiert, aber die Knoten wären weiterhin in der Lage, ihre Authentizität zu überprüfen. Mit dieser massiven Verbesserung der Privatsphäre können Bitcoins effektiv fungibel werden, da die On-Chain-Analyse nicht mehr die Geschichte einer bestimmten Einheit offenlegt.
Ob vertrauliche Transaktionen in das Protokoll integriert werden, ist derzeit nicht wahrscheinlich. Mit dieser zusätzlichen Funktionalität sind Transaktionen viel größer als Standardtransaktionen: Angesichts des begrenzten Blockplatzes würde dies die Nachfrage nur erhöhen. Außerdem müsste eine Mehrheit der Teilnehmer einer Änderung des Kodex zustimmen, eine Aufgabe, die sich traditionell als schwierig erwiesen hat.
Abschließend
Bei vertraulichen Transaktionen gab es einige Iterationen in anderen Kryptowährungen und Bitcoin-Sidechains. Monero verwendet sie beispielsweise in Kombination mit Konstrukten namens Ringsignaturen, um Anonymität und Fungibilität zu erreichen. Liquid Sidechain implementiert sie für mehr Privatsphäre und MimbleWimble erweitert sie auf dieselben Endpunkte.
Für die Vorteile, die sie mit sich bringen, haben vertrauliche Transaktionen den Nachteil, dass sie einen größeren Fußabdruck erfordern. Kryptowährungen haben oft Probleme mit der Skalierbarkeit und Leistung auf der Basisebene, und größere Transaktionsgrößen sind nicht für jedermann attraktiv. Allerdings halten es Befürworter des Datenschutzes für wichtig, die Transaktionsbeträge zu verbergen und den Teilnehmern zu ermöglichen, dass Kryptowährungen tatsächlich als fungibles Geld dienen.



