Паралелізація EVM: технічна еволюція від високопродуктивного Layer1 до EVM-сумісних рішень

EVM: Ядро Ethereum

EVM (Ethereum Virtual Machine) є ядром Ethereum, яке відповідає за виконання смарт-контрактів та обробку транзакцій.

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

EVM працює в більш обмеженій сфері: це просто обчислювальний двигун, що надає абстракцію обчислень та зберігання, подібно до специфікації Java Virtual Machine (JVM). З високого рівня, JVM призначена для надання середовища виконання, незалежного від нижчого хост-операційної системи або апаратного забезпечення, для досягнення сумісності між системами. Аналогічно, EVM виконує свій власний набір байт-коду, який зазвичай компілюється з Solidity.

EVM є практично тюрінговою повністюю машиною, "практично" тому, що всі етапи виконання споживають обмежені ресурси Gas, тому виконання будь-якого заданого смарт-контракту буде обмежено в межах обмеженої кількості обчислювальних кроків, що запобігає можливим мертвим циклам у процесі виконання, які можуть призвести до зупинки всієї платформи Ethereum.

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

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

Паралельний EVM: високопродуктивна Layer1 хірургія зміни серця

Шлях паралельності високопродуктивного Layer1

Більшість високопродуктивних Layer1 проектів розробляють свої оптимізаційні рішення, виходячи з недоліку паралельної обробки в Ethereum. Тут ми поговоримо лише про оптимізацію виконавчого шару, тобто віртуальної машини та паралельного виконання.

Віртуальна машина

EVM спроектовано як 256-бітна віртуальна машина, метою якої є спрощення обробки хеш-функцій Ethereum, що дає чіткий 256-бітний вихід. Проте комп'ютери, які фактично виконують EVM, повинні відображати 256-бітні байти на локальну архітектуру для виконання смарт-контрактів, в результаті чого вся система стає дуже неефективною і непрактичною. Тому з точки зору вибору віртуальної машини, високопродуктивні Layer1 частіше використовують віртуальні машини на основі WASM, eBPF байткоду або Move байткоду, а не EVM.

WASM є форматом байт-коду з маленьким розміром, швидким завантаженням, портативністю та механізмом безпеки на основі пісочниці, який розробники можуть використовувати для написання смарт-контрактів різними мовами програмування, а потім компілювати в байт-код WASM та виконувати. WASM вже був прийнятий багатьма блокчейн-проектами як стандарт, включаючи EOS, Dfinity, Polkadot, Cosmos, Near та інші, Ethereum також в майбутньому інтегрує WASM, що гарантує, що виконавчий рівень Ethereum стане більш ефективним, простим і придатним для повноцінної децентралізованої обчислювальної платформи.

eBPF є еволюцією BPF (Berkeley Packet Filter, Беркелійський фільтр пакетів), який спочатку використовувався для ефективної фільтрації мережевих пакетів. Після еволюції eBPF надає більш розширений набір інструкцій, що дозволяє динамічно втручатися в ядро операційної системи та змінювати його поведінку без внесення змін у вихідний код. Згодом ця технологія вийшла з ядра, розвиваючи користувацький eBPF виконуваний середовище, яке має високу продуктивність, безпеку та портативність. Умні контракти, що виконуються на певному блокчейні, компілюються в SBF (на базі eBPF) байт-код і виконуються в його мережі.

Move є новою мовою програмування смарт-контрактів, що акцентує увагу на гнучкості, безпеці та перевірності. Мова Move розроблена для вирішення проблем безпеки в активах та транзакціях, що дозволяє чітко визначати та контролювати активи та транзакції. Байтовий код Move має перевірник, який є інструментом статичного аналізу, що аналізує байтовий код Move і визначає, чи відповідає він вимогам типів, пам'яті та безпеки ресурсів, без необхідності реалізації та перевірки на рівні смарт-контрактів під час виконання. Деякі нові публічні блокчейни успадкували Move або написали свої смарт-контракти на основі власних налаштованих версій Move.

Паралельний EVM: високопродуктивна Layer1 хірургія серця

Паралельне виконання

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

Головним викликом реалізації паралельного виконання є визначення, які транзакції не пов'язані, а які є незалежними. Більшість високопродуктивних Layer1 покладаються на два методи: метод доступу до стану та оптимістичну паралельну модель.

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

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

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

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

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

Паралельний EVM: високопродуктивна Layer1 зміна серця

