基于区块链的投票系统、方法和投票终端与流程

文档序号:18526667发布日期:2019-08-24 10:18阅读:516来源:国知局
基于区块链的投票系统、方法和投票终端与流程

本发明涉及区块链技术领域,具体地,涉及一种基于区块链的投票系统、方法和投票终端。



背景技术:

投票系统中的关键技术是投票人身份识别,数据提取、加密、存储与安全性。传统电子投票系统使用中心化服务器来实现上述需求,这存在着更多的安全隐患和信任度低等问题。在安全性方面,对于传统电子投票系统,黑客可集中针对中心服务器进行攻击,作恶成功率高,作恶成本小,极易造成系统崩溃和数据被篡改。同时,即使使用一系列高成本的安全措施保障系统安全不受黑客侵害,而中心化系统自身出现故障,则会导致系统漏记、误记投票数据,甚至系统自身和管理人员都无法分辨数据的真实性。在信任方面,传统电子投票系统由中心机构管控,中心机构的工作人员有篡改数据的能力,易造成暗箱操作。投票记录与统计结果由中心服务器处理,公示的投票结果需要依靠中心机构的背书来保证真实性,难以让公众信服。

与本发明相关的现有技术是专利文献cn108597090a,提供了一种基于区块链的投票方法、装置及系统,包括区块链的区块链系统在确定出一投票者以一数字证书作为投票唯一标识而进入区块链系统时,基于区块链获取投票者经区块链而提交的投票结果;当达到预设的投票统计条件时,基于区块链统计获取到的每一个投票结果,以在区块链中生成并存储投票统计结果。区块链将数据区块以时间顺序相连的方式组合成一种链式数据结构,以保证其不可篡改和不可伪造。将投票行为在区块链中完成,故能够避免出现结果被篡改的情况发生。

上述专利文献中公开的主要技术方案是系统通过投票人的数字证书来验证投票人身份,并基于区块链来实现投票统计过程。该专利并未阐明其数据加密的逻辑以及数据存储逻辑。其使用的投票人身份认证方法与投票去重方案,是基于某个中心化证书授权机构来来实现。投票人在投票前需通过自身的上网设备向指定中心化证书授权机构来申请数字证书,并将该数字证书告知给区块链系统,而区块链系统需将该数字证书再发送给证书机构来判断该投票人之前是否已经投过票。这一技术方案存在诸多问题,首先投票人的身份真实性需要依靠指定的证书授权机构来做信任背书,投票系统自身没有解决身份认证的问题,受制于中心化背书机构。其次,投票人是否重复投票的问题依然需要证书授权机构来配合处理,投票系统无法在系统内部走完投票流程,须受制于中心化机构。这使得该技术解决方案没有实现完全的去中心化,需要中心化机构来做信任背书,并要参与完成投票流程。第三,投票人进行投票时,使用自身的投票设备,这存在着安全隐患,无法确定设备提交的投票数据是否会造成系统崩溃等安全性问题。因而该方案成本较高,外部背书机构依赖性强,且存在安全隐患。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种基于区块链的投票系统、方法和投票终端。

根据本发明提供的一种基于区块链的投票系统,包括:

投票终端模块:接收并显示投票题目,对投票人进行身份校验,接收投票人的投票录入后,将投票数据进行数据加密,将得到的加密后投票数据上传;

区块链投票模块:接收投票需求,按照投票需求编译投票智能合约,将投票题目和加密公钥发送至投票终端,接收加密后投票数据,并对加密后投票数据进行统计,形成投票结果,根据投票智能合约对投票结果进行上链存储。

优选地,所述的基于区块链的投票系统,还包括:

节点服务器模块:通过无线网络与投票终端交互数据,配合投票题目的传输;

投票展示模块:通过区块链投票浏览器对投票结果进行展示。

优选地,所述投票终端模块包括:

显示模块:对投票题目进行展示,对投票录入进行展示;

投票模块:接收投票录入,接收投票录入的修改;

识别模块:通过指纹识别方式对投票人进行身份识别,得到指纹数据,对指纹数据进行身份校验,若校验通过,则开启投票,否则,则不开启投票;对校验通过的指纹数据进行加密,将加密指纹作为投票人的数字指纹;

