Vertraulichkeit in Blockchain

Können Blockchain-Miner vertrauliche Transaktionsinformationen einsehen? Da sie den öffentlichen Schlüssel haben, entschlüsseln sie die Transaktion zum Zweck der Verifizierung. Wenn ich also in Ethereum schürfe, kann ich den Node-Code optimieren, um die Transaktionsdetails auf meiner Festplatte zu protokollieren. Ist Blockchain nicht geeignet, wo Vertraulichkeit wichtig ist?

Was meinen Sie mit "Da sie den öffentlichen Schlüssel haben, entschlüsseln sie die Transaktion" ? Normalerweise können wir mit dem öffentlichen Schlüssel verschlüsseln und nicht entschlüsseln.

Antworten (3)

Ethereum-Transaktionen werden nicht verschlüsselt, daher ist keine Entschlüsselung erforderlich. Das Protokollieren aller Transaktionen auf der Festplatte gehört dazu, ein Knoten (Miner oder ein beliebiger vollständiger Knoten) zu sein, sodass keine Optimierungen erforderlich sind. Auf Seiten wie Etherscan können Sie jede historische Transaktion im Klartext sehen .

So wie es aussieht, gibt es in der öffentlichen Ethereum-Blockchain keine Transaktionsvertraulichkeit.

Dies kann sich in Zukunft ändern, wenn/wenn die ZK Snark -Technologie implementiert wird. Es gibt Varianten von Ethereum (wie Quorum) mit Mechanismen für private Transaktionen, aber diese übertragen sich nicht auf die öffentliche Ethereum-Blockchain.

Wenn die Informationen nicht verschlüsselt sind, warum hat das System/Framework dann private und öffentliche Schlüssel? Haben sie einen anderen Zweck als das Verbergen der Informationen?
Ja, die Schlüssel werden zum Signieren der Transaktionen und zum anschließenden Verifizieren der Signaturen verwendet, was ein anderer Prozess als das Verschlüsseln der Transaktionen ist (Signieren ist im Grunde die Verschlüsselung des Hashs der Transaktion).

Alles, was in das Netzwerk gesendet wird, einschließlich aller Transaktionen, ist für alle Knoten öffentlich . Die einzige Frage ist, ob diese Informationen im Klartext vorliegen oder nicht. Sie haben "vertrauliche Transaktionsinformationen" nicht definiert. Wenn Sie meinen, dass überhaupt eine Transaktion stattgefunden hat (was manche Leute als vertraulich betrachten könnten), dann nein. Wenn Sie Dinge wie den Empfänger oder den Betrag meinen, ist die Einführung von zkSNARKs in Metropolis der Anfang, Datenschutz für diese hinzuzufügen. Wenn Sie ein benutzerdefiniertes Token verwenden (kein derzeit ERC-kompatibles), sollte zkSNARKs ermöglichen, dass diese Art von Datenschutz zum Token hinzugefügt wird.

Wenn Sie andere Daten meinen, die Sie in Ihrer Transaktion haben möchten, die spezifisch für einen Vertrag sind, den Sie schreiben, können Sie Standard-Verschlüsselungstechniken (mit genügend Gas) oder bei Bedarf sogar homomorphe Verschlüsselung verwenden . Dies ist derzeit möglich.

Verschleierungstechniken wie das Taumeln können auch Ihre Bedürfnisse befriedigen.

Hallo danke. Ich wollte wissen, ob die den Variablen des Smart Contracts zugewiesenen Daten von anderen Knoten/Minern des öffentlichen Ethereum-Netzwerks gelesen werden können.
Ja. Alles ist öffentlich (andernfalls können Knoten keinen Konsens erzielen!) Ihre einzige Möglichkeit, Informationen von Knoten privat zu halten (AFAIK), besteht darin, sie nicht in die Blockchain aufzunehmen oder zu verschlüsseln (mit "normaler" Verschlüsselung oder homomorpher Verschlüsselung). Knoten können die Daten weiterhin verarbeiten). Aber diese beiden "verstecken sich vor aller Augen" (um die normale Bedeutung des Ausdrucks zu missbrauchen).
Wenn die Informationen nicht verschlüsselt sind, warum hat das System/Framework dann private und öffentliche Schlüssel? Haben sie einen anderen Zweck als das Verbergen der Informationen?
Sie werden hauptsächlich zum Signieren von Transaktionen verwendet. Sie können eine Nachricht mit dem öffentlichen Schlüssel eines anderen Kontos verschlüsseln, aber diese Nachricht ist nur für Personen lesbar, die den privaten Schlüssel dieses Kontos kennen.

Genau wie die anderen in diesem Thread erklärten, gibt es keine Möglichkeit, Transaktionen auf Ethereum mit den primitiven verfügbaren Tools zu verbergen.

Zwei Jahre nachdem diese Frage gestellt wurde, wurde jedoch das AZTEC- Protokoll gestartet und ich veröffentlichte How to Code Your Own Confidential Token on Ethereum – einen Artikel, der beschreibt, wie man einen normalen ERC20-Token mit einer vertraulichen Version verknüpft.

Haftungsausschluss: Ich arbeite bei AZTEC als Vollzeit-Blockchain-Ingenieur.