> ## Documentation Index
> Fetch the complete documentation index at: https://veriqa.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Честное голосование на любом сайте

> Голос, подтверждённый в мессенджере голосующего, и итог, который можно проверить: что для этого уже есть в продукте, чего в направлении пока нет и где проходит его граница.

Онлайн-голосования — «приз зрительских симпатий», конкурс, премия — слишком часто решает тот, кто
купил голоса. Капчу платный сервис решает за доли цента, почтовый адрес не стоит ничего,
аккаунт в соцсети — несколько центов. Организатору нечем ответить на обвинение, кроме обещания.

Направление — виджет голосования, который встраивается на любой сайт. Каждый голос — это
подтверждение Veriqa в мессенджере голосующего: одно нажатие, без регистрации, пароля и ввода
кода, — а итог сопровождается подписанной квитанцией, которую могут проверить и сам голосующий, и
третья сторона. Одной фразой: голосование, итог которого можно предъявить, а не только пообещать.

## Зачем это нужно

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

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

## Насколько сильна защита

Совершенного антифрода не бывает, и направление не заявляет неуязвимости. Оно заявляет накрутку
**дороже**, чем при распространённых сегодня на сайтах способах: капча или подтверждение по почте
обходятся ферме почти даром, аккаунт в соцсети — в несколько центов, а личность, привязанная к
номеру телефона, — примерно на порядок дороже аккаунта в соцсети.

SMS-верификация опирается на тот же якорь, и против неё защита на паритете. Разница в другом:
сообщения в мессенджере не тарифицируются поштучно, а голосующий не переписывает код. Тот же
расчёт, что и в [«Замене SMS-кодов»](/docs/ru/scenarios/sms-replacement): телефонный якорь по цене
мессенджера везде, где у аудитории он есть.

## На чём это стоит

Голос — не отдельный продукт, а подтверждение действия с данными: какой опрос и какой выбор. Такая
транзакция уже есть:

1. **Серверное подтверждение.** Сервер сайта вызывает `POST /api/transaction/confirmation` с
   объявленным типом действия (`action_type`) и получает deep link канала и QR-код для
   голосующего. Исход забирается запросом `GET /api/transaction/{id}/result` — `confirmed`,
   `declined`, `expired` или `failed`, — и ответ не раскрывает, кто подтвердил.
2. **Точный предмет в сообщении.** Опрос и выбор едут типизированными слотами (`slot_values`) по
   схеме типа действия, и голосующий видит в чате, за что голосует, с кнопками «Подтвердить» и
   «Отклонить».
3. **Номер телефона как ключ.** В WhatsApp учётная запись — это номер телефона, и канал отдаёт
   `phone_number`. Telegram передаёт идентификатор аккаунта, а не номер — см.
   [каталог каналов](/docs/ru/guides/supported-channels).
4. **Журнал аудита.** Журнал только дописывается; развёртывание может явно включить запись
   параметров подтверждённой операции, а идентификаторы пользователей попадают в него только в
   маскированном виде.

## Чего сегодня нет

* **«Один человек — один голос».** Продукт подтверждает действие, но голоса не считает и не
  дедуплицирует их в границах опроса.
* **Ключа, который не хранит номер.** Для дедупликации нужен телефон, но в записи должен лежать
  необратимый хеш с секретом, свой для каждого опроса, а не сам номер, — подход из статьи
  [«Устойчивость к утечке персональных данных»](/docs/ru/research/leak-resilience). В Telegram номер
  доступен, только если пользователь явно им поделится.
* **Подписанной квитанции и проверяемого итога.** Голосующему нужна квитанция, а опросу —
  публикуемая сводка, по которой голосующий проверяет, что его голос включён, а третья сторона —
  что итог сходится с реестром. Сообщение, которое Veriqa отправляет после подтверждения, — текст
  для пользователя, а не заверение, и журнал аудита не защищён от подмены записей.
* **Уровня якоря как свойства опроса.** Не плашка «защищено», а «собрано на якоре стоимостью
  примерно столько-то за личность» — вместе с проверками вокруг ключа: виртуальные диапазоны
  номеров, всплески голосов из одной сети, повторяющиеся паттерны.
* **Виджета и сервиса за ним.** Виджет на произвольном сайте означает, что голосование хостит
  Veriqa, а не интегратор: разрешённые источники (origin), ограничение частоты запросов,
  политика против злоупотреблений.
* **Email** для этой транзакции не подходит: адрес ничего не стоит, поэтому голос, подтверждённый
  по почте, ни к чему не привязан.

Платформа голосований или конкурсов, которая принимает внешний OpenID Connect провайдер, может
подключить Veriqa способом входа уже сегодня, как любой другой OIDC-клиент, — как устроено такое
подключение, см. [«SaaS-конструкторы»](/docs/ru/integrations/saas-builders). Пускает ли платформа
публичную аудиторию через внешний провайдер — вопрос самой платформы. Голоса в этом случае
считает она, поэтому таким путём доступны якорь и подтверждение одним нажатием, а квитанция и
проверяемый итог — нет.

## Где проходит граница

<Warning>
  Подтверждённый голос **атрибутируем**: он связан с подтверждением голосующего. Это подходит для
  зрительских симпатий, конкурса или премии и не подходит для выборов и любых решений с правовыми
  последствиями, где важна тайна голосования.
</Warning>

* **Голоса, купленные у живых людей, здесь не останавливает ничто.** Телефонный якорь поднимает
  цену голоса до стоимости времени человека — и на этом останавливается.
* **Квитанция сдвигает доверие, но не отменяет его.** Она доказывает, что сайт не изменил итог, и
  не доказывает, что Veriqa не выпустила фиктивных личностей.
* **Охват.** Там, где заметная часть аудитории не пользуется ни одним из поддерживаемых
  мессенджеров, — например, в США, где единого доминирующего мессенджера нет, — виджет не может
  быть единственным способом проголосовать, а любой запасной путь без телефонного якоря опускает
  гарантию до своего уровня.
* **Квитанция — это заверение подсчёта**, а не электронная подпись в юридическом смысле.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.