加密模块:将数据指纹、投票数据、投票提交时间按照加密公钥进行加密,得到第一投票数据,生成投票终端的私钥对随机数列,使用私钥对随机数列对第一投票数据进行加密,得到第二投票数据,将第一投票数据、第二投票数据、投票终端编号打包生成投票数据包,将投票数据包作为加密后投票数据进行上传。

优选地,所述区块链投票模块包括:

解密模块:接收加密后投票数据后,对加密后投票数据进行解密并校验,若校验不通过,则提示错误信息,并丢弃加密后投票数据,否则,则继续;

结果统计模块:提取加密后投票数据中的投票数据,根据投票智能合约对投票数据进行统计,形成投票结果,将投票结果附加唯一标识后,进行上链存储,在投票结束时,将每一个投票结果在区块链中生成投票统计结果,并存储。

根据本发明提供的一种基于区块链的投票方法,包括:

投票终端步骤:接收并显示投票题目,对投票人进行身份校验,接收投票人的投票录入后,将投票数据进行数据加密,将得到的加密后投票数据上传;

区块链投票步骤:接收投票需求,按照投票需求编译投票智能合约,将投票题目和加密公钥发送至投票终端,接收加密后投票数据,并对加密后投票数据进行统计,形成投票结果,根据投票智能合约对投票结果进行上链存储。

优选地,所述的基于区块链的投票方法,还包括:

节点服务器步骤:通过无线网络与投票终端交互数据,配合投票题目的传输;

投票展示步骤:通过区块链投票浏览器对投票结果进行展示。

优选地,所述投票终端步骤包括:

显示步骤:对投票题目进行展示,对投票录入进行展示;

投票步骤:接收投票录入,接收投票录入的修改;

识别步骤:通过指纹识别方式对投票人进行身份识别,得到指纹数据,对指纹数据进行身份校验,若校验通过,则开启投票,否则,则不开启投票;对校验通过的指纹数据进行加密,将加密指纹作为投票人的数字指纹;

加密步骤:将数据指纹、投票数据、投票提交时间按照加密公钥进行加密,得到第一投票数据,生成投票终端的私钥对随机数列,使用私钥对随机数列对第一投票数据进行加密,得到第二投票数据,将第一投票数据、第二投票数据、投票终端编号打包生成投票数据包,将投票数据包作为加密后投票数据进行上传。

优选地,所述区块链投票步骤包括:

解密步骤:接收加密后投票数据后,对加密后投票数据进行解密并校验,若校验不通过,则提示错误信息,并丢弃加密后投票数据,否则,则继续;

结果统计步骤:提取加密后投票数据中的投票数据,根据投票智能合约对投票数据进行统计,形成投票结果,将投票结果附加唯一标识后,进行上链存储,在投票结束时,将每一个投票结果在区块链中生成投票统计结果,并存储。

根据本发明提供的一种基于区块链的投票终端,接收并显示投票题目,对投票人进行身份校验,接收投票人的投票录入后,将投票数据进行数据加密,将得到的加密后投票数据上传。

优选地,包括显示屏、投票单元、指纹识别单元、加密芯片、电池;显示屏对投票题目进行显示,指纹识别单元识别投票人的指纹数据,投票人的身份校验通过后开启投票,投票单元中设置有投票按键,加密芯片将指纹数据进行哈希运算,将得到的哈希值作为投票人的数字指纹。

与现有技术相比,本发明具有如下的有益效果:

1、通过采用指纹识别的方式,解决了投票人的身份难以认证的问题,以保证投票的真实有效性,在网络中传输的是投票人的数字指纹数据,不包含投票人的个人隐私信息以及指纹源数据,保障投票人隐私数据不受侵害。

2、通过采用非对称加密技术和时间戳,解决了系统被混入虚假投票数据的问题,以及投票数据被窃取的问题,保证了投票设备的唯一性和投票数据的安全有效性。

3、通过采用区块链技术,编译智能合约来处理投票数据的方式,解决了数据处理和统计阶段投票数据被篡改的问题,去中心化系统,票据处理由代码自动执行,避免人工触碰数据,保证系统内的数据透明有效,避免暗箱操作的可能。

4、通过分布式存储技术,解决了系统安全性问题,多区块链节点让黑客的攻击成本急剧增加,即使成功攻克区块链投票系统的一个或少量几个节点,剩下的节点依然可保障系统的正常运作,防止数据被篡改;同时也解决了系统故障导致数据遗漏或误记的风险,即使一个或少量几个节点出现故障,其余节点依然可保障数据存储和处理的准确性。

