An Introduction to Confidential Transactions
Startseite
Artikel
An Introduction to Confidential Transactions

An Introduction to Confidential Transactions

Fortgeschritten
Veröffentlicht Feb 10, 2020Aktualisiert Dec 28, 2022
6m

Inhalt


Einf√ľhrung

Es wird oft als kritisch f√ľr das Funktionieren einer Blockchain angesehen, dass das System transparent ist. Das bedeutet, dass jeder Node im Netzwerk eine Kopie speichern und √ľberpr√ľfen kann, dass keine Regeln verletzt werden. Bei vielen verteilten Ledgern kann jeder einen Online-Blockexplorer laden, der es ihm erlaubt, Bl√∂cke, Transaktionen und Adressen zu durchsuchen.
Was die Privatsph√§re angeht, ist das nicht ideal. In einem System wie Bitcoin kann jede Transaktion mit einer vorherigen verkn√ľpft werden. Coins sind technisch nicht fungibel, d.h. jede kann an bestimmte Transaktionen gebunden werden. Niemand kann Sie daran hindern, Bitcoin zu senden, aber sie k√∂nnen die Annahme Ihrer Transaktion verweigern, wenn diese Coins zuvor eine Blacklist-Adresse durchlaufen haben.

In schlimmsten Fall k√∂nnte ein Mangel an Fungibilit√§t tiefgreifende Auswirkungen auf die Grundlagen des Systems haben.¬†Saubere¬†Coins k√∂nnten f√ľr einen Aufpreis verkauft werden, w√§hrend √§ltere Coins aufgrund ihrer Geschichte weniger wertvoll w√§ren.

Die Privatsph√§re in Bitcoin wird oft √ľberbewertet. Nicht nur die Coins k√∂nnen zur√ľckverfolgt werden, sondern auch die Benutzer. Sie genie√üen Pseudonymit√§t (√∂ffentliche Adressen sind sichtbar statt Namen), aber dies ist nicht ohne M√§ngel. Ausgefeilte Analysetechniken k√∂nnen mit zunehmender Genauigkeit Adressen zusammenfassen und versuchen, Netzwerkentit√§ten zu deanonymisieren.

Ein Upgrade, das vorgeschlagen wurde, um Transaktionen wirklich privat zu machen, sind vertrauliche Transaktionen.


Was sind vertrauliche Transaktionen?

Vertrauliche Transaktionen (CT) wurden im Jahr 2013 von Blockstream CEO Adam erstmals besprochen und sp√§ter von 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. Die √ľbertragenen Betr√§ge k√∂nnten vom breiteren Netzwerk abgeschirmt werden, so dass nur die Transaktionspartner w√ľssten, wie viel gesendet wurde.
Unter normalen Umst√§nden (bei √∂ffentlich einsehbaren Transaktionen) ist es f√ľr einen Node leicht zu √ľberpr√ľfen, ob der empfangene Betrag den gesendeten Betrag nicht √ľbersteigt. Wenn Alice 0,3 BTC an Bob senden will, nimmt sie eine nicht ausgegebene Ausgabe (nennen wir sie 1 BTC) und bricht sie in zwei Teile auf: 0,3, die an Bob geschickt werden sollen, und 0,69, die an sie zur√ľckgeschickt werden sollen (der Rest wird als Mining-Geb√ľhr verbraucht).
Dies ist einfache Algebra f√ľr andere Nodes: 1 √ľberschreitet 0.3 + 0.69, die Signaturen sind alle korrekt, und Alices Eingaben sind nicht bereits anderweitig ausgegeben worden, also muss die Transaktion g√ľltig sein. Wenn Betr√§ge ausgeblendet werden, sind die Dinge jedoch nicht so trivial. Wie kann man √ľberhaupt anfangen zu bewerten, ob ein unbekannter Betrag gleich oder gr√∂√üer als die Summe zweier anderer unbekannter Betr√§ge ist?


Ein Einblick in die verwendete Kryptographie

Um Daten auszublenden, ist Verschl√ľsselung erforderlich. Die traditionellen Methoden √§hneln jedoch der Aufbewahrung von Dokumenten in einem Tresor: Einmal darin verschlossen, werden sie unbrauchbar, bis sie entfernt werden. Was wir f√ľr vertrauliche Transaktionen brauchen, ist ein digitaler Safe, dessen Inhalt nicht offengelegt wird, dessen Eigenschaften aber von einem Au√üenstehenden √ľberpr√ľft werden k√∂nnen.

Die Antwort liegt speziell in der homomorphen Verschl√ľsselung, in einem Schema, das als Pedersen-Verpflichtung bezeichnet wird. Diese Art der Verschl√ľsselung erlaubt es einem Au√üenstehenden, Operationen an verschl√ľsselten Daten (die er nicht sehen kann) f√ľr eine Reihe von Zwecken durchzuf√ľhren.¬†

Ein normaler Hash kann verwendet werden, um sich an Daten zu binden, die Sie sp√§ter preisgeben m√∂chten. Nehmen wir an, Sie wollen einen Wettbewerb in den sozialen Medien ank√ľndigen, bei dem derjenige, der Ihre Lieblingsb√∂rse err√§t, einen Preis von 0,01 BTC gewinnt. Die Teilnehmer k√∂nnten skeptisch sein, denn Sie k√∂nnten sich die Antworten nach dem Ende des Wettbewerbs einfach ansehen und eine nicht erw√§hnte B√∂rse ausw√§hlen.

