Перейти к основному содержимому

Блокчейн и криптография

Зачем нужна криптография​

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

GPG-ключи​

Генерация ключей​

Каждый гражданин генерирует пару криптографических ключей GPG:

  • Приватный (закрытый) ключ — хранится только у гражданина, никогда и никому не передаётся
  • Публичный (открытый) ключ — передаётся в выборный орган и публикуется в открытой сети

Регистрация​

Процесс регистрации в системе голосования:

  1. Гражданин генерирует пару GPG-ключей на своём устройстве
  2. Гражданин лично является в выборный орган для идентификации
  3. Выборный орган верифицирует личность гражданина (паспорт, биометрия)
  4. Публичный ключ гражданина регистрируется в системе и привязывается к его избирательной записи
  5. Гражданин получает подтверждение регистрации

Перевыпуск ключей​

Гражданин имеет право в любой момент бесплатно перевыпустить свои ключи:

  • При подозрении на компрометацию приватного ключа
  • При утере доступа к приватному ключу
  • По любой другой причине
  • Процедура аналогична первичной регистрации: личная явка и идентификация
  • Старый ключ аннулируется, все предыдущие голоса, подписанные им, остаются в силе до тех пор, пока гражданин не примет иного решения
  • Гражданин может в любой момент изменить свои предыдущие голоса с помощью нового ключа — система связывает старый и новый ключ через процедуру перевыпуска, обеспечивая преемственность
  • Новые голоса подписываются новым ключом

Процесс голосования​

Формирование голоса​

Когда гражданин голосует, происходит следующее:

  1. Формируется структурированное сообщение с данными голоса:
    • Идентификатор голосования (вопрос / выборы)
    • Выбранный вариант ответа
    • Временная метка
    • Публичный ключ голосующего
  2. Сообщение подписывается приватным ключом гражданина
  3. Подписанное сообщение публикуется в открытую сеть голосования

Публикация в открытую сеть​

Голос публикуется в блокчейн — распределённую сеть, в которой:

  • Записи неизменяемы — опубликованный голос нельзя удалить или изменить задним числом
  • Сеть распределена — нет единой точки отказа или контроля
  • Данные открыты — каждый может прочитать и проверить любую запись
  • Все транзакции упорядочены по времени

Изменение голоса​

Когда гражданин меняет свой голос:

  1. Формируется новое сообщение с обновлённым выбором
  2. Новое сообщение подписывается приватным ключом
  3. Новая запись публикуется в блокчейн
  4. Система учитывает последнюю запись от данного публичного ключа для данного голосования

Верификация​

Проверка своего голоса​

Каждый гражданин имеет право убедиться, что его голос:

  • Зафиксирован в блокчейне
  • Указан верно — соответствует его выбору
  • Учтён в итоговом подсчёте

Для проверки гражданин:

  1. Находит в блокчейне запись, подписанную его публичным ключом
  2. Проверяет подпись с помощью своего ключа
  3. Убеждается, что содержание записи соответствует его выбору

Делегирование права проверки​

Гражданин может делегировать право проверки третьим лицам:

  • Общественным наблюдателям
  • Независимым аудиторам
  • Доверенным лицам

Важно: делегирование права проверки не требует передачи приватного ключа. Гражданин может:

  • Предоставить свой публичный ключ и указать, какой голос ожидается
  • Выдать подписанное разрешение на аудит своих записей
  • Предоставить доказательство без раскрытия (zero-knowledge proof) при необходимости

Общественный аудит​

Поскольку все голоса публикуются в открытой сети:

  • Любой может подсчитать общие итоги голосования
  • Любой может проверить, что все подписи валидны
  • Любой может убедиться в отсутствии дублей (один ключ — один голос)
  • Весь процесс воспроизводим — любой наблюдатель приходит к тем же итогам

Безопасность​

Защита от атак​

УгрозаЗащита
Подделка голосаКриптографическая подпись — невозможна без приватного ключа
Удаление голосаБлокчейн — записи неизменяемы
Двойное голосованиеОдин ключ — один голос, учитывается последняя запись
Массовая фальсификацияРаспределённая сеть — нет единой точки контроля
Компрометация ключаБесплатный перевыпуск в любой момент

Защита от атаки 51%​

В отличие от финансовых блокчейнов (Bitcoin, Ethereum), где атака 51% позволяет переписать историю транзакций, система голосования обладает уникальными защитными свойствами:

  1. Самообнаружение атаки — каждый гражданин может проверить свой голос. Если атакующий изменит записи, это будет обнаружено массово и быстро — миллионы людей являются независимыми аудиторами своих собственных голосов.

  2. Permissioned/гибридная сеть — узлы сети управляются государственными органами, университетами, НКО и гражданами. В отличие от полностью открытых сетей вроде Bitcoin, к операторам узлов предъявляются требования, что значительно затрудняет захват 51% вычислительной мощности.

  3. Множественные якоря (anchoring) — хеши блоков регулярно публикуются в нескольких независимых публичных блокчейнах (Bitcoin, Ethereum и др.), создавая неизменяемые контрольные точки. Даже при захвате основной сети историю невозможно подделать без одновременной компрометации всех якорных цепочек.

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

  5. Инерционность как дополнительная защита — даже если атакующий кратковременно контролирует сеть, накопительная система избирательных очков (ИО) означает, что одномоментное искажение данных не может мгновенно повлиять на итоговый результат. За время, необходимое для накопления ИО, атака будет обнаружена и нейтрализована.

Ключевое отличие от финансовых блокчейнов

В Bitcoin жертва атаки 51% может не знать, что её транзакция отменена. В системе голосования каждый гражданин лично проверяет свой голос — атака становится самообнаруживаемой по своей природе.

Конфиденциальность​

Система обеспечивает баланс между прозрачностью и конфиденциальностью:

  • Публичен: факт голосования, итоги подсчёта, валидность подписей
  • Может быть конфиденциальным: связь между публичным ключом и личностью гражданина (зависит от выбранной модели)
  • Всегда конфиденциален: приватный ключ гражданина

Техническая архитектура​

┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Гражданин │────▶│ Подписание │────▶│ Открытая сеть │
│ (приватный │ │ голоса │ │ (блокчейн) │
│ ключ) │ │ GPG │ │ │
└─────────────┘ └──────────────┘ └─────────┬───────┘
│
┌──────────────┐ │
│ Верификация │◀──────────────┘
│ (публичный │
│ ключ) │
└──────────────┘

Далее: Система весов компетенций →