5、通过采用区块链浏览器来展示投票结果的方式,解决了投票结果呈现阶段被篡改数据的问题,区块链浏览器直接与区块链投票系统进行数据对接,投票过程和统计结果透明可查,投票人可验证自己的投票内容,保证了投票结果的可信、有效。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的实施方法流程图;

图2为本发明的投票器硬件示意图。

图中示出:

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的一种基于区块链的投票终端,接收并显示投票题目,对投票人进行身份校验,接收投票人的投票录入后,将投票数据进行数据加密,将得到的加密后投票数据上传。

具体地,包括显示屏、投票单元、指纹识别单元、加密芯片、电池;显示屏对投票题目进行显示,指纹识别单元识别投票人的指纹数据,投票人的身份校验通过后开启投票,投票单元中设置有投票按键,加密芯片将指纹数据进行哈希运算,将得到的哈希值作为投票人的数字指纹。

根据本发明提供的一种基于区块链的投票系统,包括:

投票终端模块:接收并显示投票题目,对投票人进行身份校验,接收投票人的投票录入后,将投票数据进行数据加密,将得到的加密后投票数据上传;

区块链投票模块:接收投票需求,按照投票需求编译投票智能合约,将投票题目和加密公钥发送至投票终端,接收加密后投票数据,并对加密后投票数据进行统计,形成投票结果,根据投票智能合约对投票结果进行上链存储。

具体地,所述的基于区块链的投票系统,还包括:

节点服务器模块:通过无线网络与投票终端交互数据,配合投票题目的传输;

投票展示模块:通过区块链投票浏览器对投票结果进行展示。

具体地,所述投票终端模块包括:

显示模块:对投票题目进行展示,对投票录入进行展示;

投票模块:接收投票录入,接收投票录入的修改;

识别模块:通过指纹识别方式对投票人进行身份识别,得到指纹数据,对指纹数据进行身份校验,若校验通过,则开启投票,否则,则不开启投票;对校验通过的指纹数据进行加密,将加密指纹作为投票人的数字指纹;

加密模块:将数据指纹、投票数据、投票提交时间按照加密公钥进行加密,得到第一投票数据,生成投票终端的私钥对随机数列,使用私钥对随机数列对第一投票数据进行加密,得到第二投票数据,将第一投票数据、第二投票数据、投票终端编号打包生成投票数据包,将投票数据包作为加密后投票数据进行上传。

具体地,所述区块链投票模块包括:

解密模块:接收加密后投票数据后,对加密后投票数据进行解密并校验,若校验不通过,则提示错误信息,并丢弃加密后投票数据,否则,则继续;

结果统计模块:提取加密后投票数据中的投票数据,根据投票智能合约对投票数据进行统计,形成投票结果,将投票结果附加唯一标识后,进行上链存储,在投票结束时,将每一个投票结果在区块链中生成投票统计结果,并存储。

根据本发明提供的一种基于区块链的投票方法,包括:

投票终端步骤:接收并显示投票题目,对投票人进行身份校验,接收投票人的投票录入后,将投票数据进行数据加密,将得到的加密后投票数据上传;

区块链投票步骤:接收投票需求,按照投票需求编译投票智能合约,将投票题目和加密公钥发送至投票终端,接收加密后投票数据,并对加密后投票数据进行统计,形成投票结果,根据投票智能合约对投票结果进行上链存储。

具体地,所述的基于区块链的投票方法,还包括:

节点服务器步骤:通过无线网络与投票终端交互数据,配合投票题目的传输;

投票展示步骤:通过区块链投票浏览器对投票结果进行展示。

具体地,所述投票终端步骤包括:

显示步骤:对投票题目进行展示,对投票录入进行展示;

投票步骤:接收投票录入,接收投票录入的修改;

识别步骤:通过指纹识别方式对投票人进行身份识别,得到指纹数据,对指纹数据进行身份校验,若校验通过,则开启投票,否则,则不开启投票;对校验通过的指纹数据进行加密,将加密指纹作为投票人的数字指纹;

