CN113096299A - 一种基于联盟链的不记名电子投票方法 - Google Patents

一种基于联盟链的不记名电子投票方法 Download PDF

Info

Publication number
CN113096299A
CN113096299A CN202110463457.6A CN202110463457A CN113096299A CN 113096299 A CN113096299 A CN 113096299A CN 202110463457 A CN202110463457 A CN 202110463457A CN 113096299 A CN113096299 A CN 113096299A
Authority
CN
China
Prior art keywords
voting
numbers
node
verification
nodes
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
CN202110463457.6A
Other languages
English (en)
Other versions
CN113096299B (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.)
Zhejiang Shuqin Technology Co Ltd
Original Assignee
Zhejiang Shuqin Technology Co Ltd
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 Zhejiang Shuqin Technology Co Ltd filed Critical Zhejiang Shuqin Technology Co Ltd
Priority to CN202110463457.6A priority Critical patent/CN113096299B/zh
Publication of CN113096299A publication Critical patent/CN113096299A/zh
Application granted granted Critical
Publication of CN113096299B publication Critical patent/CN113096299B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及区块链技术领域,具体涉及一种基于联盟链的不记名电子投票方法,包括以下步骤:发起节点广播候选人及候选人序号,发起节点产生N个混淆数,将混淆数分别派发给投票节点;投票节点生成若干个调整数和保留数,投票节点将若干个调整数随机派发给其他投票节点,将调整数与保留数相加作为新的保留数;投票节点使用其想要投票的候选人的序号对N求幂值并与保留数相加后签名广播,求得的最终和减去预设值后反推出N个加数,候选人序号对应幂值即得出候选人票数。本发明的有益效果是:1)使得投票节点的投票数对其他任何联盟链节点都具有隐私性,保证了投票方的隐私;2)能够有效发现发起方的作弊行为,保证投票的可信度。

Description

