CN110391911A - 区块链匿名投票系统及方法 - Google Patents
区块链匿名投票系统及方法 Download PDFInfo
- Publication number
- CN110391911A CN110391911A CN201910666220.0A CN201910666220A CN110391911A CN 110391911 A CN110391911 A CN 110391911A CN 201910666220 A CN201910666220 A CN 201910666220A CN 110391911 A CN110391911 A CN 110391911A
- Authority
- CN
- China
- Prior art keywords
- ballot
- block chain
- transaction request
- identity
- public key
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3255—Cryptographic 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 group based signatures, e.g. ring or threshold signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3257—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种区块链匿名投票系统和方法,利用区块链实现投票系统,通过把投票逻辑放到智能合约中运行,可以把投票数据公开化、透明化,由于不存在中心化的节点,即使出现单一节点故障也不影响系统的整体运行,而且任何人都无法篡改区块链中的投票数据,并且,通过在区块链中引入盲签名、环签名等密码学技术,保证在必要的投票数据的公开性和合法性的前提下,隐藏投票者的身份信息和投票意向等细节,起到保护用户隐私的作用。
Description
技术领域
本发明涉及区块链技术领域,尤其是一种区块链匿名投票系统和方法。
背景技术
当一个团体出现意见不一时,公平的投票是解决这个问题的较好办法。而传统的电子投票有着不可忽视的痛点:首先,电子投票的数据是记录在一个中心化系统上的,可能会出现有人恶意篡改数据来获利的情况,导致投票结果不能准确反映投票的真实情况。其次,中心化的电子投票系统,如果出现系统故障、通信故障等,会导致电子投票系统漏记、误记选票情况,投票者因为信息不对称而无法获悉该情况,也就无法重新投票或者更正。最后,投票数据以明文形式存储在中心化系统上,存在系统管理者恶意窥探或者系统遭受攻击导致信息泄露等,造成投票用户投票意向等隐私被泄露的风险。
发明内容
本发明目的在于提供了一种区块链匿名投票系统和方法,解决中心化电子投票系统的人为作弊、机器故障、隐私泄露等风险问题,通过利用区块链技术把投票逻辑放到智能合约中运行,进一步引入盲签名、环签名等密码学技术,实现隐藏投票者的身份信息和投票意向等细节,起到保护用户隐私的作用。
为达上述目的,本发明所提供的一种区块链匿名投票系统,所述系统包含管理端、多个区块链节点和多个投票端;所述管理端用于通过盲签名算法随机生成盲私钥并保存,根据所述盲私钥获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;所述区块链节点用于将接收到的所述交易请求广播至其他区块链节点,或者根据区块链共识算法的规则对其他区块链节点广播的交易请求进行共识;当共识通过后对所述交易请求执行投票逻辑的智能合约,对接收到的选票进行环签名和盲签名的校验,当校验通过后根据处理结果将所述交易请求打包成区块后处理并进行持久化保存;以及,根据所述投票范围及所述盲公钥校验所述投票端的投票资格;所述投票端用于向所述区块链节点发送查询请求,由所述区块链节点根据所述交易请求中的投票范围确认自身的投票资格;当自身具备投票资格时,通过环签名算法生成所述投票端的环私钥及对应的环公钥,将所述环公钥发送至所述区块链节点公布;通过所述盲签名算法及所述盲公钥获得所述投票端的投票者信息;根据用户输入内容和所述环私钥获得所述投票端的选票数据;根据所述投票者信息、所述选票数据、所述盲公钥和所述投票信息生成选票,将所述选票公开至所述区块链节点上。
在上述区块链匿名投票系统中,优选的,所述管理端包含投票模块、通讯模块、身份签名模块和盲签名算法模块;所述投票模块用于通过盲签名算法随机生成盲私钥并保存,根据所述盲私钥获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;所述通讯模块用于将所述交易请求发送至所述区块链节点中;所述身份签名模块用于存储所述管理端的身份私钥和身份私钥对应公钥的身份证书;以及根据所述身份私钥对所述交易请求进行签名,并将所述身份证书加入至所述交易请求中;所述盲签名算法模块用于配合所述投票模块提供盲签名算法支持。
在上述区块链匿名投票系统中,优选的,所述区块链节点包含通讯模块、身份校验模块、环签名算法模块、盲签名算法模块和数据存储模块;所述通讯模块用于接收所述管理端或所述投票端发送来的交易请求或选票,并与其他区块链节点建立连接,将所述交易请求广播至其他区块链节点;或接收其他区块链节点广播的所述交易请求;所述身份校验模块用于保存所述管理端提供的身份证书的对应根证书和所述投票端提供的身份证书的对应根证书,根据所述根证书对所述身份证书进行合法性验证,当验证通过后根据所述身份证书对所述交易请求中的身份公钥对所述交易请求中的签名进行验签;所述环签名算法模块用于对选票进行环签名校验;所述盲签名算法模块用于对选票进行盲签名校验;所述数据存储模块用于持久化保存所述区块的处理结果。
在上述区块链匿名投票系统中,优选的,所述区块链节点还包含共识模块和智能合约执行模块;所述共识模块用于根据预设的业务规则对所述交易请求进行合法性验证,当验证通过后通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;所述智能合约执行模块用于根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理。
在上述区块链匿名投票系统中,优选的,所述投票端包含投票模块、通讯模块、身份签名模块、环签名算法模块和盲签名算法模块;所述投票模块用于向所述区块链节点发送查询请求,由所述区块链节点根据所述交易请求中的投票范围确认自身的投票资格;以及通过所述盲签名算法及所述盲公钥获得所述投票端的投票者信息;根据用户输入内容和所述环私钥获得所述投票端的选票数据;根据所述投票者信息、所述选票数据、所述盲公钥和所述投票信息生成选票,将所述选票公开至所述区块链节点上;所述通讯模块用于将所述选票发送至所述区块链节点;所述身份签名模块用于存储所述投票端的身份私钥和身份私钥对应公钥的身份证书;以及根据投票端的身份私钥对所述投票者信息进行签名,并将所述身份证书加入至所述投票者信息中;所述环签名算法模块用于为所述投票端提供环签名的算法支持;所述盲签名算法模块用于通过盲签名算法为所述投票端提供盲化和脱盲的算法支持。
在本发明一实施例中还提供一种区块链匿名投票方法,所述方法包含:所述管理端组装发起的交易请求或授权的交易请求;根据自身节点的身份私钥对所述交易请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述交易请求发送至所述区块链节点;所述区块链节点将接收到的所述交易请求广播至其他区块链节点,或接收其他区块链节点广播的所述交易请求;通过所述管理端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理,并持久化保存所述区块的处理结果。
在上述区块链匿名投票方法中,优选的,所述方法还包含:所述投票端组装注册的交易请求或选举的交易请求;根据自身节点的身份私钥对所述交易请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述交易请求发送至所述区块链节点;所述区块链节点将接收到的所述交易请求广播至其他区块链节点,或接收其他区块链节点广播的所述交易请求;通过所述投票端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理,并持久化保存所述区块的处理结果。
在上述区块链匿名投票方法中,优选的,所述方法还包含:所述管理端或所述投票端发起组装查询请求,通过自身的身份私钥对所述查询请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述查询请求发送至所述区块链节点;以及持久化保存所述区块链节点反馈的执行结果;所述区块链节点通过所述管理端或所述投票端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,执行所述查询请求中的业务逻辑并反馈执行结果。
在上述区块链匿名投票方法中,优选的,所述方法还包含:所述管理端根据所述投票信息获得对应的投票主题和投票选项,根据所述投票范围获得投票者名单;通过所述盲签名算法随机生成盲私钥并持久化保存至本地,根据所述盲私钥计算获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;所述区块链节点对接收到的所述交易请求进行唯一性校验,当校验通过后将所述交易请求持久化保存至本地,供其他区块链查询。
在上述区块链匿名投票方法中,优选的,所述方法还包含:所述投票端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单及管理端的盲公钥;随机生成票码,以及通过盲签名算法随机生成盲因子并保存至本地;通过所述盲因子与管理端的盲公钥对所述票码做盲化处理获得票码密文;通过环签名算法随机生成环私钥并保存至本地,根据所述环私钥计算获得对应的环公钥;根据所述票码密文及所述环公钥生成注册申请交易请求,将所述注册申请交易请求发送至所述区块链节点;所述区块链节点对所述注册申请交易请求进行合法性校验,当校验通过后将所述注册申请交易请求中所述票码密文和环公钥持久化保存至本地,供其他区块链查询;其中所述合法性校验包含:所述投票端是否在投票者名单内、所述票码密文和所述环公钥是否唯一。
在上述区块链匿名投票方法中,优选的,所述方法还包含:所述管理端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单、管理端的盲公钥和所有投票端的票码密文;通过盲密钥分别对所有投票端的票码密文进行盲签名处理获得盲签名密文;根据所述盲签名密文生成授权申请交易请求并发送至所述区块链节点;所述区块链节点根据所述授权申请交易请求校验所有投票端是否均存在盲签名密文,当校验通过后将所述盲签名密文对应更新至本地存储的投票者信息中。
在上述区块链匿名投票方法中,优选的,所述方法还包含:所述投票端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单、管理端的盲公钥和各个投票端对应的投票者信息;根据用户输入内容获得投票选项;通过盲因子对所述投票端对应的盲签名密文进行脱盲处理获得盲签名;通过所述投票端自身的环私钥和其他投票端的环公钥对所述投票选项和票码进行环签名处理获得环签名;根据所述投票选项的唯一标识、所述票码、所述盲签名和所述环签名生成选举申请交易请求并发送至所述区块链节点;所述区块链节点根据所述管理端的盲公钥、所有投票者的环公钥对所述选举申请交易请求进行环签名和盲签名的校验,当校验通过后根据所述选举申请交易请求中的票码进行唯一性验证,当验证通过后更新本地存储的投票选项。
本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明的有益技术效果在于:解决中心化电子投票系统的人为作弊、机器故障、隐私泄露等问题。利用区块链实现投票系统,通过把投票逻辑放到智能合约中运行,可以把投票数据公开化、透明化,由于不存在中心化的节点,即使出现单一节点故障也不影响系统的整体运行,而且任何人都无法篡改区块链中的投票数据,真正做到投票的公平、公开、公正。并且,通过在区块链中引入盲签名、环签名等密码学技术,保证在必要的投票数据的公开性和合法性的前提下,隐藏投票者的身份信息和投票意向等细节,起到保护用户隐私的作用。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为一种区块链匿名投票系统的网络结构图;
图2为一种管理者节点的结构图;
图3为一种区块链节点的结构图;
图4为一种投票者节点的结构图;
图5为一种区块链执行交易的处理流程图;
图6为一种区块链查询数据的处理流程图;
图7为一种区块链匿名投票在发起阶段的处理流程图;
图8为一种区块链匿名投票在注册阶段的处理流程图;
图9为一种区块链匿名投票在授权阶段的处理流程图;
图10为一种区块链匿名投票在选举阶段的处理流程图;
图11为一种区块链匿名投票在验票阶段的处理流程图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明所提供的一种区块链匿名投票系统,所述系统包含管理端、多个区块链节点和多个投票端;所述管理端用于通过盲签名算法随机生成盲私钥并保存,根据所述盲私钥获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;所述区块链节点用于将接收到的所述交易请求广播至其他区块链节点,或者根据区块链共识算法的规则对其他区块链节点广播的交易请求进行共识;当共识通过后对所述交易请求执行投票逻辑的智能合约,对接收到的选票进行环签名和盲签名的校验,当校验通过后根据处理结果将所述交易请求打包成区块后处理并进行持久化保存;以及,根据所述投票范围及所述盲公钥校验所述投票端的投票资格;所述投票端用于向所述区块链节点发送查询请求,由所述区块链节点根据所述交易请求中的投票范围确认自身的投票资格;当自身具备投票资格时,通过环签名算法生成所述投票端的环私钥及对应的环公钥,将所述环公钥发送至所述区块链节点公布;通过所述盲签名算法及所述盲公钥获得所述投票端的投票者信息;根据用户输入内容和所述环私钥获得所述投票端的选票数据;根据所述投票者信息、所述选票数据、所述盲公钥和所述投票信息生成选票,将所述选票公开至所述区块链节点上。
在实际工作中,所述区块链匿名投票系统具体请参考图1所示,具体包括一个管理者节点1即管理端、多个区块链节点2、多个投票者节点3即投票端。其中所有区块链节点2相互之间进行P2P(Peer to Peer,点对点)网络连接,组建成一个区块链网络。管理者节点1和每个投票者节点3作为区块链的接入应用系统(客户端),分别与某个特定的区块链节点2(服务端)建立C/S(客户端/服务端)连接。管理者节点1和各个投票者节点3之间不会直接建立网络连接,所有交互通过区块链网络进行。所述“管理者节点1”可以是一台服务器或多台服务器组成的服务器集群,作为区块链的接入应用系统,与某个特定的区块链节点2建立C/S连接。管理者节点1在匿名投票中作为管理者的角色,由匿名投票的管理者用户操作,负责发起投票和确定投票者范围,对票码进行盲签名以保证投票者的投票行为的不可重复性。所述“区块链节点2”是指区块链中对交易进行接收、广播、共识、执行和存储的网络节点,一般是各区块链成员的可信服务器、工作站等,负责把用户的请求封装成交易再广播到其他区块链节点,或者根据区块链共识算法的规则对其他区块链节点广播的交易进行共识,对于共识通过的交易会进行智能合约处理,最后根据处理的结果生成区块并进行持久化保存。每个区块链节点2中分别执行投票逻辑的智能合约,负责对每张选票进行环签名和盲签名的校验,保证投票者的投票行为的合法性。每个区块链节点2还持久化保存了投票过程和投票结果中的明细数据,可以让用户实时监察或者事后校验,保证了匿名投票的公平、公开、公正。所述“投票者节点3”可以是一台服务器或多台服务器组成的服务器集群,作为区块链的接入应用系统,与某个特定的区块链节点2建立C/S连接。投票者节点3在匿名投票中作为投票者的角色,由匿名投票的投票者用户操作,负责在区块链上公布自己的环公钥,并结合其他投票者节点3的环公钥,对认可的投票选项进行环签名,把认可的投票选项公开到区块链上。
在本发明一实施例中,所述管理端包含投票模块、通讯模块、身份签名模块和盲签名算法模块;所述投票模块用于通过盲签名算法随机生成盲私钥并保存,根据所述盲私钥获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;所述通讯模块用于将所述交易请求发送至所述区块链节点中;所述身份签名模块用于存储所述管理端的身份私钥和身份私钥对应公钥的身份证书;以及根据所述身份私钥对所述交易请求进行签名,并将所述身份证书加入至所述交易请求中;所述盲签名算法模块用于配合所述投票模块提供盲签名算法支持。
实际工作中,所述管理端如图2所示,所述管理端即“管理者节点1”包含:投票模块11、通讯模块12、身份签名模块13、盲签名算法模块14、存储模块15。所述“投票模块11”为管理者节点1的核心业务模块,通过调用其他模块的接口,进行投票逻辑的封装,包括发起投票和确定投票者范围,对票码进行盲签名以保证投票者的投票行为的不可重复性。所述“通讯模块12”负责与某个可信任的区块链节点2建立C/S网络连接,把交易请求报文发送到区块链节点2。所述“身份签名模块13”属于技术支撑模块,保存本节点的身份私钥,和包含对应公钥的身份证书,该身份证书由全网可信任的CA(Certificate Authority,证书认证)机构签发。身份签名模块13使用身份私钥对交易请求签名,并在交易请求上附上身份证书,保证交易请求的数据完整性和身份认证性。所述“盲签名算法模块14”属于技术支撑模块,在匿名投票的发起阶段和授权阶段,为管理者节点1提供盲签名算法支持。所述“存储模块15”持久化保存每场匿名投票的所有明细信息。
在本发明一实施例中,所述区块链节点包含通讯模块、身份校验模块、环签名算法模块、盲签名算法模块、数据存储模块、共识模块和智能合约执行模块;所述通讯模块用于接收所述管理端或所述投票端发送来的交易请求或选票,并与其他区块链节点建立连接,将所述交易请求广播至其他区块链节点;或接收其他区块链节点广播的所述交易请求;所述身份校验模块用于保存所述管理端提供的身份证书的对应根证书和所述投票端提供的身份证书的对应根证书,根据所述根证书对所述身份证书进行合法性验证,当验证通过后根据所述身份证书对所述交易请求中的身份公钥对所述交易请求中的签名进行验签;所述环签名算法模块用于对选票进行环签名校验;所述盲签名算法模块用于对选票进行盲签名校验;所述数据存储模块用于持久化保存所述区块的处理结果;所述共识模块用于根据预设的业务规则对所述交易请求进行合法性验证,当验证通过后通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;所述智能合约执行模块用于根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理。
请参考图3所示,实际工作中所述“区块链节点2”包含:通讯模块21、身份校验模块22、环签名算法模块23、盲签名算法模块24、共识模块25、智能合约执行模块26、数据存储模块27。所述“通讯模块21”作为管理者节点1或者投票者节点3的服务端,接收管理者节点1或者投票者节点3发送给本节点的交易请求,与其他区块链节点2建立P2P网络连接,把交易请求广播到其他区块链节点2,或者接收其他区块链节点2广播的交易请求。通讯模块21会调用身份校验模块22的接口,验证交易请求的合法性。然后把交易请求封装成交易,交给共识模块25进行后续处理。所述“身份校验模块22”属于技术支撑模块,保存签发管理者节点1中的身份签名模块13中的身份证书的CA机构的根证书,和签发投票者节点3中的身份签名模块33中的身份证书的CA机构的根证书。身份校验模块22可以使用对应的根证书校验交易请求中的身份证书的合法性,和使用交易请求中的身份证书中的身份公钥对交易请求中的签名进行验签。所述“环签名算法模块23”属于技术支撑模块,负责提供接口对环签名进行合法性校验。所述“盲签名算法模块24”属于技术支撑模块,负责提供接口对盲签名进行合法性校验。所述“共识模块25”是交易共识处理的逻辑装置,根据业务规则对交易的合法性进行判断,在合法性验证通过后,与其他区块链节点2根据约定好的共识算法对交易进行共识处理,这里的共识算法可以是POW(Proof OfWork,工作量证明)、POS(Proof Of Stake,股权证明)、DPOS(Delegated Proof OfStake,委托股权证明)、PBFT(Practical ByzantineFault Tolerance,实用拜占庭容错)等,最后根据共识的结果确定交易的执行顺序,把交易打包成区块,并把区块交给智能合约执行模块26执行。所述“智能合约执行模块26”负责把区块中的交易按顺序执行,启动智能合约执行具体的匿名投票业务逻辑。在执行智能合约的过程中,可能会调用环签名算法模块23和盲签名算法模块24所提供的接口,进行环签名或者盲签名的校验。所述“数据存储模块27”负责持久化存储智能合约执行的结果。
在本发明一实施例中,所述投票端包含投票模块、通讯模块、身份签名模块、环签名算法模块和盲签名算法模块;所述投票模块用于向所述区块链节点发送查询请求,由所述区块链节点根据所述交易请求中的投票范围确认自身的投票资格;以及通过所述盲签名算法及所述盲公钥获得所述投票端的投票者信息;根据用户输入内容和所述环私钥获得所述投票端的选票数据;根据所述投票者信息、所述选票数据、所述盲公钥和所述投票信息生成选票,将所述选票公开至所述区块链节点上;所述通讯模块用于将所述选票发送至所述区块链节点;所述身份签名模块用于存储所述投票端的身份私钥和身份私钥对应公钥的身份证书;以及根据投票端的身份私钥对所述投票者信息进行签名,并将所述身份证书加入至所述投票者信息中;所述环签名算法模块用于为所述投票端提供环签名的算法支持;所述盲签名算法模块用于通过盲签名算法为所述投票端提供盲化和脱盲的算法支持。
请参考图4所示,实际工作中所述投票端即“投票者节点3”包含:投票模块31、通讯模块32、身份签名模块33、环签名算法模块34、盲签名算法模块35、存储模块36。所述“投票模块31”为投票者节点3的核心业务模块,通过调用其他模块的接口,进行投票逻辑的封装,包括在注册阶段组织注册申请并公开到区块链上,和在选举阶段组织选举申请并公开到区块链上。所述“通讯模块32”负责与某个可信任的区块链节点2建立C/S网络连接,把交易请求报文发送到区块链节点2。所述“身份签名模块33”属于技术支撑模块,保存本节点的身份私钥,和包含对应公钥的身份证书,该身份证书由全网可信任的CA机构签发。身份签名模块33使用身证私钥对交易请求签名,并在交易请求上附上身份证书,保证交易请求的数据完整性和身份认证性。所述“环签名算法模块34”属于技术支撑模块,在匿名投票的注册阶段和选举阶段,为投票者节点3提供环签名的算法支持。所述“盲签名算法模块35”属于技术支撑模块,在匿名投票的注册阶段和选举阶段,为投票者节点3提供盲化、脱盲的算法支持。所述“存储模块36”持久化保存每场匿名投票的所有明细信息。
在本发明一实施例中还提供一种区块链匿名投票方法,所述方法包含:所述管理端组装发起的交易请求或授权的交易请求;根据自身节点的身份私钥对所述交易请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述交易请求发送至所述区块链节点;所述区块链节点将接收到的所述交易请求广播至其他区块链节点,或接收其他区块链节点广播的所述交易请求;通过所述管理端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理,并持久化保存所述区块的处理结果。具体的,请参考图5所示,上述实施例主体为区块链执行交易的处理流程,具体步骤如下:
步骤S101:管理者节点1的投票模块11,组装发起交易请求或者授权交易请求;或者投票者节点3的投票模块31,组装注册交易请求或者选举交易请求。
步骤S102:管理者节点1的身份签名模块13,或者投票者节点3的身份签名模块33,使用本节点的身证私钥对交易请求签名,并在交易请求上附上身份证书。
步骤S103:管理者节点1的通讯模块12,或者投票者节点3的通讯模块32,把交易请求报文发送到本节点信任的指定区块链节点2。
步骤S104:区块链节点2的通讯模块21,接收管理者节点1或者投票者节点3发送给本节点的交易请求,把交易请求广播到其他区块链节点2,或者接收其他区块链节点2广播的交易请求。
步骤S105:所有区块链节点2的身份校验模块22,使用对应的根证书校验交易请求中的身份证书的合法性,和使用交易请求中的身份证书中的身份公钥对交易请求中的签名进行验签。校验不通过或者验签不通过则拒绝执行该交易请求,校验通过并且验签通过则继续以下步骤。
步骤S106:所有区块链节点2的共识模块25,根据业务规则对交易的合法性进行判断,在合法性验证通过后,与其他区块链节点2根据约定好的共识算法对交易进行共识处理,这里的共识算法可以是POW、POS、DPOS、PBFT等,最后根据共识的结果确定交易的执行顺序,把交易打包成区块,并把区块交给智能合约执行模块26执行。
步骤S107:所有区块链节点2的智能合约执行模块26,把区块中的交易按顺序执行,启动智能合约执行具体的匿名投票业务逻辑。在执行智能合约的过程中,可能会调用环签名算法模块23和盲签名算法模块24所提供的接口,进行环签名或者盲签名的校验。
步骤S108:所有区块链节点2的数据存储模块27,持久化存储智能合约执行的结果。
通过以上步骤可以看出,管理者节点1或者投票者节点3,把交易请求发送到任意一个区块链节点2,该交易请求会被广播到所有区块链节点2,并进行智能合约执行,所有区块链节点2保持同样的数据状态。所以,可以把由各个区块链节点2组建成的区块链网络看成一个整体对待。
在本发明一实施例中还提供一种区块链查询数据的处理方法,所述方法还包含:所述投票端组装注册的交易请求或选举的交易请求;根据自身节点的身份私钥对所述交易请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述交易请求发送至所述区块链节点;所述区块链节点将接收到的所述交易请求广播至其他区块链节点,或接收其他区块链节点广播的所述交易请求;通过所述投票端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理,并持久化保存所述区块的处理结果。
上述实施例具体请参考图6所示,步骤如下:
步骤S201:管理者节点1的投票模块11,或者投票者节点3的投票模块31,组装查询请求。
步骤S202:管理者节点1的身份签名模块13,或者投票者节点3的身份签名模块33,使用本节点的身证私钥对查询请求签名,并在查询请求上附上身份证书。
步骤S203:管理者节点1的通讯模块12,或者投票者节点3的通讯模块32,把查询请求报文发送到本节点信任的指定区块链节点2。
步骤S204:区块链节点2的身份校验模块22,使用对应的根证书校验查询请求中的身份证书的合法性,和使用查询请求中的身份证书中的身份公钥对查询请求中的签名进行验签。校验不通过或者验签不通过则拒绝执行该查询请求,校验通过并且验签通过则继续以下步骤。
步骤S205:区块链节点2的智能合约执行模块26,启动智能合约执行查询请求中的业务逻辑。在执行智能合约的过程中,可能会调用数据存储模块27的接口,获取保存在区块链上的持久化数据。
步骤S206:区块链节点2的通讯模块21,返回查询结果。
步骤S207:管理者节点1的存储模块15,或者投票者节点3的存储模块36,把查询结果更新到本地持久化数据。
以上流程为在区块链上执行交易和查询数据的一般流程,其中执行交易流程中的步骤S101和步骤S107,查询数据流程中的步骤S205和步骤S207,会根据具体的匿名投票业务逻辑进行特殊的处理。下面不再赘述执行交易和查询数据的一般流程中的身份认证、广播、共识步骤,并且把由各个区块链节点2组建成的区块链网络看成一个整体进行说明。
本发明的匿名投票的处理方法分为5个阶段,分别为:发起阶段、注册阶段、授权阶段、选举阶段、验票阶段,下面结合附图,对每个阶段的处理流程,进行详细说明。
在本发明一实施例中还提供区块链匿名投票在发起阶段的处理流程,具体包含:所述管理端或所述投票端发起组装查询请求,通过自身的身份私钥对所述查询请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述查询请求发送至所述区块链节点;以及持久化保存所述区块链节点反馈的执行结果;所述区块链节点通过所述管理端或所述投票端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,执行所述查询请求中的业务逻辑并反馈执行结果;在实际工作中上述区块链匿名投票在发起阶段的处理流程的各步骤请参考图7所示:
步骤S301:管理者节点1的投票模块11,确定投票主题、投票选项、投票者名单。
步骤S302:管理者节点1的盲签名算法模块14,随机生成盲私钥(进行盲签名所用的私钥),根据盲私钥可推导出盲公钥(对盲签名进行验签所用的公钥)。其中盲私钥会在本地持久化保存不会对外公开。
步骤S303:管理者节点1的投票模块11,生成包括一场匿名投票的基础数据的发起申请交易请求,包括:投票主题、投票选项、投票者名单、盲公钥。
步骤S304:管理者节点1的通讯模块12,把上述发起申请交易请求,公布到区块链上。
步骤S305:所有区块链节点2的智能合约执行模块26,通过查询数据存储模块27中的数据,校验投票主题的唯一性,校验不通过则拒绝执行,校验通过则继续以下步骤。
步骤S306:所有区块链节点2的数据存储模块27,会把一场匿名投票的基础数据持久化,可供参与区块链的任意方查询。
在本发明一实施例中还提供区块链匿名投票在注册阶段的处理方法,具体的包含:所述管理端根据所述投票信息获得对应的投票主题和投票选项,根据所述投票范围获得投票者名单;通过所述盲签名算法随机生成盲私钥并持久化保存至本地,根据所述盲私钥计算获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;所述区块链节点对接收到的所述交易请求进行唯一性校验,当校验通过后将所述交易请求持久化保存至本地,供其他区块链查询。在实际工作中,所述区块链匿名投票在注册阶段的处理流程图如图8所示,具体步骤包含:
步骤S401:每个投票者节点3的通讯模块32,向区块链节点2发送查询请求。
步骤S402:所有区块链节点2的智能合约执行模块26,通过查询数据存储模块27中的数据,查询当前投票的最新数据,并通过通讯模块21,返回查询结果。
步骤S403:每个投票者节点3的存储模块36,更新本地持久化保存的最新投票数据,包括:投票主题、投票选项、投票者名单、管理者的盲公钥。
步骤S404:每个投票者节点3的投票模块31,随机生成票码。
步骤S405:每个投票者节点3的盲签名算法模块35,随机生成盲因子,该盲因子会存储在本地不会对外公开。
步骤S406:每个投票者节点3的盲签名算法模块35,使用盲因子和管理者的盲公钥对票码进行盲化操作,得到票码密文,该票码密文是一段无法与原始票码产生关联的比特串。
步骤S407:每个投票者节点3的环签名算法模块34,随机生成环私钥(进行环签名所用的私钥),根据环私钥推导出环公钥(对环签名进行验签所用的公钥)。其中环私钥储存在本地不会对外公开。
步骤S408:每个投票者节点3的投票模块31,生成注册申请交易请求报文,报文的内容包括票码密文和环公钥。
步骤S409:每个投票者节点3的通讯模块32,把该注册申请交易请求报文公布到区块链上。
步骤S410:所有区块链节点2的智能合约执行模块26,通过查询数据存储模块27中的数据,对注册申请进行合法性校验,包括:校验申请报文的发送者是否在投票者名单内、校验票码密文的唯一性、校验环公钥的唯一性。其中任意一项校验不通过则拒绝继续执行,全部校验通过则继续以下步骤。
步骤S411:所有区块链节点2的数据存储模块27,把各个投票者的票码密文和环公钥,持久化更新到本场投票数据里,可供参与区块链的任意方查询。
在本发明一实施例中还提供区块链匿名投票在授权阶段的处理方法,所述方法还包含:所述投票端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单及管理端的盲公钥;随机生成票码,以及通过盲签名算法随机生成盲因子并保存至本地;通过所述盲因子与管理端的盲公钥对所述票码做盲化处理获得票码密文;通过环签名算法随机生成环私钥并保存至本地,根据所述环私钥计算获得对应的环公钥;根据所述票码密文及所述环公钥生成注册申请交易请求,将所述注册申请交易请求发送至所述区块链节点;所述区块链节点对所述注册申请交易请求进行合法性校验,当校验通过后将所述注册申请交易请求中所述票码密文和环公钥持久化保存至本地,供其他区块链查询;其中所述合法性校验包含:所述投票端是否在投票者名单内、所述票码密文和所述环公钥是否唯一。在实际工作中,所述区块链匿名投票在授权阶段的处理流程图请参考图9所示,详细步骤如下:
步骤S501:管理者节点1的通讯模块12,向区块链节点2发送查询请求。
步骤S502:所有区块链节点2的智能合约执行模块26,通过查询数据存储模块27中的数据,查询当前投票的最新数据,并通过通讯模块21,返回查询结果。
步骤S503:管理者节点1的存储模块15,更新本地持久化保存的最新投票数据,包括:投票主题、投票选项、投票者名单、管理者的盲公钥、每个投票者的票码密文。
步骤S504:管理者节点1的盲签名算法模块14,对于每个投票者,使用盲私钥对该投票者的票码密文进行盲签名操作,得到盲签名密文。
步骤S505:管理者节点1的投票模块11,生成授权申请交易请求报文,报文内容为各个投票者的盲签名密文。
步骤S506:管理者节点1的通讯模块12,把授权申请交易请求报文发送到区块链上。
步骤S507:所有区块链节点2的智能合约执行模块26,通过查询数据存储模块27中的数据,校验管理者是否已经为所有投票者都生成了盲签名密文,校验不通过则拒绝继续执行,校验通过则继续以下步骤。
步骤S508:所有区块链节点2的数据存储模块27,更新每个投票者的信息,增加盲签名密文。
在本发明一实施例中还提供一种区块链匿名投票在选举阶段的处理方法,具体包含:所述管理端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单、管理端的盲公钥和所有投票端的票码密文;通过盲密钥分别对所有投票端的票码密文进行盲签名处理获得盲签名密文;根据所述盲签名密文生成授权申请交易请求并发送至所述区块链节点;所述区块链节点根据所述授权申请交易请求校验所有投票端是否均存在盲签名密文,当校验通过后将所述盲签名密文对应更新至本地存储的投票者信息中。在实际工作中,所述区块链匿名投票在选举阶段的处理流程图请参考图10所示,详细步骤如下:
步骤S601:每个投票者节点3的通讯模块32,向区块链节点2发送查询请求。
步骤S602:所有区块链节点2的智能合约执行模块26,通过查询数据存储模块27中的数据,查询当前投票的最新数据,并通过通讯模块21,返回查询结果。
步骤S603:每个投票者节点3的存储模块36,更新本地持久化保存的最新投票数据,包括:投票主题、投票选项、投票者名单、管理者的盲公钥、各个投票者信息(包括票码密文、盲签名密文、环公钥)。
步骤S604:每个投票者节点3的投票模块31,通过与投票者用户的交互,决定选择的投票选项。
步骤S605:每个投票者节点3的盲签名算法模块35,使用盲因子对所属投票者用户的盲签名密文进行脱盲操作,得到真正的盲签名。
步骤S606:每个投票者节点3的环签名算法模块34,使用所属投票者用户的环私钥和其他投票者的环公钥,对选择的投票选项和票码进行环签名操作,得到环签名。
步骤S607:每个投票者节点3的投票模块31,生成选举申请交易请求报文,报文内容包括:选择的投票选项的投票选项唯一标识、票码、盲签名、环签名。
步骤S608:每个投票者节点3的通讯模块32,把选举申请发送到区块链上。
步骤S609:所有区块链节点2的智能合约执行模块26,使用管理者的盲公钥通过调用盲签名算法模块24的接口校验盲签名,再使用所有投票者的环公钥通过调用环签名算法模块23的接口校验环签名,最后校验票码的唯一性。其中任意一项校验不通过则拒绝继续执行,全部校验通过则继续以下步骤。
步骤S610:所有区块链节点2的智能合约执行模块26,通过查询数据存储模块27中的数据,为指定的投票选项增加得票数。
步骤S611:所有区块链节点2的数据存储模块27,持久化更新该场投票的数据,更新后的数据为:投票主题、投票选项(得票数)、投票者名单、管理者的盲公钥、各个投票者信息(票码密文、盲签名密文、环公钥)、各个选票(投票选项唯一标识、票码、盲签名、环签名)。
在本发明一实施例中还提供区块链匿名投票在验票阶段的处理方法,具体包含:所述投票端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单、管理端的盲公钥和各个投票端对应的投票者信息;根据用户输入内容获得投票选项;通过盲因子对所述投票端对应的盲签名密文进行脱盲处理获得盲签名;通过所述投票端自身的环私钥和其他投票端的环公钥对所述投票选项和票码进行环签名处理获得环签名;根据所述投票选项的唯一标识、所述票码、所述盲签名和所述环签名生成选举申请交易请求并发送至所述区块链节点;所述区块链节点根据所述管理端的盲公钥、所有投票者的环公钥对所述选举申请交易请求进行环签名和盲签名的校验,当校验通过后根据所述选举申请交易请求中的票码进行唯一性验证,当验证通过后更新本地存储的投票选项。在实际工作中,所述区块链匿名投票在验票阶段的处理流程图请参考图11所示,详细步骤如下:
步骤S701:管理者节点1的通讯模块12,或者投票者节点3的通讯模块32,向区块链节点2发送查询请求。
步骤S702:所有区块链节点2的智能合约执行模块26,通过查询数据存储模块27中的数据,查询当前投票的最新数据,并通过通讯模块21,返回查询结果。
步骤S703:管理者节点1的存储模块15,或者投票者节点3的存储模块36,更新本地持久化保存的最新投票数据,包括:投票主题、投票选项(得票数)、投票者名单、管理者的盲公钥、各个投票者信息(票码密文、盲签名密文、环公钥)、各个选票(投票选项唯一标识、票码、盲签名、环签名)。
本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
在投票者选择投票选项的选举阶段,投票者所发送到区块链的选举申请报文里,只包含以下信息:
投票选项:只体现投票者的选择,没有体现投票者的身份。
票码:只保证选票的唯一性以防止投票者重复投票,没有体现投票者的身份。
盲签名:只保证票码的合法性以防止投票者伪造票码,没有体现投票者的身份。
环签名:只保证投票者身份的合法性(在规定范围内),没有体现投票者的身份。
由此分析,投票选项所收到的每一个选票里,并没有体现投票者的身份,无法从区块链上公开的数据得知任何一个投票者的意图,是一场具有匿名性的投票。
本发明通过在区块链中使用环签名、盲签名等密码学技术,使得整个投票结果准确可信,具有以下安全特性:
合法性:环签名算法的使用,使得只有合法的投票者,才能生成有效的环签名,保证了只有规定范围内的投票者,才有投票的资格。
不可重复性:使用票码来标识投票者选举动作的唯一性,使得即使是合法的投票者,也无法超出规定地重复进行投票。盲签名算法的使用,令只有经过管理者盲签名的票码才具有合法性,同时又保证了票码在选举阶段前的隐蔽性,令投票者无法随意伪造票码,进一步保证了投票者不能超出规定地重复进行投票。其中值得重点关注的是,投票者在区块链上公开的票码密文和选举时使用的票码,根据具有强盲性的盲签名算法的约定,无法直接或间接得出关联关系,在满足票码合法性的前提下,并没有破坏本次投票匿名性的要求。
公开性:整个投票过程以及投票结果,均记录在区块链上,由于区块链具有公开透明、不可篡改的特性,使得任何人都可以查阅该投场投票的数据,却无法任意篡改其中的信息,保证了该场投票的公平性和可验证性。
由此分析,这是一场只有规定身份的投票者才能参与,且投票者只能投递规定的选票数,整个过程和结果均受到监督的投票,是一场具有安全性的投票。
在本发明一实施例中,还提供一种盲签名算法。可选地,上述处理流程中的盲签名算法操作可以使用本发明提供的盲签名算法进行处理,也可以使用其他具有强盲性的盲签名算法进行处理。
本发明提供的盲签名算法的处理方法如下:
1、生成密钥
签名者随机选择两个大素数p和q,计算n和L:
n=p*q;
L=lcm(p-1,q-1);
其中lcm()为计算最小公倍数。
签名者随机选择两个大整数e和d,使得满足:
1<e<L
gcd(e,L)=1
1<d<L
d*e mod L=1
其中gcd()为计算最大公约数。
签名者公开e、n和一个单向哈希函数hash(),私密保存L、p、q和d。签名者的公钥为(e,n),私钥为d。
2、盲化
请求者有消息m,随机选取一个整数作为盲因子r,计算m’:
m'=re*hash(m)modn
请求者把m’发送给签名者。
3、签名
签名者计算s’:
s'=(m')dmodn
签名者把s’发送给请求者。
4、脱盲
请求者计算s:
s=s'*r-1modn
s即为消息m的签名,请求者把m和s发送给验证者。
5、验证
验证者验证如下等式是否成立,成立即验签通过,否则验签不通过:
semodn=hash(m)modn
在本发明一实施例中,还提供一种环签名算法。可选地,上述处理流程中的环签名算法操作可以使用本发明提供的环签名算法进行处理,也可以使用其他环签名算法进行处理。
本发明提供的环签名算法的处理方法如下:
1、生成密钥
有r个环成员(编号0至r-1),所有环成员按照约定的ECC(椭圆曲线密码学)参数,各自随机生成自己的ECC私钥d0、d1……dr-1(其中dx为编号为x的环成员的私钥)。
所有环成员根据私钥,与椭圆曲线基点G,执行椭圆曲线的点乘操作,生成自己的公钥:
P=d*G
这里的“*”为椭圆曲线的点乘操作,得到ECC公钥P0、P1……Pr-1(其中Px为编号为x的环成员的公钥)。
所有环成员约定使用的单向哈希函数hash(),公开自己的P,私密保存d。
对于环成员x,公钥为Px,私钥为dx。
2、签名
其中某个环成员x(编号为x的环成员,私钱为dx,公钥为Px)有消息m,拼接上所有环成员的公钥P,再进行哈希计算后,与椭圆曲线基点G,执行椭圆曲线的点乘操作,得到点H:
H=hash(m||P0||P1......||Pr-1)*G
这里的“||”为字节码拼接,“*”为椭圆曲线的点乘操作。
生成r个随机数,分别为c0、c1……cr-1。
生成r个随机数,分别为t0、t1……tr-1。
计算自己的点Ax和点Bx:
Ax=tx*G
Bx=tx*H
计算所有其他环成员(代号为i,i可能为0、1……、x-1、x+1……、r-1)的点Ai和点Bi:
Ai=ti*G+ci*Pi
Bi=(dx*ci+ti)*H
把消息m,拼接上所有公钥P,再拼接上所有的点A和点B,最后进行哈希得到e:
e=hash(m||P0||P1......||Pr-1
||A0||A1......||Ar-1
||B0||B1......||Br-1)
根据e减去其他环成员的c,重新计算cx:
cx=e-(c0+c1......+cx-1+cx+1......+cr-1)
重新计算tx:
tx=tx-cx*dx
计算点F:
F=dx*H
签名信息包括点F、所有的c、所有的t。
环成员x直接或简接把消息m和签名信息(点F、所有的c、所有的t)发送给验证者。
3、验证
验证者把消息m,拼接上所有环成员的公钥P,再进行哈希计算后,与椭圆曲线基点G,执行椭圆曲线的点乘操作,得到点H:
H=hash(m||P0||P1......||Pr-1)*G
这里的“||”为字节码拼接,“*”为椭圆曲线的点乘操作。
计算所有环成员(代号为i,i可能为0、1……、r-1)的点Ai和点Bi:
Ai=ti*G+ci*Pi
Bi=ci*F+ti*H
把消息m,拼接上所有公钥P,再拼接上所有的点A和点B,最后进行哈希得到e:
e=hash(m||P0||P1......||Pr-1
||A0||A1......||Ar-1
||B0||B1......||Br-1)
验证如下等式是否成立,成立即验签通过,否则验签不通过:
e=c0+c1......+cr-1
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种区块链匿名投票系统,其特征在于,所述系统包含管理端、多个区块链节点和多个投票端;
所述管理端用于通过盲签名算法随机生成盲私钥并保存,根据所述盲私钥获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;
所述区块链节点用于将接收到的所述交易请求广播至其他区块链节点,或者根据区块链共识算法的规则对其他区块链节点广播的交易请求进行共识;当共识通过后对所述交易请求执行投票逻辑的智能合约,对接收到的选票进行环签名和盲签名的校验,当校验通过后根据处理结果将所述交易请求打包成区块后处理并进行持久化保存;以及,根据所述投票范围及所述盲公钥校验所述投票端的投票资格;
所述投票端用于向所述区块链节点发送查询请求,由所述区块链节点根据所述交易请求中的投票范围确认自身的投票资格;当自身具备投票资格时,通过环签名算法生成所述投票端的环私钥及对应的环公钥,将所述环公钥发送至所述区块链节点公布;通过所述盲签名算法及所述盲公钥获得所述投票端的投票者信息;根据用户输入内容和所述环私钥获得所述投票端的选票数据;根据所述投票者信息、所述选票数据、所述盲公钥和所述投票信息生成选票,将所述选票公开至所述区块链节点上。
2.根据权利要求1所述的区块链匿名投票系统,其特征在于,所述管理端包含投票模块、通讯模块、身份签名模块和盲签名算法模块;
所述投票模块用于通过盲签名算法随机生成盲私钥并保存,根据所述盲私钥获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;
所述通讯模块用于将所述交易请求发送至所述区块链节点中;
所述身份签名模块用于存储所述管理端的身份私钥和身份私钥对应公钥的身份证书;以及根据所述身份私钥对所述交易请求进行签名,并将所述身份证书加入至所述交易请求中;
所述盲签名算法模块用于配合所述投票模块提供盲签名算法支持。
3.根据权利要求2所述的区块链匿名投票系统,其特征在于,所述区块链节点包含通讯模块、身份校验模块、环签名算法模块、盲签名算法模块和数据存储模块;
所述通讯模块用于接收所述管理端或所述投票端发送来的交易请求或选票,并与其他区块链节点建立连接,将所述交易请求广播至其他区块链节点;或接收其他区块链节点广播的所述交易请求;
所述身份校验模块用于保存所述管理端提供的身份证书的对应根证书和所述投票端提供的身份证书的对应根证书,根据所述根证书对所述身份证书进行合法性验证,当验证通过后根据所述身份证书对所述交易请求中的身份公钥对所述交易请求中的签名进行验签;
所述环签名算法模块用于对选票进行环签名校验;
所述盲签名算法模块用于对选票进行盲签名校验;
所述数据存储模块用于持久化保存所述区块的处理结果。
4.根据权利要求3所述的区块链匿名投票系统,其特征在于,所述区块链节点还包含共识模块和智能合约执行模块;
所述共识模块用于根据预设的业务规则对所述交易请求进行合法性验证,当验证通过后通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;
所述智能合约执行模块用于根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理。
5.根据权利要求4所述的区块链匿名投票系统,其特征在于,所述投票端包含投票模块、通讯模块、身份签名模块、环签名算法模块和盲签名算法模块;
所述投票模块用于向所述区块链节点发送查询请求,由所述区块链节点根据所述交易请求中的投票范围确认自身的投票资格;以及通过所述盲签名算法及所述盲公钥获得所述投票端的投票者信息;根据用户输入内容和所述环私钥获得所述投票端的选票数据;根据所述投票者信息、所述选票数据、所述盲公钥和所述投票信息生成选票,将所述选票公开至所述区块链节点上;
所述通讯模块用于将所述选票发送至所述区块链节点;
所述身份签名模块用于存储所述投票端的身份私钥和身份私钥对应公钥的身份证书;以及根据投票端的身份私钥对所述投票者信息进行签名,并将所述身份证书加入至所述投票者信息中;
所述环签名算法模块用于为所述投票端提供环签名的算法支持;
所述盲签名算法模块用于通过盲签名算法为所述投票端提供盲化和脱盲的算法支持。
6.一种适用于权利要求1至5中任一项所述的区块链匿名投票系统的方法,其特征在于,所述方法包含:
所述管理端组装发起的交易请求或授权的交易请求;根据自身节点的身份私钥对所述交易请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述交易请求发送至所述区块链节点;
所述区块链节点将接收到的所述交易请求广播至其他区块链节点,或接收其他区块链节点广播的所述交易请求;通过所述管理端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理,并持久化保存所述区块的处理结果。
7.一种适用于权利要求1至5中任一项所述的区块链匿名投票系统的方法,其特征在于,所述方法包含:
所述投票端组装注册的交易请求或选举的交易请求;根据自身节点的身份私钥对所述交易请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述交易请求发送至所述区块链节点;
所述区块链节点将接收到的所述交易请求广播至其他区块链节点,或接收其他区块链节点广播的所述交易请求;通过所述投票端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,通过共识算法与其他区块链节点对所述交易请求进行共识处理,根据共识处理结果获得所述交易请求的执行顺序,将所述交易请求打包为区块;根据所述执行顺序,对所述区块进行预设的投票业务逻辑处理,并持久化保存所述区块的处理结果。
8.一种适用于权利要求1至5中任一项所述的区块链匿名投票系统的方法,其特征在于,所述方法包含:
所述管理端或所述投票端发起组装查询请求,通过自身的身份私钥对所述查询请求签名,并于所述交易请求中附上所述身份私钥对应的身份证书,将附上身份证书的所述查询请求发送至所述区块链节点;以及持久化保存所述区块链节点反馈的执行结果;
所述区块链节点通过所述管理端或所述投票端提供的身份证书的对应根证书对所述身份证书进行合法性验证,并根据所述身份证书中的身份公钥对所述交易请求中的签名进行验签;当合法性验证及所述验签均通过后,执行所述查询请求中的业务逻辑并反馈执行结果。
9.一种适用于权利要求1至5中任一项所述的区块链匿名投票系统的方法,其特征在于,所述方法包含:
所述管理端根据所述投票信息获得对应的投票主题和投票选项,根据所述投票范围获得投票者名单;通过所述盲签名算法随机生成盲私钥并持久化保存至本地,根据所述盲私钥计算获得对应的盲公钥;根据投票信息、投票范围和所述盲公钥组装交易请求,将所述交易请求发送至所述区块链节点中;
所述区块链节点对接收到的所述交易请求进行唯一性校验,当校验通过后将所述交易请求持久化保存至本地,供其他区块链查询。
10.根据权利要求8所述的方法,其特征在于,所述方法包含:
所述投票端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单及管理端的盲公钥;随机生成票码,以及通过盲签名算法随机生成盲因子并保存至本地;通过所述盲因子与管理端的盲公钥对所述票码做盲化处理获得票码密文;通过环签名算法随机生成环私钥并保存至本地,根据所述环私钥计算获得对应的环公钥;根据所述票码密文及所述环公钥生成注册申请交易请求,将所述注册申请交易请求发送至所述区块链节点;
所述区块链节点对所述注册申请交易请求进行合法性校验,当校验通过后将所述注册申请交易请求中所述票码密文和环公钥持久化保存至本地,供其他区块链查询;其中所述合法性校验包含:所述投票端是否在投票者名单内、所述票码密文和所述环公钥是否唯一。
11.根据权利要求10所述的方法,其特征在于,所述方法包含:
所述管理端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单、管理端的盲公钥和所有投票端的票码密文;通过盲密钥分别对所有投票端的票码密文进行盲签名处理获得盲签名密文;根据所述盲签名密文生成授权申请交易请求并发送至所述区块链节点;
所述区块链节点根据所述授权申请交易请求校验所有投票端是否均存在盲签名密文,当校验通过后将所述盲签名密文对应更新至本地存储的投票者信息中。
12.根据权利要求11所述的方法,其特征在于,所述方法包含:
所述投票端根据所述区块链节点反馈的执行结果更新本地存储的投票主题、投票选项、投票者名单、管理端的盲公钥和各个投票端对应的投票者信息;根据用户输入内容获得投票选项;通过盲因子对所述投票端对应的盲签名密文进行脱盲处理获得盲签名;通过所述投票端自身的环私钥和其他投票端的环公钥对所述投票选项和票码进行环签名处理获得环签名;根据所述投票选项的唯一标识、所述票码、所述盲签名和所述环签名生成选举申请交易请求并发送至所述区块链节点;
所述区块链节点根据所述管理端的盲公钥、所有投票者的环公钥对所述选举申请交易请求进行环签名和盲签名的校验,当校验通过后根据所述选举申请交易请求中的票码进行唯一性验证,当验证通过后更新本地存储的投票选项。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求6至12任一所述方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求6至12任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910666220.0A CN110391911B (zh) | 2019-07-23 | 2019-07-23 | 区块链匿名投票系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910666220.0A CN110391911B (zh) | 2019-07-23 | 2019-07-23 | 区块链匿名投票系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110391911A true CN110391911A (zh) | 2019-10-29 |
CN110391911B CN110391911B (zh) | 2022-05-17 |
Family
ID=68287120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910666220.0A Active CN110391911B (zh) | 2019-07-23 | 2019-07-23 | 区块链匿名投票系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110391911B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958253A (zh) * | 2019-12-05 | 2020-04-03 | 全链通有限公司 | 基于区块链的电子投票方法、设备及存储介质 |
CN111355719A (zh) * | 2020-02-25 | 2020-06-30 | 深圳市万物云科技有限公司 | 基于区块链技术的社区投票方法、装置、设备、存储介质 |
CN111464591A (zh) * | 2020-03-04 | 2020-07-28 | 链农(深圳)信息科技有限公司 | 一种区块链内节点间争端的处理方法及系统 |
CN111680331A (zh) * | 2020-05-28 | 2020-09-18 | 北京理工大学 | 一种基于区块链的校长信箱的管理系统及方法 |
CN111800325A (zh) * | 2020-07-30 | 2020-10-20 | 北京共识数信科技有限公司 | 一种服务器与加密机分离的环形结构的匿名投票方法 |
CN112600675A (zh) * | 2020-12-04 | 2021-04-02 | 网易(杭州)网络有限公司 | 基于群签名的电子投票方法及装置、电子设备、存储介质 |
CN112685751A (zh) * | 2020-12-25 | 2021-04-20 | 联想(北京)有限公司 | 数据处理方法、装置及电子投票系统 |
CN112784305A (zh) * | 2021-02-01 | 2021-05-11 | 杭州复杂美科技有限公司 | 加密投票方法、计算机设备和存储介质 |
CN112927414A (zh) * | 2021-01-29 | 2021-06-08 | 福建中科星泰数据科技有限公司 | 基于联盟区块链的业务公识系统及方法 |
CN112968881A (zh) * | 2021-02-01 | 2021-06-15 | 杭州复杂美科技有限公司 | 区块链匿名投票方法、计算机设备和存储介质 |
CN113127910A (zh) * | 2021-04-30 | 2021-07-16 | 复旦大学 | 基于区块链和去中心可追踪属性签名的可控匿名投票系统 |
CN113179324A (zh) * | 2021-04-29 | 2021-07-27 | 中国人民银行数字货币研究所 | 一种区块链节点及其执行的业务处理方法 |
CN113395164A (zh) * | 2021-04-22 | 2021-09-14 | 江苏大学 | 一种基于环签名和区块链的电子投票方法 |
CN113572620A (zh) * | 2021-09-27 | 2021-10-29 | 中邮消费金融有限公司 | 一种基于区块链的线上表决方法和系统 |
CN113723962A (zh) * | 2021-11-04 | 2021-11-30 | 中国信息通信研究院 | 区块链权限管理方法和区块链系统 |
CN113890751A (zh) * | 2021-09-22 | 2022-01-04 | 网易(杭州)网络有限公司 | 控制联盟链权限投票的方法、设备和可读存储介质 |
CN114333137A (zh) * | 2021-12-16 | 2022-04-12 | 复旦大学 | 基于部分盲签名与区块链的匿名和抗胁迫电子投票系统 |
CN114362987A (zh) * | 2021-08-02 | 2022-04-15 | 北京航空航天大学 | 一种基于区块链和智能合约的分布式投票系统及方法 |
CN115174092A (zh) * | 2022-05-29 | 2022-10-11 | 北京理工大学 | 一种基于理想格的区块链匿名投票技术 |
CN115412263A (zh) * | 2022-09-06 | 2022-11-29 | 西南交通大学 | 一种基于双重盲化的拜占庭容错共识方法 |
CN115459998A (zh) * | 2022-06-07 | 2022-12-09 | 赵万侠 | 基于区块链的避免异常趋势的投票系统、方法及平台 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100121765A1 (en) * | 2006-08-24 | 2010-05-13 | Deutsche Telekom Ag | Electronic online voting system |
US20140089062A1 (en) * | 2012-06-21 | 2014-03-27 | Zhuhai Zaizhou Software Technology Co., Ltd. | Voting systems and voting methods based on smart mobile communication devices |
CN106453636A (zh) * | 2016-11-22 | 2017-02-22 | 深圳银链科技有限公司 | 可信区块生成方法及系统 |
US20170109955A1 (en) * | 2015-10-20 | 2017-04-20 | Follow My Vote, Inc. | Blockchain electronic voting system and method |
CN109509287A (zh) * | 2017-09-15 | 2019-03-22 | 松下电器(美国)知识产权公司 | 电子投票系统以及控制方法 |
EP3474241A1 (en) * | 2017-10-17 | 2019-04-24 | AO Kaspersky Lab | Electronic balloting |
CN110009349A (zh) * | 2019-03-26 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 区块链中生成和验证可链接环签名的方法及装置 |
-
2019
- 2019-07-23 CN CN201910666220.0A patent/CN110391911B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100121765A1 (en) * | 2006-08-24 | 2010-05-13 | Deutsche Telekom Ag | Electronic online voting system |
US20140089062A1 (en) * | 2012-06-21 | 2014-03-27 | Zhuhai Zaizhou Software Technology Co., Ltd. | Voting systems and voting methods based on smart mobile communication devices |
US20170109955A1 (en) * | 2015-10-20 | 2017-04-20 | Follow My Vote, Inc. | Blockchain electronic voting system and method |
CN106453636A (zh) * | 2016-11-22 | 2017-02-22 | 深圳银链科技有限公司 | 可信区块生成方法及系统 |
CN109509287A (zh) * | 2017-09-15 | 2019-03-22 | 松下电器(美国)知识产权公司 | 电子投票系统以及控制方法 |
EP3474241A1 (en) * | 2017-10-17 | 2019-04-24 | AO Kaspersky Lab | Electronic balloting |
CN110009349A (zh) * | 2019-03-26 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 区块链中生成和验证可链接环签名的方法及装置 |
Non-Patent Citations (2)
Title |
---|
叶震等: "《基于环签名和盲签名的电子选举协议》", 《合肥工业大学学报(自然科学版)》 * |
董友康等: "《基于联盟区块链的董事会电子投票系统》", 《网络与信息安全学报》 * |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958253A (zh) * | 2019-12-05 | 2020-04-03 | 全链通有限公司 | 基于区块链的电子投票方法、设备及存储介质 |
CN111355719A (zh) * | 2020-02-25 | 2020-06-30 | 深圳市万物云科技有限公司 | 基于区块链技术的社区投票方法、装置、设备、存储介质 |
CN111355719B (zh) * | 2020-02-25 | 2022-02-11 | 深圳市万物云科技有限公司 | 基于区块链技术的社区投票方法、装置、设备、存储介质 |
CN111464591B (zh) * | 2020-03-04 | 2023-07-04 | 链农(深圳)信息科技有限公司 | 一种区块链内节点间争端的处理方法及系统 |
CN111464591A (zh) * | 2020-03-04 | 2020-07-28 | 链农(深圳)信息科技有限公司 | 一种区块链内节点间争端的处理方法及系统 |
CN111680331A (zh) * | 2020-05-28 | 2020-09-18 | 北京理工大学 | 一种基于区块链的校长信箱的管理系统及方法 |
CN111680331B (zh) * | 2020-05-28 | 2023-02-28 | 北京理工大学 | 一种基于区块链的校长信箱的管理系统及方法 |
CN111800325A (zh) * | 2020-07-30 | 2020-10-20 | 北京共识数信科技有限公司 | 一种服务器与加密机分离的环形结构的匿名投票方法 |
CN112600675A (zh) * | 2020-12-04 | 2021-04-02 | 网易(杭州)网络有限公司 | 基于群签名的电子投票方法及装置、电子设备、存储介质 |
CN112600675B (zh) * | 2020-12-04 | 2022-11-01 | 网易(杭州)网络有限公司 | 基于群签名的电子投票方法及装置、电子设备、存储介质 |
CN112685751B (zh) * | 2020-12-25 | 2024-04-26 | 联想(北京)有限公司 | 数据处理方法、装置及电子投票系统 |
CN112685751A (zh) * | 2020-12-25 | 2021-04-20 | 联想(北京)有限公司 | 数据处理方法、装置及电子投票系统 |
CN112927414A (zh) * | 2021-01-29 | 2021-06-08 | 福建中科星泰数据科技有限公司 | 基于联盟区块链的业务公识系统及方法 |
CN112968881A (zh) * | 2021-02-01 | 2021-06-15 | 杭州复杂美科技有限公司 | 区块链匿名投票方法、计算机设备和存储介质 |
CN112784305A (zh) * | 2021-02-01 | 2021-05-11 | 杭州复杂美科技有限公司 | 加密投票方法、计算机设备和存储介质 |
CN112968881B (zh) * | 2021-02-01 | 2022-05-24 | 杭州复杂美科技有限公司 | 区块链匿名投票方法、计算机设备和存储介质 |
CN113395164B (zh) * | 2021-04-22 | 2022-11-18 | 江苏大学 | 一种基于环签名和区块链的电子投票方法 |
CN113395164A (zh) * | 2021-04-22 | 2021-09-14 | 江苏大学 | 一种基于环签名和区块链的电子投票方法 |
CN113179324B (zh) * | 2021-04-29 | 2024-03-26 | 中国人民银行数字货币研究所 | 一种区块链节点及其执行的业务处理方法 |
CN113179324A (zh) * | 2021-04-29 | 2021-07-27 | 中国人民银行数字货币研究所 | 一种区块链节点及其执行的业务处理方法 |
CN113127910A (zh) * | 2021-04-30 | 2021-07-16 | 复旦大学 | 基于区块链和去中心可追踪属性签名的可控匿名投票系统 |
CN114362987A (zh) * | 2021-08-02 | 2022-04-15 | 北京航空航天大学 | 一种基于区块链和智能合约的分布式投票系统及方法 |
CN114362987B (zh) * | 2021-08-02 | 2023-02-28 | 北京航空航天大学 | 一种基于区块链和智能合约的分布式投票系统及方法 |
CN113890751A (zh) * | 2021-09-22 | 2022-01-04 | 网易(杭州)网络有限公司 | 控制联盟链权限投票的方法、设备和可读存储介质 |
CN113572620B (zh) * | 2021-09-27 | 2021-12-24 | 中邮消费金融有限公司 | 一种基于区块链的线上表决方法和系统 |
CN113572620A (zh) * | 2021-09-27 | 2021-10-29 | 中邮消费金融有限公司 | 一种基于区块链的线上表决方法和系统 |
CN113723962A (zh) * | 2021-11-04 | 2021-11-30 | 中国信息通信研究院 | 区块链权限管理方法和区块链系统 |
CN113723962B (zh) * | 2021-11-04 | 2022-02-22 | 中国信息通信研究院 | 区块链权限管理方法和区块链系统 |
CN114333137A (zh) * | 2021-12-16 | 2022-04-12 | 复旦大学 | 基于部分盲签名与区块链的匿名和抗胁迫电子投票系统 |
CN115174092A (zh) * | 2022-05-29 | 2022-10-11 | 北京理工大学 | 一种基于理想格的区块链匿名投票技术 |
CN115459998A (zh) * | 2022-06-07 | 2022-12-09 | 赵万侠 | 基于区块链的避免异常趋势的投票系统、方法及平台 |
CN115459998B (zh) * | 2022-06-07 | 2024-01-12 | 涟源市云马科技电子商务有限公司 | 基于区块链的避免异常趋势影响的投票系统及方法 |
CN115412263A (zh) * | 2022-09-06 | 2022-11-29 | 西南交通大学 | 一种基于双重盲化的拜占庭容错共识方法 |
CN115412263B (zh) * | 2022-09-06 | 2024-06-11 | 西南交通大学 | 一种基于双重盲化的拜占庭容错共识方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110391911B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110391911A (zh) | 区块链匿名投票系统及方法 | |
Tairi et al. | A 2 l: Anonymous atomic locks for scalability in payment channel hubs | |
Li et al. | Toward blockchain-based fair and anonymous ad dissemination in vehicular networks | |
Borge et al. | Proof-of-personhood: Redemocratizing permissionless cryptocurrencies | |
Garman et al. | Decentralized anonymous credentials | |
JP4639084B2 (ja) | セキュア認証の暗号方法および暗号装置 | |
CN109840771A (zh) | 一种基于同态加密的区块链隐私保护系统及其方法 | |
Ma et al. | Redactable blockchain in decentralized setting | |
CN109150539A (zh) | 一种基于区块链的分布式ca认证系统、方法及装置 | |
CN109313753A (zh) | 用于在私有分布式账本中提供数据隐私的系统和方法 | |
CN105284074A (zh) | 用于最小披露凭证的身份托管管理 | |
Grontas et al. | Towards everlasting privacy and efficient coercion resistance in remote electronic voting | |
CN114255034A (zh) | 一种基于区块链的可验证公平性的电子投票方法 | |
WO2019110399A1 (en) | Two-party signature device and method | |
CN115801260B (zh) | 一种不可信网络环境下区块链辅助的协作式攻防博弈方法 | |
CN101257380A (zh) | 用户实体自产生公钥证书并管理公钥证书系统和方法 | |
CN111753014A (zh) | 基于区块链的身份认证方法及装置 | |
Haenni et al. | Cast-as-intended verification in electronic elections based on oblivious transfer | |
Šimunić et al. | Verifiable computing applications in blockchain | |
Kulyk et al. | Coercion-resistant proxy voting | |
Xiong et al. | Anonymous auction protocol based on time-released encryption atop consortium blockchain | |
Zhu et al. | Anonymous voting scheme for boardroom with blockchain | |
Gurkan et al. | Community proposal: Semaphore: Zero-knowledge signaling on ethereum | |
Madathil et al. | Cryptographic oracle-based conditional payments | |
Emura et al. | Group Signatures with Message‐Dependent Opening: Formal Definitions and Constructions |
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 |