加密步骤:将数据指纹、投票数据、投票提交时间按照加密公钥进行加密,得到第一投票数据,生成投票终端的私钥对随机数列,使用私钥对随机数列对第一投票数据进行加密,得到第二投票数据,将第一投票数据、第二投票数据、投票终端编号打包生成投票数据包,将投票数据包作为加密后投票数据进行上传。

具体地,所述区块链投票步骤包括:

解密步骤:接收加密后投票数据后,对加密后投票数据进行解密并校验,若校验不通过,则提示错误信息,并丢弃加密后投票数据,否则,则继续;

结果统计步骤:提取加密后投票数据中的投票数据,根据投票智能合约对投票数据进行统计,形成投票结果,将投票结果附加唯一标识后,进行上链存储,在投票结束时,将每一个投票结果在区块链中生成投票统计结果,并存储。

在具体实施中,本发明的基于区块链技术的投票系统包括:区块链投票器,区块链节点服务器,区块链投票系统。如图1所示,所述区块链投票器包括显示屏1,投票模块2,指纹识别模块4,加密芯片5、电池模块6,所述投票模块2包含投票按键3。

所述区块链投票系统包括区块链、投票智能合约、区块链浏览器。区块链投票器通过无线网络与区块链节点服务器交互数据。区块链投票系统将投票题目数据发送给区块链投票器,供投票人查看。投票器通过识别指纹来鉴别投票人。投票人使用投票器录入投票数据后,投票器将投票数据进行加密,上传至区块链投票系统。区块链投票系统存储投票信息,统计最终投票结果,进行结果呈现。

实施流程如图2所示,首先确认投票需求,按需编译投票智能合约,区块链投票系统通过区块链节点服务器将投票题目数据发送给区块链投票器。符合资格的投票者用手指按压区块链投票器的指纹识别模块4开启投票,通过显示屏1查看投票题目。加密芯片5将指纹识别模块4识取的指纹数据进行哈希计算,得到的哈希值作为投票人的数字指纹。投票人查看投票题目后,通过投票模块2中的投票按键3进行答题,按题目要求可进行单选或多选投票,也可弃票。投票人完成所有投票答题后,手指按压指纹识别模块4来提交投票。加密芯片5将指纹识别模块4识取的提交投票的指纹数据进行哈希计算,得到提交投票的数字指纹,并和投票人初始的数字指纹进行比对,若数字指纹匹配失败,则返回错误,提示投票人重新提交投票;若成功匹配,则返回投票成功,并将投票人数字指纹、投票结果和提交时间通过区块链投票系统公钥进行加密,再通过使用区块链投票器的私钥对随机数列进行加密,将两者和投票器编号打包生成投票数据包,通过无线网络连接区块链节点服务器,将投票数据包上传至区块链投票系统。

区块链投票系统接收到投票数据包后,根据编号使用所述区块链投票器对应的公钥进行解密,并将解密后的随机数列与系统生成的随机数列进行比对,若结果相匹配则进入下一步,若结果不匹配,则返回错误,并丢弃数据包。

区块链投票系统使用其私钥对包内剩余加密投票数据进行解密,获取投票人数字指纹数据,比对已投票数字指纹列表,若列表中没有该数字指纹记录,则将投票数据在区块链网络中进行广播,触发已编译的投票智能合约,并将该数字指纹加入已投票数字指纹列表中;若比对时在已投票数字指纹列表中查到该记录,或解密失败,则返回错误,通知区块链投票器。

可选的,投票启动前,区块链投票系统可预置满足投票资格的投票人数字指纹数据库,当使用区块链投票系统的私钥进行解密后获取的投票数据后,投票人数字指纹在预置的数字指纹库中,则进入下一步,否则返回错误。如果区块链投票系统没有预置满足投票资格的投票人数字指纹数据库,则该过程可跳过。

投票智能合约根据既定流程,调用区块链投票系统资源对投票数据进行管理和统计,将结果打上时间戳并上链存储。当达到预设的投票结束条件时,区块链投票系统基于区块链统计获取到的每一个投票数据,在区块链中生成并存储投票统计结果,以及在区块链中存储投票统计结果的统计记录。其中,预设的投票结束条件可以是投票结束时间达标,也可以是投票人数达标等多种触发条件。

投票统计完成后,投票智能合约按既定流程,调取指定区块链节点服务器资源,将投票统计结果通过区块链投票浏览器进行公示。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1