BTC 98197.9$
ETH 3410.32$
Tether (USDT) 1$
Toncoin (TON) 6.43$
telegram vk Х
telegram vk Х
Russian English
"

Что такое FuelVM и как она работает?

Дата публикации:21.05.2023, 09:13
2693
2693
Поделись с друзьями!

Fuel Labs создает новый уровень выполнения для масштабирования приложений блокчейна следующего поколения. FuelVM разработан как модульный — его можно подключить в качестве исполнительного механизма для любого блокчейна. Прежде всего, FuelVM будет развернут как накопительный пакет уровня 2 на Ethereum, но теоретически его можно развернуть где угодно как L2 или даже как еще один L1. FuelVM предназначен для масштабирования Ethereum без увеличения требований к узлу, а скорее за счет более эффективного использования существующего оборудования.

Fuel Labs также разрабатывает новый DSL для написания контрактов для FuelVM под названием Sway. Sway вдохновлен Rust и Solidity для создания идеального языка программирования смарт-контрактов.

Что такое FuelVM?

FuelVM — это полностью специализированная виртуальная машина для выполнения смарт-контрактов. Виртуальная машина Fuel с самого начала спроектирована так, чтобы легко выявлять мошенничество, и ее можно использовать в качестве уровня выполнения транзакций для оптимистичной свертки.

FuelVM оптимизирован для более эффективного использования оборудования с целью увеличения пропускной способности выполнения транзакций. Он основан на UTXO (Unspent Transaction Output, выход неизрасходованных транзакций – прим. ред.) и заставляет каждую транзакцию явно определять UTXO, с которыми она будет работать. Поскольку исполнительный механизм может точно определить, к какому состоянию относится каждая транзакция, он может тривиально находить неконфликтные транзакции и распараллеливать их.

Почему виртуальная машина имеет значение?

Виртуальная машина — это система, которая может понимать код смарт-контракта и выполнять переходы между состояниями на основе правил, определенных в этом коде. Другими словами, виртуальная машина — это операционная система для блокчейна смарт-контрактов.

На сегодняшний день виртуальные машины смарт-контрактов не претерпели значительных изменений, кроме первоначальных версий, представленных в Ethereum. Все широко используемые блокчейны смарт-контрактов (кроме Solana) сегодня используют ту же виртуальную машину, что и Ethereum: EVM.

В современном мире EVM «достаточно хороша», потому что основным узким местом масштабирования является не скорость выполнения транзакций, а пропускная способность, которую может поддерживать механизм консенсуса (блочное пространство). С развитием решений для масштабирования уровня 2 и решений DA, таких как Celestia, EIP-4844, Danksharding и EigenDA, стоимость размещения данных транзакций свертки в L1 больше не будет основным ограничением.

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

Отличительные черты FuelVM

Выполнение + распараллеливание проверки

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

  • Входные данные: список всех контрактных UTXO, которых коснется транзакция, + данные для разблокировки UTXO или сценария предиката.
  • Выходы: определите UTXO, которые будут созданы.
  • Информация о газе: цена на газ + лимиты на газ
  • Свидетели: метаданные + цифровая подпись для авторизации

Критической точкой здесь является явный список «входов», в котором перечислены все UTXO, которые будут использоваться. Это включает в себя «специальные» контрактные UTXO. Если перед выполнением любого кода виртуальная машина может определить, какие контракты затронет транзакция, она может безопасно выполнять все другие неконфликтные транзакции с доступом к состоянию параллельно.


Как выполнение транзакции, так и проверка могут использовать преимущества параллелизма (проверка может в еще большей степени).

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

Собственная система активов

В EVM есть один нативный актив: ETH. Все остальные активы реализованы через смарт-контракт, который обрабатывает балансы (ERC20). В Fuel разработчики могут свободно реализовывать активы в смарт-контрактах, но есть возможность позволить виртуальной машине обрабатывать это изначально.

Есть несколько существенных преимуществ собственных активов по сравнению со смарт-контрактом в стиле ERC20 для управления балансом. Во-первых, манипулирование собственными активами дешевле (с точки зрения газа), чем манипулирование состоянием в смарт-контракте. Это может быть связано с тем, что он работает на низкоуровневых примитивах (вместо манипулирования хранилищем используется система UTXO). Во-вторых, нативные активы имеют лучший UX, подобно тому, как отправка ETH намного проще, чем отправка ERC20 (нет необходимости в настройке утверждений).

Абстракция нативной учетной записи + предикаты

