GenLayer
Все публикации

Перевод оригинальной статьи на английском.

Разработчикам

Intelligent Oracles и Всемирная дикая паутина

Joaquin Bressan6 мин чтения

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

Intelligent Oracles разрушают эту изоляцию.

Они построены на GenLayer, служат воротами во внешний мир и работают в нативной среде Python, способной выполнять недетерминированные задачи. С функциональной точки зрения такой оракул представляет собой Intelligent Contract, который получает произвольные публичные данные из веба (текст, HTML или изображения), обрабатывает их с помощью больших языковых моделей (LLM) и достигает по результату консенсуса, не требующего доверия. Он не просто хранит данные: в нём заложена логика, чтобы их интерпретировать.

Главная инженерная задача кроется в консенсусе: как децентрализованной сети договориться о содержимом динамического сайта? Веб-данные и ИИ-инференс могут быть недетерминированными, поэтому разные узлы могут вернуть разные результаты для одной и той же задачи.

GenLayer решает её с помощью Optimistic Democracy. Вместо того чтобы полагаться на один источник данных, сеть поручает достичь консенсуса случайно выбранной группе валидаторов. Случайно выбранный лидер предлагает результат, а остальные валидаторы группы проверяют его по заранее заданным «правилам согласия».

Эти правила называются принципами эквивалентности:

  • Строгая эквивалентность (gl.eq_principle.strict_eq): валидаторы выполняют задачу независимо и требуют точного посимвольного совпадения с результатом лидера. Идеально подходит для детерминированных данных, например исторических цен токенов.
  • Сравнительная эквивалентность (gl.eq_principle.prompt_comparative): валидаторы выполняют задачу независимо. Для проверки они запускают промпт LLM, который оценивает и результат лидера, и их собственный результат по критерию, заданному разработчиком. Согласие достигнуто, если LLM решает, что соотношение двух результатов удовлетворяет этому критерию.
  • Несравнительная эквивалентность (gl.eq_principle.prompt_non_comparative): валидаторы не выполняют задачу повторно, а поручают LLM роль судьи: она проверяет, логически ли удовлетворяет критерию разработчика результат, предложенный лидером.
  • Собственная эквивалентность: в сложных сценариях разработчики не ограничены этими готовыми вариантами. Можно определить совершенно произвольные функции на Python, которые точно задают, как лидер и валидаторы должны прийти к консенсусу.

Примечание: подробный разбор механики Optimistic Democracy и принципов эквивалентности выходит за рамки этой статьи. Если хотите полностью разобраться в архитектуре консенсуса, читайте здесь.

Какие бывают оракулы

Чем Intelligent Oracles отличаются от существующих решений, проще всего понять, если разделить решения по тому, как данные попадают в блокчейн. Чтобы работать, смарт-контракты опираются на оракулы: офчейн-посредников, которые передают данные в блокчейн. Их можно свести к двум основным архитектурам: потоки данных в реальном времени или предложения данных от людей, которые можно оспорить.

Оракулы на основе потоков данных (Chainlink, Pyth) работают как высокоскоростные сервисы по подписке. Для стандартных данных вроде цен активов это невероятно эффективно, но жёстко: само существование вашего приложения зависит от того, поддерживается ли нужный поток данных.

Чтобы обойти это ограничение, оптимистичные оракулы (UMA) допускают более открытые, но и более медленные предложения данных. Любой может предложить результат, внеся финансовый залог, и система считает его верным, если его явно не оспорят в течение «периода оспаривания» (liveness period). Модель гибкая, но упирается в скрытый потолок: человеческое внимание. Споры требуют ручного голосования. Нельзя попросить DAO проверить 10 000 микротранзакций в день. Поэтому такие модели естественным образом тяготеют к рынкам с высокой ценностью и низкой частотой и фактически игнорируют «длинный хвост» повседневных споров с невысокими ставками.

GenLayer предлагает третий путь: Intelligent Oracles избавляют от слепоты, давая вашему приложению мозг и доступ к внешнему миру. Открыто и без доверия к посредникам.

Сравнение трёх моделей оракулов. Chainlink, оракул на основе потоков данных: доверие посредникам; данные передаются в режиме push или pull и ограничены заранее заданными стандартными потоками. UMA, оптимистичный оракул: доверие теории игр; офчейн-мозг человека справляется с более разнообразными и сложными данными, но узким местом становится человеческое внимание, поэтому модель подходит для рынков с высокой ценностью и низкой частотой. GenLayer, Intelligent Oracle: доверие не требуется; ончейн-мозг на базе ИИ сам получает и интерпретирует живой веб, открывая дорогу высокочастотным масштабируемым рынкам

Как работают Intelligent Oracles?

Чаще всего Intelligent Oracle применяют, чтобы превращать хаотичный неструктурированный веб в структурированные ончейн-факты.

