Понимание оракулов в блокчейне
Канал "О криптовалютах"👌
Этот пост дискуссия о том, чем на самом деле являются оракулы, так же мы расскажем о некоторых распространенных заблуждениях по этому вопросу.
Что такое блокчейн-оракул?
Любая распределенная децентрализованная сеть всегда детерминирована — транзакции в ней идут в строго хронологической последовательности, а сама сеть не может самостоятельно получать информацию из третьих источников и внешнего мира. Для этого в блокчейне существуют оракулы — инфраструктурные алгоритмы, которые переводят информацию, находящуюся вне сети, в понятный для блокчейна формат.
Оракул — это третья сторона, вы общаетесь с оракулом когда вам нужны данные, которые вы не хотите (или не можете) извлекать самостоятельно. Причин для этого может быть много.

Таким образом, оракул можно рассматривать как способ связи блокчейна с реальным миром. Данная возможность играет ключевую роль, особенно в использовании смарт-контрактов — протоколов, которые обеспечивают автоматическое выполнение условий коммерческих сделок, проведения транзакций и обмена активами между сторонами без участия третьих лиц. Однако, работая со смарт-контрактами, предприниматели и компании часто сталкиваются с такими весомыми недостатками, как:
Смарт-контракты существуют только в крипто-пространстве, а для их работы необходим надежный блокчейн, внедрение которого — технически и финансово сложный процесс.
Поскольку смарт-контракт является алгоритмом, который должен учитывать множество факторов, то для корректного составления такого контракта нужно прописать большое количество возможных вариантов развития ситуаций, что значительно увеличивает шансы на критическую ошибку.
После запуска в смарт-контракт невозможно внести изменения или остановить его работу, пока все условия, прописанные в нем, не будут выполнены.
С одной стороны, вы можете не доверять отдельному объекту при подписании multi-signature транзакции Bitcoin. Например, вы хотите чтобы некоторые средства были перемещены только при определенных условиях. Вместо того, чтобы делать это самостоятельно (что не дает никаких гарантий внешним сторонам) или делегировать это третьей стороне (которой вы не хотите доверять, поскольку она может вести себя некорректно), вы разделяете процесс подтверждения транзакции различным сторонам (оракулам) через multi-signature транзакцию.
Путь с использованием N-of-M multi-signature транзакций заключается в том, что каждый оракул имеет только один закрытый ключ, и может поставить только одну подпись в тот момент когда он сочтет это нужным, но сама транзакция будет действительна одна и N-of-M оракулы будут иметь консенсус относительно того, какая транзакция должна пройти. Это намного правильней, чем доверять одной из внешних сторон, поскольку выбранные оракулы могут конкурировать и вы получаете низкую вероятность мошенничества.
Идея иметь распределенную oracles network существует уже несколько лет, однако найти консенсус по протоколу связи между оракулами (Orisi пыталась) сложно. Поиск сторон готовых присоединиться к oracles network, еще сложнее, так как необходим хороший процесс стимулирования, а так же простой и понятный дизайн с возможностью легко взаимодействовать и в этом пока консенсуса нет. Помимо всего этого существенным ограничением могут быть источники, которые вы хотите использовать для получения данных, так как некоторые из них могут быть недоступны без разрешения внешних сторон (подробнее об этом мы поговорим немного позже).
Если мы говорим о смарт-контрактах (Ethereum), то здесь совершенно по другому, логика подтверждения транзакций обеспечивается сетью через ваш собственный код смарт-контракта. Это означает, что оракул не ставит подпись после проверки некоторых условий, вместо этого он предоставляет вам данные, которые вы просили — условия могут быть проверены на вашей стороне напрямую, вы можете сами инициировать транзакцию или изменение статуса. Тем не менее вы не можете полагаться на распределенную сеть для получения внешних данных, так как приложения / сервисы, выполняемые в цепочках, живут в собственной замкнутой среде, и именно поэтому вам нужны оракулы для ввода внешних данных.
Растущие потребности в данных — это результат быстро растущих индустрий и соответственно находить данные, правильно их вытаскивать из реального мира становится все сложнее и сложнее. Однако, часто неправильное представление использования оракулов вызвано слабым пониманием того, какие данные вы хотели бы получать от оракулов.
Например, рынки предсказаний, такие как Augur или Gnosis, призваны дать хороший и надежный индикатор эволюционирующих настроений (или знаний) толпы вокруг фактов которые произойдут в будущем. Рынки предсказаний часто упоминаются как оракулы, но в более широком и совершенно другом смысле, чем мы обсуждали выше.
Еще один момент, который стоит обсудить, заключается в следующем: хотим ли мы назвать оракулом, только то что является например потоком котировок? Это всего лишь источник данных, и в большинстве случаев он не будет иметь никаких связей с блокченом. Финансовые учреждения часто считают «Bloomberg» или «Reuters» в качестве оракулов, но на самом деле используют их как источник данных. Быть оракулом, это значит взять на себя все сложности взаимодействия с блокчейном, а они не заинтересованы делать это, так как это требует дополнительных затрат и ресурсов. Тем не менее, оракул может предоставить доступ к данным Bloomberg, после того как выберет подходящий источник и правильную форму данных. Ссылаться на тех, кто представляется как «оракул» но на самом деле является «источником данных», это еще одно неправильное использованием этого термина.
Чтобы более глубоко понять это, мы можем определить 3 объекта:
- источник данных
- запрос
- Оракул/Сеть оракулов
Что касается источника данных — это источник информации, которую вы ищете, это может быть что угодно в зависимости от вашего фактического запроса, например это может быть Augur (при рассмотрении будущих событий/фактов), “Bloomberg” (при поиске финансовых данных), «Bitcoin blockchain» (при поиске address balance, данных транзакции OP_RETURN или любых других данных блокчена), «WolframAlpha» (при поиске ответа на заданный запрос в Wolfram Alpha) или… “Web”? Получение веб-данных или данных с API является самым простым и распространенным местом, с которого вы можете получать данные.
Запрос — это алгоритм, который может понять выбранный вами источник данных, чтобы предоставить вам нужные данные.
Оракул/Сеть оракулов — это сторона которая отвечает за подключение к источнику данных. Здесь нужно обсудить два вопроса:
- Почему я должен доверять источнику данных? Большую часть времени вы не должны доверять. Найти консенсус различных источников данных — это хороший способ дать дополнительную надежность, при этом все еще используя «централизованные» данные
- Что, если Оракул/Сеть оракулов вернет мне неправильный результат? И это основной момент, предлагающий использовать консенсус оракулов вместо одного оракула. Но подождите, нет ли другого способа предотвратить возможность того, что бы оракул подделывал данные? Давайте поговорим об этом немного.

