Як модульні рівні виконання можуть досягти масштабованості завдяки ефективній оптимізації обчислень.
Дисклеймер: Ця публікація є перекладом, виконаним учасником спільноти Fuel. Було проведено вичитку, але можливі деякі помилки. Fuel Labs не несе відповідальності за точність, актуальність або послідовність перекладеної інформації.
Оригінальна публікація: The Case for Modular Execution (Part 2)
Модульна архітектура забезпечить масштабування блокчейнів у рази. Будучи основною частиною модульного стека, рівні виконання перебувають на стадії стрімких інновацій.
Fuel створює найшвидший рівень виконання для модульного стека блокчейна. У першій частині ми розглянули, як модульні рівні виконання забезпечують масштабованість за рахунок поділу обчислень і перевірки.
Ми також згадали другу основну перевагу, яка дає змогу модульним рівням виконання масштабуватися на порядки більше, ніж їхнім монолітним аналогам:
Монолітні мережі прив'язані до неефективних технологій, коли йдеться про швидкість і різноманітність обчислень, які вони можуть підтримувати. З іншого боку, модульні рівні виконання можуть бути спеціально розроблені для ефективної оптимізації обчислень.
У цій статті ми розглянемо другу основну перевагу, приділивши особливу увагу тому, як Fuel революційно змінює спосіб обробки обчислень у блокчейні.
Монолітні мережі обмежені неефективними технологіями, коли йдеться про швидкість і різноманіття обчислень, які вони можуть забезпечити.
Коли блокчейн тільки зароджувався, передбачалося одне єдине застосування: цифрові гроші. Блокчейн Bitcoin був розроблений з метою оптимізації для цього єдиного випадку застосування.
Незабаром після запуску Bitcoin люди почали усвідомлювати потенціал технології блокчейн для використання не тільки у сфері фінансів. Наратив швидко змінився з "розподіленої бухгалтерської книги" на "розподілений комп'ютер". Спільнота Bitcoin спробувала підтримати цей варіант використання за допомогою colored coins, але стало зрозуміло, що він недостатньо універсальний, щоб справді підтримувати розподілені обчислення без довіри; він був замкнутий на своєму первісному варіанті використання. Була потрібна нова архітектура.
Усвідомивши цю проблему, творці Ethereum вирішили побудувати блокчейн, який міг би підтримувати розподілену віртуальну машину, повну за Тюрингом: Ethereum Virtual Machine (EVM). Із запуском Ethereum у 2015 році блокчейн став підтримувати довільні обчислення в середовищі, що не вимагає довіри. Тепер будь-хто міг створити і запустити комп'ютерну програму (смарт-контракт) і забезпечити її виконання на розподіленому комп'ютері.
Ethereum був задуманий менш ніж через півдесятка років після появи концепції блокчейн. За 7 років з моменту запуску Ethereum було винайдено нові концепції, які являють собою ще більший стрибок уперед, ніж той прогрес, якого домігся Ethereum порівняно з Bitcoin. Але, як і Bitcoin, блокчейн Ethereum здебільшого обмежений основною архітектурою, з якою він був запущений.
На кожне вдосконалення, внесене в блокчейн Ethereum і EVM за минулі роки, припадає безліч потенційних нововведень, які не можуть бути реалізовані через необхідність підтримувати зворотну сумісність.
У результаті блокчейн-спільнота продовжує інвестування, розробку і запуск нових блокчейнів щоразу, коли з'являється нова інновація. Незліченну кількість нових блокчейнів першого рівня було запущено, щоб ітеративно розвивати концепцію розподілених обчислень без довіри, але всі вони стикаються з однією і тією ж проблемою: важко (а часто і неможливо) модернізувати блокчейн для підтримки нових функцій і поліпшень.
І так триває цикл, у якому ми продовжуємо бачити, як нові блокчейни запускаються з частковими поліпшеннями порівняно з їхніми попередниками. У результаті ми отримуємо екосистему, що складається в основному з несумісних блокчейнів, з фрагментацією ліквідності, фінансування, користувацького досвіду і поділу розробників, що постійно збільшується. Тим часом енергія, яка могла б бути витрачена на справжні інновації, натомість спрямовується на привернення уваги інвесторів, розробників і користувачів.
https://twitter.com/musalbas/status/1582396496229507072?s=20
Конкуренція є корисною і необхідною для розвитку екосистеми. Але ця конкуренція відбувається не на тому рівні.
Модульна парадигма блокчейну обіцяє вирішити цю проблему. Оскільки кожен шар модульного стека незалежний від інших, інновації можуть відбуватися на одному рівні без повної переробки всього стека. Рівні виконання можуть бути конкурентоспроможними за виконанням. Рівні доступності даних можуть бути конкурентоспроможними щодо забезпечення доступності даних. Кожен шар може оптимізуватися за своїм призначенням без порушення зворотної сумісності.
Спільні рівні регулювання забезпечують об'єднання ліквідності в одному місці, що дає змогу створювати нові рівні виконання без фрагментації ліквідності та додаткових складнощів для користувачів. Вбудована функція мінімізації довіри означає, що співтовариство може скоротити ресурси, що витрачаються на забезпечення сумісності, і замість цього зосередитися на вивченні значущих інновацій.
З появою модульного стека ми зможемо відійти від роз'єднаної екосистеми L1, що конкурують за марнославними показниками, і перейти до більш цілісного, сумісного стека, який можна модернізувати.
https://twitter.com/fuel_network/status/1569753111983722496?s=20
Незважаючи на появу великої кількості блокчейнів першого рівня, що обіцяють поліпшення порівняно з первісним дизайном EVM, його першість дала змогу EVM закріпитися як основне середовище виконання в екосистемі блокчейна. Розробка смарт-контрактів стала синонімом Solidity (мови програмування EVM), яка захопила більшість потенційних розробників блокчейна. Внаслідок цього більшість рівнів виконання, що розробляються нині, являють собою роллапи на базі EVM.
Для цього є вагома причина: використання EVM дає змогу розробникам отримати доступ до ринку наявних застосунків, написаних на Solidity, а також до великої групи користувачів, які вже знайомі з цими застосунками. EVM - чудовий інструмент для зародження нової екосистеми, оскільки він уже має значну частку ринку розробників.
Однак, як ми вже зазначали, необхідність підтримувати зворотну сумісність означає, що EVM не може впроваджувати багато інновацій. Крім того, основний дизайн EVM оптимізовано для монолітної мережі, а не для модульного стека.
Деякі обмеження EVM включають в себе:
Послідовне виконання - EVM не підтримує паралельне виконання транзакцій, що робить його набагато менш ефективним з обчислювальної точки зору, ніж інші конструкції віртуальних машин.
Докази шахрайства - модель Ethereum, що ґрунтується на рахунках, означає, що генерування та виконання доказів шахрайства в мережах EVM є надзвичайно дорогим і неефективним, що робить його неоптимальним для модульних рівнів виконання.
Solidity - найпопулярніша мова програмування для EVM, Solidity, сумно відома тим, що забезпечує поганий досвід розробників і розроблена таким чином, що на ній важко писати безпечні смарт-контракти.
Поява концепції модульності означає, що рівні виконання можуть використовувати ліквідність і безпеку Ethereum, не обмежуючись при цьому межами EVM.