Чтобы понять силу Intelligent Oracles, не нужны гипотетические сценарии. Все разработчики опираются на один и тот же простой цикл, который выходит за границы стандартной EVM:

  1. gl.nondet.web.render(): возможность выйти за пределы блокчейна и обратиться к вебу.
  2. gl.nondet.exec_prompt(): возможность обработать эти данные с помощью LLM.
  3. gl.eq_principle: правила, которые заставляют сеть ИИ-моделей прийти к консенсусу относительно единой истины.

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

  • Используйте синтаксическую эквивалентность (strict_eq), если результат должен быть идентичным на всех узлах (например, когда вы извлекаете конкретный адрес, исторические данные определённого токена и т. п.).
  • Используйте семантическую эквивалентность (prompt_non_comparative, prompt_comparative), если вы извлекаете текст, формулировки которого могут различаться, а смысл должен оставаться тем же (например, пересказ новостной статьи или анализ тональности).
  • Используйте собственную проверку, если получаете крайне волатильные данные (например, текущие цены токенов). Такие значения меняются ежесекундно, поэтому строгая эквивалентность часто не срабатывает. Полноценный сравнительный вызов LLM вам тоже, скорее всего, не нужен, или как минимум он неэффективен. Здесь собственная эквивалентность позволяет задать «диапазон допуска» (например, цены должны различаться не более чем на 1%), а не требовать точного совпадения.

Паттерн «Reader» («text» или «html»)

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

Пример: оракул цены Bitcoin

Фрагмент кода на Python: метод @gl.public.write получает страницу Bitcoin на CoinMarketCap в виде текста через gl.nondet.web.render, просит LLM через gl.nondet.exec_prompt извлечь цену в долларах США как целое число и использует gl.eq_principle.strict_eq, так что все валидаторы должны получить одинаковый результат, прежде чем он будет сохранён в btc_price

В этом фрагменте контракт получает веб-страницу и просит LLM извлечь цену. Для простоты в примере используется строгая эквивалентность: предполагается, что LLM извлекает точное целое число из статичного снимка страницы. В высокочастотной продакшен-среде безопаснее был бы упомянутый выше собственный принцип с «диапазоном допуска».

Полный пример доступен здесь.

Паттерн «Vision» («screenshot»)

Текст даёт многое, но некоторые истины визуальны. Этот паттерн использует мультимодальные LLM, чтобы обрабатывать и интерпретировать изображения.

В отличие от извлечения текста, визуальный анализ по своей природе субъективен. Два человека могут по-разному описать одно и то же изображение. Поэтому этот паттерн лучше всего работает там, где нужно согласие по смыслу.

Пример: верификатор «Proof of Steak»

Фрагмент кода на Python: метод @gl.public.write делает снимок изображения по URL через gl.nondet.web.render в режиме screenshot, спрашивает LLM, изображён ли на нём приготовленный стейк (YES или NO), и использует gl.eq_principle.prompt_comparative с критерием: оба ответа должны совпадать в том, есть ли на изображении стейк

В этом фрагменте контракт анализирует изображение по URL, чтобы определить, приготовленный ли стейк на нём изображён. Сравнительная проверка учитывает, что ИИ может по-разному сформулировать «Yes».

Полный пример доступен здесь.

От теории к практике

Эти паттерны не гипотетические: разработчики уже сейчас развёртывают их, чтобы решать задачи, которые раньше в блокчейне решить было невозможно.

  • «Proof of Steak» от Luk: победитель хакатона GenLayer в ноябре 2025 года. Проект использует паттерн Vision, чтобы создать весёлую проверяемую социальную игру. Пользователи загружают фото своего ужина или другой контент, а децентрализованное жюри проверяет и оценивает его.
  • Price Prediction Oracle от Ying: с помощью паттерна Reader Ying создал систему, которая получает сырой HTML с крупных новостных сайтов и бирж и фактически превращает любой публичный URL в потенциальный источник для оракула, без API-ключей и без разрешений.
  • «Watchdog» от Jay: приложение для безопасности, которое следит за работоспособностью внешних серверов (например, GitHub или CoinGecko). С помощью паттерна Reader оно обнаруживает простои и автоматически включает ончейн-предохранители (circuit breakers), чтобы приостановить контракты на время сбоя.
  • «Guess the Picture» от Pavel: игровая реализация паттерна Vision, где пользователи рисуют заданные понятия, а ИИ-жюри оценивает рисунки по тому, насколько точно они передают смысл.

Теперь у нас есть контракты, которые видят, читают и реагируют. Однако уход из детерминированной безопасности EVM в изменчивый интернет сопряжён с рисками. Чтобы строить долговечные системы, понимать ограничения Intelligent Oracles так же важно, как понимать их возможности.

Текущие ограничения: хрупкость «истины»

Главная трудность не в ИИ, а в самой «Всемирной дикой паутине», среде, где стабильность встречается редко. Надёжный сегодня источник завтра может оказаться за пейволлом, попасть под блокировку Cloudflare или вовсе уйти в офлайн. Отсюда опасное противоречие: если вы жёстко прописываете в контракте конкретный URL, чтобы всё было «без доверия», вы ставите на то, что этот сайт никогда не изменит свою политику против ботов. Статичный URL становится единой точкой отказа и может вынудить вас к дорогостоящему повторному развёртыванию.

