Автор оригинала: торговый аналитик PSE @cryptohawk

ТЛ;ДР
Виртуальная машина — это программно-эмулируемая компьютерная система, обеспечивающая среду выполнения программ. Он может моделировать различные аппаратные устройства и обеспечивать запуск программ в контролируемой и совместимой среде.
Виртуальная машина Ethereum (EVM) — это виртуальная машина на основе стека, используемая для выполнения смарт-контрактов Ethereum. В zkEVM реализованы определенные zk-доказательные оптимизации эффективности генерации для эквивалентности/совместимости EVM;
zkVM отказывается от эквивалентности/совместимости EVM и повышает приоритет дружелюбия к zk;
конфиденциальность zkVM накладывает встроенные функции конфиденциальности на zkVM;
SVM, FuelVM и MoveVM объединяет стремление к максимальной производительности за счет параллельного выполнения, но у них есть свои особенности в деталях конструкции;
ESC VM и BitVM провели определенные инновационные эксперименты на вычислительном уровне в цепочках ETH и BTC соответственно, но фактическая потребность в реализации в текущей среде невелика.
Огромная пользовательская экология EVM определяет, что любой блокчейн-сети, которая откажется от нее, будет трудно конкурировать с ней в краткосрочной перспективе. Таким образом, не-EVM-экология знакомит с экологическими пользователями EVM через трансляторы/компиляторы/интерпретаторы байт-кода и даже уровни совместимости VM. использовать не-EVM. Использование функций виртуальной машины для создания нового экологического повествования может стать необходимым путем к успеху.
1.1 Что такое ВМ?
Виртуальная машина (ВМ) — это строительный блок виртуализированных вычислительных ресурсов, который выполняет почти те же функции, что и компьютер, включая запуск приложений и операционных систем. Концепция виртуальных машин не нова, и эта технология широко используется во многих технологических экосистемах.
В контексте блокчейна виртуальная машина (ВМ) — это часть программного обеспечения, запускающая программы, часто называемая средой выполнения, которая выполняет смарт-контракты блокчейна. Виртуальные машины обычно создают виртуальную компьютерную среду, моделируя различные аппаратные устройства. Аппаратные устройства, которые могут моделировать разные виртуальные машины, различаются, но обычно включают в себя процессор, память, жесткий диск, сетевой интерфейс и т. д. Когда отправляется транзакция в цепочке, виртуальная машина отвечает за обработку транзакции и обновление состояния блокчейна (текущее глобальное состояние всей сети), на которое влияет выполнение транзакции. Конкретные правила изменения состояния сети определяются виртуальной машиной. При обработке транзакции виртуальная машина преобразует код смарт-контракта в формат, который может выполнять аппаратное обеспечение узла/валидатора.
Самым важным ядром среди виртуальных машин является LLVM (виртуальная машина низкого уровня), которое можно рассматривать как самое важное ядро компилятора. На рисунке показана исходная схема работы EVM. Смарт-контракт преобразуется через промежуточный код LLVM IR и преобразуется в байт-код. Эти байт-коды будут храниться в блокчейне. При вызове смарт-контракта байт-коды будут преобразованы в соответствующие коды операций, которые затем будут выполняться EVM и оборудованием узла.

1.2 Основная виртуальная машина
1.2.1 EVM — Всего у Blockchain VM есть один камень, у EVM исключительно восемь сегментов, а остальные разделены на два сегмента.
Репрезентативные проекты: Оптимизм, Arbitrum
Виртуальная машина Ethereum (EVM) представляет собой экосистему блокчейна с наиболее активными пользователями-разработчиками в отрасли. Это виртуальная машина на основе стека, которая обеспечивает виртуальную компьютерную среду путем моделирования аппаратных устройств, таких как процессор, память, хранилище и стеки. выполнять инструкции смарт-контракта и сохранять статус и данные смарт-контракта. Набор инструкций EVM включает в себя различные коды операций Opcode, такие как арифметические операции, логические операции, операции хранения, операции перехода и т. д.

