Azure Ethereum: поддержка Web Assembly для написания Smart Contracts. Часть 3
Статья является продолжением серии о возможностях Azure для Ethereum. Если подвести итоги двух первый частей:
- в облаке Azure можно запустить блокчейн в один клик из подготовленного шаблона.
- кроме блокчейна в поставку можно включить обвязку в виде: REST API для интеграции, мониторинг, балансер нагрузки, шину передачи и синхронизации данных, интеграция с Active Directry, доступ к веб-интерфейсу, iOS- и Android-приложениям, синхронизация с внешним хранилищем (например, SQL) и еще много чего.
- Специально для частных и тестовых сетей было реализовано использование Proof of Authority, позволяющее избежать ненужного майнинга и упростить вопросы безопасности.
Так же в последнем релизе Azure была заявлена поддержка Web Assembly для написания Smart Contracts.
На это небольшое дополнение никто не обратил особого внимания — просто перевели абзац из англоязычных новостей.
Но на самой деле это принципиальный тренд для будущего Ethereum.
Многие “визионеры” помешались на хибстерах — островитянах, собравших 4 млрд. — команде EOS. Аналитики и эксперты присваивают EOS явное технологическое лидерство.
Что же выделяет EOS перед Ethereum? Если отойти от идеологии и консенсуса, то технически наиболее критичными являются два пункта:
- скорость и стоимость транзакций (включая смарт контракты и операции с токенами)
- поддержка более системных языков, в первую очередь С\С++ для написание Smart Contracts
По первому пункту нужно признать, что масштабирование — это самое слабое месте Ethereum и над этим интенсивно работают, но результаты будут не скоро — это действительно не радует…
написание смарт контракта
Посмотрим вторую части пазла — разработка смарт контракта. Ведь смарт контракт — это визитная карточка Эфириум, которая отличает его от того же Биткоин и сделала его основным блокчейном для приложений.
Напоминаем, что умный контракт Эфириума состоит из двух частей:
byte code и интерфейса ABI (Application Binary Interface).
Byte code — это скомпилированный код, которым может быть выполнен на ноде блокчейн, если он не противоречит интерфейсу.
Проблема заключалась в том, что byte code нужно было обязательно писать на Solidity. На первый взгляд, простой и понятный язык программирования, до тех пор пока не нужно реализовать более сложную логику. Кстати, можете сами создать простой контракт на базе статьи:
Создаем работающую КриптоЦерковь с нуля за 15 минут. Пошаговая инструкция
Но для создания более сложных приложений возникает потребность использовать более системные языки программирования.
Для этого компания Parity в составе Energy Web Foundation проводит экспериментальную разработку по интеграции web-assembly с EVM (Ethereum Virtual Mashine).
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.
По сути код пишется на С++, а потом компилируется на Web-assembly, переносится на веб-сервер и запускается уже в броузере.
Конечно, это еще довольно сырая технология (экспериментальная, как пишут на сайте Парити), но возможность использовать C, C++ является одним из ключевых преимуществ заявленных в частности в EOS, гонка с которым критична для Эфириума.
Справедливости ради в EOS мультиязычность обеспечивается тоже за счет Wasm.
Отличие том, что Ethereum это полностью рабочая сеть и сообщество не спешит переводить на сырую технологию, хотя работы ведутся.
Для команды EOS — это критичная инновация, которая важнее потенциальных рисков безопасности и стабильности (субъективное мнение автора).
Как результат, качество контрактов на C++ еще не достаточно высокое, грабли не найдены и в ближайшее время я ожидаю довольно много хакеров заработают на новую ламбаржини, поправляя кривые контракты.
Например, только недавно исправили проблему в Hello World:
Или недавно была найдена критичная уязвимость, позволявшая
Выводы
- Решение от Azure для приватного Ethereum — это конкурентный продукт, позволяющий максимально быстро запускать приложения с блокчейн интеграцией. Использование Proof of Athority идеально подходит для приватных или тестовых сетей.
- использование web-assembly позволит запускать программный код контрактов, написанный на C\C++ и Rust, что потенциально поможет конкурировать с EOS.
- Смарт контракты на С++ принесут существенный прирост производительности и оптимизируют логику (например напишут нормальный random), но будут иметь место серьезные риски безопасности.
Понравилось? Спасибо! Жми Лайк или share — это позволит большему количеству людей прочитать статью!
Адептам EOS, просьба держать себя в руках и сохранять правила дискуссии. Писать в формате: я не согласен с тем то, так как …
Что еще посмотреть от автора :
Рынок лимонов на ICO или как мошенники могут погубить индустрию. Ч1.
Создаем работающую КриптоЦерковь с нуля за 15 минут. Пошаговая инструкция