Паралельний EVM

Паралельний EVM (Parallel EVM) був згаданий ще в 2021 році, тоді йшлося про EVM, що підтримує одночасну обробку кількох транзакцій, з метою покращення продуктивності та ефективності існуючого EVM. Представлені рішення включають паралельний EVM, реалізований на основі Block-STM деякими публічними блокчейнами.

Але в кінці 2023 року деякі експерти галузі одностайно згадали про паралельний EVM, коли розглядали тренди 2024 року, що сприяло популяризації ряду EVM-сумісних Layer1, включаючи деякі нові проекти.

Сьогодні деякі EVM-сумісні рішення, Layer2 Rollup на базі SVM Ethereum (віртуальна машина Solana), Layer2 Rollup на базі віртуальної машини Move Ethereum та модульний виконавчий шар Layer1 отримали етикетки паралельного EVM, що вражає уяву.

Я вважаю, що розумно визначити паралельний EVM лише трьома категоріями:

  1. Відсутність оновлення паралельного виконання для EVM-сумісного Layer1, яке не використовує технологію паралельного виконання, наприклад, деякі основні публічні блокчейни;

  2. Використовується технологія паралельного виконання EVM-сумісного Layer1, наприклад, деякі нові проекти;

  3. Використання технології паралельного виконання в не EVM-сумісних Layer1 EVM-сумісних рішеннях, таких як деякі крос-ланцюгові проекти.

Паралельний EVM: висока продуктивність Layer1 на заміну

Деякі основні публічні блокчейни, які є найбільш відомими сумісними з EVM Layer 1, не потребують додаткового представлення. Тут коротко представлені деякі нові проекти та кросчейн-рішення.

Деякі нові публічні блокчейни є високопродуктивними Layer1, які використовують механізм PoS та сумісні з EVM, з метою значного підвищення масштабованості та швидкості транзакцій шляхом паралельного виконання. Вони дозволяють паралельно виконувати транзакції в межах блоку для підвищення ефективності. Зазвичай використовується оптимістична паралельна модель, яка починає виконання нових транзакцій до завершення виконання попереднього етапу. Для вирішення неправильних результатів слідкують за входами/виходами та повторно виконують несумісні транзакції. Статичний解析атор коду може передбачити залежності, уникнути недійсної паралельності та, у випадку невизначеності, повернутися до простого режиму. Це паралельне виконання збільшує пропускну здатність, одночасно зменшуючи ймовірність невдачі транзакцій.

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

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

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

Паралельний EVM: хірургія серця високопродуктивного Layer1

Підсумок

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

Заглядаючи в майбутнє, буде ще більше нових Layer1 проектів, які приєднаються до конкуренції паралельного EVM, а деякі старі Layer1 також реалізують оновлення паралельного EVM або рішення, сумісні з EVM. Обидва напрямки ведуть до однієї мети, і з'явиться ще більше нових наративів, пов'язаних з підвищенням продуктивності.

Однак, на відміну від наративу високопродуктивного EVM, я все ж більше сподіваюся, що блокчейн зможе розвиватися різноманітно, з'являться подібні наративи, такі як WASM, SVM та Move VM.

Паралельний EVM: хірургія серця високопродуктивного Layer1

Паралельний EVM: високопродуктивна Layer1 заміна серця

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 7
  • Поділіться
Прокоментувати
0/400
MEVEyevip
· 13год тому
Все залежить від Gas, який висмоктує гаманець, платите за страждання.
Переглянути оригіналвідповісти на0
AirdropHuntervip
· 13год тому
Цей газ де взяти?
Переглянути оригіналвідповісти на0
ChainSpyvip
· 13год тому
Грати в Блокчейн, не дивлячись на індикатори, лише дивлячись на код і інновації
Переглянути оригіналвідповісти на0
LucidSleepwalkervip
· 13год тому
Включіть газ, і все буде готово.
Переглянути оригіналвідповісти на0
DisillusiionOraclevip
· 13год тому
Ще що обговорювати, який JVM, коли газові витрати вже з'їдають людей?
Переглянути оригіналвідповісти на0
GmGmNoGnvip
· 13год тому
байт-код також надзвичайно класний 8
Переглянути оригіналвідповісти на0
MemeCoinSavantvip
· 13год тому
EVM в основному це Java для дегенів, якщо чесно.
Переглянути оригіналвідповісти на0
  • Закріпити