Типы блокчейн-оракулов
В зависимости от своего предназначения и использования блокчейн-оракулы могут быть нескольких типов:
Оракул как ПО
Оракул, существующий в формате программного обеспечения, работает с информацией, которая находится онлайн. Такой оракул может предоставлять данные о погоде, температуре, ценах на услуги или товары, расписании транспорта и так далее. Эти данные оракул получает с сайтов компаний, обрабатывает и предоставляет смарт-контракту.
Аппаратный оракул
Некоторым смарт-контрактам необходима информация из реального мира о физическом выполнении определенных условий. Например, смарт-контракту могут понадобиться данные об автомобиле, который находится в зоне действия определенного датчика. Также аппаратный оракул может взаимодействовать с RFID-метками (метки радиочастотной идентификации) для работы смарт-контрактов в логистике. Основной проблемой для данного типа оракулов является обеспечение надлежащего уровня защиты считываемой информации.
Входящий оракул
Данный тип оракула работает непосредственно внутри самого смарт-контракта и предоставляет информацию из внешнего мира при определенных условиях. Например, для запуска автоматического ордера на покупку криптовалюты смарт-контракт должен знать, когда ее курс достигнет той или иной отметки. Данную информацию предоставит входящий оракул.
Исходящий оракул
Исходящий оракул, наоборот, может отправлять информацию во внешний мир. Так, система умной блокировки, которая существует в реальном мире, может автоматически предоставить пользователю доступ, как только она получит информацию об успешном платеже от оракула.
Консенсус Оракулов
Таким рынкам предсказаний, как Augur или Gnosis, необходимы оракулы для достоверного предсказания развития событий и конечных результатов. Однако, используя всего один источник информации, невозможно с точностью определить его надежность. В связи с чем рынки предсказаний используют не один, а несколько оракулов, чтобы предугадать последствия событий.
Итог
По мере развития блокчейн-экономики экосистема оракулов будет стремительно развиваться как надежный способ связи цифрового мира с реальным. Именно блокчейн-оракулы смогут решить проблемы коммуникации блокчейнов, а также обеспечить более широкое применение смарт-контрактов в различных индустриях, заинтересованных в использовании децентрализованных сетей.
Для Вас работала команда канала «О криптовалютах👌».
Спасибо, что дочитали до конца!
С уважением.
