Воскресенье - 2018-12-16 - 04:01

Организация децентрализованного голосования на Blockchain'e

329
5.0
Голосование на Blockchain

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

Информационные отношения в Интернете используют такую ​​же модель, которой люди пользуются в повседневной жизни: при взаимодействии через Интернет пользователи прибегают к услугам посредника, которому можно доверять.

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

На сегодняшний день для проведения такого рода голосования используется слепая электронная цифровая подпись (ЭЦП). Это такая разновидность ЭЦП, при которой подписывающая сторона не может знать содержание документа, но подписывает его. Голосование на основе слепой электронной подписи уже организовывалось на разных уровнях выборов. Для проведения тайного цифрового голосования существуют несколько алгоритмов: протокол двух агентств, протокол Фудзиока-Окамото-Охта, протокол He-Su и другие.

Однако каждый из них имеет один или несколько из следующих недостатков:

  • возможность фальсификации голосования со стороны органа, который его проводит;
  • возможность подачи голосов от имени тех избирателей, которые не участвовали в голосовании;
  • большая сложность и, как результат, уязвимость к DoS-атаке.

И ключевым недостатком является зависимость от посредника, который проводит голосование.

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

Голосование по технологии Блокчеин

Популярность технологии Blockchain в 2009 году принесла криптовалюта BitCoin, которая была построена на ее основе.

Blockchain представляет собой набор блоков, структурно объединенных в цепь. Каждый блок содержит набор транзакций. В совокупности все блоки составляют последовательность, которая сохраняет информацию обо всех проведенных в системе транзакций. Пользователи блокчейна образуют сеть компьютеров, на каждом из которых хранится копия цепи блоков. Благодаря этому выключить такую ​​систему невозможно, пока работает хотя бы один узел сети. Все компьютеры сети равноправные и не контролируются центральным органом.

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

Дерево Меркле

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

Самым ярким примером использования технологии Blockсhain является криптовалюта BitCoin. Однако это не единственная сфера, где ее можно эффективно задействовать. Примером эффективного использования технологии BlockChain может стать проведение децентрализованного, прозрачного голосования.

Основой такого голосования может быть блокчейн, подобный блокчейну BitCoin, но вместо транзакций с криптовалютой будут происходить транзакции с голосами. Организатор голосования выдает каждому избирателю пару ключей: секретный и публичный. Соответствие между парой ключей и избиратели не устанавливается, а только утверждается факт выдачи. С помощью секретного ключа избиратель получает доступ к аккаунту, на счету которого хранится один голос и есть неделимой единицей при голосовании. При выборе одного из предложенных в голосовании ответов, проводится транзакция перевода голоса. По принципу проведения такая схема похожа на традиционные выборы, но с одним ключевым отличием - результаты голосования хранятся не в бюллетенях, а в одной цепи блоков. Причем сохраняется такая ​​цепь не в центральном хранилище, а распределяется на компьютеры всех избирателей.

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

Голосование при помощи технологии Blockchain

Особенностью цепи блоков BitCoin является то, что в нем нет понятий счета и баланса. Все средства хранятся в объектах, которые называются «выходами транзакций». Для того, чтобы узнать о количестве средств на каком-то счете необходимо пробежать вдоль всей цепи блоков и подсчитать баланс с помощью информации в «выходах транзакций». С увеличением количества проведенных транзакций, увеличивается объем дискового пространства, необходимого для хранения цепи блоков. Хранение блокчейна в полном объеме для обычного избирателя является избыточным. Для решения этой проблемы были созданы клиенты, которые хранят облегченную версию блокчейна: в ней содержатся только блоки и транзакции, касающиеся отдельного пользователя, а следовательно он может получить информацию о состоянии только своего счета, так как другие его не интересуют.

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

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

  • проверить, что его голос переведен корректно (то есть кандидату, за которого он голосовал);
  • пересмотреть всю цепь блоков и подсчитать результаты голосования.

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



Читайте также

Комментарии (0)

avatar