Что такое оракул в блокчейне

Понимание оракулов в блокчейне

Перевод статьи Thomas Bertani из блога компании Oraclize.

Этот пост дискуссия о том, чем на самом деле являются оракулы, так же мы расскажем о некоторых распространенных заблуждениях по этому вопросу.

Оракул — это третья сторона, вы общаетесь с оракулом когда вам нужны данные, которые вы не хотите (или не можете) извлекать самостоятельно. Причин для этого может быть много.

С одной стороны, вы можете не доверять отдельному объекту при подписании 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 объекта:

Запрос — это алгоритм, который может понять выбранный вами источник данных, чтобы предоставить вам нужные данные.

Оракул/Сеть оракулов — это сторона которая отвечает за подключение к источнику данных. Здесь нужно обсудить два вопроса:

Подход Oraclize в качестве оракула отличается.

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

Мы предоставляем инструменты для проверки нашей честности с помощью которых вы можете сделать эту проверку самостоятельно. Здесь, например, наш сетевой монитор для Ethereum который подключается на вашей, клиентской стороне (вот почему это так тяжело) с публичными нодами Ethereum и шлюзом IPFS (или с вами сами, если хотите), чтобы вы смогли находить транзакции Oraclize и доказать правдивость верифицировав их. При том вы можете легко контролировать сеть самостоятельно, чтобы гарантировать, что Oraclize ведет себя честно, и мы действительно хотим побудить вас сделать это!

Что такое оракул в блокчейне. Смотреть фото Что такое оракул в блокчейне. Смотреть картинку Что такое оракул в блокчейне. Картинка про Что такое оракул в блокчейне. Фото Что такое оракул в блокчейне

Что это значит на практике? Если мы изменим ваши данные, любой может проверить это в любое время, автоматически и в одно мгновение и наша репутация будет потеряна. Если вам кажется, что наши ответы по-прежнему звучат слишком рискованно, вы, вероятно, захотите дождаться, когда мы выпустим релиз с открытым кодом для Ethereum, над которым мы работаем. Это означает, что ваш код смарт-контракта может получать доказательство в TLSNotary самостоятельно, и если данные недействительны то вы можете отбросить данные Oraclize.

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

Источник

Что такое блокчейн-оракулы и какую роль они выполняют

Блокчейн-оракулы – это те самые переводчики и проводники, которые связывают источники данных из внешнего мира (Интернета) и блокчейн. Оракулы принимают информацию с различных источников и преобразуют ее в язык, понятный смарт-контрактам – программам, которые автономно обрабатывают операции на блокчейне. Другими словами, оракулы обслуживают всю экосистему Web3.

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

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

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

В зависимости от принципа работы различают несколько видов оракулов:

Как используются оракулы

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

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

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

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

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

Другой яркий пример применения оракулов – блокчейн-проект Provable. Платформа предоставляет готовые решения на базе оракулов для разработчиков децентрализованных приложений (dApps). Provable позволяет интегрировать такие решения, как ГСЧ для азартных игр на блокчейне, поставщик достоверных данных и модуль безопасности Provable военного уровня для самых важных процессов. Блокчейн Provable позволяет убедиться, что данные поступают в исходном виде и не были модифицированы.

Заключение

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

Источник

Что такое проблема оракулов в блокчейн?

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

Смарт-контракты представляют огромный потенциал преобразить то, как независимые структуры вступают в контрактные обязательства и производят платежи. Отдельно от индустрии смарт-контрактов, мы имеем огромную традиционную цифровую экономику, состоящую из множества устройств, связанных с помощью интернета, и производящих вычисления онлайн. Производный продукт такой цифровой инфраструктуры — постоянно увеличивающийся объем данных и API, который дает представление о том как все в нашем мире работает; например, результаты поиска, выдающие самые популярные темы, или сенсоры IoT (Internet of Things или Интернет Вещей) предлагающие наиболее распространенные модели трафика.

Смарт-контракты построенные на блокчейн и традиционные базы данных и API имеют огромный потенциал для объединения в гибридные смарт-контракты и создания новой архитектуры для автоматизации баз данных. Но как связать эти два мира? В этом и заключается “Проблема оракулов” — главная тема этой статьи.

