Разработка системы электронного голосования на базе технологии Blockchain

Бакалаврская работа

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

Голосование — основа любой успешной демократии и, поэтому, оно должно быть доступным и безопасным для всех людей. Сегодняшние наиболее распространенные бумажные системы голосования доступные и дешевые, но имеют две основных проблемы. Согласно многим экспертам, такие системы не масштабируемы (поэтому, это приводит к таким основным проблемам, как точность), и они подразумевают “уверенность в процедурной безопасности организаторов, проводящих их правильно и честно” [7].

Нередко в новостях описываются события о взломе той или иной информационной системе, которые позволяют злоумышленникам получить несанкционированный доступ к конфиденциальной информации [13].

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

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

Объект исследования: технология блокчейн.

Предмет исследования: система электронного голосования.

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

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

2. Исследовать существующие платформы blockchain и средства разработки децентрализованных приложения.

3. Разработать децентрализованное приложение, решающее проблемы современных систем голосования.

В первой главе проведен анализ информации: описание предметной области, обзор технологии blockchain, выполнен обзор криптографических протоколов и электронных систем голосования.

4 стр., 1741 слов

Информационные технологии в сфере безопасности жизнедеятельности

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

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

Третья глава содержит разработку децентрализованной системы

голосования.

В заключении формулируются выводы, полученные в процессе выполнения ВКР.

Глава 1 АНАЛИЗ ИНФОРМАЦИИ И ПОСТАНОВКА ЗАДАЧИ

1.1 Бумажное и электронное голосование

Голосование – это способ принятия решений группой людей, в котором наиболее общее мнение выбирается путем подсчета волеизъявлений каждого из избирателей [1].

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

Электронное голосование – процесс принятия решения, путём обычного голосования, с применением специальных электронных средств голосования и технических электронных средств для подсчета голосов и оглашения результата [1].

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

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

Электронное голосование — это новая концепция онлайн-выборов, основанная на криптографии. Система поддерживает полнофункциональное онлайн-голосование на любых устройствах, а результаты опроса будут рассчитываться автоматически и анонимно. По сравнению с традиционным голосованием, электронное голосование – это более экономичная система, более прозрачная и беспристрастная.

Система электронного голосования в основном использует интернетплатформу. Важнейшая проблема для электронного голосования — это риски безопасности, которые могут возникнуть. В целях снижения рисков, за последние десятки лет было предложено множество различных протоколов связанных с конфиденциальностью бюллетеней, индивидуальной проверкой, надежностью, доступностью и т.д. Кроме того, в представленных протоколах реализованы различные технологии, такие как «слепая подпись», «кольцевая подпись», «гомоморфное шифрование», «Mix networks», «доказательство с нулевым разглашением» и т.п [6].

С появлением криптовалюты, шифрование, а, следовательно, и интернет-голосованием стало более совершенным.

Таблица 1 – Сравнение электронного и бумажного голосования

7 стр., 3073 слов

Политические системы западноевропейских стран: Германия, Франция, Италия

... голосовании. Избирательное право предоставляется всем гражданам, достигшим 18 лет. Выборы в бундестаг проводятся по мажоритарно-пропорциональной системе: ... страной федеративного государственного порядка. Федеральные ... система». Рассмотреть основные составляющие политических систем Германии, Италии, Франции. Сделать вывод по каждой политической системе ... ущерб демократическому строю или ликвидировать ...

Бумажное

Электронное голосование

голосование Высокая скорость

  • + обработки бюллетеней Экономия времени, при заполнении — +

бюллетеней Отображение хода голосования в реальном — +

времени Эффективная

  • + масштабируемость

Не смотря на положительные стороны, у электронного голосования, по некоторым оценкам, еще больше рисков фальсификаций и компрометирования результатов, чем у обычного, т.к. система может быть взломана третьими лицами, а подсчет голосов производится на машине, доступ к которой есть у администраторов, а значит, что они тоже могут иметь доступ к результатам и изменять их по своему усмотрению [15, 18, 17, 11].

1.1.1 Первые системы электронного голосования

В течение долгого времени многие исследователя посвящали себя разработке протокола для безопасного и эффективного голосования. Одно из первых положений, связанных с криптографическим протоколом электронного голосования, было опубликовано Дэвидом Чаумом в 1981 году [22].

