Cover photo

FuelVM: Спеціалезоване Виконання для Ethereum Роллапів

Відмова від відповідальності

Ця стаття була перекладена з її оригінальної мови для вашої зручності. Незважаючи на наше прагнення до точності, можуть бути дрібні помилки або різниця в трактуванні. Для найбільш точного та достовірного представлення, будь ласка, зверніться до оригінальної публікації, доступної за посиланням. Ми цінуємо ваше розуміння і заохочуємо вас звернутися до оригінального джерела за детальною інформацією.

Ця стаття є частиною III серії, що складається з кількох частин Fuel Labs і охоплює теми, пов’язані з масштабованістю та виконанням на Ethereum. Ця серія має на меті надати всебічне розуміння проблем, пов’язаних із підвищенням продуктивності та потужності Ethereum, а також поточних рішень, які роблять його більш ефективним і масштабованим для широкого впровадження.

Fuel розпочався як оптимістичний роллап на Ethereum із випуском Fuel V1 наприкінці грудня 2020 року. Fuel V1 мав на меті забезпечити Ethereum бічною мережею з мінімізованою довірою, який успадкував безпеку Ethereum, але мав радикально перероблену модель виконання з використанням невитрачених результатів транзакцій (UTXO) модель. Fuel V1 був єдиним роллапом, який досягнув успадкування безпеки Ethereum (тепер L2Beat визначає статус «стадія 2») на практиці без сторонніх мультипідписів і повного оптимістичного доказу шахрайства (optimistic fraud proving).

Більшість сучасних блокчейн-проектів покладаються на віртуальні машини загального призначення, такі як EVM і WASM. Хоча такі архітектури завели нас далеко, існує прогалина для вирішення конкретних потреб у масштабуванні за межами монолітних архітектур до 2018 року. Віртуальні машини загального призначення (VM), хоча й універсальні, часто не мають оптимізації, необхідної для унікальних вимог виконання блокчейну (див. Частину II ).

Еволюція Fuel після V1 є експансивною та стратегічною. Останні три з половиною роки ми присвятили переосмисленню та перебудові нашої архітектури з нуля. Наша архітектура глибоко вирішує загальні проблеми, з якими стикаються сучасні блокчейни, такі як потреба в гнучкій програмній машині, орієнтована на активи модель транзакцій, багатопотоковість, паралелізм, стабільність стану та сумісність між мережами.

Сьогодні ми раді зануритися глибше в серце Fuel: FuelVM.

Спеціально Розроблена Віртуальна Машина для Роллапів

Віртуальна машина Fuel (FuelVM) включає в себе 17 років розробки блокчейну, щоб надати спільноті Ethereum надійну машинну архітектуру, розроблену для довголіття. FuelVM забезпечує архітектуру, подібну до машинних архітектур низького рівня зі скороченим набором інструкцій, таких як RISC-V ISA, ARM ISA, і віртуалізованих архітектур, таких як Web Assembly та ePBF. Наша віртуальна машина також включає в себе інформацію з минулих архітектур блокчейн-машин, таких як сценарії Bitcoin, віртуальна машина Ethereum і віртуальна машина Move.

FuelVM розроблено та налаштовано для вирішення унікальних завдань, пов’язаних із зведенням, і має на меті вирішити як стійке, так і ефективне виконання.

post image

FuelVM була створена з розумінням того, що операції вводу-виводу на диску є найповільнішою частиною обчислень і зазвичай використовуються для активного стану блокчейну під час перевірки повних нод. FuelVM дає змогу розробникам відійти від дизайну додатків із збереженням стану, який часто підтримується смарт-контрактами, забезпечуючи більш багатофункціональні мінімізовані засоби стану, такі як нативні активи, ефемерні сценарії та ефемерні умови витрат, що знімає навантаження на повну перевірку вузла (як вони роблять). не потрібно зберігати в стані), обмінюючи пошуки стану та сховище (IO) на пропускну здатність, процесор і пам’ять. Надаючи розробникам альтернативні методи створення додатків з мінімізованими станами, ми можемо досягти цілей кращої стійкості повногої ноди, зберігаючи архітектуру доступною для всіх і децентралізованою, дотримуючись основних цінностей Ethereum.

