Смарт-контракты Waves

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

Преимущества смарт-контрактов Waves Platform

Смарт-контракты добавляют Waves экосистеме следующие преимущества, Рисунок 1:

  1. Смарт-контракты позволят создавать кошельки с мультиподписью, которые находятся под совместным контролем нескольких человек и решения по тому как распорядиться средствами не может приниматься только одним из участников. Для совершения транзакции все необходимые согласно контракту стороны должны предоставить свои приватные ключи одновременно. Это чрезвычайно важная функция с точки зрения безопасности, которая позволяет командам безопасно управлять своими финансами и не давать ни одному человеку полного единоличного контроля над средствами кошелька. Это будет особенно полезно для продажи токенов, поскольку средства могут безопасно храниться до в ожидании сделки.
  2. В отличие от других подобных блокчейнов, смарт-контракты Waves не используют gas для не Тьюринг-полных смарт-контрактов, что означает, что затраты всегда фиксированы и известны заранее. Это делает Waves значительно более простым, по сравнению с Ethereum, а также эффективным и экономичным, при обеспечении такой же по своей сути услуги. 3.Также будет добавлена возможность атомик-своп, что позволит замораживать токены - то есть пользователи смогут вводить параметры, которые не позволяют покупателям продавать или переносить токены со своего адреса в течение определенного времени. Это включает в себя отправку токена пользователю, но при этом он остается непередаваемым в течение определенного периода времени. Наиболее очевидное применение такой возможности - это механизм инвестирования после проведения ICO.
  3. Waves токены, такие же, как и сама криптовалюта Waves, что означает, что с ними можно обращаться таким же образом и они так же хранятся на вашем адресе — платформа поддерживает создание токенов как из ядра, так и из стандартного кошелька. Этот факт делает жизнь пользователя проще. Кроме того, токены, созданные пользователем, могут быть немедленно распределены и проданы на децентрализованной бирже Waves, DEX.
  4. Децентрализованные приложения (DApps), основанные на Тьюринг-полных смарт-контрактах, смогут завершить сложные процессы на блокчейне Waves, с точки зрения удовлетворения различным критериям.
  5. Управление балансом: пользователь может захотеть делать регулярные ежемесячные платежи, не заботясь о том, что его баланс опустится ниже желаемого. Также можно сохранить фиксированную сумму средств по одному адресу и переместить на отдельный счет.

Рисунок 1, Преимущества и реализация смарт-контрактов Waves Platform.

Стадии реализации Waves смарт-контрактов

Рисунок 2:

  1. Не Тьюринг-полные смарт-контракты, покрывающие бОльшую часть возможных пользовательских сценариев, включая смарт-аккаунты и смарт-токены.

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

Рисунок 2, Стадии реализации смарт-контрактов Waves.

Смарт-аккаунты

Идея смарт-аккаунта заключается в следующем:

Прежде чем транзакция будет проверена и включена в блокчейн, учетная запись проверяет, соответствует ли транзакция требованиям, определенным в скрипте. Сценарий привязан к учетной записи, поэтому учетная запись может провалидировать каждую транзакцию, перед подтверждением. Основным требованием для наших смарт-аккаунтов является возможность их запуска по цене обычных транзакций с предопределенной комиссия, без дополнительного «gas» или других неизвестных заранее затрат.

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

Смарт-ассеты

Если мы планируем ввести ограничения для всех операций над определенным ассетом, мы не сможем использовать смарт-аккаунты. В нашей парадигме у нас для этого имеются смарт-ассеты: скрипт будет привязан к ассету и будет работать аналогичным образом. Транзакции для таких ассетов действительны только в том случае, если скрипт возвращает True. Например, скрипт может проверять доказательства из транзакции, проверять, одобряет ли нотариус/escrow транзакцию, и что операции с ассетом не блокируются в течение определенного времени. Скрипт для токена вызывается при следующих операциях над ассетами:

  • Transfer Transaction
  • Mass Transfer Transaction
  • Reissue Transaction
  • Burn Transaction

Стоимость скриптов

Мы провели тесты произвоодительности по всем аспектам наших скриптов. Для этой цели, мы разработали подпроект бенчмарк с JMH, который считает сложность скриптов после фазы компиляции обходом AST (Абстрактного Синтаксического Дерева) в специальных единицах сложности. Единицы сложности - это единица измерения относительной сложности скрипта: мы нашли самую "дорогую" операцию с точки зрения вычислительной сложности, и определили её равной 100 единицам сложности. Наиболее дорогие функции это:

  • base58
  • sigVerify

В каждом тестировании, мы провели по 10 тестов и посчитали среднюю стоимость. Полные результаты тестов производительности, которые мы провели, находятся здесь. В результате, мы определили следующую устойчивую величину для стоимости скрипта: скрипт должен иметь размер не больше чем 8 kB и должен выполняться быстрее, чем 20 исполнений sigVerify (самой дорогой операции).

Фиксированная стоимость за каждый скрипт равна 400000 wavelets (Waves монеток, 100000000 wavelets = 1 Wave), т.е. если ты используешь смарт-ассет, то ты платишь 400000 wavelets, если ты также используешь смарт-аккаунт то ты платишь в общей сложности 2 * 400000 wavelets.

Примечание. более подробную техническую информацию о реализации смарт-контрактах можно найти здесь.

results matching ""

    No results matching ""