Он использовал анонимный канал коммутации для шифрования бюллетеня. С развитием криптографии было предложено множество протоколов со своими собственными свойствами. В 1982 году Ричард Де Милло также предложил протокол, который требует, чтобы все избиратели участвовали [26].

Каждая бюллетень зашифровывалась и в конце голоса подсчитывались. В 1985 году Коэн Дж. и Фишер М. предложили похожий криптографический протокол, который может проводить избирательные выборы в форме голосования. Однако, он требовал, чтобы все избиратели голосовали одновременно [24].

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

В 1992 году Фудзиока, Окамото и Охта предложили практическую секретную схему электронного голосования(FOO), она используется для проведения масштабных выборов, которые могут обеспечить конфиденциальность избирателей и справедливость голосования. Эта схема использовала слепую подпись для слепого сообщения, которое избиратель отправлял администратору [28].

После выхода этой основополагающей работы многие разработчики использовали ее для обеспечения электронного голосования в своем программном обеспечении, например, EVOX и SENSUS. В данном случае, такая система тоже имеет свои слабости, она требует, чтобы в процессе голосования участвовали абсолютно все избиратели, и, если кто-то воздерживается от голосования, то в результат можно было вмешаться. Также, система была построена таким образом, что администратор не мог узнать, кто именно вмешался в результат. В 1996 году Хуанг и Лэй предложили голосовать на основе слепой подписи, но также требуют, чтобы все присутствовали на мероприятии, посвященным голосованию.

Через 3 года, М. Окубо, Ф. Миура и М. Абе продвигали схему FOO, используя пороговый протокол шифрования и канал связи Mix-Network, который может поддерживать конфиденциальность избирателя. Избирателям необязательно участвовать в подсчете голосов, и они могут уйти сразу после голосования [37].

С развитием системы электронного голосования появилось множество способов фальсификаций и дискредитации выборов. Можно воздействовать на результаты с помощью угроз избирателю, либо покупать его голос. Чтобы справиться с этой проблемой, были предложены многие новые требования для участия в электронном голосовании, например, такие как «receiptfreeness» («освобождение от квитанций») и «coercion-resistance» («устойчивость к принуждению»).

25 стр., 12455 слов

Глобальная сеть Интернет: протоколы, системы доступа

... сетями. Но в большинстве сетей организован обмен информацией с другими компьютерными сетями по протоколу TCP/IP, эта сеть сама становится частью Интернет. 3. Средства доступа ... в подключении к локальным и глобальным сетям растут с ... телевидения DirectTV и система подключения к Интернету DirectPC, в ... году ARPANET превратилось из экспериментальной в рабочую сеть. Ответственность за администрирование сети ...

Receipt-freeness означает, что после процесса голосования, избиратель не имеет никакой информации, например, в виде квитанции, которая может быть использована в качестве подтверждения того, что он проголосовал тем или иным образом. Термин «receipt-freeness» предложил Джош Бенало в 1994 году [20].

Хотя Бенало использовал гомоморфное шифрование, чтобы реализовать receipt-freeness, Мартин Гирт утверждал, что это не будет работать должным образом, если в выборах будет более одного органа, подсчитывающего голоса [20].

В 1995 году В. Ниэми и А. Ренвалл разработали схему, адоптировав квитанцию о голосовании так, что избиратель не мог доказать за кого или за что он отдал свой голос. В то же время К. Сако и Дж. Килиан предложили первый протокол на основе MixNet, который должен был удовлетворять требованиям receipt-freeness [40].

Но этот протокол основан на предположении, что между избирательным участком и избирателем нет частного канала. Поэтому, этот протокол показал, что он всё-таки не удовлетворяет требованиям receipt-freeness в полной мере. В 2001 году О. Бодрон предложил новую схему, удовлетворяющую этим свойствам, используя криптосистему Пайе и протокол Zero-knowledge proof [30].

В последние годы многие исследователи сосредотачиваются на receiptfreeness и coercion-resistance в сфере электронных голосований. В 2010 году А. Джулс представил новое направление в требованиях к электронным голосованиям. Оно имеет название «Coercion-Resistant Electronic Elections»(«Электронные выборы с сопротивлением к принуждению»).

