Skip to content

zk-Attested Ad View (Просмотр рекламы с zk-аттестацией)

Показы рекламы финансируют Prize Pool (призовой фонд). Поэтому протокол должен доказывать, что показы рекламы действительно состоялись, а не просто были заявлены клиентом.

Наивный сценарий отказа

Клиентское утверждение «реклама просмотрена» тривиально подделывается. Пользователь может воспроизводить событие «да, я посмотрел» произвольное количество раз. Без верификации система выплачивает средства из Prize Pool (призового фонда) при отсутствии реального рекламного дохода.

AdMob SSV как источник истины

Серверная верификация Google AdMob (AdMob SSV) является источником истины: когда реклама завершается, сервер AdMob отправляет подписанный callback на настроенную конечную точку, включая идентификатор рекламы, идентификатор пользователя, временную метку и метаданные дохода от показа. Callback подписывается AdMob с использованием открытого ключа, публикуемого Google.

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

Проблема конфиденциальности

Наивное on-chain урегулирование SSV публиковало бы историю просмотров рекламы каждого пользователя. Это неприемлемо, поскольку:

  • Раскрывает паттерны взаимодействия с рекламой идентифицируемых пользователей.
  • Раскрывает метаданные монетизации (eCPM, рекламодатель, география).
  • Коррелирует с идентичностью пользователя способами, нарушающими конфиденциальность и потенциально нарушающими Условия использования AdMob.

Конструкция zk-SNARK

CashPop оборачивает каждый callback AdMob SSV в zk-SNARK, который доказывает:

«Я обладаю валидным callback AdMob SSV для пользователя i, рекламы j, в момент времени t, подписанным известным открытым ключом AdMob»

без раскрытия содержимого самой подписи SSV.

Формально, доказывающий строит:

πi=Prove(SSVi:VerifypkAdMob(SSVi,ad_id,useri,t)=1)

On-chain верификатор принимает π_i как доказательство просмотра рекламы. Сама подпись SSV уничтожается после генерации доказательства.

Реализация

  • Доказывающий: SP1 zkVM (Succinct), генерирующий доказательства Groth16, обернутые в Plonky3.
  • Верификатор: смарт-контракт TON, реализующий верификацию Groth16 на BN254.
  • Размер доказательства: ~200 байт на один просмотр рекламы.
  • Стоимость верификации: ~0,001 TON за одно доказательство.

В масштабе просмотры рекламы агрегируются перед урегулированием. Пакет из N просмотров генерирует одно агрегированное доказательство (рекурсивная композиция), снижая стоимость верификации на один просмотр до ~$0,00001.

Статус Phase 2 (Фаза 2)

Конвейер zk-SNARK запланирован на Phase 2 (Q4 2026). До этого момента урегулирование просмотров рекламы использует федеративную мультиподпись: callbacks AdMob SSV принимаются тремя независимыми операторами, каждый из которых независимо подтверждает факт перед начислением POP (баллов). Это обеспечивает византийскую отказоустойчивость в рамках небольшого набора операторов, пока конвейер zk достигает зрелости.

Почему это важно

Рынки рекламного мошенничества (клик-фрод, фрод показов, фрод атрибуции) обходятся рекламной индустрии примерно в $80 млрд/год (Juniper Research, 2026). Структурная целостность CashPop основана на невозможности искусственного завышения числа просмотров рекламы. Конвейер zk-аттестации ставит протокол в сильнейшую известную позицию с точки зрения целостности: криптографическую, а не основанную на политиках.

Built on TON.