So speichern Sie private Daten in Ethereum

Mein Anwendungsfall ist der folgende: Ich möchte Ethereum verwenden, um Geräte und Gerätebesitzer zu verfolgen. Dies ist mit Ethereum und Smart Contract einfach zu bewerkstelligen. Aber ich möchte ein mit dem Gerät verbundenes Geheimnis speichern. Gibt es eine Möglichkeit, dies beispielsweise zu tun, indem diese geheimen Daten mit dem öffentlichen Schlüssel des Inhabers verschlüsselt werden?

Grundsätzlich, wenn A = Vermögenswert, O1 = Ein erster Eigentümer, O2 = Ein nächster Eigentümer, möchte ich dies erreichen:

  1. A ist im Besitz von O1. Ein Geheimnis wird mit dem öffentlichen Schlüssel von O1 verschlüsselt und in der Blockchain gespeichert
  2. A wird von O1 mithilfe eines von O1 ausgeführten Smart Contracts an O2 (neuer Eigentümer) übertragen. O1 entschlüsselt ein Geheimnis mit seinem privaten Schlüssel und verschlüsselt es mit dem öffentlichen Schlüssel von O2 und speichert diesen
  3. A ist im Besitz von O2. Ein Geheimnis wird mit dem öffentlichen Schlüssel von O2 verschlüsselt und in der Blockchain gespeichert

Dies scheint in Ordnung zu sein, außer dass der Smart Contract auf einen geheimen Schlüssel zugreifen muss ... Gibt es eine Idee, wie ein solcher Vertrag abgeschlossen werden kann, oder ob es dafür eine bessere Option gibt?

Was ist der Zweck des Geheimnisses? Wer definiert das Geheimnis für ein bestimmtes Gerät? Ist das Geheimnis für ein Gerät gleich, wenn es den Besitzer wechselt?
@bordalix: Das Geheimnis wird an anderer Stelle definiert (z. B. vom Entwickler-Ersteller) und ändert sich nicht, wenn das Gerät den Besitzer wechselt. Der Fehler ist, dass der Vorbesitzer immer noch das Geheimnis hat, aber das wird hier nicht angesprochen und es ist ein bekanntes Problem ....
Wer bringt das Gerät zuerst in die Blockchain? der Entwickler-Creator? Wenn ja, warum kann er das Geheimnis dort nicht mit seinem öffentlichen Schlüssel verschlüsselt ablegen? Müssen Besitzer das Geheimnis kennen?

Antworten (1)

Sie können dies nicht in den SmartContract einfügen, da die Pseudozufallseigenschaft der Blockchain Ihnen nicht garantiert, dass die verschlüsselten Informationen vollständig unverschlüsselbar sind.

Alle Informationen sind in der Blockchain öffentlich, deshalb haben viele Apps Probleme mit GDPR- oder LOPD- Gesetzen.

Aber ein anderer Benutzer hat etwas getan, um es zu lösen, indem er Code auf nodejs/browser envoirment erstellt hat. Hier haben Sie den Link zum Beitrag.

Überprüfen Sie auch https://github.com/pubkey/eth-crypto , was für Sie hilfreich sein kann, um dieses Problem zu lösen.

Ich hoffe es hilft!

Was meinst du mit "Pseudozufallseigenschaft"? Der Begriff ist mir nicht bekannt. Ich denke auch, dass so etwas wie das, was der Op verlangt, in einem Smart Contract tatsächlich möglich ist. Sie müssen nur die tatsächliche Entschlüsselung in der Blockchain vermeiden, aber ich denke, das könnte mit einigen RSA-Tricks erreicht werden.
Die Bibliothek ist gut, aber es wäre schön, wenn es eine Metamask-Funktion gäbe, um dies einfach zu tun ... Wie auch immer, danke für das Feedback.