基于区块链的投票方法、装置、设备、系统及存储介质与流程

文档序号:19281789发布日期:2019-11-29 23:01阅读:195来源:国知局
基于区块链的投票方法、装置、设备、系统及存储介质与流程

本发明涉及区块链(blockchain)技术领域,尤其涉及一种基于区块链的投票方法、装置、设备、系统及存储介质。



背景技术:

随着计算机技术的发展,越来越多的技术(大数据、分布式、区块链blockchain、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。

一般来说,使用区块链技术进行匿名投票,能够结合密码学和区块链的优势,将选票数据记录在区块链中,可以保证数据的真实可靠性而不被篡改,保证了选举结果的真实可追溯特性。目前,电子投票的加密方案主要是基于同态加密、群/环签名或盲签名技术,具体的,是先由用户生成区块链地址,然后将地址通过上述技术进行转换,得到匿名地址,可达到转换后地址(即匿名地址)无法和原地址进行匹配的效果。然而上述方案在实际应用场景中,难以把真实身份和匿名地址进行有效关联,往往无法有效地处理与真实身份相关的操作,例如指定投票人、限定投票人的投票次数/范围等,即,现有的匿名投票方法灵活性较差。此外,基于群/环签名的技术往往需要信任可信第三方,增添了不必要的信任风险;整个加密体系架构部署和运算都较为复杂。



技术实现要素:

本发明的主要目的在于提供一种基于区块链的投票方法、装置、设备、系统及存储介质,旨在解决现有的匿名投票方法灵活性较差、同时加密体系架构较复杂的问题。

为实现上述目的,本发明提供一种基于区块链的投票方法,所述基于区块链的投票方法包括:

在监听到区块链上投票公告合约的投票邀约中包括目标用户时,向投票后台服务器发送字符串seed申请请求,并接收所述投票后台服务器基于所述seed申请请求返回的回复信息;

通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密;

将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中;

在监听到所述投票邀约中存在所述区块链地址时,可生成对应的提示信息,以提醒目标用户通过所述区块链地址进行投票。

可选地,所述回复信息中还包括所述投票后台服务器的签名,所述签名是基于投票私钥生成的,所述通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密的步骤之前,还包括:

从所述投票邀约中获取投票公钥,并通过所述投票公钥验证所述签名是否有效;

若所述签名验证有效,则执行步骤:通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密。

可选地,所述通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密的步骤包括:

通过所述区块链生成区块链地址,采用所述回复信息中的seed对所述区块链地址进行对称加密,并采用所述投票公钥对加密后的区块链地址进行二次加密;

所述将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中的步骤包括:

将二次加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中。

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

通过所述区块链生成密钥对,所述密钥对包括加密私钥;

在接收到目标用户触发的投票请求时,根据所述投票请求获取投票信息;

采用所述加密私钥对所述投票信息和所述区块链地址进行签名,并将签名后的投票信息和区块链地址发送至所述区块链,以进行投票。

可选地,所述在监听到区块链上投票公告合约的投票邀约中包括目标用户时,向投票后台服务器发送字符串seed申请请求,并接收所述投票后台服务器基于所述seed申请请求返回的回复信息的步骤之前,包括:

实时或定时监听所述区块链上的投票公告合约中是否出现新的投票邀约;

若监听到所述区块链上的投票公告合约中出现新的投票邀约,则获取所述投票邀约中的邀约用户信息,并检测所述邀约用户信息中是否存在所述目标用户的用户信息,以确定所述投票邀约中是否包括目标用户。

可选地,所述向投票后台服务器发送字符串seed申请请求的步骤包括:

通过预设传输协议向投票后台服务器发送字符串seed申请请求;

所述将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中的步骤包括:

通过所述预设传输协议将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中。

此外,为实现上述目的,本发明还提供一种基于区块链的投票装置,所述基于区块链的投票装置包括:

第一发送模块,用于在监听到区块链上投票公告合约的投票邀约中包括目标用户时,向投票后台服务器发送字符串seed申请请求,并接收所述投票后台服务器基于所述seed申请请求返回的回复信息;

地址加密模块,用于通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密;

第二发送模块,用于将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中;

投票提醒模块,用于在监听到所述投票邀约中存在所述区块链地址时,可生成对应的提示信息,以提醒目标用户通过所述区块链地址进行投票。

此外,为实现上述目的,本发明还提供一种基于区块链的投票设备,所述基于区块链的投票设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的投票程序,所述投票程序被所述处理器执行时实现如上所述的基于区块链的投票方法的步骤。

此外,为实现上述目的,本发明还提供一种基于区块链的投票系统,所述基于区块链的投票系统包括基于区块链的投票设备和投票后台服务器;其中,

所述基于区块链的投票设备为如上所述的基于区块链的投票设备;

所述投票后台服务器,用于在所述区块链上创建投票公告合约和投票智能合约,并在所述投票公告合约中创建投票邀约,所述投票邀约中包括投票详情、邀约用户信息、白名单地址和投票公钥;

所述投票后台服务器,还用于在接收到seed申请请求时,获取所述seed申请请求中携带的用户账号id和用户信息时,并基于所述用户账号id和所述用户信息验证用户是否有投票资格;当验证通过后,随机生成seed,基于所述seed和预先生成的投票公钥生成对应的回复信息,并返回至与所述seed申请请求对应的基于区块链的投票设备;

所述投票后台服务器,还用于在接收到加密后的区块链地址时,通过所述seed对所述加密后的区块链地址进行解密,并将解密后的区块链地址写入所述投票邀约的白名单地址中。

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

在接收到投票指令时,获取所述投票指令中携带的区块链地址、投票信息和基于加密私钥生成的签名;

采用密钥对中的加密公钥对所述基于加密私钥生成的签名进行验证;

当验证通过时,检测所述区块链地址是否在所述投票邀约的白名单地址中;

若所述区块链地址在所述投票邀约的白名单地址中,则存储所述投票信息;

在检测到已存储的投票信息的数量达到预设数量时,通过所述投票智能合约对所述已存储的投票信息进行统计,并将统计的投票结果发送至所述投票后台服务器。

此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有投票程序,所述投票程序被处理器执行时实现如上所述的基于区块链的投票方法的步骤。

本发明提供一种基于区块链的投票方法、装置、设备、系统及存储介质,在监听到区块链上投票公告合约的投票邀约中包括目标用户时,向投票后台服务器发送seed申请请求,并接收投票后台服务器基于该seed申请请求返回的回复信息;通过区块链生成区块链地址,并采用回复信息中的seed对区块链地址进行加密;将加密后的区块链地址发送至投票后台服务器,以供投票后台服务器将区块链地址写入投票邀约中;在监听到投票邀约中存在该区块链地址时,可生成对应的提示信息,以提醒目标用户通过区块链地址进行投票。通过上述方式,组织者可通过投票后台服务器在投票邀约中指定投票人,投票设备在监听到目标用户为指定投票人时,可发送区块链地址至投票后台服务器,以写入到投票邀约中,进而目标用户可基于该区块链地址进行投票,而组织者无法知晓该区块链地址与指定投票人身份之间的关联关系,可保证投票的匿名性。因此,本发明可在支持基于真实身份执行相关操作(如指定投票人)的前提下,支持投票过程的匿名特性,相比于现有技术,可提高匿名投票方法的灵活性。同时,本发明中只借助了常规的加密方法,无需部署复杂的加密体系架构或使用复杂的密码学套件,即,提供了一种轻量化的匿名投票方法,解决了现有的匿名投票方法加密体系架构较复杂的问题。

附图说明

图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图;

图2为本发明基于区块链的投票方法第一实施例的流程示意图;

图3为本发明基于区块链的投票装置第一实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。

本发明实施例基于区块链的投票设备可以是智能手机,也可以是pc(personalcomputer,个人计算机)、平板电脑、便携计算机等终端设备。

如图1所示,该基于区块链的投票设备可以包括:处理器1001,例如cpu,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的基于区块链的投票设备结构并不构成对基于区块链的投票设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及投票程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的投票程序,并执行以下基于区块链的投票方法的各个步骤。

基于上述硬件结构,提出本发明基于区块链的投票方法的各实施例。

本发明提供一种基于区块链的投票方法。

参照图2,图2为本发明基于区块链的投票方法第一实施例的流程示意图。

在本实施例中,该基于区块链的投票方法包括:

步骤s10,在监听到区块链上投票公告合约的投票邀约中包括目标用户时,向投票后台服务器发送字符串seed申请请求,并接收所述投票后台服务器基于所述seed申请请求返回的回复信息;

在本实施例中,在上述步骤s10之前,该基于区块链的投票方法还包括:

步骤a,实时或定时监听所述区块链上的投票公告合约中是否出现新的投票邀约;

步骤b,若监听到所述区块链上的投票公告合约中出现新的投票邀约,则获取所述投票邀约中的邀约用户信息,并检测所述邀约用户信息中是否存在所述目标用户的用户信息,以确定所述投票邀约中是否包括目标用户。

本实施例的基于区块链的投票方法是由基于区块链的投票设备实现的,该投票设备可以是智能手机,也可以是pc、平板电脑、便携计算机等终端设备,该投票设备中安装有对应的投票app(application,应用程序),且投票设备可以访问区块链,并有区块链的读写能写。

在本实施例中,组织者在组织投票时,会通过投票后台服务器在区块链上创建一个投票公告合约和投票智能合约,并在投票公告合约中创建投票邀约,投票邀约中包括投票详情、邀约用户信息、白名单地址和投票公钥,其中,投票详情包括投票事件、投票选项、投票须知等;邀约用户信息即指定投票人的信息,该信息可以为实名信息;白名单地址,用于保存指定投票人的区块链地址;投票公钥是预先生成的,其对应的投票私钥被投票后台服务器所保存,即只被组织者所知晓。

对应的,投票设备为检测是否存在目标用户的投票邀请,可实时或定时监听区块链上的投票公告合约中是否出现新的投票邀约,若监听到区块链上的投票公告合约中出现新的投票邀约,则获取该投票邀约中的邀约用户信息,并检测该邀约用户信息中是否存在目标用户的用户信息,以确定投票邀约中是否包括目标用户。

进而,在检测到该邀约用户信息中存在目标用户的用户信息,即在监听到区块链上投票公告合约的投票邀约中包括目标用户时,向投票后台服务器发送seed(一个随机生成的字符串)申请请求,并接收投票后台服务器基于该seed申请请求返回的回复信息,其中,该回复信息包括seed,该seed是由投票后台服务通过一随机字符串生成工具、随机生成的一个字符串,当然,为便于指定投票人(即目标用户)确定回复信息是由投票后台服务器发送的,该回复信息中还可以包括投票后台服务器的签名,该签名是基于投票私钥生成的。

此外,可以理解的是,在实际应用场景中,用户在进行投票前,需预先通过投票app实名注册投票app账号。即,在接收到用户的注册请求时,获取所述注册请求中携带的用户信息;然后,根据所述用户信息对用户身份进行验证,当验证通过时,则响应所述注册请求,并关联保存所述用户信息和所述注册请求中携带的app账号,进而可将注册的用户信息和app账号信息发送至投票后台服务器,便于组织者挑选每次投票的投票人。当然,该app账号也可以是投票app生成的。

步骤s20,通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密;

在接收到投票后台服务器返回的回复信息后,通过区块链生成区块链地址,并采用回复信息中的seed对区块链地址进行加密,对应的加密方式为对称加密,所采用的加密算法为对称加密算法,如aes(advancedencryptionstandard,高级加密标准)、des(dataencryptionalgorithm,数据加密算法)等,seed为对称加密的密钥。具体的对称加密过程与现有技术相似,此处不作赘述。需要说明的是,采用seed对区块链地址进行加密,可使得投票后台服务器确定该区块链地址为指定投票人发送的,但不能确定是具体哪一指定投票人。

进一步地,为保证信息传输的安全性,可采用预设传输协议进行传输,步骤“向投票后台服务器发送字符串seed申请请求”包括:

通过预设传输协议向投票后台服务器发送字符串seed申请请求;

即,通过预设传输协议向投票后台服务器发送字符串seed申请请求,其中,该预设传输协议可选地为https(hypertexttransferprotocolsecure,超文本传输安全协议)传输协议。

进一步地,为确保回复信息是投票后台服务器发送的,在上述步骤s20之前,该基于区块链的投票方法还包括:

步骤c,从所述投票邀约中获取投票公钥,并通过所述投票公钥验证所述签名是否有效;

若所述签名验证有效,则执行步骤s20:通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密。

即,在接收到投票后台服务器返回的回复信息后,先从投票邀约中获取投票公钥,然后通过投票公钥验证签名是否有效,若签名验证有效,说明该回复信息是投票后台服务器发送的,此时,则通过区块链生成区块链地址,并采用回复信息中的seed对区块链地址进行加密。

步骤s30,将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中;

在对区块链地址加密后,将加密后的区块链地址发送至投票后台服务器,以供投票后台服务器将区块链地址写入投票邀约中,对应的,投票后台服务器在接收到该加密后的区块链地址时,可通过对应的对称加密算法和seed对该加密后的区块链地址进行解密,以得到区块链地址,进而将区块链地址写入投票邀约中,具体的,可写入投票邀约的白名单地址中。需要说明的是,在加密后的区块链地址发送至投票后台服务器的过程中,不会传输其他与目标用户的身份有关的信息。

进一步地,为保证信息传输的安全性,在该信息传输的过程中,也可以采用预设传输协议进行传输,步骤s30包括:通过所述预设传输协议将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中。

即,通过预设传输协议将加密后的区块链地址发送至投票后台服务器,以供投票后台服务器将区块链地址写入投票邀约中,其中,该预设传输协议可选地为https传输协议。

步骤s40,在监听到所述投票邀约中存在所述区块链地址时,可生成对应的提示信息,以提醒目标用户通过所述区块链地址进行投票。

最后,投票设备会实时或定时监听区块链上投票公告合约的投票邀约中是否存在该区块链地址(即该目标用户对应的区块链地址),在监听到投票邀约中存在该区块链地址时,可生成对应的提示信息,以提醒目标用户通过区块链地址进行投票。当然,在生成对应的提示信息之前,还可以从投票邀约中获取投票详情,以根据该投票详情生成对应的提示信息,从而在提醒目标用户投票的同时,可便于用户了解投票详情。由于目标用户是基于该区块链地址进行投票的,且投票后台服务器无法知晓该区块链地址与指定投票人身份之间的关联关系,因此可保证投票的匿名性。

本发明实施例提供一种基于区块链的投票方法,在监听到区块链上投票公告合约的投票邀约中包括目标用户时,向投票后台服务器发送seed申请请求,并接收投票后台服务器基于该seed申请请求返回的回复信息;通过区块链生成区块链地址,并采用回复信息中的seed对区块链地址进行加密;将加密后的区块链地址发送至投票后台服务器,以供投票后台服务器将区块链地址写入投票邀约中;在监听到投票邀约中存在该区块链地址时,可生成对应的提示信息,以提醒目标用户通过区块链地址进行投票。通过上述方式,组织者可通过投票后台服务器在投票邀约中指定投票人,投票设备在监听到目标用户为指定投票人时,可发送区块链地址至投票后台服务器,以写入到投票邀约中,进而目标用户可基于该区块链地址进行投票,而组织者无法知晓该区块链地址与指定投票人身份之间的关联关系,可保证投票的匿名性。因此,本发明实施例可在支持基于真实身份执行相关操作(如指定投票人)的前提下,支持投票过程的匿名特性,相比于现有技术,可提高匿名投票方法的灵活性。同时,本发明实施例中只借助了常规的加密方法,无需部署复杂的加密体系架构或使用复杂的密码学套件,即,提供了一种轻量化的匿名投票方法,解决了现有的匿名投票方法加密体系架构较复杂的问题。

进一步的,基于图2所示的第一实施例,提出本发明基于区块链的投票方法的第二实施例。

在本实施例中,步骤s20包括:

通过所述区块链生成区块链地址,采用所述回复信息中的seed对所述区块链地址进行对称加密,并采用所述投票公钥对加密后的区块链地址进行二次加密;

在本实施例中,为进一步确保只有投票后台服务器可获取到区块链地址,保证投票的匿名性,可通过投票公钥对加密后的区块链地址进行二次加密,从而只有拥有与该投票公钥对应的投票私钥的投票后台服务器,方可解密得到目标用户的区块链地址。具体的,先通过区块链生成区块链地址,然后采用回复信息中的seed对区块链地址进行对称加密,并采用投票公钥对加密后的区块链地址进行二次加密,其中,对称加密过程可参照上述第一实施例,在采用投票公钥对加密后的区块链地址进行二次加密时,对应的加密方式为非对称加密,所采用的加密算法为非对称加密算法,如rsa(rsaalgorithm)算法、ecc(ellipticcurvecryptography,椭圆加密算法)等,具体的非对称加密过程与现有技术相似,此处不作赘述。

此时,步骤s30包括:

将二次加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中。

在对区块链进行二次加密之后,将二次加密后的区块链地址发送至投票后台服务器,以供投票后台服务器将区块链地址写入投票邀约中,进而执行后续步骤,具体的执行过程可参照上述第一实施例,此处不作赘述。

本实施例中介绍了区块链地址的二次加密过程,先采用seed对区块链地址进行加密,可使得投票后台服务器确定该区块链地址为指定投票人发送的,但不能确定是具体哪一指定投票人;再通过投票公钥对加密后的区块链地址进行二次加密,可确保只有投票后台服务器可获取到区块链地址,可进一步保证投票的匿名性。

进一步的,基于图2所示的第一实施例,提出本发明基于区块链的投票方法的第三实施例。

在本实施例中,在上述步骤s40之后,该基于区块链的投票方法还包括:

步骤d,通过所述区块链生成密钥对,所述密钥对包括加密私钥;

在本实施例中,还可以通过区块链生成密钥对,其中,该密钥对包括加密私钥,当然,还包括加密公钥,该加密公钥可存储于区块链中。需要说明的是,该步骤d与步骤“通过区块链生成区块链地址”同时执行。

步骤e,在接收到目标用户触发的投票请求时,根据所述投票请求获取投票信息;

目标用户在看到提示信息时,可通过该投票设备进行投票,具体的,可通过登录投票app,进而选择投票选项,以进行投票,当投票完成后,即可触发投票请求,此时,投票设备在接收到目标用户触发的投票请求时,根据投票请求获取投票信息,该投票信息即目标用户针对投票详情所进行的投票。

步骤f,采用所述加密私钥对所述投票信息和所述区块链地址进行签名,并将签名后的投票信息和区块链地址发送至所述区块链,以进行投票。

在获取到投票信息之后,采用上述生成的加密私钥对该投票信息和区块链地址进行签名,并将签名后的投票信息和区块链地址发送至区块链,以进行投票。具体的,投票设备可基于签名后的投票信息和区块链地址生成一个投票指令,并发送至区块链,对应的,区块链在接收到该投票指令时,先获取该投票指令中携带的投票信息、区块链地址和基于加密私钥生成签名,进而采用密钥对中的加密公钥对该基于加密私钥生成的签名进行验证;当验证通过时,检测区块链地址是否在投票邀约的白名单地址中;若区块链地址在投票邀约的白名单地址中,则说明该用户有投票资格,此时,则存储投票信息;最后,在检测到已存储的投票信息的数量达到预设数量时,通过投票智能合约对已存储的投票信息进行统计,并将统计的投票结果发送至投票后台服务器。

本实施例中,目标用户可基于区块链地址进行投票,可保证投票的匿名性。

基于上述各实施例中,需要说明的是,在本发明中,投票设备与投票后台服务器之间的通信可选地使用https加密,即采用https传输协议传输信息,可以抵抗监听和中间人攻击,但是无法抵抗基于ip(internetprotocoladdress,互联网协议地址)/mac(mediaaccesscontroladdress,媒体访问控制地址)的追溯,攻击者仍然可能通过投票人的ip/mac来追踪到投票人的常用终端设备。但是,在实际应用中,本发明可以和任何常用的网络混淆方案(应用层/传输层)共同使用,本发明中不作具体限定。其中,网络混淆方案可以包括但不限于:网络代理,如互联网代理、硬件代理;或加密方式,如同态加密等。

本发明还提供一种基于区块链的投票系统,该基于区块链的投票系统包括基于区块链的投票设备和投票后台服务器。其中,所述基于区块链的投票设备为如图1所示的基于区块链的投票设备,用于执行上述基于区块链的投票方法实施例中的各步骤,具体的功能和实现过程可参照上述实施例,此处不作赘述。

所述投票后台服务器,用于在所述区块链上创建投票公告合约和投票智能合约,并在所述投票公告合约中创建投票邀约,所述投票邀约中包括投票详情、邀约用户信息、白名单地址和投票公钥;

在本实施例中,组织者在组织投票时,可通过投票后台服务器在区块链上创建一个投票公告合约和投票智能合约,并在投票公告合约中创建投票邀约。其中,该投票后台服务器中也安装有对应的投票app,以供组织者进行登录操作,该投票后台服务器可以访问区块链,并有区块链的读写能写。

投票后台服务器,会预先在区块链上创建投票公告合约和投票智能合约,并在投票公告合约中创建投票邀约,其中,该投票邀约中包括投票详情、邀约用户信息、白名单地址和投票公钥,其中,投票详情包括投票事件、投票选项、投票须知等;邀约用户信息即指定投票人的信息,该信息可以为实名信息;白名单地址,用于保存指定投票人的区块链地址;投票公钥是预先生成的,其对应的投票私钥被投票后台服务器所保存,即只被组织者所知晓。

所述投票后台服务器,还用于在接收到seed申请请求时,获取所述seed申请请求中携带的用户账号id和用户信息时,并基于所述用户账号id和所述用户信息验证用户是否有投票资格;当验证通过后,随机生成seed,基于所述seed和预先生成的投票公钥生成对应的回复信息,并返回至与所述seed申请请求对应的基于区块链的投票设备;

在本实施例中,投票后台服务器在接收到投票设备发送的seed申请请求时,获取seed申请请求中携带的用户账号id和用户信息时,并基于用户账号id和用户信息验证用户是否有投票资格,具体的,可以检测投票邀约的邀约用户信息中是否包括该用户信息,并检测用户账号id是否与用户信息相关联,当邀约用户信息中包括该用户信息,且用户账号id与该用户信息相关联时,则验证通过,此时,可通过一随机字符串生成工具随机生成一seed,然后基于seed和预先生成的投票公钥生成对应的回复信息,并返回至与seed申请请求对应的基于区块链的投票设备。其中,该回复信息中包括seed和投票后台服务器的签名,该签名是基于投票私钥生成的。当验证未通过时,可以生成一个无权限信息,对应的,该无权限信息也可以使用投票私钥进行签名后,再返回至投票设备。

此外,需要说明的是,为保证信息传输的安全性,投票后台服务器可采用预设传输协议将回复信息或无权限信息返回至投票设备。其中,该预设传输协议可选地为https传输协议。

所述投票后台服务器,还用于在接收到加密后的区块链地址时,通过所述seed对所述加密后的区块链地址进行解密,并将解密后的区块链地址写入所述投票邀约的白名单地址中。

在本实施例中,投票后台服务器在接收到投票设备发送的加密后的区块链地址时,可通过seed对该加密后的区块链地址进行解密,并将解密后的区块链地址写入投票邀约的白名单地址中。由于该区块链地址是采用seed进行对称加密的,对应的可采用相同的密钥(即seed)进行解密。

需要说明的是,若投票后台服务器接收到的是二次加密后的区块链地址,则可以通过投票私钥进行一次解密后,再采用seed进行二次解密,以得到区块链地址,进而将区块链地址写入投票邀约的白名单地址中。

本实施例提供一种基于区块链的投票系统,该基于区块链的投票系统包括基于区块链的投票设备和投票后台服务器,通过构建上述基于区块链的投票系统,组织者可通过投票后台服务器在投票邀约中指定投票人,投票设备在监听到目标用户为指定投票人时,可向投票后台服务器申请seed,并通过区块链生成区块链地址,进而采用seed对区块链地址进行加密,并发送至投票后台服务器,以供投票后台服务器将区块链地址写入投票邀约中;最后,在监听到投票邀约中存在该区块链地址时,提醒目标用户通过区块链地址进行投票。即,通过构建上述投票系统,可在支持基于真实身份执行相关操作(如指定投票人)的前提下,支持投票过程的匿名特性,相比于现有技术,可提高匿名投票方法的灵活性。同时,本投票系统可实现轻量化的匿名投票方法,在实现匿名投票的过程中,只借助了常规的加密方法,无需部署复杂的加密体系架构或使用复杂的密码学套件,即解决了现有的匿名投票方法加密体系架构较复杂的问题。

进一步地,所述基于区块链的投票系统还包括区块链,所述区块链用于:

在接收到投票指令时,获取所述投票指令中携带的区块链地址、投票信息和基于加密私钥生成的签名;

采用密钥对中的加密公钥对所述基于加密私钥生成的签名进行验证;

当验证通过时,检测所述区块链地址是否在所述投票邀约的白名单地址中;

若所述区块链地址在所述投票邀约的白名单地址中,则存储所述投票信息;

在检测到已存储的投票信息的数量达到预设数量时,通过所述投票智能合约对所述已存储的投票信息进行统计,并将统计的投票结果发送至所述投票后台服务器。

在本实施例中,该基于区块链的投票系统还包括区块链,区块链在接收到投票设备发送的投票指令时,获取投票指令中携带的区块链地址、投票信息和基于加密私钥生成的签名,然后采用密钥对中的加密公钥对该基于加密私钥生成的签名进行验证;当验证通过时,检测区块链地址是否在投票邀约的白名单地址中;若区块链地址在投票邀约的白名单地址中,则说明该用户有投票资格,此时,则存储投票信息;最后,在检测到已存储的投票信息的数量达到预设数量时,通过投票智能合约对已存储的投票信息进行统计,并将统计的投票结果发送至投票后台服务器。其中,该预设数量可以为投票邀约中邀约用户信息的数量,当然,也可以为投票邀约中邀约用户信息的数量与一预设百分比(如90%)的乘积。此外,在实际应用中,区块链除可以主动将统计的投票结果发送至投票后台服务器外,还可以在接收到投票后台服务器发送的投票结果获取请求时,再将统计的投票结果返回至投票后台服务器。

本实施例提供一种基于区块链的投票系统,该基于区块链的投票系统除包括基于区块链的投票设备和投票后台服务器外,还包括区块链,区块链在接收到投票设备的投票指令时,可获取对应的区块链地址、投票信息和基于加密私钥生成的签名,进而采用加密公钥对该签名进行验证;当验证通过时,检测区块链地址是否在投票邀约的白名单地址中;若区块链地址在投票邀约的白名单地址中,则说明该用户有投票资格,此时,则存储投票信息,进而,在检测到已存储的投票信息的数量达到预设数量时,通过投票智能合约对已存储的投票信息进行统计,并将统计的投票结果发送至投票后台服务器。通过上述方式,区块链可智能对投票请求进行验证,同时可以智能统计得到对应的投票结果。

本发明还提供一种基于区块链的投票装置。

参照图3,图3为本发明基于区块链的投票装置第一实施例的功能模块示意图。

如图3所示,所述基于区块链的投票装置包括:

第一发送模块10,用于在监听到区块链上投票公告合约的投票邀约中包括目标用户时,向投票后台服务器发送字符串seed申请请求,并接收所述投票后台服务器基于所述seed申请请求返回的回复信息;

地址加密模块20,用于通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密;

第二发送模块30,用于将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中;

投票提醒模块40,用于在监听到所述投票邀约中存在所述区块链地址时,可生成对应的提示信息,以提醒目标用户通过所述区块链地址进行投票。

进一步地,所述回复信息中还包括所述投票后台服务器的签名,所述签名是基于投票私钥生成的,所述基于区块链的投票装置还包括:

验证模块,用于从所述投票邀约中获取投票公钥,并通过所述投票公钥验证所述签名是否有效;

所述地址加密模块20,具体用于若所述签名验证有效,则通过所述区块链生成区块链地址,并采用所述回复信息中的seed对所述区块链地址进行加密。

进一步地,所述地址加密模块20,还具体用于通过所述区块链生成区块链地址,采用所述回复信息中的seed对所述区块链地址进行对称加密,并采用所述投票公钥对加密后的区块链地址进行二次加密;

所述第二发送模块30,还具体用于将二次加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中。

进一步地,所述基于区块链的投票装置还包括:

生成模块,用于通过所述区块链生成密钥对,所述密钥对包括加密私钥;

获取模块,用于在接收到目标用户触发的投票请求时,根据所述投票请求获取投票信息;

投票模块,用于采用所述加密私钥对所述投票信息和所述区块链地址进行签名,并将签名后的投票信息和区块链地址发送至所述区块链,以进行投票。

进一步地,所述基于区块链的投票装置还包括:

监听模块,用于实时或定时监听所述区块链上的投票公告合约中是否出现新的投票邀约;

检测模块,用于若监听到所述区块链上的投票公告合约中出现新的投票邀约,则获取所述投票邀约中的邀约用户信息,并检测所述邀约用户信息中是否存在所述目标用户的用户信息,以确定所述投票邀约中是否包括目标用户。

进一步地,所述第一发送模块10,具体用于通过预设传输协议向投票后台服务器发送字符串seed申请请求;

所述第二发送模块30,具体用于通过所述预设传输协议将加密后的区块链地址发送至所述投票后台服务器,以供所述投票后台服务器将所述区块链地址写入所述投票邀约中。

其中,上述基于区块链的投票装置中各个模块的功能实现与上述基于区块链的投票方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。

本发明还提供一种存储介质,该存储介质上存储有投票程序,所述投票程序被处理器执行时实现如以上任一项实施例所述的基于区块链的投票方法的步骤。

本发明存储介质的具体实施例与上述基于区块链的投票方法各实施例基本相同,在此不作赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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