CN113285799A - 一种基于区块链的选举方法 - Google Patents
一种基于区块链的选举方法 Download PDFInfo
- Publication number
- CN113285799A CN113285799A CN202110419743.2A CN202110419743A CN113285799A CN 113285799 A CN113285799 A CN 113285799A CN 202110419743 A CN202110419743 A CN 202110419743A CN 113285799 A CN113285799 A CN 113285799A
- Authority
- CN
- China
- Prior art keywords
- election
- node
- block
- voting
- information
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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
- 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/3252—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 DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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
技术领域
本发明涉及区块链技术,具体涉及一种基于区块链的选举方法。
背景技术
区块链是加密货币的底层技术,作为一种较为新颖的技术,是分布式数据存储、点对点传输、共识机制、加密算法等技术的集成应用,本质是一种去中心化的分布式账本系统。区块链作为比特币的底层技术,利用密码学算法相关联的数据块的链式结构存储交易数据字串,利用分布式共识机制来进行区块验证和更新,是一种可靠的保护数据安全的架构范式。
随着区块链的应用在不断的加深,这项技术对经济的发展带了很大的影响,区块链所提供的数据不可伪造、可验证性越来越多的应用于各个行业之中,特别是对信用及数据可靠性要求较高的行业,比如金融,医疗,保险等。随着区块链技术的不断发展和成熟,可以预见的是,这项技术可以解决我们面临的许多严峻的安全和隐私问题。
现今我们的选举投票方法一直在不断改变,从纸质选举,再到利用投票机或者网络投票等。但都存在选票不受信,易造假,选民隐私得不到保护等问题。在选举投票过程中引入区块链技术。利用区块链进行选举,选票数据被记录在区块中,可以保证选票数据的真实性,完整性,不可篡改性,可以防止选举过程中的篡改选票,选票造假等行为,提高选举结果的受信程度。
发明内容
本申请的目的是提供一种基于区块链的选举方法,保证选票数据真实完整和选民信息信息不被泄露,提高选举投票的效率。
为解决上述的技术问题,对现有选举方法进行改进,本申请提供一种基于区块链的选举方法,包括以下步骤:
步骤1,在选举开始前,部署智能合约,利用智能合约公开透明的性质保证选举过程的受信程度,公布选民资格;
步骤2,在选举过程中,将区块链的节点分为全节点和轻节点两类节点;
主节点及验证节点作为全节点,全节点存储并更新选举中的整条区块链,包括所有区块头信息及区块中选票信息;
投票节点作为轻节点只存储区块头信息,不保留区块中的具体交易信息,根据Merkle树存储当前区块根哈希值的特性,判断与本节点有关的选票信息是否在区块链上,并统计经该投票节点发送的所有上链成功的选票数。
进一步,部署智能合约包括:在区块链上根据地区不同部署满足地区选举要求的智能合约,包括在链上部署相应的智能合约,用于控制选举流程,统计交易信息中的各候选人选票数量。
进一步,主节点、验证节点及投票节点的功能分别为:
主节点的功能:管理该地区投票过程中智能合约的生命周期,处理选举信息字串的封装过程;
验证节点的功能:接收并验证由投票节点发送的投票信息,并对区块进行上链操作,返回区块头信息;
投票节点功能:处理选民投票,构建选票信息,并周期性发送投票信息到验证节点,存储选票所在区块的区块头信息。
进一步,根据地区不同部署满足地区选举要求的智能合约包括:
根据该地区选举名单中的候选人,定义相应被选举人名单;
根据该地区选民身份信息验证要求,定义相应选举角色;
根据该地区选举要求不同,定义相应选举信息的格式以及定义相应选票信息的格式;
定义主节点,验证节点,投票节点的交互权限;
选民投票进行遍历验证过程中,若数字签名不合法或已经该数字签名出现过,则验证节点对选票打上作废标签,不对该选票进行收集上块操作。
进一步,选举开始前,公布选民资格的过程具体为:对每个拥有选举权的选民,利用公开的椭圆曲线算法生成公私钥组,并与选民唯一绑定。
进一步,验证节点的功能还包括:选民在投票过程中,选民在选择候选人后,利用绑定的私钥对选票添加数字签名,保证选票的合法性,在验证的过程中,验证节点通过公钥组对数字签名进行合法性比对。
进一步,还包括利用调整的共识机制出块保证效率和隐私,具体为:
各投票节点负责收集选民选票并根据智能合约定义的选举交易信息格式构建选票信息,将定量的选票信息构建成选票信息包,并将其使用投票节点私钥签名,使用所属验证节点公钥加密后,发送给验证节点;
验证节点拥有与若干所属的投票节点交互权限,接收投票节点所发的选票信息包,收集其中的选票信息保证并验证选民数字签名,验证合法,进行构块操作,并将块发送于其他验证节点进行区块验证,通过后,该验证节点对块进行上链操作;
选举统计结束,主节点对链上投票信息进行封装操作。
进一步,在选举投票及验证节点所有上链过程结束后,整条区块链的区块上所有选票信息,被选举人选票数及选举结果由智能合约完成统计。
进一步,选举结果统计完成后,主节点对选举信息字串进行封装的过程,包括如下:
A.区块中的选票信息,进行哈希封装处理,保证统计结束的选票信息隐私性,并在哈希过程中添加第三方系统生成的随机数保证结果更加安全;
B.生成新的区块头信息,生成过程中使用上一个区块的哈希值,及第三方随机数,块与块之间进行哈希键的链接,保证选票信息匿名性和不可篡改性。
在选举开始前部署满足地区选举要求的智能合约,利用智能合约公开透明的性质保证选举过程的受信程度;
在选举区块链中,主节点,验证节点,投票节点拥有唯一绑定的编号及公私钥,用于在区块链中保证交互过程中的身份证明;
三种节点在选举过程中各自发挥不同的功能,根据功能的分类区别,由不同的角色担任;主节点由选举发起方担任;验证节点由预选的拥有较高计算力的节点担任,投票节点由选举地区各个投票站点担任;
智能合约公开透明的定义在选举区块链上,主要的功能为定义选举角色,候选人名单,选举过程,选票信息,定义各个节点在选举过程中的交互权限;
智能合约定义的候选人名单中,各个候选人在智能合约定义的候选人名单中拥有各自唯一绑定的Value值,该Value值会被用于选票信息格式中;
所述的方法中,主节点代表各个投票区,负责管理该投票区上智能合约的生命周期,并对选举信息进行封装操作;
选民资格公布及公私钥绑定,公私钥基于区块链公开的椭圆曲线算法生成,公钥组:{Pk1,Pk2,.........,Pkn},私钥组:{Sk1,Sk2,........Skn};Pk(i)表示选民公钥,Sk(i)表示选民私钥,下标相同的为一个选民绑定的一组配对的公私钥。
选民选择该地区选举区块链上任一投票节点投票,为了保证选票的合法性,需要在选票上使用本人私钥Ski进行数字签名;
选票信息格式Transaction包括:投票节点编号(Lid),选民私钥签名(Ski),被选举人(Value),第三方生成随机数值(Nonce),当前时间(Timestamp),表示为Transaction(Lid,Ski,Value,Nonce,Timestamp);
为了增强选票信息的安全性,投票节点构建选票信息随机数Nonce由选举区块链之外的第三方系统生成;
所述的方法中,投票节点将选民的选票构建选票信息结构Transaction,选票信息结构是一组信息字串,将一定周期中收集的选票信息构建成包,为了保证效率,一个包中需包含超过一定阈值的选票信息量,并在包中利用该投票节点私钥添加数字签名,并使用所属验证节点的公钥进行加密;
所述的方法中,验证节点在选举过程中接收并验证由投票节点发送的选票信息包中的投票节点数字签名,合法则将存储选票信息包中的各选票信息数据字串;
对于选票的验证过程包括:
验证节点遍历合法选票信息包中的选票信息数据字串;
验证节点利用选民被绑定公钥组对选票信息中的数字签名进行遍历配对操作,验证数字签名的合法性;
验证过程中,选票上添加的数字签名不合法或者出现重复情况,该选票信息被标记为废弃选票;
验证节点形成所有选票信息的Markle树,并收集一定量的选票信息构建成块。
所述的方法中,区块由该验证节点发送给其余节点验证,验证通过,可进行上链操作,生成区块的过程包括:
将一定量的选票信息集合成块,并生成存储其根哈希的Merkle树结构;
生成区块头信息:在本方法中,区块头信息包括父区块哈希值,本区块哈希值,Merkle根及Timestamp部分;
在选举区块链上,第一个区块的区块值哈希公式:Block1=hash(Vid+Nonce(n位)+Markle+Timestamp),Block(i)代表第i个区块的哈希值,该方法中,hash过程使用SHA-256函数,Vid代表该验证节点编号,Nonce(n位)代表n位随机数,n代表现有区块数,Markle代表选票信息构成的Markle树值,Timestamp代表出块时间戳),其与区块头其他信息部分共同存储在区块头中,下同;
所述的方法中,第n个区块的区块哈希值公式:Blockn=hash(Block(n-1)+Vid+Nonce(n位)+Markle+Timestamp);
验证节点将上链成功的区块的区块头信息,返回到各所属的投票节点;
投票节点存储区块头信息,并通过Merkle树记录的所有根哈希判断选票信息是否被确认并统计该投票节点的各候选人所得票数;
选票信息封装过程包括如下:
主节点对区块中的选票信息使用SHA-256算法进行封装操作,保证选票匿名性并保护选民隐私,选票信息封装公式如下:第一条选票信息使用的封装选票哈希值公式为,SealedTransaction1=hash(Transaction1(Lid,Ski,Value,Nonce,Timestamp)+Nonce);若非是第一条选票信息的封装操作将用到前一条封装选票信息的哈希值,第n条(n不为1)选票信息封装具体公式包括:SealedTransaction n=hash(Transaction1+SealedTransaction(n-1)+第三方系统产生的随机数值Nonce(n);(SealedTransaction(i)表示选票信息封装后的哈希值,Transaction(i)表示第i条选票信息及其格式)
对区块中信息封装结束后,形成新的区块头信息,其第一个区块封装形成的哈希值公式:SealedBlock n=hash(Sealed Transaction 1....n+Nonce(n)+hash(Blockn));封装过程中若该区块不是链上的第一个区块,则封装过程会使用到前一个封装区块的哈希值,第n个(n不为1)区块新哈希值:SealedBlock n=hash(Sealed Transaction1...n+Nonce(n)+hash(Blockn)+Sealed Block(n-1));
(SealedTransaction1....n表示将区块所有选票信息封装后的哈希值以Merkle树结构得到的最终哈希值)
所述的方法中,区块链上选票信息由智能合约计数并统计,统计结果为保证可信程度,将与各投票节点提供各部分选票数据之和对比验证;
附图说明
为了更清楚的理解本申请的方案,构建发明中的一部分附图来进行说明,使得发明中的理论方法,逻辑更加清晰,下面描述的附图仅仅是本申请的一些实施例及其说明用于本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明方法的选举区块链节点分类示意图;
图2是本发明方法的选举流程图;
图3是本发明方法的选票信息上链流程图;
图4是本发明方法的区块封装流程图;
具体实施方式
下面结合本申请的附图说明,对本发明的理论、方案、技术进行清楚完整的描述。
将区块链技术应用于选举投票过程中,利用区块链对数据的不可篡改,可验证性,利用公开透明的智能合约记录选票结果,很大程度上能保证选举数据的完整性和真实性,选举结果的可靠性。
本发明设计一种基于区块链的选举方法,如图1、图2、图3和图4所示,包括以下步骤:
本发明方法在应用的是区块链中的联盟链类型,在选举开始前,将选举地区上投票点及选举发起方节点预选为合法的选举区块链节点,进行节点功能分类,以提高投票及验证选票合法过程的效率,公布有资格参与投票的选民名单,并在区块链上部署公开透明的智能合约,应用于整个选举过程中。
智能合约根据各地区选举发起方所公开选举要求,进行选举角色,候选人名单,选票信息格式,及各个节点在选举过程中的交互权限的定义,利用智能合约其公开透明的性质,控制选举流程,统计选票数量,智能合约可验证提交上链的选票合法性,若选票不合法则不记录该选票,区块链上的满足条件的智能合约一旦部署,在整个选举过程中生效;
图1是本发明方法的选举区块链节点分类示意图,如图所示将区块链上各节点分为主节点、验证节点、投票节点;主节点和验证节点作为全节点,存储区块头信息及链上所有交易信息,即在节点保存完整的区块链网络,可进行验证,广播等操作。投票节点作为轻节点不保存所有选票数据,它只包含区块头以及与自己相关的交易细节,并通过Merkle证明来判断选票是否被确认。主节点由选举发起方担任,管理智能合约的生命周期;预选计算力较强的部分节点为验证节点;
节点功能分类完成后,智能合约的具体定义包括:根据该地区被选举名单中的候选人,定义相应候选人名单;根据该地区选民身份信息验证要求,定义不同的验证要求通过后参与选举流程的选举角色;根据该地区选举要求不同,定义相应选举信息的格式以及定义相应选票信息的格式;定义主节点,验证节点,投票节点的交互权限,选民投票进行遍历验证过程中,若数字签名不合法或已经该数字签名出现过,则验证节点对选票打上作废标签,不对该选票进行收集上块操作。
主节点的功能:管理该地区投票过程中智能合约的生命周期,处理选举信息的封装过程;
验证节点的功能:接收并验证由投票节点发送的投票信息,并对区块进行上链操作,返回区块头信息;
投票节点功能:处理选民投票,构建选票信息,并周期性发送投票信息到验证节点,存储选票所在区块的区块头信息。本发明方法还包括利用调整的共识机制出块保证效率和隐私,具体为:
各投票节点负责收集选民选票并根据智能合约定义的选举交易信息格式构建选票信息,将定量的选票信息构建成选票信息包,并将其使用投票节点私钥签名,使用所属验证节点公钥加密后,发送给验证节点;
验证节点拥有与若干所属的投票节点交互权限,接收投票节点所发的选票信息包,收集其中的选票信息保证并验证选民数字签名,验证合法,进行构块操作,并将块发送于其他验证节点进行区块验证,通过后,该验证节点对块进行上链操作;
选举统计结束,主节点对链上投票信息进行封装操作。图2是本发明方法的选举流程图,是整个选举过程中选民及区块链各节点交互过程,具体步骤包括:
步骤S1:选民投票前,选举发起方利用公开的椭圆曲线算法,为有资格参与选举投票的选民生成高加密的公私钥组,一对配对的公私钥与选民唯一绑定,VoteKey1{Pk1,Sk1},:VoteKey2{Pk2,Sk2}.......VoteKey3{Pk3,Sk3}(VoteKey(i)表示选民公私钥组),公私钥基于区块链中公开的椭圆曲线算法生成加密程度高,难以被破解;
步骤S2:选民可在该地区任一投票节点实行选举投票的权利,并在选票中使用所属私钥Ski对所投选票添加数字签名,对于没有数字签名的选票,投票节点不对其选票信息字串的构成;
投票节点将选票构成一组选票信息字串具体包括,投票节点编号(Lid),选民私钥签名(Ski),被选举人对应的值(Value),第三方产生的随机数值(Nonce),当前时间(Timestamp);为保证安全和可靠性,Nonce使用第三方工具生成,Timestamp由区块链公开可信的时间戳服务器生成;
步骤S3:投票节点通过智能合约定义的与验证节点的交互权限,周期性的将构建好的选票信息打包,并使用投票节点私钥进行签名,所属验证节点公钥进行选票信息包的加密,并发送至所属的验证节点进行验证;
验证节点解密选票信息包,验证包中的投票节点私钥签名,信息合法则接收包中的选票信息。
验证节点利用公钥组对选票上的选民数字签名进行配对操作,验证不合法或者重复签名的选票被标记为废弃选票;
验证节点将一定量的所收集的选票信息构建成区块,发送给其他验证节点进行验证,其它验证节点验证合法后,返回验证通过信息,该验证节点接收到所有验证节点的验证通过信息后,对区块进行上链操作,如图3所示,具体包括如下:
如果该块是第一个区块,则生成区块头hash公式如下:Block1=hash(Vid+Nonce(n位)+Markle+Timestamp);(n代表现有区块数,Block(i)代表第i个区块的本区块哈希值,该方法中,hash过程使用SHA-256函数,Vid代表该验证节点编号,,Nonce(n位),代表位数为当前区块数的随机数,Markle代表选票信息构成的Markle树哈希值,Timestamp代表出块时间戳,其与区块头其他信息部分共同存储在该区块头中,下同)
如果非首个区块,在生成区块头的过程中会使用到前一个区块的hash值Block(n-1),生成区块哈希值的hash公式:Blockn=hash(Block(n-1)+Vid+Nonce(n位)+Markle+Timestamp);
验证节点的功能还包括:选民在投票过程中,选民在选择候选人后,利用绑定的私钥对选票添加数字签名,保证选票的合法性,在验证的过程中,验证节点通过公钥组对数字签名进行合法性比对。
步骤S4:区块上链成功,主节点和所有验证节点更新区块链信息,包括区块头和所有选票信息数据字串。负责出块的验证节点并向投票节点返回区块头信息,投票节点对区块头信息进行存储,通过区块头的Merkle树判断发送的选票交易是否已经成功上链,并跟据已上链被确认选票的Value值,统计该投票节点各候选人票数,用于与智能合约统计的最后结果对比验证。
步骤S5:选举投票时间结束或选民投票完成,利用智能合约对区块链上所有选票信息Value字串所对应的候选人进行选票数量统计,智能合约公开透明的性质,保证了选举投票统计的真实性,完整性和公正性;
步骤S6:在上述一系列方式的基础上,为了保证选票的匿名性和选民的隐私性,如图4所示对选票信息进行封装操作,具体包括如下:
主节点对区块链上所有选票信息使用SHA-256算法进行封装操作,对于该区块中第一条选票信息封装操作的具体公式是:SealedTransaction1=hash(Transaction1+第三方系统产生的随机数值Nonce);(Transaction(i)表示第i条选票信息,SealedTransaction(i)表示将Transaction(i)封装后的哈希值)
对于该区块中第n条选票信息的封装操作将用到前一条封装选票信息的哈希值,具体公式包括:SealedTransaction n=hash(Transaction1+SealedTransaction(n-1)+第三方系统产生的随机数值Nonce);
交易信息改变则Merkle树结构节点值改变,区块头的hash值在封装过程中需要改变,在本发明中,根据上个区块的哈希值,生成新的封装后区块的哈希值,封装过程中第一个区块的区块新哈希值由封装公式得到:SealedBlock1=hash(SealedTransaction1...n+Nonce(1)+hash(Block1));(Sealed Block(i)表示被封装后的第(i)个区块哈希值)
封装过程中若该区块不是链上的第一个区块,则封装过程会使用到前一个封装区块的哈希值,第n个区块的区块新哈希值由封装公式得到包括:SealedBlock n=hash(Sealed Transaction1...n+Nonce(n)+hash(Blockn)+Sealed Block(n-1));
步骤S7:上述封装过程结束后,选举过程整体结束,选举发起方对智能合约统计的选举结果进行导出,记录,并与各投票节点选票数据对比验证;
对智能合约的选举结果及各投票节点的选票统计进行公布。
以上所述实施例仅是为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种变化,应当指出的是,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落在本申请权利要求的保护范围之内。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (9)
1.一种基于区块链的选举方法,其特征在于,包括以下步骤:
步骤1,在选举开始前,部署智能合约,利用智能合约公开透明的性质保证选举过程的受信程度,公布选民资格;
步骤2,在选举过程中,将区块链的节点分为全节点和轻节点两类节点;
主节点及验证节点作为全节点,全节点存储并更新选举中的整条区块链,包括所有区块头信息及区块中选票信息;
投票节点作为轻节点只存储区块头信息,不保留区块中的具体交易信息,根据Merkle树存储当前区块根哈希值的特性,判断与本节点有关的选票信息是否在区块链上,并统计经该投票节点发送的所有上链成功的选票数。
2.根据权利要求1所述的基于区块链的选举方法,其特征在于,部署智能合约包括:
在区块链上根据地区不同部署满足地区选举要求的智能合约,包括在链上部署相应的智能合约,用于控制选举流程,统计交易信息中的各候选人选票数量。
3.根据权利要求1所述的基于区块链的选举方法,其特征在于,主节点、验证节点及投票节点的功能分别为:
主节点的功能:管理该地区投票过程中智能合约的生命周期,处理选举信息字串的封装过程;
验证节点的功能:接收并验证由投票节点发送的投票信息,并对区块进行上链操作,返回区块头信息;
投票节点功能:处理选民投票,构建选票信息,并周期性发送投票信息到验证节点,存储选票所在区块的区块头信息。
4.根据权利要求2所述的基于区块链的选举方法,其特征在于,根据地区不同部署满足地区选举要求的智能合约包括:
根据该地区选举名单中的候选人,定义相应被选举人名单;
根据该地区选民身份信息验证要求,定义相应选举角色;
根据该地区选举要求不同,定义相应选举信息的格式以及定义相应选票信息的格式;
定义主节点,验证节点,投票节点的交互权限;
选民投票进行遍历验证过程中,若数字签名不合法或已经该数字签名出现过,则验证节点对选票打上作废标签,不对该选票进行收集上块操作。
5.根据权利要求1所述的基于区块链的选举方法,其特征在于,选举开始前,公布选民资格的过程具体为:对每个拥有选举权的选民,利用公开的椭圆曲线算法生成公私钥组,并与选民唯一绑定。
6.根据权利要求3所述的基于区块链的选举方法,其特征在于,验证节点的功能还包括:选民在投票过程中,选民在选择候选人后,利用绑定的私钥对选票添加数字签名,保证选票的合法性,在验证的过程中,验证节点通过公钥组对数字签名进行合法性比对。
7.根据权利要求1所述的基于区块链的选举方法,其特征在于,还包括利用调整的共识机制出块保证效率和隐私,具体为:
各投票节点负责收集选民选票并根据智能合约定义的选举交易信息格式构建选票信息,将定量的选票信息构建成选票信息包,并将其使用投票节点私钥签名,使用所属验证节点公钥加密后,发送给验证节点;
验证节点拥有与若干所属的投票节点交互权限,接收投票节点所发的选票信息包,收集其中的选票信息保证并验证选民数字签名,验证合法,进行构块操作,并将块发送于其他验证节点进行区块验证,通过后,该验证节点对块进行上链操作;
选举统计结束,主节点对链上投票信息进行封装操作。
8.根据权利要求1所述的基于区块链的选举方法,其特征在于,在选举投票及验证节点所有上链过程结束后,整条区块链的区块上所有选票信息,被选举人选票数及选举结果由智能合约完成统计。
9.根据权利要求3所述的基于区块链的选举方法,其特征在于,选举结果统计完成后,主节点对选举信息字串进行封装的过程,包括如下:
A.区块中的选票信息,进行哈希封装处理,保证统计结束的选票信息隐私性,并在哈希过程中添加第三方系统生成的随机数保证结果更加安全;
B.生成新的区块头信息,生成过程中使用上一个区块的哈希值,及第三方随机数,块与块之间进行哈希键的链接,保证选票信息匿名性和不可篡改性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110419743.2A CN113285799B (zh) | 2021-04-19 | 2021-04-19 | 一种基于区块链的选举方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110419743.2A CN113285799B (zh) | 2021-04-19 | 2021-04-19 | 一种基于区块链的选举方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113285799A true CN113285799A (zh) | 2021-08-20 |
CN113285799B CN113285799B (zh) | 2023-04-07 |
Family
ID=77276859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110419743.2A Active CN113285799B (zh) | 2021-04-19 | 2021-04-19 | 一种基于区块链的选举方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113285799B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114449003A (zh) * | 2022-01-28 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种联盟链数据处理方法及联盟链 |
CN115147975A (zh) * | 2022-05-19 | 2022-10-04 | 重庆移通学院 | 一种基于区块链的加密网络投票方法 |
CN115314352A (zh) * | 2022-07-27 | 2022-11-08 | 北京航空航天大学 | 隐私增强的公平区块链领导者选举方法及装置 |
CN115442044A (zh) * | 2022-05-25 | 2022-12-06 | 北京航空航天大学 | 基于可链接环签名的高效秘密选举方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347483A (zh) * | 2018-02-06 | 2018-07-31 | 北京奇虎科技有限公司 | 基于双层网络的去中心化计算系统 |
CN108846942A (zh) * | 2018-06-29 | 2018-11-20 | 青岛大学 | 基于以太坊区块链的电子投票方法和系统 |
CN110245183A (zh) * | 2019-05-05 | 2019-09-17 | 上海链度科技有限公司 | 一种基于联盟区块链技术的加密电子投票选举系统及方法 |
CN112489283A (zh) * | 2020-11-24 | 2021-03-12 | 杭州链城数字科技有限公司 | 一种基于区块链和安全多方计算的电子投票选举统计方法 |
CN112632629A (zh) * | 2021-03-10 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 基于区块链的投票管理方法、装置、介质及电子设备 |
-
2021
- 2021-04-19 CN CN202110419743.2A patent/CN113285799B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108347483A (zh) * | 2018-02-06 | 2018-07-31 | 北京奇虎科技有限公司 | 基于双层网络的去中心化计算系统 |
CN108846942A (zh) * | 2018-06-29 | 2018-11-20 | 青岛大学 | 基于以太坊区块链的电子投票方法和系统 |
CN110245183A (zh) * | 2019-05-05 | 2019-09-17 | 上海链度科技有限公司 | 一种基于联盟区块链技术的加密电子投票选举系统及方法 |
CN112489283A (zh) * | 2020-11-24 | 2021-03-12 | 杭州链城数字科技有限公司 | 一种基于区块链和安全多方计算的电子投票选举统计方法 |
CN112632629A (zh) * | 2021-03-10 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 基于区块链的投票管理方法、装置、介质及电子设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114449003A (zh) * | 2022-01-28 | 2022-05-06 | 浪潮云信息技术股份公司 | 一种联盟链数据处理方法及联盟链 |
CN115147975A (zh) * | 2022-05-19 | 2022-10-04 | 重庆移通学院 | 一种基于区块链的加密网络投票方法 |
CN115147975B (zh) * | 2022-05-19 | 2024-02-02 | 重庆移通学院 | 一种基于区块链的加密网络投票方法 |
CN115442044A (zh) * | 2022-05-25 | 2022-12-06 | 北京航空航天大学 | 基于可链接环签名的高效秘密选举方法及装置 |
CN115442044B (zh) * | 2022-05-25 | 2024-05-03 | 北京航空航天大学 | 基于可链接环签名的高效秘密选举方法及装置 |
CN115314352A (zh) * | 2022-07-27 | 2022-11-08 | 北京航空航天大学 | 隐私增强的公平区块链领导者选举方法及装置 |
CN115314352B (zh) * | 2022-07-27 | 2023-12-12 | 北京航空航天大学 | 隐私增强的公平区块链领导者选举方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113285799B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113285799B (zh) | 一种基于区块链的选举方法 | |
US10305875B1 (en) | Hybrid blockchain | |
CN108830602B (zh) | 一种基于变色龙哈希函数的许可链构造及管控方法 | |
CN111405011B (zh) | 基于区块链的vanet中节点可信加入方法 | |
Jogenfors | Quantum bitcoin: an anonymous, distributed, and secure currency secured by the no-cloning theorem of quantum mechanics | |
CN110517139B (zh) | 一种基于投票机制的联盟区块链分权共识方法 | |
CN106789090A (zh) | 基于区块链的公钥基础设施系统及半随机联合证书签名方法 | |
CN109451467A (zh) | 一种基于区块链技术的车载自组织网络数据安全共享与存储系统 | |
Panja et al. | A secure end-to-end verifiable e-voting system using blockchain and cloud server | |
CN114499895B (zh) | 一种融合可信计算与区块链的数据可信处理方法及系统 | |
CN107566116A (zh) | 用于数字资产确权登记的方法及装置 | |
CN101340282A (zh) | 复合公钥的生成方法 | |
CN110912705B (zh) | 一种基于区块链的分布式电子投票方法及系统 | |
CN112995136A (zh) | 一种基于联盟链的k-out-of-m匿名投票方法 | |
CN110717759A (zh) | 一种跨链锚定的区块链异构系统 | |
CN111723387A (zh) | 一种基于区块链的数据解密的方法及装置 | |
CN106920097A (zh) | 一种量子链共识协议的生成时间块链方法 | |
CN112035896B (zh) | 一种基于交易方式的电子合同存证系统 | |
CN116192405A (zh) | 一种电子投票方法及相关装置 | |
CN112489283B (zh) | 一种基于区块链和安全多方计算的电子投票选举统计方法 | |
Shahrouz et al. | An anonymous authentication scheme with conditional privacy-preserving for Vehicular Ad hoc Networks based on zero-knowledge proof and Blockchain | |
CN109658582A (zh) | 一种安全新型的选民资格证及其使用验证方法 | |
CN1221928C (zh) | 保护电子芯片免受欺骗的加密方法 | |
CN109509007A (zh) | 产品防伪电子标签及电子标签认证方法和系统 | |
CN103546284A (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 |