一种投票方法、装置、计算机设备及计算机可读存储介质与流程

文档序号:16682868发布日期:2019-01-19 00:41阅读:141来源:国知局
一种投票方法、装置、计算机设备及计算机可读存储介质与流程

本发明涉及通信技术领域,尤其涉及一种投票方法、装置、计算机设备及计算机可读存储介质。



背景技术:

所谓选举是指一定的社会成员根据自己的意愿,按照一定的程序和方法,选拔、推举代表或者主要负责人的活动,其中,投票选举为一种应用比较广泛的选举形式。传统的投票选举需要参与投票的选民去现场进行投票,然后,人工统计选民的投票信息,以得到投票结果,传统的这种投票方式选民参与投票需要到现场,操作极为不便。

而随着通信网络的发展,利用互联网投票为选举活动提供了一种便捷的操作模式。网络投票机制选民不再受地域的限制,可以随时随地参与投票。网络投票方式需要选民登录网络投票平台之后在进行投票,为了保证投票的公平性和有效性,会对参与投票的选民进行身份验证,网络投票系统通常利用ip地址或者为选民分配的id进行身份验证,但是选民的ip地址和id容易被其他人窃取或者伪造,从而降低投票结果的可信度。

因此,如何提高投票结果的可信度,以保证投票结果最大程度的体现民意是目前亟待解决的问题。



技术实现要素:

有鉴于此,本发明实施例提供了一种投票方法、装置、计算机设备及计算机可读存储介质,能够解决现有技术中投票结果可信度低的问题。

第一方面,本发明实施例提供一种投票方法,所述方法包括:

接收投票者的投票授权请求信息;

根据所述投票授权请求信息,生成投票权限信息;

对所述投票权限信息进行加密处理,得到加密后的授权信息;

发送所述授权信息,以使得所述投票者根据所述授权信息,发送投票信息;

接收所述投票信息,根据所述投票信息验证所述投票者的身份;

当所述投票者的身份验证通过时,将所述投票信息打包成区块;

将所述区块上传至区块链。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述投票授权请求信息,生成投票权限信息,包括:

根据所述投票授权请求信息,判断所述投票者是否符合投票资格对应的预设条件;

若判断出所述投票者符合预设投票资格对应的预设条件,生成投票权限信息。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述对所述投票权限信息进行加密处理,得到加密后的授权信息,包括:

用所述投票者的公钥对所述投票权限信息加密,得到所述加密后的授权信息。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述当所述投票者的身份验证通过时,将所述投票信息打包成区块,包括:

对所述投票信息进行存在性证明以及时间戳处理,得到处理后的投票信息;

将所述处理后的投票信息打包成所述区块。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,

当所述投票信息为投票者进行加密处理后的信息时,所述对所述投票信息进行存在性证明以及时间戳处理,得到处理后的投票信息之前,还包括:当所述投票者的身份验证通过时,对所述投票信息进行解密;

所述对所述投票信息进行存在性证明以及时间戳处理,得到处理后的投票信息,包括:对解密后的所述投票信息进行存在性证明以及时间戳处理,得到所述处理后的投票信息。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述接收所述投票信息,根据所述投票信息验证所述投票者的身份,包括:

解析所述投票信息以获取所述投票者的数字签名,验证所述数字签名。

如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在所述将所述区块上传至区块链之后,所述方法还包括:

接收区块链中其他任意节点发送的针对所述投票信息的查询请求,输出所述投票信息。

第二方面,本发明实施例提供了一种投票装置,所述装置包括:

接收单元,用于接收投票者的投票授权请求信息;

生成单元,用于根据所述投票授权请求信息,生成投票权限信息;

加密单元,用于对所述投票权限信息进行加密处理,得到加密后的授权信息;

发送单元,用于发送所述授权信息,以使得所述投票者根据所述授权信息,发送投票信息;

验证单元,用于接收投票者的投票信息,根据所述投票信息验证所述投票者的身份;

打包单元,用于当所述投票者的身份验证通过时,将所述投票信息打包成区块;

传输单元,用于将所述区块上传至区块链。

第三方面,本发明提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面中的任一项所述的方法。

第四方面,本发明提供了一种计算机可读存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述任意一项所述的方法。

本发明实施例提供的技术方案,利用区块链的不可篡改的特性,对投票者的投票权限进行管理,以及对投票者的投票信息进行保护,可以解决现有技术中ip地址和id容易被其他人窃取或者伪造,带来投票结果的可信度降低的问题,并且对投票者的投票权限进行管理还可以在一定程度上保证投票的有效性,从而进一步提高投票结果的可信度,进而保证投票结果最大程度的体现民意。

