Автоматизация работы смарт-контракта

Оракулы Смарт-контракты Техническая статья Эксперт
4/2/2022
206
Avatar
Автор
Oracle Labs

Полезность смарт-контрактов продолжает расти с течением времени. Первоначальная волна смарт-контрактов использовалась для выпуска и назначения прав на токены на основе блокчейна. Позже разработчики начали использовать сети оракулов для создания гибридных смарт-контрактов, которые используют внешние данные и вычисления вне блокчейна (off-chain) в приложениях внутри блокчейна (on-chain) для обеспечения новых рынков, таких как DeFi, динамические NFTи GameFi. Теперь на первый план выходит дополнительная часть инфраструктуры, известная как «хранители», приносящая с собой новые возможности автоматизации смарт-контрактов.

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

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

Что такое автоматизация смарт-контрактов?

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

Проблема: смарт-контракты не могут выполняться автоматически

Смарт-контракты — это детерминированные программы, которые работают на блокчейнах. Они содержат код, который гласит: «Если произойдет событие x, то запускается действие y». Тем не менее, смарт-контракты не являются самоисполняющимися, что означает, что их код не будет запускаться и вносить изменения в состояние блокчейна, пока код не будет вызван транзакцией в блокчейне. Внешняя транзакция дает толчок, чтобы разбудить смарт-контракт и инициировать его логику, подобно тому, как щелчок мышью может запустить компьютерную программу.

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

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

Решение: Хранители как служба автоматизации транзакций

Хранители — это аккаунты во внешней собственности, которые мотивируются к запуску смарт-контрактов на основе заранее определенных условий. Условия определяются в заданиях (jobs) и представляются командой разработчиков, DAO или пользователями протокола в сеть хранителей вместе с вознаграждениями, зависящими от производительности хранителя. Условия автоматизации смарт-контрактов, как правило, основаны на времени (например, запуск функции х каждый день в 17:00 по Гринвичу) или событиях (например, запуск функции y только тогда, когда цена актива пересекает определенный порог).

Хранители фактически служат автоматизирующими ботами смарт-контрактов, которые проверяют условия и совершают транзакции после того, как эти предопределенные условия были выполнены. Этот процесс часто включает в себя хранителя, использующего вычисления вне блокчейна (off-chain) для выполнения той же функции смарт-контракта, которую контракт может в конечном итоге вызвать в блокчейне (on-chain). Как только функция возвращает значение “True”, хранитель вызывает эту функцию в блокчейне посредством транзакции (в том же блокчейне). Когда функция вызывается, условия могут быть проверены смарт-контрактом протокола в блокчейне, прежде чем в нем произойдет изменение состояния, помогая убедиться, что хранитель прав. Конечным результатом являются смарт-контракты, которые работают только на блокчейнах, когда это необходимо и в соответствии с четко определенными условиями.


Хотя цель хранителей относительно проста, важно взглянуть на некоторые критические технические факторы, связанные с реализацией хранителей, чтобы понять преимущества таких проектов, как Chainlink Keepers.

Соображения безопасности и стоимости при автоматизации выполнения смарт-контрактов

Ниже приведены некоторые из ключевых рисков безопасности и факторов стоимости, которые следует учитывать при попытке автоматизировать выполнение смарт-контрактов в вашем децентрализованном приложении (dApp).

Технологические процессы (DevOps) вручную и централизованные серверы

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

Ручные технологические процессы (DevOps) также истощают скромные время и ресурсы проектов, которые в противном случае могли бы пойти на разработку основных продуктов и расширение экосистемы. Ручные техпроцессы также, вероятно, станут более обременительными с течением времени, поскольку проекты стремятся упростить пользовательский опыт и добавить расширенный функционал в свои децентрализованные приложения с помощью автоматизации смарт-контрактов. В конце концов, смарт-контракты должны быть децентрализованы от начала до конца, включая инфраструктуру хранителей вне блокчейна (off-chain keepers), ответственную за запуск их выполнения.

Дорогостоящие и непредсказуемые вознаграждения

Другой способ проектирования хранителей — это предлагать финансовое вознаграждение первому хранителю, который вызовет функцию в блокчейне при выполнении определенных условий. Хотя этот метод улучшает модель централизованного хранителя, он создает проблемы, связанные с экономической эффективностью, централизацией и непредсказуемостью.