Was Sie tun könnten, ist, Ihren Anhängern einen Hash zu geben: eine Reihe von scheinbar zufälligen Zahlen und Zeichen, die eine bestimmte Eingabe abbildet. Sie schicken Ihre Börse durch eine Funktion, um eine bestimmte Ausgabe zu erhalten. Wir werden das mit dem SHA256-Algorithmus veranschaulichen:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Wenn man sich das ansieht, hat man keine Ahnung, was die Eingabe war. Auch kann man die Funktion nicht umkehren, um sie zu erhalten. Wenn Sie wissen, dass die Eingabe ‚ÄúBinance‚ÄĚ war, k√∂nnen Sie jedoch leicht √ľberpr√ľfen, ob der Hash mit dem oben aufgef√ľhrten √ľbereinstimmt. Auf diese Weise haben Ihre Anh√§nger eine gewisse Sicherheit, dass Sie Ihre Antwort am Ende des Wettbewerbs nicht √§ndern ‚Äď dies w√ľrde eine v√∂llig andere Ausgabe erzeugen.
Realistisch betrachtet ist das aber nicht sehr sicher. W√§hrend Ihre Anh√§nger den Algorithmus nicht zur√ľckverfolgen k√∂nnen, k√∂nnen sie eine Liste von m√∂glichen B√∂rsen erstellen, und jede einzelne hashen, bis sie eine √úbereinstimmung erhalten. Wir k√∂nnen die Wahrscheinlichkeit daf√ľr reduzieren, indem wir einige zuf√§llige Daten, die als Blindfaktor bezeichnet werden, zu den Daten hinzuf√ľgen, die wir hashen werden.¬†
Wenn wir ‚ÄúBinance ist meine Lieblings-B√∂rse. Ich liebe sie mehr als jede andere B√∂rse 2#43Wr‚ÄĚ eingeben, wird dies f√ľr die anderen Teilnehmer deutlich schwieriger zu erraten (und f√ľr 0,01 BTC, ist es sicherlich unwahrscheinlich, dass es √ľberhaupt jemand versuchen w√ľrde).

Eine Pedersen-Verpflichtung erlaubt es uns, die Inputs hinter den Verpflichtungen hinzuzuf√ľgen. Wie Maxwell veranschaulicht:


C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)
BF ist der Blindfaktor und D sind die Daten


Es gibt noch ein paar weitere Schritte von hier aus, die Kryptographie mit elliptischen Kurven und Entfernungsnachweise betreffen, aber die Grundidee ist, dass ein Benutzer eine Pedersen-Verpflichtung f√ľr seine Adresse hat. Beim Versenden von Geldern werden zwei zus√§tzliche Verpflichtungen erstellt (eine f√ľr die Adresse des Benutzers, an die das Restgeld zur√ľckgeschickt werden soll, und eine f√ľr die Zieladresse).¬†

Niemand wei√ü, wie viel gesendet wird, aber sie k√∂nnen √ľberpr√ľfen, ob die Restgeld- und Zielverpflichtungen (die linke Seite der Maxwell-Gleichung) zur Ursprungsadresse (die rechte Seite der Gleichung) passt. Wenn dies korrekt ausgewertet wird, dann ist die Transaktion des Benutzers g√ľltig, da nachgewiesen werden kann, dass die Eingaben gleich den Ausgaben sind.


Was können vertrauliche Transaktionen bewirken?

Wenn vertrauliche Transaktionen in Bitcoin implementiert werden w√ľrden, h√§tten wir ein wesentlich privateres System. Die Ein- und Ausgaben k√∂nnten im gesamten Netzwerk maskiert werden und die Eintr√§ge im Ledger verschleiert werden - aber die Nodes k√∂nnten trotzdem ihre Authentizit√§t √ľberpr√ľfen. Mit dieser massiven Verbesserung der Privatsph√§re k√∂nnten Bitcoins effektiv fungibel gemacht werden, da eine Chain-Analyse nicht mehr den historischen Verlauf einer bestimmten Einheit offenbaren k√∂nnte.¬†

Ob vertrauliche Transaktionen in das Protokoll integriert werden, erscheint zum jetzigen Zeitpunkt nicht wahrscheinlich. Mit dieser zus√§tzlichen Funktionalit√§t sind die Transaktionen viel gr√∂√üer als die Standard-Transaktionen ‚Äď angesichts des begrenzten Blockplatzes w√ľrde dies nur die Nachfrage erh√∂hen. Au√üerdem m√ľsste die Mehrheit der Teilnehmer einer √Ąnderung des Codes zustimmen, eine Aufgabe, die sich traditionell als schwierig erwiesen hat.


Fazit

Vertrauliche Transaktionen haben einige Iterationen in anderen Kryptow√§hrungen und Bitcoin-Sidechains gesehen. Zum Beispiel verwendet Monero diese in Kombination mit Konstrukten, die Ringsignaturen genannt werden, um Anonymit√§t und Fungibilit√§t zu erreichen. Die Liquid Sidechain implementiert sie f√ľr mehr Privatsph√§re und MimbleWimble erweitert sie im gleichen Ma√üe.

F√ľr die Vorteile, die sie mit sich bringen, sind vertrauliche Transaktionen mit dem Kompromiss eines gr√∂√üeren Datenverbrauchs verbunden. Kryptow√§hrungen haben oft mit der Skalierbarkeit und dem Durchsatz auf der Basisschicht zu k√§mpfen, und gr√∂√üere Transaktionen sind nicht f√ľr alle attraktiv. Dennoch halten es die Bef√ľrworter des Datenschutzes f√ľr unerl√§sslich, Transaktionsbetr√§ge und Teilnehmer zu verbergen, damit die Kryptow√§hrung wirklich als fungibles Geld dienen kann.