Для всех / Цены и реальные активы
Нативный оракул
Большинство сетей считают цены чем-то, что приложения запрашивают снаружи. 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.