Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
thepower.blog
5 лет назад

Смарт-контракты The Power: Rust + Wasm

Наше виденье смарт-контрактов

Цель данного поста - не описывать историю возникновения или природу смарт-контрактов, а описать наше виденье и собственно наш тип смарт-контракта.
Для удобства нам хотелось бы определиться с тем, что такое смарт-контракт.

Можно разбить существующие смарт-контракты на две группы. Смарт-контракт первой группы - это скрипт, который может выполнять определенный тип взаимодействий. Смарт-контракт второй группы - полноценная программа, на которой можно сделать практически любые взаимодействия, которые изначально могли быть и не заложены в логику.

Также, все смарт-контракты могут быть разделены на 2 группы по типу сохранения в блокчейне: смарт-контракты, которые внесены в код блокчейна (например, Graphene), и вторая модель, универсальная на наш взгляд, когда смарт-контракт сохраняется в самом блокчейне, а запускается для безопасности внутри виртуальной машины.

В The Power мы решили не ограничиваться только скриптами, т.е. наши смарт-контракты мы можем отнести ко второй группе. С точки хранения мы используем модель сохранения смарт-контрактов в блокчейне, с запуском в виртуальной машине.

Виртуальная машина

Известный пример виртуальной машины в блокчейн-сообщетсве - EVM (Ethereum Virtual Machine). Конечно, мы могли бы выбрать простой путь - использовать EVM и смарт-контракты на Solidity. Однако, этим путем мы не пошли, и здесь есть несколько причин, почему.

Изучив EVM мы пришли к выводу, что лучше написать свою виртуальную машину - Power_VM. Код EVM сильно связан с блокчейном Ehtreum, что наносит большие ограничения на ее внедрение в наш блокчейн. Кроме того, мы посчитали, что существует более перспективная технология, чем EVM - Wasm. Как показало время, наше мнение поддержали многие известные блокчейн проекты.

Что такое Wasm

Процитируем Википедию:

“WebAssembly (сокращенно wasm) — это бинарный формат инструкций для стековой виртуальной машины. WebAssembly спроектирован как портативная цель компиляции для высокоуровневых языков, таких как C/C++/Rust, которую можно развертывать в web для клиентских и серверных приложений.”

Несмотря на то, что Wasm разрабатывают в первую очередь для применения в Web, в “дорожной карте” упоминается и о применении в IoT, и для создания многопоточных тяжелых приложений. Wasm является результатом многолетних совместных работ группы W3C, которая объединяет компании Microsoft, Google, Apple и Mozilla.

Немаловажно то, что Wasm совместим с семейством компиляторов LLVM (Low Level Virtual Machine). Если на устройстве есть вариант такого компилятора, на этом устройстве принципиально можно запустить Wasm. Например, на смартфоне.

Интересные статьи про Wasm здесь и здесь (англ). Кстати, команда Ethereum анонсировала о своем намерении перейти на Wasm (Источник), а проект EOS использует Wasm в связке с C++.

RUST

Из языков, совместимых с Wasm, мы выбрали Rust по ряду причин. Это и встроенные тесты, и простой рефакторинг, и универсальность языка, и что самое важное, Rust содержит ряд ограничений для разработчика, чтобы предотвращать ошибки при написании программ. Проще говоря, на расте гораздо сложнее написать программу с ошибками. Сейчас мы видим все возрастающий интерес к Rust, например, Parity перешло на Rust и Wasm.

На данный момент, написана альфа версия Power_VM, оболочка, которая связывает программы на Wasm с блокчейном The Power.

Теперь наши смарт-контракты можно компилировать в Wasm код, вносить в блокчейн и запускать внутри тестнета The Power. Нами уже опробованы смарт-контракты аналоги стандара ERC-20.

В дальнейшем, мы планируем создать маркетплейс шаблонов смарт-контрактов, чтобы обычные пользователи, могли использовать смарт-контракты под различные нужды.

Сейчас мы разрабатываем новый тип смарт-контрактов, мы называем его DApp 2.0, т.к. он является полноценным fullstack децентрализованным приложением. Но о нем мы напишем позже.

Мы будем рады ответить на любый ваши вопросы о наших смарт-контрактах, а также обсудить вопросы внедрения их в ваш бизнес, производство, в различные процессы компании.

55
0.426 GOLOS
На Golos с December 2018
Комментарии (8)
Сортировать по:
Сначала старые