Нижче наведено більш повний список проектних міркувань для FuelVM:

Продуктивність і ефективність

  • Продуктивність виконання під час виконання

  • Стійкість стану

  • Накладні витрати на дисковий ввід/вивід

  • Оптимізація пропускної здатності

  • Можливості паралельної обробки

Безпека та перевірка

  • Віртуалізація та ізоляція

  • Інтерактивна перевірка складності гри

  • Доведенність шахрайства

  • Безпека виконання у ворожих умовах (захист від DOS-атак)

Криптографічні операції

  • Доступ до загальних криптографічних функцій блокчейна (хешування, перевірка підпису)

  • Сумісність з Ethereum (хешування Keccak256, перевірка підпису Secp256k1)

  • Умови витрат у стилі біткойн (P2SH)

Функціональність смарт-контракту

  • Розумні контракти в стилі Ethereum

  • Управління нативними активами

  • Доступ до засобів зовнішнього виклику

  • Ефемерні можливості програмування (скрипти та предикати)

Арифметика та обробка даних

  • Арифметика великих чисел

  • Арифметична безпека виконання (безпечна математика, регістри переповнення)

  • Доступність читання даних транзакцій з оперативної пам’яті

Управління газом і ресурсами

  • Потенціал вимірювання газу та накладні витрати

  • Урахування споживання енергії

Розширені функції

  • Складність схеми ЗК

  • Складність розбору інструкцій

Розробка FuelVM являє собою значну еволюцію в порівнянні з початковим запуском Fuel V1 у 2020 році. Fuel V1 був першим оптимістичним ролапом на Ethereum і однією з небагатьох машин стану, що можуть доводити шахрайство. Хоча транзакції в секунду (TPS) зазвичай є поганим показником для аналізу архітектури, корисно зрозуміти потенціал FuelVM ширше для проектів, які прагнуть включити нашу віртуальну машину. Станом на травень 2024 року FuelVM може досягти контрольних показників передачі активів у 12 тис. TPS на ядро ​​на процесорі вищого класу , і, ймовірно, зможе досягти набагато вищих результатів за допомогою додаткових оптимізацій.

Давайте дослідимо, як FuelVM і унікальна модель транзакцій UTXO від Fuel досягають підвищеної продуктивності та гнучкості завдяки важливим інноваціям, таким як паралелізоване виконання транзакцій, мінімізація стану та зручні функції.

Паралелізоване Виконання Транзакцій через UTXO

Розпаралелена модель виконання транзакцій Fuel є наріжним каменем її ефективності та масштабованості. Розпаралелювання значно покращує пропускну здатність і зменшує затримку порівняно з традиційними методами послідовної обробки. Це дозволяє розбивати завдання на менші підзадачі, які можна виконувати одночасно на кількох процесорах.

Розпаралелювання побудовано на основі списків доступу та моделі UTXO (Unspent Transaction Output), яка працює в тандемі, щоб забезпечити одночасну обробку неконфліктних транзакцій.

Списки доступу класифікують транзакції на "Тільки для читання", "Запис-знищення" та "Запис-створення". Кожна транзакція визначає всі ресурси, з якими вона взаємодіятиме, включаючи UTXO та ідентифікатори контрактів. Аналізуючи ці списки перед виконанням, FuelVM може ідентифікувати транзакції, які не мають спільних ресурсів, що перекриваються, і виконувати їх паралельно, максимізуючи ефективність.

post image

Джерело: Вивчення FuelVM

Модель UTXO відіграє вирішальну роль у полегшенні цього паралельного виконання. Оскільки UTXO є унікальними і можуть бути використані лише один раз, Fuel може ефективно розпаралелювати транзакції, які не взаємодіють з тими самими UTXO. Наш підхід гарантує, що кожна транзакція працює на різних невитрачених виходах, мінімізуючи конфлікти та забезпечуючи одночасну обробку.

