WebAssembly (Wasm) - это переносимый, высокопроизводительный формат двоичных инструкций, который может работать в веб-браузерах. Он разработан как универсальная цель компиляции, которую можно использовать с несколькими языками программирования и запускать на различных платформах.
Блокчейн - это децентрализованная технология распределенной бухгалтерской книги, которая обеспечивает безопасность и достоверность данных благодаря использованию криптографии и алгоритмов консенсуса. Блокчейн может использоваться для записи транзакций, хранения данных, выполнения смарт-контрактов и других приложений.
Существует несколько взаимосвязей и сценариев применения между Wasm и blockchain:
Таким образом, сочетание Wasm и блокчейна обеспечивает более эффективные, безопасные и гибкие приложения и сервисы на основе блокчейна. Портативность и высокая производительность Wasm делают его важной технологией в области блокчейна.
WebAssembly - это эффективный и легкий стандарт набора инструкций, разработанный World Wide Web Consortium (W3C). Его называют революционером в области веб-технологий и высокопроизводительных вычислений, поддерживающим кросс-браузерное исполнение. Это означает, что мы можем компилировать различные языки программирования, включая C/C++, Go, Rust и другие, в единый стандартный двоичный формат и использовать его в качестве замены JavaScript, запуская в веб-браузерах код с эффективностью, близкой к нативной.
WebAssembly, также известная как WASM, - это безопасная для памяти и независимая от платформы технология, которая может эффективно работать с различными архитектурами процессоров. Он предлагает несколько ключевых преимуществ:
Кроме того, Web - это единственная настоящая универсальная платформа, которая позволяет получить доступ к Вашим приложениям на любом устройстве. Это также позволит Вам поддерживать единую кодовую базу, упростит обновления и обеспечит доступ всех пользователей к Вашим приложениям. WASM поддерживает 64-битные и 32-битные целочисленные операции, которые напрямую соответствуют инструкциям процессора. Устранив операции с плавающей точкой, можно легко добиться детерминированного поведения, что необходимо для алгоритмов консенсуса. Поддерживаемый проектом инфраструктуры компилятора LLVM, WASM может воспользоваться преимуществами более чем десятилетней оптимизации компилятора в LLVM. WASM постоянно разрабатывается такими крупными компаниями, как Google, Apple, Microsoft, Mozilla и Facebook, и поддерживается бэкендами браузеров, разработанных этими компаниями.
Красота WASM заключается в его способности работать в любом месте без необходимости загрузки или установки, поскольку он представлен в бинарном формате. Всего одним щелчком мыши веб-приложения могут быть выполнены немедленно, когда это необходимо. Это даже более безопасно, чем прямая загрузка и запуск бинарных файлов, поскольку браузеры имеют встроенные механизмы безопасности, не позволяющие исполняемому коду нанести вред Вашей системе. Кроме того, обмен веб-приложениями очень прост - ссылки можно размещать в любом месте в виде кликабельных строк.
Веб превратился из платформы для статичного контента и небольших скриптовых языков в мощную и популярную платформу, наполненную удивительными приложениями и возможностями, благодаря встроенной функциональности браузеров и интерактивности, которую обеспечивает Веб. Однако веб-приложения по-прежнему в основном управляются одним и тем же языком сценариев (JavaScript), который изначально не был предназначен для выполнения этих задач.
Изначально JavaScript был простым языком сценариев, призванным придать интерактивность легким гипертекстовым документам в веб-приложениях. Его дизайн был прост в изучении и написании, и он не ставил во главу угла скорость выполнения. За прошедшие годы значительное повышение производительности при разборе JavaScript браузерами привело к заметному увеличению производительности.
Благодаря ускоренной скорости выполнения JavaScript, спектр вещей, которые можно делать в браузерах, значительно расширился. В новых API появились такие функции, как интерактивная графика, потоковое видео, автономный просмотр и многое другое. Более того, все большее количество приложений, которые раньше были ограничены настольными средами, переходят в Web. Теперь Вы можете легко редактировать документы и отправлять электронные письма в браузере. Однако в некоторых областях производительность JavaScript остается проблемой. Подумайте о программных приложениях, которые Вы используете помимо браузеров: игры, редактирование видео, 3D-рендеринг или производство музыки. Эти приложения требуют обширных вычислений и высокой производительности. JavaScript с трудом справляется с этими высокопроизводительными требованиями.
Однако заменить JavaScript не представляется возможным, и для достижения этой цели могут потребоваться даже десятилетия, так как на нем держится весь Интернет. Более того, существует большое сообщество, постоянно совершенствующее JavaScript. Действительно, по сравнению с другими языками, JavaScript имеет некоторые недостатки в таких аспектах, как null и ==. Однако эти проблемы не настолько серьезны, чтобы требовать замены всей техники.
Итак, WebAssembly не заменит JavaScript, но это не значит, что WASM не будет использоваться в будущем. На самом деле, использование WASM будет становиться все более и более распространенным. Это связано с тем, что WASM может привнести в веб мощные вычислительные возможности, такие как обработка изображений или игры. С помощью WASM Вы можете создать веб-версию Photoshop, которая будет хорошо работать, или 3D-игру, которая будет работать в браузере со скоростью 60 кадров в секунду или даже с более высокой частотой кадров. Игры, в частности, представляют собой сложную задачу, поскольку они требуют одновременного выполнения обработки аудио и видео, а также координации физических эффектов и искусственного интеллекта. WASM способен эффективно запускать игры в браузере, что открывает возможности для переноса в браузер многих других приложений.
На рисунке выше показано сравнение рабочего процесса между JavaScript и WebAssembly (wasm). Можно заметить, что wasm гораздо лаконичнее, чем JavaScript.
WASM VM
В 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 parachain, служащий инструментом для размещения смарт-контрактов. Подобно Polkadot, Gear также использует фреймворк Substrate, который упрощает процесс создания различных блокчейнов для конкретных приложений. Substrate обеспечивает функциональность "из коробки", позволяя людям сосредоточиться на создании собственных движков поверх протокола.
Раньше стоимость запуска блокчейна была высокой, но Gear позволяет разработчикам dApp сосредоточиться на своих проектах вместо того, чтобы создавать и эксплуатировать весь блокчейн с нуля.
Основным двигателем протокола Gear является модуль смарт-контрактов. В случае с Gear любой смарт-контракт - это программа на WebAssembly, скомпилированная на разных языках, таких как Rust, C и C++. Для разработчиков, не принадлежащих к миру криптовалют, барьер для входа в систему невысок, поскольку они могут создавать смарт-контракты в привычной среде. Разработчикам проще экспериментировать с языками программирования смарт-контрактов.
Архитектура смарт-контрактов Gear использует модель Actor Model под капотом и обеспечивает следующие функциональные возможности:
Каждая программа имеет фиксированный объем памяти, который Gear позволяет контролировать. Программа может читать и писать только в своей собственной памяти и не может получить доступ к пространству памяти других программ. Каждая программа имеет свое независимое пространство в памяти, а информация на узлах Gear может обрабатываться параллельно.
CosmWasm - это современная и мощная платформа смарт-контрактов на основе Wasm, которая легко интегрируется с Cosmos-SDK. Это демонстрирует одно из главных преимуществ CosmWasm: контракты, написанные с помощью CosmWasm, тесно интегрированы с IBC (межблокчейн-коммуникациями), что позволяет разработчикам и пользователям войти в многоцепочечное будущее. В настоящее время поддерживается только Rust.
Преимущества CosmWasm
Проблемы и ограничения
Помимо виртуальной машины wasm, существует также недавно появившаяся технология под названием ZKWASM. Изобретатель, компания Delphinus Labs, разместила код ZK-WASM в открытом доступе на GitHub. ZKWASM позволяет разработчикам проверять правильность выполненных вычислений, не выполняя их повторно. Используя ZKWASM, разработчики могут гибко создавать приложения с доказательством нулевого знания (ZKP), используя различные языки программирования. Эти приложения могут легко выполняться в веб-браузерах.
ZKWASM происходит от ZKSNARK, который представляет собой комбинацию SNARG и доказательств с нулевым знанием. Давайте объясним это дальше. Как правило, чтобы использовать ZKSNARK, Вам нужно написать программу на языке арифметических схем или на языке, дружественном к схемам, таком как Pinocchio, TinyRAM, Buffet/Pequin, Geppetto, xJsnark framework, ZoKrates и т.д. Это создает барьер для существующих программ, затрудняя им использование возможностей ЗКСНАРК. Однако есть и другой способ, который заключается в том, чтобы использовать ЗКСНАРК не на уровне исходного кода, а на уровне байткода виртуальной машины, а затем реализовать виртуальную машину, поддерживающую ЗКСНАРК. Компания Delphinus Labs применила последний подход, включив всю виртуальную машину WASM в схему ZKSNARK. В результате существующие приложения WASM могут работать непосредственно на ZKWASM без каких-либо модификаций. Поэтому поставщики облачных услуг могут доказать любому пользователю, что результаты вычислений вычислены честно и не разглашают никакой частной информации.
ZKWASM предоставляет различные варианты использования, например, возможность проверки операций, выполняемых в браузере, на цепочке. Она позволяет осуществлять взаимодействие через Интернет, которое может быть проверено на блокчейне. Другие варианты использования включают оракловые сервисы, вычисления вне цепи, автоматизацию, преодоление разрыва между Web2 и Web3, генерацию доказательств для машинного обучения и обработки данных, и даже игровые и социальные приложения. С ростом числа пользователей zkWASM расширяет возможности Web3 и интегрирует разработчиков Web2 в этот трансформирующийся ландшафт.
Благодаря реализации ZKWASM в Delphinus Lab разработчики могут использовать мощь доказательств нулевого знания для повышения безопасности и конфиденциальности своих приложений, прокладывая путь к созданию более надежной и децентрализованной цифровой экосистемы.
Производительность Web и будущее слоя исполнения платформы смарт-контрактов многообещающи. 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 и blockchain:
Таким образом, сочетание Wasm и блокчейна обеспечивает более эффективные, безопасные и гибкие приложения и сервисы на основе блокчейна. Портативность и высокая производительность Wasm делают его важной технологией в области блокчейна.
WebAssembly - это эффективный и легкий стандарт набора инструкций, разработанный World Wide Web Consortium (W3C). Его называют революционером в области веб-технологий и высокопроизводительных вычислений, поддерживающим кросс-браузерное исполнение. Это означает, что мы можем компилировать различные языки программирования, включая C/C++, Go, Rust и другие, в единый стандартный двоичный формат и использовать его в качестве замены JavaScript, запуская в веб-браузерах код с эффективностью, близкой к нативной.
WebAssembly, также известная как WASM, - это безопасная для памяти и независимая от платформы технология, которая может эффективно работать с различными архитектурами процессоров. Он предлагает несколько ключевых преимуществ:
Кроме того, Web - это единственная настоящая универсальная платформа, которая позволяет получить доступ к Вашим приложениям на любом устройстве. Это также позволит Вам поддерживать единую кодовую базу, упростит обновления и обеспечит доступ всех пользователей к Вашим приложениям. WASM поддерживает 64-битные и 32-битные целочисленные операции, которые напрямую соответствуют инструкциям процессора. Устранив операции с плавающей точкой, можно легко добиться детерминированного поведения, что необходимо для алгоритмов консенсуса. Поддерживаемый проектом инфраструктуры компилятора LLVM, WASM может воспользоваться преимуществами более чем десятилетней оптимизации компилятора в LLVM. WASM постоянно разрабатывается такими крупными компаниями, как Google, Apple, Microsoft, Mozilla и Facebook, и поддерживается бэкендами браузеров, разработанных этими компаниями.
Красота WASM заключается в его способности работать в любом месте без необходимости загрузки или установки, поскольку он представлен в бинарном формате. Всего одним щелчком мыши веб-приложения могут быть выполнены немедленно, когда это необходимо. Это даже более безопасно, чем прямая загрузка и запуск бинарных файлов, поскольку браузеры имеют встроенные механизмы безопасности, не позволяющие исполняемому коду нанести вред Вашей системе. Кроме того, обмен веб-приложениями очень прост - ссылки можно размещать в любом месте в виде кликабельных строк.
Веб превратился из платформы для статичного контента и небольших скриптовых языков в мощную и популярную платформу, наполненную удивительными приложениями и возможностями, благодаря встроенной функциональности браузеров и интерактивности, которую обеспечивает Веб. Однако веб-приложения по-прежнему в основном управляются одним и тем же языком сценариев (JavaScript), который изначально не был предназначен для выполнения этих задач.
Изначально JavaScript был простым языком сценариев, призванным придать интерактивность легким гипертекстовым документам в веб-приложениях. Его дизайн был прост в изучении и написании, и он не ставил во главу угла скорость выполнения. За прошедшие годы значительное повышение производительности при разборе JavaScript браузерами привело к заметному увеличению производительности.
Благодаря ускоренной скорости выполнения JavaScript, спектр вещей, которые можно делать в браузерах, значительно расширился. В новых API появились такие функции, как интерактивная графика, потоковое видео, автономный просмотр и многое другое. Более того, все большее количество приложений, которые раньше были ограничены настольными средами, переходят в Web. Теперь Вы можете легко редактировать документы и отправлять электронные письма в браузере. Однако в некоторых областях производительность JavaScript остается проблемой. Подумайте о программных приложениях, которые Вы используете помимо браузеров: игры, редактирование видео, 3D-рендеринг или производство музыки. Эти приложения требуют обширных вычислений и высокой производительности. JavaScript с трудом справляется с этими высокопроизводительными требованиями.
Однако заменить JavaScript не представляется возможным, и для достижения этой цели могут потребоваться даже десятилетия, так как на нем держится весь Интернет. Более того, существует большое сообщество, постоянно совершенствующее JavaScript. Действительно, по сравнению с другими языками, JavaScript имеет некоторые недостатки в таких аспектах, как null и ==. Однако эти проблемы не настолько серьезны, чтобы требовать замены всей техники.
Итак, WebAssembly не заменит JavaScript, но это не значит, что WASM не будет использоваться в будущем. На самом деле, использование WASM будет становиться все более и более распространенным. Это связано с тем, что WASM может привнести в веб мощные вычислительные возможности, такие как обработка изображений или игры. С помощью WASM Вы можете создать веб-версию Photoshop, которая будет хорошо работать, или 3D-игру, которая будет работать в браузере со скоростью 60 кадров в секунду или даже с более высокой частотой кадров. Игры, в частности, представляют собой сложную задачу, поскольку они требуют одновременного выполнения обработки аудио и видео, а также координации физических эффектов и искусственного интеллекта. WASM способен эффективно запускать игры в браузере, что открывает возможности для переноса в браузер многих других приложений.
На рисунке выше показано сравнение рабочего процесса между JavaScript и WebAssembly (wasm). Можно заметить, что wasm гораздо лаконичнее, чем JavaScript.
WASM VM
В 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 parachain, служащий инструментом для размещения смарт-контрактов. Подобно Polkadot, Gear также использует фреймворк Substrate, который упрощает процесс создания различных блокчейнов для конкретных приложений. Substrate обеспечивает функциональность "из коробки", позволяя людям сосредоточиться на создании собственных движков поверх протокола.
Раньше стоимость запуска блокчейна была высокой, но Gear позволяет разработчикам dApp сосредоточиться на своих проектах вместо того, чтобы создавать и эксплуатировать весь блокчейн с нуля.
Основным двигателем протокола Gear является модуль смарт-контрактов. В случае с Gear любой смарт-контракт - это программа на WebAssembly, скомпилированная на разных языках, таких как Rust, C и C++. Для разработчиков, не принадлежащих к миру криптовалют, барьер для входа в систему невысок, поскольку они могут создавать смарт-контракты в привычной среде. Разработчикам проще экспериментировать с языками программирования смарт-контрактов.
Архитектура смарт-контрактов Gear использует модель Actor Model под капотом и обеспечивает следующие функциональные возможности:
Каждая программа имеет фиксированный объем памяти, который Gear позволяет контролировать. Программа может читать и писать только в своей собственной памяти и не может получить доступ к пространству памяти других программ. Каждая программа имеет свое независимое пространство в памяти, а информация на узлах Gear может обрабатываться параллельно.
CosmWasm - это современная и мощная платформа смарт-контрактов на основе Wasm, которая легко интегрируется с Cosmos-SDK. Это демонстрирует одно из главных преимуществ CosmWasm: контракты, написанные с помощью CosmWasm, тесно интегрированы с IBC (межблокчейн-коммуникациями), что позволяет разработчикам и пользователям войти в многоцепочечное будущее. В настоящее время поддерживается только Rust.
Преимущества CosmWasm
Проблемы и ограничения
Помимо виртуальной машины wasm, существует также недавно появившаяся технология под названием ZKWASM. Изобретатель, компания Delphinus Labs, разместила код ZK-WASM в открытом доступе на GitHub. ZKWASM позволяет разработчикам проверять правильность выполненных вычислений, не выполняя их повторно. Используя ZKWASM, разработчики могут гибко создавать приложения с доказательством нулевого знания (ZKP), используя различные языки программирования. Эти приложения могут легко выполняться в веб-браузерах.
ZKWASM происходит от ZKSNARK, который представляет собой комбинацию SNARG и доказательств с нулевым знанием. Давайте объясним это дальше. Как правило, чтобы использовать ZKSNARK, Вам нужно написать программу на языке арифметических схем или на языке, дружественном к схемам, таком как Pinocchio, TinyRAM, Buffet/Pequin, Geppetto, xJsnark framework, ZoKrates и т.д. Это создает барьер для существующих программ, затрудняя им использование возможностей ЗКСНАРК. Однако есть и другой способ, который заключается в том, чтобы использовать ЗКСНАРК не на уровне исходного кода, а на уровне байткода виртуальной машины, а затем реализовать виртуальную машину, поддерживающую ЗКСНАРК. Компания Delphinus Labs применила последний подход, включив всю виртуальную машину WASM в схему ZKSNARK. В результате существующие приложения WASM могут работать непосредственно на ZKWASM без каких-либо модификаций. Поэтому поставщики облачных услуг могут доказать любому пользователю, что результаты вычислений вычислены честно и не разглашают никакой частной информации.
ZKWASM предоставляет различные варианты использования, например, возможность проверки операций, выполняемых в браузере, на цепочке. Она позволяет осуществлять взаимодействие через Интернет, которое может быть проверено на блокчейне. Другие варианты использования включают оракловые сервисы, вычисления вне цепи, автоматизацию, преодоление разрыва между Web2 и Web3, генерацию доказательств для машинного обучения и обработки данных, и даже игровые и социальные приложения. С ростом числа пользователей zkWASM расширяет возможности Web3 и интегрирует разработчиков Web2 в этот трансформирующийся ландшафт.
Благодаря реализации ZKWASM в Delphinus Lab разработчики могут использовать мощь доказательств нулевого знания для повышения безопасности и конфиденциальности своих приложений, прокладывая путь к созданию более надежной и децентрализованной цифровой экосистемы.
Производительность Web и будущее слоя исполнения платформы смарт-контрактов многообещающи. 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 не предназначены для инвестиционных консультаций. Инвестиции связаны с риском, поэтому, пожалуйста, оцените свою собственную толерантность к риску и принимайте инвестиционные решения с осторожностью.