CN113037462A - 一种基于区块链和安全多方计算的公平电子投票协议方法 - Google Patents

一种基于区块链和安全多方计算的公平电子投票协议方法 Download PDF

Info

Publication number
CN113037462A
CN113037462A CN202110347387.8A CN202110347387A CN113037462A CN 113037462 A CN113037462 A CN 113037462A CN 202110347387 A CN202110347387 A CN 202110347387A CN 113037462 A CN113037462 A CN 113037462A
Authority
CN
China
Prior art keywords
voting
vote
participants
deposit
contract
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.)
Granted
Application number
CN202110347387.8A
Other languages
English (en)
Other versions
CN113037462B (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202110347387.8A priority Critical patent/CN113037462B/zh
Publication of CN113037462A publication Critical patent/CN113037462A/zh
Application granted granted Critical
Publication of CN113037462B publication Critical patent/CN113037462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • 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/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于区块链和安全多方计算的公平电子投票协议方法,本发明使用秘密分享、同态加密和同态承诺技术构建了支持在智能合约上公开运行的可验证安全多方计算协议,能够抵抗n‑1合谋攻击,并利用该协议使用区块链自动完成投票、验票、计票等过程,支持匿名的加权n‑of‑m投票活动,完全去除计票中心和监督机构等可信第三方的存在,同时结合节点信任度评价机制,从信誉值、活跃度和自私性多个维度评价参与方的历史行为,并结合押金机制,通过对恶意者进行惩罚解决协议执行的公平性问题。

Description

一种基于区块链和安全多方计算的公平电子投票协议方法
技术领域
本发明涉及区块链技术和安全电子投票的研究领域,特别涉及一种基于区块链和安全多方计算的公平电子投票协议方法。
背景技术
电子投票能够克服纸质投票的很多弊端,很多国家利用电子投票来进行重大的投票活动。传统的电子投票方案主要有三大类:基于混合网络的电子投票方案、基于环签名和盲签名的电子投票方案、基于全同态加密的电子投票方案。这些方案多少都会存在一些问题,基于环签名和盲签名的方案很多需要假设依靠可信机构和匿名信道;基于混合网络的方案和基于全同态加密的方案存在算法复杂度较高,实用性不强的问题。另外,传统的电子投票方案仍然需要依赖中心化的***,如授权机构、注册机构或计票机构等,如果这些机构被攻破或腐蚀,则可能导致协议无法继续正常执行,或出现选票隐私泄露的问题。
随着比特币和区块链技术的发展成熟,区块链去中心化的特性让其成为用于构造更加安全可靠的电子投票协议的有效方法之一。有些学者开始利用区块链来构造安全的电子投票协议,但现有的方案仍然存在一些没有解决的问题:1.实用性问题:大多数方案仅能实现二选一、多选一的投票方案,没有能够同时实现加权的多选多形式的投票方案;2.安全性问题:很多方案的解决思路是利用区块链储存加密的选票信息,但仍然依赖第三方机构,如注册中心和授权中心,仍然存在中心化的威胁问题;3.公平性问题:恶意参与者在协议执行的最后阶段违背协议,导致诚实参与者无法得到正确结果而只有恶意参与者能得到结果。大多数是采用押金机制和时间承诺机制,通过提高作恶成本迫使参与者推动协议正确执行,但没有综合考虑参与方的历史行为等信息。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于区块链和安全多方计算的公平电子投票协议方法,利用安全多方计算协议保证选票和计票的私密性,使用区块链自动完成投票、验票、计票等过程支持匿名的加权多选多投票活动,完全去除计票中心和监督机构等可信第三方的存在,同时结合节点信任度评价机制,解决协议执行的公平性问题。
本发明的目的通过以下的技术方案实现:
一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,包括以下步骤:
***建立:建立投票***,在区块链部署投票***相关合约,并进行***参数初始化;
投票身份注册:各个参与方生成各自的加密密钥对和签名密钥对,并各自生成唯一的身份标识,调用区块链上的身份注册合约将公钥和身份标识等信息发布在链上,注册合约对身份信息进行唯一性和有效性验证,验证通过后将用户投票身份持久化在区块链上;
发起投票:投票发起人调用区块链上的投票发布智能合约提交投票活动相关信息,发布投票活动后将投票标识告知参与本次活动的投票参与方;
缴纳押金:各个参与方调用区块链上的押金缴纳合约缴纳押金;
增加计算参与方:管理员根据节点信任度排名选取额外的计算参与方,与指定的投票参与方组成本次投票活动的计算参与方;
生成选票与投票:各投票参与方生成加密选票Ticketi、选票承诺Commitmenti和选票签名σi,调用区块链上的选票提交合约提交选票信息,如下所示:
Inputi={Ticketi,Commitmentii};
计票:最后一个投票参与方提交选票后,智能合约自动触发计票合约,计票合约调用安全多方计算协议完成计票;
计票结果揭示:各参与方解密各自对应的结果分片的
Figure BDA0003001206400000024
然后将结果提交到智能合约,智能合约执行秘密恢复过程得到最终计票结果,并返还用户缴纳的押金。
进一步地,所述进行***参数初始化,具体为:***在域Fn中选取阶为大素数k的椭圆曲线E,选取E中的点G和H,
Figure BDA0003001206400000021
G和H作为Pedersen同态承诺方案的参数,并确定Paillier加密算法的密钥长度keysize。
进一步地,所述投票身份注册,具体如下:
S201、密钥生成:各个参与方使用Paillier同态加密算法生成加密密钥对
Figure BDA0003001206400000022
使用ECDSA算法生成签名密钥对
Figure BDA0003001206400000023
S202、身份提交:各个参与方pi生成一个全局唯一的身份标识ID,计算签名
Figure BDA0003001206400000031
调用区块链上的身份注册合约提交身份信息
Figure BDA0003001206400000032
S203、身份验证:智能合约验证ID是否全局唯一有效,并验证σi是否为
Figure BDA0003001206400000033
对identityi的有效签名,如果验证通过,则将identityi持久化公示在区块链上,否则身份注册失败。
进一步地,所述发起投票,具体如下:发起投票的必要信息包括:全局唯一的投票编号VoteID,投票标题Title,投票描述Desc,授权投票人及其权重集合WeightMap:{userID,weight},可选项数MaxSelectCount,投票候选项Items;
授权投票人及其权重集合WeightMap的功能为授权,能指定允许参与当前次投票的参与者及其在本轮投票中的投票权重,可选项数MaxSelectCount代表模式,投票人被允许一次最多选择的项数;投票选项Items为具体的投票选项;发起方调用区块链上的投票活动发布合约提交活动信息:
activity={VoteID,Title,Desc,WeightMap,MaxSelectCount,Items}
智能合约验证活动信息activity的完整性以及唯一性后将活动信息持久化在区块链上;发起方将VoteID告知授权的投票参与方,参与方通过VoteID查询投票活动信息。
参与活动的投票参与方可通过投票编号VoteID查询是否被授权参与投票活动。
进一步地,所述缴纳押金:各个参与方调用区块链上的押金缴纳合约缴纳押金,具体为:参与方Pi调用智能合约Deposit(voteId,depi,Pii),其中
Figure BDA0003001206400000034
depi为缴纳的押金;Deposit首先使用
Figure BDA0003001206400000035
验证σi是否为
Figure BDA0003001206400000036
的有效签名,如果不是,则拒绝此次押金缴纳请求;如果验证通过,则从链上Pi的资金账户中扣除押金并转入此次投票活动的押金账户中:Account(Pi)-=depi,AccountvoteId(Pi)=depi
进一步地,所述增加计算参与方:管理员根据节点信任度排名选取额外的计算参与方Pextra,与指定的投票参与方组成本次投票活动的计算参与方Pall={Pextra,Pweightmap},具体如下:
所述节点信任度排名Ranktrust为各个参与方在区块链上的信任度Trusti的排名结果,信任度Trusti计算如下:
Trusti=αRi+βSi+χAi+δDi
α+β+χ+δ=1,α,β,χ,δ>0
其中,
Figure BDA0003001206400000041
表示节点信誉值,Wih为节点诚实参与的任务总权重,Wim为节点作为的任务总权重,
Figure BDA0003001206400000042
表示节点自私性,Disti为节点参与各方发起任务的数量向量,Distall为所有发起方发起任务的数量向量;
Figure BDA0003001206400000043
表示节点活跃度,nih为节点诚实参与任务的数量,nall为任务总数量;
Figure BDA0003001206400000044
表示归一化后的押金。
进一步地,所述信任度除押金部分为每次计算任务前缴纳决定,信誉值、活跃度和自私性由智能合约动态维护;
若不指定额外参与方,则Pall={Pweightmap}。
进一步地,所述生成选票与投票,具体如下:
S601:构造明文选票:每个投票人对每个候选项的选择由k为二进制组成Ak=00...0ak,所有授权投票人总权重为W=∑wi则Ak的长度为
Figure BDA0003001206400000045
若投赞成,则ai=1,否则ai=0;对所有的选项的选择构成了该投票人的选票Ti=A1A2...Am,将其转化为十进制表示形式即为最终的明文选票xi
S602:加密选票:投票人Pi利用加法秘密分享将明文选票xi切分为n个随机的子秘密xi,j,n为Pall的大小;利用Pj的加密公钥
Figure BDA0003001206400000046
加密第j个子秘密得到
Figure BDA0003001206400000047
S603:生成选票承诺:Pi利用Pedersen同态承诺方案生成步骤S602中的每个子秘密的承诺值commij=rij*G+xij*H,其中rij为随机选取的致盲因子,并计算选票的完整承诺值commi=ri*G+xi*H,其中ri=∑rij;使用Pj的加密公钥加密rij得到
Figure BDA0003001206400000048
S604:生成选票签名:Pi的密文选票由步骤S601、S602、S603描述的密文和承诺组成:
Figure BDA0003001206400000049
利用签名私钥对Inputi进行签名得到
Figure BDA0003001206400000051
其中,Pi调用区块链上的选票提交合约提交加密选票EncTicketi={Inputii};
智能合约收到参与方提交的选票后,首先验证σi是否为
Figure BDA0003001206400000052
对Inputi的合法签名,然后判断Pi是否为重复投票行为,验证通过后将选票信息记录保存到账本中。
进一步地,所述计票合约调用安全多方计算协议完成计票,具体如下:合约计算
Figure BDA0003001206400000053
Figure BDA0003001206400000054
其中wk为发布投票阶段中的WeightMap中第k个投票人的权重;F(·)函数和
Figure BDA0003001206400000055
函数分别定义如下:
Figure BDA0003001206400000056
F(x1,x2,...,xm,c1,c2,...,cm)=∑ci*xi
其中
Figure BDA0003001206400000057
Figure BDA0003001206400000058
分别为Paillier同态加法和同态常数乘法运算。
进一步地,所述计票结果揭示,具体如下:
S801:解密和提交:各个参与方Pi从智能合约获取对应的结果分片密文
Figure BDA0003001206400000059
Figure BDA00030012064000000510
使用私钥解密得
Figure BDA00030012064000000511
各参与方按信任度Ranktrust排名由低到高的顺提交yi
Figure BDA00030012064000000512
S802:秘密恢复:智能合约执行秘密恢复过程:y=∑yi
各参与方能通过打开承诺验证步骤S802的结果是否正确,即验证以下等式是否正确:
Figure BDA00030012064000000513
S803:押金返还:智能合约押金返还给诚实参与方{Phonest}:
Account(Phonest)+=∑Accountvoteld(Pi)/size({Phonest})
其中在步骤S801中,若所有参与方按要求提交结果密文分片,则记{Phonest}为所有参与方的集合,若某些参与方不按要求提交密文分片,则记{Phonest}为除违背协议的参与方外的所有诚实参与方集合,恶意参与方即违背协议的参与方将损失其缴纳的押金。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明将投票和计票过程转化为对应的数学逻辑运算,结合秘密分享和同态系加密实现匿名的支持加权和多选的n-of-m投票方案,具有很好的实用性;
2、本发明完全去除注册中心、计票中心和监督机构等第三方的存在,区块链智能合约自动完成投票身份验证、验票、重复投票验证、计票等所有过程,提高了协议执行的效率和安全性。
3、本发明中计票过程基于选票密文分片进行,能够抵抗N-1攻击,即使参与方中存在多达N-1个合谋者,也能够保证选票数据是安全的,同时通过增加信任度高的参与方参与计算,进一步增加方案抵抗合谋攻击的能力。
4、本发明在区块链不可公开透明,不可篡改的基础上,再结合Pedersen同态承诺方案,保证整个数据切分和计算过程的公开透明、正确性和可验证性。
5、本发明引入信任度评价机制,从信誉值、活跃度、自私性和押金四个维度综合评价参与方的可信程度,基于智能合约构建惩戒机制,综合考虑参与方的历史行为数据衡量其可靠程度,通过押金提高作恶成本,迫使理性的参与方诚实地参与协议,保证协议的公平性。
附图说明
图1是本发明所述一种基于区块链和安全多方计算的公平电子投票协议方法流程图;
图2是本发明所述实施例中电子投票协议方法流程示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例:
一种基于区块链和安全多方计算的公平电子投票协议方法,所述方法的流程图如图1所示,具体流程示意图如图2所示,包括以下步骤:
S1、***建立:建立统计***,部署投票***相关智能合约,并进行***参数初始化;***参数初始化:***在域Fn中选取阶为大素数k的椭圆曲线E,选取E中的点G和H,
Figure BDA0003001206400000071
G和H作为Pedersen同态承诺方案的参数,并确定Paillier加密算法的密钥长度keysize。本实施例设置密钥长度为2048bit。
S2、投票身份注册:各个参与方Pi使用Paillier同态加密方案生成各自的加密密钥对
Figure BDA0003001206400000072
使用ECDSA算法生成签名密钥对
Figure BDA0003001206400000073
和一个唯一的身份标识ID。计算签名
Figure BDA0003001206400000074
调用区块链上的身份注册合约提交
Figure BDA0003001206400000075
智能合约验证ID是否全局唯一有效,并验证σi是否为
Figure BDA0003001206400000076
对identityi的有效签名,验证通过,则将identityi持久化公示在链上,否则身份注册失败。
S3、发起投票:投票发起人调用区块链上的投票发布智能合约提交投票活动相关信息,一次投票的必要信息包括全局唯一的投票编号VoteID,投票标题Title,投票描述Desc,授权投票人及其权重集合WeightMap:{userID,weight},可选项数MaxSelectCount,投票选项Items。WeightMap的功能为授权,可以指定允许参与当前次投票的参与者及其在本轮投票中的投票权重,MaxSelectCount代表模式,投票人被允许一次最多选择的项数。Items为具体的投票选项。
本实施例设置的投票活动信息如下表所示:
Figure BDA0003001206400000081
发起方调用区块链上的投票活动发布合约提交活动信息:
activity={VoteID,Title,Desc,WeightMap,MaxSelectCount,Items}
智能合约验证activity的完整性以及唯一性后将活动信息持久化在链上。发起方将VoteID告知授权的投票参与方,参与方通过VoteID查询投票活动信息。另外,其他参与方可以通过VoteID查询是否被授权参与某次投票活动。
S4、缴纳押金:各个参与方调用区块链上的押金缴纳合约缴纳押金。
S5、增加计算参与方:此步骤为可选,目的为增加协议的合谋风险抵抗性。管理员根据节点信任度排名Ranktrust选取额外的nextra个计算参与方,与步骤S3中的授权投票人集合WeightMap中所有投票参与方Pweightmap组成本次投票活动的计算参与方Pall={Pextra,Pweightmap},若不指定额外参与方,则Pall={Pweightmap}。
其中,信任度排名Ranktrust为各个参与方在链上的信任度Trusti的排名结果,Trusti由下式得:
Trusti=αRi+βSi+χAi+δDi
α+β+χ+δ=1,α,β,χ,δ>0
其中
Figure BDA0003001206400000091
表示节点信誉值,Wih为节点诚实参与的任务总权重,Wim为节点作为的任务总权重,
Figure BDA0003001206400000092
表示节点自私性,Disti为节点参与各方发起任务的数量向量,Distall为所有发起方发起任务的数量向量。
Figure BDA0003001206400000093
表示节点活跃度,nih为节点诚实参与任务的数量,nall为任务总数量。
Figure BDA0003001206400000094
表示归一化后的押金。
进一步地,步骤S5中的信任度除押金部分为步骤S4中每次计算任务前缴纳决定,信誉值、活跃度和自私性由智能合约动态维护。
S6、生成选票与投票:各投票参与方生成加密选票Ticketi、选票承诺Commitmenti和选票签名σi,调用区块链上的选票提交合约提交选票信息:
Inputi={Ticketi,Commitmenti,σi}
进一步地,步骤S6中的选票生成包含以下几个步骤:
S61:构造明文选票:每个投票人对每个候选项的选择由k为二进制组成Ak=00...0ak,所有授权投票人总权重为W=∑wi则Ak的长度为
Figure BDA0003001206400000095
若投赞成,则ai=1,否则ai=0。对所有的选项的选择构成了该投票人的选票Ti=A1A2...Am,将其转化为十进制表示形式即为最终的明文选票xi
S62:加密选票:投票人Pi利用加法秘密分享将明文选票xi切分为n个随机的子秘密xij,n为Pall的大小。利用Pj的加密公钥
Figure BDA0003001206400000096
加密第j个子秘密得到
Figure BDA0003001206400000097
S63:生成选票承诺:Pi利用Pedersen同态承诺方案生成步骤S62中的每个子秘密的承诺值commij=rij*G+xij*H,其中rij为随机选取的致盲因子,并计算选票的完整承诺值commi=ri*G+xi*H,其中ri=∑rij。使用Pj的加密公钥加密rij得到
Figure BDA0003001206400000101
S64:生成选票签名:Pi的密文选票由步骤S61、S62、S63描述的密文和承诺组成:
Figure BDA0003001206400000102
利用签名私钥对Inputi进行签名得到
Figure BDA0003001206400000103
进一步地,步骤S6中Pi调用区块链上的选票提交合约提交加密选票EncTicketi={Inputii}
进一步地,步骤S6中智能合约收到参与方提交的选票后,首先验证σi是否为
Figure BDA0003001206400000104
对Inputi的合法签名,然后判断Pi是否为重复投票行为,验证通过后将选票信息记录保存到账本中。
S7、计票:最后一个投票参与方提交选票后,智能合约自动触发计票合约,计算
Figure BDA0003001206400000105
Figure BDA0003001206400000106
其中wk为步骤S3中WeightMap中第k个投票人的权重。F(·)函数和
Figure BDA0003001206400000107
函数分别定义如下:
Figure BDA0003001206400000108
F(x1,x2,…,xm,c1,c2,…,cm)=∑ci*xi
其中
Figure BDA0003001206400000109
Figure BDA00030012064000001010
分别为Paillier同态加法和同态常数乘法运算。
S8、计票结果揭示:各参与方解密各自对应的结果分片的
Figure BDA00030012064000001011
然后将结果提交到智能合约,智能合约执行秘密恢复过程得到最终计票结果。
进一步地,步骤S8的计票结果揭示包含以下几个步骤:
S81:解密和提交:各个参与方Pi从智能合约获取对应的结果分片密文
Figure BDA00030012064000001012
Figure BDA0003001206400000111
使用私钥解密得
Figure BDA0003001206400000112
各参与方按信任度Ranktrust排名由低到高的顺提交yi
Figure BDA0003001206400000113
S82:秘密恢复:智能合约执行秘密恢复过程:y=∑yi
S803:押金返还:智能合约押金返还给诚实参与方{Phonest}:
Account(Phonest)+=∑Accountvoteld(Pi)/size({Phonest})
其中在步骤S801中,若所有参与方按要求提交结果密文分片,则记{Phonest}为所有参与方的集合,若某些参与方不按要求提交密文分片,则记{Phonest}为除违背协议的参与方外的所有诚实参与方集合,恶意参与方即违背协议的参与方将损失其缴纳的押金。
进一步地,各参与方可以通过打开承诺验证步骤S82的结果是否争取,即验证以下等式是否正确:
Figure BDA0003001206400000114
本实施例采用c++编程语言实现安全多方基础算法,基于Hyperledger Fabricv1.4.0区块链平台,使用链码实现本发明中描述的电子投票方案,并使用HyperledgerFabric SDK for Java v1.4.0实现与区块链网络的交互。
本实施例中采用Hyperledger Fabric区块链平台对方案进行实现,但本发明并不限制于特定的区块链平台,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,或在其它区块链平台上加以实现。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,包括以下步骤:
***建立:建立投票***,在区块链部署投票***相关合约,并进行***参数初始化;
投票身份注册:各个参与方生成各自的加密密钥对和签名密钥对,并各自生成唯一的身份标识,调用区块链上的身份注册合约将公钥和身份标识等信息发布在链上,注册合约对身份信息进行唯一性和有效性验证,验证通过后将用户投票身份持久化在区块链上;
发起投票:投票发起人调用区块链上的投票发布智能合约提交投票活动相关信息,发布投票活动后将投票标识告知参与本次活动的投票参与方;
缴纳押金:各个参与方调用区块链上的押金缴纳合约缴纳押金;
增加计算参与方:管理员根据节点信任度排名选取额外的计算参与方,与指定的投票参与方组成本次投票活动的计算参与方;
生成选票与投票:各投票参与方生成加密选票Ticketi、选票承诺Commitmenti和选票签名σi,调用区块链上的选票提交合约提交选票信息,如下所示:
Inputi={Ticketi,Commitmentii};
计票:最后一个投票参与方提交选票后,智能合约自动触发计票合约,计票合约调用安全多方计算协议完成计票;
计票结果揭示:各参与方解密各自对应的结果分片的
Figure FDA0003001206390000016
然后将结果提交到智能合约,智能合约执行秘密恢复过程得到最终计票结果,并返还用户缴纳的押金。
2.根据权利要求1所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述进行***参数初始化,具体为:***在域Fn中选取阶为大素数k的椭圆曲线E,选取E中的点G和H,
Figure FDA0003001206390000011
G和H作为Pedersen同态承诺方案的参数,并确定Paillier加密算法的密钥长度keysize。
3.根据权利要求1所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述投票身份注册,具体如下:
S201、密钥生成:各个参与方使用Paillier同态加密算法生成加密密钥对
Figure FDA0003001206390000012
使用ECDSA算法生成签名密钥对
Figure FDA0003001206390000013
S202、身份提交:各个参与方pi生成一个全局唯一的身份标识ID,计算签名
Figure FDA0003001206390000014
调用区块链上的身份注册合约提交身份信息
Figure FDA0003001206390000015
S203、身份验证:智能合约验证ID是否全局唯一有效,并验证σi是否为
Figure FDA0003001206390000021
对identityi的有效签名,如果验证通过,则将identityi持久化公示在区块链上,否则身份注册失败。
4.根据权利要求1所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述发起投票,具体如下:发起投票的必要信息包括:全局唯一的投票编号VoteID,投票标题Title,投票描述Desc,授权投票人及其权重集合WeightMap:{userID,weight},可选项数MaxSelectCount,投票候选项Items;
授权投票人及其权重集合WeightMap的功能为授权,能指定允许参与当前次投票的参与者及其在本轮投票中的投票权重,可选项数MaxSelectCount代表模式,投票人被允许一次最多选择的项数;投票选项Items为具体的投票选项;发起方调用区块链上的投票活动发布合约提交活动信息:
activity={VoteID,Title,Desc,WeightMap,MaxSelectCount,Items}
智能合约验证活动信息activity的完整性以及唯一性后将活动信息持久化在区块链上;发起方将VoteID告知授权的投票参与方,参与方通过VoteID查询投票活动信息;
参与活动的投票参与方可通过投票编号VoteID查询是否被授权参与投票活动。
5.根据权利要求1所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述缴纳押金:各个参与方调用区块链上的押金缴纳合约缴纳押金,具体为:参与方Pi调用智能合约Deposit(voteId,depi,Pii),其中
Figure FDA0003001206390000022
depi为缴纳的押金;Deposit首先使用
Figure FDA0003001206390000023
验证σi是否为
Figure FDA0003001206390000024
的有效签名,如果不是,则拒绝此次押金缴纳请求;如果验证通过,则从链上Pi的资金账户中扣除押金并转入此次投票活动的押金账户中:Account(Pi)-=depi,AccountvoteId(Pi)=depi
6.根据权利要求1所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述增加计算参与方:管理员根据节点信任度排名选取额外的计算参与方Pextra,与指定的投票参与方组成本次投票活动的计算参与方Pall={Pextra,Pweightmap},具体如下:
所述节点信任度排名Ranktrust为各个参与方在区块链上的信任度Trusti的排名结果,信任度Trusti计算如下:
Trusti=αRi+βSi+χAi+δDi
α+β+χ+δ=1,α,β,χ,δ>0
其中,
Figure FDA0003001206390000031
表示节点信誉值,Wih为节点诚实参与的任务总权重,Wim为节点作为的任务总权重,
Figure FDA0003001206390000032
表示节点自私性,Disti为节点参与各方发起任务的数量向量,Distall为所有发起方发起任务的数量向量;
Figure FDA0003001206390000033
表示节点活跃度,nih为节点诚实参与任务的数量,nall为任务总数量;
Figure FDA0003001206390000034
表示归一化后的押金。
7.根据权利要求6所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述信任度除押金部分为每次计算任务前缴纳决定,信誉值、活跃度和自私性由智能合约动态维护;
若不指定额外参与方,则Pall={Pweightmap}。
8.根据权利要求1所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述生成选票与投票,具体如下:
S601:构造明文选票:每个投票人对每个候选项的选择由k为二进制组成Ak=00...0ak,所有授权投票人总权重为W=∑wi则Ak的长度为
Figure FDA0003001206390000035
若投赞成,则ai=1,否则ai=0;对所有的选项的选择构成了该投票人的选票Ti=A1A2...Am,将其转化为十进制表示形式即为最终的明文选票xi
S602:加密选票:投票人Pi利用加法秘密分享将明文选票xi切分为n个随机的子秘密xi,j,n为Pall的大小;利用Pj的加密公钥
Figure FDA0003001206390000036
加密第j个子秘密得到xij
S603:生成选票承诺:Pi利用Pedersen同态承诺方案生成步骤S602中的每个子秘密的承诺值commij=rij*G+xij*H,其中rij为随机选取的致盲因子,并计算选票的完整承诺值commi=ri*G+xi*H,其中ri=∑rij;使用Pj的加密公钥加密rij得到
Figure FDA00030012063900000312
S604:生成选票签名:Pi的密文选票由步骤S601、S602、S603描述的密文和承诺组成:
Figure FDA0003001206390000037
利用签名私钥对Inputi进行签名得到
Figure FDA0003001206390000038
其中,Pi调用区块链上的选票提交合约提交加密选票EncTicketi={Inputii};
智能合约收到参与方提交的选票后,首先验证σi是否为
Figure FDA0003001206390000039
对Inputi的合法签名,然后判断Pi是否为重复投票行为,验证通过后将选票信息记录保存到账本中。
9.根据权利要求1所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述计票合约调用安全多方计算协议完成计票,具体如下:合约计算
Figure FDA00030012063900000310
Figure FDA00030012063900000311
其中wk为发布投票阶段中的WeightMap中第k个投票人的权重;F(·)函数和
Figure FDA0003001206390000041
函数分别定义如下:
Figure FDA0003001206390000042
Figure FDA0003001206390000043
其中
Figure FDA0003001206390000044
Figure FDA0003001206390000045
分别为Paillier同态加法和同态常数乘法运算。
10.根据权利要求9所述的一种基于区块链和安全多方计算的公平电子投票协议方法,其特征在于,所述计票结果揭示,具体如下:
S801:解密和提交:各个参与方Pi从智能合约获取对应的结果分片密文
Figure FDA0003001206390000046
Figure FDA0003001206390000047
使用私钥解密得
Figure FDA0003001206390000048
各参与方按信任度Ranktrust排名由低到高的顺提交yi
Figure FDA00030012063900000410
S802:秘密恢复:智能合约执行秘密恢复过程:y=∑yi
各参与方能通过打开承诺验证步骤S802的结果是否正确,即验证以下等式是否正确:
Figure FDA0003001206390000049
CN202110347387.8A 2021-03-31 2021-03-31 一种基于区块链和安全多方计算的公平电子投票协议方法 Active CN113037462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110347387.8A CN113037462B (zh) 2021-03-31 2021-03-31 一种基于区块链和安全多方计算的公平电子投票协议方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110347387.8A CN113037462B (zh) 2021-03-31 2021-03-31 一种基于区块链和安全多方计算的公平电子投票协议方法

Publications (2)

Publication Number Publication Date
CN113037462A true CN113037462A (zh) 2021-06-25
CN113037462B CN113037462B (zh) 2022-09-20

Family

ID=76452969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110347387.8A Active CN113037462B (zh) 2021-03-31 2021-03-31 一种基于区块链和安全多方计算的公平电子投票协议方法

Country Status (1)

Country Link
CN (1) CN113037462B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645020A (zh) * 2021-07-06 2021-11-12 北京理工大学 一种基于安全多方计算的联盟链隐私保护方法
CN113660226A (zh) * 2021-07-30 2021-11-16 国网天津市电力公司 一种基于区块链的能源数据可信共享***和方法
ES2916846A1 (es) * 2021-12-23 2022-07-06 Univ Valencia Politecnica Metodo de control de voto electronico
CN116094797A (zh) * 2023-01-05 2023-05-09 西安电子科技大学 一种基于安全多方计算的分布式身份信任管理方法
CN116192405A (zh) * 2023-02-23 2023-05-30 绿盟科技集团股份有限公司 一种电子投票方法及相关装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108494738A (zh) * 2018-02-27 2018-09-04 华南理工大学 一种可验证的后量子电子投票***及其实现方法
WO2018223214A1 (en) * 2017-06-07 2018-12-13 Zeu Crypto Networks Inc. A permissioned blockchain development system based on open blockchain connector (obcc)
CN110071800A (zh) * 2019-04-10 2019-07-30 苏州同济区块链研究院有限公司 一种基于区块链的公平安全电子投票协议方法
CN110245183A (zh) * 2019-05-05 2019-09-17 上海链度科技有限公司 一种基于联盟区块链技术的加密电子投票选举***及方法
US20200059369A1 (en) * 2017-05-16 2020-02-20 Peking University Shenzhen Graduate School Determining consensus by parallel proof of voting in consortium blockchain
US20200258338A1 (en) * 2019-02-08 2020-08-13 United States Postal Service Secure voting system
CN112581132A (zh) * 2020-12-24 2021-03-30 华南理工大学 一种保证投票发起人权益的公平的区块链投票方法及***

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200059369A1 (en) * 2017-05-16 2020-02-20 Peking University Shenzhen Graduate School Determining consensus by parallel proof of voting in consortium blockchain
WO2018223214A1 (en) * 2017-06-07 2018-12-13 Zeu Crypto Networks Inc. A permissioned blockchain development system based on open blockchain connector (obcc)
CN108494738A (zh) * 2018-02-27 2018-09-04 华南理工大学 一种可验证的后量子电子投票***及其实现方法
US20200258338A1 (en) * 2019-02-08 2020-08-13 United States Postal Service Secure voting system
CN110071800A (zh) * 2019-04-10 2019-07-30 苏州同济区块链研究院有限公司 一种基于区块链的公平安全电子投票协议方法
CN110245183A (zh) * 2019-05-05 2019-09-17 上海链度科技有限公司 一种基于联盟区块链技术的加密电子投票选举***及方法
CN112581132A (zh) * 2020-12-24 2021-03-30 华南理工大学 一种保证投票发起人权益的公平的区块链投票方法及***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吕佳卓: "基于智能合约的去中心化安全电子投票***", 《中国优秀博硕士学位论文全文数据库(硕士) 社会科学Ⅰ辑》 *
周佳鹏: "Using SecureMulti-Party Computation to Protect Privacy on a Permissioned Blockchain", 《SENEORS》 *
周振: "基于区块链技术的匿名电子投票协议设计", 《软件导刊》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113645020A (zh) * 2021-07-06 2021-11-12 北京理工大学 一种基于安全多方计算的联盟链隐私保护方法
CN113660226A (zh) * 2021-07-30 2021-11-16 国网天津市电力公司 一种基于区块链的能源数据可信共享***和方法
CN113660226B (zh) * 2021-07-30 2024-05-28 国网天津市电力公司 一种基于区块链的能源数据可信共享***和方法
ES2916846A1 (es) * 2021-12-23 2022-07-06 Univ Valencia Politecnica Metodo de control de voto electronico
WO2023118632A1 (es) * 2021-12-23 2023-06-29 Universitat Politècnica De València Método de control de voto electrónico
CN116094797A (zh) * 2023-01-05 2023-05-09 西安电子科技大学 一种基于安全多方计算的分布式身份信任管理方法
CN116094797B (zh) * 2023-01-05 2024-04-05 西安电子科技大学 一种基于安全多方计算的分布式身份信任管理方法
CN116192405A (zh) * 2023-02-23 2023-05-30 绿盟科技集团股份有限公司 一种电子投票方法及相关装置

Also Published As

Publication number Publication date
CN113037462B (zh) 2022-09-20

Similar Documents

Publication Publication Date Title
CN113037462B (zh) 一种基于区块链和安全多方计算的公平电子投票协议方法
Ziegeldorf et al. Coinparty: Secure multi-party mixing of bitcoins
Damgård Payment systems and credential mechanisms with provable security against abuse by individuals
CN110060037B (zh) 一种基于区块链的分布式数字身份***
CN111066283A (zh) 对区块链网络上实体提供的数据进行通信、存储和处理的***和方法
CN113129518B (zh) 电动车辆充电***及其资源管理方法
EP3419210A1 (en) Method for generating a transaction of a blockchain and method for validating a block of a blockchain
CN110060403B (zh) 基于区块链的一人多票电子投票方法及***
CN111709749A (zh) 一种具有条件隐私保护的可追踪区块链交易***
US11069171B2 (en) System and method for cryptographic choice mechanisms
CN110071800A (zh) 一种基于区块链的公平安全电子投票协议方法
CN108737116B (zh) 一种基于d维三量子纠缠态的投票表决协议方法
CN111656377A (zh) 计算机实现的决策***和方法
US20240163098A1 (en) Computer-implemented methods and systems for controlling tasks implemented by a cyclically-ordered set of nodes participating in a blockchain network
Mishra et al. Quantum anonymous veto: a set of new protocols
Pathak et al. Blockchain based e-voting system
Kadam et al. Blockchain Based e-Voting System
Simmons A protocol to provide verifiable proof of identity and unforgeable transaction receipts
Rabin et al. Highly efficient secrecy-preserving proofs of correctness of computations and applications
Binu et al. Secret sharing homomorphism and secure E-voting
CN114677794A (zh) 一种基于区块链的电子投票方法
CN114584357A (zh) 一种基于非同质化Token匿名安全投票的方法
Gowravaram Zero knowledge proofs and applications to financial regulation
CN113496406A (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