一种基于联盟链的不记名电子投票方法
技术领域
本发明涉及区块链技术领域,具体涉及一种基于联盟链的不记名电子投票方法。
背景技术
随着互联网技术的发展,通过网络远程的进行电子投票逐渐走进人们的生活领域。通过网络的电子是以投票为中心的社会化网络服务,电子投票的票数的统计和显示完全由软件控制,无须人工参与,在一定程度上能够保证投票的公正性。为了保证投票的公正性及有效性,这些投票服务平台采取了多种验证技术来对投票请求人的身份进行验证。但目前的单子投票系统仍然是一个中心化的服务系统,其安全性不能得以很好的保证。且其可信度在社会中的印象不高。如何提高电子投票的公正性及有效性仍然是业界亟待解决的问题。联盟链是一种常用于企业应用的区块链实现形式,由多个企业或机构以一定准则建立。联盟链的准则建立及管理由联盟链委员会完成。因此联盟链的正常运行建立在联盟链委员会地位对等和被有效监督。联盟链委员会一般由联盟链成员通过投票选举形成,且联盟链委员会对联盟链的事务管理也通过匿名投票进行。目前在联盟链中实现不记名投票的方式为智能合约和安全多方计算。
如中国专利CN110110555A,公开日2019年8月9日,一种区块链中的投票方法,包括:群组服务单元接收N个联盟链委员的投票请求,任一个投票请求包含一个联盟链委员的密码承诺;针对一个密码承诺,群组服务单元根据密码承诺,确定一个联盟链委员的投票参数;群组服务单元将N个投票参数输入投票算法中进行计算,并将计算得到的待验证结果与预存的群管理私钥进行对比,若待验证结果与群管理私钥相同,则确定投票内容通过;投票算法设置为输入正确的投票参数的个数大于第一阈值时,计算得到的待验证结果与群管理私钥相同。其技术方案中联盟链委员直接将投票参数发送到投票算法,由投票算法判断联盟链委员的投票是否为通过,该技术方案不能保证投票方的隐私安全。且投票算法采用智能合约的形式运行在联盟链上,会导致联盟链的每个节点均有机会接触到其中的投票数据,不仅隐私性较差,还会导致效率较低。
发明内容
本发明要解决的技术问题是:目前电子投票的隐私性差和公信力低的技术问题。提出了一种基于联盟链的不记名电子投票方法,本方法能够提高投票的真实性并有效保护隐私。
为解决上述技术问题,本发明所采取的技术方案为:一种基于联盟链的不记名电子投票方法,包括发起节点和N个投票节点,包括以下步骤:所述发起节点广播候选人及候选人序号,所述发起节点产生N个和为预设值的混淆数,所述发起节点将N个所述混淆数分别派发给N个所述投票节点;所述投票节点收到混淆数后,生成若干个调整数和保留数,所述保留数和若干个所述调整数的和等于混淆数,所述投票节点将若干个调整数随机派发给其他投票节点,投票节点收到其他投票节点派发的调整数后,将调整数与保留数相加作为新的保留数;所述投票节点使用其想要投票的候选人的序号对N求幂值,将幂值与保留数相加后签名广播,所述发起节点收到全部投票节点签名广播的数后求得最终和,将最终和减去预设值后反推出N个加数,候选人序号对应的幂值的数量即为候选人的得票数。所述幂值作为投票数。通过混淆数使投票节点之间不能获得其他投票节点的投票数,投票节点因此相互之间具有保密性,调整数和保留数使得发起节点无法获得投票节点最终使用的保留数,保证投票节点的投票数对发起节点也具有保密性,二者作用叠加使得投票节点的投票数对其他任何联盟链节点都具有隐私性,其他联盟链节点无法知晓投票节点将票投给了哪些候选人,保证了投票方的隐私。投票数与保留数相加后,是以签名后广播的形式发出,任何一个联盟链节点都可以自行计算最终投票结果,只需要发起节点公开预设值即可,发起节点在投票进行前可将预设值的哈希值上传到联盟链保存,投票结束后,所述投票节点将收到的混淆数拆分成N个加数,所述投票节点自己保留一个混淆数拆出的加数,而后分别将剩余N-1个加数发送给其他N-1个投票节点,每个投票节点将保留和收到的加数相加后签名广播,全部广播所求的和应当等于预设值。若不相等则判定发起方在混淆数上作弊,因而本方法能够有效发现发起方的作弊行为,而投票方因为无法有效控制投票结果向朝着自身有利的方向发展,而无作弊的动机,保证投票的可信度。
作为优选,任意投票节点想要验证投票则发起验证请求,其他N-1个投票节点同意后开始验证,发起验证的投票节点记为验证节点,所述验证节点产生N个和为0的验证数,所述验证节点保留一个验证数,将其他N-1个验证数派发给N-1个投票节点;投票节点收到验证数后,将验证数和保留数相加即为验证和,将验证和拆分为N个随机数,将N个随机数派发给N个投票节点,投票节点将收到的随机数求和后签名广播;所述验证节点收到的全部签名广播的随机数和的求和,记为随机数总和,若随机数总和与所述验证节点保留的验证数的和为所述的预设值,则判断验证通过,反之,则判断不通过,将验证结果签名后广播;若存在验证不通过的结果,则持续验证步骤直到超过预设比例的投票节点签名广播验证结果相同,若超过预设比例的投票节点签名广播的验证结果为通过,则最终判定投票有效,反之,则判断投票结果无效,对验证结果为有效的节点进行惩罚,删除本次投票的数据后,重新投票。通过验证数混淆收到的混淆数进行求和,判断混淆数和是否与预设值相等,能够检验发起方是否有作弊行为,同时能够更加有效的保护投票节点的隐私性。
作为优选,所述发起节点广播候选人及候选人序号,所述发起节点产生N个和为0的混淆数,所述发起节点收到全部投票节点签名广播的数后求得最终和,将最终和转换为N进制。将预设值设为0能够快速获得最终数。混淆数可以为负数,也可以为小数。
作为优选,所述发起节点将所述预设值的数字指纹上链存储,当所述发起节点收到全部投票节点签名广播的数后将所述预设值公开,N个所述投票节点验证所述预设值的数字指纹,而后所述投票节点将全部投票节点签名广播的数后求得最终和减所述预设值后转换为N进制,验证所述发起节点公开的N进制数是否一致,若不一致则发起验证请求,反之,则不做操作。本优选方案能够验证发起节点是否在计票环节作弊,保证计票的可靠。
作为优选,所述发起节点将N个所述混淆数分别派发给N个所述投票节点的方法包括:N个所述投票节点分别产生一对公私秘钥,所述投票节点将公钥随机发送给另一个投票节点,当投票节点收到其他投票节点发送的公钥时,将收到的公钥发送给所述发起节点;所述发起节点将收到N个公钥,将N个所述混淆数分别使用N个公钥加密后广播;所述投票节点尝试使用私钥解密广播的加密混淆数,能够成功解密则接收解密出的混淆数。通过公私秘钥分发混淆数,能够确保混淆数不被泄露,保证隐私性。
作为优选,所述投票节点最多能够选择M个候选人投票,所述投票节点使用其想要投票的若干个候选人的序号分别对N+1求幂值,将幂值相加后再与保留数相加后签名广播,将最终和转换为N+1进制,候选人序号对应的位值即为候选人的得票数。使得每个投票节点可以一次性为多个候选人投出一票,提高投票及计票的效率。
作为优选,由最终和反推出N个加数的方法为:将最终和转换为N进制数,若转换后的N进制数的位值的和等于N,则N个加数分别为每个位值对应的数值,若转换后的N进制数的位值的和等于1,将位值下移一位转换为N个下位值数,N个下位值数对应的数值即为N个加数。
作为优选,所述发起节点将N个所述混淆数分别派发给N个所述投票节点的方法包括:所述发起节点分别使用N个所述投票节点的公钥加密N个所述混淆数并广播,所述投票节点使用私钥解密获得混淆数后,随机选择其他投票节点的公钥加密后广播,当投票节点再次使用私钥解密获得混淆数后以预设概率决定保留或随机选择其他投票节点的公钥加密后广播。发起节点使用公钥将混淆数发送给投票节点后,混淆数在投票节点之间具有隐私性,但对发起节点不具有隐私性,投票节点收到混淆数后,再次进行随机的广播,直到每个投票节点均保留一个混淆数为止,使得发起节点无法知晓每个投票节点的混淆数,而投票节点无法知晓所发送的混淆数是被保留了还是被再次转发,因而投票节点无法确切的知晓其他投票节点所保留的混淆数,使得投票节点之间混淆数仍然具有保密性。
本发明的实质性效果是:1)通过混淆数使投票节点之间不能获得其他投票节点的投票数,调整数和保留数使得发起节点无法获得投票节点最终使用的保留数,从而使得投票节点的投票数对其他任何联盟链节点都具有隐私性,保证了投票方的隐私;2)投票数与保留数是以广播的形式发出,任何一个联盟链节点都可以自行计算最终投票结果,能够有效发现发起方的作弊行为,而投票方因为无法有效控制投票结果向朝着自身有利的方向发展,保证投票的可信度。
附图说明
图1为实施例一不记名电子投票方法流程框图;
图2为实施例一投票结果验证方法流程框图;
图3为实施例二混淆数派发方法流程框图。
具体实施方式
下面通过具体实施例,并结合附图,对本发明的具体实施方式作进一步具体说明。
实施例一:
一种基于联盟链的不记名电子投票方法,包括发起节点和N个投票节点,发起节点由当前联盟链的管理委员会节点担任,联盟链节点均作为投票节点,通过扩展共识协议接入的外部节点也可以作为投票节点参与到本次投票事务中。请参阅附图1,本实施例包括以下步骤:
步骤A)发起节点广播候选人及候选人序号,发起节点产生N个和为预设值e的混淆数,发起节点将N个混淆数分别派发给N个投票节点。广播的候选人既可以是一个候选人,也可以同时公布多个候选人,多个候选人排序后以其次序表示。
步骤B)投票节点收到混淆数后,生成若干个调整数和保留数,保留数和若干个调整数的和等于混淆数,即保证
Figure DEST_PATH_IMAGE001
,其中
Figure 2778DEST_PATH_IMAGE002
表示保留数,
Figure DEST_PATH_IMAGE003
表示调整数,
Figure 361078DEST_PATH_IMAGE004
表示生成的调整数的数量,
Figure DEST_PATH_IMAGE005
Figure 900161DEST_PATH_IMAGE006
表示投票节点收到的混淆数。投票节点将若干个调整数
Figure 951293DEST_PATH_IMAGE003
随机派发给其他投票节点,投票节点收到其他投票节点派发的调整数
Figure DEST_PATH_IMAGE007
后,将调整数
Figure 158415DEST_PATH_IMAGE007
与保留数
Figure 117144DEST_PATH_IMAGE002
相加作为新的保留数。
Figure 896750DEST_PATH_IMAGE007
表示从其他投票节点收到的调整数,从其他投票节点收到的调整数的数量是不确定的,也可能未收到任何调整数,但每个投票节点均生成了至少一个随机的调整数,改变了混淆数的值,并且将调整数随机派发给其他投票节点后,也参与了求最终和的过程,不会影响最终和的结果。
步骤C)投票节点使用其想要投票的候选人的序号对M求幂值
Figure 649942DEST_PATH_IMAGE008
,M≥N,将幂值
Figure 734573DEST_PATH_IMAGE008
与保留数相加后签名广播,发起节点收到全部投票节点签名广播的数后求得最终和,将最终和减去预设值e后反推出N个加数,候选人序号对应的幂值的数量即为候选人的得票数。幂值作为投票数。预设值e取值为负或者取值带有小数均可。由于M≥N投票中不会产生进位,因而每个加数的数值能够通过和反推出来,但反推出的加数的来源无法确定,从而保证了投票方的隐私性。
步骤D)验证步骤,包括:
步骤D1)任意投票节点想要验证投票则发起验证请求,其他N-1个投票节点同意后开始验证,发起验证的投票节点记为验证节点,验证节点产生N个和为0的验证数,验证节点保留一个验证数,将其他N-1个验证数派发给N-1个投票节点;将验证数派发给投票节点的方法为,分别使用N-1个投票节点的公钥加密验证数后,发送给相应的投票节点,即使在发送过程中,经由其他投票节点转发,也不会造成验证数的泄露。
步骤D2)投票节点收到验证数后,将验证数和保留数相加即为验证和,将验证和拆分为N个随机数,将N个随机数派发给N个投票节点,投票节点将收到的随机数求和后签名广播。
步骤D3)验证节点收到的全部签名广播的随机数和的求和,记为随机数总和,若随机数总和与验证节点保留的验证数的和为的预设值,则判断验证通过,反之,则判断不通过,将验证结果签名后广播。
步骤D4)若存在验证不通过的结果,则持续验证步骤直到超过预设比例的投票节点签名广播验证结果相同,若超过预设比例的投票节点签名广播的验证结果为通过,则最终判定投票有效,反之,则判断投票结果无效,对验证结果为有效的节点进行惩罚,删除本次投票的数据后,重新投票。通过验证数混淆收到的混淆数进行求和,判断混淆数和是否与预设值相等,能够检验发起方是否有作弊行为,同时能够更加有效的保护投票节点的隐私性。
发起节点广播候选人及候选人序号,发起节点产生N个和为0的混淆数,发起节点收到全部投票节点签名广播的数后求得最终和,将最终和转换为N进制。将预设值设为0能够快速获得最终数。混淆数可以为负数,也可以为小数。混淆数的和为0,能够省略将最终和减去e的计算,计票更加方便。
发起节点将预设值的数字指纹上链存储,当发起节点收到全部投票节点签名广播的数后将预设值公开,N个投票节点验证预设值的数字指纹,而后投票节点将全部投票节点签名广播的数后求得最终和减预设值后转换为N进制,验证发起节点公开的N进制数是否一致,若不一致则发起验证请求,反之,则不做操作。本优选方案能够验证发起节点是否在计票环节作弊,保证计票的可靠。
请参阅附图2,发起节点将N个混淆数分别派发给N个投票节点的方法包括:步骤A01)N个投票节点分别产生一对公私秘钥,投票节点将公钥随机发送给另一个投票节点,当投票节点收到其他投票节点发送的公钥时,将收到的公钥发送给发起节点。
步骤A02)发起节点将收到N个公钥,将N个混淆数分别使用N个公钥加密后广播。
步骤A03)投票节点尝试使用私钥解密广播的加密混淆数,能够成功解密则接收解密出的混淆数。通过公私秘钥分发混淆数,能够确保混淆数不被泄露,保证隐私性。
投票节点最多能够选择M个候选人投票,投票节点使用其想要投票的若干个候选人的序号分别对N+1求幂值,将幂值相加后再与保留数相加后签名广播,将最终和转换为N+1进制,候选人序号对应的位值即为候选人的得票数。使得每个投票节点可以一次性为多个候选人投出一票,提高投票及计票的效率。
由最终和反推出N个加数的方法为:将最终和转换为N进制数,若转换后的N进制数的位值的和等于N,则N个加数分别为每个位值对应的数值,若转换后的N进制数的位值的和等于1,将位值下移一位转换为N个下位值数,N个下位值数对应的数值即为N个加数。
实施例二:
一种基于联盟链的不记名电子投票方法,本实施例对混淆数的派发方法提供了另一种技术方案。请参阅附图3,本实施例中,发起节点将N个混淆数分别派发给N个投票节点的方法包括:发起节点分别使用N个投票节点的公钥加密N个混淆数并广播,投票节点使用私钥解密获得混淆数后,随机选择其他投票节点的公钥加密后广播,当投票节点再次使用私钥解密获得混淆数后以预设概率决定保留或随机选择其他投票节点的公钥加密后广播。发起节点使用公钥将混淆数发送给投票节点后,混淆数在投票节点之间具有隐私性,但对发起节点不具有隐私性,投票节点收到混淆数后,再次进行随机的广播,直到每个投票节点均保留一个混淆数为止,使得发起节点无法知晓每个投票节点的混淆数,而投票节点无法知晓所发送的混淆数是被保留了还是被再次转发,因而投票节点无法确切的知晓其他投票节点所保留的混淆数,使得投票节点之间混淆数仍然具有保密性。
实施例三:
一种基于联盟链的不记名电子投票方法,应用到联盟链委员的加入投票。联盟链由多个企业或机构以一定准则建立,联盟链建立及管理由联盟链委员会完成。联盟链中有较为重要的事宜,如联盟链委员的加入、退出、追溯等,需要联盟链委员投票决定。若干个联盟链普通节点要加入联盟链委员会中,加入后,同样数量的原联盟链委员节点将退出联盟链委员会。若干个联盟链普通节点即为候选人
Figure DEST_PATH_IMAGE009
,从联盟链委员会中选择一个联盟链委员主持投票,即为发起节点
Figure 713637DEST_PATH_IMAGE010
。其他联盟链委员作为投票节点
Figure DEST_PATH_IMAGE011
。发起节点
Figure 380372DEST_PATH_IMAGE010
公布若干个候选人,
Figure 835625DEST_PATH_IMAGE012
Figure DEST_PATH_IMAGE013
为候选人序号,本实施例中共有3个候选人,即
Figure 673131DEST_PATH_IMAGE014
。联盟链委员会共有6位委员,其中一个作为发起节点,其他5个节点作为投票节点,即
Figure DEST_PATH_IMAGE015
Figure 363875DEST_PATH_IMAGE016
表1 投票节点想要投票的候选人序号
投票节点 欲投票候选人
投票节点Vote1 Cand1、Cand3
投票节点Vote2 Cand2
投票节点Vote3 Cand1、Cand3
投票节点Vote4 Cand3
投票节点Vote5 Cand1
针对候选人
Figure DEST_PATH_IMAGE017
的投票步骤包括:
步骤A)发起节点
Figure 351029DEST_PATH_IMAGE010
产生5个和为预设值e的混淆数
Figure 659739DEST_PATH_IMAGE006
,本实施例中预设值e取值193,产生的5个混淆数分别为125,235,-265,-36,134,将5个混淆数分别使用5个投票节点
Figure 781278DEST_PATH_IMAGE015
的公钥加密后广播。
步骤B)投票节点
Figure 72451DEST_PATH_IMAGE018
收到混淆数
Figure DEST_PATH_IMAGE019
后,随机产生至少一个调整数
Figure 281757DEST_PATH_IMAGE020
,将混淆数
Figure 750916DEST_PATH_IMAGE019
减去全部调整数
Figure 828593DEST_PATH_IMAGE020
后,作为保留数
Figure DEST_PATH_IMAGE021
。投票节点
Figure 890834DEST_PATH_IMAGE018
将若干个调整数
Figure 619624DEST_PATH_IMAGE020
随机派发给其他投票节点,投票节点收到其他投票节点派发的调整数
Figure 56422DEST_PATH_IMAGE020
后,将调整数
Figure 621395DEST_PATH_IMAGE020
与保留数
Figure 565955DEST_PATH_IMAGE021
相加作为新的保留数。5个新的保留数分别为94,277,-265,98和134。投票节点的投票数分别为:130,25,130,125和5。投票数与保留数求和得:224、302、-131、32和181,投票节点分别广播:224、302、-131、32以及181。求得广播数字的最终和为608,最终和减预设值:608-193=415,415(十进制)=3130(五进制),可得:候选人3得票数3;候选人2得票数1;候选人1得票数3。
步骤C)投票节点
Figure 165564DEST_PATH_IMAGE015
使用其想要投票的候选人的序号对M求幂值
Figure 727258DEST_PATH_IMAGE008
,本实施例中M取值5,投票节点
Figure 779527DEST_PATH_IMAGE015
想要投票的候选人
Figure 685035DEST_PATH_IMAGE012
序号由表1可见,相应产生幂值
Figure 139150DEST_PATH_IMAGE008
及与保留相加后进行广播,全部投票节点
Figure 917750DEST_PATH_IMAGE015
的广播值求和获得最终和,将最终和转换为M进制,即5进制,可得,从而获得每个候选人的得票数。即候选人
Figure 205119DEST_PATH_IMAGE022
得票为3,候选人
Figure DEST_PATH_IMAGE023
得票为1,候选人
Figure 992946DEST_PATH_IMAGE024
得票为3,与5个投票节点
Figure 301568DEST_PATH_IMAGE015
的投票意愿结果相同。过半数投票节点
Figure 985490DEST_PATH_IMAGE015
投票给候选人,则候选人通过。可得候选人
Figure 996040DEST_PATH_IMAGE022
和候选人
Figure 118717DEST_PATH_IMAGE024
被选入联盟链委员会。当前联盟链委员会成员共有8位,随后从原6位联盟链委员中投票选出2个,从联盟链委员会中移除,从而完成一次联盟链委员的轮换,保证联盟链节点之间的地位对等,确保联盟链运行稳定可靠。
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。