Завдяки використанню нових і поліпшених принципів розробки віртуальних машин, модульні рівні виконання можуть спеціально оптимізуватися для ефективних і масштабованих обчислень, чудового досвіду розробників і максимальної безпеки.
Fuel використовує переваги нової галузі розробки для створення найшвидшого модульного рівня виконання.
Одним з основних нововведень Fuel є абсолютно нова віртуальна машина FuelVM. Поява рівнів виконання, побудованих на Ethereum, дає нову можливість удосконалити колишні конструкції віртуальних машин, не обмежуючись необхідністю зворотної сумісності.
Повільне виконання транзакцій EVM могло бути достатнім у домодульному світі, де пропускна здатність була основним вузьким місцем, але поліпшення, внесені до нового модульного стеку (включно з L1 Ethereum), означають, що пропускна спроможність обчислень стає основним обмеженням, коли справа доходить до масштабування.
Напередодні цієї нової парадигми FuelVM розроблена для оптимізації швидкого виконання транзакцій. Використовуючи досвід EVM, Solana, WASM, Bitcoin і Cosmos, FuelVM покликаний зменшити непотрібне опрацювання традиційних архітектур віртуальних машин блокчейна, одночасно значно збільшуючи простір для розробників.
У FuelVM реалізовано безліч інновацій, які були запропоновані та підтримані спільнотою EVM, але не могли бути реалізовані через необхідність підтримувати зворотну сумісність. Нижче наведено лише кілька прикладів (повний список див. тут).

