Ораклы - дверь в блокчейн и обратно
Pavel [НИКОГДА НЕ ПИШУ ПЕРВЫЙ]Статья написана для E-Collection, являющейся частью экосистемы E-Company.
Автор статьи: Пашкевич
Блокчейн, это изначально очень закрытая среда, которая работает только с данными внутри себя, а извне принимает разве что твоё бабло и то, данные о нём - тоже часть "цепочки" и существуют только в ней. Даже смарт-контракты, позволяющие, казалось бы, вытворять всё, что угодно в рамках кривизны рук программиста, ограничены опять же сетью, для которой пишутся. Проще говоря, ты никогда не напишешь самый честный в мире тотализатор на смартах, просто потому, что им не доступны данные о результатах матча... были бы, если бы не было Ораклов (в оригинале Oracle, я знаю, что многие называют их Оракулами, но я так делать не буду во избежание путаницы с другими определениями этого же слова и потому, что я так хочу). Я попытаюсь наглядно и простым языком, безо всяких прогерских сложностей объяснить что такое Ораклы, как они работают, зачем нужны (и даже не думай, что из моих намёков ты уже и так всё понял, умник) и почему любому, для кого крипта не просто казино или пузырь, нужно о них знать.
Внимание: эта статья не для полных нубов, если ты интересуешься криптовалютами, но из всего вышесказанного понял только предлоги, читать дальше строго не рекомендуется, а то будешь думать, что это всё сложнее чем есть.
Что это?
Ну короче да, сильно вкратце, Ораклы - это то, что позволяет блокчейну работать с внешними данными, будь то котировки на бирже, результаты матчей или вообще какой-нибудь код, необходимый для работы приложения. У кого возникли ассоциации с фильмом Матрица и тамошним Оракулом - вы правильно мыслите. Оракл - это что-то вроде промежуточной сети между блокчейном и остальным интернетом, их так и называют Decentralized Oracle Networks (часто можно встретить аббревиатуру DON). Именно через эту промежуточную сеть обрабатываются входные данные, что бы затем их смогли использовать смарт-контракты, а затем опять обрабатываются уже выходные данные, что бы отправиться куда-то за пределы блокчейна. Благодаря этой особенности появились так называемые гибридные смарт-контракты, названные так потому, что объединяют код, работающий внутри блокчейна с кодом, который не может и не должен там быть. Именно таким макаром сейчас и работают всякие DeFi-протоколы и dApps (децентрализованные приложения).
Как это?
В целом общий принцип уже был описан выше, но тут стоит пояснить, что на момент написания статьи блокчейн-Ораклы, это в основном онлайн-сервисы, вроде Chainlink - пока что лидера этой сферы, распиаренного настолько, что без гугла я кроме него никого и не вспомню. Работают они все относительно одинаково, у всех есть документация на сайте и скорее всего сурс на Гитхабе. Если не вдаваться в сложные подробности, которые всегда можно почитать опять же в документации, код Оракла просто встраивается прямо в смарт (только сначала Оракл надо импортировать), не важно на каком языка ты его пишешь, и выполняет соответствующую ему задачу: подключается через API к нужным сервисам, как правило сразу к нескольким для большей точности, сверяет данные и возвращает в смарт запрошенный результат. Все остальные подтверждения и сама транзакция происходят уже как обычно через смарт-контракт. Ораклы, кстати, бывают разные - кроме банального разделения по направлению передачи информации на входящие (из внешнего мира в смарт), выходящие (наоборот) и гибридные (в обе стороны) бывают следующие:
Программные - как в примере выше, взаимодействуют только с онлайн-источниками данных, это базы данных, сервера, сайты и т.д.
Аппаратные - эти могут взаимодействовать с физическими устройствами, вроде сканеров, всяких датчиков и других устройств считывания информации из реального мира. Некоторым смарт-контрактам нужна и такая информация.
Кросс-чейн Ораклы - тут хотелось бы остановиться чуть подробнее, ведь они самые интересные. Кросс-чейн Ораклы могут передавать информацию между разными блокчейнами, в том числе реализовывать запрос в одной сети на какое-либо действие в другой, что традиционно ну ваще никак не возможно - разные блокчейны друг друга не видят. Да, мало кто поймёт как это классно, но просто знайте, что нашумевшая одно время технология кросс-чейн мостов для перегона крипты из одной сети в другую без потери стоимости, именно через такие Ораклы и работает. Там всё просто: есть два смарт-контракта, первый условно на Эфире, второй условно на Бинанс-чейн, оба в своих экосистемах и между собой не соприкасаются. Если нам срочно понадобилось продать 1 ETH в сети Бинанса, мы переводим его на первый смарт-контракт, который блокирует его в сети Эфира, то есть он как бы там и остаётся, но становится не ликвидным - ни продать его, ни перевести мы больше не можем. Затем первый смарт-контракт передаёт данные в Оракл о том, что него пришли деньги, Оракл этот факт проверяет и передаёт уже на второй смарт-контракт, тот что на Бинансе, данные о количестве ETH и их точной стоимости и этот контракт минтит внутри Бинанс-чейн новый токен WETH (W - wrapped, то есть обёрнутый эфир, чтобы не возникало путаницы, токены в чужих им сетях именно так и называют), который 1:1 обеспечен реальным ETH в сети Эфира, то есть цена у них будет одинаковая, поскольку все прекрасно понимают, что если кто-то купит у нас этот WETH в сети Бинанс, он потом точно так же сможет проделать обратную процедуру и получить обычный ETH, если он ему нужен.
Минусы?
Конечно идеально всё быть не может. До захвата власти Chainlinkом бал правили централизованные решения, риски которых очевидны - у них лишь один источник данных и ими слишком легко манипулировать, что может нарушить работу всей системы, полагающейся на такой Оракл. Сам Chainlink и ему подобные (список которых будет ниже) децентрализованы, но есть ещё одна проблема - это нагрузка сети и газ. Для того чтобы вызвать смарт-контракт, который должен что-то передать в Оракл либо получить от него, вообще-то тоже нужна комиссия сети. А когда в сеть требуется добавить новый Оракл, это вообще жуткий геморрой, ведь надо скоординировать каждую ноду в этой сети, чтобы она подтвердила изменения и обновила своё ПО. Это очень большие расходы сил и ресурсов, которые собсна и ограничивают скорость распространения Оракулов и что делать с этой проблемой пока не понятно.
Зачем это?
Тут должны быть тупые и банальные примеры использования Ораклов, типа того, с тотализатором, что был в самом начале, но я поступлю чуть изящнее. Все знают ресурс CoinMarkepCap, а некоторые ещё могут знать, например, CoinGecko. Так вот уже то, что вы можете видеть на них актуальные курсы криптовалют, это заслуга в первую очередь Ораклов, про обмен одной валюты на другую я уж молчу. Ораклы уже активно используются в, прости господи, NFT-гейминге, поскольку способны производить внесетевые расчёты и генерировать псевдослучайные числа, что необходимо для непредсказуемого шанса выпадения айтемов или для сжигания NFT, что бы повысить стоимость оставшихся. Есть ещё примеры использования смартов в юриспруденции, например для автоматизированных выплат по страховым взносам, что без Ораклов так же не возможно. Это уже достаточно дохера, а ведь надо понимать, что мы сейчас только в самом-самом начале эры Web 3.0 и тем же разрабам Ораклов предстоит решить ещё кучу проблем из которых выше я описал лишь основные. Это всё к тому, что мир не стоит на месте, людям требуется производить всё больше вычислений, генерировать и потреблять всё больше информации, на это, в конце концов, нужно всё больше энергии. Ораклы на этом фоне кажутся незначительными и неоправданно сложными для понимания, но именно они тот незаметный винтик, который может в итоге сыграть решающую роль в популяризации децентрализованных технологий и, пусть и не полной, но замены ими явно устаревшей банковской системы и централизованных бирж (привет FTX).
Вместо заключения скажу только одно: развивайтесь. Когда начинаешь понимать что-то, что раньше казалось неподъёмно сложным, это ахренительное чувство.
Наиболее популярные блокчейн-ораклы на данный момент
Если вам и Chainlinka хватило, можете дальше не читать, тут много и копипаста с другого сайта.
Band Protocol — децентрализованный оракл, во многом схожий с Chainlink. Но в отличие от большинства ораклов, работающих на на Ethereum, он работает на Cosmos Network — системе взаимосвязанных блокчейнов, которые должны стать основой децентрализованного интернета Web 3.0. Также в Band Protocol другая система взаимосвязи блокчейнов: в то время как Chainlink стремится работать через внешние модули, решение Band Protocol позволяет блокчейнам связываться друг с другом напрямую. Один из недостатков технологии Tendermint, на которой построен Cosmos и, соответственно, Band Protocol, заключается в том, что оракл безоговорочно доверяет полученным данным. Разработчики в курсе этой проблемы и намереваются ее исправить в ближайшее время.
Nest Protocol — китайское оракл-решение, разработчики которого позиционируют его как единственный оракул, проверяющий внешние данные с помощью валидаторов. Проект децентрализован, все системы расчетов прозрачны, а сообщество может влиять на выбор источников информации. Пока Nest Protocol в основном используется на китайском рынке и не получил широкого распространения на Западе.
Tellor — децентрализованный ценовой оракл, который стремится стать отраслевым стандартом для децентрализованных приложений (dApps). Данные подтверждают валидаторы, которые получают за это токены, но в случае оспаривания использованной информации — потеряют их. Проект децентрализован настолько, что разработчики уничтожили свой ключ администратора.
DIA Association — децентрализованный оракл, ориентированный на DeFi-протоколы. В долгосрочной перспективе проект надеется стать востребованным решением не только для блокчейн-сектора, но и для традиционных финансовых рынков. Поэтому он не замыкается только на предоставлении данных о ценах криптовалют и предлагает данные вроде цен фиатных валют или ставок межбанковского кредитования.
Статья написана для E-Collection, являющейся частью экосистемы E-Company.
Автор статьи: Пашкевич