Память и хранилище, моделируемые EVM, — это устройства, используемые для хранения состояния и данных смарт-контрактов. EVM рассматривает память и хранилище как две разные области и может получать доступ к состоянию и данным смарт-контрактов путем чтения и записи памяти и хранилища.
Имитируемый стек EVM используется для хранения операндов и результатов инструкций. Большинство инструкций в наборе команд EVM основаны на стеке: они считывают операнды из стека и помещают результат обратно в стек.

Процесс проектирования EVM, очевидно, идет снизу вверх. Сначала дорабатывается моделируемая аппаратная среда (стек, память), а затем разрабатывается собственный набор инструкций ассемблера (Opcode) и байт-код (Bytecode) в соответствии с соответствующей средой. . Сообщество Ethereum разработало два скомпилированных языка высокого уровня — Solidity и Vyper — для повышения эффективности выполнения EVM. Само собой разумеется, что Vyper — это язык высокого уровня EVM, разработанный Виталиком для устранения некоторых недостатков, существующих в Solidity. Однако он не получил широкого распространения в сообществе, поэтому постепенно исчез. этап истории.
1.2.2 zkEVM — я хочу все: совместим со средой EVM + поддерживает глобальное корневое преобразование состояния для создания zk-доказательства
Репрезентативные проекты: Taiko, Scroll, Polygon zkEVM
Поскольку EVM не был создан с учетом вычислений, защищенных от zk, он имеет характеристики, которые не подходят для проверки схем, особенно с точки зрения специальных кодов операций, архитектуры на основе стека, накладных расходов на хранение и затрат на доказательство. zkEVM — это виртуальная машина, которая выполняет смарт-контракты способом, совместимым с вычислениями, защищенными от zk, поэтому процесс выполнения EVM можно проверить более эффективно и с меньшими затратами с помощью zk-proof/validity-proof. По сравнению с OP Rollup, уровень исполнения должен только копировать EVM, а создание EVM, совместимого с ZK, является дополнительной проблемой для ZK Rollup.
ZK-коллапы нелегко совместимы с виртуальной машиной Ethereum (EVM). Доказательство вычислений EVM общего назначения в схеме является более сложным и ресурсоемким, чем доказательство простых вычислений (таких как передача токена, описанная ранее).
Однако достижения в области технологии с нулевым разглашением (открывается в новой вкладке) возродили интерес к заключению вычислений EVM в доказательства с нулевым разглашением. Эти усилия направлены на создание реализации EVM с нулевым разглашением (zkEVM), которая может эффективно проверять правильность выполнения программы. .
Как и EVM, zkEVM переходит между состояниями после выполнения вычислений на определенных входных данных. Разница в том, что zkEVM также создает доказательства с нулевым разглашением для проверки правильности каждого шага выполнения программы. Доказательства валидности проверяют правильность операций, связанных с состоянием виртуальной машины (память, стек, хранилище) и самими вычислениями (т. е. правильно ли операция вызывала правильные коды операций и выполняла их правильно?).

