Автор: Yiping, IOSG Ventures

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

Ландшафт рівня 2 швидко розвивається, оскільки ZKRU, такі як zkSync і StarkNet, запускають основну мережу. Традиційно такі OPRU, як Arbitrum, першими виходять на ринок і тому мають сильнішу екосистему. Навпаки, ZKRU є технологічним проривом, який пропонує вищу пропускну здатність і нижчі комісії.

В останні місяці більше активності перемістилося з рівня 1 на рівень 2 у пошуках швидших і дешевших транзакцій. TVL Ethereum впав з майже 40 мільярдів доларів до 20 мільярдів доларів за останній рік. Однак TVL для рівня 2 представляє іншу картину: величезне зростання вказує на те, що впровадження рівня 2 прискорюється.

Arbitrum лідирує з більш ніж 50% часткою ринку TVL рівня 2, хоча ZKRU також докладають своїх зусиль. Перевага першокласника Arbitrum дозволяє йому зберігати домінуючу позицію.

Аналіз кількості щоденних транзакцій показує, що такі ZKRU, як zkSync і StarkNet, трохи перевершують OPRU за пропускною здатністю. Однак перевага екосистеми Arbitrum залишається, незважаючи на незначне відставання в щоденних TPS.

ОПРУ існують довше, ніж ЗКРУ. Проте ЗКРУ запускають свої мережі та залучають користувачів з інших екосистем. Очікується, що як лідер у сфері OPRU Arbitrum протистоїть зростанню ZKRU своїми новими оновленнями.

Рішення: Стиль

Оскільки розробники оптимізують технологію з нульовим знанням і вартість, ZKRU, ймовірно, продовжуватимуть здобувати частку ринку завдяки перевагам масштабованості. Проте мережеві ефекти Arbitrum дають змогу залишатися надійними, незважаючи на конкурентний тиск. Завдяки таким інноваційним рішенням, як Stylus, Arbitrum може доповнити свою лідерську позицію унікальними технічними можливостями та продовжувати залишатися в авангарді гонки рівня 2.

Коротше кажучи, Stylus — це нове революційне середовище смарт-контрактів, розроблене для Arbitrum, яке дозволяє розробникам писати ефективні, сумісні програми на таких мовах програмування, як Rust, C++ і Solidity.

Він відкриває загальні обчислення для блокчейну та вітає розробників, які використовують різні стеки технологій.

WASM

Stylus працює, додаючи віртуальну машину WebAssembly (WASM), яка працює паралельно з існуючою віртуальною машиною Ethereum (EVM). Смарт-контракти, написані мовою, яка компілюється в WASM, можуть виконуватися в 10 разів або більше швидше, ніж Solidity, що значно знижує витрати на газ. EVM залишається повністю функціональним, тому існуючі контракти Solidity продовжують працювати, як і сьогодні. Дві віртуальні машини працюють синхронно, дозволяючи контрактам, написаним різними мовами програмування, викликати один одного, одночасно змінюючи той самий базовий стан блокчейну.

Спеціальна попередня компіляція

Крім того, Stylus також підтримує спеціальні попередні компіляції.

Попередні компіляції — це низькорівневі модулі на Ethereum і Arbitrum, які використовуються для дуже ефективного виконання певних криптографічних або службових функцій. Наприклад, існують попередні компіляції для перевірки підпису ECDSA та обчислення хешів SHA256.

Додавання нових попередніх компіляцій вимагає, щоб усі валідатори координували оновлення EVM, тому бар’єр для входу є високим. А за допомогою Stylus розробники можуть легко розгортати власні прекомпілятори, написані мовою Rust або C++.

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

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

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

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

Як працює стилус

Перш ніж заглиблюватися в більш широку роль WASM у всесвіті блокчейну, дуже важливо зрозуміти, як Arbitrum організовує співіснування EVM і WASM. Йдеться не лише про наявність двох окремих механізмів; це синергетичний зв’язок, який посилює переваги обох.

Унікальна архітектура Arbitrum забезпечує безперебійну та синхронізовану роботу між EVM і WASM завдяки її уніфікованому стану, виклику між віртуальними машинами та сумісній економічній моделі.

Розумні контракти, написані на Solidity або інших мовах EVM, компілюються в байт-код EVM, як зазвичай. Після виконання ці контракти працюють на EVM, як і сьогодні.

Для мов, які компілюються в WASM, таких як Rust, C++ і C, робочий процес такий:

  • Розробники використовують готові компілятори WASM, такі як Clang або Rustc, для компіляції своїх смарт-контрактів у WASM.

  • Байт-код WASM завантажується в ланцюжок Arbitrum у стиснутому вигляді.

  • Власник контракту викликає попередньо скомпільований метод `ArbWasm` `compileProgram`, який налаштовує інструмент безпеки для WASM, оплачує його вартість і компілює його у рідний код, оптимізований для апаратного забезпечення валідатора.

  • Коли викликається контракт, він працює на середовищі виконання WASM, наприклад Wasmer, яке набагато швидше, ніж EVM, таким чином заощаджуючи плату за газ.

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

