Модули исполнения субстрата и смарт-контракты субстрата - это два разных подхода к созданию «децентрализованных приложений» с использованием каркаса субстрата.
Интеллектуальные контракты
Традиционная платформа интеллектуального контракта позволяет пользователямопубликовать дополнительную логику поверх некоторой базовой логики блокчейна.Поскольку логика смарт-контрактов может публиковаться любым, включая злоумышленников и неопытных разработчиков, на платформе смарт-контрактов построен ряд преднамеренных безопасных средств защиты.Вот некоторые примеры:
- Сборы: обеспечение того, что разработчики контракта взимают плату за вычисления и хранилище, которые они навязывают на компьютерах, на которых работает их контракт, и не допускаются злоупотребления создателями блока.
- Песочница: Контракт не может напрямую изменять хранилище основной цепочки блоков или хранилище других контрактов.Его мощность ограничена только изменением его собственного состояния и возможностью совершать внешние вызовы для других контрактов или функций времени выполнения.
- State Rent: контракт занимает место на блокчейне, и, таким образом, его нужно просто оплатитьсуществующий.Это гарантирует, что люди не смогут воспользоваться «бесплатным неограниченным хранилищем».
- Возврат: контракт может быть подвержен ситуациям, которые приводят к логическим ошибкам.Ожидания разработчика контракта невелики, поэтому добавляются дополнительные накладные расходы для поддержки возврата транзакций в случае их сбоя, поэтому состояние не обновляется, когда что-то идет не так.
Эти различные издержки делают выполнение контрактов медленнее и более дорогостоящим.но, опять же, «целевая аудитория» для разработки контрактов отличается от разработчиков среды выполнения.
Контракты могут позволить вашему сообществу расширяться и развиваться на основе вашей логики времени выполнения без необходимости проходить через все сумасшедшие предложения,обновления во время выполнения и т. д. Он может даже использоваться в качестве полигона для тестирования будущих изменений во время выполнения, но сделан таким образом, чтобы изолировать вашу сеть от любых проблем роста или ошибок, которые могут возникнуть.
В итоге , субстратные смарт-контракты:
- по своей природе более безопасны для сети.
- Встроены экономические стимулы против злоупотреблений.
- Есть вычислительные накладные расходыдля поддержки изящных сбоев в логике.
- есть нижебар для входа в разработку.
- Включите быстрое взаимодействие с сообществом через игровую площадку для написания новой логики.
Модули времени выполнения
Модули времени выполнения на другомстороны не предоставляют ни одну из этих мер защиты или защиты, которые вам предоставляет Smart Contracts.Как разработчик во время выполнения, полоса ввода кода, который вы создаете, поднимается вверх.
Вы полностью контролируете базовую логику, которую будет выполнять каждый узел в вашей сети.У вас есть полный доступ ко всем элементам хранилища во всех ваших модулях, которые вы можете изменять и контролировать.Вы можете даже связать свою цепочку с неправильной логикой или плохой обработкой ошибок.
Разработка модуля времени выполнения субстрата предназначена для создания экономичных, высокопроизводительных и быстрых узлов.Он не предоставляет никакой защиты или накладных расходов при возврате транзакции, и не подразумевает, что система вычислений, которую выполняют узлы в вашей цепочке, не вводит никакой платы.Это означает, что во время разработки функций времени выполнения вы можете вы правильно оценить и применить сборы к различным частям вашей логики времени выполнения, чтобы она не использовалась плохими участниками и не повредила вашей сети.
В итоге , Модули времени выполнения субстрата:
- Обеспечение низкоуровневого доступа ко всей цепочке блоков.
- Устранены издержки встроенныхбезопасность для производительности.
- Для разработчиков есть высокая планка входа.
- Не обязательно писать рабочий код, но во избежание написания неработающего кода.
- Не имеет внутренних экономических стимулов для отражения плохих актеров.
Правильный инструмент для вас
Модули субстрата времени исполнения и смарт-контракты субстрата - это инструменты, доступные вам для решения проблем.
Вероятно, есть некоторые совпадения в типах задач, которые может решить каждая, но есть также четкий набор проблем, подходящих только для одной из двух. Два дают только один пример в каждой категории:
- Runtime Module: создание слоя конфиденциальности поверх транзакций в вашей цепочке блоков.
- Shared: создание DApp, подобного Cryptokitties, которое может потребовать создания сообщества пользователей (склонность к Smart Contract) или масштабирования до миллионов транзакций в день (склонение к Runtime Module).
- Смарт-контракт: введение токенов 2-го уровня и пользовательских ресурсов в вашу сеть.
В дополнение ко всему написанному выше, вам также необходимо учитывать затраты на настройку DApp с использованием определенного инструмента. Развертывание контракта - это относительно простой и легкий процесс, поскольку вы используете преимущества существующей сети. Единственными расходами для вас являются те сборы, которые вы платите за развертывание и поддержку вашего контракта.
С другой стороны, создание собственной цепочки блоков стоит затрат на создание сообщества, которое будет ценить ваши услуги или создание частной сети с накладными расходами на систему облачных вычислений и общее обслуживание сети.
Я думаю, что это действительно первый раз, когда стало так легко и доступно построить логику времени выполнения. В прошлом каждый создавал свою «идею децентрализованного приложения», используя доступный им инструмент, Smart Contracts, даже когда это был не лучший инструмент для работы.
С введением Substrate появился новый инструмент для построения ваших децентрализованных приложений; но опять же, было бы неправильно думать, что все ваши идеи должны быть модулем времени выполнения субстрата.
Вместо этого, впервые, как сообщество, у нас есть два инструмента, и нам нужно вместе выяснить, какой из них лучше всего использовать для каждого сценария. Я не думаю, что все ответы на это существуют сегодня, но мы можем учиться и делать некоторые образованные предположения на этом пути.