В 2012 году О. Шпихер и Р. Кениг продвигают схему Джулса с добавлением к ней случайного целого числа f. Предлагаемая схема получит зашифрованное целое число C. Орган подсчета голосов может судить о наличии поддельного бюллетеня путём дешифровки C с помощью f [32].

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

Однако, даже такое голосование, в котором предусмотрено большое количество факторов, в которых нуждается процедура честного голосования, не может сделать его достаточно прозрачным, чтобы избиратели могли доверять системам электронного голосования. [17, 5, 6].

1.1.2 Проведенные масштабные электронные голосования и их критика

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

В 2000 году электронное голосование использовалось в выборах президента США. Хотя этот эксперимент проводился только в некоторых районах штата Флорида, это стало важным событием в развитии электронного голосования [9].

В 2002 году в Соединенном Королевстве была опробована система электронного голосования. Более, чем 18 государственных органов были награждены за создание системы этой системы [35].

В 2004 году выборы в США впервые использовали систему электронного голосования DRE. Индия использует эту систему для парламентских выборов в национальном масштабе [5].

33 стр., 16169 слов

Организации внедрения систем электронного документооборота различными учеными

... информацию об этапах внедрения систем электронного документооборота, об основных вопросах организации внедрения. Также в них находятся рекомендации по внедрению и спецификации по настройке и установке системы. В работе использованы методические рекомендации по внедрению СЭД «Directum» 2 ...

В 2007 году во Франции политическая партия UMP вошла в историю, проведя интернет-голосование. Более, чем 31 000 избирателей проголосовали на выборах президента в UMP в 2007 году. Это было первое массовое электронное голосование в истории [27].

В 2014 году на выборах в Министерство Национального образования во Франции было получено 1 760 000 бюллетеней [33].

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

Несмотря на то, что системы электронных голосований во многом удобнее, эффективнее и экономичнее(Таблица 1) традиционных систем, во многих из этих случаев применения электронного голосования возникали некоторые проблемы и сбои в работе, которые мешали общему процессу выборов [9, 11, 15, 18, 8].

То есть, зачастую, в сбоях таких систем проблемой являлось то, что машина, которая обрабатывает голоса выводилась из строя, что приводило к нарушению процесса голосования, например, целого штата [9].

Кроме того, в настоящее время ведутся споры о том, что электронно е голосование может быть подвержено большим нарушениям, чем при аналоговом, т.к. система может быть взломана третьими лицами, а подсчет голосов производится на машине, доступ к которой имеется у администраторов, а значит, что они тоже могут иметь возможность манипулировать результатами голосования [17, 5, 6].

1.2 Технология blockchain

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

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

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

Технология, известная, как «блокчейн» была впервые представлена Сатоши Накомото в его статье “Bitcoin: A Peer-to-Peer Electronic Cash System”, в которой изложена математическая основа для криптовалюты «Bitcoin» [12].

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

Проблема, которую Накомото разрешил с помощью цепочки блоков, заключалась в установлении доверия к децентрализованной(распределенной) системе. Конкретнее, проблема создания распределенного хранилища временных файлов, в то время, как ни одна из сторон не может вмешиваться в содержание данных или в отметки времени без обнаружения. Стоит обратить внимание на то, что эта проблема ортогональна(параллельна) проблемам аутентификации, целостности и ненарушения, которые решаются с помощью цифровых подписей. Если сторона создает электронную подпись для документа, она устанавливает только проверяемую связь между стороной и документом. Наличие действительной цифровой подписи доказывает, что сторона действительно намерена подписать документ, и что документ не был изменен. Однако цифровая подпись не гарантирует ничего о времени, в которое документ был подписан: отметка времени требует доверия к стороне, которая ее подписала. В случае финансовых операций и других форм юридических договоров время имеет существенное значение, и порядок этих финансовых транзакций должен быть независимо сертифицирован для проведения аудита [12].

7 стр., 3168 слов

Разработка базы данных информационной системы для автоматизации ...

... предприятия. Из анализа предметной области были выбраны следующие виды расчетов для автоматизации движения денежных средств через кассу: расчетные поручения, расчеты по аккредитивам, расчеты по чекам. Для ... формирующие БД. Трансформационная модель должна помочь разработчикам выбрать структуру хранения данных и реализовать систему доступа к ним. 2 Модель СУБД Модель СУБД напрямую транслируется ...

