Pull to refresh

Comments 39

Нет, ну это нормально? Только придумал тему для диплома, а тут её уже реализовали
Расскажите пожалуйста, в чем плюс выбора Multichain как основы для технологии, в сравнении с реализацией своего блокчейна?
Преимущество в том, что это проверенная система, основанная на ядре Bitcoin, которое является наиболее опробованным и одним из самых надёжных на текущий момент. Кроме того, Multichain предлагает ряд полезных фич: работа с кастомными ассетами, потоки данных, возможность регулировки прав доступа. Разработка же своего блокчейна с нуля сопряжена со множеством рисков и трудностей:
  1. Затраты времени и ресурсов на разработку, а в дальнейшем поддержку
  2. Надёжность. Сравнивать собственную разработку, оттестированную только отделом тестирования, с блокчейном, у которого тысячи пользователей, в плане надёжности и потенциальных проблем тоже не приходиться
В реальной жизни такой подход нельзя будет использовать для голосования, поскольку никто не сможем проверить, по свой воле человек отдал голос или ему к голове приставили дуло пистолета.
А как Вы это проверите, например, в случае существующего сейчас голосования на дому?:) Если же говорить серьёзно, то наша система не решает все проблемы голосования, такие как голосование под угрозой жизни и здоровью или подкуп избирателя. Но благодаря ей, вы можете точно знать как учтён ваш голос.
На дом приходит комиссия и в её присутствии происходит голосование.
Со 2ым доводом согласен. По блокам можно проверить, что мой голос попал в блокчейн и что голос соседа не продублировался.
Риски, на которые не может повлиять разработчик платформы: голосование под принуждением или покупка голосов, не имеет смысла рассматривать.
Почему же?
Это фактически бизнес-ограничение, которое не позволит внедрить голосование по интернету, например.
Если представить более-менее крупное голосование (хотя бы тысяч на 200 000 человек), сколько людей с пистолетами понадобиться? :) А если голосование в рамках страны — это миллионы избирателей. Так целую армию нанять придется.
Людей с пистолетами понадобится немного, вы пообщайтесь с теми, кто проводит такие выборы, они вам расскажут почему голосование через интернет у нас в стране не может применяться.
Задача не всех поголовно под пистолет поставить, а систему дискредитировать, т.е. достаточно небольшой выборки нарушений, чтобы признать выборы недействительными.
Я думаю люди с пистолетами это в любом случае не проблема блокчейна :)
Это бизнес-ограничения, которые вы не сможете обойти технологически, если мы говорим о гос.выборах на уровне страны.
Обойти то можно, но это не относится к системе голосования в принципе. Это относится к надежности хранения ключей/паролей аутентификации которую сам пользователь и должен обеспечивать.
Насколько Я понял из описания вашего проекта, все голоса в системе абсолютно публичны? То есть, в блокчейне хранится информация кто за кого проголосовал. А как же тайна голосования?