EVM і WASM

Дві віртуальні машини (ВМ) працюють синхронно, що дозволяє їм викликати одна одну, водночас користуючись тим самим глобальним станом. Транзакція може виконуватися частково в EVM і частково в WASM, і результати легко об’єднуються.

Зачекайте, як дві віртуальні машини можуть працювати безперебійно та синхронно?

Polkadot досягає цього за допомогою XVM. На відміну від Polkadot, WASM і EVM безперебійно та синхронно працюють на Arbitrum з кількох ключових причин:

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

  • Виклики між віртуальними машинами: коли транзакція взаємодіє з контрактом EVM, Geth обробляє її та надає результат. Якщо контракт EVM згодом викликає програму WASM, WASM VM бере на себе обчислення результатів цієї частини.

  • Спільний контекст: системна інформація, як-от дані блоку, адреса відправника тощо, доступна для обох віртуальних машин. Контракт WASM може отримати номер блоку так само, як контракт Solidity.

  • Єдиний консенсус: валідатори запускають дві віртуальні машини для перевірки транзакцій і досягнення консенсусу щодо правильного стану ланцюга. У спорах використовуватиметься Єдина система захисту від шахрайства.

  • Сумісна економіка: такі концепції, як вимірювання газу, поширюються на окремі віртуальні машини, забезпечуючи відповідні витрати на обчислення та ресурси в будь-якому середовищі.

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

Блокчейн |. WASM

Arbitrum — не єдина платформа, яка визнає трансформаційний потенціал WebAssembly (WASM). І Polkadot, і Cosmos також інтегрували WASM у свої екосистеми, причому кожна платформа пропонує унікальний набір переваг і функцій.

Polkadot дозволяє користувачам розробляти смарт-контракти за допомогою WASM і підтримує дві мови: AssemblyScript, вбудований DSL, і Ink!, який схожий на Rust.

З іншого боку, Cosmos використовує CosmWasm як середовище виконання смарт-контрактів, що дозволяє розробникам писати контракти в Rust.

Перш ніж досліджувати, чому індустрія блокчейнів так сприйнятлива до WASM, варто зрозуміти конкретні переваги Cosmos і Polkadot:

Cosmos виділяє такі переваги WASM:

  • Сумісність з бібліотеками Rust

  • Різноманітне співтовариство розробників

  • Покращена безпека, включаючи захист від атак повторного входу

  • Легко перевірити

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

Середа виконання WASM від Polkadot має такі функції:

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

  • Взаємодія з EVM

  • Платформний агностик

  • Компактний двійковий розмір

  • Підтримує Rust і AssemblyScript (версія TypeScript)

Хоча Polkadot, Cosmos і Arbitrum мають деякі спільні переваги, які пропонує WASM, кожна платформа також має свої власні унікальні атрибути.

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

Чому варто вибрати WASM

Що таке WASM

Щоб зрозуміти синергію між блокчейном і WebAssembly (WASM), потрібно спочатку зрозуміти, що таке WASM і рушійну силу його розвитку.

WebAssembly — це двійковий формат інструкцій, який дозволяє виконувати код у веб-браузері з майже рідною швидкістю. Він служить метою компіляції для ряду мов програмування, включаючи C і Rust, і розроблений як швидкий, ефективний і безпечний. WASM ефективно усуває розрив між веб-програмуванням і програмуванням на системному рівні, тим самим покращуючи веб-продуктивність і функціональність.

«Веб» у WebAssembly підкреслює його здатність працювати в середовищі JavaScript (зазвичай у браузері). У цих налаштуваннях розробники мають повний доступ до API WASM і повну підтримку Web API, що дає їм значний контроль над поведінкою в Інтернеті.

Історія WASM

Дотримуючись принципу «напишіть один раз, запустіть будь-де», WASM став потужним рішенням багаторічної низки проблем. Станом на 2016 рік багато програм запроваджують нові функції за допомогою доменно-орієнтованих мов (DSL), що часто передбачає компроміс між обслуговуванням, ефективністю та безпекою. Зростає потреба в рішенні, яке могло б надати нові функції незліченній кількості серверів без шкоди для цих аспектів.

Оцінено недоліки різних існуючих рішень:

- Системна віртуальна машина

  • Частий запуск і завершення роботи призводить до надмірних накладних витрат

  • Відсутність видимості коду для забезпечення безпеки

  • Занадто абстрактні вимоги до продуктивності