Статья разделена на пять частей:

Почему блокчейны, такие как Ethereum, не предлагают собственных, нативных решений для оракулов

Риски централизованных оракулов, связанные с безопасностью

Проблема оракулов

Проблема оракулов состоит в одном простом ограничении — блокчейны не могут получать или выдавать данные из внешних экосистем в качестве встроенного функционала. Таким образом получается, что блокчейны — это изолированные сети, в принципе как компьютер без интернета. Именно эта изоляция и делает блокчейн невероятно безопасной и надежной, т.к. сеть только требует консенсус на основе самого базового набора однозначных вопросов (правда/ложь), используя базу данных которая уже зарегистрирована в леджере. Примеры таких вопросов: подписал ли владелец публичного ключа транзакцию с соответстующим секретным ключом, имеет ли данный публичный адрес достаточно средств для запрашиваемой транзакции, и достоверен ли данный тип транзакции для конкретного смарт-контракта? Такой узкий фокус консенсуса объясняет почему смарт-контракты часто называют детерминированными — они строго исполняют поставленные перед ними задачи, и с гораздо более высокой точностью чем традиционные системы.

И тем не менее, для реализации более 90% своего потенциала, смарт-контрактам необходимо иметь связь с внешним миром. Например, финансовым смарт-контрактам необходима информация с рынков для проведения платежей, страховым смарт-контрактам нужен доступ к IoT (интернет вещей) и сети данных для определения размеров выплат, и подавляющее большинство смарт-контрактов будут осуществлять платежи в фиате и традиционными методами. Ни один из этих аспектов не присутствует в блокчейне по умолчанию, и ни один из вышеупомянутых традиционных сервисов не предлагает прямой доступ к своим данным.

Связь между блокчейном (on-chain) и внешним миром (off-chain) требует дополнительных и невзаимосвязанных между собой элементов инфраструктуры, известных как оракулы.

Что делают оракулы блокчейна?

Оракул в блокчейне — это защищенный элемент middleware (промежуточного программного обеспечения), который обеспечивает связь между различными блокчейнами и любой внешней, оффчейн системой, включая поставщиков данных, сетевые API, корпоративные бэкенды, облачные провайдеры, электронные подписи, платежные системы, другие блокчейны, и т.д. Оракулы берут на себя многие ключевые функции:

Слушать — отлеживать блокчейн на предмет входящих запросов на внешние данные (оффчейн) от пользователей или смарт-контрактов.

Извлекать — собирать данные от одной или множества внешних систем, к примеру API с хостингом на внешних серверах

Форматировать — переводить данные полученные из внешних API в формат блокчейна (input/входящее значение) и/или создавать данные в блокчейне, совместимые с внешним API (output/полученный результат)

Подтверждать — создавать криптографическое доказательство качества оракула, с помощью комбинации подписи данных, подписи транзакции на блокчейне, подписей TLS (Transport Layer Security/протокол защиты транспортного уровня), TEE подтверждений (Trusted Execution Environment/Безопасная Среда Исполнения), или доказательств с нулевым разглашением (zero-knowledge proof).

Вычислять — Производить безопасные оффчейн вычисления для смарт-контрактов, например вычисление среднего значения от множественных источников, или генерирование доказуемо случайного значения (verifiable random number) для игровых приложений.

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

Output/полученный результат (необязательная функция) — отправлять данные внешней системе после исполнения смарт-контракта, например передача платежных поручений традиционной системе платежей или инициирование действий от киберфизических систем (cyber-physical system).

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

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

Почему блокчейны не могут решить проблему оракулов

Блокчейны — невероятно безопасны и надежны благодаря нескольким принципам. Как мы описали выше, блокчейн требует консенсус по очень базовым однозначным вопросам (правда/ложь), используя данные, которые уже хранятся в его леджере. Леджер верен по умолчанию, потому что он использует децентрализацию для подтверждения каждой единицы информации, используя все ноды (node) сети. Блокчейн также использует децентрализацию чтобы поддерживать целостность и неприкосновенность своего консенсуса (PoW — доказательство выполнения работы, PoS — доказательство доли владения, и др), гарантируя таким образом, что изменение правил протокола возможно только если подавляющее большинство сети выразит свое согласие (например, 51%). Все эти свойства обеспечивают значительные гарантии вычислительного и информационного детерминизма, особенно в самых децентрализованных и устойчивых к атакам Сибиллы (Sybil attacks) сетях.

