EVM є ядром Ethereum, відповідальним за виконання смарт-контрактів і обробку транзакцій. Як обчислювальний двигун, EVM надає абстракцію обчислень і зберігання, подібну до специфікації Java Virtual Machine (JVM). EVM виконує свій власний набір байт-коду, який зазвичай компілюється з Solidity.
EVM є практично тюрінговою машиною. "Практично" тому, що всі кроки виконання споживають обмежені ресурси Gas, що запобігає можливим безкінечним циклам, які можуть призвести до зупинки всієї платформи Ethereum.
EVM не має функції розподілу, виконавчий модуль Ethereum витягує транзакції з блоку, EVM відповідає за їх послідовне виконання. Під час виконання буде змінено останній світовий стан, після завершення виконання транзакції відбувається накопичення стану, досягаючи останнього світового стану після завершення блоку. Виконання наступного блоку суворо залежить від світового стану, що виникло після виконання попереднього блоку, тому лінійний процес виконання транзакцій в Ethereum важко оптимізувати для паралельного виконання.
З цього погляду, протокол Ethereum передбачає виконання транзакцій у визначеному порядку. Хоча послідовне виконання забезпечує виконання транзакцій та смарт-контрактів у детермінованому порядку, гарантуючи безпеку, проте в умовах високого навантаження це може призвести до заторів у мережі та затримок, що є причиною існування продуктивних обмежень Ethereum та необхідності розширення Layer2 Rollup.
Шлях паралельності високопродуктивного Layer1
Більшість високопродуктивних Layer 1 розробляють свої оптимізаційні рішення на основі недоліків, пов'язаних з неможливістю паралельної обробки в Ethereum, зосереджуючи увагу на віртуальній машині та паралельному виконанні.
Віртуальна машина
EVM спроектовано як 256-бітна віртуальна машина, мета якої полягає в спрощенні обробки хеш-алгоритмів Ethereum. Проте для реального виконання EVM комп'ютер повинен відобразити 256-бітні байти на локальну архітектуру для виконання смарт-контрактів, що робить всю систему дуже неефективною. Тому з точки зору вибору віртуальної машини, високопродуктивні Layer1 частіше використовують віртуальні машини на базі WASM, eBPF байт-коду або Move байт-коду, а не EVM.
WASM є форматом байт-коду, який має малий обсяг, швидко завантажується, є портативним і базується на механізмі безпеки пісочниці. Розробники можуть використовувати різні мови програмування для написання смарт-контрактів, а потім компілювати їх у байт-код WASM і виконувати. WASM вже був прийнятий багатьма блокчейн-проєктами як стандарт, включаючи EOS, Dfinity, Polkadot та ін.
eBPF походить від BPF (Berkeley Packet Filter) і надає більш розширений набір інструкцій, що дозволяє динамічно втручатися в ядро операційної системи та змінювати його поведінку без зміни вихідного коду. Смарт-контракти, що виконуються на Solana, компілюються в SBF (на базі eBPF) байт-код і працюють на її блокчейн-мережі.
Move є новою мовою програмування смарт-контрактів, розробленою Diem, яка акцентує увагу на гнучкості, безпеці та перевіряємості. Мова Move призначена для вирішення проблем безпеки в активах і транзакціях, дозволяючи строго визначати та контролювати активи і транзакції. Aptos і Sui використовують варіанти мови Move для написання смарт-контрактів.
Паралельне виконання
Паралельне виконання в блокчейні означає одночасну обробку не пов'язаних транзакцій. Основним викликом для реалізації паралельного виконання є визначення, які транзакції є не пов'язаними, а які - незалежними. Більшість високопродуктивних Layer1 покладаються на два підходи: метод доступу до стану та оптимістичну паралельну модель.
Метод доступу до стану потребує заздалегідь знати, яку частину стану блокчейну може отримати кожна транзакція, що дозволяє аналізувати, які транзакції є незалежними. Solana та Sui використовують цей підхід.
Оптимістична паралельна модель припускає, що всі транзакції є незалежними, просто ретроспективно перевіряючи цю гіпотезу і за необхідності вносячи корективи. Aptos використовує цей підхід, застосовуючи Block-STM (блокова програмна транзакційна пам'ять) для реалізації оптимістичного паралельного виконання.
Паралельний EVM
Паралельний EVM (Parallel EVM) спрямований на покращення продуктивності та ефективності існуючого EVM. Наразі можна визначити три основні типи, які можна віднести до паралельного EVM:
Відсутність оновлення паралельного виконання для EVM-сумісних Layer1, таких як BSC та Polygon.
Використання технології паралельного виконання в EVM-сумісних Layer1, таких як Monand, Sei V2 та Artela.
Використовуються рішення для EVM-сумісності на не-EVM-сумісному Layer1 з технологією паралельного виконання, такі як Solana Neon.
Monad є високопродуктивним Layer1, сумісним з EVM, що використовує механізм PoS та оптимістичну паралельну модель для реалізації паралельного виконання транзакцій у блоці.
Sei V2 є великомасштабним оновленням мережі Sei, що має на меті стати першим повністю паралельним EVM. Як і Monad, Sei V2 використовуватиме оптимістичну паралелізацію.
Artela, що представляє EVM++, є високо масштабованим і високопродуктивним паралельним EVM, реалізація якого відбудеться в два етапи, перший етап буде зосереджений на паралельному виконанні.
Solana Neon є рішенням, розробленим компанією Neon Labs, для виконання EVM-транзакцій на платформі Solana. Neon EVM фактично є смарт-контрактом на Solana, в якому реалізовано інтерпретатор EVM.
Підсумок
Технологія паралельної обробки в блокчейні є темою, що постійно розвивається. Наразі основна увага приділяється модифікації та імітації оптимістичної моделі виконання, що представлена механізмом Block-STM від Aptos. У майбутньому можливе приєднання більше нових проектів Layer1 до конкуренції з паралельним EVM, а також деякі існуючі Layer1 можуть реалізувати паралельне оновлення EVM або рішення, сумісні з EVM.
Окрім розповіді про високу продуктивність EVM, у сфері блокчейну можуть з'явитися більш різноманітні розробки, такі як застосування та інновації різних віртуальних машин, таких як WASM, SVM та Move VM. Це різноманіття сприятиме просуванню прогресу та інновацій у всій екосистемі блокчейну.
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
Нові тенденції паралелізації EVM: інновації та виклики високопродуктивного Layer1
EVM: основний компонент Ethereum
EVM є ядром Ethereum, відповідальним за виконання смарт-контрактів і обробку транзакцій. Як обчислювальний двигун, EVM надає абстракцію обчислень і зберігання, подібну до специфікації Java Virtual Machine (JVM). EVM виконує свій власний набір байт-коду, який зазвичай компілюється з Solidity.
EVM є практично тюрінговою машиною. "Практично" тому, що всі кроки виконання споживають обмежені ресурси Gas, що запобігає можливим безкінечним циклам, які можуть призвести до зупинки всієї платформи Ethereum.
EVM не має функції розподілу, виконавчий модуль Ethereum витягує транзакції з блоку, EVM відповідає за їх послідовне виконання. Під час виконання буде змінено останній світовий стан, після завершення виконання транзакції відбувається накопичення стану, досягаючи останнього світового стану після завершення блоку. Виконання наступного блоку суворо залежить від світового стану, що виникло після виконання попереднього блоку, тому лінійний процес виконання транзакцій в Ethereum важко оптимізувати для паралельного виконання.
З цього погляду, протокол Ethereum передбачає виконання транзакцій у визначеному порядку. Хоча послідовне виконання забезпечує виконання транзакцій та смарт-контрактів у детермінованому порядку, гарантуючи безпеку, проте в умовах високого навантаження це може призвести до заторів у мережі та затримок, що є причиною існування продуктивних обмежень Ethereum та необхідності розширення Layer2 Rollup.
Шлях паралельності високопродуктивного Layer1
Більшість високопродуктивних Layer 1 розробляють свої оптимізаційні рішення на основі недоліків, пов'язаних з неможливістю паралельної обробки в Ethereum, зосереджуючи увагу на віртуальній машині та паралельному виконанні.
Віртуальна машина
EVM спроектовано як 256-бітна віртуальна машина, мета якої полягає в спрощенні обробки хеш-алгоритмів Ethereum. Проте для реального виконання EVM комп'ютер повинен відобразити 256-бітні байти на локальну архітектуру для виконання смарт-контрактів, що робить всю систему дуже неефективною. Тому з точки зору вибору віртуальної машини, високопродуктивні Layer1 частіше використовують віртуальні машини на базі WASM, eBPF байт-коду або Move байт-коду, а не EVM.
WASM є форматом байт-коду, який має малий обсяг, швидко завантажується, є портативним і базується на механізмі безпеки пісочниці. Розробники можуть використовувати різні мови програмування для написання смарт-контрактів, а потім компілювати їх у байт-код WASM і виконувати. WASM вже був прийнятий багатьма блокчейн-проєктами як стандарт, включаючи EOS, Dfinity, Polkadot та ін.
eBPF походить від BPF (Berkeley Packet Filter) і надає більш розширений набір інструкцій, що дозволяє динамічно втручатися в ядро операційної системи та змінювати його поведінку без зміни вихідного коду. Смарт-контракти, що виконуються на Solana, компілюються в SBF (на базі eBPF) байт-код і працюють на її блокчейн-мережі.
Move є новою мовою програмування смарт-контрактів, розробленою Diem, яка акцентує увагу на гнучкості, безпеці та перевіряємості. Мова Move призначена для вирішення проблем безпеки в активах і транзакціях, дозволяючи строго визначати та контролювати активи і транзакції. Aptos і Sui використовують варіанти мови Move для написання смарт-контрактів.
Паралельне виконання
Паралельне виконання в блокчейні означає одночасну обробку не пов'язаних транзакцій. Основним викликом для реалізації паралельного виконання є визначення, які транзакції є не пов'язаними, а які - незалежними. Більшість високопродуктивних Layer1 покладаються на два підходи: метод доступу до стану та оптимістичну паралельну модель.
Метод доступу до стану потребує заздалегідь знати, яку частину стану блокчейну може отримати кожна транзакція, що дозволяє аналізувати, які транзакції є незалежними. Solana та Sui використовують цей підхід.
Оптимістична паралельна модель припускає, що всі транзакції є незалежними, просто ретроспективно перевіряючи цю гіпотезу і за необхідності вносячи корективи. Aptos використовує цей підхід, застосовуючи Block-STM (блокова програмна транзакційна пам'ять) для реалізації оптимістичного паралельного виконання.
Паралельний EVM
Паралельний EVM (Parallel EVM) спрямований на покращення продуктивності та ефективності існуючого EVM. Наразі можна визначити три основні типи, які можна віднести до паралельного EVM:
Відсутність оновлення паралельного виконання для EVM-сумісних Layer1, таких як BSC та Polygon.
Використання технології паралельного виконання в EVM-сумісних Layer1, таких як Monand, Sei V2 та Artela.
Використовуються рішення для EVM-сумісності на не-EVM-сумісному Layer1 з технологією паралельного виконання, такі як Solana Neon.
Monad є високопродуктивним Layer1, сумісним з EVM, що використовує механізм PoS та оптимістичну паралельну модель для реалізації паралельного виконання транзакцій у блоці.
Sei V2 є великомасштабним оновленням мережі Sei, що має на меті стати першим повністю паралельним EVM. Як і Monad, Sei V2 використовуватиме оптимістичну паралелізацію.
Artela, що представляє EVM++, є високо масштабованим і високопродуктивним паралельним EVM, реалізація якого відбудеться в два етапи, перший етап буде зосереджений на паралельному виконанні.
Solana Neon є рішенням, розробленим компанією Neon Labs, для виконання EVM-транзакцій на платформі Solana. Neon EVM фактично є смарт-контрактом на Solana, в якому реалізовано інтерпретатор EVM.
Підсумок
Технологія паралельної обробки в блокчейні є темою, що постійно розвивається. Наразі основна увага приділяється модифікації та імітації оптимістичної моделі виконання, що представлена механізмом Block-STM від Aptos. У майбутньому можливе приєднання більше нових проектів Layer1 до конкуренції з паралельним EVM, а також деякі існуючі Layer1 можуть реалізувати паралельне оновлення EVM або рішення, сумісні з EVM.
Окрім розповіді про високу продуктивність EVM, у сфері блокчейну можуть з'явитися більш різноманітні розробки, такі як застосування та інновації різних віртуальних машин, таких як WASM, SVM та Move VM. Це різноманіття сприятиме просуванню прогресу та інновацій у всій екосистемі блокчейну.