Протокол Fuel було розроблено з орієнтацією на досвід розробників. FuelVM було створено разом із супутньою мовою Sway: доменно-специфічною мовою на основі Rust, розробленою спеціально для використання у віртуальній машині блокчейна. На відміну від Solidity, який був розроблений після створення EVM, Sway був створений з нуля, щоб мати вбудовані зручні та ефективні операційні функції. Ґрунтуючи Sway на Rust, Fuel робить розробку смарт-контрактів безпечнішою та продуктивнішою завдяки використанню сильного статичного аналізу та зворотного зв'язку з компілятором.
З точки зору інструментарію, Fuel покращує екосистему EVM за допомогою набору інструментів Forc. За допомогою Forc розробники можуть отримати все необхідне для початку створення додатків Sway для віртуальної машини Fuel з єдиною системою інструментів. Fuel використовує керований, "batteries-included", але модульний підхід до надання інструментарію, з повним, стандартизованим, канонічним набором інструментів, що охоплює не тільки нижні рівні стека (як-от реалізація протоколів і VM), а й верхні рівні (як-от керування пакетами, підтримка редакторів, плагіни загального користування та багато іншого).
https://twitter.com/camiinthisthang/status/1577738478699171845?s=20
Середовище для розробників Fuel зберігає переваги мов смарт-контрактів, таких як Solidity, водночас приймаючи парадигми, представлені в екосистемі інструментів Rust, що робить криву навчання для Sway легко керованою для всіх ступенів кваліфікації розробників.
Можливість паралельного виконання транзакцій є вельми важливою перевагою, особливо в міру того, як сучасні процесори стають дедалі більш багатопоточними. Тому під час розроблення протоколу Fuel це було одним з основних міркувань.
Паралельне виконання транзакцій вимагає можливості визначення та обробки взаємозв'язків між транзакціями. Щоб уникнути дублювання під час опрацювання транзакцій на окремих ядрах, загальний стан, якого може торкнутися кожна транзакція, має бути визначений заздалегідь (за допомогою "списків доступу"), тому транзакції можна розбити на набори, які не мають можливих взаємодій одна з одною.
Через обмеження, пов'язані з дизайном, заснованим на обліковому записі, Ethereum не може підтримувати ці списки доступу, тому змушений обробляти транзакції послідовно (тобто одну за одною). В EIP-648 було запропоновано додати списки доступу в Ethereum, але це так і не було реалізовано через інші неефективності, які це принесло б.
З огляду на це обмеження, Fuel впровадила суворі списки доступу до стану у вигляді моделі UTXO, що дає їй можливість використовувати кілька потоків і ядер процесора, які зазвичай не задіяні в однопотокових блокчейнах. У результаті Fuel може виконувати транзакції паралельно, забезпечуючи набагато більше обчислень, доступу до стану і пропускної спроможності транзакцій, ніж його однопотокові аналоги.

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

З мінімізованими за довірою легкими клієнтами та загальними рівнями регулювання і доступності даних можна побудувати мінімізовані за довірою мости між модульними рівнями виконання, чого неможливо досягти між L1. Це дає змогу експериментувати та впроваджувати нові конструкції блокчейна без фрагментації безпеки та ліквідності.
Завдяки перевагам, які дає доказ шахрайства, Fuel був розроблений і створений спеціально для того, щоб забезпечити доказ шахрайства недорогим і ефективним способом.
У той час як модель Ethereum, заснована на рахунках, означає, що витрати на створення доказів шахрайства для неї не обмежені, Fuel оптимізує докази шахрайства за рахунок використання моделі UTXO. Докази шахрайства UTXO досягають ефективності за рахунок простої вимоги, щоб кожна витрата UTXO "вказувала" на створення UTXO, без необхідності звертатися до глобального дерева станів. Доказ того, що або а) покажчик недійсний, або б) те, на що вказують, не відповідає тому, що витрачають, достатній для повного доказу шахрайства.
Додатковою перевагою є те, що набір інструкцій FuelVM розроблено таким чином, щоб забезпечити захист від шахрайства в EVM. Це означає, що Fuel може використовувати Ethereum як рівень регулювання, використовуючи його високу ліквідність і широку призначену для користувача базу, не будучи обмеженим рамками EVM.
Крім перерахованих вище пунктів, Fuel реалізував низку інших поліпшень, включно з:
Підтримка безлічі нативних активів
Абстракція і предикати нативних рахунків
Багатоаспектне ціноутворення ресурсів
Децентралізація секвенсорів
Пояснення цих поліпшень не входить у рамки цієї статті, але Blockchain Capital пропонує чудове глибоке занурення в ці додаткові переваги.
Монолітна парадигма призводить до створення екосистеми несумісних L1, що конкурують за поверхневими показниками, фрагментації ліквідності, фінансування та поділу розробників. Fuel дотримується принципу, що інновації не вимагають запуску нового L1, а можуть відбуватися на рівні виконання.
Модульна архітектура дозволяє MEL, таким як Fuel, зосередитися на ефективних обчисленнях, не турбуючись про зворотну сумісність. Більш швидкі обчислення не тільки ведуть до підвищення пропускної здатності, а й підвищують ефективність роботи валідаторів, покращуючи децентралізацію. Це дає змогу Fuel зробити свій внесок у масштабованість Ethereum, не будучи обмеженим неефективністю EVM.
Рівні виконання, що використовують EVM, можуть скористатися наявною екосистемою застосунків Solidity і розробників, але не можуть максимально використати простір розроблення, пропонований модульним стеком. Fuel реалізує цей новий простір для розробки за допомогою FuelVM, розробленої з нуля для захисту від шахрайства та забезпечення найкращих можливостей для розробників.
Fuel впроваджує інновації, оптимізовані для модульного майбутнього, яке стрімко наближається, що дає змогу створити нове покоління блокчейнів, які виходять за рамки монолітності.
Fuel - це найшвидший рівень виконання для модульного стека блокчейна. Технологія, що вирізняється потужністю і витонченістю, забезпечує паралельне виконання транзакцій, надаючи розробникам найвищу гнучку пропускну здатність і максимальну безпеку, необхідну для масштабованості. Розробники віддають перевагу FuelVM за чудовий досвід розробки і можливість вийти за межі обмежень EVM.