- контейнер

  • Відсутність видимості коду для забезпечення безпеки

  • Неефективний через високий рівень абстракції

  • Часті операції призводять до значних накладних витрат

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

  • Вимагає частих модифікацій для забезпечення безпеки

  • Вбудовані віртуальні машини, як і V8, потребують ресурсів

  • Повільна адаптація нової мови до моделі безпеки

  • все ще занадто абстрактно

- Архітектура набору команд (ISA)

  • Важко ефективно використовувати пісочницю

  • Попередні проекти Google перейшли з нього на WASM

  • Відсутність зрілого впровадження

До 2018 року розробка WASM набрала обертів із зосередженням на роботі на різних архітектурах, серверах, вбудованому обладнанні та навіть підтримці кількох мов. На відміну від Java, WASM розроблено без шкоди для безпеки. До 2019 року була введена компонентна модель для вдосконалення модуля WASM, що забезпечує міжмовну сумісність. Це дозволяє створювати бібліотеку HTTP один раз і використовувати її кількома мовами.

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

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

  • Компактний двійковий розмір

  • Кросплатформна переносимість

  • Підтримує кілька мов, наприклад C/C++, Rust, AssemblyScript тощо.

  • Виконати в двигуні JavaScript

  • Потужна пісочниця з обмеженнями пам’яті та ЦП

  • Надзвичайно швидкий час запуску, зазвичай у мілісекундах або менше

Спільнота WASM продовжує працювати над більшою інтеграцією та продуктивністю на різних мовах.

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

Питання та відповіді стилуса

Підтримка мови

Еволюція WASM показує, чому Stylus є захоплюючим доповненням до екосистеми Arbitrum, але також висвітлює деякі обмеження та проблеми. Однією з проблем є підтримка мови. Хоча Stylus розширив спільноту розробників Arbitrum, включивши такі мови, як C++ і Rust, йому не вдалося прийняти такі популярні мови, як JavaScript і Python.

Хоча існують попередні проекти, спрямовані на впровадження Python і JavaScript у WASM, ці зусилля ще не готові до широкого впровадження через проблеми зі збиранням сміття та проблеми з продуктивністю.

Мовна сумісність

Наразі Stylus підтримує C/C++ і Rust SDK, бездоганно інтегруючись із наборами інструментів для цих мов. Розробники можуть навіть інтегрувати сторонні бібліотеки, такі як власні криптографічні реалізації, під час створення смарт-контрактів. Основним обмеженням для здійснення чогось подібного є витрати на попутний газ.

Незважаючи на те, що Rust SDK все ще перебуває в зародковому стані, і Rust, і C SDK мають деякі відсутні функції. Наприклад, C SDK не підтримує функції, експортовані ABI, а модифікатори ще не підтримуються ні в одному SDK.

