Aktuelle Methoden zum Versenden verschlüsselter Nachrichten aus Verträgen

Ich versuche zu verstehen, ob es derzeit eine Methode gibt, um eine Nachricht von einem Vertrag an einen anderen Vertrag oder eine private Adresse zu senden ? Wie würde der Solidity-Code dafür aussehen? Vielleicht könnten Events dafür genutzt werden?

Da es auf der Blockchain keine Privatsphäre gibt, ist die Nachricht natürlich für alle lesbar. Die einzige Möglichkeit, die ich mir vorstellen kann, besteht darin, die Nachricht mit dem öffentlichen Schlüssel des Empfängers zu verschlüsseln.

Einige verwandte Fragen sind unten, aber sie haben keine Antworten auf meine Frage (und es sieht so aus, als wäre Whisper noch nicht implementiert):

Antworten (1)

Sie können einen Ethereum-Vertrag nicht mit Klartext beginnen lassen und eine Nachricht sinnvoll verschlüsseln, da die gesamte Vertragsausführung von allen Knoten im Netzwerk überprüfbar sein muss, also wie Sie sagen, jeder müsste auch Ihren Klartext sehen können.

Wenn Sie eine Nachricht von einem Benutzer eines Vertrags an einen anderen Benutzer des Vertrags senden möchten, ist es naheliegend, dass der Vertrag eine Kennung für den Benutzer verwaltet, der die Nachricht erhalten möchte - beispielsweise einen PGP-Fingerabdruck - und die Absender, um damit seinen öffentlichen PGP-Schlüssel auf einem regulären Schlüsselserver nachzuschlagen und damit die Nachricht für ihn zu verschlüsseln.

Sie möchten wahrscheinlich nicht, dass die verschlüsselte Nachricht die Blockchain tatsächlich durchläuft, es sei denn, sie ist sehr klein, da sie Benzin kostet, aber Sie möchten vielleicht die Blockchain verwenden, um dem Empfänger mitzuteilen, wo er die verschlüsselte Nachricht finden kann – zum Beispiel die verschlüsselte Nachricht speichern Nachricht in IPFS, und lassen Sie den Absender den Vertrag aktualisieren, um den Empfänger über den Hash des Dokuments zu informieren, das er auf IPFS gestellt hat.