区块链投票系统概述

这篇具有很好参考价值的文章主要介绍了区块链投票系统概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近接到项目要做区块链投票系统,集中调研了下相关的知识,做这里做下简要的记录。区块链电子投票系统拆开看是两个问题:

  1. 什么是电子投票系统?
  2. 区块链能给电子投票系统带来什么?

什么是电子投票系统?

先来看第一个问题,什么是电子投票系统?根据维基百科-电子投票的定义:

电子投票,是一种投票设备,使用者直接按钮,就可以投票给自己所支持的候选人。
 
电子投票技术可以包括穿孔卡,光学扫描投票系统和专用投票亭(包括独立的直接记录电子投票系统或DRE)。它还可以涉及通过电话,私人计算机网络或互联网传送选票和投票。

以上可以看出,从投票地点的限制可以将电子投票分为两种:

  1. 在指定地点(比如投票站)通过指定设备进行投票
  2. 在任意地点通过互联网传送选票和投票

传统投票流程

可能有同学会问,为什么投票地点的限制要单独拿出来讲,这个很重要吗?先来看传统投票的过程。
区块链投票系统,区块链,区块链
传统投票都是在票站进行,主要分以下几个步骤

  1. 选民来到票站,首先进行身份验证并登记
  2. 领取选票,进入一个不受监控的隔间,打开信封,填写选票,并装回信封
  3. 将封好的选票投入一个透明的票箱
  4. 投票结束后,将票箱中选票进行充分混合,开始计票

传统投票的安全性

通常认为,投票过程有四个重要的安全要求,只有这些要求都被满足时,才能保证投票的安全:合法性、抗审查、秘密性、抗胁迫。可以总结为以下主要特征:

  • 秘密性(Confidentiality):除投票者自身外,其他人都不能知道他选票的内容。
  • 合法性(Eligibility):只有合法的投票者才能进行投票。
  • 唯一性(Uniqueness):每个合法的投票者只能投一票。
  • 公平性(Fairness):投票完成之前,任何人不能获知投票的结果,包括中间结果。
  • 无收据性(Receipt-Freeness):投票者不能向第三方证明自己选票的内容。
  • 匿名性(Anonymity):除投票者自身外,任何人都不能将某张选票与某个投票者
  • 可验证性(Verifiability):可以验证投票结果的正确性。
    联系起来。

对照上一节传统的投票流程:

  • 票站入口处的身份验证和验票时的有效性验证,保证了选票的合法性、唯一性
  • 选票的纸质存档保障了可验证性
  • 领取选票、填写、封口都在独立的、无监控不可拍照的隔间中进行,保障了匿名性
  • 开票前的票箱会被有意混淆,打乱其中选票顺序,保障了不能根据身份验证的顺序推导出投票的内容
  • 投票后无收据,无拍照,保障了抗胁迫性(无法向他人证明自己的投票内容)

电子投票的安全性

前面提到电子投票分两种,在指定地点(票站)投票和通过互联网投票。

  • 在指定地点投票与传统投票的区别只是取消了纸质投票,票站依然保留,选民只要在一个投票机上填写选票即可。但因为无纸质存档,安全性会变得更有挑战。美国和俄罗斯前几年都发生过大选投票系统被攻击的案例。同时如何向广大并无技术背景的选民证明系统的可靠性也是一大难题。
  • 互联网投票会让事情变得更加复杂。脱离了票站这个安全的物理环境,通过无收据性来保障无贿选和抗胁迫变得没有意义,选民可以通过设备录屏等方式变相取得投票的收据,胁迫投票也就变得可以实现。

所以为什么投票地点的限制要单独拿出来讲,因为这个真的有点无解。

电子投票做了些啥?

虽然有个目前无解的bug,但还是看下目前电子投票系统都做出来了些啥。需要了解以下知识:

  • 公钥密码
  • 同态加密(支持加法同态的 Paillier 算法)
  • 门限同态加密
  • 相同指数证明
  • 盲签名
  • 混合网络
  • 零知识证明
  • 单向散列函数
  • 数字证书

