Verwendung von Ethereum zur Datenverschlüsselung

Ich versuche, einen Weg zu finden, eine Ethereum-Adresse/solidity/web3 für die Textverschlüsselung zu verwenden, aber ich bin mir nicht einmal sicher, ob es möglich ist, den öffentlichen Schlüssel von der Adresse (Hash des Pubkey) mit secp256k1 zu erhalten, um den öffentlichen Schlüssel zu erhalten ? oder ob es eine andere Möglichkeit gibt, clientseitig darauf zuzugreifen? Wenn ja, wäre der Benutzer in der Lage, die Daten mit seiner Passphrase (Ethereum-Passphrase) zu entschlüsseln? so dass alles clientseitig passieren würde, aber die Daten verschlüsselt auf der Kette gespeichert würden?

Ich weiß, dass nichts davon wirklich dafür gedacht ist, aber ich versuche, verschlüsselte Daten in der Blockchain zu speichern, ohne mich auf einen Server verlassen zu müssen, um Schlüssel so weit wie möglich zu speichern, aber ich finde anscheinend keinen Weg.

tldr:

Ethereum + Daten = verschlüsselte Daten

verschlüsselte Daten + Ethereum + Passphrase = Daten

Antworten (2)

Sie können eine Adresse und einen öffentlichen Schlüssel aus einer Signatur extrahieren - siehe ecrecover .

Es gibt mehrere Ansätze, mit denen Sie das erreichen können, was Sie erreichen möchten. Eine wäre, öffentliche Schlüssel in einem Vertrag zu speichern. Wenn ich jemandem eine verschlüsselte Nachricht senden möchte, ergreife ich seinen öffentlichen Schlüssel durch einen Vertrag, verschlüssele die Daten und sende sie. Sie können mit dem zugehörigen privaten Schlüssel entschlüsseln.

Beachten Sie, dass alles, was Ihr Geschäft in der Blockchain enthält, von jedem gelesen werden kann.

aber wie würde der Benutzer vorgehen, um die Daten nur mit Nebel zu entschlüsseln? Würde er seinen privaten Schlüssel irgendwie extrahieren müssen?
Im Moment musste all dies außerhalb von Mist erledigt werden.

Es wäre besser, IPFS oder Filecoin zu verwenden, um längere Texte zu speichern, und dann Ethereum zum Speichern der Zugriffsschlüssel zu verwenden. IPFS wird immer noch verteilt, aber wenn Sie sich Sorgen um den Datenschutz machen, beachten Sie einfach, dass Ihre IP-Adresse bei dieser Methode nicht privat ist. Ethereum rät davon ab, das Netzwerk als Datenbank zum Speichern großer Datenmengen zu nutzen.

Sie können sicherlich einen Smart Contract verwenden, um den Textblock mit den sha3-Befehlen zu verschlüsseln (siehe Dokumentation für die Syntax) und dann Funktionen erstellen, die IPFS hinzufügen und daraus lesen.