Положительные качества блокчейна и биткоина можно рассмотреть на сделках, связанных с недвижимостью. Владелец может быть определен как сторона, которой последний раз был продан дом, но право собственности может быть проверено только с полного бумажного исследования всех транзакций, связанных с домом, в некотором роде «бумажной дорожкой», которая обычно хранится и проверяется титульными компаниями. Стоит заметить, что система не полностью предотвращает мошеннические транзакции (например, человек, продающий дом, которым он не владеет, или продает одно и то же имущество более чем одной стороне), но мошеннические действия в конечном итоге обнаруживаются, как и реальное право собственности. Та же проверка собственности возникает в финансовых транзакциях – обязательно, при продаже криптовалюты, а также в продаже любого другого традиционного финансового инструмента. Обычно проблема решается путем записи всех транзакций в одном доверенном централизованном регистре, но «книга» не всегда является практическим решением, поскольку она не масштабируется для большого количества частых транзакций и потому она требует, чтобы все стороны доверяли хранителю книги. Точно так же вам нужно доверять своему банку свои деньги (а сотрудники банка, крадущие средства клиентов не редкость).

Чтобы устранить это, блокчейн предоставляет механизм распределенного доверия: несколько сторон хранят записи транзакций, и каждая сторона может проверить, не были ли изменены порядок и отметки времени транзакций [34].

Единица биткоина – это не что иное, как число, но только некоторые цифры из него представляют из себя подтвержденный биткоин. Эти числа являются решениями четко определенного уравнения, и тот, кто находит его решение, получает какое-то количество биткоинов. Этот процесс называется майнингом. Как только биткоин обнаружен, он может участвовать в транзакциях, которые будут храниться в базе данных. Сделки подписываются цифровой подписью с учетными данными продавца, чтобы избежать отказа [34].

Централизованной базы данных в такой системе не существует, поскольку пользователи не доверяют ей, а также потому, что существует слишком много транзакций для хранения их всех в одном месте. Поэтому биткоин и другие криптовалюты предоставляют распределенную базу данных, в которой каждый компьютер, участвующий в транзакции определенной монеты, хранит копию истории транзакции этой монеты. Технология блокчейн гарантирует, что ни одна сторона, хранящая эту историю, не может вмешиваться в нее, оставшись незамеченным. Децентрализованность такой системы обеспечивается технологией одноранговой сети peer-to-peer(P2P).

Именно он отвечает за такую характеристику блокчейна, как хранение цепочки блоков транзакций, в которой периодически происходит добавление новых блоков у каждого участника такой системы [34].

27 стр., 13172 слов

Автоматизированные информационные системы кадастра

... на единой географической информационной основе и в соответствии с определенными правовыми, технологическими и экономическими нормами. В состав Единой системы государственных кадастров должны войти следующие основные группы государственных кадастров : - кадастры природных ресурсов ...

Простейшая структура сети изображена на рисунке 1.1.

Рисунок 1.1 – Схематичное представление P2P сети

Транзакции – это единицы данных, содержащие сведения о транзакции и отметке времени. Оба могут быть представлены в виде вычисленных чисел и строк. Блокчейн можно рассматривать как цепочку блоков с тремя столбцами, где каждая строка представляет отдельную транзакцию. В первом столбце хранится метка времени о транзакции. Во втором столбце хранятся сведения о транзакции. А третий столбец содержит в себе свой хэш и хэш предыдущего блока, так все блоки представляют собой единую цепочку, то есть историю всех действий в системе с начала её старта [34].

Рисунок 1.2 – Цепочка блоков

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

Хэш может рассматриваться как необратимо зашифрованная версия исходной строки. На самом деле, один из способов вычислить хэш строки – это зашифровать ее, выполнить некоторые скремблирования и выполнить битовые операции XOR. Математически хэш создается хэш-функцией f, которая должна иметь два важных свойства: размер входного и выходного пространства должен быть большим; коллизии должны быть практически невозможными, то есть 2 входные переменные и , не должны производить две одинаковые функции на выходе . Типичное применение хэш-функции — это хранение паролей. Например, при регистрации на веб-сайтах, может возникнуть ситуация, в которой пароль p хранится в базе данных веб-сайта в незашифрованном виде. В таком случае, каждый, кто имеет доступ к базе данных, может посмотреть пароль p любого пользователя. Чтобы этого не случалось, на сайте должны храниться хэши паролей . В таком случае, при каждом входе в систему входной пароль каждый раз хэшируется и сравнивается с изначальным значением . Вероятность того, что неверный пароль будет иметь такое же значение хэша, как у фактического пароля практически равна нулю. Примерами хэш-функций являются безопасные хэш-алгоритмы (SHA1, SHA128, SHA512 и т.д.), которые реализуются модулем hashlib в языке программирования Python. Он может принимать любую строку в качестве входных данных и всегда создавать выходную строку, которая представлена в шестнадцатеричном виде с фиксированной длиной [34].

