WebAssembly (Wasm) — це портативний, високопродуктивний формат бінарних інструкцій, який можна запускати у веб-браузерах. Він розроблений як універсальна мета компіляції, яку можна використовувати з кількома мовами програмування та запускати на різних платформах.
Блокчейн — це децентралізована технологія розподіленої книги, яка забезпечує безпеку та достовірність даних за допомогою криптографії та алгоритмів консенсусу. Блокчейн можна використовувати для запису транзакцій, зберігання даних і виконання смарт-контрактів, серед інших програм.
Існує кілька взаємозв'язків і сценаріїв застосування між Wasm і блокчейном:
Таким чином, поєднання Wasm і блокчейну забезпечує більш ефективні, безпечні та гнучкі блокчейн-додатки та послуги. Портативність і висока продуктивність Wasm роблять його важливою технологією в області блокчейну.
WebAssembly — це ефективний і легкий стандарт набору інструкцій, розроблений Консорціумом всесвітньої павутини (W3C). Він вітається як руйнівник для Інтернету та високопродуктивних обчислень, підтримуючи кросбраузерне виконання. Це означає, що ми можемо скомпілювати різні мови програмування, зокрема C/C++, Go, Rust тощо, в уніфікований стандартний двійковий формат і використовувати його як заміну для JavaScript, що працює майже з нативним кодом у веб-браузерах.
WebAssembly, також відома як WASM, є безпечною для пам’яті та незалежною від платформи технологією, яка може ефективно відображати різні архітектури ЦП. Він пропонує кілька ключових переваг:
Крім того, Інтернет є єдиною справжньою універсальною платформою, яка дозволяє отримати доступ до ваших програм на будь-якому пристрої. Це також дає змогу підтримувати єдину кодову базу, спрощувати оновлення та гарантувати, що всі користувачі зможуть отримати доступ до ваших програм. WASM підтримує 64-розрядні та 32-розрядні операції з цілими числами, які безпосередньо відповідають інструкціям ЦП. Вилучивши операції з плаваючою комою, можна легко досягти детермінованої поведінки, що необхідно для консенсусних алгоритмів. Завдяки підтримці проекту інфраструктури компілятора LLVM, WASM може отримати вигоду від більш ніж десятиліття оптимізації компілятора в LLVM. WASM постійно розробляється великими компаніями, такими як Google, Apple, Microsoft, Mozilla та Facebook, і підтримується серверними частинами браузерів, розробленими цими компаніями.
Краса WASM полягає в його здатності працювати будь-де без необхідності завантажувати чи встановлювати, оскільки він у двійковому форматі. Лише одним клацанням миші веб-програми можна запускати негайно, коли це необхідно. Це навіть безпечніше, ніж безпосереднє завантаження та запуск бінарних файлів, оскільки браузери мають вбудовані механізми безпеки, які запобігають заподіянню шкоди системі виконаним кодом. Крім того, ділитися веб-додатками просто – посилання можна розміщувати будь-де у вигляді рядків, які можна натиснути.
Інтернет перетворився з платформи для статичного вмісту та невеликих мов сценаріїв до потужної та популярної платформи, наповненої дивовижними програмами та функціями, завдяки вбудованій функціональності браузерів та інтерактивності, яку забезпечує Інтернет. Однак веб-додатки все ще переважно керуються тією самою мовою сценаріїв (JavaScript), яка спочатку не була розроблена для виконання цих завдань.
Спочатку JavaScript був простою мовою сценаріїв, спрямованою на надання інтерактивності легким гіпертекстовим документам у веб-додатках. Його дизайн був легким для вивчення та написання, і він не надавав пріоритету швидкості виконання. Протягом багатьох років значні покращення продуктивності аналізу JavaScript у браузерах призвели до значного підвищення продуктивності.
Завдяки прискореній швидкості виконання JavaScript спектр речей, які можна робити в браузерах, значно розширився. Нові API запровадили такі функції, як інтерактивна графіка, потокове відео, офлайн-перегляд тощо. Крім того, все більше додатків, які раніше були обмежені настільними середовищами, увійшли в Інтернет. Тепер ви можете легко редагувати документи та надсилати електронні листи у своєму браузері. Однак у деяких областях продуктивність JavaScript залишається проблемою. Подумайте про програми, якими ви користуєтеся, окрім браузерів: ігри, редагування відео, 3D-візуалізація чи створення музики. Ці програми вимагають великих обчислень і високої продуктивності. JavaScript важко задовольнити ці вимоги високої продуктивності.
Однак замінити JavaScript непрактично, і для досягнення цієї мети можуть знадобитися навіть десятиліття, оскільки весь Інтернет покладається на нього. Крім того, існує велика спільнота, яка постійно вдосконалює JavaScript. Дійсно, порівняно з іншими мовами, JavaScript має деякі недоліки в таких аспектах, як null і ==. Однак ці проблеми не настільки серйозні, щоб вимагати заміни всієї технології.
Таким чином, WebAssembly не замінить JavaScript, але це не означає, що WASM не буде використовуватися в майбутньому. Насправді використання WASM ставатиме все більш поширеним. Це пояснюється тим, що WASM може надати потужні обчислювальні можливості в Інтернеті, такі як обробка зображень або ігри. За допомогою WASM ви можете створити веб-версію Photoshop, яка добре працює, або 3D-гру, яка працює зі швидкістю 60 кадрів на секунду або навіть з вищою частотою кадрів у браузері. Ігри, зокрема, представляють собою виклик, оскільки вони вимагають одночасного виконання аудіо- та відеообробки, а також координації фізичних ефектів і ШІ. WASM має можливість ефективно запускати ігри в браузері, відкриваючи двері для перенесення багатьох інших програм у браузер.
На малюнку вище показано порівняння робочого процесу між JavaScript і WebAssembly (wasm). Можна помітити, що wasm набагато лаконічніший порівняно з JavaScript.
ВАСМ В.М
У 2018 році екосистема Ethereum почала обговорювати використання віртуальної машини WASM як віртуальної машини смарт-контракту, оскільки вважалося, що вона має кращу продуктивність, ніж EVM. Гевін Вуд, винахідник EVM, висловив доцільність заміни його на WASM, а Віталік також заявив, що Ethereum 2.0 буде оновлено для підтримки контрактів WASM (eWASM) для задоволення потреб у розробці. Сьогодні розвиток контрактів WASM вже оформився.
Проблема розміру архітектури
Традиційні комп’ютери мають набори інструкцій, які приймають введення 32 або 64 біт. Однак EVM відрізняється та унікальний, оскільки це 256-бітний комп’ютер, призначений для більш легкої роботи з алгоритмом хешування Ethereum, який створює явні 256-бітні виходи.
Однак фактичний комп’ютер, на якому запущені програми EVM, повинен розділити 256-бітні слова на їх рідну архітектуру для виконання смарт-контрактів, що робить всю систему неефективною та непрактичною.
Крім того, якщо ви хочете реалізувати такий складний алгоритм, як SHA256, використовуючи основні OPCODES EVM на Ethereum, вас чекають важкі часи! Щоб вирішити проблему високої вартості газу під час виконання складних програм через набір інструкцій, Ethereum представив концепцію попередньої компіляції, яка компілює програму в EVM і споживає фіксовану кількість газу. Примітною попередньою компіляцією є алгоритм хешування Ethereum, оскільки його впровадження у віртуальній машині призведе до надзвичайно дорогих комісій під час виклику контрактів.
Роздута попередня компіляція
Проблема попередньої компіляції полягає в тому, що вона постійно збільшує роздутість і ускладнює віртуальну машину, не вирішуючи основної проблеми: неефективного та поганого дизайну поточного набору інструкцій і специфікацій.
Що, якби ми могли визначити нову специфікацію та набір інструкцій, які не вимагають попередньої компіляції цих складних програм, а натомість ефективно досягають бажаних результатів за допомогою базових інструкцій? Ось тут і вступає в гру WASM.
Зараз команда EWASM інтегрує WebAssembly в Ethereum, щоб забезпечити більш ефективний і спрощений рівень виконання, що робить Ethereum придатним як повністю децентралізовану обчислювальну платформу. WASM був прийнятий як стандарт багатьма іншими проектами, включаючи Dfinity та EOS, обидва використовують його для вдосконалення своїх рівнів виконання.
Проект Stylus — це ініціатива в мережі Arbitrum Ethereum Layer 2, яка спрямована на підвищення продуктивності виконання смарт-контрактів шляхом впровадження віртуальної машини WebAssembly (WASM). Контракти можна виконувати швидше, ніж із Solidity, при цьому зменшуються витрати на газ. Це полегшує створення високоефективних смарт-контрактів у мережі Arbitrum і наразі підтримує компіляцію на C, C++ і Rust.
Підтримка спеціальної попередньої компіляції: Stylus також підтримує спеціальні попередні компіляції, що дозволяє розробникам розгортати власні попередні компіляції Rust або C++ у мережі Arbitrum. Це може допомогти запровадити нові криптографічні алгоритми чи інші специфічні функції в ланцюжку, не чекаючи оновлень у ланцюжку. Наприклад, тензорне обчислення можна попередньо скомпільувати, щоб зменшити витрати на логічні висновки, що може бути корисним для машинного навчання в ланцюжку.
Взаємодія з EVM: Stylus забезпечує інтеграцію з існуючою екосистемою Ethereum завдяки взаємодії з віртуальною машиною Ethereum (EVM). Це означає, що контракти Stylus можуть взаємодіяти з існуючими контрактами EVM і використовувати той самий глобальний стан, що й EVM.
Повторне входження: на відміну від Cosmos Wasm, Stylus Rust SDK представляє функцію повторного входження та дозволяє розробникам увімкнути його вручну. Це дає контрактам більшу гнучкість у взаємодії, але розробникам потрібно ретельно керувати станом, щоб забезпечити безпеку.
Базуючись на процвітаючій екосистемі Arbitrum, інтеграція Stylus є, мабуть, найбільш значущою інтеграцією WASM. Це також підвищує конкурентоспроможність Arbitrum серед полів zkRollup.
Протокол Gear створює технологію, яка може бути розгорнута як парачейн Polkadot, що служить інструментом для розміщення смарт-контрактів. Подібно до Polkadot, Gear також використовує структуру Substrate, яка спрощує процес створення різних блокчейнів для конкретних програм. Substrate забезпечує готову функціональність, дозволяючи людям зосередитися на створенні власних механізмів на основі протоколу.
Раніше вартість запуску блокчейну була високою, але Gear дозволяє розробникам dApp зосередитися на своїх проектах замість того, щоб будувати та керувати цілим блокчейном з нуля.
Основним двигуном протоколу Gear є модуль смарт-контрактів. У випадку Gear будь-який смарт-контракт — це програма WebAssembly, скомпільована різними мовами, такими як Rust, C і C++. Для розробників з-за меж криптосвіту бар’єр входу низький, оскільки вони можуть створювати смарт-контракти у звичному середовищі. Розробникам легше експериментувати з мовами програмування смарт-контрактів.
Архітектура смарт-контракту Gear використовує модель актора під капотом і забезпечує такі функції:
Кожна програма має фіксований обсяг пам’яті, яким Gear дозволяє керувати. Програма може читати та записувати лише у власній пам’яті та не має доступу до простору пам’яті інших програм. Кожна програма має власний незалежний простір пам’яті, і інформація на вузлах Gear може оброблятися паралельно.
CosmWasm — це сучасна та потужна платформа смарт-контрактів на основі Wasm, яку можна легко інтегрувати з Cosmos-SDK. Це демонструє одну з головних переваг CosmWasm: контракти, написані за допомогою CosmWasm, тісно інтегровані з IBC (Inter-Blockchain Communication), що дозволяє розробникам і користувачам увійти в багатоланцюгове майбутнє. Наразі підтримується лише Rust.
Переваги CosmWasm
Виклики та обмеження
Окрім віртуальної машини wasm, нещодавно з’явилася технологія під назвою ZKWASM. Винахідник, Delphinus Labs, розмістив код для ZK-WASM на GitHub. ZKWASM дозволяє розробникам перевіряти правильність виконаних обчислень без їх повторного виконання. Використовуючи ZKWASM, розробники можуть гнучко створювати додатки з нульовим знанням (ZKP), використовуючи різні мови програмування. Ці програми можуть безперешкодно працювати у веб-браузерах.
ZKWASM походить від ZKSNARK, який є комбінацією SNARG і доказів нульового знання. Давайте пояснимо це далі. Як правило, щоб використовувати ZKSNARK, вам потрібно написати програму на мові арифметичних схем або на дружній до схеми мові, як-от Pinocchio, TinyRAM, Buffet/Pequin, Geppetto, xJsnark framework, ZoKrates тощо. Це створює перешкоду для існуючих програм, що ускладнює для них використання можливостей ZKSNARK. Однак є інший спосіб, який полягає в тому, щоб використовувати ZKSNARK не на рівні вихідного коду, а на рівні байт-коду віртуальної машини, а потім реалізувати віртуальну машину, яка підтримує ZKSNARK. Delphinus Labs застосувала останній підхід, включивши всю віртуальну машину WASM у схему ZKSNARK. У результаті існуючі програми WASM можуть працювати безпосередньо на ZKWASM без будь-яких змін. Тому постачальники хмарних послуг можуть довести будь-якому користувачеві, що результати обчислень обчислюються чесно, і не розголошуватимуть жодної приватної інформації.
ZKWASM надає різні варіанти використання, наприклад, увімкнення перевірки в ланцюжку операцій, які виконуються в браузері. Це дозволяє здійснювати веб-взаємодії, які можна перевірити на блокчейні. Інші випадки використання включають служби Oracle, обчислення поза ланцюгом, автоматизацію, подолання розриву між Web2 і Web3, створення доказів для машинного навчання та обробки даних і навіть ігрові та соціальні програми. Зі збільшенням впровадження zkWASM розширює можливості Web3 та інтегрує розробників Web2 у цей трансформаційний ландшафт.
Завдяки реалізації ZKWASM від Delphinus Lab розробники можуть використовувати потужність доказів із нульовим знанням для підвищення безпеки та конфіденційності своїх додатків, прокладаючи шлях до більш надійної та децентралізованої цифрової екосистеми.
Продуктивність Інтернету та майбутнє рівня виконання платформи смарт-контрактів є багатообіцяючими. Мало того, що dApps матимуть вищу продуктивність, але інтеграція WASM також спростить розробку смарт-контрактів тим, хто знайомий із основними мовами, такими як Rust і Go, без необхідності вивчати тонкощі solidity чи інших мов розробки блокчейнів. За даними Evans Data Corporation, у світі налічується майже 27 мільйонів розробників, і ця кількість неухильно зростає, а до 2024 року очікується збільшення до понад 28,7 мільйонів. Однак кількість розробників у сфері блокчейну все ще менше 30 000, що становить лише приблизно одну тисячу від загальної кількості розробників. Хоча це число постійно зростає, вивчення нових мов смарт-контрактів все ще може бути перешкодою для розробників увійти в індустрію блокчейну.
Але все більше блокчейнів починають підтримувати Web Assembly як байт-код для скомпільованих смарт-контрактів. WASM забезпечує ефективність, взаємодію та широкий спектр варіантів використання блокчейнів. Він також служить ключем, що відкриває двері для розробників, знижуючи бар’єр для входу в розробку блокчейну. Уявіть собі, що в найближчому майбутньому, коли розробники Web 2.0 захочуть спробувати свої сили в розробці блокчейнів, вони зможуть використовувати такі знайомі мови, як Python, C++ і JavaScript, для створення великомасштабних програм на блокчейні, максимізуючи цінність децентралізованих мереж. Спочатку знизити бар’єр для творців (розробників), потім знизити бар’єр для користувачів і рухатися до масового впровадження.
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
https://www.notion.so/18f67cee15c147dfae68b06269a455c0?pvs=21
https://wiki.polkadot.network/docs/learn-wasm
https://docs.arbitrum.io/stylus/stylus-gentle-introduction
https://medium.com/@gear_techs/introducing-gear-easy-to-use-polkadot-parachain-9ccd05437a9c
https://medium.com/cosmwasm/cosmwasm-for-ctos-f1ffa19cccb8
https://www.cncf.io/wp-content/uploads/2023/09/The-State-of-WebAssembly-2023.pdf
https://github.com/DelphinusLab/zkWasm
Дякуємо Меггі та Сінью Джі (CMU) за їхні поради та вказівки щодо цієї статті.
Відмова від відповідальності: усі статті Foresight Ventures не призначені як інвестиційні поради. Інвестиції пов’язані з ризиками, тому, будь ласка, оцініть власну толерантність до ризику та обережно приймайте інвестиційні рішення.
WebAssembly (Wasm) — це портативний, високопродуктивний формат бінарних інструкцій, який можна запускати у веб-браузерах. Він розроблений як універсальна мета компіляції, яку можна використовувати з кількома мовами програмування та запускати на різних платформах.
Блокчейн — це децентралізована технологія розподіленої книги, яка забезпечує безпеку та достовірність даних за допомогою криптографії та алгоритмів консенсусу. Блокчейн можна використовувати для запису транзакцій, зберігання даних і виконання смарт-контрактів, серед інших програм.
Існує кілька взаємозв'язків і сценаріїв застосування між Wasm і блокчейном:
Таким чином, поєднання Wasm і блокчейну забезпечує більш ефективні, безпечні та гнучкі блокчейн-додатки та послуги. Портативність і висока продуктивність Wasm роблять його важливою технологією в області блокчейну.
WebAssembly — це ефективний і легкий стандарт набору інструкцій, розроблений Консорціумом всесвітньої павутини (W3C). Він вітається як руйнівник для Інтернету та високопродуктивних обчислень, підтримуючи кросбраузерне виконання. Це означає, що ми можемо скомпілювати різні мови програмування, зокрема C/C++, Go, Rust тощо, в уніфікований стандартний двійковий формат і використовувати його як заміну для JavaScript, що працює майже з нативним кодом у веб-браузерах.
WebAssembly, також відома як WASM, є безпечною для пам’яті та незалежною від платформи технологією, яка може ефективно відображати різні архітектури ЦП. Він пропонує кілька ключових переваг:
Крім того, Інтернет є єдиною справжньою універсальною платформою, яка дозволяє отримати доступ до ваших програм на будь-якому пристрої. Це також дає змогу підтримувати єдину кодову базу, спрощувати оновлення та гарантувати, що всі користувачі зможуть отримати доступ до ваших програм. WASM підтримує 64-розрядні та 32-розрядні операції з цілими числами, які безпосередньо відповідають інструкціям ЦП. Вилучивши операції з плаваючою комою, можна легко досягти детермінованої поведінки, що необхідно для консенсусних алгоритмів. Завдяки підтримці проекту інфраструктури компілятора LLVM, WASM може отримати вигоду від більш ніж десятиліття оптимізації компілятора в LLVM. WASM постійно розробляється великими компаніями, такими як Google, Apple, Microsoft, Mozilla та Facebook, і підтримується серверними частинами браузерів, розробленими цими компаніями.
Краса WASM полягає в його здатності працювати будь-де без необхідності завантажувати чи встановлювати, оскільки він у двійковому форматі. Лише одним клацанням миші веб-програми можна запускати негайно, коли це необхідно. Це навіть безпечніше, ніж безпосереднє завантаження та запуск бінарних файлів, оскільки браузери мають вбудовані механізми безпеки, які запобігають заподіянню шкоди системі виконаним кодом. Крім того, ділитися веб-додатками просто – посилання можна розміщувати будь-де у вигляді рядків, які можна натиснути.
Інтернет перетворився з платформи для статичного вмісту та невеликих мов сценаріїв до потужної та популярної платформи, наповненої дивовижними програмами та функціями, завдяки вбудованій функціональності браузерів та інтерактивності, яку забезпечує Інтернет. Однак веб-додатки все ще переважно керуються тією самою мовою сценаріїв (JavaScript), яка спочатку не була розроблена для виконання цих завдань.
Спочатку JavaScript був простою мовою сценаріїв, спрямованою на надання інтерактивності легким гіпертекстовим документам у веб-додатках. Його дизайн був легким для вивчення та написання, і він не надавав пріоритету швидкості виконання. Протягом багатьох років значні покращення продуктивності аналізу JavaScript у браузерах призвели до значного підвищення продуктивності.
Завдяки прискореній швидкості виконання JavaScript спектр речей, які можна робити в браузерах, значно розширився. Нові API запровадили такі функції, як інтерактивна графіка, потокове відео, офлайн-перегляд тощо. Крім того, все більше додатків, які раніше були обмежені настільними середовищами, увійшли в Інтернет. Тепер ви можете легко редагувати документи та надсилати електронні листи у своєму браузері. Однак у деяких областях продуктивність JavaScript залишається проблемою. Подумайте про програми, якими ви користуєтеся, окрім браузерів: ігри, редагування відео, 3D-візуалізація чи створення музики. Ці програми вимагають великих обчислень і високої продуктивності. JavaScript важко задовольнити ці вимоги високої продуктивності.
Однак замінити JavaScript непрактично, і для досягнення цієї мети можуть знадобитися навіть десятиліття, оскільки весь Інтернет покладається на нього. Крім того, існує велика спільнота, яка постійно вдосконалює JavaScript. Дійсно, порівняно з іншими мовами, JavaScript має деякі недоліки в таких аспектах, як null і ==. Однак ці проблеми не настільки серйозні, щоб вимагати заміни всієї технології.
Таким чином, WebAssembly не замінить JavaScript, але це не означає, що WASM не буде використовуватися в майбутньому. Насправді використання WASM ставатиме все більш поширеним. Це пояснюється тим, що WASM може надати потужні обчислювальні можливості в Інтернеті, такі як обробка зображень або ігри. За допомогою WASM ви можете створити веб-версію Photoshop, яка добре працює, або 3D-гру, яка працює зі швидкістю 60 кадрів на секунду або навіть з вищою частотою кадрів у браузері. Ігри, зокрема, представляють собою виклик, оскільки вони вимагають одночасного виконання аудіо- та відеообробки, а також координації фізичних ефектів і ШІ. WASM має можливість ефективно запускати ігри в браузері, відкриваючи двері для перенесення багатьох інших програм у браузер.
На малюнку вище показано порівняння робочого процесу між JavaScript і WebAssembly (wasm). Можна помітити, що wasm набагато лаконічніший порівняно з JavaScript.
ВАСМ В.М
У 2018 році екосистема Ethereum почала обговорювати використання віртуальної машини WASM як віртуальної машини смарт-контракту, оскільки вважалося, що вона має кращу продуктивність, ніж EVM. Гевін Вуд, винахідник EVM, висловив доцільність заміни його на WASM, а Віталік також заявив, що Ethereum 2.0 буде оновлено для підтримки контрактів WASM (eWASM) для задоволення потреб у розробці. Сьогодні розвиток контрактів WASM вже оформився.
Проблема розміру архітектури
Традиційні комп’ютери мають набори інструкцій, які приймають введення 32 або 64 біт. Однак EVM відрізняється та унікальний, оскільки це 256-бітний комп’ютер, призначений для більш легкої роботи з алгоритмом хешування Ethereum, який створює явні 256-бітні виходи.
Однак фактичний комп’ютер, на якому запущені програми EVM, повинен розділити 256-бітні слова на їх рідну архітектуру для виконання смарт-контрактів, що робить всю систему неефективною та непрактичною.
Крім того, якщо ви хочете реалізувати такий складний алгоритм, як SHA256, використовуючи основні OPCODES EVM на Ethereum, вас чекають важкі часи! Щоб вирішити проблему високої вартості газу під час виконання складних програм через набір інструкцій, Ethereum представив концепцію попередньої компіляції, яка компілює програму в EVM і споживає фіксовану кількість газу. Примітною попередньою компіляцією є алгоритм хешування Ethereum, оскільки його впровадження у віртуальній машині призведе до надзвичайно дорогих комісій під час виклику контрактів.
Роздута попередня компіляція
Проблема попередньої компіляції полягає в тому, що вона постійно збільшує роздутість і ускладнює віртуальну машину, не вирішуючи основної проблеми: неефективного та поганого дизайну поточного набору інструкцій і специфікацій.
Що, якби ми могли визначити нову специфікацію та набір інструкцій, які не вимагають попередньої компіляції цих складних програм, а натомість ефективно досягають бажаних результатів за допомогою базових інструкцій? Ось тут і вступає в гру WASM.
Зараз команда EWASM інтегрує WebAssembly в Ethereum, щоб забезпечити більш ефективний і спрощений рівень виконання, що робить Ethereum придатним як повністю децентралізовану обчислювальну платформу. WASM був прийнятий як стандарт багатьма іншими проектами, включаючи Dfinity та EOS, обидва використовують його для вдосконалення своїх рівнів виконання.
Проект Stylus — це ініціатива в мережі Arbitrum Ethereum Layer 2, яка спрямована на підвищення продуктивності виконання смарт-контрактів шляхом впровадження віртуальної машини WebAssembly (WASM). Контракти можна виконувати швидше, ніж із Solidity, при цьому зменшуються витрати на газ. Це полегшує створення високоефективних смарт-контрактів у мережі Arbitrum і наразі підтримує компіляцію на C, C++ і Rust.
Підтримка спеціальної попередньої компіляції: Stylus також підтримує спеціальні попередні компіляції, що дозволяє розробникам розгортати власні попередні компіляції Rust або C++ у мережі Arbitrum. Це може допомогти запровадити нові криптографічні алгоритми чи інші специфічні функції в ланцюжку, не чекаючи оновлень у ланцюжку. Наприклад, тензорне обчислення можна попередньо скомпільувати, щоб зменшити витрати на логічні висновки, що може бути корисним для машинного навчання в ланцюжку.
Взаємодія з EVM: Stylus забезпечує інтеграцію з існуючою екосистемою Ethereum завдяки взаємодії з віртуальною машиною Ethereum (EVM). Це означає, що контракти Stylus можуть взаємодіяти з існуючими контрактами EVM і використовувати той самий глобальний стан, що й EVM.
Повторне входження: на відміну від Cosmos Wasm, Stylus Rust SDK представляє функцію повторного входження та дозволяє розробникам увімкнути його вручну. Це дає контрактам більшу гнучкість у взаємодії, але розробникам потрібно ретельно керувати станом, щоб забезпечити безпеку.
Базуючись на процвітаючій екосистемі Arbitrum, інтеграція Stylus є, мабуть, найбільш значущою інтеграцією WASM. Це також підвищує конкурентоспроможність Arbitrum серед полів zkRollup.
Протокол Gear створює технологію, яка може бути розгорнута як парачейн Polkadot, що служить інструментом для розміщення смарт-контрактів. Подібно до Polkadot, Gear також використовує структуру Substrate, яка спрощує процес створення різних блокчейнів для конкретних програм. Substrate забезпечує готову функціональність, дозволяючи людям зосередитися на створенні власних механізмів на основі протоколу.
Раніше вартість запуску блокчейну була високою, але Gear дозволяє розробникам dApp зосередитися на своїх проектах замість того, щоб будувати та керувати цілим блокчейном з нуля.
Основним двигуном протоколу Gear є модуль смарт-контрактів. У випадку Gear будь-який смарт-контракт — це програма WebAssembly, скомпільована різними мовами, такими як Rust, C і C++. Для розробників з-за меж криптосвіту бар’єр входу низький, оскільки вони можуть створювати смарт-контракти у звичному середовищі. Розробникам легше експериментувати з мовами програмування смарт-контрактів.
Архітектура смарт-контракту Gear використовує модель актора під капотом і забезпечує такі функції:
Кожна програма має фіксований обсяг пам’яті, яким Gear дозволяє керувати. Програма може читати та записувати лише у власній пам’яті та не має доступу до простору пам’яті інших програм. Кожна програма має власний незалежний простір пам’яті, і інформація на вузлах Gear може оброблятися паралельно.
CosmWasm — це сучасна та потужна платформа смарт-контрактів на основі Wasm, яку можна легко інтегрувати з Cosmos-SDK. Це демонструє одну з головних переваг CosmWasm: контракти, написані за допомогою CosmWasm, тісно інтегровані з IBC (Inter-Blockchain Communication), що дозволяє розробникам і користувачам увійти в багатоланцюгове майбутнє. Наразі підтримується лише Rust.
Переваги CosmWasm
Виклики та обмеження
Окрім віртуальної машини wasm, нещодавно з’явилася технологія під назвою ZKWASM. Винахідник, Delphinus Labs, розмістив код для ZK-WASM на GitHub. ZKWASM дозволяє розробникам перевіряти правильність виконаних обчислень без їх повторного виконання. Використовуючи ZKWASM, розробники можуть гнучко створювати додатки з нульовим знанням (ZKP), використовуючи різні мови програмування. Ці програми можуть безперешкодно працювати у веб-браузерах.
ZKWASM походить від ZKSNARK, який є комбінацією SNARG і доказів нульового знання. Давайте пояснимо це далі. Як правило, щоб використовувати ZKSNARK, вам потрібно написати програму на мові арифметичних схем або на дружній до схеми мові, як-от Pinocchio, TinyRAM, Buffet/Pequin, Geppetto, xJsnark framework, ZoKrates тощо. Це створює перешкоду для існуючих програм, що ускладнює для них використання можливостей ZKSNARK. Однак є інший спосіб, який полягає в тому, щоб використовувати ZKSNARK не на рівні вихідного коду, а на рівні байт-коду віртуальної машини, а потім реалізувати віртуальну машину, яка підтримує ZKSNARK. Delphinus Labs застосувала останній підхід, включивши всю віртуальну машину WASM у схему ZKSNARK. У результаті існуючі програми WASM можуть працювати безпосередньо на ZKWASM без будь-яких змін. Тому постачальники хмарних послуг можуть довести будь-якому користувачеві, що результати обчислень обчислюються чесно, і не розголошуватимуть жодної приватної інформації.
ZKWASM надає різні варіанти використання, наприклад, увімкнення перевірки в ланцюжку операцій, які виконуються в браузері. Це дозволяє здійснювати веб-взаємодії, які можна перевірити на блокчейні. Інші випадки використання включають служби Oracle, обчислення поза ланцюгом, автоматизацію, подолання розриву між Web2 і Web3, створення доказів для машинного навчання та обробки даних і навіть ігрові та соціальні програми. Зі збільшенням впровадження zkWASM розширює можливості Web3 та інтегрує розробників Web2 у цей трансформаційний ландшафт.
Завдяки реалізації ZKWASM від Delphinus Lab розробники можуть використовувати потужність доказів із нульовим знанням для підвищення безпеки та конфіденційності своїх додатків, прокладаючи шлях до більш надійної та децентралізованої цифрової екосистеми.
Продуктивність Інтернету та майбутнє рівня виконання платформи смарт-контрактів є багатообіцяючими. Мало того, що dApps матимуть вищу продуктивність, але інтеграція WASM також спростить розробку смарт-контрактів тим, хто знайомий із основними мовами, такими як Rust і Go, без необхідності вивчати тонкощі solidity чи інших мов розробки блокчейнів. За даними Evans Data Corporation, у світі налічується майже 27 мільйонів розробників, і ця кількість неухильно зростає, а до 2024 року очікується збільшення до понад 28,7 мільйонів. Однак кількість розробників у сфері блокчейну все ще менше 30 000, що становить лише приблизно одну тисячу від загальної кількості розробників. Хоча це число постійно зростає, вивчення нових мов смарт-контрактів все ще може бути перешкодою для розробників увійти в індустрію блокчейну.
Але все більше блокчейнів починають підтримувати Web Assembly як байт-код для скомпільованих смарт-контрактів. WASM забезпечує ефективність, взаємодію та широкий спектр варіантів використання блокчейнів. Він також служить ключем, що відкриває двері для розробників, знижуючи бар’єр для входу в розробку блокчейну. Уявіть собі, що в найближчому майбутньому, коли розробники Web 2.0 захочуть спробувати свої сили в розробці блокчейнів, вони зможуть використовувати такі знайомі мови, як Python, C++ і JavaScript, для створення великомасштабних програм на блокчейні, максимізуючи цінність децентралізованих мереж. Спочатку знизити бар’єр для творців (розробників), потім знизити бар’єр для користувачів і рухатися до масового впровадження.
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
https://www.notion.so/18f67cee15c147dfae68b06269a455c0?pvs=21
https://wiki.polkadot.network/docs/learn-wasm
https://docs.arbitrum.io/stylus/stylus-gentle-introduction
https://medium.com/@gear_techs/introducing-gear-easy-to-use-polkadot-parachain-9ccd05437a9c
https://medium.com/cosmwasm/cosmwasm-for-ctos-f1ffa19cccb8
https://www.cncf.io/wp-content/uploads/2023/09/The-State-of-WebAssembly-2023.pdf
https://github.com/DelphinusLab/zkWasm
Дякуємо Меггі та Сінью Джі (CMU) за їхні поради та вказівки щодо цієї статті.
Відмова від відповідальності: усі статті Foresight Ventures не призначені як інвестиційні поради. Інвестиції пов’язані з ризиками, тому, будь ласка, оцініть власну толерантність до ризику та обережно приймайте інвестиційні рішення.