Основная проблема с наградами заключается в том, что узлы-хранители в конечном итоге участвуют в прямой конкуренции за вознаграждение по правилам «победитель получает все», что приводит к “перегреванию” ставок по типу приоритетных аукционов газа (PGA). Конкурирующие хранители будут продолжать повышать цену на газ, которую они готовы платить, чтобы сподвигнуть майнеров сначала обрабатывать транзакции этих хранителей. Поскольку функция смарт-контракта может быть вызвана только один раз после выполнения ее условий, только первый хранитель преуспевает и получает оплату за свою работу. Все другие хранители неуспешны и несут убытки, когда их транзакция не проходит, поскольку компенсация за потребление газа не выдается. Поскольку большинство затрат на работу хранителя включают базовую стоимость плюс плату за газ, PGA приводят к увеличению затрат для конечных пользователей, которые должны покрывать более высокие сборы за газ.

Реализации хранителей, разработанные с использованием общественных вознаграждений, также подпитывают несколько других непреднамеренных последствий. Во-первых, PGA могут увеличить перегрузку сети на блокчейнах, что приведет к еще более высоким ценам на газ для хранителей и всех остальных в сети. Кроме того, конкуренция может привести к тому, что число хранителей со временем естественным образом сократится до нескольких избранных хорошо обеспеченных субъектов, которые предлагают агрессивные цены на газ. Централизованные сети хранителей снижают надежность за счет сокращения числа хранителей, осуществляющих мониторинг и отправку транзакций.

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

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

Chainlink Keepers децентрализованная, недорогая и надежная автоматизация смарт-контрактов

Вместо того, чтобы полагаться на системы централизованных хранителей или рисковать из-за конкурентных публичных наград, проекты могут передать свою автоматизацию смарт-контрактов Chainlink Keepers — децентрализованной службе автоматизации транзакций с проверенными на практике гипернадежностью и выстроенными стимулами. Chainlink Keepers уже работают на Ethereum, Polygon и Binance Smart Chain, с поддержкой многих других цепочек, которые будут добавлены в будущем.

Некоторые из преимуществ Chainlink Keepers включают в себя:

  • Привлекательные задания — Chainlink Keepers предлагают простую структуру, в которой пользователи могут четко описать задания и вознаграждения, которые будет выполнять децентрализованная сеть узлов Chainlink, устраняя конкуренцию и создавая предсказуемые финансовые стимулы.
  • Высокое время безотказной работы — Chainlink Keepers управляются теми же профессиональными командами DevOps и предприятиями, которые имеют проверенную историю надежности во время экстремальных перегрузок сетей и волатильности рынка. Узлы Chainlink Keeper уже помогают обеспечить стоимость смарт-контрактов на сумму более 80 миллиардов долларов США в других сервисах Chainlink (например, Price Feeds).
  • Низкая стоимость — Chainlink Keepers имеют несколько функций оптимизации газа, которые снижают затраты на автоматизацию dApp, включая процесс выбора меняющегося узла для предотвращения PGA и стабилизации затрат для пользователей.
  • Децентрализованное исполнение — Chainlink использует децентрализованный и прозрачный пул Хранителей для надежных гарантий безопасного и своевременного выполнения смарт-контрактов, экономя время команд и минимизируя ручное вмешательство или централизованные серверные риски.
  • Повышенный функционал — Chainlink Keepers могут выполнять расширенные вычисления вне блокчейна и генерировать данные вызовов (calldata), которые можно проверить смарт-контрактами, что позволяет разработчикам создавать расширенные функциональные возможности, которые были невозможны ранее и без каких-либо дополнительных предположений о доверии.
  • Безболезненная интеграция — Chainlink Keepers могут быть интегрированы за считанные часы для автоматизации смарт-контрактов, а разработчикам предоставляется простая документация и пошаговые руководства по настройке.

Присоединяйтесь к русскоязычному сообществу Chainlink в Телеграм.

https://medium.com/chainlink-community/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D1%81%D0%BC%D0%B0%D1%80%D1%82-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BE%D0%B2-%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0%D1%87%D0%B0%D1 | Автоматизация смарт-контрактов: как начать работу с Chainlink Keepers


Время чтения: 15 минут
Поделитесь в соц. сетях:
Наверх