Идея красивая, но реальность очень тощая. В настоящее время Rollup сложно добиться как дружелюбия к ZK, так и совместимости с EVM (или даже эквивалентности), то есть он должен либо как можно полнее копировать уровень исполнения Ethereum L1, включая хэш, дерево состояний и дерево транзакций, предварительную компиляцию и т. д., чтобы клиент выполнения Ethereum L1 можно было использовать как есть для обработки блоков Rollup или отказаться от совместимости EVM и воссоздать существующий код операции для внутрисхемной аттестации/проверки; , что позволяет выполнять смарт-контракты.
1.2.3 zkVM — нельзя получить свой пирог и съесть его: надежная и ориентированная на эффективность виртуальная машина, не использующая evm
Репрезентативные проекты: Starknet, Zksync, RISC ZERO.
zkVM отказывается от совместимости с EVM, принимает доказательство данных и обновление статуса в качестве своих основных целей и находит общий знаменатель между криптографией и языками высокого уровня, чтобы обеспечить общую структуру для различных приложений.
Поскольку Starkware стартовала раньше во всей области ZK, она накопила достаточно технологий и имеет определенное технологическое преимущество. Это типичная техническая архитектура, ориентированная на ZK, а Cairo VM и язык Cairo построены на основе ZK. Недостатком является то, что стоимость обучения в Каире относительно высока.
Структура ZKsync совместима с характеристиками EVM и ZK, интегрируя Solidity с собственным разработанным языком схем Zinc и объединяя их на уровне IR внутри компилятора. Преимущество состоит в том, что ядро компилятора LLVM совместимо с несколькими языками.
RISC Zero использует архитектуру RISC-V для создания симулятора, который позволяет программистам писать программы для zkVM, используя распространенные языки, такие как Rust, C/C++ и Go. Это означает, что логику приложения не нужно ограничивать чем-то. может быть выражено в Solidity, что позволяет писать и объединять ненужный код.
1.2.4 Конфиденциальность zkVM — zk Friendly + встроенная поддержка конфиденциальности пытаются зажечь новую экологическую искру
Репрезентативные проекты: Алео, Ола, Полигон Миден
Блокчейн служит системой публичного реестра, и все транзакции проводятся в цепочке, а это означает, что изменения состояния, содержащие информацию об активах, связанных с адресами или счетами, являются открытыми и прозрачными. Поэтому, помимо работы над решениями по масштабированию, некоторые команды блокчейнов считают, что следующей ключевой функцией, которую необходимо реализовать, является конфиденциальность.
Конфиденциальность zkVM В дополнение к функциям поддержки расширения, дружественной к zk, благодаря функциям конфиденциальности, изначально поддерживаемым собственным языком программирования, разработчики приложений верхнего уровня могут разрабатывать децентрализованные приложения, связанные с конфиденциальностью, которые откроют новые сценарии приложений и грандиозные повествования. Например, полностью решить проблему MEV и защитить право владения пользовательскими данными. Конечно, сложность конструкции Privacy zkVM требует более крупной технической команды для ее реализации, и для ее реализации может потребоваться несколько лет.
1.2.5 SVM – После того, как волна отступила, остались тлеющие угли: среда исполнения, в которой проектирование производительности достигло предела
Репрезентативные проекты: Eclipse Mainnet, Nitro, MakerDAO Chain (возможно)
SVM, виртуальная машина Solana, ориентирована на высокопроизводительную среду выполнения, а смарт-контракты в основном написаны на языке Rust. По сравнению с однопоточными средами выполнения EVM и EOS WASM, требуя от транзакций Solana описания всех состояний, которые транзакция будет читать или записывать при выполнении, SVM реализует одновременное выполнение непересекающихся транзакций и транзакций, которые считывают только одно и то же состояние.

Кроме того, чтобы обеспечить быструю проверку/рассылку больших блоков транзакций, процесс проверки транзакций в сети Solana широко использует оптимизацию конвейера, распространенную в конструкции ЦП. Чтобы удовлетворить ситуацию, когда поток входных данных обрабатывается в несколько этапов, и за каждый шаг отвечает различное оборудование. Типичная аналогия — стиральная машина и сушилка, которые последовательно стирают/сушат/складывают несколько загрузок белья. Очистку необходимо производить перед сушкой, а складывание – перед сушкой, но каждую из этих трех операций выполняет отдельный агрегат.

Кроме того, SVM основан на регистрах и имеет гораздо меньший набор команд, чем EVM, что упрощает доказательство выполнения SVM в ZK. Для оптимистичных сводных данных конструкция на основе регистров упрощает установку контрольных точек.
1.2.6 Fuel VM — стек положительных эффектов: параллельная виртуальная машина в рамках UTXO.
Репрезентативный проект: Топливо
Fuel VM — это усовершенствование, основанное на технической базе EVM, Solana, WASM и BTC Cosmos. По сравнению с EVM оно имеет следующие характеристики:

Самое уникальное то, что Fuel не только устанавливает списки доступа, аналогичные SVM, но и имеет возможность выполнять транзакции параллельно с непересекающимися транзакциями. Он также использует модель UTXO, которая далее делится на токены UTXO и контракты UTXO. повышение эффективности доступа и пропускной способности вычислений.

