Skip to main content
Онлайн-голосования — «приз зрительских симпатий», конкурс, премия — слишком часто решает тот, кто купил голоса. Капчу платный сервис решает за доли цента, почтовый адрес не стоит ничего, аккаунт в соцсети — несколько центов. Организатору нечем ответить на обвинение, кроме обещания. Направление — виджет голосования, который встраивается на любой сайт. Каждый голос — это подтверждение Veriqa в мессенджере голосующего: одно нажатие, без регистрации, пароля и ввода кода, — а итог сопровождается подписанной квитанцией, которую могут проверить и сам голосующий, и третья сторона. Одной фразой: голосование, итог которого можно предъявить, а не только пообещать.

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

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

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

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

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

Голос — не отдельный продукт, а подтверждение действия с данными: какой опрос и какой выбор. Такая транзакция уже есть:
  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 передаёт идентификатор аккаунта, а не номер — см. каталог каналов.
  4. Журнал аудита. Журнал только дописывается; развёртывание может явно включить запись параметров подтверждённой операции, а идентификаторы пользователей попадают в него только в маскированном виде.

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

  • «Один человек — один голос». Продукт подтверждает действие, но голоса не считает и не дедуплицирует их в границах опроса.
  • Ключа, который не хранит номер. Для дедупликации нужен телефон, но в записи должен лежать необратимый хеш с секретом, свой для каждого опроса, а не сам номер, — подход из статьи «Устойчивость к утечке персональных данных». В Telegram номер доступен, только если пользователь явно им поделится.
  • Подписанной квитанции и проверяемого итога. Голосующему нужна квитанция, а опросу — публикуемая сводка, по которой голосующий проверяет, что его голос включён, а третья сторона — что итог сходится с реестром. Сообщение, которое Veriqa отправляет после подтверждения, — текст для пользователя, а не заверение, и журнал аудита не защищён от подмены записей.
  • Уровня якоря как свойства опроса. Не плашка «защищено», а «собрано на якоре стоимостью примерно столько-то за личность» — вместе с проверками вокруг ключа: виртуальные диапазоны номеров, всплески голосов из одной сети, повторяющиеся паттерны.
  • Виджета и сервиса за ним. Виджет на произвольном сайте означает, что голосование хостит Veriqa, а не интегратор: разрешённые источники (origin), ограничение частоты запросов, политика против злоупотреблений.
  • Email для этой транзакции не подходит: адрес ничего не стоит, поэтому голос, подтверждённый по почте, ни к чему не привязан.
Платформа голосований или конкурсов, которая принимает внешний OpenID Connect провайдер, может подключить Veriqa способом входа уже сегодня, как любой другой OIDC-клиент, — как устроено такое подключение, см. «SaaS-конструкторы». Пускает ли платформа публичную аудиторию через внешний провайдер — вопрос самой платформы. Голоса в этом случае считает она, поэтому таким путём доступны якорь и подтверждение одним нажатием, а квитанция и проверяемый итог — нет.

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

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