Claims (8)

1.一种基于联盟链的不记名电子投票方法,包括发起节点和N个投票节点,其特征在于,包括以下步骤:
所述发起节点广播候选人及候选人序号,所述发起节点产生N个和为预设值的混淆数,所述发起节点将N个所述混淆数分别派发给N个所述投票节点;
所述投票节点收到混淆数后,生成若干个调整数和保留数,所述保留数和若干个所述调整数的和等于混淆数,所述投票节点将若干个调整数随机派发给其他投票节点,投票节点收到其他投票节点派发的调整数后,将调整数与保留数相加作为新的保留数;
所述投票节点使用其想要投票的候选人的序号对N求幂值,将幂值与保留数相加后签名广播,所述发起节点收到全部投票节点签名广播的数后求得最终和,将最终和减去预设值后反推出N个加数,候选人序号对应的幂值的数量即为候选人的得票数。
2.根据权利要求1所述的一种基于联盟链的不记名电子投票方法,其特征在于,还包括验证步骤:
任意投票节点想要验证投票则发起验证请求,其他N-1个投票节点同意后开始验证,发起验证的投票节点记为验证节点,所述验证节点产生N个和为0的验证数,所述验证节点保留一个验证数,将其他N-1个验证数派发给N-1个投票节点;
投票节点收到验证数后,将验证数和保留数相加即为验证和,将验证和拆分为N个随机数,将N个随机数派发给N个投票节点,投票节点将收到的随机数求和后签名广播;
所述验证节点收到的全部签名广播的随机数和的求和,记为随机数总和,若随机数总和与所述验证节点保留的验证数的和为所述的预设值,则判断验证通过,反之,则判断不通过,将验证结果签名后广播;
若存在验证不通过的结果,则持续验证步骤直到超过预设比例的投票节点签名广播验证结果相同,若超过预设比例的投票节点签名广播的验证结果为通过,则最终判定投票有效,反之,则判断投票结果无效,对验证结果为有效的节点进行惩罚,删除本次投票的数据后,重新投票。
3.根据权利要求1或2所述的一种基于联盟链的不记名电子投票方法,其特征在于,
所述发起节点广播候选人及候选人序号,所述发起节点产生N个和为0的混淆数,所述发起节点收到全部投票节点签名广播的数后求得最终和,将最终和转换为N进制。
4.根据权利要求1或2所述的一种基于联盟链的不记名电子投票方法,其特征在于,
所述发起节点将所述预设值的数字指纹上链存储,当所述发起节点收到全部投票节点签名广播的数后将所述预设值公开,N个所述投票节点验证所述预设值的数字指纹,而后所述投票节点将全部投票节点签名广播的数后求得最终和减所述预设值后转换为N进制,验证所述发起节点公开的N进制数是否一致,若不一致则发起验证请求,反之,则不做操作。
5.根据权利要求1或2所述的一种基于联盟链的不记名电子投票方法,其特征在于,
所述发起节点将N个所述混淆数分别派发给N个所述投票节点的方法包括:
N个所述投票节点分别产生一对公私秘钥,所述投票节点将公钥随机发送给另一个投票节点,当投票节点收到其他投票节点发送的公钥时,将收到的公钥发送给所述发起节点;
所述发起节点将收到N个公钥,将N个所述混淆数分别使用N个公钥加密后广播;
所述投票节点尝试使用私钥解密广播的加密混淆数,能够成功解密则接收解密出的混淆数。
6.根据权利要求1或2所述的一种基于联盟链的不记名电子投票方法,其特征在于,
所述投票节点最多能够选择M个候选人投票,所述投票节点使用其想要投票的若干个候选人的序号分别对N+1求幂值,将幂值相加后再与保留数相加后签名广播,将最终和转换为N+1进制,候选人序号对应的位值即为候选人的得票数。
7.根据权利要求1或2所述的一种基于联盟链的不记名电子投票方法,其特征在于,
由最终和反推出N个加数的方法为:将最终和转换为N进制数,若转换后的N进制数的位值的和等于N,则N个加数分别为每个位值对应的数值,若转换后的N进制数的位值的和等于1,将位值下移一位转换为N个下位值数,N个下位值数对应的数值即为N个加数。
8.根据权利要求1或2所述的一种基于联盟链的不记名电子投票方法,其特征在于,
所述发起节点将N个所述混淆数分别派发给N个所述投票节点的方法包括:
所述发起节点分别使用N个所述投票节点的公钥加密N个所述混淆数并广播,所述投票节点使用私钥解密获得混淆数后,随机选择其他投票节点的公钥加密后广播,当投票节点再次使用私钥解密获得混淆数后以预设概率决定保留或随机选择其他投票节点的公钥加密后广播。
CN202110463457.6A 2021-04-28 2021-04-28 一种基于联盟链的不记名电子投票方法 Active CN113096299B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110463457.6A CN113096299B (zh) 2021-04-28 2021-04-28 一种基于联盟链的不记名电子投票方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110463457.6A CN113096299B (zh) 2021-04-28 2021-04-28 一种基于联盟链的不记名电子投票方法