Кроме того, Fuel VM обеспечивает мощные и удобные возможности разработки благодаря собственному предметно-ориентированному языку Sway и поддерживающей цепочке инструментов Forc. Его среда разработки сохраняет преимущества языков смарт-контрактов, таких как Solidity, при этом применяя парадигму, представленную в. экосистема инструментов Rust.
В будущем Fuel VM также внедрит обновления языка Sway, включая оптимизацию компилятора с точки зрения размера байт-кода, Sway будет поддерживать больше бэкэндов (бэкэнд EVM уже находится в разработке), абстракция станет более экономичной и будет доступно больше приложений. Миграция с Solidity/Vyper на Sway, улучшение анализа повторного входа на уровне компилятора и многое другое.
1.2.7 ESC VM — преемник Ordinal/Smartweave: вычислительный уровень поверх Ethereum
Репрезентативный проект: Протокол подписей
ESC VM, или виртуальная машина Ethscriptions, — это решение для смарт-контрактов, предложенное протоколом Ethscriptions. Протокол Ethscriptions сам по себе представляет собой протокол, аналогичный BTC Ordinal в цепочке Ethereum, ориентированный на изучение недорогих альтернатив, отличных от смарт-контрактов и L2.
Ethscriptions позволяют пользователям обходить хранение и выполнение смарт-контрактов с очень низкими затратами и применять данные вызовов в Tx для расчета в соответствии с заранее согласованными правилами протокола. Проще говоря, если есть успешная транзакция Ethereum, ее данные вызова соответствуют указанным действительным спецификациям данных, а уникальный адрес «получателя» не равен 0, можно считать, что Ethscription был создан на законных основаниях, адрес «откуда». является создателем, а адрес «кому» принадлежит владельцу.
В начале разработки каждое Ethscription предпочитает форму NFT, например изображение NFT. Содержимое изображения напрямую записывается в данные вызова в формате Base 64:

Недавно популярный eths основан на спецификации протокола brc-20 и создан с помощью Ethscription:

Смарт-контракт, представленный ESC VM, называется немым контрактом, который публикуется как логический контракт, но не взаимодействует в цепочке в форме EVM. Кроме того, в ESC VM также добавлена компьютерная команда специального формата. Созданные с использованием этого формата Ethscriptions будут распознаваться ESC VM и взаимодействовать с немыми контрактами, например Deploy — Deploy (Развернуть немые контракты), Call — вызвать немые контракты.
Это решение имеет некоторые ограничения. Во-первых, функция тупого контракта не подлежит оплате. То есть, если вы хотите отправить ETH через тупой контракт, вам необходимо пройти через «мостовой контракт» и «мостовой контракт». сам по себе предполагает злоупотребление контролем и кражу активов. Во-вторых, существуют входные барьеры в экосистему, которые не допускают произвольного создания глупых контрактов, и их коды должны быть определены в рамках предложения по управлению Протоколом Ethscriptions.
Подводя итог, ESC VM — это вычислительный уровень, построенный на основе Ethereum L1 в качестве уровня хранения данных. Он реализуется путем размещения логики контракта, вызовов контракта, вызовов контракта и другого содержимого данных в данных вызова ESC VM. Консенсус состояния — это консенсус клиента виртуальной машины ESC, который аналогичен логике реализации SmartWeave в Arweave, за исключением того, что уровень хранения данных SmartWeave — это Arweave.
1.2.8 Bit VM — Интересный исследовательский эксперимент: одноранговый канал исполнения на BTC
Представительский проект: ZeroSync
Основатель ZeroSync Робин Линус 9 октября опубликовал официальный документ «BitVM: вычислить что-либо на биткойнах». Если быть точным, это не виртуальная машина, а попытка создать полное по Тьюрингу вычислительное пространство, контракты которого хранятся в биткойн-ончейне. , но логика контракта выполняется вне цепочки. Если вы считаете, что другая сторона нарушила договор, вы можете инициировать вызов в цепочке. Если другая сторона не может ответить правильно, вы можете забрать все средства в контракте.
Преимущество состоит в том, что Биткойну можно придать полноту по Тьюрингу без каких-либо изменений в протоколе Биткойна, без новых кодов операций или софт-форков, и его можно применять в любое время.
Его недостатки также очевидны. Во-первых, он поддерживает транзакции только между двумя сторонами (одна сторона сертифицирует, а другая проверяет). Во-вторых, создание контракта требует создания большого объема данных и предварительного подписания большого количества транзакций. Хранение информации вне сети огромно.
Ниже приводится краткое введение в техническую логику:
(1) Нажмите, чтобы ввести обязательство
Фиксация ввода точки позволяет проверяющему установить входное значение 0 или 1 для логического элемента. В этом фиксации есть два хеш-значения H(A 0) и H(A 1). Доказывающему необходимо раскрыть прообраз хэша. , например A 0 , входное значение устанавливается на 0 , а если обнаруживается A 1 , входное значение устанавливается на 1 .
(2) Обязательство логического вентиля
Получив входное значение, вы можете комбинировать любой логический элемент в сценарии Биткойн, комбинируя биткойнские И, НЕ и другие коды операций.
(3) Обязательство двоичной схемы
Полнота по Тьюрингу может быть достигнута путем объединения сотен миллионов логических элементов в двоичную схему. Чтобы подключить эту двоичную схему к сети Биткойн, все логические элементы необходимо разместить в листовом узле по адресу Taproot.