Наразі немає локального середовища тестування Stylus, але розробники можуть запускати тести безпосередньо в SDK. Для розгортання смарт-контрактів наразі єдиним варіантом є testnet, який ще не підтримує перевірку смарт-контрактів. Наразі тривають спроби додати різні токени ERC і **[Uniswap V2](https://twitter.com/evmcheb/status/1697537852522049990)** в екосистему Stylus.

Дилема вибору мови

Вибір між доменно-орієнтованими мовами (DSL), вбудованими DSL (eDSL) і мовами загального призначення вимагає компромісу між керуванням низького рівня та абстракцією високого рівня. Розробка абсолютно нового DSL вимагає значних інвестицій у розвиток інструментарію та екосистеми. Навпаки, як підмножина мови загального призначення, eDSL дозволяє легше інтегрувати з існуючими інструментами та має нижчу криву навчання. Наприклад, було б вигідно створити eDSL на популярній мові, як-от JavaScript або Python.

Загальна мова вимагає використання SDK, який вводить додаткові інструменти, збільшує багатослівність і робить код менш виразним, а також довші виклики API та операції з об’єктами.

Знаходження правильного балансу між вибором мови та розробкою eDSL може бути ключем до залучення ширшої спільноти розробників, одночасно надаючи зручні інструменти. Згідно з поточними даними, найкраща спільнота крипторозробників все ще зосереджена навколо Ethereum. Однак платформи, які використовують Rust для смарт-контрактів, такі як Polkadot, Cosmos і Solana, також набирають обертів і швидко зростають серед своїх спільнот розробників.

продуктивність

WASM значно покращує швидкість виконання та зменшує розмір пакету. Хоча Stylus ще не розгорнуто в основній мережі, тести з інших мереж можуть слугувати корисною довідкою. Спостережуваний час виконання в 4-8 разів швидший, а скомпільований розмір зменшується приблизно на 50%.

Наразі Stylus має обмеження розміру своїх контрактів, що не перевищує 128 КБ без стиснення. Це обмеження ускладнює перенесення великих смарт-контрактів з інших мов, наприклад Solidity. У базі коду Stylus це обмеження описано нижче:

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

Взаємодія з EVM

EVM і WASM використовують однакові слоти для зберігання даних і дерево стану, що полегшує взаємодію Stylus з EVM. Це досягається за допомогою EVM API, реалізованого в WASM, з використанням популярного шаблону Host I/O. Повний список підтримуваних API EVM демонструє повну підтримку взаємодії.

Спеціальний попередньо складений договір

Цей аспект особливо захоплюючий, оскільки він представляє незвідану територію. Спеціальні попередньо скомпільовані контракти мають потенціал для впровадження додаткових криптографічних примітивів у мережу з меншими витратами на виконання. Вони також можуть зменшити вартість логічних висновків, запровадивши тензорні обчислення як попередньо скомпільовані контракти. Однак, здається, не існує коду, пов’язаного з настроюваними попередньо скомпільованими контрактами. Хоча попередньо скомпільовані контракти існують для компонентів EVM, вони не підлягають гарячій заміні.

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

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

На відміну від CosmWasm (який використовує модель Actor без повторного входу), Rust SDK від Stylus вимикає повторне входження як позначку функції за замовчуванням. Розробники мають можливість увімкнути цю функцію вручну.

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

Інсайт

Stylus відкриває нові випадки використання, які були б надто інтенсивними за використання лише EVM, наприклад, високопродуктивне шифрування, ігри та AI. Це також дозволяє налаштовувати попередньо скомпільовані контракти, дозволяючи розробникам додавати власне шифрування та інші базові функції, не чекаючи оновлень. У минулому ми бачили, як деякі не-Ethereum екосистеми приймали WASM, такі як Cosmos і Polkadot. Це перший раз, коли спільнота Ethereum прийняла WASM. Загалом Stylus являє собою значну еволюцію в розробці смарт-контрактів і допоможе масштабувати Ethereum і Arbitrum, зберігаючи взаємодію з усіма існуючими програмами.

Інтеграція Stylus у SDK рівня 2 Arbitrum забезпечує більшу гнучкість для розробників рівня 3. Тепер вони можуть переміщати інтенсивні обчислення, які раніше перевищували ліміти газу, у ланцюг, відкриваючи нові можливості. Розробники більше не обмежуються Solidity, але також можуть вибрати Rust або C++, якщо ці мови краще відповідають їхнім потребам і знанням. Настроювані попередньо скомпільовані контракти дозволяють безперебійно переносити бажані криптографічні, службові та інші допоміжні функції в ланцюг для досягнення оптимальної продуктивності. Написання низькорівневої логіки безпосередньо на мові, адаптованій до кожного випадку використання, призводить до більш плавної розробки. Розробники можуть зосередитися на основних функціях продукту, а не вдаватися до обхідних шляхів, щоб уникнути витрат на газ. Усуваючи мовні та газові обмеження, Stylus дає змогу розробникам третього рівня створювати найефективніший досвід роботи з користувачами з самого початку, використовуючи правильні інструменти для свого домену.

Stylus також демонструє здатність Arbitrum впроваджувати масштабні інновації та інтегрувати нові віртуальні машини. Ед Фелтен, співзасновник і головний науковий співробітник Arbitrum & Offchain Labs, зазначив, що Arbitrum розроблено на основі популярних інструментів і мов програмування в галузі. Вони можуть швидше писати тести та розробляти нові функції на основі застарілих систем. OP пішов далі на шляху ZKization і поступово перейшов до гібридної ідеї Rollup. Optimism зараз працює з Risc0 над використанням Zeth для створення доказів нульового знання для OPRU. Використовуючи це рішення, Оптимізму не потрібно вносити додаткові модифікації в ОПРУ. Якщо вас цікавить Zeth, ви можете прочитати те, що я написав раніше [Twitter](https://x.com/glazecl/status/1709947992168710174?s=20).

Ми дуже з нетерпінням чекаємо на Arbitrum, щоб побачити застосування ШІ. Наразі виконання машинного навчання в ланцюжку дуже витрачає газ, що робить розробку дорогою. ML з нульовим знанням може зменшити витрати, але також значно ускладнює роботу розробників. Якби ми могли реалізувати тензорні операції як користувальницькі попередньо скомпільовані контракти через Stylus і виконувати їх нативно за невелику частку вартості, це відкрило б нові можливості для високоефективного машинного навчання в ланцюжку. Дозволяючи розробникам швидко створювати та розгортати алгоритми ML як прості в інтеграції попередньо скомпільовані контракти на мові, з якою вони знайомі, наприклад Python, Arbitrum може стимулювати нове покоління інновацій ШІ в DeFi, GameFi тощо. Продуктивність і гнучкість Stylus дозволять нам зосередитися на інноваційних архітектурах ML, а не на оптимізації газу. Ми з нетерпінням чекаємо креативності спільноти, застосованої до цієї нової парадигми.