Inhalt
Einführung
Was sind vertrauliche Transaktionen?
Ein Überblick über verwandte Kryptographie
Was können vertrauliche Transaktionen bewirken?
Schlussbetrachtungen
Einführung
Systemtransparenz wird oft als entscheidender Faktor für das Funktionieren einer Blockchain angesehen. Dies bedeutet, dass jeder Knoten im Netzwerk eine Kopie speichern und überprüfen kann, ob keine Regeln verletzt werden. Bei vielen Distributed Ledgern kann jeder einen Online-Block-Explorer verwenden, der es ihm ermöglicht, nach Blöcken, Transaktionen und Adressen zu suchen.
Aus Sicht der Privatsphäre ist dies nicht ideal. In einem System wie Bitcoin kann jede Transaktion mit einer vorherigen verknüpft werden. Währungen sind technisch gesehen nicht fungibel, was bedeutet, dass jede Währung an bestimmte Transaktionen gebunden sein kann. Niemand kann Sie daran hindern, Bitcoin zu senden, aber er kann Ihre Transaktion ablehnen, wenn diese Münzen zuvor über eine Adresse auf der Ablehnungsliste weitergeleitet wurden.
Im schlimmsten Fall kann die fehlende Fungibilität schwerwiegende Auswirkungen auf die Grundfesten des Systems haben. „Saubere“ (ehrliche) Münzen können wertvoll sein, während ältere aufgrund ihrer Geschichte weniger wertvoll wären.
Was den Datenschutz betrifft, sind Benutzer des Bitcoin-Netzwerks oft einer großen Gefährdung ausgesetzt. Es können nicht nur Coins verfolgt werden, sondern auch die Nutzer selbst. Sie verwenden Pseudonyme (sie geben keine Namen, sondern nur öffentliche Adressen bekannt), dies garantiert jedoch nicht Ihre Privatsphäre. Es gibt ausgefeilte Analysetechniken, mit denen Adressen genau gruppiert werden können, um Entitäten in einem Netzwerk zu identifizieren.
Vertrauliche Transaktionen stellen eine vorgeschlagene Aktualisierung dar, um Transaktionen wirklich privat zu machen.
Was sind vertrauliche Transaktionen?
Vertrauliche Transaktionen (Confidential Transactions, CT) wurden erstmals 2013 von Adam Back, CEO von Blockstream, diskutiert. Später verstärkte der Bitcoin-Entwickler Gregory Maxwell den Einsatz vertraulicher Transaktionen. Maxwell beschrieb die im ersten Abschnitt genannten Probleme (hinsichtlich Fungibilität und Datenschutz) – und schlug eine Lösung vor. Überwiesene Beträge könnten vor dem größeren Netzwerk abgeschirmt (verborgen) werden, sodass nur die an der Transaktion beteiligten Parteien wüssten, wie viel gesendet wurde.
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 0,3 BTC an Bob senden möchte, nimmt sie einen nicht ausgegebenen Output (stellen wir uns 1 BTC vor) und teilt ihn in zwei Teile: 0,3 zum Senden an Bob und 0,69 zum Senden an sie (der Rest wird zur Zahlung der Mining-Gebühr verwendet).
Für die anderen Knoten ist es eine einfache Rechnung: 1 ist größer als 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 Werte jedoch verborgen sind, ist dieser Vorgang nicht so trivial. Wie lässt sich beurteilen, ob ein unbekannter Betrag gleich oder größer als die Summe zweier anderer unbekannter Beträge ist?
Ein Überblick über verwandte Kryptographie
Um Daten zu verbergen, ist eine Verschlüsselung erforderlich. Herkömmliche Methoden ähneln jedoch dem Einlegen von Dokumenten in einen Tresor: Sobald sie verschlossen sind, sind sie unbrauchbar, bis sie aus dem Tresor 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 konkret in der homomorphen Verschlüsselung, einem Schema namens „Pedersen Commitment“. Diese Art der Verschlüsselung ermöglicht es externen Benutzern, für verschiedene Zwecke Operationen an verschlüsselten Daten (die sie nicht sehen können) durchzuführen.
Ein regulärer Hash kann zur Bestätigung von Daten verwendet werden, 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. Benutzer vertrauen möglicherweise nicht auf die Glaubwürdigkeit Ihrer Konkurrenz und behaupten, dass Sie sich einfach die Antworten nach dem Börsenschluss ansehen und einen Austausch aufdecken könnten, der von niemandem erwähnt wurde.
Sie könnten Ihren Followern einen Hash zur Verfügung stellen: eine Folge scheinbar zufälliger Zahlen und Zeichen, die auf eine bestimmte Eingabe verweisen. Mithilfe einer Funktion wandeln Sie die Informationen aus Ihrem Austausch um, um eine bestimmte Ausgabe zu erhalten. Wir veranschaulichen es mit dem SHA256-Algorithmus:
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191Wenn Sie sich das ansehen, haben Sie keine Ahnung, was die Eingabe war. Und Sie können die Funktion 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 angezeigten übereinstimmt. So haben Ihre Follower die Garantie, dass Sie Ihre Antwort am Ende des Wettbewerbs nicht ändern – was zu einem völlig anderen Ergebnis führen würde.
Realistisch gesehen ist dies jedoch nicht sehr sicher. Obwohl Ihre Follower den Algorithmus nicht zurückentwickeln können, könnten sie eine Liste möglicher Börsen erstellen und den Hash jedes einzelnen Austauschs abrufen, bis sie den entsprechenden Austausch finden. Sie können die Wahrscheinlichkeit dieser Art von Aktion verringern, indem Sie den Daten, die wir zum Erstellen der Hash-Funktion verwenden, einige zufällige Daten hinzufügen, die als „Blindfaktor“ bezeichnet werden.
Wenn wir die Eingabe „Binance ist meine Lieblingsbörse, ich liebe sie mehr als jede andere Börse 2#43Wr“ verwenden, wird es für einen Benutzer viel schwieriger, die Antwort auf die oben beschriebene Weise zu erraten (für 0,01 BTC wäre dies der Fall). es ist unwahrscheinlich, dass irgendjemand es versucht).
Ein „Pedersen-Commitment“ ermöglicht es uns, Eingaben hinter Commits (Datenbankänderungen) 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
Es gibt noch ein paar weitere Schritte, die Kryptografie mit elliptischen Kurven und Bereichsnachweise beinhalten, aber die Grundidee besteht darin, dass ein Benutzer eine „Pedersen-Verpflichtung“ für seine eigene Adresse hat. Beim Senden von Geldern werden zwei zusätzliche Commits erstellt (einer für die Adresse des Benutzers, der das Wechselgeld erhält, und einer für die Adresse des Überweisungsziels).
Niemand kennt den gesendeten Betrag, aber es ist möglich zu überprüfen, ob die Commits der Änderung und die Zieladresse (linke Seite der Maxwell-Gleichung) korrekt der Quelladresse (rechte Seite der Gleichung) entsprechen. Wenn die Entsprechungen korrekt sind, ist die Transaktion des Benutzers gültig, da nachgewiesen werden kann, dass die Eingaben mit den Ausgaben übereinstimmen.
Was können vertrauliche Transaktionen bewirken?
Wenn vertrauliche Transaktionen im Bitcoin-Netzwerk implementiert würden, hätten wir ein System mit viel mehr Datenschutz. Ein- und Ausgänge würden im allgemeinen Netzwerk verschleiert und Einträge im Hauptbuch würden ausgeblendet – Knoten wären jedoch weiterhin in der Lage, ihre Authentizität zu überprüfen. Mit dieser erheblichen Verbesserung der Privatsphäre könnte Bitcoin praktisch fungibel werden, da die Kettenanalyse nicht mehr die Geschichte einer bestimmten Einheit offenlegen würde.
Derzeit erscheint die Integration vertraulicher Transaktionen in das Protokoll nicht wahrscheinlich. Mit dieser zusätzlichen Funktionalität wären die Transaktionen viel größer als standardmäßig – angesichts des begrenzten Blockraums würde dies die Nachfrage nur erhöhen. Diese Ergänzung würde auch erfordern, dass eine Mehrheit der Teilnehmer einer Änderung des Codes zustimmt, eine traditionell schwierige Aufgabe.
Schlussbetrachtungen
Confidential Transactions hat einige Iterationen in anderen Kryptowährungen und alternativen Ketten (Sidechains) zu Bitcoin erlebt. Monero beispielsweise nutzt sie in Kombination mit Strukturen namens „Ringsignaturen“, um Anonymität und Fungibilität zu erreichen. Auch die Liquid-Sidechain und das MimbleWimble-Protokoll nutzen sie, um für mehr Privatsphäre zu sorgen.
Trotz der Vorteile, die sie bieten, haben vertrauliche Transaktionen eine Kehrseite. Bei Kryptowährungen gibt es auf der Basisebene häufig Probleme mit der Skalierbarkeit und Leistung. Daher ist die Vergrößerung der Transaktionsgröße alles andere als eine gewünschte Änderung. Befürworter des Datenschutzes glauben jedoch, dass das Verbergen von Transaktionsbeträgen und die Wahrung der Anonymität der Benutzer wesentliche Maßnahmen dafür sind, dass Kryptowährungen tatsächlich als fungible Währung funktionieren.