Publications (2)

Publication Number Publication Date
CN113096299A true CN113096299A (zh) 2021-07-09
CN113096299B CN113096299B (zh) 2022-05-24

Family

ID=76680358

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110463457.6A Active CN113096299B (zh) 2021-04-28 2021-04-28 一种基于联盟链的不记名电子投票方法

Country Status (1)

Country Link
CN (1) CN113096299B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941691A (zh) * 2023-03-09 2023-04-07 中国信息通信研究院 区块链上数据修改方法、装置、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107204846A (zh) * 2017-05-31 2017-09-26 北京中金国信科技有限公司 数字签名生成方法、系统、节点模块及共同随机数协商确定方法
KR20200008413A (ko) * 2018-07-16 2020-01-28 한양대학교 산학협력단 비밀 선거가 보장된 블록 체인 기반의 전자 투표를 수행하는 단말 장치 및 서버와, 전자 투표 방법
WO2020133326A1 (zh) * 2018-12-29 2020-07-02 北京建极练科技有限公司 区块链生成方法、系统、计算机存储介质和电子设备
CN111427957A (zh) * 2020-03-26 2020-07-17 财付通支付科技有限公司 区块链投票信息校验方法、装置、设备以及存储介质
CN112688775A (zh) * 2020-12-17 2021-04-20 中国工商银行股份有限公司 联盟链智能合约的管理方法和装置、电子设备、及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107204846A (zh) * 2017-05-31 2017-09-26 北京中金国信科技有限公司 数字签名生成方法、系统、节点模块及共同随机数协商确定方法
KR20200008413A (ko) * 2018-07-16 2020-01-28 한양대학교 산학협력단 비밀 선거가 보장된 블록 체인 기반의 전자 투표를 수행하는 단말 장치 및 서버와, 전자 투표 방법
WO2020133326A1 (zh) * 2018-12-29 2020-07-02 北京建极练科技有限公司 区块链生成方法、系统、计算机存储介质和电子设备
CN111427957A (zh) * 2020-03-26 2020-07-17 财付通支付科技有限公司 区块链投票信息校验方法、装置、设备以及存储介质
CN112688775A (zh) * 2020-12-17 2021-04-20 中国工商银行股份有限公司 联盟链智能合约的管理方法和装置、电子设备、及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941691A (zh) * 2023-03-09 2023-04-07 中国信息通信研究院 区块链上数据修改方法、装置、设备和介质
CN115941691B (zh) * 2023-03-09 2023-05-05 中国信息通信研究院 区块链上数据修改方法、装置、设备和介质

