一种基于区块链的可验证投票方法及系统技术方案

技术编号:27936227 阅读:25 留言:0更新日期:2021-04-02 14:16
本发明专利技术提供了一种基于区块链的可验证投票方法及系统,包括:步骤M1:在智能合约中设定规则组件、投票组件和分发组件;步骤M2:基于规则组件设置投票规则;步骤M3:基于规则组件触发投票组件生成多种投票公钥;步骤M4:调用投票组件进行投票;步骤M5:利用分发组件判断用户公钥是否合法,当合法时,则正常访问;当不合法时,则被拒绝访问;步骤M6:根据规则组件及多种投票公钥进行计票;步骤M7:根据规则组件预设条件判断本轮投票是否结束,当结束时,则进入下一轮投票,否则继续等待投票;本发明专利技术通过采用智能合约完成投票规则设定,并通过设计三类组件,完成相互调用及调用安全,从而实现了调用安全保障和投票设置的灵活性。

【技术实现步骤摘要】
一种基于区块链的可验证投票方法及系统
本专利技术涉及区块链
,具体地,涉及一种基于区块链的可验证投票方法及系统,更为具体地,涉及一种基于区块链的可验证的慈善捐赠投票方法及系统。
技术介绍
在目前慈善投票过程中,投票的真实性和匿名性基于人为验证保密,不便捷且并没有解决投票人的隐私性问题;专利文献CN110162996A(申请号:201910329554.9)公开了一种基于区块链的投票系统、方法和投票终端,投票终端接收并显示投票题目,对投票人进行身份校验,接收投票人的投票录入后,将投票数据进行数据加密,将得到的加密后投票数据上传;区块链投票接收投票需求,按照投票需求编译投票智能合约,将投票题目和加密公钥发送至投票终端,接收加密后投票数据,并对加密后投票数据进行统计,形成投票结果,根据投票智能合约对投票结果进行上链存储。通过指纹识别解决投票人的身份认证,保证投票人的真实有效性;采用区块链技术,用区块链浏览器进行结果展示,编译智能合约处理投票数据,使得投票过程和统计结果透明可查,投票人可验证自己的投票内容,保证了投票结果的可信有效。目前众多实时性的业务应用交易量和交易速度非常快,当故障发生时,在应用服务器切换动作过程当中,这个时间窗口内持续的业务交易请求往往得不到处理。也就是说,这种双机热备或者其他冗余方式,在切换过程当中不可避免地会丢失一部分业务的处理,导致业务失败,以及应用服务后台对此进行的弥补处理。专利文献CN106411503A(申请号:201611063651.0)公开了区块链投票记账模式的记账方法及系统、投票及记账节点,方法包括:记账节点将区块发送给投票节点;投票节点动态产生下次有效的私钥及公钥,使用本次有效的私钥对区块的哈希值进行签名形成区块哈希签名,使用下次有效的私钥对区块的哈希值进行签名形成区块哈希新签名,将区块哈希签名、本次有效的公钥及区块哈希新签名发送至记账节点;记账节点验证投票结果的有效性;统计投票结果为有效的投票节点个数,若统计的投票节点个数满足条件,则将所有有效的投票结果记入所述区块头中,将其存入账本并发送给所有其它记账节点。本申请每次投票后作废私钥/公钥对,并重新生成新私钥/公钥,使得其仅一次有效,使记账安全性得到很大提升。因此,现有技术中的这种区块链投票系统,虽然解决了投票的安全性,但无法控制投票数量,且并通过设置投票规则进行多轮投票。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种基于区块链的可验证投票方法及系统。根据本专利技术提供的一种基于区块链的可验证投票方法,包括:步骤M1:在智能合约中设定规则组件、投票组件和分发组件;步骤M2:基于规则组件设置投票规则;步骤M3:基于规则组件触发投票组件生成多种投票公钥;步骤M4:调用投票组件进行投票;步骤M5:利用分发组件判断用户公钥是否合法,当合法时,则正常访问;当不合法时,则被拒绝访问;步骤M6:根据规则组件及多种投票公钥进行计票;步骤M7:根据规则组件预设条件判断本轮投票是否结束,当结束时,则结束投票,否则继续等待投票;所述规则组件是对投票规则按照预设要求进行设定;所述分发组件基于用户公钥判断用户合法性以及按用户请求触发规则组件或投票组件;所述投票组件生成多种投票公钥以及完成投票计数。优选地,所述步骤M2包括:在规则组件中设定规则哈希表,利用哈希表的键值结构对投票的规则进行存储,并通过哈希表的索引定位各项投票规则。优选地,所述步骤M3中多种投票公钥包括:多次使用公钥A和一次性使用公钥B。优选地,所述多次使用公钥A包括利用公钥A投票,公钥A进栈存储,通过弹栈进行计票;所述一次性使用公钥B包括利用公钥B投票,公钥B进哈希表存储,通过remove操作进行计票。优选地,所述步骤M5包括:通过分发组件访问规则组件和投票组件,通过投票组件的哈希表索引和/或栈的索引,判断用户传入的公钥是否在投票组件中存在,当存在时,则正常访问;当不存在时,则拒绝访问。优选地,所述步骤M7包括:通过分发组件从规则组件中获取本轮投票的投票终止规则,当满足本轮投票预设的终止规则时,则结束投票,不再调用投票组件进行计数;否则,通过调用投票组件进行计数。根据本专利技术提供的一种基于区块链的可验证投票系统,包括:模块M1:在智能合约中设定规则组件、投票组件和分发组件;模块M2:基于规则组件设置投票规则;模块M3:基于规则组件触发投票组件生成多种投票公钥;模块M4:调用投票组件进行投票;模块M5:利用分发组件判断用户公钥是否合法,当合法时,则正常访问;当不合法时,则被拒绝访问;模块M6:根据规则组件及多种投票公钥进行计票;模块M7:根据规则组件预设条件判断本轮投票是否结束,当结束时,则结束投票,否则继续等待投票;所述规则组件是对投票规则按照预设要求进行设定;所述分发组件基于用户公钥判断用户合法性以及按用户请求触发规则组件或投票组件;所述投票组件生成多种投票公钥以及完成投票计数。优选地,所述模块M2包括:在规则组件中设定规则哈希表,利用哈希表的键值结构对投票的规则进行存储,并通过哈希表的索引定位各项投票规则。优选地,所述模块M3中多种投票公钥包括:多次使用公钥A和一次性使用公钥B;所述多次使用公钥A包括利用公钥A投票,公钥A进栈存储,通过弹栈进行计票;所述一次性使用公钥B包括利用公钥B投票,公钥B进哈希表存储,通过remove操作进行计票。优选地,所述模块M5包括:通过分发组件访问规则组件和投票组件,通过投票组件的哈希表索引和/或栈的索引,判断用户传入的公钥是否在投票组件中存在,当存在时,则正常访问;当不存在时,则拒绝访问;所述模块M7包括:通过分发组件从规则组件中获取本轮投票的投票终止规则,当满足本轮投票预设的终止规则时,则结束投票,不再调用投票组件进行计数;否则,通过调用投票组件进行计数。与现有技术相比,本专利技术具有如下的有益效果:1、本专利技术通过采用智能合约完成投票规则设定,并通过设计三类组件,完成相互调用及调用安全,从而实现了调用安全保障和投票设置的灵活性;2、本专利技术通过采用一次性公钥投票的方式,完成匿名投票,从而实现保护用户隐私的目的;3、用户所有的行为及投票操作都会在链上进行存证,投票的所有过程以及结果在链上都是可以追溯和验证的,因此本专利技术具备可验证性。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为一种基于区块链的可验证投票方法流程图;图2为一种基于区块链的可验证投票系统示意图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的本文档来自技高网
...

【技术保护点】
1.一种基于区块链的可验证投票方法,其特征在于,包括:/n步骤M1:在智能合约中设定规则组件、投票组件和分发组件;/n步骤M2:基于规则组件设置投票规则;/n步骤M3:基于规则组件触发投票组件生成多种投票公钥;/n步骤M4:调用投票组件进行投票;/n步骤M5:利用分发组件判断用户公钥是否合法,当合法时,则正常访问;当不合法时,则被拒绝访问;/n步骤M6:根据规则组件及多种投票公钥进行计票;/n步骤M7:根据规则组件预设条件判断本轮投票是否结束,当结束时,则结束投票,否则继续等待投票;/n所述规则组件是对投票规则按照预设要求进行设定;/n所述分发组件基于用户公钥判断用户合法性以及按用户请求触发规则组件或投票组件;/n所述投票组件生成多种投票公钥以及完成投票计数。/n

【技术特征摘要】
1.一种基于区块链的可验证投票方法,其特征在于,包括:
步骤M1:在智能合约中设定规则组件、投票组件和分发组件;
步骤M2:基于规则组件设置投票规则;
步骤M3:基于规则组件触发投票组件生成多种投票公钥;
步骤M4:调用投票组件进行投票;
步骤M5:利用分发组件判断用户公钥是否合法,当合法时,则正常访问;当不合法时,则被拒绝访问;
步骤M6:根据规则组件及多种投票公钥进行计票;
步骤M7:根据规则组件预设条件判断本轮投票是否结束,当结束时,则结束投票,否则继续等待投票;
所述规则组件是对投票规则按照预设要求进行设定;
所述分发组件基于用户公钥判断用户合法性以及按用户请求触发规则组件或投票组件;
所述投票组件生成多种投票公钥以及完成投票计数。


2.根据权利要求1所述的基于区块链的可验证投票方法,其特征在于,所述步骤M2包括:在规则组件中设定规则哈希表,利用哈希表的键值结构对投票的规则进行存储,并通过哈希表的索引定位各项投票规则。


3.根据权利要求1所述的基于区块链的可验证投票方法,其特征在于,所述步骤M3中多种投票公钥包括:多次使用公钥A和一次性使用公钥B。


4.根据权利要求2所述的基于区块链的可验证投票方法,其特征在于,所述多次使用公钥A包括利用公钥A投票,公钥A进栈存储,通过弹栈进行计票;
所述一次性使用公钥B包括利用公钥B投票,公钥B进哈希表存储,通过remove操作进行计票。


5.根据权利要求3所述的基于区块链的可验证投票方法,其特征在于,所述步骤M5包括:通过分发组件访问规则组件和投票组件,通过投票组件的哈希表索引和/或栈的索引,判断用户传入的公钥是否在投票组件中存在,当存在时,则正常访问;当不存在时,则拒绝访问。


6.根据权利要求3所述的基于区块链的可验证投票方法,其特征在于,所述步骤M7包括:通过分发组件从规则组件中获取本轮投票的投票终止规则,当满足本轮投票预设的终止规则时,则...

【专利技术属性】
技术研发人员:李蓉成星蓉
申请(专利权)人:上海万向区块链股份公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1