Совет разработчику: прежде чем развёртывать контракт, проверьте свои источники. С помощью Intelligent Crawler можно убедиться, что содержимое нужного URL действительно доступно.

С другой стороны, разрешить пользователям передавать любой URL не менее опасно. Злоумышленник легко может поднять фейковый новостной сайт или клон авторитетного домена и скормить вашему оракулу ложные данные. Решение лежит посередине: белый список доменов. Разработчикам стоит относиться к URL как к изменяемому состоянию, а не как к статичному коду. Храня ончейн список одобренных надёжных доменов (например, coindesk.com, bbc.com), вы защищаетесь от дезинформации и сохраняете гибкость: протокол сможет переключиться на другой источник, если конкретный URL перестанет работать. И всё это без необходимости кому-либо доверять.

Фрагмент кода на Python: метод @gl.public.write fetch_from_url выбрасывает UserError, если домена нет в белом списке, а затем получает страницу в виде текста через gl.nondet.web.render. Вспомогательная функция _is_whitelisted нормализует домен и принимает его, если он совпадает с записью в whitelisted_domains или является её поддоменом

Это фрагмент кода для белого списка доменов. Здесь мы нормализуем URL и проверяем, входит ли он в белый список. Это важный шаг: именно здесь вы задаёте логику (например, нужны ли вам строго определённые пути для конкретного домена или разрешён любой путь в его пределах).

Полный код здесь.

Кроме того, технически Intelligent Oracles могут получать данные из любого API через стандартные HTTP-запросы (GET/POST), но здесь есть подвох: конфиденциальность. Большинству API для аутентификации нужен приватный API-ключ. На обычном сервере вы прячете его в защищённом файле .env. Но в блокчейне всё прозрачно. Если вы пропишете OPENAI_API_KEY или BLOOMBERG_KEY прямо в контракте, ключ увидит каждый валидатор и любой обозреватель блоков в сети. Поэтому интегрировать приватные API по подписке в текущей модели нереалистично: злоумышленники могут мгновенно вытащить ваш ключ и исчерпать вашу квоту.

Наконец, цена интеллекта. GenLayer выполняет несколько LLM-инференсов в каждом раунде консенсуса. Не используйте суперкомпьютер там, где хватит калькулятора. Если вам нужна только цена ETH, используйте специализированный детерминированный фид вроде Chainlink или Pyth: для этой конкретной задачи они быстрее и дешевле. Оставьте GenLayer для «длинного хвоста»: миллионов субъективных, запутанных и сложных вопросов, которые требуют понимания, а не только арифметики.

Потенциал: Intelligent Oracles как экономические агенты

Конфиденциальность пока остаётся ограничением, но отрасль приходит к общему решению, которое превращает Intelligent Oracles из пассивных читателей в активных экономических агентов.

Самым многообещающим стандартом здесь выглядит протокол x402 (на основе HTTP 402 «Payment Required»).

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

Так необходимость в секретах фактически отпадает. «Аутентификация» превращается в «оплату».

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

Важно уточнить: GenLayer не пытается стать очередным универсальным L1 или L2, который заменит вашу текущую сеть. Это слой разрешения вопросов (Resolution Layer), своего рода «суд интернета»: он подключается к другим dApp и берёт на себя недетерминированные решения.

Мы прошли путь от смарт-контрактов, которые считают, к Intelligent Contracts, которые понимают. Если хотите начать разработку прямо сейчас, заходите на IntelligentOracle.com.

Там вы найдёте не только документацию, но и специализированного ИИ-агента, который в реальном времени поможет реализовать ваш первый паттерн Intelligent Oracle. Инфраструктура уже работает. Браузер открыт. Не хватает только одного: того, что вы решите создать дальше.

Создайте своё первое кроссчейн-dApp на Intelligent Contracts. Не пропустите нашу Builders Program на points.genlayer.foundation.

Читайте также

Разработчикам

Пишем код в GenLayer Studio

GenLayer выпустил Studio, обновлённое браузерное приложение для разработки Intelligent Contracts. SDK на Python и среда исполнения GenVM позволяют собирать в Studio прототипы контрактов с функциями на базе ИИ и встроенным доступом к интернету. Studio отлично подходит для таких сценариев, как рынки предсказаний и параметрическое страхование, поддерживает тестирование и отладку и готовит разработчиков к тестнету и мейннету GenLayer.

Toni Lukic3 мин чтения

Разработчикам

На английском

How Can I Set Up the GenLayer Simulator?

The GenLayer Simulator allows developers to build and test Intelligent Contracts in a safe environment before launching on the real blockchain. By installing the GenLayer SDK, connecting to the Simulator, and using familiar coding languages like Python, developers can experiment freely, refine their contracts, and seamlessly transition them to the testnet.

Toni Lukic2 мин чтения

Стройте будущее агентной коммерции.

Децентрализованный ИИ-консенсус, с помощью которого ИИ-агенты решают споры и вопросы по контрактам с машинной скоростью.

Открыть Portal