CN108768607B - 一种基于区块链的投票方法、装置、设备及介质 - Google Patents
一种基于区块链的投票方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN108768607B CN108768607B CN201810455285.6A CN201810455285A CN108768607B CN 108768607 B CN108768607 B CN 108768607B CN 201810455285 A CN201810455285 A CN 201810455285A CN 108768607 B CN108768607 B CN 108768607B
- Authority
- CN
- China
- Prior art keywords
- voting
- block chain
- node
- value
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于区块链的投票方法、装置、设备及介质,该方法的步骤包括:获取各投票节点中表征投票意图的投票值;根据计票节点由同态加密算法产生的同态公钥,对各投票值进行加密以生成加密值;将各加密值传输至运行有区块链智能合约的共识节点,并控制共识节点对各加密值进行求和运算,以获得加密投票结果;控制计票节点通过同态加密算法产生的同态私钥,对加密投票结果进行解密得到原始投票结果,并通过区块链智能合约将原始投票结果记录于区块链中,以用于向区块链网络中的各节点公示。本方法确保了计票过程的公正性以及整体的投票效率。此外,本发明还提供一种基于区块链的投票装置、设备及介质,有益效果同上所述。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及一种基于区块链的投票方法、装置、设备及介质。
背景技术
当前的电子投票(e-voting)系统往往是基于盲签名、环签名的中心化系统。在投票过程中投票节点或通过与计票节点进行交互产生投票的盲签名,或通过其它投票节点的公钥生成投票的环签名,以实现匿名投票,最终投票节点将盲签名或环签名发送给计票节点进行票数统计并将结果进行公示。
由于当前的电子投票系统中,由于计票节点的计票过程不公开,因此也难以确保计票节点在计票时的公正性。另外,当采用基于环签名技术实现投票时,每个投票节点都需要分别与其它投票节点进行交互以生成自身的环签名,因此当投票节点的数量庞大时,各投票节点生成环签名的过程复杂,计算量大,难以保证整体的投票效率,会对电子投票系统的可用性造成影响。
由此可见,提供一种基于区块链的投票方法,以确保计票过程的公正性以及整体的投票效率,是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种基于区块链的投票方法、装置、设备及介质,以确保计票过程的公正性以及整体的投票效率。
为解决上述技术问题,本发明提供一种基于区块链的投票方法,包括:
获取各投票节点中表征投票意图的投票值;
根据计票节点由同态加密算法产生的同态公钥,对各投票值进行加密以生成加密值;
将各加密值传输至运行有区块链智能合约的共识节点,并控制共识节点对各加密值进行求和运算,以获得加密投票结果;
控制计票节点通过同态加密算法产生的同态私钥,对加密投票结果进行解密得到原始投票结果,并通过区块链智能合约将原始投票结果记录于区块链中,以用于向区块链网络中的各节点公示。
优选的,在获取各投票节点中表征投票意图的投票值后,该方法进一步包括:
控制各投票节点均通过预设的摘要算法及签名私钥对自身中包含有投票值的投票信息进行摘要签名,得到签名数据;
通过区块链智能合约将各签名数据记录至区块链中。
优选的,摘要算法具体为SHA256摘要算法或SM3摘要算法,签名私钥具体通过ECDSA算法或SM2算法或SM9算法生成。
优选的,同态加密算法具体为EC-ElGamal同态加密算法。
优选的,EC-ElGamal同态加密算法具体为EC-ElGamal加法同态加密算法。
优选的,投票值的取值包括0和1;其中,当投票值为0时表征投票意图为反对,当投票值为1时表征投票意图为赞成。
优选的,投票节点具体为移动终端。
此外,本发明还提供一种基于区块链的投票装置,包括:
获取模块,用于获取各投票节点中表征投票意图的投票值;
加密模块,用于根据计票节点由同态加密算法产生的同态公钥,对各投票值进行加密以生成加密值;
传输运算模块,用于将各加密值传输至运行有区块链智能合约的共识节点,并控制共识节点对各加密值进行求和运算,以获得加密投票结果;
解密模块,用于控制计票节点通过同态加密算法产生的同态私钥,对加密投票结果进行解密得到原始投票结果,并通过区块链智能合约将原始投票结果记录于区块链中,以用于向区块链网络中的各节点公示。
此外,本发明还提供一种基于区块链的投票设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的基于区块链的投票方法的步骤。
此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于区块链的投票方法的步骤。
本发明所提供的基于区块链的投票方法,获取各个投票节点的投票值,进而采用计票节点由同态加密算法产生的同态公钥将各个投票值加密为加密值,并传输至运行有区块链智能合约的共识节点,通过共识节点对各加密值进行求和运算生成加密投票结果,进而利用计票节点获取共识节点的加密投票结果并采用同态私钥对其进行解密得到原始投票结果,最终将原始投票结果通过区块链智能合约记录于区块链中,以向区块链网络中的各节点公示。本方法采用同态加密算法,保证对加密值进行运算后解密所得的结果与对投票值直接进行相同运算的结果相同,进而可以以加密值的形式直接进行求和运算,保证了运算的安全性。另外,由于共识节点运行有区块链智能合约,因此共识节点被区块链网络中的其它节点所信任,进而确保了计票过程的公正性;并且在本方法中,各投票节点均采用同态加密算法对投票值进行相应处理,并且由于同态加密算法的执行内容相对简单,计算量小,因此相对确保了整体的投票效率。此外,本发明还提供一种基于区块链的投票装置、设备及介质,有益效果同上所述。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于区块链的投票方法的流程图;
图2为本发明实施例提供的另一种基于区块链的投票方法的流程图;
图3为基于区块链的投票方法的流程时序图;
图4为本发明实施例提供的一种基于区块链的投票装置结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种基于区块链的投票方法,以确保计票过程的公正性以及整体的投票效率。本发明的另一核心是提供一种基于区块链的投票装置及介质。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
实施利一
图1为本发明实施例提供的一种基于区块链的投票方法的流程图。请参考图1,基于区块链的投票方法的具体步骤包括:
步骤S10:获取各投票节点中表征投票意图的投票值。
需要说明的是,投票节点应为运行在区块链网络中的节点,以能够执行区块链机制下的相关操作。本步骤中的投票节点的数量往往为多个,具体数量应根据实际情况而设定,在此不做具体限定。另外,每个投票节点通过投票值表征相应的投票意图,并且投票值与投票意图之间的对应关系应根据实际情况而设定,例如可以将投票值的取值定位0或1,当投票值为0时,表征投票意图为“反对”;当投票值为1时,表征投票意图为“赞成”。上述例子仅为说明投票值与投票意图之间存在对应关系,并不作为对投票值取值的限定。
步骤S11:根据计票节点由同态加密算法产生的同态公钥,对各投票值进行加密以生成加密值。
需要说明的是,同态加密是基于数学难题的计算复杂性理论的密码学技术,对经过同态加密的数据进行处理得到一个输出,将这个输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。另外,执行本步骤的前提条件是计票节点根据同态加密算法生成同态密钥(包括公钥及私钥),进而计票节点需要公开同态公钥以供计票节点以外的节点使用,并且自身保留同态私钥。本步骤通过计票节点所公开的同态公钥对各投票节点产生的投票值进行加密而生成加密值,进而通过使用加密值参与后续的执行步骤能够保证投票节点的具体投票内容不被泄露,提高了投票的隐秘性。此外,对投票值进行加密的执行主体可以是各投票节点本身,也可以是投票节点以外的节点,如共识节点,在此不做具体限定。另外,本步骤中所指的同态加密算法,是对于加法同态加密算法以及乘法同态加密算法的统称,并且上述由于乘法与加法之间存在转化关系,因此上述两种计算类型的同态加密算法均能够实现本步骤中对投票值的加密以及后续步骤中对加密值的求和运算。
步骤S12:将各加密值传输至运行有区块链智能合约的共识节点,并控制共识节点对各加密值进行求和运算,以获得加密投票结果。
本步骤中所指的共识节点是执行有区块链智能合约的节点,是被区块链网络中所有节点所信任的工作节点,因此通过控制共识节点对加密值进行求和运算保证了运算的公正性。需要说明的是,在实际情况下,共识节点的数量通常为多个,各共识节点之间遵循相同的区块链智能合约,区块链以分布式的形式被记录在各个共识节点中,进而通过各共识节点中的区块能够还原当前区块链网络中完整的区块链。
步骤S13:控制计票节点通过同态加密算法产生的同态私钥,对加密投票结果进行解密得到原始投票结果,并通过区块链智能合约将原始投票结果记录于区块链中,以用于向区块链网络中的各节点公示。
可以理解的是,由于计票节点在自身中保留预先生成的同态私钥,因此本步骤需要控制计票节点通过同态私钥对加密数据进行解密,进而得到原始投票结果。由于采用同态加密算法对于投票值进行的加密及后续解密,因此能够保证所得到的原始投票结果的正确性。在将原始投票结果记录于区块链后,区块链机制下的各节点均能够通过共识节点获取到原始投票结果。需要说明的是,通过区块链智能合约将数据记录于区块链,是本领域技术人员公知的技术手段,并且本方法的重点是采用同态加密算法在区块链机制下实现投票操作,不在于如何将原始投票结果记录在区块链中,故不在此做相关内容的赘述。
本发明所提供的基于区块链的投票方法,获取各个投票节点的投票值,进而采用计票节点由同态加密算法产生的同态公钥将各个投票值加密为加密值,并传输至运行有区块链智能合约的共识节点,通过共识节点对各加密值进行求和运算生成加密投票结果,进而利用计票节点获取共识节点的加密投票结果并采用同态私钥对其进行解密得到原始投票结果,最终将原始投票结果通过区块链智能合约记录于区块链中,以向区块链网络中的各节点公示。本方法采用同态加密算法,保证对加密值进行运算后解密所得的结果与对投票值直接进行相同运算的结果相同,进而可以以加密值的形式直接进行求和运算,保证了运算的安全性。另外,由于共识节点运行有区块链智能合约,因此共识节点被区块链网络中的其它节点所信任,进而确保了计票过程的公正性;并且在本方法中,各投票节点均采用同态加密算法对投票值进行相应处理,并且由于同态加密算法的执行内容相对简单,计算量小,因此相对确保了整体的投票效率。
实施例二
在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。
图2为本发明实施例提供的另一种基于区块链的投票方法的流程图。图2中步骤S10-S13与图1相同,在此不再赘述。
如图2所示,作为一种优选的实施方式,在获取各投票节点中表征投票意图的投票值后,该方法进一步包括:
步骤S20:控制各投票节点均通过预设的摘要算法及签名私钥对自身中包含有投票值的投票信息进行摘要签名,得到签名数据。
步骤S21:通过区块链智能合约将各签名数据记录至区块链中。
为了避免出现投票节点出现重复投票或者不投票的情况,可以通过控制各投票节点对自身中包含有投票值的投票信息进行摘要签名以得到签名数据,由于投票节点是采用表征自身身份的签名私钥生成的签名数据,因此各签名数据均能够对应唯一的投票节点。将各签名数据记录至区块链后,区块链机制下的所有节点均能够根据签名数据来验证各投票节点是否正常投票,相对避免投票节点出现重复投票或未投票的情况,进而保证投票结果的准确性。另外,通过摘要算法对数据进行信息摘要以及通过签名私钥进行摘要签名均为本领域技术人员所知的技术手段,在此不做赘述,对于具体选取的摘要算法以及签名私钥的具体类型,应根据具体使用情况而定,在此不做具体限定。
在上述实施方式的基础上,作为一种优选的实施方式,摘要算法具体为SHA256摘要算法或SM3摘要算法,签名私钥具体通过ECDSA算法或SM2算法或SM9算法生成。
需要说明的是,SHA(安全散列算法)是一个密码散列函数家族,是FIPS所认证的安全散列算法,能计算出一个数字信息所对应的,长度固定的字符串,即消息摘要,而SHA256摘要算法是SHA中相对较为常用的算法,具有较高的可靠性。SM3、SM2以及SM9算法均属于国家密码管理局编制的商用算法,用于密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求;另外,ECDSA算法的密钥尺寸小,加密解密速度快,对于存储空间占用更小,因此具有更高的可用性。
此外,作为一种优选的实施方式,同态加密算法具体为EC-ElGamal同态加密算法。
EC-ElGamal同态加密算法是当前相对主流的同态算法,具有较高的可靠性,通过EC-ElGamal同态加密算法,对投票值进行加密及运算,能够相对保证加密值的安全性以及运算结果的可靠性。
具体的EC-ElGamal同态加密算法的执行包括如下步骤:
1、参数生成:E是有限域GF(p)上的一条椭圆曲线,n是曲线E的阶,G是曲线E的基点。
2、密钥产生:随机选择一个整数x∈GF(p)作为私钥,计算公钥Y=xG。
3、加密:输入公钥Y和明文m。
选择随机数k∈[1,n-1],并计算R=kG;
计算S=m+kY;
输出密文(R,S)。
4、解密:输入私钥x和密文(R,S)。
计算m=S-xR;
输出明文m。
下面,以表达式的形式表征基于EC-ElGamal同态加密算法的加法同态运算:
D(E(m1)+E(m2))=D((R1,S1)+(R2,S2))=D((k1G,m1+k1Y)+(k2G,m2+k2Y))
=D((k1G+k2G,m1+m2+k1Y+k2Y))=m1+m2+(k1+k2)Y-x(k1+k2)G=m1+m2。
其中,D表征对加密后数据的加法同态运算和;m1表征第一明文;m2表征第二明文;k1表征第一随机数;k2表征第二随机数。
此外,同态加密算法还可以是Paillier同态算法,用户可以根据实际需求进行选取。
此外,作为一种优选的实施方式,EC-ElGamal同态加密算法具体为EC-ElGamal加法同态加密算法。
可以理解的是,由于在计算机中进行加法运算的复杂性相较于乘法运算更小,因此采用EC-ElGamal加法同态加密算法对投票值进行加密以及求和运算的计算量更小,进一步提高了运算效率。
此外,作为一种优选的实施方式,投票值的取值包括0和1。
其中,当投票值为0时表征投票意图为反对,当投票值为1时表征投票意图为赞成。
投票值的取值包括1与0,能够更加直观的表征投票的意图,并且原始投票结果能够直接与赞成的投票节点数量相对应,用户能够根据原始投票结果更加直观高效的了解投票节点的投票情况。
投票意图与投票值之间的关系参见下表:
投票意图 | 赞成 | 反对 |
投票值 | 1 | 0 |
更进一步的,考虑到投票节点可以具有弃权投票的权利,投票意图还可以包括“弃权”。在此情况下,投票意图与投票值之间的关系如下表所示:
投票意图 | 赞成 | 反对 | 弃权 |
投票值 | 1 | 0 | 空值 |
但是需要强调的是,由于投票意图为“弃权”时的投票值为空值,因此在进行同态求和运算时,空值与“0”值所产生的运算效果相同。更进一步的,用户可以通过判断投票值为0值或空值,统计投票意图为“反对”及“弃权”的投票节点的数量。
此外,作为一种优选的实施方式,投票节点具体为移动终端。
考虑到由于移动终端具有很强的便携性,因此能够在多种场景下完成投票。另外,移动终端的成本较低,用户基数较大,因此通过移动终端可以实现大规模的投票,并且实现投票所需的整体成本较低。
实施例三
下面提供一种在具体应用场景下的实施例:
为了便于理解,请参考图3所示的基于区块链的投票方法的流程时序图。
本应用场景实施例包括以下步骤:
1、计票节点生成一对EC-ElGamal加密密钥对,公开加密公钥,保留加密私钥;
2、投票节点采用SM2/SM9/ECDSA生成签名公私钥
3、投票节点使用计票节点的EC-ElGamal加密公钥对投票值进行加密;
4、投票节点使用SM3/SHA256摘要算法生成完整投票信息的摘要,并使用自己的SM2/SM9/ECDSA签名私钥对其签名后发送到区块链上;
5、运行有区块链智能合约的共识节点对所有经过EC-ElGamal加密后的投票值进行加同态计算,得到密文计算的结果;
6、计票节点解密加同态计算的结果,获得最终票数的统计信息;
7、计票节点使用SM3/SHA256摘要算法生成统计结果的摘要,;
8、计票节点使用自己的SM2/SM9/ECDSA签名私钥对其签名后发送到区块链上,进而所有用户均可得知最终的投票结果。
实施例四
在上文中对于基于区块链的投票方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的基于区块链的投票装置,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图4为本发明实施例提供的一种基于区块链的投票装置结构图。本发明实施例提供的基于区块链的投票装置,包括:
获取模块10,用于获取各投票节点中表征投票意图的投票值。
加密模块11,用于根据计票节点由同态加密算法产生的同态公钥,对各投票值进行加密以生成加密值。
传输运算模块12,用于将各加密值传输至运行有区块链智能合约的共识节点,并控制共识节点对各加密值进行求和运算,以获得加密投票结果;
解密模块13,用于控制计票节点通过同态加密算法产生的同态私钥,对加密投票结果进行解密得到原始投票结果,并通过区块链智能合约将原始投票结果记录于区块链中,以用于向区块链网络中的各节点公示。
本发明所提供的基于区块链的投票装置,获取各个投票节点的投票值,进而采用计票节点由同态加密算法产生的同态公钥将各个投票值加密为加密值,并传输至运行有区块链智能合约的共识节点,通过共识节点对各加密值进行求和运算生成加密投票结果,进而利用计票节点获取共识节点的加密投票结果并采用同态私钥对其进行解密得到原始投票结果,最终将原始投票结果通过区块链智能合约记录于区块链中,以向区块链网络中的各节点公示。本装置采用同态加密算法,保证对加密值进行运算后解密所得的结果与对投票值直接进行相同运算的结果相同,进而可以以加密值的形式直接进行求和运算,保证了运算的安全性。另外,由于共识节点运行有区块链智能合约,因此共识节点被区块链网络中的其它节点所信任,进而确保了计票过程的公正性;并且在本装置中,各投票节点均采用同态加密算法对投票值进行相应处理,并且由于同态加密算法的执行内容相对简单,计算量小,因此相对确保了整体的投票效率。
在实施例四的基础上,该装置还包括:
签名模块,用于控制各投票节点均通过预设的摘要算法及签名私钥对自身的加密值进行摘要签名,得到签名数据。
区块链记录模块,用于通过区块链智能合约将各签名数据记录至区块链中。
实施例五
本发明还提供一种基于区块链的投票设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的基于区块链的投票方法的步骤。
本发明所提供的基于区块链的投票设备,获取各个投票节点的投票值,进而采用计票节点由同态加密算法产生的同态公钥将各个投票值加密为加密值,并传输至运行有区块链智能合约的共识节点,通过共识节点对各加密值进行求和运算生成加密投票结果,进而利用计票节点获取共识节点的加密投票结果并采用同态私钥对其进行解密得到原始投票结果,最终将原始投票结果通过区块链智能合约记录于区块链中,以向区块链网络中的各节点公示。本设备采用同态加密算法,保证对加密值进行运算后解密所得的结果与对投票值直接进行相同运算的结果相同,进而可以以加密值的形式直接进行求和运算,保证了运算的安全性。另外,由于共识节点运行有区块链智能合约,因此共识节点被区块链网络中的其它节点所信任,进而确保了计票过程的公正性;并且在本设备中,各投票节点均采用同态加密算法对投票值进行相应处理,并且由于同态加密算法的执行内容相对简单,计算量小,因此相对确保了整体的投票效率。
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于区块链的投票方法的步骤。
本发明所提供的基于区块链的投票的计算机可读存储介质,获取各个投票节点的投票值,进而采用计票节点由同态加密算法产生的同态公钥将各个投票值加密为加密值,并传输至运行有区块链智能合约的共识节点,通过共识节点对各加密值进行求和运算生成加密投票结果,进而利用计票节点获取共识节点的加密投票结果并采用同态私钥对其进行解密得到原始投票结果,最终将原始投票结果通过区块链智能合约记录于区块链中,以向区块链网络中的各节点公示。本计算机可读存储介质采用同态加密算法,保证对加密值进行运算后解密所得的结果与对投票值直接进行相同运算的结果相同,进而可以以加密值的形式直接进行求和运算,保证了运算的安全性。另外,由于共识节点运行有区块链智能合约,因此共识节点被区块链网络中的其它节点所信任,进而确保了计票过程的公正性;并且在本计算机可读存储介质中,各投票节点均采用同态加密算法对投票值进行相应处理,并且由于同态加密算法的执行内容相对简单,计算量小,因此相对确保了整体的投票效率。
以上对本发明所提供的一种基于区块链的投票方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种基于区块链的投票方法,其特征在于,包括:
获取各投票节点中表征投票意图的投票值;
控制各所述投票节点均通过预设的摘要算法及签名私钥对自身中包含有所述投票值的投票信息进行摘要签名,得到签名数据;
通过区块链智能合约将各所述签名数据记录至所述区块链中;
根据计票节点由同态加密算法产生的同态公钥,对各所述投票值进行加密以生成加密值;
将各所述加密值传输至运行有区块链智能合约的共识节点,并控制所述共识节点对各所述加密值进行求和运算,以获得加密投票结果;
控制所述计票节点通过所述同态加密算法产生的同态私钥,对所述加密投票结果进行解密得到原始投票结果,并通过所述区块链智能合约将所述原始投票结果记录于区块链中,以用于向区块链网络中的各节点公示。
2.根据权利要求1所述的方法,其特征在于,所述摘要算法具体为SHA256摘要算法或SM3摘要算法,所述签名私钥具体通过ECDSA算法或SM2算法或SM9算法生成。
3.根据权利要求1所述的方法,其特性在于,所述同态加密算法具体为EC-ElGamal同态加密算法。
4.根据权利要求3所述的方法,其特征在于,所述EC-ElGamal同态加密算法具体为EC-ElGamal加法同态加密算法。
5.根据权利要求1所述的方法,其特征在于,所述投票值的取值包括0和1;其中,当所述投票值为0时表征所述投票意图为反对,当所述投票值为1时表征所述投票意图为赞成。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述投票节点具体为移动终端。
7.一种基于区块链的投票装置,其特征在于,包括:
获取模块,用于获取各投票节点中表征投票意图的投票值;
签名模块,用于控制各所述投票节点均通过预设的摘要算法及签名私钥对自身中包含有所述投票值的投票信息进行摘要签名,得到签名数据;
区块链记录模块,用于通过区块链智能合约将各所述签名数据记录至所述区块链中;
加密模块,用于根据计票节点由同态加密算法产生的同态公钥,对各所述投票值进行加密以生成加密值;
传输运算模块,用于将各所述加密值传输至运行有区块链智能合约的共识节点,并控制所述共识节点对各所述加密值进行求和运算,以获得加密投票结果;
解密模块,用于控制所述计票节点通过所述同态加密算法产生的同态私钥,对所述加密投票结果进行解密得到原始投票结果,并通过所述区块链智能合约将所述原始投票结果记录于区块链中,以用于向区块链网络中的各节点公示。
8.一种基于区块链的投票设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的基于区块链的投票方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的基于区块链的投票方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810455285.6A CN108768607B (zh) | 2018-05-14 | 2018-05-14 | 一种基于区块链的投票方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810455285.6A CN108768607B (zh) | 2018-05-14 | 2018-05-14 | 一种基于区块链的投票方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108768607A CN108768607A (zh) | 2018-11-06 |
CN108768607B true CN108768607B (zh) | 2021-10-08 |
Family
ID=64010497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810455285.6A Active CN108768607B (zh) | 2018-05-14 | 2018-05-14 | 一种基于区块链的投票方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108768607B (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108809624A (zh) * | 2018-07-18 | 2018-11-13 | 杭州安恒信息技术股份有限公司 | 一种电子选举方法、系统、设备及计算机可读存储介质 |
CN109493053A (zh) * | 2018-11-22 | 2019-03-19 | 质数链网科技成都有限公司 | 一种用于联盟区块链系统的匿名交易方法 |
CN109861822B (zh) * | 2018-11-29 | 2021-09-10 | 中国电子科技集团公司第三十研究所 | 一种区块链系统中可控消息交易加密的方法 |
CN110169015B (zh) * | 2018-12-13 | 2022-03-01 | 创新先进技术有限公司 | 在分布式系统中的网络节点之间达成共识 |
CN109905244A (zh) * | 2018-12-26 | 2019-06-18 | 顺丰科技有限公司 | 联盟的管理方法和装置 |
CN109523683B (zh) * | 2018-12-29 | 2021-05-04 | 杭州趣链科技有限公司 | 一种基于区块链技术的不记名电子投票方法 |
CN109981281B (zh) * | 2019-01-14 | 2021-11-26 | 北京领主科技有限公司 | 基于区块链提案随机共识确定候选元素的方法及装置 |
CN109840770A (zh) * | 2019-01-31 | 2019-06-04 | 北京瑞卓喜投科技发展有限公司 | 一种智能合约执行方法及智能合约执行系统 |
CN109934691B (zh) * | 2019-02-28 | 2023-08-25 | 矩阵元技术(深圳)有限公司 | 一种竞拍的数据处理方法、竞拍客户端及系统 |
CN110035057A (zh) * | 2019-02-28 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 用于投票的系统、方法和装置 |
CN110011981B (zh) * | 2019-03-15 | 2021-06-29 | 湖北工程学院 | 一种基于区块链的可信云存储方法及系统 |
CN110061828B (zh) * | 2019-04-04 | 2021-05-04 | 西安电子科技大学 | 无可信中心的分布式数字签名方法 |
CN110034917A (zh) * | 2019-04-11 | 2019-07-19 | 鸿秦(北京)科技有限公司 | 一种基于同态加密算法的联盟链数据处理方法及装置 |
CN110264608B (zh) * | 2019-04-11 | 2021-06-29 | 创新先进技术有限公司 | 基于区块链的投票方法、装置及系统 |
CN111740833B (zh) * | 2019-04-16 | 2023-09-05 | 北京沃东天骏信息技术有限公司 | 一种区块链网络的签名方法、节点、系统及存储介质 |
CN110162996A (zh) * | 2019-04-23 | 2019-08-23 | 上海链度科技有限公司 | 基于区块链的投票系统、方法和投票终端 |
CN110110555B (zh) * | 2019-04-24 | 2023-05-12 | 深圳前海微众银行股份有限公司 | 一种区块链中的投票方法及装置 |
CN110245183A (zh) * | 2019-05-05 | 2019-09-17 | 上海链度科技有限公司 | 一种基于联盟区块链技术的加密电子投票选举系统及方法 |
CN110555933B (zh) * | 2019-07-31 | 2021-04-30 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 电子投票方法、装置、设备及计算机存储介质 |
CN110400410A (zh) * | 2019-07-31 | 2019-11-01 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种电子投票系统 |
CN110782347B (zh) * | 2019-10-22 | 2023-02-03 | 全链通有限公司 | 基于区块链的智能合约签署方法、装置及介质 |
CN110958107A (zh) * | 2019-12-05 | 2020-04-03 | 全链通有限公司 | 基于区块链的电子投票方法、设备及存储介质 |
CN111131218A (zh) * | 2019-12-19 | 2020-05-08 | 平安资产管理有限责任公司 | 一种黑名单管理方法、装置、计算机系统及可读存储介质 |
CN111310206A (zh) * | 2020-02-12 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种数据加密方法、节点设备及存储介质 |
CN111476548B (zh) * | 2020-04-16 | 2024-01-23 | 山东师范大学 | 一种基于区块链的职称评审方法及系统 |
CN112163191A (zh) * | 2020-09-15 | 2021-01-01 | 广东工业大学 | 一种基于国密区块链的教育资源共享方法及系统 |
CN114299656B (zh) * | 2020-09-23 | 2023-08-01 | 成都中科信息技术有限公司 | 一种投票方法 |
CN113765666A (zh) * | 2020-10-20 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 信息加密方法及装置 |
CN112466032B (zh) * | 2020-11-23 | 2021-08-17 | 深圳前海微众银行股份有限公司 | 电子投票方法、装置及电子设备 |
CN112685751B (zh) * | 2020-12-25 | 2024-04-26 | 联想(北京)有限公司 | 数据处理方法、装置及电子投票系统 |
CN113850947B (zh) * | 2020-12-28 | 2023-08-29 | 杭州趣链科技有限公司 | 基于ElGamal加密的电子投票系统 |
CN112784305A (zh) * | 2021-02-01 | 2021-05-11 | 杭州复杂美科技有限公司 | 加密投票方法、计算机设备和存储介质 |
CN112865980A (zh) * | 2021-02-01 | 2021-05-28 | 杭州复杂美科技有限公司 | 区块链加密投票方法、计算机设备和存储介质 |
CN112995136A (zh) * | 2021-02-03 | 2021-06-18 | 浙江泰科数联信息技术有限公司 | 一种基于联盟链的k-out-of-m匿名投票方法 |
CN112863040B (zh) * | 2021-03-29 | 2022-09-06 | 中信银行股份有限公司 | 投票结果的生成、统计与获取方法、装置及电子设备 |
CN115589303B (zh) * | 2022-07-11 | 2024-02-27 | 昆明理工大学 | 基于sm9算法和跨链技术的数据共享与隐私保护方法 |
CN115632777B (zh) * | 2022-12-12 | 2023-03-31 | 中电长城网际系统应用有限公司 | 数据处理方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796475A (zh) * | 2015-04-24 | 2015-07-22 | 苏州大学 | 一种基于同态加密的社会化推荐方法 |
CN106845960A (zh) * | 2017-01-24 | 2017-06-13 | 上海亿账通区块链科技有限公司 | 基于区块链的安全交易方法及系统 |
CN106878022A (zh) * | 2017-02-15 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 在区块链上签名、验证的方法及装置 |
CN107666388A (zh) * | 2016-07-28 | 2018-02-06 | 郑珂威 | 基于完全同态加密方法的区块链信息加密方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103903325B (zh) * | 2013-07-08 | 2016-02-24 | 苏州大学 | 一种基于身份签名的安全电子投票系统 |
US20170250796A1 (en) * | 2016-02-18 | 2017-08-31 | Gideon Samid | Trans Vernam Cryptography: Round One |
US10291627B2 (en) * | 2016-10-17 | 2019-05-14 | Arm Ltd. | Blockchain mining using trusted nodes |
CN106411503B (zh) * | 2016-11-28 | 2019-11-08 | 中国银行股份有限公司 | 区块链投票记账模式的记账方法及系统、投票及记账节点 |
CN107395403B (zh) * | 2017-07-07 | 2020-01-14 | 北京区块链云科技有限公司 | 一种适用于大规模电子商务的基于信用的区块链共识方法 |
-
2018
- 2018-05-14 CN CN201810455285.6A patent/CN108768607B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796475A (zh) * | 2015-04-24 | 2015-07-22 | 苏州大学 | 一种基于同态加密的社会化推荐方法 |
CN107666388A (zh) * | 2016-07-28 | 2018-02-06 | 郑珂威 | 基于完全同态加密方法的区块链信息加密方法 |
CN106845960A (zh) * | 2017-01-24 | 2017-06-13 | 上海亿账通区块链科技有限公司 | 基于区块链的安全交易方法及系统 |
CN106878022A (zh) * | 2017-02-15 | 2017-06-20 | 中钞信用卡产业发展有限公司北京智能卡技术研究院 | 在区块链上签名、验证的方法及装置 |
Non-Patent Citations (2)
Title |
---|
A homomorphic encryption scheme with adaptive chosen ciphertext security but without random oracle;LinmingGong ect.;《Theoretical Computer Science》;20151031 * |
基于三角矩阵全同态加密算法的安全电子投票系统研究与设计;王昊;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180115;I138-43 * |
Also Published As
Publication number | Publication date |
---|---|
CN108768607A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768607B (zh) | 一种基于区块链的投票方法、装置、设备及介质 | |
US12101415B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
Li et al. | Privacy-preserving machine learning with multiple data providers | |
Liu et al. | An efficient privacy-preserving outsourced calculation toolkit with multiple keys | |
Li et al. | KSF-OABE: Outsourced attribute-based encryption with keyword search function for cloud storage | |
US11201725B2 (en) | Cryptography device having improved security against side-channel attacks | |
Liu et al. | An efficient privacy-preserving outsourced computation over public data | |
Hassan et al. | An efficient outsourced privacy preserving machine learning scheme with public verifiability | |
Huo et al. | Encrypted decentralized multi-agent optimization for privacy preservation in cyber-physical systems | |
EP3709561A1 (en) | Method for generating a digital signature of an input message | |
Bayat et al. | A secure and efficient chaotic maps based authenticated key-exchange protocol for smart grid | |
CN112769539B (zh) | 一种生成rsa密钥并协同rsa签名和解密的方法及系统 | |
EP2395698B1 (en) | Implicit certificate generation in the case of weak pseudo-random number generators | |
CN114362912A (zh) | 基于分布式密钥中心的标识密码生成方法、电子设备及介质 | |
Dou et al. | Efficient private subset computation | |
Zhang et al. | Privacy‐friendly weighted‐reputation aggregation protocols against malicious adversaries in cloud services | |
CN113872757B (zh) | 一种基于sm2公钥加密算法的广播加密方法 | |
Doshi | An enhanced approach for CP-ABE with proxy re-encryption in IoT paradigm | |
Li et al. | Secure Multi-party SM2 Signature Based on SPDZ Protocol | |
Raj et al. | Traitor Tracing in Broadcast Encryption using Vector Keys | |
Carls et al. | Overview of multiple user encryption for exchange of private data via blockchains | |
Rao et al. | Secure and practical outsourcing of linear programming in cloud computing: A survey | |
Gobi et al. | A new digital envelope approach for secure electronic medical records | |
Wang et al. | Secure and efficient data processing for cloud computing with fine-grained access control | |
Fujioka | One-round exposure-resilient identity-based authenticated key agreement with multiple private key generators |
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 |