Self-statistical score voting method and device based on block chain, equipment and medium
By using technologies such as Shamir secret sharing and time lock puzzles in the blockchain self-statistical electronic voting system, fairness and robustness issues are solved, and a fair, robust and flexible election process is achieved to ensure the effectiveness of election results. and public opinion expression.
Patent Information
- Application Number
- CN202411253851.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-09
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2044-09-09
AI Technical Summary
The existing blockchain-based self-statistical electronic voting system has fairness and robustness problems. Later voters can obtain election results in advance. Malicious voters' intervention has led to abnormal termination of the election. There are few research on score voting, so they cannot effectively express voters' wishes. .
Using cryptography techniques such as Shamir secret sharing and time lock puzzles, public-private key pairs are generated through the system's global public parameters, voters encrypt voting and signatures, and using zero-knowledge proof and traceable ring signature to ensure the legality and tracking of votes, realizing score voting And verify and count votes on the blockchain.
Create a fair election environment, improve the robustness and fault tolerance of the election, ensure the fairness and verifiability of the election results, be able to promptly detect and hold malicious voters accountable, and achieve the flexibility of the election and public opinion expression.
Smart Images

Figure CN119210803A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of data encryption, and in particular to a blockchain-based self-statistical score voting method, a corresponding device, an electronic device, and a computer-readable storage medium. Background Art
[0002] Voting plays an important role in modern democratic society as a way to express personal will and reach collective consensus in production and life. Traditional paper voting is limited by time and space, and the process is cumbersome and prone to errors. It is less practical in this information age. Therefore, in order to adapt to social development, electronic voting came into being. Electronic voting refers to the use of computer technology and Internet platforms for elections and voting activities. It greatly simplifies the process of elections and voting, allowing voters to vote anywhere using networked devices, and improving the portability and efficiency of voting. At the same time, through the use of cryptography technology and identity authentication mechanisms, electronic voting can provide higher transparency and security. In addition, electronic voting does not require the printing of paper ballots, which also reduces the cost of election activities to a certain extent.
[0003] Traditional electronic voting often requires a trusted centralized organization, but this centralized architecture is vulnerable to attacks and leads to single point failures. In order to break the centralization and reduce the trust cost required for voting interaction, self-counting electronic voting came into being. Self-counting electronic voting is a new paradigm of decentralized electronic voting system. In this system, vote counting is an open procedure. Any participant can calculate the voting results and verify the ballots by themselves, and the initiative of vote counting is in the hands of each participant. However, the current self-counting electronic voting has widespread problems with fairness and robustness. That is, voters who vote later can use the self-counting feature to obtain election results in advance, and decide whether to change the ballot or interrupt the election based on the obtained election results, thereby intervening in the election and causing the election to lose fairness. In addition, due to the lack of support from the underlying decentralized architecture, self-counting electronic voting has not been able to make a breakthrough in application.
[0004] The birth of blockchain technology, with its characteristics of "decentralization, immutability, openness, transparency, and programmability", not only provides an underlying decentralized architecture for traditional self-statistical electronic voting, but also provides a new method to solve the fairness and robustness problems that are widely present in publicly verifiable self-statistical electronic voting protocols. Therefore, the research on blockchain-based self-statistical electronic voting protocols has continued to deepen. However, as to how to improve the security and practicality of blockchain-based self-statistical electronic voting and achieve an effective balance between function and utility, no scholar has yet proposed a good solution to this problem.
[0005] At present, traditional technologies have the following problems:
[0006] First, in a normal election process, voters who vote later can always gain an advantage, that is, voters who vote later can use the votes of voters who have already voted to obtain election results before they are counted, which is unfair to other voters. In addition, most of the existing blockchain-based self-counting electronic voting schemes use commitments to ensure fairness, but commitments will increase the complexity of interactions.
[0007] Second, during the election process, assuming that every legal voter participates in the election normally, every voter can obtain the election results normally. However, if some malicious voters interfere with the election and do not vote normally, the election will be terminated abnormally; the tracking of malicious voters needs to be improved, and the detection of malicious voters' repeated voting, forged ballots, etc. needs to be improved;
[0008] Third, the fault tolerance of elections is low. In practical applications, elections are often forced to be suspended due to interference from malicious voters, and the election needs to be restarted, which wastes a lot of computing resources.
[0009] Fourth, there is currently little research on fractional voting, but in real scenarios there are often multiple candidates, and voters cannot express their level of willingness well if they only use "yes / no".
[0010] To sum up, the voting methods in the prior art often force the election to be suspended due to interference from malicious voters, and the election needs to be restarted, which wastes a lot of computing resources. If some malicious voters interfere with the election and do not vote normally, the election event will be abnormally terminated. The applicant has made corresponding explorations to solve this problem. Summary of the invention
[0011] The purpose of this application is to solve the above-mentioned problems and provide a blockchain-based self-statistical score voting method, corresponding device, electronic device and computer-readable storage medium.
[0012] In order to meet the various objectives of this application, this application adopts the following technical solutions:
[0013] A self-statistical score voting method based on blockchain is proposed to meet one of the purposes of this application, including:
[0014] In the initialization phase, the election agency obtains system security parameters and basic election parameters, and generates system global public parameters based on the system security parameters and basic election parameters, wherein the basic election parameters include the number of candidates, election event number, time difficulty coefficient, and predefined minimum number of participants;
[0015] In the key generation phase, each voter inputs the system global public parameters to the election agency to generate his / her own public-private key pair, and inputs his / her own public key to the election agency, and the election agency generates the corresponding secret share and recognizes him / her as a qualified voter;
[0016] During the voting phase, each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legitimacy of the ballot;
[0017] In the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, in order to screen out all valid ballots;
[0018] During the counting stage, anyone can obtain the final election results based on the valid ballots.
[0019] Optionally, during the initialization phase, the election agency obtains system security parameters and basic election parameters, and the step of generating system global public parameters based on the system security parameters and basic election parameters includes:
[0020] During the initialization phase, enter the security parameter 1 λ , the number of candidates m, the election event ID EventID, the time difficulty coefficient t, the predefined minimum number of participants k, the election agency generates a k-1 order selection polynomial f(x) = s + a1x + a2x 2 +…+a k-1 x k -1 , time lock puzzle Puzzle = (N, μ, t, C), where, are all strong RSA integers, μ is a random number, C=s+T mod N, candidate list CList, H, H1, H2 are hash functions. After initialization, the election agency discloses the system's global public parameters PP=(G, g, p, k, H, H1, H2, Puzzle, CList, EventID). Assume that the number of points allocated to voters in fractional voting is P.
[0021] Optionally, in the key generation phase, each voter inputs the system global public parameters to the election agency to generate his / her own public-private key pair, and inputs his / her own public key to the election agency, and the election agency generates its corresponding secret share and recognizes it as a qualified voter, including:
[0022] Generate a public-private key pair corresponding to each voter according to the system global public parameter PP, wherein the public-private key pair includes a public key and a private key, and the public key is the public key yi , the private key is private key x i ,
[0023] Each voter uses the public key y i Input to the election body to generate zero-knowledge proof ZKPoK 1i ;
[0024] The election body is based on the zero-knowledge proof ZKPoK 1i , confirming that the voter has the public key y i The corresponding private key x i ;
[0025] The election authority generates a secret share s for the voter i =f(y i ), and calculate Where, f(x) = s + a1x + a2x 2 +…+a k-1 x k-1 , the public key y i Mapped to the secret share s i .
[0026] Optionally, each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legality of the ballot, including:
[0027] During the voting phase, each voter will submit the private key x i , secret share s i and for Candidate C j The score p i,j Input to the election body to generate encrypted ballot B i and the signature σ i , where B i =(b i,1 ,...,b i,m ) represents the encrypted ballot B i Contains m encrypted items b i,j , each encrypted term b i,j is the score p i,j The calculation formula for each encryption item is:
[0028]
[0029] in, It is used to construct partial results of encrypted ballots; Its role is as an auxiliary parameter; ρ i,j is a random number selected from the group;
[0030] The voter generates a zero-knowledge proof ZKPoK for each vote 2i ,in, Used to prove that the voter has the corresponding private key x i and the secret share s i ; Used to prove that each score p in each ballot i,j All within the legal range, 0≤p i,j ≤P; It is used to prove that the sum of the scores of all ballots submitted by voters is equal to the predetermined total score P.
[0031] Each voter generates an encrypted ballot B i Sign, order Among them, EventID represents the election event number, PK is the public key set of all voters, PK = {y i} i∈[1,n] ;
[0032] Calculate the hash value and multiple intermediate parameters. The calculation formula includes:
[0033]
[0034]
[0035]
[0036]
[0037]
[0038] Among them, H is a hash function used to generate a hash value h based on election event information and public key. The signature value representing the ballot, and It is the calculated intermediate value used to generate the final signature;
[0039] Continue with the steps to generate a zero-knowledge proof, including:
[0040] Voters randomly choose w i , and calculate
[0041] For each candidate C j , voters randomly choose z j ,e j ∈Z p , and calculate Among them, y j Candidate C j 's public key;
[0042] Voter Count in, is the set of c values of all candidates, where each c j is through calculated; is the set of d values of all candidates, where each d j is through calculated;
[0043] Voter Count i =E-∑ j≠i e j ,z i =w i -e i x i ;
[0044] Voter Generates Signature in, is the set of z values of all candidates, where each z i It is through z i =w i -e i x i calculated; is the set of e values of all candidates, where each e i It is through e i =E-∑ j≠i e j calculated;
[0045] Voters will i ,σ i ,ZKPoK 2i ) is published on the blockchain network, where σ is the final signature and ZKPoK 2i It is a zero-knowledge proof.
[0046] Optionally, during the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, in order to screen out all valid ballots, including:
[0047] Calculation as well as
[0048] For all i, calculate and determine
[0049] For all i, calculate and determine
[0050] Calculation Detection Is it equal to If the equation holds true, the ballot is valid and 1 is returned; otherwise, 0 is returned, indicating that the ballot is unreliable.
[0051] Optionally, during the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, after filtering out all valid ballots, including:
[0052] During the tracking phase, anyone can verify the two suspicious votes (B c ,σ c ,ZKPoK 2c )、(B c ′,σ c ′, ZKPoK2′c) to check. If the two votes are duplicated, Linked is returned. If the same voter casts two non-duplicate votes, the public key of the voter is returned. Otherwise, indep is returned. The specific steps include:
[0053] Calculation
[0054] For all i, calculate and determine δ i ′=R0′(R1′) i ;
[0055] Initialize an empty list TList and judge δ i Is it equal to δ i , if the equation holds true, the public key corresponding to i is recorded in the list TList;
[0056] Check the list content. If the list TList contains the public keys of all voters, it means that there are voters who have voted repeatedly and the voting content is the same. Return Linked.
[0057] If the list contains only one voter's public key, it means that the voter cast two non-duplicate votes, and the voter's public key is returned; if neither of the above two situations is true, indep is returned, indicating normal.
[0058] Optionally, during the vote counting phase, any participant may obtain the final election results based on the valid votes, including:
[0059] During the vote counting phase, if all voters participate normally, anyone interested in the election event can collect votes and count them, including:
[0060] Analyze Puzzle = (N, μ, t, C) and calculate The final calculation results are s = CT mod N;
[0061] Aggregate all valid votes published on the blockchain network B i =(α i,j ,β i,j ) j∈[1,m] ;
[0062] Calculation
[0063] Calculated based on secret sharing So we can calculate
[0064] Counting votes
[0065]
[0066] Among them, if P j The value is small and is calculated by brute force;
[0067] During the vote counting phase, if some voters do not vote or vote repeatedly, it will interfere with the normal vote counting of other voters and cause election anomalies. The anomaly handling and recovery process includes:
[0068] Assume that L represents the set of voters who normally participate in the election stage, Indicates the set of abnormal voters, solve Puzzle = (N, μ, t, C), calculate and determine The final calculation results are s = CT mod N;
[0069] Process the published ballots to exclude abnormal voters:
[0070] Update and publish valid ballots
[0071] Reaggregate all valid votes published on the blockchain network
[0072] Calculation
[0073] Counting restored votes Among them, if P j The value is small and is calculated by brute force.
[0074] A blockchain-based self-statistical score voting device provided for another purpose of the present application includes:
[0075] An initialization module is configured such that, during the initialization phase, the election agency obtains system security parameters and basic election parameters, and generates system global public parameters based on the system security parameters and basic election parameters, wherein the basic election parameters include the number of candidates, election event number, time difficulty coefficient, and a predefined minimum number of participants;
[0076] The key generation module is configured such that, during the key generation phase, each voter inputs the system global public parameters into the election agency to generate his / her own public-private key pair, and inputs his / her own public key into the election agency, and the election agency generates his / her corresponding secret share and recognizes him / her as a qualified voter;
[0077] The voting module is configured such that during the voting phase, each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legality of the ballot;
[0078] The verification module is set so that during the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, so as to screen out all valid ballots;
[0079] The vote counting module is configured so that during the vote counting phase, any participant can obtain the final election result based on the valid votes.
[0080] An electronic device provided to meet another purpose of the present application includes a central processing unit and a memory, wherein the central processing unit is used to call and run a computer program stored in the memory to execute the steps of the blockchain-based self-statistical score voting method described in the present application.
[0081] A computer-readable storage medium is provided to meet another purpose of the present application, which stores a computer program implemented according to the blockchain-based self-statistical score voting method in the form of computer-readable instructions. When the computer program is called and executed by a computer, the steps included in the corresponding method are executed.
[0082] Compared with the prior art, the present application aims at the problems that the voting method in the prior art often causes the election to be forced to be suspended due to the interference of malicious voters, and the election needs to be restarted, which will waste a lot of computing resources, and if some malicious voters interfere with the election and do not vote normally, the election event will be abnormally terminated. The present application includes but is not limited to the following beneficial effects:
[0083] First, this application solves the problem of adaptability in the blockchain-based self-counting electronic voting protocol. In the normal election process, voters who vote later can always gain an advantage, that is, voters who vote later can use the votes of voters who have already voted to obtain the election results before calculation, which is unfair to other voters. This application uses cryptographic technologies such as Shamir secret sharing and time lock puzzles to efficiently solve the adaptability problem in self-counting electronic voting and create a fair election environment for every voter.
[0084] Secondly, this application solves the problem of abnormal interruption in the blockchain-based self-statistical electronic voting protocol. During the election process, if some malicious voters interfere with the election and do not vote normally, it will lead to problems such as abnormal termination of the election event. This application uses threshold ElGamal encryption to improve the robustness of the election and ensure that the election proceeds normally without losing fairness. Even if there is interference from malicious users, there is no need to restart the voting protocol.
[0085] Third, in response to the problem of multiple candidates, this application uses a more flexible point-based voting system, so that voters can better express their wishes. At the same time, it uses non-interactive zero-knowledge proofs and traceable ring signatures to ensure that each vote is verifiable and legal, and internal adversaries who disrupt the election can be discovered and held accountable in a timely manner.
[0086] Fourthly, this application implements a new blockchain-based self-counting score voting protocol that is robust and traceable. The score mechanism introduced in the invention makes elections more flexible and more representative of public opinion. At the same time, in response to the low fault tolerance of previous self-counting voting, this application adopts Shamir secret sharing and time lock puzzles, which not only ensures fairness but also improves fault tolerance. Under this application, even if some voters disrupt the election, the election can still be carried out normally.
[0087] Fifth, this application implements the function of tracking and disclosing malicious voters. By using traceable ring signatures, any two ballots and their signatures can be verified. If there is repeated voting, their identity information will be disclosed.
[0088] Sixth, this application has a public verifiable function. By designing a reasonable zero-knowledge proof protocol, it not only ensures the legitimacy of the voter's identity, but also enables the voter to verify that each ballot is legal without disclosing private information, and the sum of the scores used for encryption is P, which is equal to the specified score. BRIEF DESCRIPTION OF THE DRAWINGS
[0089] The above and / or additional aspects and advantages of the present application will become apparent and easily understood from the following description of the embodiments in conjunction with the accompanying drawings, in which:
[0090] Figure 1 This is a structural block diagram of a self-statistical score voting protocol based on blockchain in an embodiment of the present application;
[0091] Figure 2 This is a flowchart of a self-statistical score voting method based on blockchain in an embodiment of the present application;
[0092] Figure 3 This is a principle block diagram of a self-statistical score voting device based on blockchain in an embodiment of the present application;
[0093] Figure 4 It is a schematic diagram of the structure of the computer device in the embodiment of the present application. DETAILED DESCRIPTION
[0094] The embodiments of the present application are described in detail below, and examples of the embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain the present application, and cannot be interpreted as limiting the present application.
[0095] It will be understood by those skilled in the art that, unless expressly stated, the singular forms "one", "said", and "the" used herein may also include plural forms. It should be further understood that the term "comprising" used in the specification of the present application refers to the presence of the features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof. It should be understood that when we refer to an element as being "connected" or "coupled" to another element, it may be directly connected or coupled to the other element, or there may be an intermediate element. In addition, the "connection" or "coupling" used herein may include wireless connection or wireless coupling. The term "and / or" used herein includes all or any unit and all combinations of one or more associated listed items.
[0096] It will be understood by those skilled in the art that, unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as those generally understood by those skilled in the art to which this application belongs. It should also be understood that terms such as those defined in general dictionaries should be understood to have meanings consistent with those in the context of the prior art, and will not be interpreted with idealized or overly formal meanings unless specifically defined as here.
[0097] It will be understood by those skilled in the art that the "client", "terminal" and "terminal device" used herein include both devices with wireless signal receivers, which are devices with only wireless signal receivers without transmission capabilities, and devices with receiving and transmitting hardware, which are devices with receiving and transmitting hardware capable of two-way communication on a two-way communication link. Such devices may include: cellular or other communication devices such as personal computers, tablet computers, which have single-line displays or multi-line displays or cellular or other communication devices without multi-line displays; PCS (Personal Communications Service, personal communication system), which can combine voice, data processing, fax and / or data communication capabilities; PDA (Personal Digital Assistant, personal digital assistant), which may include a radio frequency receiver, pager, Internet / intranet access, web browser, notepad, calendar and / or GPS (Global Positioning System, global positioning system) receiver; conventional laptop and / or palmtop computers or other devices, which have and / or include a conventional laptop and / or palmtop computer or other device with and / or including a radio frequency receiver. The "client", "terminal" and "terminal device" used herein may be portable, transportable, installed in a vehicle (air, sea and / or land), or suitable for and / or configured to run locally, and / or in a distributed form, at any other location on the earth and / or in space. The "client", "terminal" and "terminal device" used herein may also be a communication terminal, an Internet terminal, a music / video playing terminal, for example, a PDA, a MID (Mobile Internet Device) and / or a mobile phone with a music / video playing function, or a smart TV, a set-top box and other devices.
[0098] The hardware referred to by the names such as "server", "client", and "service node" in this application is essentially an electronic device with the equivalent capabilities of a personal computer. It is a hardware device with the necessary components revealed by the von Neumann principle, such as a central processing unit (including an arithmetic unit and a controller), a memory, an input device, and an output device. The computer program is stored in its memory, and the central processing unit calls the program stored in the external memory into the internal memory for execution, executes the instructions in the program, and interacts with the input and output devices to complete specific functions.
[0099] It should be pointed out that the concept of "server" referred to in this application can also be extended to the case of server clusters. According to the network deployment principle understood by those skilled in the art, the servers should be logically divided. In physical space, these servers can be independent of each other but can be called through interfaces, or integrated into a physical computer or a set of computer clusters. Those skilled in the art should understand this flexibility, and should not use it to restrict the implementation of the network deployment method of this application.
[0100] Unless expressly specified, one or more technical features of the present application can be deployed on a server for implementation and accessed by a client through a remote call to obtain an online service interface provided by the server, or can be directly deployed and run on a client for access.
[0101] The neural network models referenced or may be referenced in this application, unless expressly specified, can be deployed on a remote server and remotely called on the client, or can be deployed and directly called on a client with sufficient device capabilities. In some embodiments, when it runs on the client, its corresponding intelligence can be obtained through transfer learning to reduce the requirements for the client's hardware operating resources and avoid excessive occupation of the client's hardware operating resources.
[0102] Unless explicitly specified, the various data involved in this application can be stored remotely on a server or on a local terminal device, as long as it is suitable for being called by the technical solution of this application.
[0103] Those skilled in the art should be aware that, although the various methods of the present application are described based on the same concept and thus present commonality to each other, unless otherwise specified, these methods can be independently executed. Similarly, for each embodiment disclosed in the present application, they are all proposed based on the same inventive concept, therefore, concepts with the same expression, and concepts that are appropriately changed for convenience despite different expressions, should be understood as equivalent.
[0104] Unless the mutually exclusive relationship between the embodiments to be disclosed in this application is explicitly stated, the relevant technical features involved in each embodiment can be cross-combined to flexibly construct a new embodiment, as long as such combination does not deviate from the creative spirit of this application and can meet the needs of the prior art or solve certain deficiencies in the prior art. Those skilled in the art should be aware of this flexibility.
[0105] See also Figure 1 , Figure 1This is a structural block diagram of the self-statistical fractional voting protocol based on blockchain in the embodiment of the present application. The self-statistical fractional voting method based on blockchain in the present application can be implemented based on a self-statistical fractional voting system based on blockchain that is robust and traceable. The system includes an election agency, a blockchain network, n voters, and m candidates. Each voter can upload information to the blockchain normally. The instance is divided into multiple stages, which mainly include a preparation stage, a voting stage, and a counting stage. Among them, in the initialization stage, the election agency initializes the election system, generates global public parameters of the system, and voters generate keys and register with the election agency; in the voting stage, voters vote and can exercise verification and tracking rights to supervise election events; in the counting stage, if all voters participate normally, all ballots are collected and simple calculations are performed to obtain the final result. If only some voters participate, the counting can only be carried out after the participating voters eliminate the abnormalities.
[0106] Based on the above exemplary scenarios, please refer to Figure 2 In one embodiment, the blockchain-based self-statistical score voting method of the present application includes:
[0107] Step S10: In the initialization phase, the election agency obtains system security parameters and basic election parameters, and generates system global public parameters based on the system security parameters and basic election parameters, wherein the basic election parameters include the number of candidates, election event number, time difficulty coefficient, and a predefined minimum number of participants;
[0108] The election agency may be an election system, and the voter may be a voter client. In the initialization phase, the election agency obtains system security parameters and basic election parameters, and generates system global public parameters based on the system security parameters and basic election parameters, wherein the basic election parameters include the number of candidates, election event number, time difficulty coefficient, and a predefined minimum number of participants;
[0109] Specifically, during the initialization phase, input security parameter 1 λ , the number of candidates m, the election event ID EventID, the time difficulty coefficient t, the predefined minimum number of participants k, the election agency generates a k-1 order selection polynomial f(x) = s + a1x + a2x 2 +…+a k-1 x k-1 , time lock puzzle Puzzle = (N, μ, t, C), where, are all strong RSA integers, μ is a random number, C=s+T mod N, candidate list CList, H, H1, H2 are hash functions. After initialization, the election agency discloses the system global public parameter PP=(G, g, p, k, H, H1, H2, Puzzle, CList, EventID). Assuming that the number of points allocated to voters in the fractional voting is P, the system global public parameter PP and the time lock puzzle Puzzle are broadcast to the blockchain network.
[0110] Step S20: In the key generation phase, each voter inputs the system global public parameters to the election agency to generate his / her own public-private key pair, and inputs his / her own public key to the election agency. The election agency generates its corresponding secret share and recognizes it as a qualified voter.
[0111] After the system global public parameter PP is generated based on the system security parameter and the basic election parameter, in the key generation phase, each voter inputs the system global public parameter PP to the election agency to generate his / her own public-private key pair, and inputs his / her own public key to the election agency, and the election agency generates its corresponding secret share and recognizes it as a qualified voter;
[0112] Specifically, a public-private key pair corresponding to each voter is generated according to the system global public parameter PP, wherein the public-private key pair includes a public key and a private key, and the public key is the public key y i , the private key is private key x i ,
[0113] Each voter uses the public key y i Input to the election body to generate zero-knowledge proof ZKPoK 1i ;
[0114] The election body is based on the zero-knowledge proof ZKPoK 1i , confirming that the voter has the public key y i The corresponding private key x i ;
[0115] The election authority generates a secret share s for the voter i =f(y i ), and calculate Where, f(x) = s + a1x + a2x 2 +…+a k-1 x k-1 , the public key y i Mapped to the secret share s i .
[0116] The above steps ensure that the voter's public key and private key pair are valid, and by generating the secret share s i and calculate τ i , election bodies are able to generate a secret share associated with each voter’s public key, significantly improving the security of ballots and ensuring the fairness and effectiveness of the election process.
[0117] Step S30: During the voting phase, each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legitimacy of the ballot;
[0118] After the election agency generates its corresponding secret share and recognizes it as a qualified voter, during the voting phase, each voter encrypts its corresponding voting content according to the system global public parameters, its own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legality of the ballot;
[0119] Specifically, during the voting phase, each voter will submit the private key x i , secret share s i and for Candidate C j The score p i,j Input to the election body to generate encrypted ballot B i and the signature σ i , where B i =(b i,1 ,...,b i,m ) represents the encrypted ballot B i Contains m encrypted items b i,j , each encrypted term b i,j is the score p i,j The calculation formula for each encryption item is:
[0120]
[0121] in, It is used to construct partial results of encrypted ballots; Its role is as an auxiliary parameter; ρ i,j is a random number selected from the group;
[0122] The voter generates a zero-knowledge proof ZKPoK for each vote 2i ,in, Used to prove that the voter has the corresponding private key x i and the secret share s i ; Used to prove that each score p in each balloti,j All within the legal range, 0≤p i,j ≤P; It is used to prove that the sum of the scores of all ballots submitted by voters is equal to the predetermined total score P.
[0123] Each voter generates an encrypted ballot B i Sign, order Among them, EventID represents the election event number, PK is the public key set of all voters, PK = {y i} i∈[1,n] ;
[0124] Calculate the hash value and multiple intermediate parameters. The calculation formula includes:
[0125]
[0126]
[0127]
[0128]
[0129]
[0130] Among them, H is a hash function used to generate a hash value h based on election event information and public key. The signature value representing the ballot, and It is the calculated intermediate value used to generate the final signature;
[0131] Continue with the steps to generate a zero-knowledge proof, including:
[0132] Voters randomly choose w i , and calculate
[0133] For each candidate C j , voters randomly choose z j ,e j ∈Z p , and calculate Among them, y j Candidate C j 's public key;
[0134] Voter Count in, is the set of c values of all candidates, where each c j is through calculated; is the set of d values of all candidates, where each d j is through calculated;
[0135] Voter Count i =E-∑ j≠i e j ,z i =w i -e i x i ;
[0136] Voter Generates Signature in, is the set of z values of all candidates, where each z i It is through z i =w i -e i x i calculated; is the set of e values of all candidates, where each e i It is through e i =E-∑ j≠i e j calculated;
[0137] Voters will i ,σ i ,ZKPoK 2i ) is published on the blockchain network, where σ is the final signature and ZKPoK 2i It is a zero-knowledge proof.
[0138] Based on the above steps, blockchain network encryption technology and zero-knowledge proof are used to protect voter privacy and ensure the validity of the voting process. The generation of encrypted ballots involves complex encryption operations to ensure the privacy of the scores. At the same time, zero-knowledge proof is used to ensure the legitimacy of the scores and the correctness of the total scores. The calculation of signatures and intermediate values ensures the authenticity and tamper-proofness of the ballots. All these steps together build a secure and reliable electronic voting system.
[0139] Step S40: In the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, so as to screen out all valid ballots;
[0140] Each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot. In the verification stage, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, so as to screen out all valid ballots;
[0141] Specifically, the calculation determines as well as
[0142] For all i, calculate and determine
[0143] For all i, calculate and determine
[0144] Calculation Detection Is it equal to If the equation holds true, the ballot is valid and 1 is returned; otherwise, 0 is returned, indicating that the ballot is unreliable.
[0145] During the verification phase, anyone verifies any ballot and its corresponding signature to determine the validity of the ballot, after screening out all valid ballots, including:
[0146] During the tracking phase, anyone can verify the two suspicious votes (B c ,σ c ,ZKPoK 2c )、(B c ′,σ c ′, ZKPoK2′c) to check. If the two votes are duplicated, Linked is returned. If the same voter casts two non-duplicate votes, the public key of the voter is returned. Otherwise, indep is returned. The specific steps include:
[0147] Calculation
[0148] For all i, calculate and determine δ i ′=R0′(R1′) i ;
[0149] Initialize an empty list TList and judge δ i Is it equal to δ i , if the equation holds true, the public key corresponding to i is recorded in the list TList;
[0150] Check the list content. If the list TList contains the public keys of all voters, it means that there are voters who have voted repeatedly and the voting content is the same. Return Linked.
[0151] If the list contains only one voter's public key, it means that the voter cast two non-duplicate votes, and the voter's public key is returned; if neither of the above two situations is true, indep is returned, indicating normal.
[0152] In some embodiments, during the tracking phase, when two suspicious ballots are found, if they are the same (i.e., the voting content is repeated), the system will return Linked; Linked means that the two ballots are repeated, and the same voter cast the same vote at two different times. This is usually used to detect whether there is a problem of repeated voting by the same voter; when the system calculates that all public keys appear in the list TList, it means that all voters who voted are the same, that is, each voter cast the same vote at different times or places. This situation indicates that the ballot content is repeated and was cast by the same voter.
[0153] If the same voter is found to have cast two non-repeating votes during the check, the system will return indep. indep means that the votes are not repeated. Although the same voter casts two votes, the content of each vote is different. This shows that the voting records are independent, that is, each vote is unique. When it is detected that the votes of a voter are not repeated, indep is returned. This means that even if the same voter casts multiple votes, the content of these votes is different and the system does not detect duplicate votes.
[0154] From the above steps, it can be seen that the verification phase is mainly used to confirm the validity of a single ballot and its signature, verify the authenticity of the ballot by calculating the hash value and encryption value, ensure the authenticity and integrity of the ballot, and prevent tampering and forgery; the tracking phase is mainly used to detect the duplication and improper behavior of ballots, and identify potential duplicate voting or abnormal situations by comparing the hash values and encryption values of different ballots.
[0155] Step S50: During the vote counting phase, any participant can obtain the final election result based on the valid votes.
[0156] After all valid votes are screened, during the counting phase, any participant can obtain the final election results based on the valid votes.
[0157] Specifically, during the vote counting phase, any participant can obtain the final election results based on the valid votes, including:
[0158] During the vote counting phase, if all voters participate normally, anyone interested in the election event can collect votes and count them, including:
[0159] Analyze Puzzle = (N, μ, t, C) and calculate The final calculation results are s = CT mod N;
[0160] Aggregate all valid votes published on the blockchain network B i =(α i,j ,β i,j )j∈[1,m] ;
[0161] Calculation Calculated based on secret sharing So we can calculate
[0162] Counting votes
[0163]
[0164] Among them, if P j The value is small and is calculated by brute force;
[0165] During the vote counting phase, if some voters do not vote or vote repeatedly, it will interfere with the normal vote counting of other voters and cause election anomalies. The anomaly handling and recovery process includes:
[0166] Assumptions Indicates the normal participation of voters in this election phase. Indicates the set of abnormal voters, solve Puzzle = (N, μ, t, C), calculate and determine The final calculation results are s = CT mod N;
[0167] Process the published ballots to exclude abnormal voters:
[0168] Update and publish valid ballots
[0169] Reaggregate all valid votes published on the blockchain network
[0170] Calculation
[0171] Counting restored votes Among them, if P j The value is small and is calculated by brute force.
[0172] It can be seen from the above steps that under normal circumstances, the results of each ballot can be accurately calculated by following the above steps. If there are abnormal voters, it is necessary to exclude the abnormal data through adjustment and recalculation to restore the correctness of the ballot. This method can ensure the robustness of the election process and restore the fairness of the election to the maximum extent.
[0173] In some embodiments, in the voter registration module, zero-knowledge proof Used in the voter registration stage, the voter registration module includes a first sending module and a first verification module, specifically including:
[0174] In the first sending module, the voter V i Use your own private key x i To generate a zero-knowledge proof, first calculate w i ∈Z p , c=H(a i ,y i ), r i =w i -cx i , announce (c,a i r i );
[0175] In the first verification module, the verifier verifies whether c is equal to H(a i ,y i ), a i Is it equal to If the equality holds, the verification passes, otherwise it is rejected;
[0176] In the voting qualification verification module, zero-knowledge proof Used to verify whether a voter has voting qualifications, the voting qualification verification module includes a second sending module and a second verification module, specifically including:
[0177] In the second sending module, the voter V i Use your own private key x i and the secret share s i Generate a zero-knowledge proof, first select a random number r1,r2∈Z p ,calculate c=H(a i ,b i ,y i ,τ i ), let d i1 =r1-cx i , d i2 =r2-cs i , announce (c,a i ,b i ,d i1 ,d i2 );
[0178] In the second verification module, the verifier verifies whether c is equal to H(a i ,b i ,y i ,τ i ), a i Is it equal to b i Is it equal to If the equality holds, the verification passes, otherwise it is rejected;
[0179] Furthermore, in the ballot verification module, the calculation determines To verify the scope of a single ballot and prevent forgery or tampering of ballot data;
[0180] In the ballot verification module, the calculation determines To verify the accuracy of the scope and total score of all ballots and prevent forgery or tampering of ballot data;
[0181] From the above steps, we can see that in the voter registration module, during the voter registration phase, zero-knowledge proof is used to ensure that the voter’s registration information is correct, but the voter’s private key x is not disclosed. i ; In the voting qualification verification module, the second stage of zero-knowledge proof is used to verify whether the voter is qualified to vote, that is, to ensure that the voter's voting qualification is valid; in the ballot verification module, at the ballot stage, the legitimacy of the ballot and the accuracy of the total score are ensured through the range verification of single ballots and all ballots to prevent the forgery or tampering of ballot data. Through the above steps, the security and privacy protection characteristics of zero-knowledge proof are combined to ensure the privacy of voters, the authenticity of ballots, and the fairness of elections.
[0182] As can be seen from the above embodiments, compared with the prior art, the present application aims at the problems that the voting method in the prior art often causes the election to be forced to be suspended due to the interference of malicious voters, and the election needs to be restarted, which will waste a lot of computing resources, and if some malicious voters interfere with the election and do not vote normally, the election event will be abnormally terminated. The present application includes but is not limited to the following beneficial effects:
[0183] First, this application solves the problem of adaptability in the blockchain-based self-counting electronic voting protocol. In the normal election process, voters who vote later can always gain an advantage, that is, voters who vote later can use the votes of voters who have already voted to obtain the election results before calculation, which is unfair to other voters. This application uses cryptographic technologies such as Shamir secret sharing and time lock puzzles to efficiently solve the adaptability problem in self-counting electronic voting and create a fair election environment for every voter.
[0184] Secondly, this application solves the problem of abnormal interruption in the blockchain-based self-statistical electronic voting protocol. During the election process, if some malicious voters interfere with the election and do not vote normally, it will lead to problems such as abnormal termination of the election event. This application uses threshold ElGamal encryption to improve the robustness of the election and ensure that the election proceeds normally without losing fairness. Even if there is interference from malicious users, there is no need to restart the voting protocol.
[0185] Third, in response to the problem of multiple candidates, this application uses a more flexible point-based voting system, so that voters can better express their wishes. At the same time, it uses non-interactive zero-knowledge proofs and traceable ring signatures to ensure that each vote is verifiable and legal, and internal adversaries who disrupt the election can be discovered and held accountable in a timely manner.
[0186] Fourthly, this application implements a new blockchain-based self-counting score voting protocol that is robust and traceable. The score mechanism introduced in the invention makes elections more flexible and more representative of public opinion. At the same time, in response to the low fault tolerance of previous self-counting voting, this application adopts Shamir secret sharing and time lock puzzles, which not only ensures fairness but also improves fault tolerance. Under this application, even if some voters disrupt the election, the election can still be carried out normally.
[0187] Fifth, this application implements the function of tracking and disclosing malicious voters. By using traceable ring signatures, any two ballots and their signatures can be verified. If there is repeated voting, their identity information will be disclosed.
[0188] Sixth, this application has a public verifiable function. By designing a reasonable zero-knowledge proof protocol, it not only ensures the legitimacy of the voter's identity, but also enables the voter to verify that each ballot is legal without disclosing private information, and the sum of the scores used for encryption is P, which is equal to the specified score.
[0189] See also Figure 3A blockchain-based self-statistical score voting device is provided to meet one of the purposes of this application, including an initialization module 1100, a key generation module 1200, a voting module 1300, a verification module 1400 and a counting module 1500. Among them, the initialization module 1100 is configured so that during the initialization phase, the election agency obtains the system security parameters and the basic election parameters, and generates the system global public parameters based on the system security parameters and the basic election parameters, wherein the basic election parameters include the number of candidates, the election event number, the time difficulty coefficient, and the predefined minimum number of participants; the key generation module 1200 is configured so that during the key generation phase, each voter inputs the system global public parameters into the election agency to generate his / her own public-private key pair, and inputs his / her own public key into the election agency, and the election agency generates his / her corresponding secret share and recognizes him / her as a qualified voter; the voting module 1300 is configured so that during the voting phase, each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legality of the ballot; the verification module 1400 is configured so that during the verification phase, anyone verifies any ballot and its corresponding signature to determine the validity of the ballot, so as to screen out all valid ballots; the counting module 1500 is configured so that during the counting phase, participants can obtain the final election according to the valid ballot.
[0190] Based on any embodiment of this application, please refer to Figure 4 Another embodiment of the present application further provides an electronic device, which can be implemented by a computer device, such as Figure 4 As shown, a schematic diagram of the internal structure of a computer device. The computer device includes a processor, a computer-readable storage medium, a memory, and a network interface connected via a system bus. Among them, the computer-readable storage medium of the computer device stores an operating system, a database, and computer-readable instructions. The database may store a control information sequence. When the computer-readable instructions are executed by the processor, the processor can implement a self-statistical score voting method based on blockchain. The processor of the computer device is used to provide computing and control capabilities to support the operation of the entire computer device. The memory of the computer device may store computer-readable instructions. When the computer-readable instructions are executed by the processor, the processor can execute the self-statistical score voting method based on blockchain of the present application. The network interface of the computer device is used to connect and communicate with a terminal. Those skilled in the art will understand that Figure 4The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.
[0191] In this embodiment, the processor is used to execute Figure 3 The memory stores the program code and various data required to execute the above modules or submodules. The network interface is used to transmit data between user terminals or servers. The memory in this embodiment stores the program code and data required to execute all modules / submodules in the blockchain-based self-statistical score voting device of this application, and the server can call the program code and data of the server to execute the functions of all submodules.
[0192] The present application also provides a storage medium storing computer-readable instructions. When the computer-readable instructions are executed by one or more processors, the one or more processors execute the steps of the blockchain-based self-statistical score voting method described in any embodiment of the present application.
[0193] The present application also provides a computer program product, including a computer program / instruction, which, when executed by one or more processors, implements the steps of the blockchain-based self-statistical score voting method described in any embodiment of the present application.
[0194] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments of the present application can be implemented by instructing the relevant hardware through a computer program, and the computer program can be stored in a computer-readable storage medium. When the program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, the aforementioned storage medium can be a computer-readable storage medium such as a disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).
[0195] The above description is only a partial implementation method of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present application. These improvements and modifications should also be regarded as the scope of protection of the present application.
[0196] In summary, this application implements a new blockchain-based self-statistical score voting protocol that is robust and traceable. The score mechanism introduced in the invention makes elections more flexible and better reflects public opinion. At the same time, in response to the problems of low fault tolerance in previous self-statistical voting, the invention adopts secret sharing and time-lock puzzles, which not only ensures fairness but also improves fault tolerance. Under this application, even if some voters disrupt the election, the election can still be carried out normally.
Claims
1. A self-statistical score voting method based on blockchain, characterized in that: include: In the initialization phase, the election agency obtains system security parameters and basic election parameters, and generates system global public parameters based on the system security parameters and basic election parameters, wherein the basic election parameters include the number of candidates, election event number, time difficulty coefficient, and predefined minimum number of participants; In the key generation phase, each voter inputs the system global public parameters to the election agency to generate his / her own public-private key pair, and inputs his / her own public key to the election agency, and the election agency generates the corresponding secret share and recognizes him / her as a qualified voter; During the voting phase, each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legitimacy of the ballot; In the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, in order to screen out all valid ballots; During the counting phase, any participant can obtain the final election results based on the valid votes.
2. The blockchain-based self-statistical score voting method according to claim 1 is characterized in that: In the initialization phase, the election agency obtains system security parameters and basic election parameters, and the steps of generating system global public parameters based on the system security parameters and basic election parameters include: During the initialization phase, enter the security parameter 1 λ , the number of candidates m, the election event ID EventID, the time difficulty coefficient t, the predefined minimum number of participants k, the election agency generates a k-1 order selection polynomial f(x) = s + a1x + a2x 2 +…+a k-1 x k-1 , time lock puzzle Puzzle = (N, μ, t, C), where, are all strong RSA integers, μ is a random number, C=s+T mod N, candidate list CList, H, H1, H2 are hash functions. After initialization, the election agency discloses the system's global public parameters PP=(G, g, p, k, H, H1, H2, Puzzle, CList, EventID). Assume that the number of points allocated to voters in fractional voting is P.
3. The blockchain-based self-statistical score voting method according to claim 2 is characterized in that: In the key generation phase, each voter inputs the system global public parameters to the election agency to generate his / her own public-private key pair, and inputs his / her own public key to the election agency. The election agency generates its corresponding secret share and recognizes it as a qualified voter, including: Generate a public-private key pair corresponding to each voter according to the system global public parameter PP, wherein the public-private key pair includes a public key and a private key, and the public key is the public key y i , the private key is a private key Each voter uses the public key y i Input to the election body to generate zero-knowledge proof ZKPoK 1i ; The election body is based on the zero-knowledge proof ZKPoK 1i , confirming that the voter has the public key y i The corresponding private key x i ; The election authority generates a secret share s for the voter i =f(y i ), and calculate Where, f(x) = s + a1x + a2x 2 +…+a k-1 x k-1 , the public key y i Mapped to the secret share s i .
4. The blockchain-based self-statistical score voting method according to claim 3 is characterized in that: Each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legality of the ballot, including: During the voting phase, each voter will submit the private key x i , secret share s i and for Candidate C j The score p i,j Input to the election body to generate encrypted ballot B i and the signature σ i , where B i =(b i,1 ,...,b i,m ) represents the encrypted ballot B i Contains m encrypted items b i,j , each encrypted term b i,j is the score p i,j The calculation formula for each encryption item is: in, It is used to construct partial results of encrypted ballots; Its role is as an auxiliary parameter; ρ i,j is a random number selected from the group; The voter generates a zero-knowledge proof ZKPoK for each vote 2i ,in, Used to prove that the voter has the corresponding private key x i and the secret share s i ; Used to prove that each score p in each ballot i,j All within the legal range, 0≤p i,j ≤P; It is used to prove that the sum of the scores of all ballots submitted by voters is equal to the predetermined total score P. Each voter generates an encrypted ballot B i Sign, order Among them, EventID represents the election event number, PK is the public key set of all voters, PK = {y i } i∈[1,n] ; Calculate the hash value and multiple intermediate parameters. The calculation formula includes: Among them, H is a hash function used to generate a hash value h based on election event information and public key. is the signature value of the ballot, and It is the calculated intermediate value used to generate the final signature; Continue with the steps to generate a zero-knowledge proof, including: Voters randomly choose w i , and calculate For each candidate C j , voters randomly choose z j ,e j ∈Z p , and calculate Voter Count in, is the set of c values of all candidates, where each c j is through calculated; is the set of d values of all candidates, where each d j is through calculated; Voter Count i =E-∑ j≠i e j ,z i =w i -e i x i ; Voter Generates Signature in, is the set of z values of all candidates, where each z i It is through z i =w i -e i x i calculated; is the set of e values of all candidates, where each e i It is through e i =E-∑ j≠i e j calculated; Voters will i ,σ i ,ZKPoK 2i ) is published on the blockchain network, where σ is the final signature and ZKPoK 2i It is a zero-knowledge proof.
5. The blockchain-based self-statistical score voting method according to claim 4 is characterized in that: During the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, and the steps to screen out all valid ballots include: Calculation as well as For all i, calculate and determine For all i, calculate and determine Calculation Detection Is it equal to If the equation holds true, the ballot is valid and 1 is returned; otherwise, 0 is returned, indicating that the ballot is unreliable.
6. The blockchain-based self-statistical score voting method according to claim 5 is characterized in that: During the verification phase, anyone verifies any ballot and its corresponding signature to determine the validity of the ballot, after screening out all valid ballots, including: During the tracking phase, anyone can verify the two suspicious votes (B c ,σ c ,ZKPoK 2c )、(B c ′,σ c ′, ZKPoK2′c) to check. If the two votes are duplicated, Linked is returned. If the same voter casts two non-duplicate votes, the public key of the voter is returned. Otherwise, indep is returned. The specific steps include: Calculation For all i, calculate and determine δ′ i =R′0(R′1) i ; Initialize an empty list TList and judge δ i Is it equal to δ′ i , if the equation holds true, the public key corresponding to i is recorded in the list TList; Check the list content. If the list TList contains the public keys of all voters, it means that some voters have voted repeatedly and the voting content is the same. Return Linked; If the list contains only one voter's public key, it means that the voter cast two non-duplicate votes, and the voter's public key is returned; if neither of the above two situations is true, indep is returned, indicating normal.
7. The blockchain-based self-statistical score voting method according to claims 1 to 6, characterized in that: During the vote counting phase, any participant can use the valid votes to obtain the final election results, including: During the vote counting phase, if all voters participate normally, anyone interested in the election event can collect votes and count them, including: Analyze Puzzle = (N, μ, t, C) and calculate and determine The final calculation yields s = CT mod N; Aggregate all valid votes published on the blockchain network B i =(α i,j ,β i,j ) j∈[1,m] ; Calculation Calculated based on secret sharing So we can calculate Counting votes Among them, if P j The value is small and is calculated by brute force; During the vote counting phase, if some voters engage in malicious behavior such as not voting or voting repeatedly, it will interfere with the normal vote counting of other voters and cause election anomalies. The anomaly handling and recovery process includes: Assumptions Indicates the normal participation of voters in this election phase. Indicates the set of abnormal voters, solve Puzzle = (N, μ, t, C), calculate and determine The final calculation yields s = CT mod N; Process the published ballots to eliminate the impact of abnormal voters: Update and publish valid ballots Reaggregate all valid votes published on the blockchain network Calculation Counting restored votes Among them, if P j The value is small and is calculated by brute force.
8. A self-statistical score voting device based on blockchain, characterized in that: include: An initialization module is configured such that, during the initialization phase, the election agency obtains system security parameters and basic election parameters, and generates system global public parameters based on the system security parameters and basic election parameters, wherein the basic election parameters include the number of candidates, election event number, time difficulty coefficient, and a predefined minimum number of participants; The key generation module is configured such that, during the key generation phase, each voter inputs the system global public parameters into the election agency to generate his / her own public-private key pair, and inputs his / her own public key into the election agency, and the election agency generates his / her corresponding secret share and recognizes him / her as a qualified voter; The voting module is configured such that during the voting phase, each voter encrypts the corresponding voting content according to the system global public parameters, his / her own private key and the secret share, and signs the encrypted ballot to ensure the correctness and legality of the ballot; The verification module is set so that during the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, so as to screen out all valid ballots; The vote counting module is set up so that during the vote counting stage, anyone can obtain the final election results based on valid votes.
9. An electronic device, comprising a central processing unit and a memory, characterized in that: The central processing unit is used to call and run the computer program stored in the memory to execute the steps of the method according to any one of claims 1 to 7.
10. A computer-readable storage medium, characterized in that: It stores a computer program implemented according to the method described in any one of claims 1 to 7 in the form of computer-readable instructions, and when the computer program is called and executed by a computer, the steps included in the corresponding method are executed.
Citation Information
Patent Citations
Block chain-based electronic voting method capable of verifying fairness
CN114255034A
Block chain scoring and voting system based on anonymous convertible votes
CN116436608A
Public traceable electronic voting method, system and equipment based on block chain
CN117118587A
Voting method and device, electronic equipment and storage medium
CN117640106A
Blockchain-based election system
US11100743B1