Щоб проілюструвати цю концепцію, розглянемо два прості сценарії передачі токенів: Аліса надсилає 1 ETH Бобу, а Чарлі надсилає 100 USDC Девіду. В обох випадках транзакції стосуються різних активів. Транзакції обробляються одночасно без конфлікту за такими кроками:

  1. Аліса ініціює свою транзакцію, включаючи список доступу лише для читання її балансу ETH і список доступу для запису та знищення для UTXO, що представляє 1 ETH.

  2. Одночасно Чарлі створює свою транзакцію зі списком доступу лише для читання для свого балансу USDC і списком доступу для запису та знищення для UTXO, що представляє 100 USDC.

  3. Механізм виконання Fuel перевіряє обидві транзакції, підтверджуючи їхню дійсність і відсутність перекриття в їхніх списках доступу для запису та знищення.

  4. Без виявлення конфліктів FuelVM обробляє обидві транзакції паралельно, надсилаючи ETH Аліси Бобу та USDC Чарлі Девіду одночасно.

  5. Обидві транзакції швидко підтверджуються та завершуються.

Таке розпаралелювання підвищує можливості обробки транзакцій і вирішує проблеми масштабованості, які історично заважали системам блокчейн. Дозволяючи одночасну обробку неконфліктних транзакцій, Fuel забезпечує надійне рішення для керування великими обсягами транзакцій у середовищах згортання, забезпечуючи ефективне масштабування в міру зростання попиту на простір блокчейну.

Нативні Активи та Предикати

Орієнтований на активи дизайн FuelVM доповнює його розпаралелене виконання. Вбудовані коди операцій дозволяють програмам створювати та керувати декількома нативними ресурсами безпосередньо у віртуальній машині. Цей вибір дизайну значно покращує продуктивність виконання, дозволяючи власне маніпулювання активами на нижчому рівні. Маніпулювання активами нижчого рівня стає можливим завдяки використанню таких примітивів, як система UTXO, замість більш складного зберігання стану, яке зазвичай вимагається в традиційних смарт-контрактах.

Маніпулювання власними активами на рівні транзакцій за своєю суттю є дешевшим і ефективнішим, оскільки воно обходить потребу в масштабних змінах стану та сторонніх бібліотеках. Наш підхід також пропонує кращий досвід користувача. Обробка власних активів, таких як надсилання ETH, є більш простою, ніж альтернатива роботи з токенами ERC-20, які часто вимагають схвалення налаштувань і додаткових кроків. Наш підхід забезпечує швидші та економічніші транзакції та спрощений процес як для розробників, так і для користувачів.

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

Предикати дозволяють створювати умовні транзакції, дозволяючи розробникам встановлювати складні умови для виконання транзакцій у FuelVM.

post image

Наш дизайн і функціональність пропонують кілька ключових переваг, а саме:

  • Легкий і без стану: На відміну від традиційних смарт-контрактів, які зберігають обширну інформацію про стан, за своєю схемою предикати без збереження стану. Їх відсутність стану означає, що вони не зберігають дані між виконаннями, що дозволяє зменшити накладні витрати та спростити процес виконання. Природа предикатів без стану забезпечує швидку та ефективну обробку без складного керування станом.

  • Абстракція власного облікового запису: Однією з найважливіших переваг предикатів є їх роль у сприянні абстракції власного облікового запису. Предикати забезпечують гнучкий і ефективний спосіб керування активами та взаємодії з ними. Наприклад, предикати можуть виконувати транзакції, що включають кілька етапів, наприклад виконання складних угод або управління активами, не вимагаючи посередницьких контрактів. Ця можливість спрощує взаємодію та зменшує потребу в складних контрактних структурах, полегшуючи користувачам виконання складних операцій за меншу кількість кроків.

  • Спрощена обробка транзакцій: Предикати спрощують процес транзакцій, безпосередньо й ефективно вирішуючи певні завдання. Предикати можуть перевіряти та виконувати транзакції на основі попередньо визначених правил або умов, уникаючи необхідності надлишкової обробки або додаткових етапів перевірки. Оптимізація таким чином сприяє швидшому часу транзакцій і зменшенню обчислювальних витрат.

  • Покращена продуктивність виконання: Поєднання відсутності стану та обробки завдань у предикатах безпосередньо покращує продуктивність виконання. Мінімізація даних, що обробляються та зберігаються, зменшує навантаження на систему та прискорює виконання транзакцій. Така мінімізація виявляється особливо цінною в середовищах з високою пропускною здатністю, де продуктивність і ефективність мають вирішальне значення.