【附图说明】

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例提供的一种投票方法的流程示意图;

图2是本发明实施例提供的另一种投票方法的流程示意图;

图3是本发明实施例提供的另一种投票方法的流程示意图;

图4是本发明实施例提供的一种投票装置的功能方框图;

图5是本发明实施例提供的一种计算机设备的功能方框图。

【具体实施方式】

为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

针对于现有技术中投票结果可信度低的问题,本发明实施例提出了一种投票方法,将投票机制与区块链技术结合,利用区块链的去中心化的特性,将投票者的投票信息分布存储在各个节点中,并且利用区块链的不可篡改的特性和可追溯性,保证投票信息的可靠性,从而,保证投票结果的可信度。

请参考图1,其为本发明实施例提供的一种投票方法的流程示意图。

102、接收投票者的投票授权请求信息。

104、根据所述投票授权请求信息,生成投票权限信息。

本发明中,投票权限信息可以包括但不限于:投票的地址、被投票人或被投票事物、投票的权重等信息。其中,所述投票地址可以是网址,或者,投票界面等。

106、对所述投票权限信息进行加密处理,得到加密后的授权信息。

本发明的一个具体实施例中,对投票权限信息进行加密处理,以得到加密后的授权信息具体可以为:用该投票者的公钥通过加密算法对投票权限信息进行加密处理,得到加密后的授权信息,获取到该授权信息的投票者若想要得到投票地址、被投票人等相关投票权限信息,以参与投票,需要先用自身的私钥对授权信息进行解密,才能够得到投票权限信息,进行投票。这里需要说明的是,投票者的公钥和私钥是基于公钥加密技术得到的一对密钥,每一个私钥都有一个相对应的公钥,通过一种密钥进行加密的信息,可以通过与之对应的另一种密钥进行解密。通常该投票者的公钥可以通过广播方式发送给区块链中的所有节点,而私钥由自己保存,并且具有该投票者公钥的设备不能通过该公钥推算出对应的私钥,因此,通过使用投票者的公钥通过加密算法对投票权限信息进行加密处理,从而保证只要具有相对应的私钥的投票者才可以获取对应的投票权限信息,进行投票,从而,可以避免被其他人窃取。

108、发送所述授权信息,以使得所述投票者根据所述授权信息,发送投票信息。

110、接收投票者的投票信息,根据该投票信息验证所述投票者的身份。

本发明中,当对投票者的身份进行验证通过时,表明该投票信息是由已经过授权的投票者发送的,该投票信息来源可靠,可以将该投票信息上传到区块链中,从而,触发执行步骤112将投票信息打包成区块;而当对投票者的身份进行验证未通过时,表明该投票信息是非授权的投票者发送的,该投票信息来源不可靠,该投票信息也将不会被打包上传到区块链中。

通过对投票者的身份进行验证,只有在该投票者身份验证头通过时,确定投票信息来源可靠后,才将投票信息打包成区块,上传到区块链中,从而可以在一定程度上保证区块链上的投票信息的可靠性和有效性。

112、当所述投票者的身份验证通过时,将投票信息打包成区块。

114、将所述区块上传至区块链。

本发明中,将区块进行全网广播,使得区块链中的任意节点都可以接收到该投票者发送的投票信息,从而可以实现去中心化,保证区块链中的任意节点出现故障时,也不会影响区块链的正常工作。

本发明提出一种投票方法,利用区块链的不可篡改的特性,对投票者的投票权限进行管理,以及对投票者的投票信息进行保护,可以解决现有技术中ip地址和id容易被其他人窃取或者伪造,带来投票结果的可信度降低的问题,并且对投票者的投票权限进行管理还可以在一定程度上保证投票的有效性,从而进一步提高投票结果的可信度,进而保证投票结果最大程度的体现民意。

本发明中,可选的是,为了保证打包生成的区块在上传到区块链的过程中,不被其他非法人员获取到,并篡改区块中的投票信息,基于此目的,针对于步骤112当所述投票者的身份验证通过时,将投票信息打包成区块的操作,具体为:对所述投票信息进行存在性证明以及时间戳处理,得到处理后的投票信息;然后,将所述处理后的投票信息打包成区块。