同时在传统投票系统的基础上,还对电子投票系统提出了新的要求:

  • 广义可验证性(Universal Verifiability):任何人都可以验证投票结果的正确性,
    包括非参与者。

概念不逐个展开写了,后面有空再补,大家感兴趣可以查一下。电子投票雏形源于Chaum于1981年提出的公钥密码体制,通过密码技术和计算机网络完成投票。1985年Cohen等提出了同态加密技术方案,构造电子投票,主要解决了匿名性和广义可验证性问题。同态加密技术成了构造电子投票的主要工具之一。Fujioka在1992年提出了著名的FOO92方案,引入了盲签名技术,解决电子投票的匿名性问题。无收据性概念是1995年Benaloh等人提出,用来解决买卖选票或者强迫投票等对投票活动有较大威胁的问题。Cramer使用门限同态加密、相同指数证明等技术试图构造一个同时满足广义可验证性和无收据性的方案,但是这个方案最终被证明并不满足无收据性。Lee在 Cramer 的方案基础上引入一个可信第三方作为验证者,使得改进后的方案满足无收据性,但是这个方案中的无收据性完全依赖于对可信第三方的高度信任。为了降低对可信第三方的信任依赖,研究者们设计了一些新的改进方案,利用多个实体共同参与相互监督的办法来分割权力。

总结一下就是大家想了许许多多密码学相关的算法来解决电子投票系统中需要的匿名性、广义可验证性、无收据性等问题。但是最终绕不过一个可信的第三方,为了解决这个问题,大家甚至想到了将第三方拆成了第三方们,提高了作弊的门槛。

区块链能给电子投票带来什么?

我理解区块链有三个主要技术:

  • p2p(peer to peer)
  • 链式结构
  • 共识算法

对应三个主要特点

  • 去中心化
  • 数据不可篡改
  • 数据公开可查

前面提到了电子投票系统的广义可验证性,可信的第三方,大家想到了啥?解决这个问题,妥妥的是区块链的强项呀!好,那接下来我们看区块链能给电子投票带来什么。

区块链天然适合用来做电子投票的公告板,所有数据上链为其带来广义可验证性以及不可篡改性。如果配合同态加密以及零知识证明算法等密码学技术,可以实现匿名的投票系统。下图展示了一种基于区块链匿名投票的详细流程,主要用到了RSA盲签名、Paillier算法,图中所有上传,指的是上传数据到区块链(摘自《基于区块链的匿名投票系统研究》,详细算法可参考原文3.3节,作者陈萍,2020)
区块链投票系统,区块链,区块链

我们的选择

看过以上的区块链投票方案后,结合国内的监管要求以及实际情况,我们决定不做完整意义上的区块链投票应用。从以下两个方面说明:

  • 强监管
    国家在大力发展区块链的同时,要求区块链应用可管可控(区块链技术可提高数据可信性和安全性),无论是腾讯的至信链,还是阿里的蚂蚁链,都不存在严格意义上的公链,都无法让用户通过个人钱包直接对链发起操作,都要通过企业或者开发者作为第三方中转进行上链操作,所以是伪去中心化,但是因为腾讯或阿里作为区块链技术提供方,分隔了第三方对链的直接操作,且用阿里或腾讯的信用作为背书,保障了可管可控模式下的不可篡改。

  • 无必要
    我们的投票应用主要用于小区业主进行表决,事项没必要做到无回执和完全匿名,可验证和可追溯是更重要的。无回执反而让用户觉得很奇怪,为什么我投了却看不到结果,教育成本会比较高。而且脱离了无保护的物理空间,无回执性变得没什么意义,录屏投票就可以变成新的取得回执手段。

  • 追溯门槛高
    向一个完全没有计算机和密码学基础的人解释如何在区块链上追溯和验证投票的正确性,基本上不可能。反而不如一个蚂蚁链发的可信存证证书来的实在,用户只要知道我的信息存证了,有证书、可验证。系统能做到能向监管机构证明,支持审计就可以了。