Підхід Fuel до Зростання Стану

Зростання Стану в системах блокчейн передбачає розширення даних, які ноди повинні зберігати та керувати ними. У міру розвитку блокчейн-мереж накопичення даних про стан може спричинити такі проблеми, як збільшення обсягу пам’яті, уповільнення обробки транзакцій і вищі операційні витрати.

З моменту створення Ethereum у 2015 році темпи зростання змінювалися. Наразі стан зростає приблизно на 2,62 ГіБ на місяць , порівняно з піком у 5,99 ГіБ на місяць. Цей показник прогнозує загальний розмір стану між 396 ГіБ і 606 ГіБ за п’ять років. Останні падіння зростання в основному пов’язані зі зниженням активності NFT і ERC-20. Нинішні темпи зростання штату є найнижчими з 2022 року.

post image

Джерело: Paradigm

Fuel вирішує проблеми зростання стану за допомогою інноваційних методів мінімізації стану, які ефективно керують і зменшують слід даних про стан. Давайте обговоримо деякі з них.

Регідрація Нативного Стану

Fuel вводить концепцію Регідрації Нативного Стану, метод ефективного управління змінами стану. Замість того, щоб постійно підтримувати й оновлювати глобальний стан, програма Fuel розділить зміни стану на менші керовані сегменти, які зберігаються як невзаємозамінні токени (NFT) у власній архітектурі активів. Наш підхід дозволяє отримати доступ до даних стану за вимогою, коли це необхідно, зменшуючи загальне навантаження на сховище та підвищуючи ефективність обробки транзакцій. Лише регідруючі дані стану, необхідні для конкретної транзакції, FuelVM мінімізує навантаження даних на ноди та підвищує швидкість доступу до стану.

Методи Мінімізації Стану

**Сценарії : **У FuelVM сценарії є тимчасовою логікою, вбудованою в транзакції. Ці сценарії виконують певні функції чи операції без постійної зміни глобального стану. Оскільки сценарії є ефемерними та обмежені контекстом транзакції, вони не сприяють довгостроковому зростанню стану, оскільки їх можна скоротити після виконання.

Предикати : Предикати приймають вхідні дані та повертають логічне значення, щоб визначити успіх транзакції. На відміну від традиційних смарт-контрактів, предикати не читають і не записують у глобальне сховище. Відсутність операцій зберігання в предикатах гарантує, що вони не сприяють зростанню стану. Предикат може перевіряти транзакції на основі конкретних умов, не змінюючи глобальний стан, таким чином оптимізуючи обробку транзакцій.

post image

Модель UTXO: У моделі UTXO кожна транзакція споживає попередні UTXO та створює нові. Локалізований підхід до керування станом означає, що зміни стану обмежуються конкретними UTXO, залученими до транзакції, а не впливають на глобальний стан. Повним нодам Fuel потрібно буде зберігати лише 32-байтові хеші кожного UTXO, щоб забезпечити дійсність майбутніх переходів між станами, а це означає, що, перемістивши більше додатків до нативних активів і предикатів, ми можемо значно зменшити основну частину стану блокчейну. Як результат, модель UTXO зменшує складність управління станом, підтримуючи масштабованість і ефективність.

Підхід до мінімізації стану, який пропонує Fuel, має кілька ключових переваг, зокрема ефективне керування станом шляхом розділення змін стану, що призводить до швидшої обробки транзакцій. Мінімізація стану також покращує масштабованість, дозволяючи Fuel обробляти більший обсяг транзакцій без зниження продуктивності. Крім того, зменшуючи залежність від глобального стану, Fuel покращує децентралізацію, дозволяючи більшій кількості нод брати участь у мережі, не будучи перевантаженими великими даними стейту.

post image

Джерело: Delphi Digital

Приклади використання

Наступні приклади демонструють потужність і універсальність FuelVM і демонструють можливості під час розгортання нашого технологічного стеку. Щоб отримати ширше уявлення про екосистему, що розвивається, перегляньте сторінку екосистеми Fuel.

Розпаралелізовані Журнали Замовлень у Мережі

