Чаще всего меня спрашивают: «А что если хакеры взломают? А что если ты сам руками нафальсифицируешь, а нам наврёшь что так и было?»

Может показаться, что первостепенная задача — это сделать систему максимально защищённой от накруток и манипуляций. Но это не так.
Первостепенная задача — это убедить пользователей, что система действительно защищена.
Это в корне меняет дело.

Написать защищённое приложение сегодня не составит никакого труда. Львиная доля технологий разработки ориентирована на защиту. Но большинство приложений — это чёрные ящики. Я принимаю решение доверять им или не доверять, но я не могу проверить честность их работы.

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

Поэтому при разработке архитектуры приложения, речь в первую очередь идёт о прозрачности. Об открытости для проверок со стороны третьих лиц.

Примером архитектуры которая структурно защищена от манипуляций и при этом прозрачна для проверок является технология блокчейн.

Децентрализованная база данных означает, что даже у администрации Горизонтали нет возможности в ручном режиме изменять результаты голосования. И ни у кого такой возможности нет. Есть сеть состоящая из большого количества копий одной и той же информации, и что бы изменить эту информацию, нужно взломать очень большое количество устройств в этой сети одновременно и одновременно произвести на них всех идентичную манипуляцию.

В плане прозрачности — в публичном блокчейне все видят всех. Тайны голосования не существует. Любой пользователь может посмотреть как проголосовал любой другой пользователь. Любой пользователь может пересчитать голоса вручную.
Это даёт максимальную прозрачность, но устроит-ли это самих пользователей?
Существуют случаи когда открыто высказать свою точку зрения по какому-то вопросу может стоить человеку карьеры, семьи или даже жизни.

Вопрос о тайне голосования пока остаётся открытым. Если окажется, что пользователи хотят сохранить тайну голосования, тогда результаты придётся шифровать. Это уменьшит прозрачность системы. Математически можно будет доказать, что ведётся честная игра, но рядовой пользователь самостоятельно проверить уже не сможет. Придётся полагаться на мнение экспертов, что в итоге для пользователя сведётся к субъективному и иррациональному «верю — не верю».

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

Окончательное решение по архитектуре приложения пока не принято.