CN112968881A - 区块链匿名投票方法、计算机设备和存储介质 - Google Patents
区块链匿名投票方法、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112968881A CN112968881A CN202110138676.7A CN202110138676A CN112968881A CN 112968881 A CN112968881 A CN 112968881A CN 202110138676 A CN202110138676 A CN 202110138676A CN 112968881 A CN112968881 A CN 112968881A
- Authority
- CN
- China
- Prior art keywords
- voting
- anonymous
- submitted
- transaction
- anonymous voting
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- 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/3218—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- 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/3236—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 using cryptographic hash functions
-
- 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/42—Anonymization, e.g. involving pseudonyms
-
- 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)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种区块链匿名投票方法、计算机设备和存储介质,该方法包括:执行投票注册交易,根据具有第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存第一默克尔树;执行第一匿名投票交易:根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证匿名投票的第二账户是否具有第一地址的控制权:否,则第一匿名投票交易执行失败;根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证第二账户是否具有第一投票的投票权:否,则第一匿名投票交易执行失败;是,则将第一匿名投票交易的投票记录到合约中。本发明实现了区块链上的匿名投票。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种区块链匿名投票方法、计算机设备和存储介质。
背景技术
现有的区块链投票解决方案通常都是公开投票,原因在于,投票合约需要验证投票者是否具有投票权,而投票者在投票时所提交的用于供投票合约验证投票权的信息会记录在区块链上并向所有人公开,导致难以隐藏投票者的身份。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种实现区块链上匿名投票的区块链匿名投票方法、计算机设备和存储介质。
第一方面,本发明提供一种适用于区块链节点的区块链匿名投票方法,区块链上配置有匿名投票合约,匿名投票合约中配置有用于验证投票权限的零知识证明电路,该方法包括:
通过匿名投票合约执行投票注册交易,根据具有第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存第一默克尔树;其中,第一默克尔树用于供控制第一账户的用户端获取第一默克尔树根和相应的默克尔路径;
通过匿名投票合约执行第一匿名投票交易:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证匿名投票的第二账户是否具有第一地址的控制权:否,则第一匿名投票交易执行失败;
根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证第二账户是否具有第一投票的投票权:
否,则第一匿名投票交易执行失败;
是,则将第一匿名投票交易的投票记录到匿名投票合约中。
其中,私密提交为通过同态加密算法加密后提交的参数提交方式。
第二方面,本发明提供一种适用于用户端的区块链匿名投票方法,区块链上配置有匿名投票合约,匿名投票合约中配置有用于验证投票权限的零知识证明电路,该方法包括:
根据具有待注册的第一投票的投票权的各第一账户的第一公钥或第一地址生成投票注册交易并发送至区块链节点,以供通过匿名投票合约执行,根据各第一账户的第一公钥或第一地址生成并保存第一默克尔树。
其中,第一默克尔树用于供控制第一账户的用户端获取第一默克尔树根和相应的默克尔路径;
匿名投票合约还用于执行匿名投票交易:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证匿名投票的第二账户是否具有第一地址的控制权:否,则匿名投票交易执行失败;
根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证第二账户是否具有第一投票的投票权:
否,则匿名投票交易执行失败;
是,则将匿名投票交易的投票记录到匿名投票合约中;
私密提交为通过同态加密算法加密后提交的参数提交方式。
第三方面,本发明提供另一种适用于用户端的区块链匿名投票方法,区块链上配置有匿名投票合约,匿名投票合约中配置有用于验证投票权限的零知识证明电路,该方法包括:
获取区块链上记录的第一投票的第一默克尔树;其中,第一默克尔树由区块链节点通过匿名投票合约执行对应的投票注册交易,根据具有第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存;
根据第一默克尔树获取第一默克尔树根,以及,当前用户的投票账户所对应的第一默克尔路径;
生成包括公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一私钥、私密提交的第一公钥或第一地址的第一匿名投票交易并发送至区块链网络,以供区块链节点通过匿名投票合约执行:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证投票账户是否具有第一地址的控制权:否,则第一匿名投票交易执行失败;
根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证投票账户是否具有第一投票的投票权:
否,则第一匿名投票交易执行失败;
是,则将第一匿名投票交易的投票记录到匿名投票合约中。
其中,私密提交为通过同态加密算法加密后提交的参数提交方式。
第四方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的区块链匿名投票方法。
第五方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的区块链匿名投票方法。
本发明诸多实施例提供的区块链匿名投票方法、计算机设备和存储介质通过在合约中配置用于验证投票权限的零知识证明电路,使得合约可以将投票用户端以通过同态加密算法加密后提交的若干信息输入零知识证明电路来验证投票用户是否具有投票权,从而实现了区块链上的匿名投票;
本发明一些实施例提供的区块链匿名投票方法、计算机设备和存储介质进一步通过配置投票id来解决相同投票人群的不同投票难以区分的问题;
本发明一些实施例提供的区块链匿名投票方法、计算机设备和存储介质进一步通过在零知识证明电路中配置基于投票私钥和投票id的验证,保障了同一个私钥对于同一个投票无法重复投票。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的一种区块链匿名投票方法的流程图。
图2为图1所示方法的一种优选实施方式的流程图。
图3为本发明一实施例提供的另一种区块链匿名投票方法的流程图。
图4为本发明一实施例提供的又一种区块链匿名投票方法的流程图。
图5为本发明一实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1为本发明一实施例提供的一种区块链匿名投票方法的流程图。
如图1所示,在本实施例中,本发明提供一种适用于区块链节点的区块链匿名投票方法,区块链上配置有匿名投票合约,匿名投票合约中配置有用于验证投票权限的零知识证明电路,该方法包括:
S11:通过匿名投票合约执行投票注册交易,根据具有第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存第一默克尔树;其中,第一默克尔树用于供控制第一账户的用户端获取第一默克尔树根和相应的默克尔路径;
S13:通过匿名投票合约执行第一匿名投票交易:
S131:根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证匿名投票的第二账户是否具有第一地址的控制权:否,则第一匿名投票交易执行失败;
S133:根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证第二账户是否具有第一投票的投票权:
否,则第一匿名投票交易执行失败;
是,则执行步骤S137:将第一匿名投票交易的投票记录到匿名投票合约中。
其中,私密提交为通过同态加密算法加密后提交的参数提交方式。
具体地,以下以某公司的行政员工注册该公司A部门的优秀员工投票、A部门的各员工进行匿名投票为例,对上述方法进行示例性的阐述。
首先,A部门的各员工需要各自持有一个投票账户,例如,员工甲持有投票账户a(私钥pa—公钥Pa—地址addra)、员工乙持有投票账户b(私钥pb—公钥Pb—地址addrb)、…,等等。
行政员工的用户端获取A部门的各员工的投票账户的地址(addra、addrb、…)后,根据各地址(addra、addrb、…)生成投票注册交易tx1并发送至区块链网络。
在步骤S11中,区块链节点接收、广播、打包并通过匿名投票合约执行tx1,以tx1所指定的具有该投票的投票权的各地址(addra、addrb、…)作为第一默克尔树的叶子节点,生成并保存第一默克尔树。
以员工甲进行投票为例:
员工甲的用户端从区块链上获取该投票的第一默克尔树,获取第一默克尔树的第一默克尔树根root1,并获取甲的投票账户a的地址addra在第一默克尔树中的第一默克尔路径path1;
甲的用户端通过匿名投票合约指定的同态加密算法对投票账户a的私钥pa、投票账户a的地址addra、第一默克尔路径path1进行加密,从而生成包括公开提交的第一默克尔树根root1、私密提交的第一私钥pa、私密提交的第一地址addra以及私密提交的第一默克尔路径path1的第一匿名投票交易tx2,并通过另一账户将tx2发送至区块链网络(如果直接通过投票账户a发送,则显而易见会暴露身份)。
在步骤S13中,区块链节点接收、广播、打包并通过匿名投票合约执行tx2:
在步骤S131中,区块链节点将tx2私密提交的第一私钥pa和私密提交的第一地址addra输入匿名投票合约所配置的零知识证明电路进行验证。
具体地,该步骤所验证的是,投票者是否具有第一地址addra的控制权。因为匿名的原因,步骤S131中无法采用本领域常用的提供私钥签名、通过公钥验证签名的方式来进行验证(该验证方式显而易见会暴露身份)。因此,本发明采用了通过零知识证明电路对通过同态加密算法所加密提交的数据进行验证的方式。本领域技术人员可以理解,通过本领域常用的同态加密算法可以实现加法或乘法的同态隐藏验证:
例如,对于同态加密算法E(x)→X,有:
E(ax1+bx2)=a*E(x1)+b*E(x2);
又例如,对于同态加密算法e(X,Y)→Z,有:
e(P+R,Q)=e(P,Q)+e(R,Q);
等等。
因此,在步骤S131中,零知识证明电路可以基于同态加密算法的特性和私钥—公钥—地址的映射关系实现验证第一私钥pa是否具有第一地址addra的控制权:
否,则说明tx2的发送者无法证明其具有第一地址addra的控制权,即,tx2的发送者无法证明其是投票账户a的控制者,无论投票账户a是否有投票权,tx2的投票均无效,tx2执行失败;
是,则继续执行步骤S133,区块链节点将tx2公开提交的第一默克尔树根root1、私密提交的第一默克尔路径path1、私密提交的第一地址addra输入零知识证明电路进行验证。
具体地,本领域技术人员可以理解,如何根据不加密的默克尔树根、默克尔路径和叶子节点进行互相之间的验证,因此,本领域技术人员同样可以理解,在此基础上如何通过零知识证明电路对不加密的root1、加密的path1、加密的addra进行验证。
当步骤S133的验证失败时,说明无法证明addra具有该投票的投票权,tx2执行失败;
当步骤S133的验证成功时,说明成功验证了addra具有该投票的投票权,则继续执行步骤S137,将tx2的投票记录到匿名投票合约中。
具体地,在本申请中,匿名投票交易中的投票内容是公开的,只对投票者的身份进行匿名;在申请人同期提交的另一申请中,将详细阐述如何实现对投票内容进行可验证的加密。
其他员工投票的过程与员工甲投票的过程相同,不再一一赘述。
当匿名投票合约中记录的投票足以产生投票结果之后,既可以由任何人的任何设备生成并发送一笔投票结算交易以触发匿名投票合约进行计票结算,并在产生投票结果时将投票结果记录到区块链上;
也可以不在区块链上进行结算,而仅仅是根据匿名投票合约中记录的投票在线下或中心化平台等不同场所进行投票结算,均可实现相同的技术效果。
上述实施例以根据具有第一投票的投票权的各第一账户的地址生成第一默克尔树、匿名投票交易包括私密提交的第一地址为例,对上述方法进行了示例性的阐述;在另一实施例中,也可以配置为根据具有第一投票的投票权的各第一账户的公钥生成第一默克尔树、匿名投票交易包括私密提交的第一公钥,可实现相同的技术效果。
上述实施例以公司部门通过匿名投票评选优秀员工为例对上述方法进行示例性的阐述;在更多实施例中,上述方法可适用于任何需要进行匿名投票的场景,而不以上述实施例为限。
上述方案存在一个问题,在于,不同的投票之间以各自的默克尔树根作为区分的标识,然而当完全相同的投票者以完全相同的投票账户同时进行多项不同的投票时,会导致合约无法区分这些投票。
针对上述问题,在一优选实施例中,上述通过匿名投票合约执行投票注册交易还包括:为第一投票分配第一投票id;
上述第一匿名投票交易还包括公开提交的第一投票id。
具体地,不同投票的投票id显而易见是各不相同的,可以保障在完全相同的投票者以完全相同的投票账户同时进行多项不同的投票时,合约也可以准确地区分各项投票。
上述实施例进一步通过配置投票id来解决相同投票人群的不同投票难以区分的问题。
上述方案还存在另一个问题,在于,如果投票者对于同一个投票进行重复的恶意投票,合约无法判断该恶意投票是否重复投票。
针对上述问题,本申请进一步改进了技术方案。
图2为图1所示方法的一种优选实施方式的流程图。
如图2所示,在一优选实施例中,上述第一匿名投票交易还包括公开提交的第一哈希值,该第一哈希值为第一私钥和第一投票id的运算结果的哈希值;
步骤S13还包括:
S134:根据私密提交的第一私钥、第一投票id和零知识证明电路验证第一哈希值;以及,
S135:根据第一哈希值验证是否重复投票:是,则第一匿名投票交易执行失败。
具体地,以员工甲的用户端发送匿名投票交易tx2之后,重复发送匿名投票交易tx3为例:
在本实施例中,tx2还包括公开提交的hash1=hash(pa+voteid);
在步骤S134中,区块链节点将公开提交的hash1、公开提交的voteid、私密提交的pa输入零知识证明电路进行验证:
验证失败,则tx2执行失败;
验证成功,则继续执行步骤S135,判断匿名投票合约中是否已经记录有hash1:
是,则说明tx2是重复投票,tx2执行失败;
否,则说明tx2不是重复投票,将hash1记录到合约中,并继续执行S137。
当甲的用户端重复发送匿名投票交易tx3时,如果tx3包括错误的第一哈希值hash2,则tx3无法通过步骤S134的验证;如果tx3包括正确的第一哈希值hash1,则tx3无法通过步骤S135的验证。因此,在本实施例中,重复投票的匿名投票交易无法通过合约的验证。
上述实施例进一步通过在零知识证明电路中配置基于投票私钥和投票id的验证,保障了同一个私钥对于同一个投票无法重复投票。
图3为本发明一实施例提供的另一种区块链匿名投票方法的流程图。图3所示方法可配合图1-2所示的方法执行。
如图3所示,在本实施例中,本发明还提供一种适用于用户端的区块链匿名投票方法,区块链上配置有匿名投票合约,匿名投票合约中配置有用于验证投票权限的零知识证明电路,该方法包括:
S21:根据具有待注册的第一投票的投票权的各第一账户的第一公钥或第一地址生成投票注册交易并发送至区块链节点,以供通过匿名投票合约执行,根据各第一账户的第一公钥或第一地址生成并保存第一默克尔树。
其中,第一默克尔树用于供控制第一账户的用户端获取第一默克尔树根和相应的默克尔路径;
匿名投票合约还用于执行匿名投票交易:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证匿名投票的第二账户是否具有第一地址的控制权:否,则匿名投票交易执行失败;
根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证第二账户是否具有第一投票的投票权:
否,则匿名投票交易执行失败;
是,则将匿名投票交易的投票记录到匿名投票合约中;
私密提交为通过同态加密算法加密后提交的参数提交方式。
在一优选实施例中,匿名投票合约还用于在执行投票注册交易时为第一投票分配第一投票id;匿名投票交易还包括公开提交的第一投票id。
进一步优选地,匿名投票交易还包括公开提交的第一哈希值,该第一哈希值为第一私钥和第一投票id的运算结果的哈希值。
匿名投票合约还用于在执行匿名投票交易时根据私密提交的第一私钥、第一投票id和零知识证明电路验证第一哈希值;以及,根据第一哈希值验证是否重复投票:是,则匿名投票交易执行失败。
图3所示各方法的匿名投票原理可参照图1-2所示的方法,此处不再赘述。
图4为本发明一实施例提供的又一种区块链匿名投票方法的流程图。图4所示的方法可配合图1-2、图3所示的方法执行。
如图4所示,在本实施例中,本发明还提供另一种适用于用户端的区块链匿名投票方法,区块链上配置有匿名投票合约,匿名投票合约中配置有用于验证投票权限的零知识证明电路,该方法包括:
S31:获取区块链上记录的第一投票的第一默克尔树;其中,第一默克尔树由区块链节点通过匿名投票合约执行对应的投票注册交易,根据具有第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存;
S33:根据第一默克尔树获取第一默克尔树根,以及,当前用户的投票账户所对应的第一默克尔路径;
S35:生成包括公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一私钥、私密提交的第一公钥或第一地址的第一匿名投票交易并发送至区块链网络,以供区块链节点通过匿名投票合约执行:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,零知识证明电路验证投票账户是否具有第一地址的控制权:否,则第一匿名投票交易执行失败;
根据公开提交的第一默克尔树根、私密提交的第一默克尔路径、私密提交的第一公钥或第一地址,以及,零知识证明电路验证投票账户是否具有第一投票的投票权:
否,则第一匿名投票交易执行失败;
是,则将第一匿名投票交易的投票记录到匿名投票合约中。
其中,私密提交为通过同态加密算法加密后提交的参数提交方式。
在一优选实施例中,匿名投票合约还用于在执行投票注册交易时为第一投票分配第一投票id;匿名投票交易还包括公开提交的第一投票id。
进一步优选地,匿名投票交易还包括公开提交的第一哈希值,该第一哈希值为第一私钥和第一投票id的运算结果的哈希值。
匿名投票合约还用于在执行匿名投票交易时根据私密提交的第一私钥、第一投票id和零知识证明电路验证第一哈希值;以及,根据第一哈希值验证是否重复投票:是,则匿名投票交易执行失败。
图4所示各方法的匿名投票原理同样可参照图1-2所示的方法,此处不再赘述。
图5为本发明一实施例提供的一种设备的结构示意图。
如图5所示,作为另一方面,本申请还提供了一种设备500,包括一个或多个中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有设备500操作所需的各种程序和数据。CPU501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上述任一实施例描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行上述任一方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请提供的方法。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (11)
1.一种区块链匿名投票方法,其特征在于,区块链上配置有匿名投票合约,所述匿名投票合约中配置有用于验证投票权限的零知识证明电路,所述方法适用于区块链节点,所述方法包括:
通过所述匿名投票合约执行投票注册交易,根据具有第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存第一默克尔树;其中,所述第一默克尔树用于供控制所述第一账户的用户端获取第一默克尔树根和相应的默克尔路径;
通过所述匿名投票合约执行第一匿名投票交易:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,所述零知识证明电路验证匿名投票的第二账户是否具有所述第一地址的控制权:否,则所述第一匿名投票交易执行失败;
根据公开提交的所述第一默克尔树根、私密提交的第一默克尔路径、所述私密提交的第一公钥或第一地址,以及,所述零知识证明电路验证所述第二账户是否具有所述第一投票的投票权:
否,则所述第一匿名投票交易执行失败;
是,则将所述第一匿名投票交易的投票记录到所述匿名投票合约中;
其中,私密提交为通过同态加密算法加密后提交的参数提交方式。
2.根据权利要求1所述的方法,其特征在于,所述通过所述匿名投票合约执行投票注册交易还包括:为所述第一投票分配第一投票id;
所述第一匿名投票交易还包括公开提交的所述第一投票id。
3.根据权利要求2所述的方法,其特征在于,所述第一匿名投票交易还包括公开提交的第一哈希值,所述第一哈希值为所述第一私钥和所述第一投票id的运算结果的哈希值;
所述通过所述匿名投票合约执行第一匿名投票交易还包括:
根据私密提交的第一私钥、所述第一投票id和所述零知识证明电路验证所述第一哈希值;以及,
根据所述第一哈希值验证是否重复投票:是,则所述第一匿名投票交易执行失败。
4.一种区块链匿名投票方法,其特征在于,区块链上配置有匿名投票合约,所述匿名投票合约中配置有用于验证投票权限的零知识证明电路,所述方法适用于用户端,所述方法包括:
根据具有待注册的第一投票的投票权的各第一账户的第一公钥或第一地址生成投票注册交易并发送至区块链节点,以供通过所述匿名投票合约执行,根据各所述第一账户的第一公钥或第一地址生成并保存第一默克尔树;
其中,所述第一默克尔树用于供控制所述第一账户的用户端获取第一默克尔树根和相应的默克尔路径;
所述匿名投票合约还用于执行匿名投票交易:
根据私密提交的第一私钥、私密提交的第一公钥或第一地址,以及,所述零知识证明电路验证匿名投票的第二账户是否具有所述第一地址的控制权:否,则所述匿名投票交易执行失败;
根据公开提交的所述第一默克尔树根、私密提交的第一默克尔路径、所述私密提交的第一公钥或第一地址,以及,所述零知识证明电路验证所述第二账户是否具有所述第一投票的投票权:
否,则所述匿名投票交易执行失败;
是,则将所述匿名投票交易的投票记录到所述匿名投票合约中;
私密提交为通过同态加密算法加密后提交的参数提交方式。
5.根据权利要求4所述的方法,其特征在于,所述匿名投票合约还用于在执行投票注册交易时为所述第一投票分配第一投票id;
所述匿名投票交易还包括公开提交的所述第一投票id。
6.根据权利要求5所述的方法,其特征在于,所述匿名投票交易还包括公开提交的第一哈希值,所述第一哈希值为所述第一私钥和所述第一投票id的运算结果的哈希值;
所述匿名投票合约还用于在执行匿名投票交易时根据私密提交的第一私钥、所述第一投票id和所述零知识证明电路验证所述第一哈希值;以及,
根据所述第一哈希值验证是否重复投票:是,则所述匿名投票交易执行失败。
7.一种区块链匿名投票方法,其特征在于,区块链上配置有匿名投票合约,所述匿名投票合约中配置有用于验证投票权限的零知识证明电路,所述方法适用于用户端,所述方法包括:
获取区块链上记录的第一投票的第一默克尔树;其中,所述第一默克尔树由区块链节点通过所述匿名投票合约执行对应的投票注册交易,根据具有所述第一投票的投票权的各第一账户的第一公钥或第一地址生成并保存;
根据所述第一默克尔树获取第一默克尔树根,以及,当前用户的投票账户所对应的第一默克尔路径;
生成包括公开提交的所述第一默克尔树根、私密提交的所述第一默克尔路径、私密提交的第一私钥、私密提交的第一公钥或第一地址的第一匿名投票交易并发送至区块链网络,以供区块链节点通过所述匿名投票合约执行:
根据所述私密提交的第一私钥、所述私密提交的第一公钥或第一地址,以及,所述零知识证明电路验证所述投票账户是否具有所述第一地址的控制权:否,则所述第一匿名投票交易执行失败;
根据所述公开提交的所述第一默克尔树根、所述私密提交的第一默克尔路径、所述私密提交的第一公钥或第一地址,以及,所述零知识证明电路验证所述投票账户是否具有所述第一投票的投票权:
否,则所述第一匿名投票交易执行失败;
是,则将所述第一匿名投票交易的投票记录到所述匿名投票合约中;
其中,私密提交为通过同态加密算法加密后提交的参数提交方式。
8.根据权利要求7所述的方法,其特征在于,所述匿名投票合约还用于在执行投票注册交易时为所述第一投票分配第一投票id;
所述匿名投票交易还包括公开提交的所述第一投票id。
9.根据权利要求8所述的方法,其特征在于,所述第一匿名投票交易还包括公开提交的第一哈希值,所述第一哈希值为所述第一私钥和所述第一投票id的运算结果的哈希值;
所述匿名投票合约还用于在执行第一匿名投票交易时根据私密提交的第一私钥、所述第一投票id和所述零知识证明电路验证所述第一哈希值;以及,
根据所述第一哈希值验证是否重复投票:是,则所述第一匿名投票交易执行失败。
10.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-9中任一项所述的方法。
11.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110138676.7A CN112968881B (zh) | 2021-02-01 | 2021-02-01 | 区块链匿名投票方法、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110138676.7A CN112968881B (zh) | 2021-02-01 | 2021-02-01 | 区块链匿名投票方法、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112968881A true CN112968881A (zh) | 2021-06-15 |
CN112968881B CN112968881B (zh) | 2022-05-24 |
Family
ID=76272989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110138676.7A Active CN112968881B (zh) | 2021-02-01 | 2021-02-01 | 区块链匿名投票方法、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112968881B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592475A (zh) * | 2021-08-02 | 2021-11-02 | 杭州复杂美科技有限公司 | 跨链资产转移方法、计算机设备和存储介质 |
CN113627910A (zh) * | 2021-09-03 | 2021-11-09 | 杭州复杂美科技有限公司 | 一种区块链匿名红包发送方法、设备及储存介质 |
CN113689296A (zh) * | 2021-08-30 | 2021-11-23 | 北京泛融科技有限公司 | 一种异步可信计算的合约调度方法、装置和电子设备 |
CN113746638A (zh) * | 2021-09-03 | 2021-12-03 | 杭州复杂美科技有限公司 | Nft存储方法、nft还原方法、计算机设备和存储介质 |
CN113793146A (zh) * | 2021-08-02 | 2021-12-14 | 杭州复杂美科技有限公司 | 一种平行链同步交易的验证方法、设备及储存介质 |
CN113888171A (zh) * | 2021-11-02 | 2022-01-04 | 杭州复杂美科技有限公司 | 一种隐私保护的手机归还激励方法、设备及储存介质 |
CN114615083A (zh) * | 2022-04-10 | 2022-06-10 | 杭州复杂美科技有限公司 | Nft半隐私交易方法、计算机设备和存储介质 |
WO2022161108A1 (zh) * | 2021-02-01 | 2022-08-04 | 杭州复杂美科技有限公司 | 一种匿名多重签名方法、计算机设备和存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101837170B1 (ko) * | 2016-12-29 | 2018-04-19 | 주식회사 코인플러그 | 영지식 증명 알고리즘을 사용하여 블록체인 기반 비밀 전자 투표 서비스를 제공하기 위한 방법, 및 이를 이용한 투표 코인 발행 서버, 투표 토큰 분배 서버 및 투표 지원 서버 |
CN109785494A (zh) * | 2018-12-21 | 2019-05-21 | 暨南大学 | 基于区块链的可追踪的匿名电子投票方法 |
KR20190076535A (ko) * | 2017-12-22 | 2019-07-02 | 충남대학교산학협력단 | 블록체인을 이용한 익명 투표 시스템 및 그 방법 |
CN110391911A (zh) * | 2019-07-23 | 2019-10-29 | 中国工商银行股份有限公司 | 区块链匿名投票系统及方法 |
CN110427772A (zh) * | 2019-06-27 | 2019-11-08 | 布比(北京)网络技术有限公司 | 一种基于区块链的隐私保护电子投票方法及系统 |
CN110458995A (zh) * | 2019-09-12 | 2019-11-15 | 北京笔新互联网科技有限公司 | 基于可信执行环境的匿名投票系统和投票方法 |
CN110602077A (zh) * | 2019-09-03 | 2019-12-20 | 成都信息工程大学 | 一种基于信任评估的量子区块链网络匿名选举方法及系统 |
CN110855443A (zh) * | 2019-10-29 | 2020-02-28 | 上海唯链信息科技有限公司 | 一种基于区块链和零知识证明的投票方法及装置 |
CN111353827A (zh) * | 2020-03-13 | 2020-06-30 | 杭州复杂美科技有限公司 | 区块链投票方法、设备和存储介质 |
CN111882743A (zh) * | 2020-07-23 | 2020-11-03 | 浙江永旗区块链科技有限公司 | 匿名投票统计方法及系统 |
CN112053155A (zh) * | 2020-09-07 | 2020-12-08 | 杭州复杂美科技有限公司 | 社群决策方法、设备和存储介质 |
CN112291062A (zh) * | 2020-10-28 | 2021-01-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的投票方法及装置 |
-
2021
- 2021-02-01 CN CN202110138676.7A patent/CN112968881B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101837170B1 (ko) * | 2016-12-29 | 2018-04-19 | 주식회사 코인플러그 | 영지식 증명 알고리즘을 사용하여 블록체인 기반 비밀 전자 투표 서비스를 제공하기 위한 방법, 및 이를 이용한 투표 코인 발행 서버, 투표 토큰 분배 서버 및 투표 지원 서버 |
KR20190076535A (ko) * | 2017-12-22 | 2019-07-02 | 충남대학교산학협력단 | 블록체인을 이용한 익명 투표 시스템 및 그 방법 |
CN109785494A (zh) * | 2018-12-21 | 2019-05-21 | 暨南大学 | 基于区块链的可追踪的匿名电子投票方法 |
CN110427772A (zh) * | 2019-06-27 | 2019-11-08 | 布比(北京)网络技术有限公司 | 一种基于区块链的隐私保护电子投票方法及系统 |
CN110391911A (zh) * | 2019-07-23 | 2019-10-29 | 中国工商银行股份有限公司 | 区块链匿名投票系统及方法 |
CN110602077A (zh) * | 2019-09-03 | 2019-12-20 | 成都信息工程大学 | 一种基于信任评估的量子区块链网络匿名选举方法及系统 |
CN110458995A (zh) * | 2019-09-12 | 2019-11-15 | 北京笔新互联网科技有限公司 | 基于可信执行环境的匿名投票系统和投票方法 |
CN110855443A (zh) * | 2019-10-29 | 2020-02-28 | 上海唯链信息科技有限公司 | 一种基于区块链和零知识证明的投票方法及装置 |
CN111353827A (zh) * | 2020-03-13 | 2020-06-30 | 杭州复杂美科技有限公司 | 区块链投票方法、设备和存储介质 |
CN111882743A (zh) * | 2020-07-23 | 2020-11-03 | 浙江永旗区块链科技有限公司 | 匿名投票统计方法及系统 |
CN112053155A (zh) * | 2020-09-07 | 2020-12-08 | 杭州复杂美科技有限公司 | 社群决策方法、设备和存储介质 |
CN112291062A (zh) * | 2020-10-28 | 2021-01-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的投票方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022161108A1 (zh) * | 2021-02-01 | 2022-08-04 | 杭州复杂美科技有限公司 | 一种匿名多重签名方法、计算机设备和存储介质 |
CN113592475A (zh) * | 2021-08-02 | 2021-11-02 | 杭州复杂美科技有限公司 | 跨链资产转移方法、计算机设备和存储介质 |
CN113793146A (zh) * | 2021-08-02 | 2021-12-14 | 杭州复杂美科技有限公司 | 一种平行链同步交易的验证方法、设备及储存介质 |
CN113592475B (zh) * | 2021-08-02 | 2023-05-30 | 杭州复杂美科技有限公司 | 跨链资产转移方法、计算机设备和存储介质 |
CN113689296A (zh) * | 2021-08-30 | 2021-11-23 | 北京泛融科技有限公司 | 一种异步可信计算的合约调度方法、装置和电子设备 |
CN113689296B (zh) * | 2021-08-30 | 2023-11-17 | 北京泛融科技有限公司 | 一种异步可信计算的合约调度方法、装置和电子设备 |
CN113627910A (zh) * | 2021-09-03 | 2021-11-09 | 杭州复杂美科技有限公司 | 一种区块链匿名红包发送方法、设备及储存介质 |
CN113746638A (zh) * | 2021-09-03 | 2021-12-03 | 杭州复杂美科技有限公司 | Nft存储方法、nft还原方法、计算机设备和存储介质 |
CN113746638B (zh) * | 2021-09-03 | 2023-04-07 | 杭州复杂美科技有限公司 | Nft存储方法、nft还原方法、计算机设备和存储介质 |
CN113888171A (zh) * | 2021-11-02 | 2022-01-04 | 杭州复杂美科技有限公司 | 一种隐私保护的手机归还激励方法、设备及储存介质 |
CN114615083A (zh) * | 2022-04-10 | 2022-06-10 | 杭州复杂美科技有限公司 | Nft半隐私交易方法、计算机设备和存储介质 |
CN114615083B (zh) * | 2022-04-10 | 2024-02-06 | 杭州复杂美科技有限公司 | Nft半隐私交易方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112968881B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112968881B (zh) | 区块链匿名投票方法、计算机设备和存储介质 | |
CN111989893B (zh) | 用于生成和链接零知识证明的方法、系统和计算机可读装置 | |
CN110224837B (zh) | 基于分布式身份标识的零知识证明方法及终端 | |
US20240152913A1 (en) | Method and system for secure data record distribution using a blockchain | |
CN110490305B (zh) | 基于区块链网络的机器学习模型处理方法及节点 | |
CN110990871B (zh) | 基于人工智能的机器学习模型训练方法、预测方法及装置 | |
US20200311678A1 (en) | Smart contract execution using distributed coordination | |
Yahalom et al. | Trust relationships in secure systems-a distributed authentication perspective | |
JP2019160312A (ja) | ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム | |
JP7361103B2 (ja) | 演算および信用できる確認のための分散型プラットフォーム | |
EP3540628A1 (en) | Mechanism for efficient validation of finality proof in lightweight distributed ledger clients | |
CN110073633A (zh) | 使用同态加密的区块链数据保护 | |
CN110728494B (zh) | 不动产业务的办理方法、不动产权信息系统及装置 | |
US20090327141A1 (en) | Highly efficient secrecy-preserving proofs of correctness of computation | |
WO2022161108A1 (zh) | 一种匿名多重签名方法、计算机设备和存储介质 | |
CN110417790A (zh) | 区块链实名制排队系统及方法 | |
US20240137212A1 (en) | Computer-implemented systems and methods for an accumulator-based protocol for the distribution of tasks across a computer network | |
CN110879827A (zh) | 一种基于区块链网络的信息处理方法及设备 | |
CN109104419A (zh) | 一种区块链账号的生成方法及系统 | |
WO2022193789A1 (zh) | 匿名多重签名方法、计算机设备和存储介质 | |
CN114024723B (zh) | 基于esop系统的线上签署方法及装置、设备、介质 | |
Baniata et al. | Prifob: a privacy-aware fog-enhanced blockchain-based system for global accreditation and credential verification | |
Engelmann et al. | SwapCT: Swap confidential transactions for privacy-preserving multi-token exchanges | |
CN112734421A (zh) | 基于三方多签和可信签名交易的资产托管清算方法及系统 | |
CN113112269B (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 |