Fuel прокладає шлях для трансформаційних додатків, насамперед завдяки використанню моделі UTXO для закріплення обміну книгами замовлень, як продемонстрували такі проекти, як Spark. Модель UTXO пропонує більш ефективний досвід торгівлі зі зменшеною затримкою та спрощеним керуванням станом порівняно з традиційними підходами. Вирішуючи такі проблеми, як повільна обробка транзакцій і роздуття стану, Spark робить децентралізовані біржі більш масштабованими та практичними.

Multi-Sig без Стейту

Bako Safe надає гаманець із кількома підписами без збереження стану, побудований на основі предикатної конструкції FuelVM. Bako Safe посилює безпеку та пропонує управління активами без зберігання за допомогою таких функцій, як колективні сховища, що забезпечує безпечну візуалізацію та підписання контрактів.

Сумісність між Ланцюжками та підтримка кількох активів

FuelVM перевершує міжланцюгові взаємодії завдяки своїй нативній абстракції облікового запису та підтримці різноманітних схем підпису. Fuelet , багатоланцюговий гаманець, створений спеціально для екосистеми Fuel, демонструє цей міжланцюжковий потенціал, пропонуючи уніфікований інтерфейс для керування активами в кількох мережах. Fuelet розроблено для покращення сумісності та забезпечує бездоганну інтеграцію з гаманцями з різних блокчейнів. Користувачі можуть підключатися та взаємодіяти з FuelVM за допомогою бажаних гаманців, поєднуючи різні екосистеми блокчейну без шкоди для безпеки чи функціональності.

Наприклад, у нещодавній розробці Fuel додав підтримку гаманців Solana, дозволивши dApps, створеним на Fuel, підключатися до будь-якого гаманця SVM на додаток до існуючої підтримки гаманця EVM. Ця інтеграція SVM дозволяє користувачам безпечно використовувати такі гаманці Solana, як Phantom, Solflare і Backpack, для створення облікових записів Fuel, підписання транзакцій і обміну активами безпосередньо в цих гаманцях. Кілька Fuel dApps також застосували цей підхід, включаючи MIRA Protocol , який тепер підтримує гаманці Ethereum і Solana на своєму DEX. Протокол MIRA DEX доступний у Fuel Sepolia Testnet.

Паралелізовані Торгові Маркетплейси NFT

Можливості FuelVM виходять за межі торгівлі та інтеграції гаманців, щоб включити інші важливі блокчейн-програми. Thunder — це ринок NFT, який дозволяє здійснювати масові операції за одну транзакцію з мінімальними комісіями. Завдяки паралелізації, Thunder забезпечує більш плавний торговий досвід з швидкими транзакціями для досвідчених трейдерів NFT.

Децентралізовані Системи Ідентифікації та Репутації

Тим часом Kassiopeia демонструє потенціал FuelVM у децентралізованих системах ідентифікації та репутації, використовуючи унікальні функції платформи для створення надійного рівня ідентифікації, що зберігає конфіденційність, для програм Web3. Kassiopeia далі ілюструє, як можливості FuelVM можна застосувати для вирішення складних завдань у різних областях технології блокчейн.

Висновок

Fuel вирішує ключові проблеми роллапів за допомогою моделі UTXO, предикатів без стану та методів мінімізації стану. Ці інновації спрямовані на підвищення масштабованості та ефективності децентралізованих програм.

Ось і підійшла до кінця нашої серії Ethereum із трьох частин, яка охоплює теми, пов’язані з масштабованістю та виконанням на Ethereum.

https://mirror.xyz/0x70F263E396b0b67e552A863c50c3Bfd97f10EB05/y8X61ObTcGFp9YrHr07DAYnk-Cn0brj3YeqFk1QRimM

https://mirror.xyz/0x70F263E396b0b67e552A863c50c3Bfd97f10EB05/Rs3TmV2swbSOL3UWwJ5OPuqiLcbJFnqiX3EvuXgfd8k

І слідкуйте за нашими наступними серіями! Тим часом перегляньте нашу документацію на docs.fuel.network , щоб розпочати роботу над Fuel. Також ознайомтеся з додатками на основі FuelVM безпосередньо в нашій Testnet.

Подальше читання

https://medium.com/sprkfi/predicates-on-fuelvm-enabling-a-new-dex-paradigm-fa013baed9f7