CN110232764B - 基于区块链的匿名电子投票方法及系统 - Google Patents

基于区块链的匿名电子投票方法及系统 Download PDF

Info

Publication number
CN110232764B
CN110232764B CN201910406319.7A CN201910406319A CN110232764B CN 110232764 B CN110232764 B CN 110232764B CN 201910406319 A CN201910406319 A CN 201910406319A CN 110232764 B CN110232764 B CN 110232764B
Authority
CN
China
Prior art keywords
voting
signature
intelligent contract
terminal
public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910406319.7A
Other languages
English (en)
Other versions
CN110232764A (zh
Inventor
赖俊祚
王昀飚
李鹏
孙萌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan University
Original Assignee
Jinan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jinan University filed Critical Jinan University
Priority to CN201910406319.7A priority Critical patent/CN110232764B/zh
Publication of CN110232764A publication Critical patent/CN110232764A/zh
Application granted granted Critical
Publication of CN110232764B publication Critical patent/CN110232764B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3257Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using blind signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明公开了一种基于区块链的匿名电子投票方法及系统,包括下述步骤:投票端将投票端身份信息和以太坊账户地址发送至注册中心,注册中心生成盲签名,并发送至投票端,投票端输出投票权限签名;投票管理端生成投票参数,将参数写入智能合约并采用交易的方法发送到区块链网络中进行信息公示,投票端获取智能合约投票内容,并将投票端选票消息以交易的形式发布到投票管理端的智能合约中,完成投票;到达设定的投票结束时间后,投票管理端采用智能合约方法,停止接收投票,统计结果。本发明的投票记录随时可查并且不可篡改,提升了投票的公平性,选票与投票端真实身份分离,实现了对投票端和投票的双重匿名保护,更好地保护了投票端的个人隐私。

Description

基于区块链的匿名电子投票方法及系统
技术领域
本发明涉及信息安全和密码学技术领域,具体涉及一种基于区块链的匿名电子投票系统及系统。
背景技术
随着计算机网络技术的发展,人们日常生活中的种种活动都逐渐电子化,投票作为集体生活中最常见的决策手段,也逐渐从传统的纸质投票转为电子投票,电子投票对比于传统纸质投票有着快捷准确,节省人力物力,简单易用等特点。但是面对复杂的网络环境时,电子投票出现了重复投票、欺诈投票、没有匿名性等新的问题。另外,在电子投票的计票过程中,由于投票发起者的权利过于集中,可能会出现投票人的投票被篡改,被冒用的情况。在统计投票结果的过程中,投票人往往只能得知最终的投票结果,自己无法对投票结果的正确性进行验证。根据投票形式、参与方、通信信道的不同,电子投票中使用的密码学协议也有很大的变化,但是这些协议方案在实现过程中都有各自的不足,其中,最为普遍的问题在于对第三方的计票机构的过度信任与依赖以及使用复杂密码学协议会造成庞大的计算开销以及繁琐的密钥管理。
发明内容
为了克服现有技术存在的缺陷与不足,本发明提供一种基于区块链的匿名电子投票方法及系统,引入区块链作为计票过程的“公告板”同时每个用户的投票都记录在区块链网络中,随时可查并且不可篡改,提升了投票的公平性,以及利用以太坊网络本身的特性,使得投票端的选票与其真实身份分离,实现了对投票端和投票的双重匿名保护,更好的维护了投票端的个人隐私。
为了达到上述目的,本发明采用以下技术方案:
本发明提供一种基于区块链的匿名电子投票方法,包括下述步骤:
S1:注册:投票端Vi将投票端身份信息和盲化后的以太坊账户地址addri发送至注册中心,注册中心进行身份信息审查后,对盲化后的以太坊账户地址addri进行签名生成盲签名,并返回发送至投票端,投票端对盲签名进行去盲操作后输出投票权限签名σi
S2:投票:
S21:投票准备:投票管理端生成投票参数,将参数写入智能合约并采用交易的方法发送到区块链网络中进行信息公示,投票端收到投票管理端的信息,获取智能合约内容,得到公共参数g、n;
S22:投票端选择随机数Ri
S23:投票端选择投票内容并计算出投票端选票
Figure BDA0002061343720000021
采用投票端私钥
Figure BDA0002061343720000022
对选票bi进行签名得到选票签名
Figure BDA0002061343720000023
S24:投票端将投票端选票消息
Figure BDA0002061343720000024
以交易的形式发布到投票管理端的智能合约中,完成投票,其中
Figure BDA0002061343720000025
为投票端公钥;
S3:统计结果:
S31:到达设定的投票结束时间后,投票管理端停止接收投票,进行结果统计;
S32:投票端使用自身的以太坊账户addri将选择的随机数Ri发送到智能合约中;
S33:进行签名验证之后,得出投票结果。
作为优选的技术方案,还包括系统参数预配置步骤,具体为:
注册中心生成注册中心公私钥对(pkca,skca);
投票管理端、投票端根据以太坊网络需求参数,采用椭圆曲线密码学方法分别生成以太坊账户投票管理端公私钥对(pka,ska),投票端公私钥对
Figure BDA0002061343720000031
采用哈希算法计算以太坊账户地址addri
注册中心、投票管理端和投票端保留自身私钥,并将公钥公开。
作为优选的技术方案,步骤S1中所述盲化为:投票端在以太坊账户地址addri上添加盲因子进行ri进行消息盲化,计算公式为:t=mkemod n;
所述注册中心采用RSA盲签名协议生成盲签名;
所述去盲操作的具体计算方式为:投票端收到注册中心返回的盲签名并通过去盲操作td/k mod n得到投票权限签名σi,计算公式为:σi=mdmod n;
其中t为隐蔽好的消息,k为投票端在1至n之间选择的随机数,m为投票端的以太坊账户地址addri,(e,n)为注册中心公钥,d为注册中心私钥。
作为优选的技术方案,步骤S21所述智能合约的内容包括投票管理端配置的公共参数g与n、投票开始时间Tstart、投票结束时间Tend以及投票说明。
作为优选的技术方案,步骤S23中所述采用以太坊账户私钥
Figure BDA0002061343720000032
对选票bi进行签名得到选票签名
Figure BDA0002061343720000033
所述签名的具体步骤为:
S231:选择随机数k∈(1,p-1);
S232:计算k·G=(x1,y2)并将x1转化为整数z;
S233:计算r=z mod p,若r=0,跳至步骤S231;
S234:计算e=H(mes);
S235:计算s=k-1(e+sk·r)mod p;若s=0,则跳至步骤S231;
S236:返回签名(r,s),其中p=2256-232-29-28-27-26-24-1,mes为待签名消息,G为椭圆曲线的基底,e为签名消息的Hash值。
作为优选的技术方案,所述投票管理端停止接收投票,具体步骤为:
在智能合约中设定一个bool类型的变量,用于控制智能合约是否继续接收新的投票交易,将bool类型的变量的值设置成false,投票管理端停止接收投票。
作为优选的技术方案,步骤S33所述签名验证的具体步骤为:
采用注册中心公钥pkca验证投票权限签名σi是对以太坊账户地址addri的签名;
采用投票端公钥
Figure BDA0002061343720000041
验证选票签名
Figure BDA0002061343720000042
是投票端对选票bi的签名;
采用Hash函数验证投票端的以太坊账户地址addri是由投票端公钥
Figure BDA0002061343720000043
生成。
作为优选的技术方案,所述投票权限签名σi和所述选票签名
Figure BDA0002061343720000044
的签名验证的具体步骤为:
签名验证模块接受到签名(r,s)与待签名消息mes后,计算e=H(m);
计算w=s-1mod p;
计算u1=ew mod p以及u2=rw mod p;
计算X=u1G+u2·pk;
如果X=∞,则返回“拒绝该签名”;
将X的x坐标转化为整数z,计算v=z mod p;
比较v与r是否相等,如果相等则返回“接受该签名”,否则返回“拒绝该签名”,其中mes为待签名消息,w、u1、u2、X和v均为中间变量。
作为优选的技术方案,步骤S33中所述得出投票结果的具体步骤为:
比较
Figure BDA0002061343720000045
Figure BDA0002061343720000046
大小得出投票结果,其中Rn表示投票端选的随机数,n代表选票个数,如果超过半数选票选1,则
Figure BDA0002061343720000047
Figure BDA0002061343720000048
如果超过半数选票选0,则
Figure BDA0002061343720000049
本发明还提供一种基于区块链的匿名电子投票系统,包括:注册中心、投票端、投票验证模块和投票管理端;
所述注册中心设有签名注册模块,所述签名注册模块将投票端的投票端身份信息和以太坊账户地址addri注册生成投票权限签名σi
所述投票端用于获取智能合约中的投票信息并产生投票端选票消息mi进行投票,其中投票端选票消息mi包括投票端选票、选票签名、投票权限签名、投票端公钥;
所述投票验证模块用于验证确认选票签名、投票权限签名和以太坊账户地址addri
所述投票管理端用于生成投票信息并设置投票条件,输出投票统计结果。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明引入区块链作为计票过程的“公告板”,同时每个用户的投票都记录在区块链网络中,随时可查并且不可篡改,提升了投票的公平性。
(2)本发明通过盲签名,利用离散对数难题、数字签名等简单密码学方法,以及以太坊网络本身的特性,使得投票端的选票与其真实身份分离,实现了对投票端和投票的双重匿名保护,更好的维护了投票端的个人隐私。
(3)本发明采用的最基础密码学协议运行简单,使得投票系统计算效率高,无需复杂的密钥管理,利于推广实现。
附图说明
图1为本实施例基于区块链的匿名电子投票方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例提供一种基于区块链的匿名电子投票系统,包括:注册中心、投票端、投票验证模块和投票管理端;
所述注册中心设有签名注册模块,所述签名注册模块将投票端的投票端身份信息和以太坊账户地址addri注册生成投票权限签名σi
所述投票端用于获取智能合约中的投票信息并产生投票端选票消息mi进行投票,其中投票端选票消息mi包括投票端选票、选票签名、投票权限签名、投票端公钥;
所述投票验证模块用于验证确认选票签名、投票权限签名和以太坊账户地址addri
所述投票管理端用于生成投票信息并设置投票条件,输出投票统计结果。
在本实施例中,还提供一种基于区块链的匿名电子投票方法,包括下述步骤:
S0:选择系统参数:基于区块链的匿名电子投票系统,系统中主要角色分为三种:注册中心(CA),投票管理端(Admin),投票端(Vi)。根据RSA盲签名方式,在投票开始前,CA需要先生成自身的公私钥对(pkca,skca),投票管理端、投票端则根据以太坊网络需求的相关参数,使用椭圆曲线密码学方法分别生成一次性的以太坊账户公私钥对(pka,ska),
Figure BDA0002061343720000061
通过Hash方法计算以太坊账户地址addri,所有实体都可以拥有以太坊账户地址,其中各用户保留自身私钥,并将公钥公开。
在本实施例中,投票流程主要包含以下步骤:
S1:注册步骤:
每个投票端Vi在使用自身真实身份信息和以太坊账户地址addri通过RSA盲签名协议在CA处获得一个被认证的可以参加投票的身份,同时在投票时不会暴露自身真实身份信息与addri之间的关系。
在本实施例中,投票端的身份信息,比如身份证号、个人照片等,用于注册中心进行实名登记审查,只有这些实名信息符合注册中心的要求,注册中心才会对被盲化了的addri进行签名,因此在注册步骤中,投票端发送的是盲化后的addri
在本实施例中,每个投票端Vi将自身的addri添加一个盲因子ri进行消息盲化,即计算t=mkemod n,其中t为隐蔽好的消息,k为投票端在1至n之间选择的随机数,m为投票端的以太坊账户地址addri,(e,n)为CA公钥,d为CA私钥;将隐蔽好的账户地址数据交给CA通过盲签名协议进行签名认证;
在本实施例中,投票端Vi收到CA返回的签名并通过去盲操作td/k mod n得到投票权限签名σi=mdmod n。该签名可以证明addri确实拥有参加投票的权限。当投票端出示被签名的消息时,CA无法将这个消息与注册的投票端身份信息相关联,从而保护投票端身份隐私。
S2:投票步骤
S21:准备阶段:
投票管理端Admin生成投票所需相关参数,包括:投票管理端配置的公共参数g与n、投票开始时间Tstart、投票结束时间Tend以及投票说明,将参数写入智能合约并以交易的形式发送到区块链网络中进行相应信息的公示,并通知投票端进行投票的准备工作,其中,投票管理端配置的公共参数g与n就是利用离散对数难题保证选票机密性的关键。
在本实施例中,所述投票说明指的是该投票活动的目的以及投票的候选项,例如:投票活动目的:是否同意小明成为班长;投票候选项:1.同意,0.不同意;
在本实施例中,所述交易的形式是使用以太坊区块链平台,通过输入自己的以太坊账户,目的合约地址以及需要上传的数据,即可在该区块链平台上发起一笔交易。
在本实施例中,通过利用离散对数难题进行用户选票信息的保护,投票管理端Admin选择大整数g与n,投票开始与结束时间Tstart、Tend,以及投票的相关说明写入智能合约中,并以交易的形式发送到区块链网络中,并向全网公告投票的智能合约地址;
在本实施例中,投票端Vi收到来自Admin的通知后,通过查询在以太坊网络上的智能合约,了解投票相关信息,得到公共参数g与n,以及参与投票的计算方法等信息,投票进入下一阶段。
S22:投票阶段:在规定的投票时间内,投票端Vi进行投票。
投票端Vi随机选择大整数Ri
在本实施例中,随机数Ri可选为随机的大素数Ri,是根据离散对数难题:即使用长度至少为1024bit的二进制大素数,对于
Figure BDA0002061343720000081
已知A、g、n,很难求得Ri
S23:投票端Vi选择要投票的内容(Yes/No)vi∈{0,1}并计算
Figure BDA0002061343720000082
作为自己的选票,然后使用自己的以太坊账户私钥
Figure BDA0002061343720000083
对选票bi进行签名得到
Figure BDA0002061343720000084
在本实施例中,以太坊账户的公私钥是根据椭圆曲线密码学体制生成的,即存在一条椭圆曲线y2mod p=(x3+7)mod p,其中,
p=2256-232-29-28-27-26-24-1;
以太坊账户私钥
Figure BDA0002061343720000091
为一个在1到2256之间的随机数;以太坊账户公钥pk为
Figure BDA0002061343720000092
G为该椭圆曲线的基底。
本实施例给出椭圆曲线签名算法过程,签名生成的步骤如下,其中mes为待签名消息:
①选择随机数k∈(1,p-1);
②计算k·G=(x1,y2)并将x1转化为整数z;
③计算r=z mod p,若r=0,跳至步骤①;
④计算e=H(mes);
⑤计算s=k-1(e+sk·r)mod p;若s=0,则跳至步骤①;
⑥返回签名(r,s),其中p=2256-232-29-28-27-26-24-1,mes为待签名消息,G为椭圆曲线的基底,e为签名消息的Hash值。
S24:投票端Vi将自己的选票消息
Figure BDA0002061343720000093
以交易的形式发布到投票管理端Admin的智能合约中,完成投票过程。
S3:统计结果:
S31:投票时间到达Tend后,投票管理端Admin调用智能合约方法,停止接收投票,投票进入统计结果阶段。
在本实施例中,智能合约在以太坊网络中是以确定性的规则运行的,在智能合约中设置一个bool类型的变量控制着智能合约是否继续接收新的投票交易,投票管理端将这个bool类型的变量的值设置成false,合约即停止接受新的投票交易。
S32:所有的投票端使用自己的以太坊账户addri将自己选择的随机数Ri发送到智能合约中。
在本实施例中,由于离散对数难题,不公布出Ri的话,无法进行S33步骤的比较,同时,公布出Ri使得任何人都可以通过将vi替换为0或者1,验证选票bi的合法性,本实施例的投票方案是只支持0,1投票的,即这个提案是否可以通过;
S33:任何对投票结果感兴趣的实体都可以对投票结果进行确认;
(1)使用pkca确认投票权限签名σi确实是对以太坊账户地址addri的签名;
(2)使用
Figure BDA0002061343720000101
确认选票签名
Figure BDA0002061343720000102
确实是投票端Vi对选票bi的签名;
在本实施例中,上述签名σi和签名
Figure BDA0002061343720000103
的验证采用签名算法的验证过程,以下以消息mes为例子说明,签名σi和签名
Figure BDA0002061343720000104
验证就是将验证算法的消息mes替换为了addri与bi
签名算法的签名验证步骤如下:
①签名验证模块接受到签名(r,s)与消息mes后,计算e=H(m);
②计算w=s-1mod p;
③计算u1=ew mod p以及u2=rw mod p;
④计算X=u1G+u2·pk;
⑤若X=∞返回“拒绝该签名”;
⑥将X的x坐标转化为整数z,计算v=z mod p;
⑦比较v与r是否相等,如果相等则返回“接受该签名”,否则返回“拒绝该签名”,其中mes为待签名消息,w、u1、u2、X和v均为中间变量;
(3)同时也可以通过Hash函数验证该投票端的addri是否是由
Figure BDA0002061343720000105
生成的,即验证
Figure BDA0002061343720000106
是否等于addri
所有验证通过后即已经确认所有的选票均为合法选民投出的选票,比较
Figure BDA0002061343720000111
Figure BDA0002061343720000112
大小即可得出投票结果。
在本实施例中,采用0,1投票,每一个投票端vi不是0就是1,n代表选票个数,Rn表示投票端选的随机数,每个人选到相同的随机数的几率忽略不计;选票可以看作是Rn加0或1得到,超过半数人选1(同意)则
Figure BDA0002061343720000113
Figure BDA0002061343720000114
反之,超过半数人选0(不同意)则
Figure BDA0002061343720000115
本实施例利用离散对数难题,使用最基础的密码承诺协议,保证了电子投票的公平性,利用盲签名保证了选民身份的匿名性,同时,这些密码学协议运行简单,使得投票系统计算效率高,便于推广实现。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (9)

1.一种基于区块链的匿名电子投票方法,其特征在于,包括下述步骤:
S1:注册:投票端Vi将投票端身份信息和盲化后的以太坊账户地址addri发送至注册中心,注册中心进行身份信息审查后,对盲化后的以太坊账户地址addri进行签名生成盲签名,并返回发送至投票端,投票端对盲签名进行去盲操作后输出投票权限签名σi
S2:投票:
S21:投票准备:投票管理端生成投票参数,将参数写入智能合约并采用交易的方法发送到区块链网络中进行信息公示,投票端收到投票管理端的信息,获取智能合约内容,得到公共参数g、n;
S22:投票端选择随机数Ri
S23:投票端选择投票内容并计算出投票端选票
Figure FDA0003156687350000011
采用投票端私钥
Figure FDA0003156687350000012
对选票bi进行签名得到选票签名
Figure FDA0003156687350000013
vi表示投票人的选票,为数字0或者1;
S24:投票端将投票端选票消息
Figure FDA0003156687350000014
以交易的形式发布到投票管理端的智能合约中,完成投票,其中
Figure FDA0003156687350000015
为投票端公钥;
S3:统计结果:
S31:到达设定的投票结束时间后,投票管理端停止接收投票,进行结果统计;
S32:投票端使用自身的以太坊账户addri将选择的随机数Ri发送到智能合约中;
S33:进行签名验证之后,得出投票结果。
2.根据权利要求1所述的基于区块链的匿名电子投票方法,其特征在于,还包括系统参数预配置步骤,具体为:
注册中心生成注册中心公私钥对(pkca,skca);
投票管理端、投票端根据以太坊网络需求参数,采用椭圆曲线密码学方法分别生成以太坊账户投票管理端公私钥对(pka,ska),投票端公私钥对
Figure FDA0003156687350000021
采用哈希算法计算以太坊账户地址addri
注册中心、投票管理端和投票端保留自身私钥,并将公钥公开。
3.根据权利要求1所述的基于区块链的匿名电子投票方法,其特征在于,步骤S1中所述盲化为:投票端在以太坊账户地址addri上添加盲因子ri进行消息盲化,计算公式为:t=mkemod n;
所述注册中心采用RSA盲签名协议生成盲签名;
所述去盲操作的具体计算方式为:投票端收到注册中心返回的盲签名并通过去盲操作td/k mod n得到投票权限签名σi,计算公式为:σi=md mod n;
其中t为隐蔽好的消息,k为投票端在1至n之间选择的随机数,m为投票端的以太坊账户地址addri,(e,n)为注册中心公钥,d为注册中心私钥,n表示公共参数。
4.根据权利要求1所述的基于区块链的匿名电子投票方法,其特征在于,步骤S21所述智能合约的内容包括投票管理端配置的公共参数g与n、投票开始时间Tstart、投票结束时间Tend以及投票说明。
5.根据权利要求1所述的基于区块链的匿名电子投票方法,其特征在于,步骤S23中所述采用以太坊账户私钥
Figure FDA0003156687350000022
对选票bi进行签名得到选票签名
Figure FDA0003156687350000023
所述签名的具体步骤为:
S231:选择随机数k∈(1,p-1);
S232:计算k·G=(x1,y2)并将x1转化为整数z;
S233:计算r=z mod p,若r=0,跳至步骤S231;
S234:计算e=H(mes);
S235:计算s=k-1(e+sk·r)mod p;若s=0,则跳至步骤S231;
S236:返回签名(r,s),其中p=2256-232-29-28-27-26-24-1,mes为待签名消息,G为椭圆曲线的基底,e为待签名消息的Hash值。
6.根据权利要求1所述的基于区块链的匿名电子投票方法,其特征在于,所述投票管理端停止接收投票,具体步骤为:
在智能合约中设定一个bool类型的变量,用于控制智能合约是否继续接收新的投票交易,将bool类型的变量的值设置成false,投票管理端停止接收投票。
7.根据权利要求1所述的基于区块链的匿名电子投票方法,其特征在于,步骤S33所述签名验证的具体步骤为:
采用注册中心公钥pkca验证投票权限签名σi是对以太坊账户地址addri的签名;
采用投票端公钥
Figure FDA0003156687350000031
验证选票签名
Figure FDA0003156687350000032
是投票端对选票bi的签名;
采用Hash函数验证投票端的以太坊账户地址addri是由投票端公钥
Figure FDA0003156687350000033
生成。
8.根据权利要求7所述的基于区块链的匿名电子投票方法,其特征在于,所述投票权限签名σi和所述选票签名
Figure FDA0003156687350000034
的签名验证的具体步骤为:
签名验证模块接受到签名(r,s)与待签名消息mes后,计算e=H(mes);
计算w=s-1mod p;
计算u1=ew mod p以及u2=rw mod p;
计算X=u1G+u2·pk;
如果X=∞,则返回“拒绝该签名”;
将X的x坐标转化为整数z,计算v=z mod p;
比较v与r是否相等,如果相等则返回“接受该签名”,否则返回“拒绝该签名”,其中mes为待签名消息,w、u1、u2、X和v均为中间变量,p=2256-232-29-28-27-26-24-1,G为椭圆曲线的基底。
9.一种基于区块链的匿名电子投票系统,其特征在于,包括:注册中心、投票端、投票验证模块和投票管理端;
所述注册中心设有签名注册模块,所述签名注册模块将投票端的投票端身份信息和以太坊账户地址addri注册生成投票权限签名σi
所述投票端用于获取智能合约中的投票信息并产生投票端选票消息mi进行投票,投票端选择随机数Ri,投票端选择投票内容并计算出投票端选票
Figure FDA0003156687350000041
采用投票端私钥
Figure FDA0003156687350000042
对选票bi进行签名得到选票签名
Figure FDA0003156687350000043
vi表示投票人的选票,为数字0或者1,g、n表示公共参数;
投票端将投票端选票消息
Figure FDA0003156687350000044
以交易的形式发布到投票管理端的智能合约中,完成投票,其中
Figure FDA0003156687350000045
为投票端公钥;
其中投票端选票消息mi包括投票端选票、选票签名、投票权限签名、投票端公钥;
所述投票验证模块用于验证确认选票签名、投票权限签名和以太坊账户地址addri
所述投票管理端用于生成投票信息并设置投票条件,输出投票统计结果。
CN201910406319.7A 2019-05-16 2019-05-16 基于区块链的匿名电子投票方法及系统 Active CN110232764B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910406319.7A CN110232764B (zh) 2019-05-16 2019-05-16 基于区块链的匿名电子投票方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910406319.7A CN110232764B (zh) 2019-05-16 2019-05-16 基于区块链的匿名电子投票方法及系统

Publications (2)

Publication Number Publication Date
CN110232764A CN110232764A (zh) 2019-09-13
CN110232764B true CN110232764B (zh) 2021-09-21

Family

ID=67860736

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910406319.7A Active CN110232764B (zh) 2019-05-16 2019-05-16 基于区块链的匿名电子投票方法及系统

Country Status (1)

Country Link
CN (1) CN110232764B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111010424A (zh) * 2019-11-21 2020-04-14 山东爱城市网信息技术有限公司 一种基于区块链的网络投票方法及设备、介质
CN111277403B (zh) * 2020-01-17 2023-04-14 南京如般量子科技有限公司 基于秘密共享和基于身份密码学的抗量子计算投票方法
CN111404876A (zh) * 2020-02-20 2020-07-10 江苏荣泽信息科技股份有限公司 一种基于区块链的投票方法
CN111612457A (zh) * 2020-04-27 2020-09-01 深圳壹账通智能科技有限公司 基于区块链的电子投票方法、装置及存储介质
CN111817855B (zh) * 2020-06-10 2023-02-24 北京航空航天大学 基于以太坊区块链的电子投票方法及系统
CN112509206B (zh) * 2020-11-16 2022-05-03 哈尔滨工业大学 一种基于以太坊的投票系统及方法
CN112543101B (zh) * 2020-12-17 2021-08-17 广州欧赛斯信息科技有限公司 一种基于时间释放的可追踪匿名投票方法及系统
CN112597538B (zh) * 2020-12-28 2022-07-15 上海万向区块链股份公司 一种基于区块链的可验证投票方法及系统
CN113127910B (zh) * 2021-04-30 2022-04-12 复旦大学 基于区块链和去中心可追踪属性签名的可控匿名投票系统
CN113572620B (zh) * 2021-09-27 2021-12-24 中邮消费金融有限公司 一种基于区块链的线上表决方法和系统
CN114333137A (zh) * 2021-12-16 2022-04-12 复旦大学 基于部分盲签名与区块链的匿名和抗胁迫电子投票系统
CN114629660B (zh) * 2022-04-21 2024-03-08 南方电网科学研究院有限责任公司 一种基于区块链的匿名可信投票方法、装置及相关设备
CN115147976A (zh) * 2022-06-28 2022-10-04 肖峻峰 一种基于区块链去中心化的投票的方法和系统
CN114978517B (zh) * 2022-07-27 2022-10-21 西南石油大学 一种基于智能合约和分布式Elgamal算法的电子投票方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487801A (zh) * 2016-11-03 2017-03-08 江苏通付盾科技有限公司 基于区块链的信息验证方法及装置
CN107294727A (zh) * 2017-05-22 2017-10-24 联动优势科技有限公司 一种电子投票方法、终端设备以及区块链网络
CN108109257A (zh) * 2018-01-05 2018-06-01 杭州电子科技大学 一种基于区块链的匿名电子投票方法
CN108173653A (zh) * 2018-03-13 2018-06-15 江苏信源久安信息科技有限公司 通过标识密码算法生成具有生命周期密钥的方法
CN108259467A (zh) * 2017-12-13 2018-07-06 晖保智能科技(上海)有限公司 一种区块链通信系统的加密认证方法
CN109274505A (zh) * 2018-11-22 2019-01-25 浙江工商大学 一种基于区块链技术的匿名电子选举方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487801A (zh) * 2016-11-03 2017-03-08 江苏通付盾科技有限公司 基于区块链的信息验证方法及装置
CN107294727A (zh) * 2017-05-22 2017-10-24 联动优势科技有限公司 一种电子投票方法、终端设备以及区块链网络
CN108259467A (zh) * 2017-12-13 2018-07-06 晖保智能科技(上海)有限公司 一种区块链通信系统的加密认证方法
CN108109257A (zh) * 2018-01-05 2018-06-01 杭州电子科技大学 一种基于区块链的匿名电子投票方法
CN108173653A (zh) * 2018-03-13 2018-06-15 江苏信源久安信息科技有限公司 通过标识密码算法生成具有生命周期密钥的方法
CN109274505A (zh) * 2018-11-22 2019-01-25 浙江工商大学 一种基于区块链技术的匿名电子选举方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于区块链的投票系统设计;郄九玲等;《通信技术》;20180731;第51卷(第7期);第1746-1750页 *

Also Published As

Publication number Publication date
CN110232764A (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
CN110232764B (zh) 基于区块链的匿名电子投票方法及系统
CN109785494B (zh) 基于区块链的可追踪的匿名电子投票方法
Adiputra et al. A proposal of blockchain-based electronic voting system
CN109523683A (zh) 一种基于区块链技术的不记名电子投票方法
CN109005036B (zh) 一种基于标识密码算法的区块链成员管理方法和系统
CN109067547A (zh) 一种基于一次性环签名的区块链隐私保护方法
WO2020133326A1 (zh) 区块链生成方法、系统、计算机存储介质和电子设备
Liaw A secure electronic voting protocol for general elections
CN109934988B (zh) 一种基于区块链的电子投票方法
CN104392534A (zh) 一种基于手指静脉特征识别的电子投票系统
KR20200087913A (ko) 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법
CN110060403A (zh) 基于区块链的一人多票电子投票方法及系统
CN112995136A (zh) 一种基于联盟链的k-out-of-m匿名投票方法
US20230208643A1 (en) Zero-knowledge interaction processing system and method
CN101877639A (zh) 信息处理设备、密钥更新方法和程序
CN110719168B (zh) 一种基于区块链的分级匿名表决方法
CN110867012A (zh) 一种基于智能合约的去中心电子投票方法、装置、系统及存储介质
Chang et al. An anonymous voting mechanism based on the key exchange protocol
CN113850947B (zh) 基于ElGamal加密的电子投票系统
KR20120028157A (ko) 전자투표 시스템
Lijuan et al. Electronic Voting Scheme Based on Blockchain and SM2 Cryptographic Algorithm Zero-Knowledge Proof
KR101139898B1 (ko) 전자투표 방법
Sihite et al. E-voting and e-recap verification and validation schemes for indonesia utilizing cryptographic hash function message authentication codes (MAC) and public key infrastructure (PKI)
CN111447071B (zh) 一种分布式共识算法及分布式系统
Sri et al. E-voting system using blockchain

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant