掌桥专利:专业的专利平台
掌桥专利
首页

一种电子投票方法及相关装置

文献发布时间:2024-04-18 19:52:40


一种电子投票方法及相关装置

技术领域

本申请涉及信息安全技术领域,尤其涉及一种电子投票方法及相关装置。

背景技术

电子投票是一种基于密码学的新型投票方式,相较于传统纸质投票,电子投票因具有高效、安全、透明等特性而被广泛应用于多个领域。目前电子投票方案主要有四种类型:基于混合网络的电子投票方案、基于盲签名的电子投票方案、基于秘密分享的电子投票方案和基于同态加密的电子投票方案。

然而,现有的电子投票方案仍存在一些问题尚未解决:

(1)安全问题:当前各电子投票方案都依赖可信第三方(如注册机构、计票机构等)及其中心化服务器,这增加了中心机构单点的操作风险;例如,当可信第三方的中心化服务器遭到恶意攻击时,会造成投票数据和个人信息泄露,从而提升了投票过程的操作风险。

(2)隐私问题:在电子投票方案中,为了让投票对象验证他们的选票结果,需要在计票阶段显示所有的选票信息,包括投票对象的投票身份,候选对象获得的确切选票数等,这会导致投票对象和候选对象的身份信息等隐私泄露,使得恶意敌手可以轻易威胁投票对象以特定方式投票,或通过完整的计票结果来推断投票对象的选票,导致投票系统的匿名性被削弱。

(3)监管问题:为了避免恶意参与者的不合法投票,需要对各投票对象的身份进行监管,例如,当公布的投票结果与投票对象的实际投票不符时,需要进行检测识别,提供问责机制,而当前的电子投票方案为了保证各投票对象的身份隐私,无法对投票数据进行精确的溯源追踪,这样,会导致投票监管任务无法顺利执行,增加投票活动中恶意投票的概率。

有鉴于此,需要针对上述问题提出一种新的电子投票方法。

发明内容

本申请提供了一种电子投票方法及相关装置,用以提高电子投票系统的隐私性、公平性和可验证性。

第一方面,本申请实施例提供了一种电子投票方法,所述方法包括:

发布目标投票活动的基本信息后,接收投票对象基于基本信息发送的选票信息,选票信息至少包含投票对象在区块链中的身份证明和选票密文,其中,选票密文是基于预设的投票公钥对目标选票加密后获得的;

基于身份证明对投票对象进行身份验证;

在确定通过身份验证后,基于选票密文和预设的投票私钥,对选票信息进行有效性验证;

在确定通过有效性验证后,将选票信息添加至计票集合。

可选的,投票对象在区块链中具有唯一的账户地址,则投票对象在区块链中的身份证明是采用以下方式获得的:

将预设的哈希参数发送给投票对象,并接收投票对象基于哈希参数和注册密钥中包含的注册公钥,将账户地址和隐私信息绑定后生成的注册信息;

基于注册信息对投票对象进行注册合法性验证,并在注册合法性验证通过后,将注册信息保存至数据库,记录注册信息在数据库中的访问路径;

基于数据库的访问入口地址和访问路径生成身份证明。

可选的,基于身份证明对投票对象进行身份验证,包括:

基于身份证明和注册密钥中包含的注册私钥,对投票对象进行投票资格验证;

在通过投票资格验证后,调用绑定验证接口对账户地址和隐私信息的绑定关系进行隐私验证,其中,绑定验证接口是投票对象在目标投票活动中注册成功后,公开的与隐私信息相关的隐私证明参数;

在通过隐私验证时,判定投票对象通过身份验证。

可选的,选票密文是基于预设的投票公钥,对随机致盲因子和目标选票加密后获得的,并且,基于随机致盲因子和目标选票,生成有已公开的承诺值;承诺值表征:投票对象承诺在目标投票活动中完成了合法投票;

则基于选票密文和预设的投票私钥,对选票信息进行有效性验证,包括:

基于选票信息,获取与目标选票相关联的承诺值,并调用承诺验证接口,对承诺值进行承诺合法性验证,承诺验证接口是生成承诺值后公开的,与随机致盲因子和目标选票相关的投票证明参数;

当承诺值通过承诺合法性验证时,基于投票私钥,对选票密文进行解密,获得目标选票及其对应的随机致盲因子;

基于目标选票和随机致盲因子,对承诺值进行匹配验证,并在匹配验证通过后,判定选票信息通过有效性验证。

可选的,将选票信息添加至计票集合之后,还包括:

当满足预设的活动终止条件时,获得计票集合;计票集合中包含:多个投票对象各自在指定历史时段中发送的选票信息;

基于计票集合获得计票结果;计票结果包含:在指定历史时段中各候选对象各自获得的选票总数目;

基于计票结果,获得目标投票活动的公示结果。

可选的,还包括:

在确定身份验证或有效性验证不通过时,将目标选票判定为无效选票,并发送告警信号。

第二方面,本申请实施例还提供了一种电子投票装置,所述装置包括:

处理模块,用于发布目标投票活动的基本信息后,接收投票对象基于基本信息发送的选票信息,选票信息至少包含投票对象在区块链中的身份证明和选票密文,其中,选票密文是基于预设的投票公钥对目标选票加密后获得的;

身份验证模块,用于基于身份证明对投票对象进行身份验证;

选票验证模块,用于在确定通过身份验证后,基于选票密文和预设的投票私钥,对选票信息进行有效性验证;

统计模块,用于在确定通过有效性验证后,将选票信息添加至计票集合。

可选的,投票对象在区块链中具有唯一的账户地址,则投票对象在区块链中的身份证明是处理模块采用以下方式获得的:

将预设的哈希参数发送给投票对象,并接收投票对象基于哈希参数和注册密钥中包含的注册公钥,将账户地址和隐私信息绑定后生成的注册信息;

基于注册信息对投票对象进行注册合法性验证,并在注册合法性验证通过后,将注册信息保存至数据库,记录注册信息在数据库中的访问路径;

基于数据库的访问入口地址和访问路径生成身份证明。

可选的,基于身份证明和预设的注册密钥,对投票对象进行身份验证时,身份验证模块用于:

基于身份证明和注册密钥中包含的注册私钥,对投票对象进行投票资格验证;

在通过投票资格验证后,调用绑定验证接口对账户地址和隐私信息的绑定关系进行隐私验证,其中,绑定验证接口是投票对象在目标投票活动中注册成功后,公开的与隐私信息相关的隐私证明参数;

在通过隐私验证时,判定投票对象通过身份验证。

可选的,选票密文是基于预设的投票公钥,对随机致盲因子和目标选票加密后获得的,并且,基于随机致盲因子和目标选票,生成有已公开的承诺值;承诺值表征:投票对象承诺在目标投票活动中完成了合法投票;

则基于选票密文和预设的投票私钥,对选票信息进行有效性验证时,选票验证模块用于:

基于选票信息,获取与目标选票相关联的承诺值,并调用承诺验证接口,对承诺值进行承诺合法性验证,承诺验证接口是生成承诺值后公开的,与随机致盲因子和目标选票相关的投票证明参数;

当承诺值通过承诺合法性验证时,基于投票私钥,对选票密文进行解密,获得目标选票及其对应的随机致盲因子;

基于目标选票和随机致盲因子,对承诺值进行匹配验证,并在匹配验证通过后,判定选票信息通过有效性验证。

可选的,将选票信息添加至计票集合之后,统计模块还用于:

当满足预设的活动终止条件时,获得计票集合;计票集合中包含:多个投票对象各自在指定历史时段中发送的选票信息;

基于计票集合获得计票结果;计票结果包含:在指定历史时段中各候选对象各自获得的选票总数目;

基于计票结果,获得目标投票活动的公示结果。

可选的,身份验证模块和选票验证模块还用于:

在确定身份验证或有效性验证不通过时,将目标选票判定为无效选票,并发送告警信号。

第三方面,本申请实施例提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的方法。

第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一所述方法的步骤。

第五方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品在被计算机调用时,使得所述计算机执行如第一方面所述的方法。

本申请实施例中,智能合约发布目标投票活动的基本信息后,接收投票对象基于基本信息发送的选票信息,选票信息中包含投票对象的身份证明和目标选票对应的密文,智能合约在统计选票之前,首先基于身份证明和预设的注册密钥,对投票对象进行身份验证,在确定通过身份验证后,再基于选票密文和预设的投票私钥,对选票信息进行有效性验证,最后在确定通过有效性验证后,将选票信息添加至计票集合。

采用这种方式,使用智能合约来替代可信第三方机构,完成对投票对象的资格审查,使用无中心化应用存储用户敏感身份信息,避免了第三方机构的单点操作风险,也保证了投票方案的公平性,此外,选票信息中只包含投票对象的身份证明,不包含投票对象的真实身份,且在身份验证过程中不会泄露其身份信息,保护了用户隐私,同时,身份证明与隐私信息进行绑定,能够实现恶意参与者的识别和追踪,降低了投票活动中恶意投票的概率。

附图说明

图1为本申请实施例中系统架构示意图;

图2为本申请实施例中系统架构下电子投票的详细流程图;

图3为本申请实施例中系统架构下生成身份证明的详细流程图;

图4为本申请实施例中提供的一种女巫攻击的场景示意图;

图5为本申请实施例中提供的一种获得选票密文的逻辑示意图;

图6为本申请实施例中对投票对象进行身份验证的详细流程图;

图7为本申请实施例中提供的一种零知识证明验证的逻辑示意图;

图8为本申请实施例中对选票信息进行有效性验证的详细流程图;

图9为本申请实施例中获得公示结果的详细流程图;

图10为本申请实施例中计票集合的逻辑示意图;

图11为本申请实施例中计票结果的逻辑示意图;

图12为本申请实施例中一种电子投票装置的结构示意图;

图13为本申请实施例中一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。

以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。

(1)变色龙哈希(Chameleon Hash,CH):是一种带陷门的单向哈希函数,知道陷门的用户可以轻易计算出变色龙哈希函数的碰撞,该函数由参数生成算法Setup,密钥生成算法KeyGen,哈希值生成算法Hash,碰撞计算算法Forge组成。

(2)非交互零知识证明(Non-interactive zero-knowledge proofs,NIZKs):指证明者在不泄露具体信息的前提下,让验证者相信某个论断是真的,且证明者只创建一份证明,所有持有该证明的验证者都可以验证,非交互零知识证明协议由初始化Setup,证明生成算法Prove,验证算法Verify组成。

(3)承诺方案:指验证者在不知道隐私数据的情况下验证承诺方发送的数据。承诺方案具有隐藏性和绑定性两个基本性质,隐藏性为数据提供隐私保护,绑定性则为数据监管提供可靠性保障。其方案由三个阶段(初始化阶段Setup,承诺阶段Com,打开阶段Open)组成,本申请实施例中使用的承诺方案为具有加法同态特性的Pedersen承诺。

(4)计票隐藏:该协议保证除必要的最终投票结果之外,不会透露更多信息(如中间结果,选票数等),敌手无法从公布的结果中获得更多关于投票对象选择的信息。

(5)投票结果函数:根据投票方法和给定每个候选对象的选票数量,结果函数返回选举的最终结果而不泄露任何不必要的信息,以实现具有计票隐藏特性的电子投票系统。

(6)智能合约:是运行在区块链上的程序,在满足预先确定的条件时会自动执行,无法人为干预。智能合约作为可信的计算参与方可代替传统电子投票中心节点的任务,解决信任和单点失效问题。

下面对本申请实施例的设计思想进行简要介绍:

传统电子投票系统不仅显示投票结果,还显示完整的计票结果,包括每个候选人的确切选票数,这可能会导致投票人和候选人的隐私泄露问题,例如,在多轮投票活动中,除了候选人进入决选的信息外,不应该公开中间计票结果,否则可能会影响投票人在下一轮的投票意愿。

进一步的,目前很多基于区块链的电子投票方案,只是将区块链作为一个公告板来公示选票信息,投票和计票过程仍依赖注册中心、计票中心等可信第三方机构,而第三方机构本身可能存在欺骗(丢弃单个候选人获得的部分选票等)行为,导致最终胜出的候选人的得票结果不真实,并且,当可信第三方的中心化服务器遭到恶意攻击时,会造成投票数据和个人信息泄露的风险,因此投票公平性问题没有解决,还存在中心化威胁。

此外,为了监督投票的正确执行,降低投票活动中恶意投票的概率,需要验证投票结果的真实性,并实现区块链上数据的溯源追踪。

因此,本申请实施例中主要针对现有技术存在的低隐私问题、中心化问题和区块链监管不足等问题,提出了一种隐私增强的可验证区块链电子投票方法。

本申请实施例所提供的方案利用区块链技术,在缺少可信第三方的情况下实现大规模的多方数据协作,解决了电子投票过程中的“信任”和数据所有权问题,结合Pedersen承诺和零知识证明,对数据进行隐藏,保护用户数据隐私,同时利用变色龙哈希的特殊属性建立投票者隐私信息与投票身份的绑定关系,实现对投票数据的溯源追踪,完成监管任务。

以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例及实施例中的特征可以相互组合。

参阅图1所示,本申请实施例中,包含有智能合约100、投票发起对象101、投票对象102和时间服务器103四个主要部分,其中,投票发起对象101负责初始化系统,设置活动相关参数,发布智能合约100并部署到区块链网络中,投票对象102通过智能合约100注册,获得投票资格,以及调用智能合约100的相关接口完成投票操作,时间服务器103用于各个投票参与节点的同步,主要负责监控投票活动的开始和截止时间。

智能合约100是运行在区块链上的程序,与其他程序一样,是代码和数据的集合,投票发起对象101根据目标投票活动的需求,编写相应的注册、投票和计票等合约组成智能合约100,其部署在区块链网络之后便无法修改,在满足预设条件时,智能合约100会自动按照所写代码准确执行,投票对象101可以调用智能合约100中的函数参与整个投票过程。

基于上述系统架构,参阅图2所示,本申请实施例中的电子投票方法主要包括以下步骤:

步骤201:发布目标投票活动的基本信息后,接收投票对象基于基本信息发送的选票信息。

具体的,本申请实施例中,目标投票活动的发布是以智能合约在区块链上部署完成为依据,因此,在此之前,投票发起对象需要根据目标投票活动的需求编写智能合约包含的注册、投票和计票等合约,并且设置好身份验证和投票相关参数,同时,生成非交互式零知识证明、变色龙哈希算法等初始参数。

例如,投票发起人首先生成系统公共安全参数并公示,包括但不限于注册合约公私钥对(pk

进一步地,智能合约中定义了规则描述函数、投票函数等接口,投票对象调用规则描述函数即可了解本次投票活动的相关信息,包括全局唯一的投票编号、投票标题、投票要求等,调用投票函数即可完成投票。

在实际应用中,投票制度多种多样,从投票形式看可以分为二元投票制、排序投票制和计分投票制等,从投票结果看可以分为单一获胜者和多获胜者两种形式,投票发起对象根据自己的需求部署相应的投票合约。

本申请实施例中,定义投票编号为vote

投票对象获得目标投票活动的基本信息后,需在注册截止时间T

具体的,本申请实施例中,选票信息至少包含投票对象在区块链中的身份证明和选票密文,其中,选票密文是基于投票公钥pk

参阅图3所示,投票对象在区块链中的身份证明是采用以下方式获得的:

步骤301:将预设的哈希参数发送给投票对象,并接收投票对象基于哈希参数和注册密钥中包含的注册公钥,将账户地址和隐私信息绑定后生成的注册信息。

在区块链中,用户可以直接创建自己的账户地址id

在投票注册阶段中,投票对象根据变色龙哈希参数λ生成用户密钥对

π

并使用注册公钥pk

具体的,区块链中,用户拥有代表自己身份的隐私信息priv

步骤302:基于注册信息对投票对象进行注册合法性验证,并在注册合法性验证通过后,将注册信息保存至数据库,记录注册信息在数据库中的访问路径。

智能合约使用注册私钥sk

可选的,本申请实施例中还包括筛选投票对象的身份,确认投票对象是否具有初始投票资格,例如,若本次投票活动仅允许某公司内部工作人员参与,且投票对象的身份为该公司的部门职工,则投票对象具有初始投票资格。

进一步的,当智能合约验证投票对象的账户地址id

步骤303:基于数据库的访问入口地址和访问路径生成身份证明。

具体地,投票对象生成注册信息后,还为以下关系生成零知识证明π

x=(rt,pk

π

其中,rt,path

可选的,本申请实施例中,投票对象注册成功后,还需向地址Addr

进一步地,投票对象按照自己的意愿进行投票,生成对应的目标选票,并引入随机致盲因子,基于Pedersen承诺对目标选票进行绑定,获得承诺值。

例如,投票对象的目标选票为:

随机选择一个整数作为随机致盲因子r,基于Pedersen承诺,针对投票对象对每一个候选人的选票生成对应的承诺值,即:

c

其中,第j个承诺值表示投票对象对第j个候选人的选票承诺,表征投票对象承诺在目标投票活动中完成了合法投票。

可选的,为减少零知识证明中承诺的约束大小,也可以利用向量承诺来进行性能优化,从而提高计算效率。

为了证明c

x=(c

π

为了保证目标选票的隐私性,参阅图5所示,投票对象使用投票公钥pk

最后,投票对象以交易的形式发送自己的选票信息

基于步骤201所述,投票对象发送的选票信息只包含投票对象的身份证明,不包含其隐私信息,很好地保护了投票对象的隐私,并且在上传选票信息时,使用公钥加密算法对目标选票进行加密,能够有效防止关键信息被第三方窥探,同时,区块链的不可篡改性保证在所有选票信息发送到智能合约后,任何人都不能修改和删除,保证了方案的完整性。

此外,本方案使用密码学承诺方案,在不披露任何隐私数据明文的情况下向第三方证明承诺中的敏感信息满足一定的约束关系,利用承诺自带的加法同态性,配合零知识证明获取约束关系的证明功能,提供了投票过程中数据关联性的第三方验证,且方案更加轻量级,提高了系统的性能和适用范围。

步骤202:基于身份证明对投票对象进行身份验证。

具体的,当目标投票活动达到投票截止时间T

计票合约自动触发对所有选票信息的检查和统计,其中,参阅图6所示,首先采用以下方式对投票对象进行身份验证:

步骤2021:基于身份证明和注册密钥中包含的注册私钥,对投票对象进行投票资格验证。

例如,解析选票信息中包含的身份证明

步骤2022:在通过投票资格验证后,调用绑定验证接口对账户地址和隐私信息的绑定关系进行隐私验证。

其中,绑定验证接口是投票对象在目标投票活动中注册成功后,公开的与隐私信息相关的隐私证明参数。

具体的,本申请实施例中,绑定验证接口即为前文所述零知识证明π

0/1←Verify(vk

其中,x=(rt,pk

步骤2023:在通过隐私验证时,判定投票对象通过所述身份验证。

若投票人名单中能够找到投票对象的注册信息,且投票对象提供的绑定验证接口验证成功,则判定投票对象通过身份验证。

步骤203:在确定通过身份验证后,基于选票密文和投票私钥,对选票信息进行有效性验证。

进一步地,参阅图8所示,本申请实施例中,采用以下方式对选票信息进行有效性验证:

步骤2031:基于选票信息,获取与目标选票相关联的承诺值,并调用承诺验证接口,对承诺值进行承诺合法性验证。

其中,承诺验证接口是生成承诺值后公开的,与随机致盲因子和目标选票相关的投票证明参数。

具体的,本申请实施例中,承诺验证接口即为前文所述零知识证明π

0/1←Verify(vk

其中,x=(c

步骤2032:当承诺值通过承诺合法性验证时,判定选票密文中包含的目标选票符合预设的投票规则,并基于投票私钥,对选票密文进行解密,获得目标选票及其对应的随机致盲因子。

确定目标选票满足预设的投票规则后,即可使用投票私钥sk

步骤2033:基于目标选票和随机致盲因子,对承诺值进行匹配验证,并在匹配验证通过后,判定选票信息通过有效性验证。

具体的,使用承诺方案中与承诺阶段算法Com对应的打开阶段算法Open,对承诺值进行匹配验证,即

0/1←Open(c

当算法输出为1时,表征智能合约计算获得的承诺值与投票对象公开的承诺值匹配成功,即表明选票密文在上传至智能合约的过程中,其中包含的目标选票未遭到二次篡改。

基于步骤202和步骤203所述,结合承诺方案和零知识证明,既实现了数据的隐藏,又可以对外提供可靠的验证手段,通过验证计票过程的正确性,特别是零知识证明的正确性,可以让所有人建立对投票活动以及投票结果的信任,实现一个可证明和可验证的电子投票系统。

步骤204:在确定通过有效性验证后,将选票信息添加至计票集合。

本申请实施例中,当选票信息通过有效性验证后,将选票信息添加至计票集合中,即只有前文所有验证均通过的选票信息才会被计数。

进一步地,参阅图9所示,智能合约统计合法选票的流程如下:

步骤901:当满足预设的活动终止条件时,获得计票集合。

其中,计票集合中包含:多个投票对象各自在指定历史时段中发送的选票信息。

例如,当时间服务器记录本次目标投票活动持续时间到达投票截止时间T

步骤902:基于计票集合获得计票结果。

其中,计票结果包含:在指定历史时段中各候选对象各自获得的选票总数目。

具体的,本申请实施例中,计票合约对所有选票信息进行汇总时,首先利用投票私钥sk

其中,n

计票合约根据Pedersen承诺的加法同态特性

步骤903:基于计票结果,获得目标投票活动的公示结果。

可选的,本申请实施例中,为了实现计票隐藏的投票系统,智能合约使用预设的结果函数f

例如,在单一选择投票中,人们只对获胜者感兴趣,则结果函数f

同时,智能合约针对不同的投票方法定义了丰富的结果函数f

此外,为了满足电子投票的可验证性,让投票对象能够验证计票阶段是否正确统计了所有选票,计票合约还为以下关系生成零知识证明:

π

最终,计票公布投票结果res和零知识证明(x,π

基于步骤204所述,利用结果函数公布最终的投票结果,而不公布计票结果,实现了计票结果的隐藏,可以防止恶意攻击者从计票结果推断投票对象的目标选票,一定程度上避免了选票买卖,降低了投票对象被胁迫的可能性,增强了投票系统的安全性和隐私性,同时,利用零知识证明保证投票结果的完备性和可靠性,提供了方案的可验证性。

在另一种可选的实施例中,在确定身份验证或有效性验证不通过时,智能合约将目标选票判定为无效选票,并发送告警信号,即向投票发起人上报某投票对象可能存在恶意投票行为,同时,智能合约需要为无效选票的选票密文e

进一步地,针对存在恶意投票行为的投票对象,可以通过投票中投票对象的身份证明

综上所述,本方案使用智能合约的自动执行性实现了身份验证、注册、投票、计票等过程,无其他可信第三方机构存在,通过时间服务器的同步功能,使得智能合约在满足特定条件时便开始自动执行,并且只对在截止时间前的有效操作进行处理,如注册、投票等,比较操作时间与设置时间是否相同,不同则视为非法操作,不计入后续阶段。

同时,使用加密和同态承诺保证选票的秘密性,投票对象只能知道自己的选票结果,无法获得投票活动的中间计票结果,保证了投票方案的公平性,而且,使用押金机制增加作恶成本能够迫使参与者正确执行系统协议,投票发起人也可以根据选票信息中的身份证明进行计算,对执行恶意投票行为的投票对象进行身份追踪,反之,身份证明的存在也能够使得本方案监控投票发起人是否存在不诚实行为,进一步保证了投票系统的公正有效。

基于相同技术构思,参阅图12所示,本申请实施例还提供了一种电子投票装置,该装置包括:

处理模块1201,用于发布目标投票活动的基本信息后,接收投票对象基于基本信息发送的选票信息,选票信息至少包含投票对象在区块链中的身份证明和选票密文,其中,选票密文是基于预设的投票公钥对目标选票加密后获得的;

身份验证模块1202,用于基于身份证明对投票对象进行身份验证;

选票验证模块1203,用于在确定通过身份验证后,基于选票密文和预设的投票私钥,对选票信息进行有效性验证;

统计模块1204,用于在确定通过有效性验证后,将选票信息添加至计票集合。

可选的,投票对象在区块链中具有唯一的账户地址,则投票对象在区块链中的身份证明是处理模块1201采用以下方式获得的:

将预设的哈希参数发送给投票对象,并接收投票对象基于哈希参数和注册密钥中包含的注册公钥,将账户地址和隐私信息绑定后生成的注册信息;

基于注册信息对投票对象进行注册合法性验证,并在注册合法性验证通过后,将注册信息保存至数据库,记录注册信息在数据库中的访问路径;

基于数据库的访问入口地址和访问路径生成身份证明。

可选的,基于身份证明对投票对象进行身份验证时,身份验证模块1202用于:

基于身份证明和注册密钥中包含的注册私钥,对投票对象进行投票资格验证;

在通过投票资格验证后,调用绑定验证接口对账户地址和隐私信息的绑定关系进行隐私验证,其中,绑定验证接口是投票对象在目标投票活动中注册成功后,公开的与隐私信息相关的隐私证明参数;

在通过隐私验证时,判定投票对象通过身份验证。

可选的,选票密文是基于预设的投票公钥,对随机致盲因子和目标选票加密后获得的,并且,基于随机致盲因子和目标选票,生成有已公开的承诺值;承诺值表征:投票对象承诺在目标投票活动中完成了合法投票;

则基于选票密文和预设的投票私钥,对选票信息进行有效性验证时,选票验证模块1203用于:

基于选票信息,获取与目标选票相关联的承诺值,并调用承诺验证接口,对承诺值进行承诺合法性验证,承诺验证接口是生成承诺值后公开的,与随机致盲因子和目标选票相关的投票证明参数;

当承诺值通过承诺合法性验证时,基于投票私钥,对选票密文进行解密,获得目标选票及其对应的随机致盲因子;

基于目标选票和随机致盲因子,对承诺值进行匹配验证,并在匹配验证通过后,判定选票信息通过有效性验证。

可选的,将选票信息添加至计票集合之后,统计模块1204还用于:

当满足预设的活动终止条件时,获得计票集合;计票集合中包含:多个投票对象各自在指定历史时段中发送的选票信息;

基于计票集合获得计票结果;计票结果包含:在指定历史时段中各候选对象各自获得的选票总数目;

基于计票结果,获得目标投票活动的公示结果。

可选的,身份验证模块1202和选票验证模块1203还用于:

在确定身份验证或有效性验证不通过时,将目标选票判定为无效选票,并发送告警信号。

基于相同的技术构思,本申请实施例还提供了一种电子设备,该电子设备可实现本申请上述实施例提供的电子投票的方法流程。

在一种实施例中,该电子设备可以是服务器,也可以是终端设备或其他电子设备。

参阅图13所示,该电子设备可包括:

至少一个处理器1301,以及与至少一个处理器1301连接的存储器1302,本申请实施例中不限定处理器1301与存储器1302之间的具体连接介质,图13中是以处理器1301和存储器1302之间通过总线1300连接为例。总线1300在图13中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1300可以分为地址总线、数据总线、控制总线等,为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器1301也可以称为控制器,对于名称不做限制。

在本申请实施例中,存储器1302存储有可被至少一个处理器1301执行的指令,至少一个处理器1301通过执行存储器1302存储的指令,可以执行前文论述的一种电子投票方法。处理器1301可以实现图12所示的装置中各个模块的功能。

其中,处理器1301是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器1302内的指令以及调用存储在存储器1302内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。

在一种可能的设计中,处理器1301可包括一个或多个处理单元,处理器1301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1301中。在一些实施例中,处理器1301和存储器1302可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器1301可以是通用处理器,例如CPU、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的一种电子投票方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器1302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1302可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1302是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器1302还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

通过对处理器1301进行设计编程,可以将前述实施例中介绍的一种电子投票方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图2所示的实施例的一种电子投票方法的步骤。如何对处理器1301进行设计编程为本领域技术人员所公知的技术,这里不再赘述。

基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种电子投票方法。

在一些可能的实施方式中,本申请提供一种电子投票方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种电子投票方法中的步骤。

应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。

此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 一种电子标签验证方法及相关装置
  • 电子装置、应用于该电子装置的电源电路以及相关方法
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种电子投票验证方法、装置及电子投票系统
  • 一种对投票人选票信息加密的电子投票方法
技术分类

06120116332599