首页 / 一种结合区块链的在线投票方法

一种结合区块链的在线投票方法实质审查 发明

技术领域

[0001] 本发明涉及区块链技术领域,具体为一种结合区块链的在线投票方法。

相关背景技术

[0002] 近年来,随着比特币、以太坊等数字货币的逐渐流行,其很多优越的特性受到许多研究学者的关注,利用其底层技术加以改造可以结合实际业务使用。区块链的本质是一个公开透明的分布式账本,记录所有的交易流水记录。它所具有的特点是在没有第三方中介机构的情况下,可以提供去中心化、不可篡改、公开透明的安全特性。
[0003] 现有技术中,综合以上特性,我们想到在线投票作为日常投票的电子化,利用先进的密码学技术和计算机网络技术,使选民可以在投票站或自己家中设置的计算机终端通过互联网进行投票,由计算机负责统计选票,不仅在组织工作、选票搜集与统计方面都节省了大量的人力物力,而且在一定程度上保证投票人的利益和投票结果的公正,所有这些优点使其取代传统的投票方式成为必然的趋势。并且目前现有的在线投票都是中心化的,而且容易受到网络攻击,存在篡改等各种风险,区块链的出现无疑为新的在线投票系统的出现提供了理论基础。

具体实施方式

[0015] 为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0016] 实施例一
[0017] 请参阅图1,本发明提供一种技术方案:一种结合区块链的在线投票方法,所述在线投票方法包括以下步骤:
[0018] 选民生成属于自己的唯一标识加密消息m,并根据SHA256哈希算法得到消息的哈希值h(m);
[0019] 选民根据非堆成加密算法sm2,生成属于自己的公私钥对Pub、Pri,私钥为随机数字串,公钥由私钥根据椭圆曲线算法计算得出。
[0020] 实施例二
[0021] 在实施例一的基础上,具体实现方式为:
[0022] 包括选民、认证中心、可信第三方机构组织、后台校验控制系统、以及区块链服务网络,其中选民、可信第三方组织组织、认证中心相互独立,互相监管。其特征在于,主要包括以下步骤:
[0023] 准备阶段:根据实际投票需求生成每个人可投票次数n,并记录这个选项n,其次选民产生属于自己的唯一标识加密消息m,标识可选择将用户id结合申请时间戳和身份证号码(或者姓名,保护用户隐私,加大各选民间的散列值)的哈希值用来确保用户数据的唯一,根据哈希算法得到消息的哈希值h(m),选择使用非对称国密算法sm2,产生自己的唯一公私密钥对Pub/Pri,公私密钥根据椭圆曲线算法计算得出;
[0024] 注册阶段:在个人信息注册后返回选民用来登录的账号和密码,
[0025] 密码在第一次登录时进行重置,用户在第一次登陆时更改,进一步地,选民在登录后完成个人证书申请注册,并将自己的加密消息的哈希值h(m)发送给认证中心;
[0026] 声明选票权:在选举前通过选民、可信第三方、认证中心三者之间的通信完成投票权的声明,确认h(m)的唯一性以及在认证中心的是否注册成功,在三方都达成一致的情况后,保证选民的可信,确认选民的投票权;
[0027] 投票阶段:选民向候选人的地址发起一笔交易,交易内容不限,用来模拟选民进行投票的过程,用候选人收到交易数代表投票结果,投票完成后,也就是交易发送成功后,由后台校验系统收到回执判断,将该指向候选人选项置灰;
[0028] 进一步地,后台校验系统若收到交易失败的回执,根据不同情况判断是否重试,如果属于区块链网络服务器波动可发起重试,如若其他错误可选择情形返回,由选民重新发起投票,重复上一步流程;
[0029] 进一步地,后台校验系统统计选民发起交易次数,即选民可投选票次数,此步骤过程为单一进程,选民在发起第n次投票并收到交易成功的回执后,由后台校验系统将选民投票置为不可用,严格控制选票;
[0030] 计票阶段:候选人向可信第三方公开自己的私钥地址Pri,也就是接收交易的地址查询,可信第三方通过查询其他人向候选人发起交易的次数统计,进行计数,最终统计计数结果为各个候选人的所得票数;
[0031] 审计阶段:完成计票后,可信第三方公开合法选民的加密消息的哈希值h(m)和合法选民的地址信息表。认证中心公开拥有的选民姓名和加密消息的哈希值h(m)信息表,选民根据上述两个表格及自己的相关信息审计投票结果。
[0032] 根据上述的一种基于区块链的在线投票方法,其特征在于,所述的步骤主要包括以下步骤:
[0033] 认证中心发起投票,根据有投票权的选民信息建立起选民表,选民表要确定选民身份唯一,不可由同一人重复注册,并为选民提供相应的用于身份验证的登录名和密码;
[0034] 选民用户根据对应的登录名登录认证中心,完成个人注册,并向认证中心发送自己的加密消息的哈希值h(m);
[0035] 进一步地,认证中心接收加密消息的哈希值h(m)后,建立对应的选票人及其加密消息哈希值的统计表。
[0036] 选民发送加密消息的哈希值h(m)给可信第三方,可信第三方在接收到h(m)后发起校验;
[0037] 进一步地,可信第三方发起请求询问认证中心h(m)是否被注册;
[0038] 认证中心返回结果,若返回结果为“是”,说明该选民是完成注册的拥有投票权的合法选民;若返回结果为“否”,则说明该选民没有在认证中心完成注册或者不是合法的选民;
[0039] 进一步地,可信第三方认为选民为合法的选民后,要求选民发送自己的加密消息m;
[0040] 进一步地,选民发送加密消息m给可信第三方;
[0041] 可信第三方验证加密消息m的哈希值与之前认证通过的h(m)是否一致,如果一致则保存选民的地址。
[0042] 进一步地,由后台校验系统控制选民向同一位候选人发起多次交易的次数,同时统计选民发起交易的次数,由后台交易系统控制这两种行为并进行响应的置灰;
[0043] 进一步地,利用分布式区块链交易的特性,投票过程不可篡改,可追踪溯源,可以明确保证选民投票真实,不会存在来历不明的投票,也不会出现多次刷票的情形,保证了整个投票的真实性;可追踪每一票的选民地址来源,后续步骤会进行公示展出;
[0044] 若同一个交易发起方的地址向多名候选人发起交易,由后台校验系统控制次数n,发起n次交易后将投票选项设置为不可用,简化之后的统计工作的同时防止区块链资源浪费;
[0045] 根据上述步骤,控制投票次数的意义在于,防止有选民恶意占用区块链节点交易,造成其他选民的投票交易排队等待,一定程度上防止了选民多次占用接口攻击;
[0046] 可信第三方将自己拥有的合法选民的加密消息的哈希值h(m)和合法选民的地址信息表对应关系进行随机打乱,随机的目的是和下列表不进行顺序上的对应,然后进行随机排列,对外公开;
[0047] 进一步地,认证中心对外公开已注册的选民姓名和加密消息的哈希值h(m),对用户和加密关系表进行公示;
[0048] 进一步地,选民可以根据上述两个公开的对应表以及自己的投票相关信息审计投票结果是否正确以及投票过程中是否存在篡改舞弊行为,整个过程透明公平公正公开。
[0049] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页 第1页 第2页 第3页