1.2.1 Принципы технологии blockchain

Итак, технология blockchain основывается на 4 важных принципах, которые благотворно скажутся на применении этой технологии в сфере электронного голосования.

1) Проверка транзакций в сети с использованием криптографии.

На сегодняшний день, в сферах, где используется передача данных, после отправки некоторого сообщения со сведениями, который нужно синхронизировать с получателем, получатель должен обновить свой собственный реестр с данными. На сегодняшний день не существует удобного, не затратного по времени и эффективного решения, чтобы с верять такие копии. И именно технология blockchain позволяет справиться с этой проблемой, с помощью различных способов. К примеру, при обмене одними и теми же базовыми данными или при предоставлении подтверждающих элементов с целью верификации данных. Пользователи blockchain реестра достигают соглашения в отношении верификации изменения данных используют некоторые алгоритмы консенсуса, такие как Proof of Stake, Proof Of Work, Proof Of Activity, Proof of Weight и т.д [12, 34].

19 стр., 9264 слов

Сравнительный исследование возможностей Workflow-систем

... пересмотра спецификации процесса. 1.2 Представление бизнес-процесса как процесса Workflow Важнейшей особенностью технологии Workflow является поддержка управления процессами, содержащими как автоматизированные выполняемые средствами ... процесса с исполнителями и объектами, выступающими в качестве входов (исходные данные и материалы), управлений (ограничения на выполнение) и выходов (результаты ...

2) Распространение копий информации о транзакциях среди большого количества участников системы.

База данных в системе на блокчейн либо целиком, либо частями распределяется между устройствами участников системы. Это позволяет избежать критических ошибок, которые могли бы случиться на одном устройстве. На данный момент, мультиплицирование является довольно большой проблемой для нынешних технологий организации баз данных, и это приводит к внеочередным сложностям и затратам в ходе реализаций различных проектов. Кроме того, такое достоинство блокчейна позволяет сохранить целым все копии, если в одной из них произошел сбой. Многие участники могут также подтверждать добавление новых транзакций в ходе проверки сопоставления собственными силами [12, 34].

3) Децентрализованный контроль доступа

В реестрах с децентрализованных системах используются ключи и подписи в целях предоставить определенным участникам реестра права на определенные манипуляции в общей базе данных. Такие ключи могут позволить выполнять определенные действия, которые будут возможны только при соблюдении некоторого ряда условий. Так, регулятор может иметь ключ для чтения, который даст ему возможность просмотра информации о транзакциях соответствующей организации. Но это возможно только при условии, если владелец предоставит регулятору соответствующий ключ [12, 34].

4) Конфиденциальность и прозрачность

Поскольку, большое количество сторон участвует в верификации каждой транзакции, а копия данных находится у многих участников, такая система обеспечивает высокий уровень прозрачности. Данное свойство предоставляет возможность убедиться в том, что реестр не редактировался несанкционированным путем. Каждая транзакция производится с использованием уникальной цифровой подписи, благодаря чему подтверждается факт того, что определенный пользователь совершил транзакцию в соответствии с существующими в системе правилами [12, 34].

1.2.2 Процесс верификации в blockchain

Структура блока в технологии blockchain представляет из себя список транзакций(тело) и заголовка, который содержит в себе ключи транзакций.

Рисунок 1.3 – Содержание блока

Тело блока содержит в себе список всех предыдущих транзакций.

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

Рисунок 1.4 – Связь блоков между собой

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

42 стр., 20619 слов

Разработка образовательного портала ‘Информационные системы ...

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

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

Чтобы достичь соглашения между участниками системы касательно внесения изменений в блокчейн используются алгоритмы консенсуса, такие как proof-of-work(доказательство выполнения работы) и proof-ofstake(Доказательство доли владения).

