7 января 2023

Эволюция оракулов

Перевод

Это вольный перевод важной для меня заметки: https://andrecronje.medium.com/oracle-evolution-ab7ce23da15b

Суть

Богатые источники данных — то, благодаря чему развивался Интернет. 

Статические страницы превратились в динамические данные благодаря API (оракулам). По мере развития API (оракулов) в традиционном интернете они позволили создавать совершенно новые приложения, которые раньше были невозможны. 

Это стало ключевым фактором эволюции веба от Web 1.0 (статического) к Web 2.0 (динамическому).

Личное замечание (автора статьи, а не перевода): 3-4 года назад мои мысли на эту тему были гораздо более двусмысленными [прим. Menaskop: хотя для тех, кто в теме, тут подошло бы слово «бинарными»]. Я считал, что существует традиционный централизованный веб (Web 2.0) и децентрализованный веб (Web3.0 [хотя мне не нравится этот термин, но буду использовать его в статье, хотя считаю, что deWeb 1.0, вероятно, более подходящее название]). (Итак) считал, что эти два понятия должны быть полностью разделены, без смешения. Тогда децентрализованный веб был сродни ранним статическим страницам Web 1.0, они могли существовать отдельно друг от друга. За последние 4 года децентрализованный веб превратился в гораздо более интерактивную систему. Получение Web 2.0 «оффчейн» данных (погода, полёты, цепочки поставок и т.д.) не уменьшило его силу, а экспоненциально увеличило её. 

То же самое справедливо и для Web3.0.

Oracle v1: 

Соль: запрос — ончейн, поставщик — оффчейн; пример Oraclize

Процесс:

  1. Пользователь инициирует ончейн транзакцию (депозит/ вывод средств/ покупка/ продажа/ ликвидация/ и т.д.) смарт-контракту;
  2. Смарт-контракт отправляет HTTP-запрос ончейн смарт-контракту Оракула;
  3. Централизованный оффчейн-сервис принимает событие HTTP-запроса и анализирует HTTP-запрос (тоже) оффчейн, получая данные;
  4. Централизованный (одобренный/заапрувленный) сервис записывает полученные данные обратно в смарт-контракт (смарт-контракт может, опционально, вызвать функцию обратного вызова (callback) инициирующего смарт-контракта).

Плюсы такого подхода:

  1. Можно использовать произвольные данные оракула; 
  2. Данные предоставляются только по запросу (нет ненужного хранения данных или платы за газ). 

Минусы:

  1. Централизованный сервис; 
  2. Асинхронная задержка ответа ((что влияет на) отзывчивость приложения); 
  3. Стоимость (нужно платить за инициирование транзакции и газовые сборы за обратный вызов (call)).

Oracle v2

Суть: ончейн-провайдер; пример — Chainlink. 

Процесс:

  1. Dapp (децентрализованное приложение) запрашивает данные (преимущественно —  цену) у Оракула (оффчейн); 
  2. Распределённая сеть добавляет канал данных на свои узлы;
  3. Централизованный авторизатор (authorizer) периодически записывает данные ончейн.

Плюсы:

  1. Доступность данных (данные находятся ончейн, когда они требуются, нет задержки отклика). 

Минусы:

  1. Нет произвольных данных; 
  2. Запрос — (только от) предварительно одобренных каналов;
  3. Централизованный авторизатор ((что тоже работает лишь через) доверие); 
  4. Стоимость (субсидирование платы за газ за каждую ончейн-запись). 

Oracle v3

Суть: данные — оффчейн, авторизатор (верификатор) — ончейн; пример Chainlink (в новой альфа-версии). И да, мы в 2023 году именно в этой точке

Процесс:

  1. Dapp и/или пользователь запрашивает у авторизованного сервиса доказуемые оффчейн-данные;
  2. Централизованный авторизатор (верификатор) запрашивает оффчейн-данные и подписывает их (через собственный ключ авторизации): возвращаемое значение, метка времени, источник данных;
  3. Dapp инициирует ончейн-транзакцию (депозит/ вывод средств/ покупка/ продажа/ ликвидация/ и т.д.), как часть транзакции;
  4. Смарт-контракт проверяет, что подписант является ожидаемым проверяющим, проверяет источник данных, проверяет временную метку и проверяет данные; 
  5. Если все данные проверены, набор данных обновляется новыми данными и выполняется остальная часть транзакции.

Плюсы:

  1. Можно запрашивать произвольные данные;
  2. Данные предоставляются только по запросу;
  3. Доступность данных (они доступны по мере обработки транзакции);
  4. Низкая стоимость (нужно платить только за дополнительные sig verify и SSTORE);

Минусы:

  1. Централизованный орган/проверяющий ((минус, опять же) — доверие);
  2. Контракт требует предварительного знания открытого ключа (проверяющего).

Oracle v4

Суть: доказываемые данные с ZK-механиками, TBD. 

Процесс:

  1. Dapp и/или пользователь запрашивает доказываемые оффчейн-данные у программы-”верификатора” (prover);
  2. Программа-верификатор (специально созданные zk-схемы для TCP [примечание: мы далеки от этого]), которую может запустить любой (в том числе — в самом dapp), которая принимает в качестве аргументов целевую конечную точку (HTTP/ SSL/ TCP/ etc.) и предоставляет доказательство и данные: возвращаемый набор данных, метка времени и источник (целевая конечная точка); 
  3. Dapp инициирует ончейн-транзакцию (депозит/ вывод средств/ покупка/ продажа/ ликвидация/ и т.д.), как часть транзакции она включает доказательство и данные; 
  4. Смарт-контракт проверяет доказательство, проверяет источник данных, проверяет временную метку и проверяет данные; 
  5. Если все данные проверены, набор данных обновляется новыми данными и выполняется остальная часть транзакции.

Плюсы:

  1. Можно запрашивать произвольные данные;
  2. Данные предоставляются только по запросу;
  3. Доступность данных (они доступны по мере обработки транзакции);
  4. Низкая стоимость (нужно платить только за проверку доказательства и SSTORE);
  5. Отсутствие централизованной структуры (нет доверия);

Минусы:

  1. Контракт нуждается в предварительном знании программы (схемы) доказательства;
  2. Очень сложные схемы и вряд ли будут доступны в ближайшее время. 

Примечание Menaskop

В целом согласен с автором, но только не с последней фразой: “очень сложные схемы и вряд ли будут доступны в ближайшее время”, — возможно, если брать рынок в целом, то ответ будет положительным для перспективы в 3-5 и даже 7-10 лет, но решения подобного уровня в виде MVP уже есть и скоро можем увидеть их, особенно — в аспекте развития рынка программируемых активов. 

На этом всё и 

До!

Обсудить в Discord!