Verschlüsselte Daten in der Blockchain

Ich denke darüber nach, eine Art Anwendung zu entwickeln, in der ich etwas public key cryptographyvon der smart contract. Der sendersendet einige Daten an den smart contractverschlüsselten von smart contract's public key, wird der in der Lage sein, sie mit dem s smart contractzu entschlüsseln ? Während der die Daten entschlüsselt, kann jeder den Klartext sehen, da er auf allen Knoten repliziert wird?smart contractprivate keysmart contract

Da die smart contractauf allen Knoten im Netzwerk repliziert wird, kann jeder den gesamten Inhalt der smart contract?

Antworten (2)

Da der Smart Contract auf allen Knoten im Netzwerk repliziert wird, kann jeder den gesamten Inhalt des Smart Contract sehen?

Kurze Antwort: ja.

Wenn der Vertrag die Entschlüsselung durchführt, muss er den privaten Schlüssel speichern. Wenn der private Schlüssel im Vertrag gespeichert ist, wird er auf jeden Knoten repliziert, und ja, als Ergebnis führt jeder Knoten die Entschlüsselung durch.

Es gibt wahrscheinlich einen kryptografisch komplexen Weg, um das zu tun, was Sie wollen, aber ich denke, es ist eines dieser Dinge, die Sie von vielen Leuten überprüfen lassen möchten, die sich mit Krypto und Blockchain auskennen, und wenn Sie auch nur ein bisschen falsch liegen, Ihre Daten wäre verwundbar.

Abhängig von Ihrem Anwendungsfall haben Sie möglicherweise Daten (verschlüsselt mit dem öffentlichen Schlüssel des Vertrags) an den Vertrag gesendet und gespeichert, aber nur von einem Knoten/einer App entschlüsselt, die Sie kontrollieren und über den der private Schlüssel gesichert ist.

Bei der Verwendung von Public-Key-Kryptografie (asymmetrische Kryptografie) muss zwischen Signieren und Verschlüsseln unterschieden werden.

  • Eine Signatur ist ein Beweis dafür, dass die Daten vom Besitzer eines bestimmten öffentlichen Schlüssels signiert wurden. Klartext kann auch signiert werden, während er klar (nicht verschlüsselt) bleibt.

  • Die Verschlüsselung stellt sicher, dass nur derjenige, der Zugriff auf den privaten Schlüssel hat, der einem bestimmten öffentlichen Schlüssel entspricht, den Inhalt entschlüsseln kann

Beide können zusammen verwendet werden oder nicht (verschlüsselt, signiert oder verschlüsselt und signiert).

Bitte beachten Sie Folgendes:

  1. Ein öffentlicher Schlüssel kann nicht zum Entschlüsseln einer Nachricht verwendet werden, deshalb ist es ein öffentlicher Schlüssel, er kann sicher verteilt werden, um verschlüsselte Nachrichten zu empfangen, die für diesen Schlüssel verschlüsselt sind, oder um zu überprüfen, ob einige Daten vom Eigentümer des Korrespondenten signiert wurden Privat Schlüssel.
  2. Ein privater Schlüssel kann nicht zum Verschlüsseln verwendet werden , er kann nur zum Entschlüsseln oder Signieren verwendet werden
Ich habe die Begriffe durcheinander gebracht, ich habe die Frage bearbeitet.
@jgm, auch wenn sich Ihre Frage geändert hat, ist meine Antwort immer noch gültig: Ein öffentlicher Schlüssel kann nicht zum Entschlüsseln einer Nachricht verwendet werden. Außerdem kann ein privater Schlüssel nicht verwendet werden, um Daten zu verschlüsseln, sondern nur um sie zu entschlüsseln und/oder zu singen
@atfornes Die Unterscheidung ist irreführend. Sie verwenden Schlüssel immer zum Verschlüsseln/Entschlüsseln. Die Signatur ist nur ein Sonderfall, bei dem Sie nur einen Hash der Datei und nicht den gesamten Dateiinhalt verschlüsseln. Es gibt nichts, was private und öffentliche Schlüssel unterscheidet, sondern nur die Tatsache, dass Sie einen geheim und den anderen öffentlich halten. Sie können also mit einem öffentlichen Schlüssel entschlüsseln : Dies ist genau das, was Sie tun müssen, wenn Sie ein Zeichen verifizieren möchten, dh einen mit einem privaten Schlüssel verschlüsselten Hash .
Du hast Recht @GiuseppeBertone, danke für den Kommentar. Bitte zögern Sie nicht, eine Änderung meiner Antwort vorzuschlagen. Ich habe die Antwort so geschrieben, dass private und öffentliche Schlüssel leicht unterschieden werden können, da die Frage in den ersten Versionen nicht klar zu sein schien. Jetzt ist die Frage viel klarer und JamieHale hat eine wirklich gute Antwort darauf.
"Es gibt nichts, was private und öffentliche Schlüssel unterscheidet" - das stimmt nicht wirklich und hängt auch vom Kryptosystem ab. Sie können den öffentlichen Schlüssel vom privaten Schlüssel ableiten, aber nicht umgekehrt.