CN112487468B - 基于区块链的可追踪的完全匿名电子投票方法及系统 - Google Patents
基于区块链的可追踪的完全匿名电子投票方法及系统 Download PDFInfo
- Publication number
- CN112487468B CN112487468B CN202011516193.8A CN202011516193A CN112487468B CN 112487468 B CN112487468 B CN 112487468B CN 202011516193 A CN202011516193 A CN 202011516193A CN 112487468 B CN112487468 B CN 112487468B
- Authority
- CN
- China
- Prior art keywords
- user
- voting
- processing
- authentication token
- anonymous
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000007246 mechanism Effects 0.000 claims abstract description 36
- 238000012795 verification Methods 0.000 claims abstract description 36
- 238000005266 casting Methods 0.000 claims abstract description 12
- 238000012216 screening Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 70
- 230000008569 process Effects 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 17
- 238000010200 validation analysis Methods 0.000 claims description 13
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Voting apparatus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的可追踪的完全匿名电子投票方法及系统,该方法包括以下步骤:投票初始化,生成主公钥和主私钥;用户注册,结合主私钥通过注册机构为用户模块中每个用户生成匿名凭证;发布投票任务,通过选举委员会设定并公开投票要求;投票处理,结合主公钥生成选票并通过认证操作对选票进行认证,生成认证令牌,并投出该选票和认证令牌;验证选票,通过验证操作检查得到的认证令牌是否有效;追踪双投用户,通过追踪操作定位双投用户的认证令牌并推断出其身份信息;计票,筛选有效选票并计算投票结果。本发明结合匿名凭证方案、零知识证明方案保证了完全匿名性,实现了访问控制功能,进一步通过公开可追踪机制识别出双投用户。
Description
技术领域
本发明涉及可追踪的电子投票技术领域,具体涉及一种基于区块链的可追踪的完全匿名电子投票方法及系统。
背景技术
匿名电子投票方案一般基于隐私保护技术。当前基于区块链的电子投票方案,一般采用加密方案、盲签名、群签名、环签名等技术;同时,针对“双投”的问题,已经存在基于可链接环签名、可链接群签名的投票方案应用在区块链上,实现检查双投选票的效果。
现有的实现隐私保护的区块链投票方案,虽然可以实现一定的匿名性,也具有一定的可链接性或可追踪性,但仅仅考虑了投票时的匿名,不能实现完全匿名,即匿名注册和匿名投票;而且对于部分方案只能检测双投是否存在,或者依赖权威机构去追踪双投者的身份,也未能实现公开可追踪。此外,完全匿名这一强隐私保护需求还未在当前的投票方案中实现。因此,实现完全匿名的公开可追踪的基于区块链的投票方案,亟待解决。
发明内容
为了克服现有技术存在的缺陷与不足,本发明针对完全匿名和可追踪的需求,提出了一种基于区块链的可追踪的完全匿名电子投票方法;
本发明的第二目的在于提出了一种基于区块链的可追踪的完全匿名电子投票系统。
为了达到上述目的,本发明采用以下技术方案:
一种基于区块链的可追踪的完全匿名电子投票方法,包括以下步骤:
投票初始化,生成主公钥和主私钥;
用户注册,结合主私钥通过注册机构为用户模块中每个用户生成匿名凭证;
发布投票任务,通过选举委员会设定并公开投票要求;
投票处理,结合主公钥生成选票并通过认证操作对选票进行认证,生成认证令牌,并投出该选票和认证令牌;
验证选票,通过验证操作检查得到的认证令牌是否有效;
追踪双投用户,判断用户投票次数,当用户投票次数达到两次时,允许任何人通过追踪操作定位该用户的认证令牌并推断出其身份信息;
计票,筛选有效选票并计算投票结果。
作为优选的技术方案,所述投票初始化,包括以下具体步骤:
令Φ=(Φ.Setup,Φ.Gen,Φ.Verify)为具有属性的匿名凭证处理,即Φ处理;其中,Φ.Setup为Φ处理的设置操作,用户初始化匿名凭证处理;Φ.Gen为Φ处理的证书生成操作,用于生成用户的匿名凭证;Φ.Verify为Φ处理的验证操作,根据证书编号、匿名凭证、公开参数验证匿名凭证的有效性;
令Π=(Π.Setup,Π.Prover,Π.Verifier)为zk-SNARK零知识证明处理,即Π处理;其中,Π.Setup为Π处理的设置操作,用于初始化zk-SNARK零知识证明处理;Π.Prover为Π处理的证明操作,用于生成一个有效的证明;Π.Verifier为Π处理的验证操作,用于验证认证令牌的有效性;
令E=(E.Setup,E.Encrypt,E.Decrypt)为CPA安全的加密处理,即E处理;其中,E.Setup为E处理的设置操作,用于初始化加密处理;E.Encrypt为E处理的加密操作,用于加密明文生成密文;E.Decrypt为E处理的解密操作,用于解密生成明文。
作为优选的技术方案,所述生成主公钥和主私钥,包括以下具体步骤:
通过注册机构执行Φ处理的设置操作,根据安全参数进行初始化匿名凭证处理得到公开参数和主私钥;
通过注册机构执行Π处理的设置操作,根据安全参数、第一NP语言进行初始化zk-SNARK零知识证明处理得到公共参考字符串;
通过注册机构选择两个Hash函数,H1:{0,1}*×{0,1}*→HS,
H2:{0,1}*×{0,1}*→HS;其中H1和H2为不同的函数,用于构造主公钥;HS为属性空间;
令主公钥mpk=(pk,crs,H1,H2),输出主公钥mpk、主私钥msk;其中pk表示公开参数,crs表示公共参考字符串、H1和H2表示为两个哈希函数;
将主公钥放进一笔交易中,并将该交易发送到区块链网络。
作为优选的技术方案,所述用户注册,包括以下具体步骤:
注册机构执行Φ处理的证书生成操作,根据用户和注册机构的共同输入、用户的私有输入、注册机构的私有输入生成用户的匿名凭证;
注册机构输出第一标识或第二标识,用户输出一个带有证书编号的匿名凭证;其中所述第一标识代表完成,所述第二标识代表未完成。
作为优选的技术方案,所述发布投票任务,包括以下具体步骤:
通过选举委员会设定投票编号、候选对象列表、截止时间、访问策略;
通过选举委员会执行E处理的设置操作,根据安全参数进行初始化加密处理得到用于加解密的公私钥对,编译智能合约;其中智能合约包括计票规则、访问策略、截止时间;
通过选举委员会生成一个选举委员会区块链账户地址,将投票编号、访问策略和智能合约放进一笔交易中,并通过选举委员会区块链账户地址将该交易发送到区块链网络。
作为优选的技术方案,所述投票处理,包括以下具体步骤:
用户从候选对象列表中选择一个候选对象,通过E处理的加密操作根据明文、加密秘钥进行加密明文生成密文;
通过用户执行Π处理的证明操作,根据声明、证据、公共参考字符串生成一个有效的证明;
基于有效的证明进行构造认证令牌;
生成第i个用户区块链账户地址,将密文和认证令牌放进一笔交易中,并通过第i个用户区块链账户地址将该交易发送到区块链网络。
作为优选的技术方案,所述验证选票,通过Π处理的验证操作进行验证认证令牌的有效性,所述Π处理的验证操作根据声明、认证令牌、公共参考字符串进行验证认证令牌的有效性,输出第一验证输出信号或第二验证输出信号;
所述第一验证输出信号用于表示验证通过,所述第二验证输出信号用于表示验证不通过。
作为优选的技术方案,所述追踪双投用户,包括以下具体步骤:
令和/>为某个用户对vid||Λ||Bi和vid||Λ||Bj分别生成的两个认证令牌;其中vid表示投票编号,Λ表示访问策略,Bi和Bj分别表示第一密文、第二密文,所述第一密文和所述第二密文不同,πi表示第一认证令牌,/>ηi分别表示第一认证令牌的第一认证参数、第二认证参数、第三认证参数;πj表示第二认证令牌,ηj分别表示第二认证令牌的第一认证参数、第二认证参数、第三认证参数;
若则判定为双投用户;
根据两个认证令牌中的第二认证参数、第一密文和第二密文得出双投用户的身份信息id,其中双投用户的身份信息id满足关系式:
作为优选的技术方案,所述计票,包括以下具体步骤:
通过选举委员会筛选出所有验证无效和双投的选票,
执行与E.Decrypt(Bi,esk)相同的操作解密剩余的有效选票,得到对应明文信息,针对每一个候选对象计算k个候选对象的最终得票数R=(R1,...,Rk);
对于第二NP语言:
生成对计票结果的零知识证明;其中,Param表示相关的公开参数,表示计票过程中的所有有效选票,bi是对应密文Bi的明文选票,Rj表示第j个候选对象的得票总数,Tally表示计票机制,bn表示对应密文Bn的明文选票,epk表示加密秘钥,esk表示解密秘钥,f表示根据解密秘钥生成加密秘钥的函数,k表示候选对象的总个数,i、j、n均为正整数,i满足1≤i≤n;
将k个候选对象的最终得票数和对计票结果的零知识证明放进一笔交易中,并通过选举委员会区块链账户地址将该交易发送到区块链网络。
为了达到上述第二目的,本发明采用以下技术方案:
一种基于区块链的可追踪的完全匿名电子投票系统,包括投票初始化模块、用户注册模块、发布投票任务模块、投票模块、验证选票模块、追踪双投用户模块、计票模块、参与对象;
所述参与对象包括注册机构、选举委员会、用户模块;其中用户模块设有多个用户;
所述投票初始化模块用于生成主公钥和主私钥;
所述用户注册模块用于结合主私钥通过注册机构为用户模块中每个用户生成匿名凭证;
所述发布投票任务模块用于通过选举委员会设定并公开投票要求;
所述投票模块用于结合主公钥生成选票并通过认证操作对选票进行认证、生成认证令牌、投出该选票和认证令牌;
所述验证选票模块用于通过验证操作检查得到的认证令牌是否有效;
所述追踪双投用户模块用于判断用户投票次数,当用户投票次数达到两次时,允许任何人通过追踪操作定位该用户的认证令牌并推断出其身份信息;
所述计票模块用于筛选有效选票并计算投票结果。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明在注册阶段采用了匿名凭证方案,保证了注册时不泄露用户隐私;在投票阶段采用了CPA安全的加密处理和zk-SNARK零知识证明处理,保证了投票时不透露选票内容和用户身份信息;利用这三个处理构造的投票方法,解决了传统投票方案只考虑保护投票过程隐私而忽略注册过程隐私保护的技术问题,达到了保证用户在整个投票过程中都是完全匿名的技术效果,具有高度的创新性。
(2)本发明在实现投票的完全匿名性时,又兼顾了传统电子投票方案中的不可伪造性和可验证性等基本需求,使得任意敌手不能通过伪造合法用户身份以参与投票,又能在完全匿名的环境下验证选票的有效性,实现投票方案的可操作性和可兼容性,具有高度的实用性。
(3)本发明考虑了投票的访问控制功能,采用了类似于匿名凭证处理的访问策略机制,实现了只允许符合访问策略的用户投出有效选票的效果,而不满足访问策略的用户即使投出了选票,但因不能通过验证而被视为无效选票,使得投票方案具有访问控制权限的功能,从而筛选出有效选票。
(4)本发明采用了电子现金防双花的技术,解决了当前投票方案不能有效公开追踪双投用户的难题,达到了在不依赖权威机构的前提下,允许任何人检测双投选票并追踪该双投用户身份的效果(即公开可追踪),进而平衡了匿名性和责任性,具有较高的创新价值和应用价值。
附图说明
图1为本发明实施例1中的基于区块链的可追踪的完全匿名电子投票方法流程图;
图2为本发明实施例2中基于区块链的可追踪的完全匿名电子投票系统的参与对象交互示意图。
具体实施方式
在本公开的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在该词前面的元素或者物件涵盖出现在该词后面列举的元素及其等同,而不排除其他元素。
对于本领域的普通技术人员而言,可以具体情况理解上述术语在本公开中的具体含义。此外,下面所描述的本公开不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例
实施例1
如图1所示,本实施例提供了一种基于区块链的可追踪的完全匿名电子投票方法,包括以下步骤:
投票初始化,生成系统所需主公钥和主私钥;
用户注册,结合主私钥通过注册机构(CA)为用户模块中每个用户生成匿名凭证;
发布投票任务,通过选举委员会(EC)设定并公开投票要求;
投票处理,结合主公钥生成选票并通过认证操作对选票进行认证,生成认证令牌,并投出该选票和认证令牌;
验证选票,通过验证操作检查得到的认证令牌是否有效;
追踪双投用户,判断用户投票次数,当用户投票次数达到两次时,允许任何人通过追踪操作定位该用户的认证令牌并推断出其身份信息;
计票,筛选有效选票并计算投票结果。
在本实施例中,投票初始化,包括以下具体步骤:
令Φ=(Φ.Setup,Φ.Gen,Φ.Verify)为具有属性的匿名凭证处理,即Φ处理;
令Π=(Π.Setup,Π.Prover,Π.Verifier)为zk-SNARK零知识证明处理,即Π处理;
令E=(E.Setup,E.Encrypt,E.Decrypt)为CPA安全的加密处理,即E处理。
在本实施例中,Φ.Setup为Φ处理的设置操作,用于初始化匿名凭证处理,具体为Φ.Setup(λ)→(pk,msk),其中λ表示输入安全参数,pk表示输出公开参数,msk表示主私钥;
Φ.Gen为Φ处理的证书生成操作,用于根据用户和注册机构的共同输入、用户的私有输入、注册机构的私有输入生成用户的匿名凭证;其中用户和注册机构的共同输入包括公开参数pk和承诺Ci=Commit(Li,ri,pk),用户的私有输入包括用户属性集合{id,l1,...,ln}、随机数ri以及输入证书编号cid,注册机构的私有输入包括主私钥msk,最终,证书颁发机构输出“完成”或“未完成”,用户输出一个匿名凭证在本实施例中,Commit(Li,ri,pk)是对用户属性集合Li={id,l1,...,ln}生成的承诺,/>是对应用户属性集合Li的一个新的承诺,/>是对/>和cid的签名,id表示用户的身份信息,l1,...,ln分别表示n个属性信息,n、i为正整数;
Φ.Verify为Φ处理的验证操作,用于验证匿名凭证的有效性,具体为Φ.Verify(cid,σi,pk)→0/1,其中cid表示证书编号,σi表示匿名凭证,pk表示公开参数,0/1表示输出0或1。
在本实施例中,Π.Setup为Π处理的设置操作,用于初始化zk-SNARK零知识证明处理,具体为Π.Setup(λ,£)→crs,输入安全参数λ和第一NP语言£,输出公共参考字符串crs;
Π.Prover为Π处理的证明操作,用于生成一个有效的证明,具体为Π.Prover(x,w,crs)→η,输入声明x、证据w和公共参考字符串crs,输出证明η;
Π.Verifier为Π处理的验证操作,用于验证认证令牌π的有效性,具体为Π.Verifier(x,π,crs)→0/1,输入声明x、认证令牌π和公共参考字符串crs,输出0或1。
在本实施例中,E.Setup为E处理的设置操作,用于初始化加密处理,具体为E.Setup(λ)→(epk,esk),输入安全参数λ,输出用于加解密的公私钥对(epk,esk);其中,epk为加密秘钥,esk为解密秘钥;
E.Encrypt为E处理的加密操作,用于加密明文生成密文,具体为E.Encrypt(bi,epk)→Bi,输入明文bi和加密秘钥epk,输出密文Bi;
E.Decrypt为E处理的解密操作,用于解密密文生成明文,具体为E.Decrypt(Bi,esk)→bi,输入密文Bi和解密秘钥esk,输出明文bi。
在本实施例中,生成系统所需主公钥和主私钥,包括以下具体步骤:
通过注册机构执行Φ.Setup(λ)操作,生成公开参数pk和主私钥msk;
通过注册机构执行Π.Setup(λ,£)操作,生成公共参考字符串crs;
通过注册机构选择两个Hash函数,H1:{0,1}*×{0,1}*→HS,
H2:{0,1}*×{0,1}*→HS;其中两个哈希函数为不同的函数,用于构造主公钥;HS为属性空间;
令主公钥mpk=(pk,crs,H1,H2),输出主公钥mpk、主私钥msk;
将主公钥mpk放进一笔交易中,并发送该交易到区块链网络;在本实施例中,用户在投票处理时构造认证令牌的过程中需要用到mpk。
在本实施例中,用户注册,包括以下具体步骤:
注册机构执行Φ.Gen操作,由用户和注册机构进行生成匿名凭证,根据用户和注册机构的共同输入、用户的私有输入、注册机构的私有输入生成用户的匿名凭证;
最终注册机构输出第一标识或第二标识,用户输出一个证书编号为cid的匿名凭证其中所述第一标识代表完成,所述第二标识代表未完成。
在本实施例中,发布投票任务,包括以下具体步骤:
通过选举委员会设定投票编号vid、k个候选对象列表、截止时间dl、访问策略Λ;此外访问策略Λ可根据实际应用情况设置,例如年龄必须18岁以上等与个人信息有关的条件,用于对投票进行访问控制;
通过选举委员会执行E.Setup(λ)生成加解密选票用的公私钥对(epk,esk),编译智能合约SC,其中智能合约包括计票规则、访问策略、截止时间等相关信息,此外编译智能合约可根据实际情况进行调整;
通过选举委员会生成一个选举委员会区块链账户地址addEC,将投票编号vid、访问策略Λ和智能合约SC代码放进一笔交易中,并通过选举委员会区块链账户地址addEC将该交易发送到区块链网络。
在本实施例中,投票处理包括以下具体步骤:
用户从候选对象列表中选择一个候选对象,执行E.Encrypt(bi,epk)操作生成密文Bi;其中,bi表示第i个用户选择的候选对象的明文;
计算t1=H1(vid||Λ,Li),t2=H2(vid||Λ,id)+Bi·id;
令x=(vid||Λ||Bi,t1,t2,mpk)为一个声明,w=(Li,ri,Ci,σi)为一个证据,对第一NP语言
其中,||为连接符,∧表示逻辑与符号;
通过用户执行Π.Prover(x,w,crs)操作生成一个有效的证明η,完成对选票的认证;
构造认证令牌π=(t1,t2,η);
生成第i个用户区块链账户地址addi,将密文Bi和认证令牌π放进一笔交易中,并通过第i个用户区块链账户地址addi将该交易发送到区块链网络。
在本实施例中,验证选票,具体通过选举委员会执行Π.Verifier(x,π,crs)操作验证认证令牌π的有效性;如果验证通过,输出1,否则输出0。
在本实施例中,追踪双投用户包括以下具体步骤:
设和/>为某个用户对vid||Λ||Bi和vid||Λ||Bj分别生成的两个认证令牌;其中vid表示投票编号,Λ表示访问策略,Bi和Bj分别表示第一密文、第二密文,第一密文和第二密文不同,即Bi≠Bj,/>ηi分别表示第一认证令牌πi的第一认证参数、第二认证参数、第三认证参数;/>ηj分别表示第二认证令牌πj的第一认证参数、第二认证参数、第三认证参数;
在πi和πj中,若说明同一用户投了两次;
根据认证令牌的认证参数、密文得出双投用户的身份信息id,其中双投用户的身份信息id满足关系式:
在本实施例中,计票包括以下具体步骤:
通过选举委员会筛选出所有验证无效和双投的选票,
执行与E.Decrypt(Bi,esk)相同的操作解密剩余的有效选票,得到对应明文信息,针对每一个候选对象计算k个候选对象的最终得票数R=(R1,...,Rk);
对于第二NP语言:
生成对计票结果的零知识证明;其中,Param表示相关的公开参数,表示计票过程中的所有有效选票,bi是对应密文Bi的明文选票,Rj表示第j个候选对象的得票总数,Tally表示计票机制,bn表示对应密文Bn的明文选票,epk表示加密秘钥,esk表示解密秘钥,f表示根据解密秘钥生成加密秘钥的函数,k表示候选对象的总个数,i、j、n均为正整数,i满足1≤i≤n;
将k个候选对象的最终得票数R和对计票结果的零知识证明πR放进一笔交易中,并通过选举委员会区块链账户地址addEC将该交易发送到区块链网络。
实施例2
如图2所示,本实施例提供了一种基于区块链的可追踪的完全匿名电子投票系统,该系统包括投票初始化模块、用户注册模块、发布投票任务模块、投票模块、验证选票模块、追踪双投用户模块、计票模块、参与对象;
在本实施例中,参与对象包括注册机构、选举委员会、用户模块;其中用户模块设有多个用户;在本实施例中,用户以选民的形式参与,此外可根据其实际情况替换为其他形式的投票者作为参与对象中的用户。
投票初始化模块用于生成系统所需主公钥和主私钥;
用户注册模块用于通过注册机构为用户模块中每个用户生成匿名凭证;
发布投票任务模块用于通过选举委员会设定并公开投票要求;
投票处理模块用于生成选票并通过认证操作对选票进行认证、生成认证令牌、投出该选票和认证令牌;
验证选票模块用于通过验证操作检查得到的认证令牌是否有效;
追踪双投用户模块用于判断用户投票次数,当用户投票次数达到两次时,允许任何人通过追踪操作定位该用户的认证令牌并推断出其身份信息;
计票模块用于筛选有效选票并计算投票结果。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (9)
1.一种基于区块链的可追踪的完全匿名电子投票方法,其特征在于,包括以下步骤:
投票初始化,生成主公钥和主私钥;
所述投票初始化,包括:
令Φ=(Φ.Setup,Φ.Gen,Φ.Verify)为具有属性的匿名凭证处理,即Φ处理;其中,Φ.Setup为Φ处理的设置操作,用户初始化匿名凭证处理;Φ.Gen为Φ处理的证书生成操作,用于生成用户的匿名凭证;Φ.Verify为Φ处理的验证操作,根据证书编号、匿名凭证、公开参数验证匿名凭证的有效性;
令Π=(Π.Setup,Π.Prover,Π.Verifier)为zk-SNARK零知识证明处理,即Π处理;其中,Π.Setup为Π处理的设置操作,用于初始化zk-SNARK零知识证明处理;Π.Prover为Π处理的证明操作,用于生成一个有效的证明;Π.Verifier为Π处理的验证操作,用于验证认证令牌的有效性;
所述生成主公钥和主私钥,包括以下具体步骤:
通过注册机构执行Φ处理的设置操作,根据安全参数进行初始化匿名凭证处理得到公开参数和主私钥;
通过注册机构执行Π处理的设置操作,根据安全参数、第一NP语言进行初始化zk-SNARK零知识证明处理得到公共参考字符串;
通过注册机构选择两个Hash函数,H1:{0,1}*×{0,1}*→HS,
H2:{0,1}*×{0,1}*→HS;其中H1和H2为不同的函数,用于构造主公钥;HS为属性空间;
令主公钥mpk=(pk,crs,H1,H2),输出主公钥mpk、主私钥msk;其中pk表示公开参数,crs表示公共参考字符串、H1和H2表示为两个哈希函数;
将主公钥放进一笔交易中,并将该交易发送到区块链网络;
用户注册,结合主私钥通过注册机构为用户模块中每个用户生成匿名凭证;
发布投票任务,通过选举委员会设定并公开投票要求;
投票处理,结合主公钥生成选票并通过认证操作对选票进行认证,生成认证令牌,并投出该选票和认证令牌;
验证选票,通过验证操作检查得到的认证令牌是否有效;
追踪双投用户,判断用户投票次数,当用户投票次数达到两次时,允许任何人通过追踪操作定位该用户的认证令牌并推断出其身份信息;
计票,筛选有效选票并计算投票结果。
2.根据权利要求1所述的基于区块链的可追踪的完全匿名电子投票方法,其特征在于,所述投票初始化,还包括以下具体步骤:
令E=(E.Setup,E.Encrypt,E.Decrypt)为CPA安全的加密处理,即E处理;其中,E.Setup为E处理的设置操作,用于初始化加密处理;E.Encrypt为E处理的加密操作,用于加密明文生成密文;E.Decrypt为E处理的解密操作,用于解密生成明文。
3.根据权利要求1所述的基于区块链的可追踪的完全匿名电子投票方法,其特征在于,所述用户注册,包括以下具体步骤:
注册机构执行Φ处理的证书生成操作,根据用户和注册机构的共同输入、用户的私有输入、注册机构的私有输入生成用户的匿名凭证;
注册机构输出第一标识或第二标识,用户输出一个带有证书编号的匿名凭证;其中所述第一标识代表完成,所述第二标识代表未完成。
4.根据权利要求2所述的基于区块链的可追踪的完全匿名电子投票方法,其特征在于,所述发布投票任务,包括以下具体步骤:
通过选举委员会设定投票编号、候选对象列表、截止时间、访问策略;
通过选举委员会执行E处理的设置操作,根据安全参数进行初始化加密处理得到用于加解密的公私钥对,编译智能合约;其中智能合约包括计票规则、访问策略、截止时间;
通过选举委员会生成一个选举委员会区块链账户地址,将投票编号、访问策略和智能合约放进一笔交易中,并通过选举委员会区块链账户地址将该交易发送到区块链网络。
5.根据权利要求2所述的基于区块链的可追踪的完全匿名电子投票方法,其特征在于,所述投票处理,包括以下具体步骤:
用户从候选对象列表中选择一个候选对象,通过E处理的加密操作根据明文、加密秘钥进行加密明文生成密文;
通过用户执行Π处理的证明操作,根据声明、证据、公共参考字符串生成一个有效的证明;
基于有效的证明进行构造认证令牌;
生成第i个用户区块链账户地址,将密文和认证令牌放进一笔交易中,并通过第i个用户区块链账户地址将该交易发送到区块链网络。
6.根据权利要求1所述的基于区块链的可追踪的完全匿名电子投票方法,其特征在于,所述验证选票,通过Π处理的验证操作进行验证认证令牌的有效性,所述Π处理的验证操作根据声明、认证令牌、公共参考字符串进行验证认证令牌的有效性,输出第一验证输出信号或第二验证输出信号;
所述第一验证输出信号用于表示验证通过,所述第二验证输出信号用于表示验证不通过。
7.根据权利要求1所述的基于区块链的可追踪的完全匿名电子投票方法,其特征在于,所述追踪双投用户,包括以下具体步骤:
令和/>为某个用户对vid||Λ||Bi和vid||Λ||Bj分别生成的两个认证令牌;其中vid表示投票编号,Λ表示访问策略,Bi和Bj分别表示第一密文、第二密文,所述第一密文和所述第二密文不同,πi表示第一认证令牌,/>ηi分别表示第一认证令牌的第一认证参数、第二认证参数、第三认证参数;πj表示第二认证令牌,ηj分别表示第二认证令牌的第一认证参数、第二认证参数、第三认证参数;
若则判定为双投用户;
根据两个认证令牌中的第二认证参数、第一密文和第二密文得出双投用户的身份信息id,其中双投用户的身份信息id满足关系式:
8.根据权利要求1所述的基于区块链的可追踪的完全匿名电子投票方法,其特征在于,所述计票,包括以下具体步骤:
通过选举委员会筛选出所有验证无效和双投的选票,
执行与E.Decrypt(Bi,esk)相同的操作解密剩余的有效选票,得到对应明文信息,针对每一个候选对象计算k个候选对象的最终得票数R=R1,...,Rk);
对于第二NP语言:
生成对计票结果的零知识证明;其中,Param表示相关的公开参数,/>表示计票过程中的所有有效选票,bi是对应密文Bi的明文选票,Rj表示第j个候选对象的得票总数,Tally表示计票机制,bn表示对应密文Bn的明文选票,epk表示加密秘钥,esk表示解密秘钥,f表示根据解密秘钥生成加密秘钥的函数,k表示候选对象的总个数,i、j、n均为正整数,i满足1≤n;
将k个候选对象的最终得票数和对计票结果的零知识证明放进一笔交易中,并通过选举委员会区块链账户地址将该交易发送到区块链网络。
9.一种基于区块链的可追踪的完全匿名电子投票系统,其特征在于,包括投票初始化模块、用户注册模块、发布投票任务模块、投票模块、验证选票模块、追踪双投用户模块、计票模块、参与对象;
所述参与对象包括注册机构、选举委员会、用户模块;其中用户模块设有多个用户;
所述投票初始化模块用于投票初始化,生成主公钥和主私钥;
所述投票初始化,包括:
令Φ=(Φ.Setup,Φ.Gen,Φ.Verify)为具有属性的匿名凭证处理,即Φ处理;其中,Φ.Setup为Φ处理的设置操作,用户初始化匿名凭证处理;Φ.Gen为Φ处理的证书生成操作,用于生成用户的匿名凭证;Φ.Verify为Φ处理的验证操作,根据证书编号、匿名凭证、公开参数验证匿名凭证的有效性;
令Π=(Π.Setup,Π.Prover,Π.Verifier)为zk-SNARK零知识证明处理,即Π处理;其中,Π.Setup为Π处理的设置操作,用于初始化zk-SNARK零知识证明处理;Π.Prover为Π处理的证明操作,用于生成一个有效的证明;Π.Verifier为Π处理的验证操作,用于验证认证令牌的有效性;
所述生成主公钥和主私钥,包括以下具体步骤:
通过注册机构执行Φ处理的设置操作,根据安全参数进行初始化匿名凭证处理得到公开参数和主私钥;
通过注册机构执行Π处理的设置操作,根据安全参数、第一NP语言进行初始化zk-SNARK零知识证明处理得到公共参考字符串;
通过注册机构选择两个Hash函数,H1:{0,1}*×{0,1}*→HS,
H2:{0,1}*×{0,1}*→HS;其中H1和H2为不同的函数,用于构造主公钥;HS为属性空间;
令主公钥mpk=(pk,crs,H1,H2),输出主公钥mpk、主私钥msk;其中pk表示公开参数,crs表示公共参考字符串、H1和H2表示为两个哈希函数;
将主公钥放进一笔交易中,并将该交易发送到区块链网络;
所述用户注册模块用于结合主私钥通过注册机构为用户模块中每个用户生成匿名凭证;
所述发布投票任务模块用于通过选举委员会设定并公开投票要求;
所述投票模块用于结合主公钥生成选票并通过认证操作对选票进行认证、生成认证令牌、投出该选票和认证令牌;
所述验证选票模块用于通过验证操作检查得到的认证令牌是否有效;
所述追踪双投用户模块用于判断用户投票次数,当用户投票次数达到两次时,允许任何人通过追踪操作定位该用户的认证令牌并推断出其身份信息;
所述计票模块用于筛选有效选票并计算投票结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011516193.8A CN112487468B (zh) | 2020-12-21 | 2020-12-21 | 基于区块链的可追踪的完全匿名电子投票方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011516193.8A CN112487468B (zh) | 2020-12-21 | 2020-12-21 | 基于区块链的可追踪的完全匿名电子投票方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112487468A CN112487468A (zh) | 2021-03-12 |
CN112487468B true CN112487468B (zh) | 2023-11-03 |
Family
ID=74914912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011516193.8A Active CN112487468B (zh) | 2020-12-21 | 2020-12-21 | 基于区块链的可追踪的完全匿名电子投票方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112487468B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113193948B (zh) * | 2021-03-24 | 2022-03-15 | 西安电子科技大学 | 多参与方联合隐私数据统计分析方法、信息数据处理终端 |
CN112990775B (zh) * | 2021-04-25 | 2021-08-13 | 浙江数秦科技有限公司 | 一种不记名提名候选人的方法 |
CN114444090B (zh) * | 2021-12-17 | 2023-06-20 | 中国科学院信息工程研究所 | 一种高效的秘密唯一领导人选举方法 |
CN114520728B (zh) * | 2022-04-21 | 2022-08-05 | 之江实验室 | 一种分布式匿名阅卷评分方法与系统 |
CN115664714B (zh) * | 2022-09-22 | 2024-05-14 | 中国人民解放军国防科技大学 | 区块链上基于tee的匿名选委员方法、系统及介质 |
CN117240496B (zh) * | 2023-07-20 | 2024-07-26 | 北京邮电大学 | 投票方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109274481A (zh) * | 2018-08-01 | 2019-01-25 | 中国科学院数据与通信保护研究教育中心 | 一种区块链的数据可追踪方法 |
CN109785494A (zh) * | 2018-12-21 | 2019-05-21 | 暨南大学 | 基于区块链的可追踪的匿名电子投票方法 |
CN110224993A (zh) * | 2019-05-16 | 2019-09-10 | 暨南大学 | 基于区块链的可追责匿名电子投票方法及系统 |
CN110427772A (zh) * | 2019-06-27 | 2019-11-08 | 布比(北京)网络技术有限公司 | 一种基于区块链的隐私保护电子投票方法及系统 |
CN110855443A (zh) * | 2019-10-29 | 2020-02-28 | 上海唯链信息科技有限公司 | 一种基于区块链和零知识证明的投票方法及装置 |
AU2018347190A1 (en) * | 2018-11-07 | 2020-05-21 | Advanced New Technologies Co., Ltd. | Blockchain data protection based on account note model with zero-knowledge proof |
-
2020
- 2020-12-21 CN CN202011516193.8A patent/CN112487468B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109274481A (zh) * | 2018-08-01 | 2019-01-25 | 中国科学院数据与通信保护研究教育中心 | 一种区块链的数据可追踪方法 |
AU2018347190A1 (en) * | 2018-11-07 | 2020-05-21 | Advanced New Technologies Co., Ltd. | Blockchain data protection based on account note model with zero-knowledge proof |
CN109785494A (zh) * | 2018-12-21 | 2019-05-21 | 暨南大学 | 基于区块链的可追踪的匿名电子投票方法 |
CN110224993A (zh) * | 2019-05-16 | 2019-09-10 | 暨南大学 | 基于区块链的可追责匿名电子投票方法及系统 |
CN110427772A (zh) * | 2019-06-27 | 2019-11-08 | 布比(北京)网络技术有限公司 | 一种基于区块链的隐私保护电子投票方法及系统 |
CN110855443A (zh) * | 2019-10-29 | 2020-02-28 | 上海唯链信息科技有限公司 | 一种基于区块链和零知识证明的投票方法及装置 |
Non-Patent Citations (2)
Title |
---|
可证安全的公钥加密和无证书公钥加密的研究;赖俊祚;《中国博士学位论文全文数据库信息科技辑》(第10期);全文 * |
基于区块链的可追踪匿名电子投票方案;孙萌;《网络空间安全》;第10卷(第9期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112487468A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112487468B (zh) | 基于区块链的可追踪的完全匿名电子投票方法及系统 | |
CN110781521B (zh) | 基于零知识证明的智能合约认证数据隐私保护方法及系统 | |
Dimitriou | Efficient, coercion-free and universally verifiable blockchain-based voting | |
CN111316615B (zh) | 使用调解器计算机系统确保计算机程序正确执行的系统和方法 | |
WO2020124843A1 (zh) | 基于区块链的可追踪的匿名电子投票方法 | |
JP2022031817A (ja) | 分散型トランザクション伝播および検証システム | |
CN110855443B (zh) | 一种基于区块链和零知识证明的投票方法及装置 | |
CN111066283A (zh) | 对区块链网络上实体提供的数据进行通信、存储和处理的系统和方法 | |
EP3419210A1 (en) | Method for generating a transaction of a blockchain and method for validating a block of a blockchain | |
Joaquim et al. | EVIV: An end-to-end verifiable Internet voting system | |
Yang et al. | PriScore: Blockchain-based self-tallying election system supporting score voting | |
CN109862046A (zh) | 一种联盟链中可追溯匿名方法 | |
CN116192405B (zh) | 一种电子投票方法及相关装置 | |
Pathak et al. | Blockchain based e-voting system | |
Li et al. | AvecVoting: Anonymous and verifiable E-voting with untrustworthy counters on blockchain | |
Zhaolu et al. | Division of regulatory power: Collaborative regulation for privacy-preserving blockchains | |
Lu et al. | Self-tallying e-voting with public traceability based on blockchain | |
Alvi et al. | Bsevoting: A conceptual framework to develop electronic voting system using sidechain | |
Gupta et al. | Improving the End to End Protection in E-voting using BVM-Blockchain based e-Voting Mechanism | |
Buyukbaskin et al. | Requirement analysis of some blockchain-based e-voting schemes | |
CN114584357A (zh) | 一种基于非同质化Token匿名安全投票的方法 | |
CN112699395A (zh) | 细粒度访问控制的可追责的基于属性的匿名认证方法 | |
Jafar et al. | Empowering Secure and Cost-Efficient Blockchain Electronic Voting by Optimized ZK-SNARK Algorithm | |
Ahmed et al. | Secure biometric e-voting scheme | |
Vangujar et al. | A Novel Approach to e-Voting with Group Identity Based Identification and Homomorphic Encryption |
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 |