(4) Связь «вызов-ответ»
Недостаточно зафиксировать схему в цепочке. Обеим сторонам необходим эффективный способ проверки правильности результатов расчетов контракта. В идеальном мире контракт выполняется вне сети, и обе стороны счастливы, если они готовы сотрудничать и не спорят по поводу результата. Однако в случае возникновения спора между двумя сторонами транзакции им необходимо ввести ссылку «вызов-ответ», чтобы проверить результаты расчета и принудительно распределить баланс канала через биткойн-скрипты.

Таким образом, BitVM далек от того, чтобы быть чем-то вроде Bitcoin Rollup или L2, без полноценной среды выполнения виртуальной машины, глобального состояния, языка высокого уровня для публикации сложных смарт-контрактов, а также не позволяющего любому количеству пользователей легко взаимодействовать с этими контрактами. . Для иллюстрации давайте воспользуемся очень популярным примером: BitVM — это все равно, что построить гигантский компьютер размером больше комнаты в эпоху, когда каждый может использовать мобильный терминал.
1.2.9 MoveVM — продукт генетического наследования Facebook Web2.
Репрезентативные проекты: Aptos, Sui
Move — язык программирования для написания безопасных смарт-контрактов. Первоначально он был разработан Facebook для обеспечения поддержки блокчейна Diem. После того, как проект блокчейна Diem был приостановлен, проекты, представленные Aptos и Sui, продолжали использовать язык Move. Самая большая особенность блокчейна Move заключается в том, что хранилище данных использует глобальное хранилище, состоящее из дерева, основанного на адресе учетной записи. Каждый адрес может хранить данные ресурса и код модуля.

В Move есть два типа программ: модули и сценарии. Модули — это библиотеки, определяющие структурные типы и функции, работающие с этими типами. Тип структуры определяет глобальный режим хранения Move, а функция модуля определяет правила обновления хранилища. Сами модули также хранятся в глобальном хранилище. Скрипт является точкой входа исполняемого файла, аналогично функции main в традиционных языках, и представляет собой временный фрагмент кода, не публикуемый в глобальном хранилище.

Подводя итог, можно сказать, что модуль Move аналогичен модулю динамической библиотеки, загружаемому при запуске системного исполняемого файла, а сценарий аналогичен основной программе. Пользователи могут писать свои собственные сценарии для доступа к глобальному хранилищу, включая вызов модулей, а публикация модулей или выполнение сценариев осуществляется через Move VM.
1.3 Тенденции экологического развития
Теперь, когда сетевой эффект EVM настолько силен, миграция пользователей EVM в среду, не связанную с EVM, стала крупнейшей точкой роста для новых блокчейн-проектов. Это приведет к большей компонуемости Dapp и большей связности в будущем. Несколько лет ускорят работу пользователей. рост.
1.3.1 Совместимость интерфейса кошелька
Включение пользователей EVM в цепочки, не относящиеся к EVM, исторически было серьезным препятствием, но недавно запущенная Metamask Snap сломает этот барьер. Пользователи EVM могут продолжать использовать MetaMask, не переключая кошельки. Благодаря вкладу Drift с открытым исходным кодом в создание превосходной реализации MetaMask Snap, UX эквивалентен взаимодействию с любой цепочкой EVM. Пользователи основной сети Eclipse смогут взаимодействовать с собственными приложениями в MetaMask или использовать собственные кошельки Solana, такие как Salmon.

