Основу этого сценария вы собираете сами из механизмов, которые в Veriqa уже есть; чего пока нет,
перечислено ниже. Мы работаем над тем, чтобы упростить его реализацию в продукте.
Зачем это нужно
- Голосующий голосует без учётной записи, а квитанция позволяет ему убедиться, что его голос вошёл в итог.
- Номинант получает победу, которую можно доказать. Победа, которую никто не может проверить, мало стоит, как только кто-то скажет, что её купили.
- Организатор переходит от «поверьте нам» к «проверьте сами» и не обязан хранить номера телефонов ради борьбы с накрутками.
- Спонсор получает итог, который можно проверить аудитом, и охват, измеренный людьми, а не кликами.
- Разработчик сайта встраивает виджет вместо собственной верификации, хранения номеров и своего антифрода.
Насколько сильна защита
Совершенного антифрода не бывает, и сценарий не претендует на неуязвимость. Он делает накрутку дороже, чем при распространённых сегодня на сайтах способах: CAPTCHA или подтверждение по почте обходятся ферме почти даром, аккаунт в соцсети — дёшево, а личность, привязанная к номеру телефона, обходится дороже аккаунта в соцсети. SMS-верификация опирается на тот же якорь, и защита здесь та же, что у неё. Разница в другом: голосующий не переписывает код, а сообщения не тарифицируются поштучно: в WhatsApp Veriqa отвечает на сообщение пользователя без шаблона, а такие ответы по текущим тарифам Meta бесплатны. Тот же расчёт, что и в «Замене SMS-кодов»: телефонный якорь по цене мессенджера везде, где у аудитории он есть.Из чего собирается сценарий
Голос — не отдельный продукт, а подтверждение действия с данными: какой опрос и какой выбор. Такая транзакция уже есть:- Серверное подтверждение. Сервер сайта вызывает
POST /api/transaction/confirmationс объявленным типом действия (action_type) и получает deep link канала и QR-код для голосующего. Исход забирается запросомGET /api/transaction/{id}/result—confirmed,declined,expiredилиfailed, — и ответ не раскрывает, кто подтвердил. - Точный предмет в сообщении. Опрос и выбор передаются типизированными слотами (
slot_values) по схеме типа действия, и голосующий видит в чате, за что голосует, с кнопками «Подтвердить» и «Отклонить». - Номер телефона как ключ. WhatsApp отдаёт
phone_number— сразу с сообщением или шагом телефона, когда пользователь скрыл номер за username. Telegram передаёт идентификатор аккаунта, а не номер — см. каталог каналов. - Журнал аудита. Журнал только дописывается; развёртывание может явно включить запись параметров подтверждённой операции, а идентификаторы пользователей попадают в него только в маскированном виде.
Чего сегодня нет
- «Один человек — один голос». Продукт подтверждает действие, но голоса не считает и не дедуплицирует их в границах опроса.
- Ключа, который не хранит номер. Для дедупликации нужен телефон, но в записи должен лежать необратимый хеш с секретом, свой для каждого опроса, а не сам номер, — подход из статьи «Устойчивость к утечке персональных данных». В Telegram номер доступен, только если пользователь явно им поделится.
- Подписанной квитанции и проверяемого итога. Голосующему нужна квитанция, а опросу — публикуемая сводка, по которой голосующий проверяет, что его голос включён, а третья сторона — что итог сходится с реестром. Сообщение, которое Veriqa отправляет после подтверждения, — текст для пользователя, а не заверение, и журнал аудита не защищён от подмены записей.
- Уровня якоря как свойства опроса. Не плашка «защищено», а «собрано на якоре стоимостью примерно столько-то за личность» — вместе с проверками вокруг ключа: виртуальные диапазоны номеров, всплески голосов из одной сети, повторяющиеся паттерны.
- Виджета и сервиса за ним. Виджет на произвольном сайте означает, что голосование хостит Veriqa, а не интегратор: разрешённые источники (origin), ограничение частоты запросов, политика против злоупотреблений.
- Email для этой транзакции не подходит: адрес ничего не стоит, поэтому голос, подтверждённый по почте, ни к чему не привязан.
Ограничения
- Голоса, купленные у живых людей, здесь не останавливает ничто. Телефонный якорь поднимает цену голоса до стоимости времени человека — и на этом останавливается.
- Квитанция сдвигает доверие, но не отменяет его. Она доказывает, что сайт не изменил итог, и не доказывает, что Veriqa не выпустила фиктивных личностей.
- Охват. Там, где заметная часть аудитории не пользуется ни одним из поддерживаемых мессенджеров, — например, в США, где единого доминирующего мессенджера нет, — виджет не может быть единственным способом проголосовать, а любой запасной путь без телефонного якоря опускает гарантию до своего уровня.
- Квитанция — это заверение подсчёта, а не электронная подпись в юридическом смысле.