И тем не менее, блокчейны не очень хорошо подходят там, где требуется суб’ективность или необходимы внешние данные, которые не обязательно могут быть доступны каждому узлу (node) сети. Например, простой вопрос вроде “Какая сейчас рыночная стоимость биткоина?” или “Какая погода сейчас в Нью-Йорке” может вызвать широкий спектр разных ответов, которые будут отличаться в зависимости от источника данных и времени запроса информации. Таким образом встает следующий вопрос — что есть верный ответ и как подтвердить что он верный?

Наличие суб’ективности на базовом уровне (base layer) блокчейна открывает ящик Пандоры с самыми различными рисками — безопасность, надежность, управление (governance), угрожая таким образом ценности и целесообразности собственно блокчейна.

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

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

Другая серьезная проблема — это масштабирование. Добавление в сеть нового источника информации или коррекция существующего метода аггрегации требуют огромного усилия для координирования и управления коммуникацией с каждой нодой для дальнейшего одобрения и обновления их программ. Нагрузка от управления увеличивает разногласия в сети, замедляет развитие основных элементов блокчейна (например, PoS или sharding/шардинг), и затрудняет дальнейшие инновации и развитие оракулов. Разумеется, чем сложнее базовый уровень блокчейна, тем больше риска для всех приложений его использующих. Даже те приложения, которые не используют оракулы или не вовлечены в конфликтующие запросы данных, могут все равно попасть под перекрестный огонь и возможно даже временно прервать работу, если, например, вся сеть остановится из-за проблемы с оракулом.

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

Оракулы централизованных блокчейнов несут значительные риски

Весь смысл смарт-контрактов заключается достижении их однозначного исполнения с помощью технологии, а не вероятного исполнения человеком. Чтобы этого достичь, блокчейн не должен иметь единую точку отказа (SPOF/single point of failure) — и это свойство должно распространяться на оракулы, если мы хотим чтобы детерминизм смарт-контрактов поддерживался на протяжении полного цикла (end-to-end). Зачем переводить многомиллионный стандартный контракт на смарт-контракт на полностью децентрализованном блокчейне, если один централизованный оракул способен контролировать ввод информации, предопределяя таким образом результат исполнения контракта?

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

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

Чтобы преодолеть такие недостатки, оракулам необходимо иметь те же гарантии безопасности и надежности, что и у блокчейна, но в другом виде — учитывая их отличия.

Chainlink: Стандарт для безопасных и надежных оракулов

Чтобы гарантировать детерминизм на уровне оракулов, Chainlink разработал систему децентрализованных сетей оракулов (DON/decentralized oracle network), где каждая сеть/DON включает в себя комбинацию многочисленных техник безопасности, необходимых для обслуживания определенного сценария/проекта.

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

Внешние Соединители (External Adapters) — инструменты для создания соединений с любыми оффчейн-ресурсами или API — позволяют нодам безопасно хранить API ключи и управлять логинами, что в свою очередь позволяет смарт-контрактам получать данные их любых внешних систем и API, включая те, которые защищены паролем или учетными данными.

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

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

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

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

Сертификация — позволяет нодам увеличить свою безобасность и надежность с помощью всевозможных сертификатов качества, и таким образом предоставляет пользователям дополнительные гарантии, такие как KYC (Know Your Customer/знай своего клиента), геолокация ноды, отзывы о безопасности инфраструктуры ноды, и многие другие.

Что такое оракул в блокчейне. Смотреть фото Что такое оракул в блокчейне. Смотреть картинку Что такое оракул в блокчейне. Картинка про Что такое оракул в блокчейне. Фото Что такое оракул в блокчейнеДецентрализованные сети оракулов (DON) позволяют смарт-контрактам безопасно подключаться к внешним данным и системам

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *