Technical Paper

Наблюдение цены (нормативное)

5.6 Наблюдение цены (нормативное)

Публичная запись цены живёт в price_epoch_observations. Одна строка — одно наблюдение без привязки к личности, зафиксированное как лист в Merkle-дереве суточной эпохи (см. 5.9). Поля хранятся уже нормализованными, ровно в том виде, в каком они входят в прообраз листа, так что хэш листа и опубликованная строка манифеста воспроизводимы байт в байт.

text
// строка price_epoch_observations (размеченный простой текст; публикуется как строка манифеста с разделителем |)
epoch_number:         214
leaf_index:           1082
leaf_hash:            0x9a01...            // keccak256 прообраза наблюдения
canonical_product_id: 3f6a...-...          // id каталога; название/бренд/упаковка идут вместе с ним
category_path:        food.dairy.milk
country:              TR
city:                 Istanbul
merchant:             Migros               // строка бренда — только бренд + город + страна
obs_date:             2026-05-17           // только дата, намеренно без времени суток
unit_price:           23.50                // каноническая десятичная строка, 2 знака
currency:             TRY
unit_type:            piece
pack_size:            1 L

Проектные решения, которые несёт эта форма:

  • Только дата, без времени суток. Публикация метки времени рядом с продавцом и датой позволила бы любому заново сгруппировать строки одной покупательской корзины, что восстанавливает профиль покупок даже без имени. Отбрасывание времени — инвариант приватности реестра, а не пробел в данных.
  • Продавец как бренд + город + страна. Наблюдение называет строку бренда в гранулярности города; идентичность уровня магазина и адреса никогда не публикуется.
  • Отсутствие связи с пользователем. Строка не несёт имени пользователя, кошелька, id чека или построчной оценки доверия. Контроль качества происходит выше по потоку: в сборку эпохи входят только строки верифицированных чеков, поэтому публикуемому набору не нужна оценка на наблюдение.
  • Идентичность продукта самоописываемая. Прообраз листа включает название продукта, бренд и размер упаковки, так что третья сторона может использовать запись без сервиса поиска.

Эта запись обеспечивает:

  1. Ценовую память пользователя — «вы заплатили 23,50 TL за Pınar süt в Migros; недавняя медиана — 22,10 TL».
  2. Открытую историю цен — любой может восстановить набор данных из опубликованных манифестов и запрашивать ценовые ряды по бренду + городу + стране.
  3. Агрегированные индексы — анонимизированный агрегированный слой (5.8) вычисляется поверх тех же наблюдений.