Или же каждый участник анонимен (известен только его публичный ключ, и блокчейн не хранит личной информации)? Как в таком случае избежать большого количества «мёртвых душ»? Ведь тот кто регистрирует пользователей может создавать их в неограниченных количествах.
Второе, известен только номер кошелька. Ассоциировать кошелёк и самого человека можно только в случае если человек сам объявит, что это его кошелёк. Что касается «мёртвых душ» — в прототипе не ставилась задача ограничить кому-либо доступ к голосованию, т.е. мы намеренно сделали, чтобы зарегистрироваться и принять участие мог любой. В дальнейших версиях будут созданы закрытые голосования, для участия в которых нужно будет получить специальное приглашение.
Жаль, что Вы удалили комментарий до того, как я успел ответить. Хорошие вопросы были.
Насколько Я понял, в вашей системе есть центральный сервер, который регистрирует участников голосования и разрешает/запрещает узлы с правом записи. И доверие к системе в целом равносильно доверию к центральному серверу.
Не совсем так.
1. Существующая аутентификация нужна для демо, в конечном продукте может быть любой другой. К голосованию она отношения не имеет, т.к. голосуют именно блокчейн-кошельки и существующая аутентификация нужна только для того, чтобы продемонстрировать работу с ними. В реальной системе управление кошельками реализуется отдельно, в зависимости от условий решаемой задачи.
2. Служба организации голосования — централизована. В ее функции входит создание голосовательных токенов (ГТ) и их начальное распределение в соответствии с заявкой организатора. Результаты работы этой службы (сколько ГТ выпущено, как распределено) открыто доступны в блокчейне и могут быть провалидированы любым участником.
3. Разрешение/запрещение работы узлов — может быть организовано как централизовано (одни узлом) так и децентрализовано (консенсусом полноправных узлов-участников).
Вы не могли бы подробно расписать этот момент, у меня ни как не сформируется картинка как это может быть достигнуто. Разбирая на примере, выборы президента. Проголосовать могут только граждане страны, то есть что бы пользователь получил монету он должен предъявить паспорт, в этом случае на его кошелек начисляется монета, но в таком случае у нас уже раскрывается личность потенциально голосующего, мапинг личность-кошелек состоялся, дальше отслеживаем на какой адрес ушла монета и становится понятно за кого ты отдал свой голос.
Схемы могут быть разные, приведу одну в качестве примера. Представим ситуацию, государство печатает тираж листов с QR кодами содержащими публичные и приватные ключи, Для того, чтобы было неизвестно, кому какой кошелёк достался эти листы запечатываются в конверты(как pin коды банковских карт) без опознавательных знаков, которые рассылаются по участкам, где каждый голосующий получает свой конверт случайным образом. Итого: голосующий приходит на участок, предъявляет паспорт, получает конверт и проходит в кабинку. Там распечатывает его, сканирует и голосует.
Даже в случае решения этих вопросов для таких серьезных вещей, как выборы в России, необходимо будет использовать ГОСТовскую криптографию. В multichain возможна замена SHA-256, Merkle Tree и эллиптических кривых на другие соответствующие алгоритмы?
Так как Multichain это open source решение, туда можно можно приделать любую криптографию, в том числе сертифицированные в России решения, было бы время и ресурсы. На этапе прототипа мы не ставили перед собой такой задачи.
Все таки хотелось бы иметь расширяемый blockchain-тулкит, с помощью которого можно собирать кастомный блокчейн для любых задач. Ставим nuget-пакет и нет необходимости лезть в исходный код и выкорчевывать криптографию, например. Хотим PoW — пожалуйста. Нужен вместо него PoS — без проблем. Нужен свой алгоритм(тм) — легко, вот интерфейс, реализуйте его) Аналогично с криптографией, валидацией блоков и другими вещами, которые меняются. Добавить интеграцию с КриптоПро тогда не составит труда. Добавим сладости .NET Core 2.0 и будет хорошо.
Возможно, займусь таким проектом в свободное время.
При такой схеме ключи получать надо перед каждым голосованием, ещё и из дома надо выходить. Нужна схема однократного получения ключа с последующей возможностью голосовать из дома
UFO just landed and posted this here
Поясните, пожалуйста, что Вы имеете в виду?
Коллеги, не могу отредактировать статью и добавить туда схему, поэтому помещу её здесь image
Выглядит проще чем у fabric hyperledger.
Скажите, а вы не смотрели в его сторону?
В сторону hyperledger мы не смотрели, так как с ним у нас нет опыта, а проекты с использованием Multichain мы уже реализовывали и он хорошо подходит под эту задачу.
Хабраэффект налицо. Надо приватную часть масштабировать для больших объемов.
Да, сейчас и правда есть некоторые трудности — разбираемся.
Реализовали идею, которая уже год не дает покоя. За что большой респект! Срочно внедрять в ЦИК до президентских!
Мы пока её не до конца реализовали, это прототип демонстрирующий возможности. В зависимости от интереса сообщества мы решим, стоит ли дальше развивать это решение.
В ЦИК подобные решения уже не один раз предлагали, они все не подходят по законы федеральные.
Я сомневаюсь, что туда предлагали решения основанные на блокчейне. Те проблемы, которые Вы описываете выше, даже если с ними согласится, могут быть решены просто — можно оставить участки для голосования, наблюдателей, но ликвидировать бумажные бюллетени с необходимостью их считать. Как это сделать так, чтобы гарантировать анонимность и при этом гарантировать, что голосующий может проверить собственный голос мы знаем.
А вы не сомневайтесь.
Вопросов было очень много.
Например, как избежать раскрытие результата голосования конкретного человека, какую криптографию использовать, а что если есть бэкдор в ней, как проверить, что именно владелец ключа приватного проголосовал, а не его сосед и т.д.

Вот пример: провайдер видит, что из вашей квартиры ушёл пакет на сервер для системы голосования, если он или допустим ФСБ, может расшифровать его, значит он знает за кого вы проголосовали — а этого допустить нельзя.
В случае с блокчейном для не раскрытия результата голосования человеку достаточно не афишировать связь своей личности с адресом кошелька с которого он голосовал, кроме него его никто знать не будет (технически это возможно). Криптографию можно использовать хоть гостовскую, у нас есть опыт использования её с Мультичейном. Проверить, что голосовал именно тот человек, который заявлен, можно оставив избирательные участки как самый простой вариант, где человеку вручается выбранный случайным образом запечатанный пакет с приватным и публичным ключами в виде QR кодов, которые он считывает через специальное устройство или мобильное приложение и голосует. Мы согласны, что проблем может быть большое количество, но мы верим, что при большом желании они могут быть решены :)
И не только в ЦИК, государственными выборами область применения не ограничивается, прозрачная система электронного голосования может многим пригодиться — от малых коопераций, вроде ТСЖ, и до крупных акционерных обществ.
Sign up to leave a comment.

Articles