Ist es möglich, EVM mit Eingabedaten zu verwenden, die nicht in der Blockchain gespeichert sind?

Ich interessiere mich für die dezentralisierte Berechnung medizinischer Daten, bei der aus Datenschutzgründen weder die Computerressourcen noch der Anforderer vollständig auf die Daten zugreifen können.

In diesem Schema berechnen gewählte Diener (dezentrale Computer) Teile der rohen Eingabedaten unter Verwendung eines öffentlichen Algorithmus. Die berechneten Daten werden schließlich an den Anforderer übermittelt.

Nach meinem Verständnis von EVM werden sowohl die Eingabedaten als auch der Algorithmus auf der Blockchain gespeichert, was die verfügbaren Rechenressourcen stark einschränkt und die Blockchain-Größe unnötig erweitert.

Kurz darauf entdeckte ich den Ethereum Computation Market , der für meine Anwendung interessanter erscheint.

Da ich immer noch verwirrt darüber bin, was EVM wirklich ist, würde ich gerne wissen, ob ich es verwenden kann, um:

  • Berechnen Sie verschlüsselte Daten, die von einer Data Lake-Cloud ausgegeben werden
  • Verschlüsseln Sie das Ergebnis mit einer GPG-ähnlichen Methode
  • Senden Sie das Ergebnis an einen Cloud-Server.

Antworten (1)

EVM selbst ist eine virtuelle Maschine, die eine sehr eingeschränkte Teilmenge von Anweisungen ausführt. Offizieller,

Die Ethereum Virtual Machine (EVM) ist die Laufzeitumgebung für Smart Contracts in Ethereum. Es ist nicht nur in einer Sandbox untergebracht, sondern tatsächlich vollständig isoliert, was bedeutet, dass Code, der innerhalb der EVM ausgeführt wird, keinen Zugriff auf das Netzwerk, das Dateisystem oder andere Prozesse hat. Smart Contracts haben sogar eingeschränkten Zugriff auf andere Smart Contracts.

Verträge leben auf der Blockchain in einem Ethereum-spezifischen Binärformat (EVM-Bytecode). Verträge werden jedoch typischerweise in einer Ethereum-Hochsprache geschrieben, mit einem EVM-Compiler in Bytecode kompiliert und schließlich mit einem Ethereum-Client in die Blockchain hochgeladen.

(Quelle siehe hier)

Es scheint, dass Sie theoretisch alle Berechnungen innerhalb der EVM ausführen könnten, aber es gibt immer noch das Problem: Wenn der Code auf dem Computer ausgeführt wird, können alle Daten, die er verwendet, von jemandem entschlüsselt werden, der bestimmt ist, sie zu sehen (z alles, was von Anweisungen auf Assemblerebene verwendet wird). Sie sollten die Daten in einem TPM oder so etwas wie einem PlayReady-Container (Microsofts Art, DRM-Code vor herkömmlichen Speicherinspektoren zu verbergen) ablegen, um sie wirklich zu sichern.

Dies scheint Projekten wie SETI@home ähnlich zu sein, jedoch ohne die Verschlüsselungsanforderung.

Theoretisch suchen Sie nach „homomorpher Verschlüsselung“, die derzeit noch ein Forschungsthema ist, also möglicherweise noch nicht für den groß angelegten Einsatz bereit ist.