所以结合国内的区块链监管环境,我们选择用蚂蚁的可信存证链服务,虽然不是严格意义上的区块链投票,但是信息国内司法认可,用户对证书感知强烈,信息链上加密、不可篡改。

下图是我们的投票存证流程示例:
区块链投票系统,区块链,区块链

通过以上流程,做到了决议内容、投票人员、投票内容、投票结果全部上链存证。上链文件内容可通过文件原文和存证Hash到支付宝平台做验证,示例如下:

验证示例

区块链投票系统,区块链,区块链

区块链投票系统,区块链,区块链

区块链投票系统,区块链,区块链

区块链投票系统,区块链,区块链文章来源地址https://www.toymoban.com/news/detail-782119.html

遗留问题

  1. 国内在以太坊链上建应用合法吗?

到了这里,关于区块链投票系统概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序投票管理系统:打造智能、便捷的投票体验

    随着社交网络的兴起和移动互联网的普及,人们对于参与和表达意见的需求越来越强烈。在这个背景下,微信小程序投票管理系统应运而生。它为用户提供了一个智能、便捷的投票平台,使用户可以轻松创建和参与各种类型的投票活动。本文将详细介绍微信小程序投票管理系

    2024年02月08日
    浏览(37)
  • java实现学生投票系统

    目录 代码 0x1 构思 0x2核心  0x3功能 | 以上就是完成投票系统的全部代码,花费一个晚自习的时间,还是有难点的,但是我完成此功能利用到的知识点不是很多,只有封装get和set构造方法来传递数据,整体的逻辑为  数组定义10个值为学生的姓名, 利用for循环搭配 Scanner键盘录入,遍

    2024年02月09日
    浏览(21)
  • 【SpringBoot】SpringBoot实现投票系统代码

    由于投票系统的代码量较大,且有很多细节需要注意,因此不能在这里完整地给出代码。但是,下面是一个简单的SpringBoot投票系统的代码框架,为您提供一个参考,您可以在此基础上进行开发和完善。 创建一个名为\\\"VotingSystem\\\"的SpringBoot项目 在pom.xml文件中添加需要的依赖:

    2024年02月10日
    浏览(25)
  • 区块链概述

    (1) 它作为一个去 中心化 的分布式账本, 其本身是一系列使用密码学而产生的具有互相关了的数据块。 ( 2)区块链实质是一个不断增长的分布式结算数据库,使用算法证明机制来解决信息系统中的信任危机。 ( 3) 区块链的运行及分布式数据存储和点对点传输,且需要

    2024年02月02日
    浏览(20)
  • 微信投票小程序系统设计与实现

    目的 :本课题主要目标是设计并能够实现一个基于微信小程序评选投票系统,前台用户使用小程序,后台管理使用基PHP+MySql的B/S架构;通过后台添加资讯、管理上传投票信息、用户管理等;用户通过小程序登录,发起投票、上传投票信息、查看投票、参与投票等。 意义 :微

    2024年02月10日
    浏览(26)
  • 微信小程序毕业设计作品成品(03)在线投票小程序投票评选小程序系统设计与实现

    博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(31)
  • 微信小程序评选投票系统设计与实现

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(31)
  • 基于微信小程序的投票系统源码

    开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具 技术说明: springboot mybatis 微信小程序 代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。 功能介绍: 用户端: 登录注册(含授权登录) 首页显示轮播图,投票列

    2024年02月09日
    浏览(71)
  • Javaweb的网络投票系统的设计与实现

    原始的投票管理基本上是人工操作,效率低下,缺乏方便性,网上投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力,大大的提高了效率。使投票变得简单快捷。能够在极短的时间内总结出所需调查人的意见结果。大大提高了投

    2024年01月21日
    浏览(28)
  • 第六篇:区块链概述及应用场景

    作者:禅与计算机程序设计艺术 区块链(Blockchain)是一种分布式数据库,用于管理对等网络上交易或数据记录的不可篡改性、透明性和可追溯性,并为用户提供了支付服务、记账本功能、身份认证、存证等多种应用领域。简而言之,区块链是一个去中心化的、共享的、永久

    2024年02月08日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包