Einführung

Es wird oft als entscheidend für das Funktionieren einer Blockchain angesehen, dass das System transparent ist. Dies bedeutet, dass jeder Knoten im Netzwerk eine Kopie speichern und überprüfen kann, dass keine Regeln verletzt werden. Für viele verteilte Ledger kann jeder einen Online-Block-Explorer laden, mit dem er Blöcke, Transaktionen und Adressen durchsuchen kann.

Aus Datenschutzgründen ist dies nicht ideal. In einem System wie Bitcoin kann jede Transaktion mit einer vorherigen verknüpft werden. Münzen sind technisch gesehen nicht fungibel, was bedeutet, dass jede an bestimmte Transaktionen gebunden sein kann. Niemand kann Sie daran hindern, Bitcoins zu senden, aber er kann die Annahme Ihrer Transaktion verweigern, wenn diese Münzen zuvor über eine Adresse auf der schwarzen Liste weitergeleitet wurden.

Im schlimmsten Fall könnte ein Mangel an Fungibilität tiefgreifende Auswirkungen auf die Grundlagen des Systems haben. Saubere Münzen können einen Aufschlag erzielen, während ältere Münzen aufgrund ihrer Geschichte weniger wertvoll wären.

Der Datenschutz bei Bitcoin wird oft überbewertet. Es können nicht nur Münzen zurückverfolgt werden, sondern auch Benutzer. Sie genießen Pseudonymität (öffentliche Adressen sind anstelle von Namen sichtbar), aber dies ist nicht ohne Mängel. Ausgefeilte Analysetechniken können mit zunehmender Genauigkeit Adressen gruppieren, um Netzwerkeinheiten zu deanonymisieren.

Ein vorgeschlagenes Upgrade, um Transaktionen wirklich privat zu machen, ist „Vertrauliche Transaktionen“.


Was sind vertrauliche Transaktionen?

Confidential Transactions (CT) wurden erstmals 2013 von Adam Back, CEO von Blockstream, diskutiert und später vom Bitcoin-Entwickler Gregory Maxwell erweitert. Maxwell skizzierte die im ersten Abschnitt genannten Probleme (Fungibilität und schwache Pseudonymität) – und schlug eine Lösung vor. Überwiesene Beträge könnten vom breiteren Netzwerk abgeschirmt werden, sodass nur die Transaktionsparteien wüssten, wie viel gesendet wurde.


Normal transactions vs Confidential transactions


Unter normalen Umständen (bei öffentlich einsehbaren Transaktionen) kann ein Knoten leicht überprüfen, ob der empfangene Betrag den gesendeten Betrag nicht übersteigt. Wenn Alice 0,3 BTC an Bob senden möchte, nimmt sie eine nicht ausgegebene Ausgabe (nennen wir sie 1 BTC) und teilt sie in zwei Teile auf: 0,3 werden an Bob gesendet und 0,69 werden an sie zurückgesendet (wobei der Rest verfällt). eine Bergbaugebühr).

Dies ist eine einfache Algebra für andere Knoten: 1 übersteigt 0,3 + 0,69, die Signaturen sind alle korrekt und Alices Eingaben wurden noch nicht an anderer Stelle ausgegeben, daher muss die Transaktion gültig sein. Wenn Beträge jedoch geblendet werden, sind die Dinge nicht so trivial. Wie kann man überhaupt beurteilen, ob ein unbekannter Betrag der Summe zweier anderer unbekannter Beträge entspricht oder diese übersteigt?


Ein Überblick über die beteiligte Kryptographie

Um Daten zu verbergen, ist eine Verschlüsselung erforderlich. Herkömmliche Methoden ähneln jedoch dem Einlegen von Dokumenten in einen Safe: Sobald sie darin eingeschlossen sind, sind sie unbrauchbar, bis sie entfernt werden. Damit Confidential Transactions funktioniert, brauchen wir einen digitalen Safe, dessen Inhalt nicht preisgegeben wird, dessen Eigenschaften aber von Außenstehenden überprüft werden können.

Die Antwort liegt speziell in der homomorphen Verschlüsselung, in einem Schema namens Pedersen-Commitment. Diese Art der Verschlüsselung ermöglicht es einem Außenstehenden, für verschiedene Zwecke Operationen an verschlüsselten Daten (die er nicht sehen kann) durchzuführen.

