May 28, 2022

Ораклы

Всем привет! С вами Тёма!

Сегодня мы поверхностно пробежимся по ораклам!

Перевод данной статьи - ТЫК (+ небольшие комментарии)

Начнем

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

А теперь простыми словами. Блокчейн - изолированная от всего мира структура, соответсвенно засунуть в него инфу из реального мира (например прогноз погоды, сам блокчейн же не знает такой информации изначально) нам и помогают эти ораклы, который являются неким мостом между жизнью и блокчейном

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

Пример

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

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

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

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

Безопасность

Оракул безопасен настолько, насколько безопасен его источник(и) данных. Если децентрализованное приложение использует Uniswap в качестве оракула для ценового потока ETH/DAI, злоумышленник может изменить цену на Uniswap, чтобы манипулировать пониманием децентрализованного приложения текущей цены. Примером того, как бороться с этим, является система фидов, подобная той, что используется MakerDAO, которая сопоставляет данные о ценах из множества внешних ценовых фидов, а не просто полагается на один источник

Простейший пример архитектуры ораклов

  1. Делаем Emit в нашем контракте
  2. Off-chain программа подписывается (обычно с помощью команды JSON-RPC eth_subscribe) на эти конкретные логи
  3. Off-chain программа продолжает выполнять некоторые задачи, указанные в логах
  4. Off-chain программа отвечает данными, запрошенными во вторичной транзакции, смарт-контракту

Это способ получения данных 1 к 1, однако для повышения безопасности вы можете децентрализовать способ сбора данных вне сети

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

Надеюсь статья была интересной и понятной!

Мой телеграмм канал - https://t.me/ortomich_crypto