Существующие блокчейны общего назначения поддерживают приложения, ориентированные на одну виртуальную машину (VM), и предлагают единичное исполнение смарт-контрактов, написанных на поддерживаемых языках программирования этой VM.
Чтобы пользователи могли взаимодействовать с приложениями, работающими на разных виртуальных машинах, им необходимо переходить между сетями, управлять разными кошельками и стандартами токенов. Это вызывает неудобства и включает в себя множество доверительных и безопасностных допущений, связанных с архитектурой мостов между сетями.
Мы предлагаем новую парадигму для объединения виртуальных машин: смешанное исполнение.
Текущее состояние сред исполнения
Благодаря многолетним исследованиям и разработкам, масштабируемость блокчейнов больше не является узким местом. Блоки достаточно вместительны.
Естественно, теперь внимание разработчиков смещается на то, как использовать эту вместительность. Это объясняет возросший интерес к новым виртуальным машинам и средам исполнения за последний год.
Различные виртуальные машины имеют свои особенности, которые могут быть техническими или связаны с экосистемой VM и сетевыми эффектами. Вот несколько примеров:
-
Инструменты и инфраструктурные интеграции (например, кошельки, RPC)
-
Документация и поддержка (например, на StackOverflow)
-
Популярные приложения и доступный код
-
Параллелизм и эффективность
-
Поддержка библиотек Web2
-
Формальная верификация
Разработчики приложений выбирают блокчейн, исходя из комбинации этих (и других) характеристик. Хотя EVM часто подвергается критике, она сохраняет лучшие инструменты и инфраструктурные интеграции. И EVM, и SVM имеют надежный набор приложений. SVM известен возможностями параллелизации, а язык Move привлекает внимание благодаря встроенным средствам формальной верификации.
Проблема фрагментации экосистем
Существующие блокчейны поддерживают только единичное исполнение, из-за чего разработчики ограничены возможностями одной VM и отрезаны от большего числа пользователей и приложений.
Что делать, если вы хорошо знакомы с SVM, но хотите использовать обширное сообщество пользователей EVM? Или если вы создаете приложение на Solidity, но хотите использовать библиотеку на Rust для реализации новой функции? В сетях с единичным исполнением разработчикам приходится выбирать между ограниченными экосистемами и их характеристиками.
Представляем Смешанное Исполнение
Смешанное исполнение поддерживает приложения из разных VM в одной операционной системе, где каждое приложение — полноценный элемент сети.
Смешанные приложения бесшовно совместимы, вне зависимости от используемой виртуальной машины. Это позволяет разработчикам использовать логику контрактов и инструменты, которые лучше всего подходят для их задач, не разрывая пользовательский опыт между разными средами исполнения.
Смешанное исполнение — это среда исполнения, которая поддерживает кросс-приложений реального времени на основе различных VM.
Первая сеть со смешанным исполнением
Fluent — это первая сеть смешанного исполнения на базе Ethereum L2, объединяющая приложения на Wasm, EVM и (вскоре) SVM в единую среду исполнения.
Контракты, написанные на таких языках, как Solidity, TypeScript и Rust, теперь могут взаимодействовать без лишних сложностей. В будущем можно будет добавлять и другие VM. Преимущества такого подхода двоякие:
-
Объединение приложений и пользователей. Лучшие приложения из разных экосистем могут сосуществовать в одном месте. Объединяя различные виртуальные машины, Fluent становится дополнительной точкой исполнения для приложений, охватывая более широкую базу пользователей, чем одна среда. Эти приложения используют общее состояние, что позволяет им взаимодействовать между контрактами в реальном времени.
Например, приложение на Solana Rust (например, Solend) может вызывать приложение на Solidity (например, Uniswap). Для пользователей это не требует перехода между сетями или смены кошельков.
-
Диверсификация инструментов. Разработчики могут использовать лучшие инструменты для каждого компонента приложения. Благодаря этому смарт-контрактные приложения легче создавать в стиле микросервисов, используя миллионы существующих библиотек для языков общего назначения, таких как Rust, C++, TypeScript и других.
С помощью распространенных контрактов токенов (таких как стандартный ERC-20 для EVM и SPL для SVM) разработчики могут создавать эффективные приложения на Rust, при этом соблюдая стандартные криптовалютные нормы.
Как Fluent объединяет исполнение
Взаимодействие между контрактами на EVM, Wasm и SVM в Fluent происходит под капотом, синхронно и атомарно. Вызов программы на Solidity из программы на Solana Rust, например, выполняется одним вызовом, который включается в одну транзакцию. Здесь не нужны мосты или последовательные выполнения для атомарности.
Каждая VM представлена основной системой на основе Wasm (так называемым контрактом совместимости VM), которая определяет стандарты среды исполнения и предоставляет API для доступа к этим функциям. Программа на Solidity, обращаясь к программе на Solana Rust, указывает на контракт совместимости SVM.
Все VM в Fluent эмулируются на уровне исполнения и компилируются до rWasm (сокращенного WebAssembly), минимально измененного формата инструкции Wasm, оптимизированного для нулевых доказательств (zk). rWasm использует новую структуру учета и состояния, управляемую контрактами совместимости, и транзакции взаимодействуют на этом уровне. Для доказательства zk контракты совместимости поддерживаются дополнительной библиотекой Journaled ZK Trie (JZKT), которая делает атомарную совместимость возможной.
В ближайшие недели мы опубликуем больше информации и техническую документацию о работе Fluent.
Заключение
Смешанное исполнение объединяет лучшие качества нескольких виртуальных машин в одной среде исполнения. Fluent объединяет Wasm, EVM и SVM, поддерживая приложения из разных VM без потери совместимости. Мы видим в смешанном исполнении следующий шаг в модульном исполнении, которое открывает лучшие возможности в дизайне смарт-контрактов и слоев исполнения.
Создавайте смешанные приложения на Fluent. Смешивайте VM в вашей сети. Вопрос в том: что вы будете смешивать?
评论 (0)