Можно ли использовать EVM с входными данными, не хранящимися в блокчейне?

Я заинтересован в децентрализованном вычислении медицинских данных, при котором ни вычислительные ресурсы, ни запрашивающая сторона не могут получить полный доступ к данным из соображений конфиденциальности.

В этой схеме выбранные слуги (децентрализованные компьютеры) вычисляют части необработанных входных данных, используя общедоступный алгоритм. Вычисленные данные в конечном итоге передаются запрашивающей стороне.

Насколько я понимаю EVM, и входные данные, и алгоритм хранятся в блокчейне, что сильно ограничивает доступные вычислительные ресурсы и излишне увеличивает размер блокчейна.

Вскоре после этого я обнаружил Ethereum Computation Market , который выглядит более интересным для моего приложения.

Поскольку я все еще не понимаю, что такое EVM на самом деле, я хотел бы знать, могу ли я использовать его для:

  • Вычисление зашифрованных данных, выдаваемых из облака озера данных
  • Зашифруйте результат, используя метод, подобный GPG.
  • Отправить результат на облачный сервер.

Ответы (1)

Сам EVM представляет собой виртуальную машину, которая выполняет очень ограниченный подмножество инструкций. Более официально,

Виртуальная машина Ethereum (EVM) — это среда выполнения смарт-контрактов в Ethereum. Он не только изолирован, но фактически полностью изолирован, что означает, что код, работающий внутри EVM, не имеет доступа к сети, файловой системе или другим процессам. Смарт-контракты даже имеют ограниченный доступ к другим смарт-контрактам.

Контракты живут в блокчейне в специфичном для Ethereum двоичном формате (байт-код EVM). Однако контракты обычно пишутся на языке высокого уровня Ethereum, компилируются в байтовый код с помощью компилятора EVM и, наконец, загружаются в блокчейн с помощью клиента Ethereum.

(См. здесь источник)

Кажется, что теоретически вы могли бы выполнять любые вычисления в EVM, но с этим все еще остается проблема: если код работает на компьютере, любые данные, которые он использует, могут быть расшифрованы кем-то, кто решил их увидеть (например, дамп памяти все, что используется в инструкциях на уровне ассемблера). Вы хотели бы поместить данные в TPM или что-то вроде контейнера PlayReady (способ Microsoft скрыть код DRM от обычных инспекторов памяти), чтобы по-настоящему защитить их.

Это похоже на такие проекты, как SETI@home, но без требования шифрования.

Теоретически вы ищете «Гомоморфное шифрование», которое в настоящее время все еще является предметом исследований, поэтому, возможно, оно еще не готово для широкомасштабного использования.