Для всех / Цены и реальные активы

Нативный оракул

Большинство сетей считают цены чем-то, что приложения запрашивают снаружи. Pickle публикует их в протоколе: цена AAPL или золота приходит как часть производства блока, по каноническому адресу, с учётом часов работы рынков.

Что это

Приложениям в сети часто нужно знать, сколько что-то стоит прямо сейчас: цена ETH, золота, акции. Обычно каждому приложению приходится идти и запрашивать это откуда-то и платить за это. На Pickle сама сеть записывает цены в каждый блок, в одном известном месте, так что каждое приложение читает одно и то же число в один и тот же момент. Подвох в том, что тот же компьютер, который управляет сетью, и записывает цены, так что вы доверяете ему в обоих отношениях.

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

Генезис предразвёртывает реестр цен и адаптер по каноническим адресам. Одна помеченная системная транзакция на блок записывает пакет с восемью знаками после запятой. Поверхность чтения - пакетный метод и метод по каждому фиду через JSON-RPC, плюс HTTP-эндпоинт по каждому фиду. Отдельный агрегирующий сервис, не держащий ключа подписи, собирает пакет; секвенсер опрашивает его через внутренний интерфейс, получая пакет, аутентифицированный общим секретом, публикует во время производства блока, а сервис считывает собственный результат обратно из сети. Это разделение означает, что компрометация ценового сервиса сама по себе не даёт никому ничего подписать.

Что он покрывает

КлассКоличество
Акции9 фидовAAPL, MSFT, NVDA, AMZN, GOOGL, META, TSLA, SPY, JPM
Валюты5 фидовEUR/USD, GBP/USD, USD/JPY, USD/CHF, USD/CNH
Энергия3 фидаBrent, природный газ и широкий нефтяной индекс
Металлы2 фидазолото, серебро
Крипто14 фидовETH, BTC, SOL, XRP, DOGE, LINK, ADA, XLM, BCH, TRX, BNB, HYPE, ZEC, XMR

33 фида, из которых 19 - реальные активы. Набор реальных активов и есть суть: крипто-оракул - решённая задача, а сеть, публикующая цену акции или золота с учётом часов открытия рынка, - нет.

Как формируется цена

Две политики, потому что два класса активов отказывают по-разному.

  • Крипто агрегируется с пяти публичных спотовых площадок: Coinbase, Kraken, Bitstamp, Gemini и Bitfinex. Свежесть по каждой площадке оценивается по монотонным часам приёма, а не по меткам времени бирж, выбросы отбрасываются, ответ - медиана оставшегося, и каждый фид объявляет минимальное число источников, ниже которого он не публикует ничего, вместо того чтобы публиковать на тонкой основе.
  • Всё остальное, акции, валюты, энергия и металлы, приходит от аутентифицированного стороннего агрегатора, с проверками целостности каждого обновления и закреплённой экспонентой, чтобы изменение масштаба не могло пройти незамеченным.

Часы работы рынков

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

Граница доверия

Публикатор - секвенсер

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

Зависимость от третьей стороны - несущая. Без действительных учётных данных для вышестоящего агрегатора каждый фид, полученный от него, сообщает о себе как неавторизованный. Это 20 из 33 фидов: весь набор реальных активов плюс один крипто-фид, у которого нет собственной публичной площадки. Остальные 13 крипто-фидов, получаемые с публичных площадок, продолжают работать. Что построено на этих ценах - на странице слоя RWA.