其中,对投票信息进行存在性证明的处理具体可以为利用哈希算法将投票信息对应的二进制值映射为的固定长度的二进制值,该固定长度的二进制值为哈希值。对投票信息进行时间戳处理主要目的是确定一个时间标识,基于此,投票信息的时间戳处理可以为:将投票信息打包到区块体的开始时间确定为时间戳;或者,将投票信息打包到区块体的结束时间确定为时间戳;或者,将投票信息打包到区块体的起止时间段内任意时刻确定时间戳。这里需说明的是,投票信息的存在性证明以及时间戳的获取没有先后顺序,投票信息的存在性证明以及时间戳可以同时获取;或者,可以先获取投票信息的存在性证明,其次获取时间戳;又或者,还可以先获取时间戳,然后在获取投票信息的存在性证明。

另外,投票信息的存在性证明即哈希值具有数据唯一且紧凑,一段信息哪怕只是更改该信息的一个字母,其经过哈希算法处理得到的哈希值也将不同。而时间戳是用于标识时间的字符序列,其具有唯一性,为区块的唯一时间标识,是每次投票信息变化的认证,因此,利用投票信息的存在性证明以及时间戳的唯一性,从而可以保证投票信息的不可篡改,进而保证投票信息的真实性和可靠性。

结合上述针对步骤112的实现提供的实施例,进一步来说,投票信息在网络上传输的过程中,可能会被一些黑客非法拦截,并修改投票信息,从而降低投票信息的可靠性,因此,为了避免投票信息被非法修改,投票者在向对应的节点发送投票信息前,会用该对应的节点的公钥进行加密处理后在发送,这样投票信息即使被黑客拦截,黑客也无法破解密码,获取到投票信息,基于此,若所述投票者发送的投票信息为用对应的节点的公钥进行加密处理后的信息,在对所述投票信息进行存在性证明以及时间戳处理,得到处理后的投票信息之前,当所述投票者的身份验证通过时,需要用自身的私钥对加密的投票信息进行解密,以得到投票信息。

本发明中,可选的是,本发明中针对于步骤110所述接收投票者的投票信息,根据该投票信息验证所述投票者的身份,可以通过解析投票信息以获取到投票者的数字签名,然后,验证投票者的数字签名实现对投票者身份的验证。其中,投票者的数字签名是一种使用投票者自身的私钥经过加密处理后的数值,该数值是独一无二的,且不可篡改的,投票者的数字签名唯一标识一个投票者。通过验证投票者的数字签名验证信息的身份信息具体为:投票者在发送投票信息之前,使用自身的私钥进行加密处理,然后在发送将加密处理后的投票信息,区块链中的任意节点接收到加密后的投票信息后,用该投票者的公钥进行解密,若能够解密成功,说明该投票者身份合法,则投票者身份验证通过;若解密识别,说明该投票者身份不合法,则投票者身份验证未通过。

进一步的,为了在一定程度上缓解刷票行为影响投票结果,使得投票结果不能最大程度的体现投票者意愿的问题,本发明提供了另一实现方式,如图2所示,步骤104根据所述投票授权请求信息,生成投票权限信息的实现,具体包括一下步骤:

1041、根据投票授权请求信息,判断所述投票者是否符合投票资格对应的预设条件。

本发明中,涉及的投票者发送的投票授权请求信息中可以包括但不限于:投票者年龄、投票者政治面貌、投票者所从事的工作类型以及职称等身份信息,投票者的所在位置信息等与投票者相关信息。

具体的,执行主体中预设有投票资格筛选条件,即投票资格对应的预设条件,在接收到投票者发送的投票授权请求信息时,根据投票者身份信息,投票者的所在位置信息等与投票者相关信息与预设有投票资格筛选条件进行比较,从而确定是否可以授权该投票者投票资格。例如,执行主体中预设有投票资格筛选条件为:投票者在中国,且投票者从事金融行业;若执行主体接收到的投票授权请求信息中携带信息:投票者在美国,从事金融行业,经过比较处理后,执行主体判断出该投票者不符合投票资格对应的预设条件,不授予投票者投票资格;而若执行主体接收到的投票授权请求信息中携带信息:投票者在中国,从事金融行业,经过比较处理后,执行主体判断出该投票者符合投票资格对应的预设条件,可以授予投票者投票资格。

需要说明的是,上述预设的投票资格筛条件仅为本发提供的一个具体举例,投票资格筛选条件可以结合具体应用场景进行设定,本发明对于执行主体中预设的投票资格筛选条件不做限定。

1042、若判断出所述投票者符合预设投票资格对应的预设条件,生成投票权限信息。

补充说明的是,若判断出投票者不符合预设投票资格对应的预设条件,则表明该投票者不具有投票资格,因此,将不会发送任何信息;或者,不会发送包含投票地址、被投票人等投票权限信息,而是发送授权失败的提示信息。

进一步的,为了便于查看投票信息,本发明提供的另一种实现方式,如图3所示,具体还包括:

116、接收区块链中其他任意节点发送的针对投票者的投票信息的查询请求,输出投票信息。

需要说明的是,投票信息中存在部分信息涉及投票者个人隐私信息,为了保证投票者人身安全,这部分信息可以不公开,因此,在将投票信息打包成区块上传到区块链中,可以先对部分信息用对应用户的公钥进行加密,然后,打包成区块上传到区块链中,从而,对于这本部分信息,只有拥有与该公钥对应的私钥的节点才可以查看,保证了投票者人身安全,进而解决投票者由于顾虑个人隐私信息泄露,而放弃参与投票的问题。

基于上述方案,本发明进一步提供了实现上述基投票方法的装置。

请参考图4,其为本发明提供的一种投票装置的功能框图,所述装置包括:

接收单元21,用于接收投票者的投票授权请求信息;

生成单元22,用于根据所述投票授权请求信息,生成投票权限信息;

加密单元23,用于对所述投票权限信息进行加密处理,得到加密后的授权信息;

发送单元24,用于发送所述授权信息,以使得所述投票者根据所述授权信息,发送投票信息;

验证单元25,用于接收投票者的投票信息,根据该投票信息验证所述投票者的身份;

打包单元26,用于当所述投票者的身份验证通过时,将投票信息打包成区块;

传输单元27,用于将所述区块上传至区块链。

可选的是,本发明实施例中生成单元22具体用于:

根据投票授权请求信息,判断所述投票者是否符合投票资格对应的预设条件;

若判断出所述投票者符合预设投票资格对应的预设条件,生成所述投票权限信息。

可选的是,本发明实施例中加密单元23具体还用于:

用所述投票者的公钥对投票权限信息加密,得到所述加密后的授权信息。

可选的是,本发明实施例中打包单元26具体用于:

对所述投票信息进行存在性证明以及时间戳处理,得到处理后的投票信息;

将所述处理后的投票信息打包成区块。

具体的,当所述投票信息为投票者进行加密处理的信息时,该打包单元26执行对所述投票信息进行存在性证明以及时间戳处理,得到处理后的投票信息之前,还需要执行:当所述投票者的身份验证通过时,需要用自身的私钥对所述投票信息进行解密;然后,在对解密后的投票信息进行存在性证明以及时间戳处理,得到处理后的投票信息。

可选的是,本发明实施例中验证单元25具体用于:

解析该投票信息以获取所述投票者的数字签名,验证所述投票者的数字签名。

可选的是,本发明实施例中传输单元27,还用于:

接收区块链中其他任意节点发送的针对投票者的投票信息的查询请求,输出投票信息。

由于本实施例中的各模块能够执行投票方法,本实施例未详细描述的部分,可参考上述针对于投票方法实施例的相关说明。

本发明提出的技术方案,利用区块链的不可篡改的特性,对投票者的投票权限进行管理,以及对投票者的投票信息进行保护,可以解决现有技术中ip地址和id容易被其他人窃取或者伪造,带来投票结果的可信度降低的问题,并且对投票者的投票权限进行管理还可以在一定程度上保证投票的有效性,从而进一步提高投票结果的可信度,进而保证投票结果最大程度的体现民意。

本发明提供了一种计算机设备,如图5所示,图5为本发明提供的该计算机设备的功能方框图。该计算机设备具体包括存储器31、处理器32以及存储在所述存储器31中并可在所述处理器32上运行的计算机程序,所述处理器32执行所述计算机程序时实现上述任一项所述投票方法。

由于本实施例中的处理器32能够执行投票方法,本实施例未详细描述的部分,可参考上述针对于投票方法实施例的相关说明。

本发明提出的技术方案,利用区块链的不可篡改的特性,对投票者的投票权限进行管理,以及对投票者的投票信息进行保护,可以解决现有技术中ip地址和id容易被其他人窃取或者伪造,带来投票结果的可信度降低的问题,并且对投票者的投票权限进行管理还可以在一定程度上保证投票的有效性,从而进一步提高投票结果的可信度,进而保证投票结果最大程度的体现民意。

本发明提供了一种计算机可读存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行前述任意一项所述的投票方法。

本发明提出的技术方案,利用区块链的不可篡改的特性,对投票者的投票权限进行管理,以及对投票者的投票信息进行保护,可以解决现有技术中ip地址和id容易被其他人窃取或者伪造,带来投票结果的可信度降低的问题,并且对投票者的投票权限进行管理还可以在一定程度上保证投票的有效性,从而进一步提高投票结果的可信度,进而保证投票结果最大程度的体现民意。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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