Абстракция учетной записи была горячей темой исследований, и на протяжении многих лет в сообществе Ethereum было предпринято несколько попыток EIP (EIP-86, EIP-2938, EIP-3074, EIP-4337, EIP-5003). Трудно внедрить и обновить Ethereum для поддержки абстракции учетных записей, в первую очередь из-за инженерной пропускной способности основных команд / технического долга, а также связанной с этим сложности и длинного списка элементов с более высоким приоритетом. Многие накопительные пакеты имеют возможность реализовать абстракцию учетных записей с самого начала в своих новых средах выполнения. Среди них — FuelVM, который, помимо встроенной абстракции учетной записи, также будет включать новый интересный примитив: предикаты.

Предикат — это чистый (не имеющий доступа к состоянию) сценарий контракта, который просто возвращает логическое значение (истина или ложь). UTXO могут быть заблокированы за предикатом, чтобы их можно было потратить только тогда, когда выполняются условия, определенные в предикате. Это приводит к интересной возможности UX, когда пользователи могут настроить транзакцию на выполнение только при определенных условиях, а затем, как только предикат будет выполнен, их транзакция может выполняться автоматически. Кроме того, предикаты могут быть сокращены при их уничтожении, поэтому они не способствуют раздуванию состояния.

Простой демонстративный пример: пользователь устанавливает транзакцию на покупку X токенов всякий раз, когда цена достигает порога, определенного в предикате.  

Многомерное ценообразование ресурсов

Ценообразование ресурсов является одним из наиболее важных компонентов блокчейна смарт-контрактов. Децентрализация поддерживается за счет поддержания потребностей блокчейна в ресурсах на разумном и доступном уровне. Ценообразование ресурсов позволяет системе взимать плату с пользователей за потребление «работы» от узлов в сети.

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

FuelVM сможет реализовать динамическое ценообразование с несколькими ресурсами, что способно стимулировать исполнителей узлов к лучшей оптимизации своего базового оборудования, при этом оптимизируя максимальную «полезность на блок».


Этот рисунок демонстрирует ситуацию, когда один смарт-контракт имеет значительно более высокий спрос, чем другие.