Also Published As

Publication number Publication date
CN113096299B (zh) 2022-05-24

Similar Documents

Publication Publication Date Title
Dimitriou Efficient, coercion-free and universally verifiable blockchain-based voting
CN107508686B (zh) 身份认证方法和系统以及计算设备和存储介质
US10630486B2 (en) Multiparty computation for approving digital transaction by utilizing groups of key shares
CN113111373B (zh) Vbft共识机制的随机数生成方法和共识机制系统
Lyu et al. A secure decentralized trustless E-voting system based on smart contract
CN112733163B (zh) 基于离散对数相等性证明的可监管零知识证明方法及装置
US20040103276A1 (en) Tolerant digital certificate distribute system and distribute method
CN113395164B (zh) 一种基于环签名和区块链的电子投票方法
CN113761582A (zh) 基于群签名的可监管区块链交易隐私保护方法及系统
CN113191863B (zh) 投标方法、第三方设备、发标方设备及投标方设备
CN113468570A (zh) 基于智能合约的隐私数据共享方法
CN112291062B (zh) 一种基于区块链的投票方法及装置
CN101267308A (zh) 具有门限追踪性的民主群签名方法
CN114978530B (zh) 空间信息网中分布式空间众包的距离计算与隐私保护方法
CN113096299B (zh) 一种基于联盟链的不记名电子投票方法
Gao et al. Quantum election protocol based on quantum public key cryptosystem
Li et al. AvecVoting: Anonymous and verifiable E-voting with untrustworthy counters on blockchain
Tian et al. Accountable fine-grained blockchain rewriting in the permissionless setting
Su et al. Secure blockchain-based electronic voting mechanism.
Isirova et al. Development Principles for Electronic Voting System Using Distributed Ledger Technology
Chung et al. Casting ballots over internet connection against bribery and coercion
CN110880969B (zh) 基于联盟链和隐式证书的qkd网络认证密钥生成方法及系统
CN112422294A (zh) 基于环签名的匿名投票方法及装置、电子设备、存储介质
CN113393241A (zh) 一种区块链账本数据的编辑方法及装置
CN116886411B (zh) 一种基于匿名认证的安全多方计算方法

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