Главная → Проверяемость
Как убедиться, что итоги настоящие
Любое электронное голосование упирается в один вопрос: почему счёту можно верить. Обычный ответ — «сервер надёжный и мы порядочные». Здесь ответ другой: результат перепроверяется посторонним, не доверяя ни узлу, ни организатору, ни нам.
Откуда берётся доказательство
Узел ведёт журнал: каждое значимое действие — выдача допуска, поданный голос, вскрытие конверта, постановка вопроса, правка повестки, приём лицензии — ложится в него отдельной записью. Записи связаны между собой отпечатками так, что изъять или подменить любую из них задним числом нельзя: пересчёт отпечатков перестанет сходиться. Голова журнала — отпечаток всего собрания записей — регулярно подписывается ключом узла и публикуется.
Отсюда и берётся проверка. Она не спрашивает узел «правильно ли ты посчитал»; она берёт журнал целиком и считает итог заново, на устройстве проверяющего.
Три уровня проверки
Участник проверяет свой голос
По тайному вопросу участник, проголосовав, получает отпечаток — строку, которая не выдаёт ни имени, ни выбранной стороны. Отпечаток остаётся на экране, сохраняется в файле допуска вместе с днём и номером вопроса и вставляется в поле на странице итогов: узел показывает запись журнала, в которой этот голос учтён, и сверяет её с раскрытием после вскрытия конвертов. Подменить сторону при вскрытии невозможно — отпечаток перестанет сходиться.
По поимённому вопросу отпечаток не нужен: голос записан под номером участника, виден в списке проголосовавших и назван в протоколе вместе с именем.
Любой читатель проверяет итог целиком
На странице итогов есть кнопка проверки. Она скачивает журнал и считает всё в браузере читателя — узел в вычислениях не участвует. Проверяется:
- целостность журнала: пересчитанный отпечаток совпадает с заверенным подписью узла;
- подлинность журнала: подпись проверена открытым ключом узла;
- правило «один участник — один голос по вопросу»: повторов нет;
- привязка голосов к объявленной повестке: формулировка каждого вопроса совпадает с записью журнала, подмена вопроса исключена;
- тайна до конца: голоса хранились закрытыми и вскрыты по завершении, расхождений с поданным нет;
- итоги: пересчитаны по журналу, расхождений с объявленными нет.
Результат оформляется заключением с местом для подписи проверившего: его печатают и подшивают к протоколу. В заключении приведены и данные для сверки — число записей, отпечаток журнала, ключ подписи, — чтобы другой человек повторил проверку и получил те же значения.
Технический специалист проверяет отдельной программой
Тот же пересчёт выполняет программа-аудитор, работающая отдельно от узла: она скачивает журнал по сети, проверяет подпись головы, перепроверяет право участия по открытому ключу издателя допусков, ищет двойные голоса, сверяет раскрытия с отпечатками, проверяет, что допуски выдавались только в дни с объявленными вопросами, и пересчитывает итоги. Вывод — перечень проверок и вердикт: расхождения либо их отсутствие.
Проверяющая часть исходного кода открыта: журнал, работа с допусками, крипто-проверка, сам аудитор и код проверки на странице итогов. Их можно собрать самостоятельно и убедиться, что проверяется именно то, что заявлено, — не полагаясь на наше слово и не получая доступа к рабочей части узла.
Чего проверка не доказывает
Честный ответ важнее красивого. Проверка журнала показывает, что объявленный итог соответствует поданным голосам и что тайна не нарушалась. Она не отвечает за то, что находится вне узла.
- Состав участников определяет организация. Если в список внесли лишнего человека или забыли члена совета, журнал это покажет как правильный голос — правильность самого списка проверяет организация, и список виден в итогах.
- Код приглашения можно отдать другому. Узел удостоверяет, что голос подан обладателем допуска, а не то, что за телефоном сидел именно член совета; так же обстоит дело и с бумажным бюллетенем, отданным соседу.
- Проверка не заменяет процедуру заседания: аудиовидеозапись, кворум присутствия, полномочия председателя и порядок обсуждения остаются за регламентом организации.
- Узел может отказать в работе — сломаться или быть выключенным. Он не может незаметно изменить результат, но доступность обеспечивает тот, у кого он стоит.
Попробовать проверку
На демонстрационном узле уже прошло заседание: два закрытых вопроса, протокол и журнал. Откройте страницу итогов, нажмите кнопку проверки журнала и посмотрите заключение — это тот же документ, который получит проверяющий в вашей организации.