Ein regulärer Hash kann verwendet werden, um Daten zu übertragen, die Sie später offenlegen möchten. Angenommen, Sie möchten in den sozialen Medien einen Wettbewerb ausschreiben, bei dem derjenige, der Ihre Lieblingsbörse errät, einen Preis von 0,01 BTC gewinnt. Die Teilnehmer könnten skeptisch sein, weil man sich nach Ende des Wettbewerbs einfach die Antworten ansehen und eine Börse auswählen könnte, die noch 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 einer bestimmten Eingabe zugeordnet sind. Sie leiten Ihren Austausch durch eine Funktion, um eine bestimmte Ausgabe zu erhalten. Wir veranschaulichen es mit dem SHA256-Algorithmus:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Wenn 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 die Eingabe „Binance“ war, können Sie leicht überprüfen, ob der Hash mit dem oben aufgeführten übereinstimmt. Auf diese Weise haben Ihre Follower die Gewissheit, dass Sie Ihre Antwort am Ende des Wettbewerbs nicht ändern werden – dies würde zu einem völlig anderen Ergebnis führen.

Realistisch betrachtet ist das allerdings nicht sehr sicher. Ihre Follower können den Algorithmus zwar nicht zurückentwickeln, aber sie können eine Liste möglicher Austausche erstellen und jeden einzelnen hashen, bis sie eine Übereinstimmung finden. Wir können die Wahrscheinlichkeit dafür verringern, indem wir den Daten, die wir hashen, einige zufällige Daten, einen sogenannten Blinding-Faktor, 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 deutlich schwieriger zu erraten (und für 0,01 BTC ist es sicherlich unwahrscheinlich, dass irgendjemand es überhaupt versuchen würde).

Eine Pedersen-Verpflichtung ermöglicht es uns, die Inputs hinter den Verpflichtungen hinzuzufügen. Wie Maxwell veranschaulicht:


confidential transaction equation


C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

Dabei ist BF der Verblindungsfaktor und D die Daten


Von hier aus sind noch einige weitere Schritte erforderlich, die Kryptografie mit elliptischen Kurven und Bereichsnachweise umfassen, aber die Grundidee besteht darin, dass ein Benutzer eine Pedersen-Verpflichtung für 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 man kann überprüfen, ob die Wechselgeld- und Zielzusagen (die linke Seite der Maxwell-Gleichung) der Absenderadresse (die rechte Seite der Gleichung) entsprechen. Wenn dies richtig ausgewertet wird, ist die Transaktion des Benutzers gültig, da nachgewiesen werden kann, dass die Eingaben den Ausgaben entsprechen.


Was können vertrauliche Transaktionen bewirken?

Wenn vertrauliche Transaktionen in Bitcoin implementiert würden, würden wir uns über ein weitaus privateres System freuen. Sowohl Ein- als auch Ausgänge würden vom breiteren Netzwerk verschleiert, und Einträge im Hauptbuch würden verschleiert – aber Knoten könnten immer noch ihre Authentizität überprüfen. Mit dieser massiven Verbesserung der Privatsphäre könnten Bitcoins effektiv fungibel gemacht werden, da die Kettenanalyse den Verlauf nicht mehr offenlegt einer bestimmten Einheit.

Ob vertrauliche Transaktionen in das Protokoll integriert werden, scheint derzeit unwahrscheinlich. Mit dieser zusätzlichen Funktionalität sind die Transaktionen viel größer als die Standardtransaktionen – angesichts des begrenzten Blockspeichers würde dies die Nachfrage nur erhöhen. Außerdem müsste die Mehrheit der Teilnehmer einer Änderung des Codes zustimmen, eine Aufgabe, die sich traditionell als schwierig erwiesen hat.


Abschließende Gedanken

Confidential Transactions hat einige Iterationen in anderen Kryptowährungen und Bitcoin-Sidechains erlebt. Monero verwendet sie beispielsweise in Kombination mit Konstrukten namens Ringsignaturen, um Anonymität und Fungibilität zu erreichen. Die Liquid-Sidechain implementiert sie für mehr Privatsphäre und MimbleWimble erweitert sie zu denselben Zwecken.

Aufgrund der Vorteile, die sie mit sich bringen, gehen vertrauliche Transaktionen mit einem größeren Fußabdruck einher. Kryptowährungen haben oft Probleme mit der Skalierbarkeit und dem Durchsatz auf der Basisebene, und größere Transaktionsgrößen sind nicht für jeden attraktiv. Allerdings halten es Befürworter des Datenschutzes für unerlässlich, Transaktionsbeträge und Teilnehmer zu verbergen, damit Kryptowährungen tatsächlich als fungibles Geld dienen können.