Доказательство выполнения работы(PoW) – это принцип защиты сетевых систем от злоупотреблений услугами, например, DoS-атак и других видов атак. Данный метод основан на решении сложной математической задачи одной стороной, которая требует некоторых вычислительных мощностей и времени. А результат этого решения может быстро проверить другая сторона. То есть особенностью таких вычислений является асимметричность затрат по времени. Данная особенность обеспечивает сильную защиту системы от фальсификаций. Хэш идентификатора блока должен удовлетворять определенному условию, которое устанавливает сложность вычислений.

Доказательство доли владения(PoS) – принцип защиты, который основан на доказательстве искомых средств. Этот метод является альтернативой proof-of-work. В случае использования данного принципа защиты, в цепочку блоков, с большей вероятностью, запишется блок, учетная запись которого имеет на балансе больше токенов.

Процесс верификации новых блоков называется майнингом(mining).

А участник сети блокчейн, который занимается майнингом именуется майнером.

Майнер получает от других пользователей системы информацию о новых записях в реест, собирает их вместе и пытается сформировать новый блок. Для этого ему требуется вычислить хэш идентификатора нового блока. Например, если после первого вычисления получился результат, который не удовлетворяет требованиям безопасности системы, в блоке существует специальное поле «nonce», которое изначально равно нулю. Так, чтобы получить результат, который будет удовлетворять требованиям безопасности, манер делает перерасчет хэша с измененным полем «nonce» столько раз, сколько потребуется для того, чтобы хэш получился подходящим.

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

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

За каждое успешное вычисление майнер получает вознаграждение, комиссию от транзакции, которую он рассчитывал. Данное вознаграждение и есть причина, по которой он выполняет столь трудоемкую задачу [12].

1.2.3 Голосование, основанное на blockchain

В последние годы активно развиваются децентрализованные цифровые валюты, в которых главными преимуществами является защищенность от вмешательства третьих лиц в такие финансовые системы и прозрачность. Некоторые исследователи искали способ голосования и подсчета голосов посредством технологии блокчейн. В 2015 году Дж. С. Чеплач в IT Университете Копенгагена представил доклад об областях использования блокчейна где, в том числе утверждал, что блокчейн может использоваться для электронного голосования [25].

В то же время З. Жао и Т. Чан предложили способ голосования с использованием технологий блокчейн и zk-SNARK. Такой способ голосования имел свойства конфиденциальности, проверяемости и неизменяемости [41].

В 2016 году был предложен протокол с использованием Zerocoin, который обеспечивал бы большинство требований электронного голосования. В том же году, П. С. Джейсон, и К. Ючи предложили протокол с использованием слепой подписи и карт Биткоин [30].

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

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

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

1.3 Требования к голосованию с применением blockchain

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

Система голосования на blockchain должна выполнять следующие требования:

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

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

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

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

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

Глава 2 АНАЛИЗ ПЛАТФОРМЫ BLOCKCHAIN И

ПРОЕКТИРОВАНИЕ СИСТЕМЫ ЭЛЕКТРОННОГО ГОЛОСОВАНИЯ

2.1 Платформа blockchain

На данный момент существуют значительное количество реализаций блокчейнов, среди которых присутствуют такие платформы, как Bitcoin, Ethereum, zCash, Wave, Ripple, Cordano, Stellar, IOTA и др [16].

Из перечисленных выше самых популярных платформ, такие платформы, как Ethereum, Wave и имеют под собой цель создать платформы, позволяющие решать самые разные задачи с помощью «смарт-контрактов», которые обеспечивают возможность различных манипуляций с данными в блокчейне.

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

2.1.1 Ethereum

В конце 2013 года канадский программист Бутерин В. Д. представил общественности единую централизованную виртуальную машину, которая называлась Ethereum. Первый запуск сети с открытым исходным кодом состоялся 30 июля 2015 года.

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

Большая популярность платформы Ethereum среди разработчиков и пользователей обусловлена, в том числе тем, что такие алгоритмы, как смартконтракты впервые стали применяться именно в проекте Ethereum.

2.1.2 Смарт-контракты

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

Получатель.

Электронная подпись отправителя.

Сумма перевода в валюте «ETH», используемой в системе как токен.