# Обзор смарт-контрактов Waves
Смарт-контракт — это протокол взаимодействия участников, обеспечивающий выполнение условий сделки без необходимости привлечения надежных посредников. С технической точки зрения, смарт-контракт — это скрипт, выполняемый на блокчейне, то есть децентрализованно — не на одном сервере, а на множестве нод сети. Скрипт содержит набор инструкций, таких как различные проверки, чтение и запись данных, операции с цифровыми активами.
Cмарт-контракты позволяют реализовать широкий спектр приложений — финансовые (DeFi), игровые и многие другие. Благодаря размещению на блокчейне смарт-контракты прозрачны — каждый может посмотреть код и понять, как он работает.
# Cмарт-контракты Waves
Смарт-контракты Waves — это аккаунты и ассеты, к которым прикреплены скрипты на языке Ride. Ride — специализированный язык для разработки децентрализованных приложений, легкий в освоении и помогающий разработчикам писать код без ошибок.
На блокчейне Waves представлены три типа смарт-контрактов:
- dApp позволяют выполнять практически все операции, возможные на блокчейне Waves. Вызываемые функции могут переводить, выпускать и сжигать токены, изменять данные в хранилище данных dApp и многое другое. Скрипт dApp можно вызвать, отправив транзакцию вызова скрипта, а также dApp могут вызывать друг друга. К вызову могут быть приложены платежи в пользу dApp. dApp также предоставляет функциональность, аналогичную смарт-аккаунту. Подробнее о dApp
- Смарт-аккаунты проверяют транзакции и ордера, отправляемые от имени аккаунта, на соответствие условиям, указанным в скрипте. Если условия не выполнены, транзакция будет отклонена. Примером смарт-аккаунта является мультиподпись, позволяющая нескольким пользователям совместно управлять активами: транзакция с такого аккаунта разрешена, если содержит валидные подписи совладельцев. Подробнее о смарт-аккаунтах
- Смарт-ассеты позволяют ограничить транзакции с участием ассета — например, разрешить обмен только по определенной цене, отправку только получателям из доверенного списка или любые операции только в заданном интервале высоты блокчейна. Подробнее о смарт-ассетах
Смарт-контракты могут использовать данные блокчейна: текущую высоту, балансы аккаунтов, параметры ассетов, записи в хранилищах данных любого аккаунта. Поскольку блокчейн — это распределенный реестр, который хранится на множестве серверов по всему миру, смарт-контракты не могут обратиться к файловой системе. Чтобы доставить на блокчейн данные из внешнего мира, используются оракулы.
# Отличия от смарт-контрактов других блокчейнов
Отсутствие «газа»
Выполнение скриптов на блокчейне Waves не требует «газа» — переменной платы в зависимости от объема вычислений. Это существенно повышает надежность приложений. Язык смарт-контрактов Ride является неполным по Тьюрингу: в нем отсутствуют циклы. Благодаря этому можно заранее — до начала вычислений и даже до установки скрипта — рассчитать вычислительные затраты. Сложность скриптов, участвующих в одной транзакции, ограничена, что позволяет установить низкие и предсказуемые комиссии за выполнение скрипта при сохранении высокой пропускной способности блокчейна.
Например, минимальная комиссия за транзакцию вызова функции dApp составляет 0,005 WAVES (всего несколько центов). Дополнительная комиссия требуется только в случае, если вызываемая функция выпускает новый ассет (не являющийся NFT): 1 WAVES за каждый ассет, а также в случае, если сама транзакция отправлена от имени смарт-аккаунта или dApp со сложностью выше пороговой: 0,004 WAVES.
Состояние смарт-контракта
Cмарт-контракты Waves не имеют внутреннего состояния. Вместо него используется хранилище данных в формате ключ-значение. Каждый аккаунт Waves может добавлять, изменять и удалять записи в своем хранилище с помощью транзакций данных. Кроме того, вызываемые функции скрипта dApp могут изменять данные в его хранилище. Все смарт-контракты Waves могут читать данные из хранилища данных произвольного аккаунта.
# Примеры приложений на основе смарт-контрактов Waves
- Neutrino — алгоритмический DeFi-протокол, предоставляющий инфраструктуру индексного токена XTN, обеспеченного набором токенов экосистемы Waves и управляемого сообществом пользователей.
- Swop.fi — сервис для моментального обмена криптовалют на основе модели AMM (automated market maker) и получения пассивного дохода от вложений в криптовалюты. Совокупная стоимость ликвидности — более 100 млн $.
- Waves Ducks — игра, основанная на коллекционировании NFT c изображениями знаменитостей и мемов в виде уток, которая мотивирует сообщество продвигать экосистему Waves.
- SIGN Art — веб-галерея цифрового искусства, позволяющая сертифицировать, токенизировать и продавать произведения. В апреле 2021 года на платформе SIGN Art был продан невзаимозаменяемый токен (NFT) по самой высокой цене среди подобных сделок вне блокчейна Ethereum.
- Power DAO (decentralized autonomous organization) — первая модель управления, основанная на целях и предназначенная для максимизации возможностей самоуправления сообществ.