При локализованном ценообразовании ресурсов другие контракты не затрагиваются в такой же степени. Выпуск NFT — хороший тому пример. Это несколько похоже на ценообразование ресурсов по сравнению с ценообразованием по контракту (предложенный стиль Solana. Смарт-контракт с определенным профилем ресурсов будет оцениваться иначе, чем другой контракт. В примере с  NFT горячий контракт может иметь профиль ресурсов, который очень интенсивно использует хранилище, но очень дешев в вычислительных ресурсах. Смарт-контракты, которые предъявляют высокие требования к вычислительным ресурсам по сравнению с хранилищем, не будут так затронуты падением NFT.

Стратегия Solana по разрушению рынков комиссий по счетам или контрактам добавляет уровень абстракции между реальными базовыми ресурсами и спросом на них. Это означает, что все еще могут быть ситуации, когда комиссии очень низкие, но нагрузка на узлы очень высока. Например, в системе может быть чрезвычайно высокая нагрузка на хранилище из-за события, когда, например, одновременно чеканится много разных NFT, но комиссии очень низкие, потому что не весь этот трафик происходит на одной учетной записи. Модель платы за учетную запись действительно решает проблему горячего разделения для учетных записей, но оставляет сценарии, в которых система неправильно оценивает базовые ресурсы, поэтому она все равно может привести к сбоям.

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

Соображения по раздуванию состояния

Узким местом в geth в настоящее время является ввод-вывод для чтения и записи состояния. Изначально предполагалось, что 100% состояния Merkle-Patricia-trie (MPT, улучшенная реализация дерева Меркла, использующаяся в Ethereum – прим. ред.) поместится в ОЗУ (оперативное запоминающее устройство – прим. ред.) стандартного устройства. Это уже не так, поскольку состояние выросло до более чем 900 ГБ и, как ожидается, будет увеличиваться примерно на 50–100 ГБ в год, что является неоправданно большим значением, поэтому большинство узлов обратились к SSD (Solid-State Drive, твердотельный накопитель – прим. ред.) для хранения состояния. Исторически сложилось так, что SSD не улучшаются так быстро, как растет размер состояния, что будет продолжать влиять на децентрализацию сети. Это критическая проблема, которую исследователи Ethereum обсуждают в течение некоторого времени.

FuelVM создается с учетом этой проблемы. Соучредитель Fuel Labs Джон Адлер несколько раз говорил о том, какую роль играет ценообразование ресурсов в том, как государственные или другие ресурсы потребляются смарт-контрактами. Благодаря сочетанию соответствующих цен на ресурсы и более четкой модели данных для сокращения состояния с системой UTXO, FuelVM сможет держать состояние под контролем, снижая стоимость работы узла, что эквивалентно увеличению децентрализации сеть.

Децентрализация «секвенсора»

Хотя уровни 2 позволяют нам разгрузить вычислительные ресурсы основного блокчейна, им все же необходимо предоставить механизм для упорядочения транзакций. Многие решения уровня 2 запускаются с так называемым «секвенсором». Секвенсор — это привилегированный узел, который отвечает за упорядочивание транзакций, выполнение переходов между состояниями, а затем отправку корневого обновления состояния вместе со сжатой информацией о транзакциях на уровень 1 Ethereum. Очевидно, но примечательно, что один суперкомпьютер, отвечающий за секвенирование, может выполнять больше транзакций за эпоху, чем множество меньших компьютеров, дублирующих одну и ту же последовательность транзакций.

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

  1. Контролировать порядок транзакций очень выгодно. В Ethereum и других блокчейнах можно наблюдать, что MEV является одним из основных источников дохода для тех, кто заказывает блоки. Одна сторона, контролирующая заказы и захват MEV, в конечном итоге приводит к ухудшению исполнения для пользователей, как мы видим сегодня в традиционных финансах.
  2. Централизованный секвенсор может быть единой точкой отказа как с точки зрения доступности, так и с точки зрения регулирования. Если одна или несколько организаций используют секвенсоры, они могут выйти из строя или быть отключены. Это риск для жизни сети.
  3. Централизованный секвенсор может подвергать цензуре транзакции на уровне 2. Секвенсор может выбирать любые транзакции и размещать их в любом порядке во время построения блока, что дает возможность цензуры. Справедливости ради, многие L2 справляются с этим моментом, предоставляя механизмы «принудительной транзакции», которые позволяют пользователям обходить секвенсор и напрямую включать транзакции, используя L1.
  4. Секвенсоры могут давать непоследовательные обещания о состоянии цепочки пользователям свертки. Это часто называют двусмысленностью, что в основном означает, что секвенсор может дать вводящее в заблуждение обещание относительно некоторого состояния L2. Это происходит из-за того, что быстрое завершение свертки является надежным шагом, секвенсер может злоупотреблять этим доверием, что приводит к тому, что пользователи делают то, чего они не намерены.

Как Fuel решает эти проблемы?

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

Кроме того, команда Fuel думает о токеномике уровня 2 с учетом децентрализации, MEV и других соображений. Соучредитель Fuel Джон Адлер в январе написал пост о модели токенов для блокчейнов уровня 2, в котором изложен дизайн токена, который помогает децентрализовать производство блоков, позволяя накопительным пакетам токенизировать нехватку блочного пространства за счет права взимать комиссионные сборы. Сбор комиссий — это только одна часть дохода для производителей блоков, как мы видели в других сетях, MEV — еще одна большая часть дохода. Как и в случае с нехваткой места в блоках, доход MEV также будет токенизирован через право производить блоки.

Модель состояния: UTXO против учетной записи

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

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

Войны виртуальных машин

Другие команды, помимо Fuel, тоже работают над виртуальными машинами следующего поколения для блокчейнов смарт-контрактов, таких как Mysten Labs и Aptos (APT), которые работают с MoveVM, изначально разработанным инженерами Facebook* в рамках проекта Libra. Это еще раз подтверждает тезис о том, что существует потребность в новых средах выполнения для поддержки приложений блокчейна следующего поколения. Во всех этих проектах есть интересные подходы и разные компромиссы.

В те годы, когда MoveVM находился в застое, пока Libra была занята юридическими баталиями, многое изменилось в криптомире. Fuel смог адаптироваться к этим изменениям и оставаться гибким в чрезвычайно быстро развивающейся отрасли, в то время как Move немного отстал. При этом, поскольку Move вышла из Facebook* и были завершены новые крупные раунды финансирования, они, безусловно, готовятся к войне.

Заключение

  • В отличие от других L2, Fuel планирует с самого начала децентрализовать роль секвенсера, разработав виртуальную машину так, чтобы для увеличения масштаба не требовалось дорогостоящее оборудование.
  • Его можно развернуть во многих средах, но приоритетом является согласование Ethereum с оптимистичным накопительным пакетом.
  • UX Fuel будет намного лучше, чем у EVM, благодаря нативным и новым способам взаимодействия с блокчейном, таким как абстракция учетной записи, сценарии и предикаты.
  • Модель данных UTXO менее противоречива, чем модель данных учетной записи, и приведет к большему параллелизму и меньшему раздуванию состояний.

*Социальная сеть Facebook признана экстремистской организацией и запрещена в России.

Подписывайся на наш Telegram канал. Не трать время на мониторинг новостей. Только срочные и важные новости

https://t.me/block_chain24