1.3.2 Совместимость серверной части виртуальной машины
1.3.2.1 Транслятор/компилятор
Представительский проект: Wrap
Warp — это переводчик Solidity-Cairo, разработанный Nethermind, известной инфраструктурной командой Ethereum. Warp может транслировать код Solidity в Cairo, но переведенную программу Cairo часто необходимо модифицировать и добавлять функции Cairo (такие как вызов встроенных функций, оптимизация памяти и т. д.), чтобы максимизировать эффективность выполнения.
1.3.2.2 Уровень совместимости интерпретатора байт-кода/VM
Репрезентативные проекты: Какарот, Неон ЭВМ.
Kakarot — это интерпретатор байт-кода EVM, написанный в Каире и реализованный в виде смарт-контрактов, развернутых в Starknet. Он имитирует стек, память, выполнение и другие аспекты EVM в форме смарт-контрактов Cairo. По сравнению с трансляцией кода, Kakarot реализует пошаговую реализацию Opcode и предварительной компиляции на основе EVM, а также создает такие компоненты, как реестр учетных записей и реестр Blockhash, для выполнения дополнительной обработки при сопоставлении адресов учетных записей, блокирования сбора информации и т. д., позволяя kakarot, чтобы иметь более высокую встроенную совместимость.

Neon EVM — это EVM, которая работает как смарт-контракт и может быть развернута в любой цепочке SVM. Сама основная сеть Eclipse использует SVM в качестве среды выполнения, но обеспечивает полную совместимость с EVM (включая поддержку байт-кода EVM и Ethereum JSON-RPC) через Neon EVM, а пропускная способность выше, чем у однопоточного EVM. Кроме того, каждый экземпляр Neon EVM имеет свой собственный локальный рынок комиссий, то есть существует верхний предел вычислительных единиц, связанных с взаимодействием одного контрактного счета, на высоте блока (1/4 вычислительных единиц блока), поэтому пользователи могут использовать только необходимо взаимодействовать с конкретными горячими контрактами. Или вам нужно заплатить приоритетную комиссию, когда блок заполнен. В этом смысле приложения, развертывающие свои собственные контракты, могут получить преимущества цепочки приложений, тем самым уменьшая ущерб пользовательскому опыту, безопасности или ликвидности всей сети, вызванный перегрузкой конкретного взаимодействия контракта tx.

Использованная литература:
1. «Какарот: исследование пути совместимости EVM Starknet», автор Cynic Starknet Astro
2. «BitVM вызывает бурную дискуссию: сможет ли сеть Биткойн достичь полноты по Тьюрингу?», Хаотянь
3. https://ethereum.org/en/developers/docs/evm/
4. «Техническая архитектура и экологический обзор Starkware», Макслион.
5. https://twitter.com/muneeb/status/1712461799327416491
6. «Отчет об исследовании топлива для модульного высокоскоростного уровня выполнения», от Web3 CN.
7.https://www.fuel.network/
8. https://docs.ethscriptions.com/overview/introducing-ethscriptions
9. «Анализ первой критической уязвимости Aptos Move VM», проведенный Numen Cyber Labs.
10. https://ethereum.org/en/developers/docs/evm/
11. «Что такое SVM — виртуальная машина Соланы», автор: Squads
12. «Представляем основную сеть Eclipse: Ethereum SVM L2», автор Eclipse.
13. https://john-hol.gitbook.io/bitvm/
14.https://bitvm.org/bitvm.pdf
15. «Различные типы ZK-EVM», Виталик Бутерин.
16. «Отчет об исследовании Cipholio: обсуждение планов и будущего ZkVM», автор ЙОЛО ШЕН, Cipholio Ventures.
