Blockchain-based self-scoring voting method and device, equipment and medium

By employing a blockchain-based self-statistical score voting method and technologies such as Shamir secret sharing and time-lock puzzles, the fairness and robustness issues of the self-statistical electronic voting system are resolved, achieving a fair and flexible election environment, improving fault tolerance and election transparency, and supporting multi-candidate voting.

CN119210803BActive Publication Date: 2025-11-28SOUTH CHINA AGRICULTURAL UNIVERSITY
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411253851.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-09
Publication Date
2025-11-28
Estimated Expiration
2044-09-09

AI Technical Summary

Technical Problem

Existing self-counting electronic voting systems suffer from issues of fairness and robustness. Late voters can obtain election results and interfere with the election, and malicious voter interference can lead to abnormal termination of the election. The error tolerance rate is low, and there is insufficient research on fractional voting, making it impossible to effectively express voters' wishes.

Method used

It adopts a blockchain-based self-statistical score voting method, utilizes Shamir secret sharing and time-lock puzzles to ensure election fairness, uses threshold ElGamal encryption to improve robustness, introduces a score mechanism and non-interactive zero-knowledge proofs to verify the legitimacy of votes, and tracks duplicate voting through traceable ring signatures.

Benefits of technology

It achieves a fair and flexible election environment, increases the tolerance for errors, can track malicious voters, ensures the fairness and transparency of election results, supports multi-candidate voting, and reduces the waste of computing resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119210803B_ABST
    Figure CN119210803B_ABST
Patent Text Reader

Abstract

The application relates to a blockchain-based self-statistic score voting method, device, equipment and medium. In the initialization stage, an election institution obtains system security parameters and election basic parameters, generates system global public parameters based on the system security parameters and the election basic parameters, wherein the election basic parameters include the number of candidates, the election event number, the time difficulty coefficient and the predefined minimum number of participants; in the voting stage, each voter encrypts the corresponding voting content according to the system global public parameters, the private key and the secret share of the voter, and signs the encrypted vote to ensure the correctness and legality of the vote; in the counting stage, any participant can obtain the final election result according to the valid vote. The application can ensure that the election proceeds normally under the premise of fairness, and even if there is malicious user intervention, the voting protocol does not have to be restarted.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of data encryption, and in particular to a self-statistics score voting method based on a blockchain, a corresponding device, an electronic device and a computer readable storage medium. BACKGROUND

[0002] Voting, as a method of expressing personal will and reaching collective consensus, plays an important role in modern democratic societies. Traditional paper voting is limited by time and space, and the process is cumbersome and prone to errors, which is less practical in the information age. Therefore, electronic voting has emerged to adapt to social development. Electronic voting refers to the use of computer technology and Internet platforms to conduct voting and voting activities, which greatly simplifies the voting process, allows voters to vote anywhere using networked devices, and improves the portability and efficiency of voting. At the same time, through the use of cryptography and identity verification mechanisms, electronic voting can provide higher transparency and security. In addition, electronic voting also eliminates the need for printed paper ballots, reducing the cost of election activities to some extent.

[0003] Traditional electronic voting often requires a trusted centralized agency, but such a centralized architecture is vulnerable to attacks leading to single point of failure. In order to break the centralization and reduce the trust cost of voting interaction, self-statistics electronic voting has emerged. Self-statistics electronic voting is a new paradigm of decentralized electronic voting systems, in which the vote counting is a public process, and any participant can calculate the voting results and verify the votes, putting the initiative of vote counting in the hands of each participant. However, the current self-statistics electronic voting widely exists the problems of fairness and robustness, that is, the post-voting voters can use the self-statistics feature to obtain the election results in advance, and decide whether to change the vote or interrupt the election according to the obtained election results, so as to achieve the purpose of interfering with the election, resulting in the loss of fairness of the election. In addition, due to the lack of support of underlying decentralized architecture, self-statistics electronic voting cannot make breakthroughs in application.

[0004] The emergence of blockchain technology provides a new method for solving the widespread fairness and robustness problems in the self-statistics electronic voting protocol, while providing an underlying decentralized architecture for traditional self-statistics electronic voting. Therefore, research on self-statistics electronic voting protocols based on blockchain has been continuously deepened. However, there is no good solution to the problem of how to improve the security and practicality of self-statistics electronic voting based on blockchain to achieve an effective balance between function and utility.

[0005] Currently, the traditional technology has the following problems:

[0006] Firstly, in the normal election process, the later voters can always get an advantage, that is, the later voters can use the votes of the voters who have voted to calculate the election result in advance, which is unfair to other voters. In addition, the existing self-counting electronic voting scheme based on blockchain mostly uses commitment to ensure fairness, but commitment increases the complexity of interaction.

[0007] Secondly, in the election process, assuming that each legitimate voter normally participates in the election event, each voter can normally obtain the election result. However, if some malicious voters intervene in the election and do not normally vote, the election event will be abnormally terminated. The tracking of malicious voters needs to be improved, and the detection of the repeated voting and fake voting of malicious voters needs to be improved.

[0008] Thirdly, the fault tolerance of the election is low. In actual application, the disturbance of malicious voters often leads to the forced termination of the election, and the election needs to be restarted, which wastes a large amount of computing resources.

[0009] Fourthly, there is little research on score voting at present, but in the real scene, there are often multiple candidates, and the voter cannot well express the degree of his / her will if only using "yes / no".

[0010] In summary, the voting method in the prior art has the problems of wasting a large amount of computing resources due to the disturbance of malicious voters, and the election event being abnormally terminated if some malicious voters intervene in the election and do not normally vote. The applicant makes corresponding exploration to solve the problems. SUMMARY

[0011] The purpose of the present application is to solve the above problems and provide a self-counting score voting method based on blockchain, a corresponding device, an electronic device and a computer readable storage medium.

[0012] To meet the various purposes of the present application, the present application adopts the following technical solutions:

[0013] One of the purposes of the present application is to propose a self-counting score voting method based on blockchain, comprising:

[0014] In the initialization stage, the election agency obtains system security parameters and election basic parameters, generates system global public parameters based on the system security parameters and election basic parameters, wherein the election basic parameters include the number of candidates, the number of election events, the time difficulty coefficient and the predefined minimum number of participants.

[0015] In the key generation phase, each voter inputs the system global public parameter to the election authority to generate his own public-private key pair, and inputs his public key to the election authority, which generates its corresponding secret share and recognizes it as a qualified voter;

[0016] In the voting phase, each voter encrypts his corresponding vote content according to the system global public parameter, his private key and the secret share, and signs the encrypted vote to ensure the correctness and legality of the vote, which includes:

[0017] In the voting phase, each voter inputs the private key x i , the secret share s i and the score p j of the candidate C i,j to the election authority to generate the encrypted vote B i and the signature σ i , wherein B i =(b i,1 ,...,b i,m ) represents the encrypted vote B i , which contains m encrypted items b i,j , and each encrypted item b i,j is the encryption of the score p i,j , and the calculation formula of each encrypted item is:

[0018]

[0019] wherein, which is used to construct the partial result of the encrypted vote; which is an auxiliary parameter; ρ i,j is a random number selected from the group;

[0020] The voter generates zero-knowledge proof ZKPoK 2i for each vote, wherein, which is used to prove that the voter owns the corresponding private key x i and the secret share s i ; which is used to prove that each score p i,j in each vote is within the legal range, 0≤p i,j ≤P; which is used to prove that the sum of the scores in all the votes submitted by the voter is equal to the predetermined total score P,

[0021] Each voter signs the generated encrypted vote B i , and let wherein EventID represents an election event number, PK is a public key set of all voters, PK = {y i} i∈[1,n] ;

[0022] The hash value and a plurality of intermediate parameters are calculated, and the calculation formula includes:

[0023]

[0024] wherein H is a hash function, used to generate a hash value h based on the election event information and the public key, is a signature value of the vote, and is an intermediate value calculated to generate the final signature;

[0025] The step of generating the zero-knowledge proof is continued, including:

[0026] The voter randomly selects w i and calculates

[0027] For each candidate C j , the voter randomly selects z j , e j ∈Z p and calculates

[0028] The voter calculates wherein is a set of c values of all candidates

[0029] , wherein each c j is calculated by ; is a set of d values of all candidates, wherein each d j is calculated by ;

[0030] The voter calculates e i = E - ∑ j≠i e j , z i = w i - e i x i ;

[0031] The voter generates a signature wherein is a set of z values of all candidates, wherein each z i is calculated by z i = w i - e i xi is calculated; is a set of e values of all candidates, wherein each e i is calculated by e i = E -∑ j≠i e j is calculated;

[0032] The voter publishes (B i ,σ i ,ZKPoK 2i ) on a blockchain network, wherein σ is the final signature, and ZKPoK 2i is a zero-knowledge proof;

[0033] In the verification phase, anyone verifies any vote and its corresponding signature to determine the validity of the vote to filter out all valid votes;

[0034] In the counting phase, any participant can obtain the final election result according to the valid votes.

[0035] Optionally, in the initialization phase, the election authority obtains system security parameters and election basic parameters, and generates system global public parameters based on the system security parameters and the election basic parameters, including:

[0036] In the initialization phase, input system security parameters 1 λ , the number of candidates m, the election event number EventID, the time difficulty coefficient t, the predefined minimum number of participants k, the election authority generates a polynomial f(x) of k-1 order, f(x) = s + a1x + a2x 2 +…+a k- 1x k-1 , a time lock puzzle Puzzle = (N, μ, t, C), wherein, are strong RSA integers, μ is a random number, C = s + T mod N, a candidate list CList, H, H1, H2 are hash functions, after initialization, the election authority publishes the system global public parameters PP = (G, g, p, k, H, H1, H2, Puzzle, CList, EventID), and it is assumed that the total score allocated to the voter in the fractional voting is P.

[0037] Optionally, in the key generation phase, each voter inputs the system global public parameters to the election authority to generate his own public and private key pair, and inputs his own public key to the election authority, and the election authority generates its corresponding secret share and acknowledges it as a qualified voter, including:

[0038] According to the system global public parameter PP, a public-private key pair corresponding to each voter is generated, wherein the public-private key pair comprises a public key and a private key, the public key is a public key y i , and the private key is a private key x i ,

[0039] Each voter inputs the public key y i to the election authority to generate a zero-knowledge proof ZKPoK 1i ;

[0040] The election authority confirms that the voter has a private key x i corresponding to the public key y 1i according to the zero-knowledge proof ZKPoK i ;

[0041] The election authority generates a secret share s i for the voter = f(y i ), and calculates where f(x) = s + a1x + a2x 2 + … + a k-1 x k-1 , the public key y i is mapped to the secret share s i .

[0042] Optionally, in the verification stage, anyone verifies any vote and its corresponding signature to determine the validity of the vote to filter out all valid votes, including:

[0043] Calculate and determine and

[0044] For all i, calculate and determine

[0045] For all i, calculate and determine

[0046] Calculate and determine Detect whether it is equal to If the equation is true, the vote is valid, and return 1; otherwise, return 0, indicating that the vote is unreliable.

[0047] Optionally, after the step of verifying any vote and its corresponding signature to determine the validity of the vote in the verification stage, anyone can filter out all valid votes, including:

[0048] In the tracking stage, anyone can suspect two votes (B c ,σc ZKPoK 2c ), (B c , σ c ) ZKPoK 2c ) is checked, if the two votes are identical, Linked is returned, if the same voter cast two non-identical votes, the public key of the voter is returned, otherwise, indep is returned, the steps include:

[0049] Calculate

[0050] For all i, calculate

[0051] Initialize an empty list TList, judge whether δ i is equal to δ i , if the equality holds, record the public key corresponding to i in the list TList;

[0052] Check the list content, if the list TList contains the public keys of all voters, it means that there is a voter who has repeated voting and the voting content is the same, return Linked;

[0053] If the list contains only the public key of one voter, it means that the voter has cast two non-identical votes, return the public key of the voter; if the above two cases do not hold, return indep, indicating normal.

[0054] Optionally, in the counting phase, any participant can obtain the final election result according to the valid votes, the steps include:

[0055] In the counting phase, if all voters participate normally, anyone interested in the election event can collect the votes and calculate, the steps include:

[0056] Parse Puzzle = (N, μ, t, C), calculate Finally, calculate s = C - T mod N;

[0057] Aggregate all valid votes B i = (α i,j , β i,j ) j∈[1,m] published on the blockchain network;

[0058] Calculate

[0059] According to the secret sharing, calculate Therefore, can be calculated

[0060] Counting votes

[0061]

[0062] wherein, if P j The value is small, and is calculated by brute force.

[0063] In the vote counting stage, if some voters have malicious behaviors such as not voting or repeatedly voting, it will interfere with the normal voting of other voters and cause election abnormalities. The abnormality processing and recovery process includes:

[0064] Suppose represents the set of normal voters participating in the election stage, represents the set of abnormal voters, and the puzzle is analyzed = (N, μ, t, C) to calculate and determine Finally, the calculation can obtain s = C-T mod N.

[0065] The published votes are processed to eliminate the influence caused by abnormal voters:

[0066] Update and publish the valid votes

[0067] Reaggregate all valid votes published on the blockchain network

[0068] Calculate and determine

[0069] Calculate the recovered votes wherein, if P j The value is small, and is calculated by brute force.

[0070] Another purpose of the present application is to provide a self-statistic score voting device based on a blockchain, comprising:

[0071] An initialization module is set to, in the initialization stage, an election agency acquires system security parameters and election basic parameters, generates system global public parameters based on the system security parameters and election basic parameters, wherein the election basic parameters include the number of candidates, the election event number, the time difficulty coefficient, and the predefined minimum number of participants;

[0072] A key generation module is set to, in the key generation stage, each voter inputs the system global public parameter to the election agency to generate his own public and private key pair, and inputs his own public key to the election agency. The election agency generates its corresponding secret share and recognizes it as a qualified voter;

[0073] a voting module configured to encrypt the voting content corresponding to each voter according to the global public parameter of the system, the private key of the voter and the secret share, and to sign the encrypted vote to ensure the correctness and legality of the vote, comprising:

[0074] In the voting phase, each voter inputs the private key x i , the secret share s i and the score p j of the candidate C i,j to the election authority to generate an encrypted vote B i and a signature σ i , wherein B i =(b i,1 ,...,b i,m ) represents the encrypted vote B i , which contains m encrypted items b i,j , and each encrypted item b i,j is an encryption of the score p i,j , and the calculation formula of each encrypted item is:

[0075]

[0076] wherein, which is used to construct the partial result of the encrypted vote; which is an auxiliary parameter; ρ i,j is a random number selected from the group;

[0077] The voter generates zero-knowledge proof ZKPoK 2i for each vote, wherein, which is used to prove that the voter has the corresponding private key x i and the secret share s i ; which is used to prove that each score p i,j in each vote is within the legal range, 0≤p i,j ≤p; which is used to prove that the sum of the scores in all votes submitted by the voter is equal to the predetermined total score p

[0078] Each voter signs the generated encrypted vote B i , and let wherein EventID represents the election event number, and PK is a set of public keys of all voters, PK={y i} i∈[1,n] ;

[0079] The hash value and a plurality of intermediate parameters are calculated, and the calculation formula includes:

[0080]

[0081] wherein H is a hash function, used to generate a hash value h based on the election event information and the public key, is a signature value of the vote, and is an intermediate value calculated to generate the final signature;

[0082] The step of generating the zero-knowledge proof is continued, including:

[0083] The voter randomly selects w i and calculates

[0084] For each candidate C j , the voter randomly selects z j , e j ∈Z p and calculates

[0085] The voter calculates wherein is a set of c values of all candidates, wherein each c j is calculated by ; is a set of d values of all candidates, wherein each d j is calculated by ;

[0086] The voter calculates e i = E - ∑ j≠i e j , z i = w i - e i x i ;

[0087] The voter generates a signature wherein is a set of z values of all candidates, wherein each z i is calculated by z i = w i - e i x i ; is a set of e values of all candidates, wherein each e i is calculated by e i = E - ∑ j≠i e j ;

[0088] voters will (B i ,σ i , ZKPoK 2i ) is published on the blockchain network, wherein, sigma is the final signature, ZKPoK 2i is a zero-knowledge proof;

[0089] a verification module, configured to verify any vote and its corresponding signature in the verification stage to determine the validity of the vote, and to filter out all valid votes;

[0090] a counting module, configured to count the valid votes in the counting stage to obtain the final election result.

[0091] An electronic device is provided to adapt to another purpose of the present application, comprising a central processor and a memory, the central processor is used to call and run the computer program stored in the memory to execute the steps of the self-scoring voting method based on blockchain described in the present application.

[0092] A computer readable storage medium is provided to adapt to another purpose of the present application, which stores a computer program implemented according to the self-scoring voting method based on blockchain in the form of computer readable instructions, when the computer program is called and run by the computer, the steps included in the corresponding method are executed.

[0093] Compared with the prior art, the present application aims at the problems in the prior art that the voting method often leads to forced suspension of the election, the need to restart the election, the waste of a large amount of computing resources, and the abnormal termination of the election event if some malicious voters intervene in the election and do not perform normal voting.

[0094] Firstly, the present application solves the adaptability problem in the self-scoring electronic voting protocol based on blockchain, and aims at the problem that in the normal election process, the later voters can always obtain an advantage, i.e. the voters who vote later can obtain the election result by calculating in advance, which is unfair to other voters; the present application uses cryptographic technologies such as Shamir secret sharing and time lock puzzles to efficiently solve the adaptability problem in the self-scoring electronic voting, and creates a fair election environment for each voter;

[0095] Secondly, the application solves the problem of abnormal interruption in the self-statistical electronic voting protocol based on the blockchain. In the election process, if some malicious voters intervene in the election and do not vote normally, the election event will be abnormally terminated. The application uses threshold ElGamal encryption to improve the robustness of the election and ensure that the election is conducted normally under the premise of fairness. Even if there is intervention by malicious users, the voting protocol does not need to be restarted.

[0096] Thirdly, for the problem of multiple candidates, the application uses a more flexible score voting system, which allows voters to better express their will. At the same time, the application uses non-interactive zero-knowledge proof and traceable ring signature to ensure that each vote is verifiable and legal. For internal adversaries who destroy the election, the application can also discover and hold accountable in time.

[0097] Fourthly, the application realizes a new self-statistical score voting protocol based on the blockchain with robustness and traceability. The score mechanism introduced in the application makes the election more flexible and better reflects public opinion. At the same time, to solve the problem of low fault tolerance of the previous self-statistical voting, the application uses Shamir secret sharing and time lock puzzles to ensure fairness and improve fault tolerance. Even if some voters destroy the election, the election can still be conducted normally under the application.

[0098] Fifthly, the application realizes the function of tracking and disclosing malicious voters. By using traceable ring signature, any two votes and their signatures can be verified. If there is repeated voting behavior, the identity information will be disclosed.

[0099] Sixthly, the application has the function of public verifiability. By designing a reasonable zero-knowledge proof protocol, the application ensures the legality of the voter's identity and allows the verifier to verify that each vote is legal without revealing the private information. The sum of the encrypted scores is P, which is equal to the specified score. BRIEF DESCRIPTION OF DRAWINGS

[0100] The above and / or additional aspects and advantages of the application will become apparent and more readily appreciated from the following description, taken in conjunction with the accompanying drawings, in which:

[0101] Figure 1 The structure block diagram of the self-statistical score voting protocol based on the blockchain in the embodiment of the application;

[0102] Figure 2 The flowchart of the self-statistical score voting method based on the blockchain in the embodiment of the application;

[0103] Figure 3 The principle block diagram of the self-statistical score voting device based on the blockchain in the embodiment of the application;

[0104] Figure 4 FIG. 1 is a structural schematic diagram of a computer device in an embodiment of the present application. DETAILED DESCRIPTION

[0105] Embodiments of the present application are described in detail below with reference to the attached drawing figures, wherein the same or like component have the same or similar reference numbers and meanings throughout. The embodiments described below are exemplary only, and are not to be construed as limiting the present application.

[0106] It should be understood that when an element or layer is referred to as being "on" another element or substrate, it can be directly on the element or substrate or intervening layers can also be present. Herein, "first", "second", "third", "fourth", "fifth", "sixth", "top", "bottom", "over", "under", and "on" are not absolute terms but are used for ease of description. It should be understood that the use of the terms "include", "comprise", "have", "contain", "carry" and the like are meant to be non-limiting in that they do not preclude the presence of other elements or steps than those listed. It should be understood that the use of the terms "connected", "coupled", or "in communication with" are not meant to be limited to a direct connection between two elements or to a direct physical connection between two elements. It should be understood that the use of the term "connected" or "coupled" can include the presence of wireless connections or wireless couplings. It should be understood that the use of the term "and / or" includes all possible combinations of one or more of the associated listed items and all combinations of the associated listed items.

[0107] It should be understood that the terms used herein are not intended to limit the present application to a given aspect, but rather the terms are used in a descriptive sense only and thus should not be construed to limit the present application. Further, unless otherwise defined, all terms used herein including technical and scientific terms have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.

[0108] Those skilled in the art will understand that, as used herein, the terms "client," "terminal," and "terminal device" include both devices that are solely wireless signal receivers and devices that have both receiving and transmitting hardware that can communicate bi-directionally over a bi-directional communication link. Such devices can include cellular or other communication devices with single-line or multiple-line displays, or no display, Personal Communications Service (PCS) devices that can combine a voice and / or data processor, a PDA that can include a radio frequency receiver and a pager, Internet and / or Intranet access, a Web browser, a calendar, and / or a GPS receiver, a conventional laptop and / or palmtop computer and / or other devices that have a radio frequency receiver. As used herein, the terms "client," "terminal," and "terminal device" can be portable, transportable, mounted in a vehicle (aeronautical, maritime, and / or land), or adapted and / or configured for local and / or distributed operation on Earth and / or any other location in space. As used herein, the terms "client," "terminal," and "terminal device" can also be a communication terminal, an Internet terminal, a music / video playing terminal, such as a PDA, a Mobile Internet Device (MID), and / or a mobile phone with music / video playing function, a smart television, a set-top box, and / or the like.

[0109] As used herein, the terms "server," "client," "service node," and the like refer to hardware that has the equivalent capability of a personal computer, i.e., an electronic device having a central processing unit (including an arithmetic unit and a controller), a memory, an input device, and an output device, and the like necessary components disclosed by the Von Neumann principle. A computer program is stored in the memory, the central processing unit loads the program stored in the external memory into the memory and runs it, executes the instructions in the program, and interacts with the input and output devices, thereby completing a specific function.

[0110] It should be noted that the concept of "server" in the present application can also be extended to the case of a server cluster. According to the principle of network deployment understood by those skilled in the art, the servers should be logically divided, and in physical space, these servers can be independent of each other but can be called through an interface, or can be integrated into a physical computer or a computer cluster. Those skilled in the art should understand this variation and should not be restricted by the implementation of the network deployment of the present application.

[0111] One or more technical features of the present application, unless explicitly specified, can be deployed on a server for implementation and accessed by a client remotely calling an online service interface provided by the server, or can be directly deployed and run on a client for implementation.

[0112] The neural network model referred to or possibly referred to in the present application, unless explicitly specified, can be deployed on a remote server and remotely called by a client, or can be deployed on a client with sufficient device capability for direct calling. In some embodiments, when it runs on a client, its corresponding intelligence can be obtained through transfer learning to reduce the requirement for client hardware running resources and avoid excessive occupation of client hardware running resources.

[0113] The various data involved in the present application, unless explicitly specified, can be stored remotely on a server or stored locally on a terminal device, as long as it is suitable for being called by the technical solutions of the present application.

[0114] Those skilled in the art should know that the various methods of the present application, although based on the same concept and described to present commonality among them, are independently executable unless otherwise specified. Similarly, for each embodiment disclosed in the present application, it is based on the same inventive concept, so the same concept is understood to be equivalent, and although the concept is expressed differently, it is only for convenience and is appropriately transformed.

[0115] Unless it is explicitly stated that the various embodiments disclosed in the present application are mutually exclusive, the related technical features involved in each embodiment can be cross-combined to flexibly construct new embodiments, as long as such combination does not deviate from the spirit of the present application and can meet the needs of the prior art or solve some aspects of the deficiencies in the prior art. For this variation, those skilled in the art should know.

[0116] Please refer to Figure 1 , Figure 1For the structural block diagram of the blockchain-based self-statistical score voting protocol in the embodiments of the present application, the blockchain-based self-statistical score voting method of the present application can be implemented based on a blockchain-based self-statistical score voting system with robustness and traceability, which includes an election authority, a blockchain network, n voters, and m candidates. Each voter can normally upload information to the blockchain. The instance is divided into multiple stages, which mainly include a preparation stage, a voting stage, and a counting stage. In the initialization stage, the election authority initializes the election system, generates system global public parameters, the voters generate keys, and are registered at the election authority. In the voting stage, the voters vote and can exercise verification and tracking rights to supervise the election event. In the counting stage, if all voters participate normally, the final result can be obtained by collecting all votes and performing simple calculation. If only part of the voters participate, the participating voters need to eliminate abnormalities before the counting.

[0117] Based on the above-mentioned exemplary scenarios, please refer to Figure 2 In one embodiment of the blockchain-based self-statistical score voting method of the present application, the method includes:

[0118] In the initialization stage, the election authority obtains system security parameters and election basic parameters, generates system global public parameters based on the system security parameters and the election basic parameters, wherein the election basic parameters include the number of candidates, the election event number, the time difficulty coefficient, and the predefined minimum number of participants.

[0119] The election authority can be an election system, and the voters can be voter clients. In the initialization stage, the election authority obtains system security parameters and election basic parameters, generates system global public parameters based on the system security parameters and the election basic parameters, wherein the election basic parameters include the number of candidates, the election event number, the time difficulty coefficient, and the predefined minimum number of participants.

[0120] Specifically, in the initialization stage, input the security parameter 1 λ , the number of candidates m, the election event number EventID, the time difficulty coefficient t, and the predefined minimum number of participants k. The election authority generates a k-1 order election polynomial f(x) = s + a1x + a2x 2 + … + a k-1 x k-1 , a time lock puzzle Puzzle = (N, μ, t, C), wherein are 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 authority 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 the voter in the score voting is P, the system global public parameter PP and the time lock puzzle Puzzle are broadcast to the blockchain network.

[0121] Step S20, in the key generation phase, each voter inputs the system global public parameter into the election authority to generate his own public-private key pair, and inputs his public key into the election authority, and the election authority generates its corresponding secret share and recognizes it as a qualified voter.

[0122] After generating the system global public parameter PP based on the system security parameters and the election basic parameters, in the key generation phase, each voter inputs the system global public parameter PP into the election authority to generate his own public-private key pair, and inputs his public key into the election authority, and the election authority generates its corresponding secret share and recognizes it as a qualified voter.

[0123] Specifically, according to the system global public parameter PP, the public-private key pair corresponding to each voter is generated, wherein the public-private key pair includes a public key and a private key, the public key is a public key y i , and the private key is a private key x i .

[0124] Each voter inputs the public key y i into the election authority to generate zero-knowledge proof ZKPoK 1i .

[0125] The election authority confirms that the voter has a private key x i corresponding to the public key y i according to the zero-knowledge proof ZKPoK 1i .

[0126] The election authority generates a secret share s i for the voter f(y i ), and calculates wherein f(x) = s + a1x + a2x 2 + … + a k-1 x k-1 , the public key y i is mapped to the secret share s i .

[0127] The above steps ensure that the public key and private key pair of the voter is valid, and by generating the secret share s i and calculating τ i The election authority can generate a secret share associated with the public key of each voter, significantly improving the security of the vote and ensuring the fairness and effectiveness of the election process.

[0128] In the voting phase, each voter encrypts the corresponding vote content according to the system global public parameter, the private key and the secret share, and signs the encrypted vote to ensure the correctness and legality of the vote.

[0129] After the election authority generates its corresponding secret share and recognizes it as a qualified voter, in the voting phase, each voter encrypts the corresponding vote content according to the system global public parameter, the private key and the secret share, and signs the encrypted vote to ensure the correctness and legality of the vote.

[0130] Specifically, in the voting phase, each voter inputs the private key x i , the secret share s i and the score p j for the candidate C i,j to the election authority to generate an encrypted vote B i and a signature σ i , where B i = (b i,1 ,...,b i,m ) represents the encrypted vote B i contains m encrypted items b i,j , each encrypted item b i,j is an encryption of the score p i,j , and the calculation formula of each encrypted item is:

[0131]

[0132] wherein, which is used to construct part of the result of the encrypted vote; which is an auxiliary parameter; ρ i,j is a random number selected from the group;

[0133] The voter generates zero-knowledge proof ZKPoK 2i for each vote, wherein, to prove that the voter has the corresponding private key x i and the secret share s i ; to prove that each score pi,j All within the legal range, 0≤p i,j ≤P; For proving the sum of scores of all votes submitted by voters is equal to the predetermined total score P,

[0134] Each voter signs the generated encrypted vote B i , let Where EventID represents the election event number, PK is the public key set of all voters, PK={y i} i∈[1,n] ;

[0135] Calculate the hash value and multiple intermediate parameters, the calculation formula includes:

[0136]

[0137] Where H is a hash function, used to generate a hash value h based on election event information and public key, The signature value of the vote, And The calculated intermediate value is used to generate the final signature;

[0138] Continue to execute the steps of generating zero-knowledge proof, including:

[0139] The voter randomly selects w i , and calculates

[0140] For each candidate C j , the voter randomly selects z j , e j ∈Z p , and calculates Where y j is the public key of candidate C j ;

[0141] The voter calculates Where, Is the set of c values of all candidates, where each c j is calculated by ; Is the set of d values of all candidates, where each d j is calculated by ;

[0142] The voter calculates e i = E-∑ j≠i e j , z i =wi -e i x i ;

[0143] Voter generates signature wherein, is a set of z values of all candidates, wherein each z i is calculated by z i = w i -e i x i ; is a set of e values of all candidates, wherein each e i is calculated by e i = E -∑ j≠i e j ;

[0144] The voter publishes (B i ,σ i ,ZKPoK 2i ) on the blockchain network, wherein σ is the final signature, ZKPoK 2i is a zero-knowledge proof.

[0145] Based on the above steps, the blockchain network encryption technology and zero-knowledge proof are used to protect the voter privacy and ensure the effectiveness of the voting process, and the generation of encrypted votes involves complex encryption operations to ensure the privacy of the score, and the zero-knowledge proof is used to ensure the legality of the score and the correctness of the total score, and the calculation of the signature and the intermediate value ensures the authenticity and tamper resistance of the votes, and all these steps together build a safe and reliable electronic voting system.

[0146] Step S40, in the verification stage, any person verifies any vote and its corresponding signature to determine the validity of the vote to screen out all valid votes;

[0147] Each voter encrypts the corresponding vote content according to the global public parameter of the system, the private key of the voter and the secret share, and after signing the encrypted vote, in the verification stage, any person verifies any vote and its corresponding signature to determine the validity of the vote to screen out all valid votes;

[0148] Specifically, the determination of and

[0149] For all i, the determination of

[0150] For all i, the determination of

[0151] The determination of detect whether equal to If the equation is true, the vote is valid, return 1; otherwise, return 0, indicating that the vote is unreliable.

[0152] In the verification phase, anyone can verify any vote and its corresponding signature to determine the validity of the vote, and after the step of screening all valid votes, it includes:

[0153] In the tracking phase, anyone can check the suspicious two votes (B c ,σ c ,ZKPoK 2c )、(B′ c ,σ′ c ,ZKPoK′ 2c ) if the two votes are repeated, return Linked, if the same voter casts two non-repeated votes, return the public key of the voter, otherwise return indep, the specific steps include:

[0154] calculate

[0155] For all i, calculate δ′ i =R′0(R′1) i ;

[0156] Initialize an empty list TList, judge whether δ i is equal to δ′ i , if the equation is true, record the public key corresponding to i in the list TList;

[0157] Check the list content, if the list TList contains the public key of all voters, it means that there is a voter who has repeated voting, and the voting content is the same, return Linked;

[0158] If the list contains only one voter's public key, it means that the voter has cast two non-repeated votes, return the public key of the voter; if the above two cases do not match, return indep, indicating normal.

[0159] In some embodiments, in the tracking phase, when the check finds two suspicious votes, if they are the same (i.e., the voting content is repeated), the system returns Linked; Linked means that the two votes are repeated, and the same voter has voted the same 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, i.e., each voter has voted the same at different times or places. This indicates that the voting content is repeated, and is voted by the same voter.

[0160] If the same voter has voted twice without repeating the vote during the check, the system returns indep. indep means that the votes are not repeated, although the same voter has voted twice, but the content of each vote is different. This indicates that the voting record is independent, i.e., each vote is unique; when it is detected that a voter has voted without repeating the content, indep is returned. This means that even if the same voter has voted multiple times, the content of these votes is different, and the system has not detected repeated votes.

[0161] From the above steps, it can be seen that the verification phase is mainly used to confirm the validity of a single vote and its signature, and to verify the authenticity of the vote by calculating the hash value and the encrypted value, to ensure the authenticity and integrity of the vote, and to prevent tampering and forgery; the tracking phase is mainly used to detect the repeatability of the vote and the improper behavior, and to identify potential repeated voting or abnormal situations by comparing the hash values and encrypted values of different votes.

[0162] Step S50, in the counting phase, any participant can obtain the final election result according to the valid votes.

[0163] After screening all valid votes, in the counting phase, any participant can obtain the final election result according to the valid votes

[0164] Specifically, in the counting phase, any participant can obtain the final election result according to the valid votes, and the step includes:

[0165] In the counting phase, if all voters participate normally, anyone interested in the election event can collect the votes and calculate, which specifically includes:

[0166] Parse Puzzle = (N, μ, t, C), calculate to determine The final calculation can obtain s = C - T mod N;

[0167] Aggregate all valid votes B published on the blockchain network i = (α i,j , β i,j )j∈[1,m] ;

[0168] computing determination

[0169] According to the secret sharing calculation Therefore, the vote can be calculated

[0170] Calculate the vote

[0171]

[0172] Wherein, if P j The value is small, and it can be calculated by brute force;

[0173] In the voting stage, if some voters do not vote or repeat voting, it will interfere with the normal voting of other voters and cause election abnormalities. The abnormality processing and recovery process includes:

[0174] Assume Indicates the set of normal voters participating in the election stage, Indicates the set of abnormal voters, analyze Puzzle=(N, μ, t, C), and calculate Finally, the calculation can get s=C-T mod N;

[0175] Process the published votes and exclude abnormal voters:

[0176] Update and publish the valid votes

[0177] Reaggregate all valid votes published on the blockchain network

[0178] Computing determination

[0179] Calculate the recovered vote Wherein, if P j The value is small, and it can be calculated by brute force.

[0180] From the above steps, under normal circumstances, the results of each vote can be accurately calculated according to the above steps. If there are abnormal voters, abnormal data needs to be excluded by adjustment and recalculation to restore the correctness of the vote. Such a method can ensure the robustness of the election process and maximize the fairness of the election.

[0181] In some embodiments, in the voter registration module, zero-knowledge proof For the voter registration phase, the voter registration module comprises a first sending module and a first verification module, specifically comprising:

[0182] In the first sending module, the voter V i uses his private key x i to generate a zero-knowledge proof, first calculates w i ∈Z p , c=H(a i ,y i ), r i =w i -cx i , and publishes (c, a i r i );

[0183] In the first verification module, the verifier performs verification, the verifier calculates whether c is equal to H(a i ,y i ) and whether a i is equal to If the equation is true, the verification is passed, otherwise it is rejected;

[0184] In the vote eligibility verification module, the zero-knowledge proof is used to verify whether the voter has the right to vote, the vote eligibility verification module comprises a second sending module and a second verification module, specifically comprising:

[0185] In the second sending module, the voter V i uses his private key x i and the secret share s i to generate a zero-knowledge proof, first selects random numbers r1, r2∈Z p , calculates c=H(a i ,b i ,y i ,τ i ), sets d i1 =r1-cx i , d i2 =r2-cs i , and publishes (c, a i ,b i ,d i1 ,d i2 );

[0186] In the second verification module, the verifier performs verification, the verifier calculates whether c is equal to H(a i ,b i ,y i ,τ i ) and whether a i is equal to b i whether equal to If the equation is true, the verification is passed, otherwise it is rejected;

[0187] Further, in the vote verification module, the calculation determines To verify the range of single vote and prevent falsification or tampering of vote data;

[0188] In the vote verification module, the calculation determines To verify the range of all votes and the accuracy of the total score, and prevent falsification or tampering of vote data;

[0189] From the above steps, in the voter registration module, during the voter registration stage, the zero-knowledge proof is used to ensure that the registration information of the voter is correct, but the private key x of the voter is not disclosed i ; In the vote eligibility verification module, the second-stage zero-knowledge proof is used to verify whether the voter is eligible to vote, that is, to ensure that the voting qualification of the voter is valid; In the vote verification module, during the vote stage, the range verification of single vote and all votes is used to ensure the legality of the vote and the accuracy of the total score, and to prevent falsification or tampering of vote data. Through the above steps, the security and privacy protection characteristics of zero-knowledge proof are combined to ensure the privacy of the voter, the authenticity of the vote and the fairness of the election.

[0190] From the above embodiment, compared with the prior art, the present application solves the problems that the voting method in the prior art often leads to forced suspension of the election due to interference of malicious voters, needs to restart the election, wastes a large amount of computing resources, and if some malicious voters intervene in the election, the election event will be abnormally terminated, etc. The present application includes but is not limited to the following beneficial effects:

[0191] Firstly, the present application solves the self-adaptability problem in the self-statistical electronic voting protocol based on the block chain. In the normal election process, the later voters can always obtain an advantage, that is, the voters who vote later can use the votes of the voters who have voted to obtain the election result through calculation in advance, which is unfair to other voters. The present application uses cryptographic technologies such as Shamir secret sharing and time lock puzzles to efficiently solve the self-adaptability problem in the self-statistical electronic voting, and creates a fair election environment for each voter;

[0192] Secondly, the application solves the problem of abnormal interruption in the self-statistical electronic voting protocol based on the blockchain. In the election process, if some malicious voters intervene in the election and do not vote normally, the election event will be abnormally terminated. The application uses threshold ElGamal encryption to improve the robustness of the election, and ensures that the election is normally conducted under the premise of fairness, even if there is intervention by malicious users, the voting protocol does not need to be restarted.

[0193] Thirdly, for the problem of multiple candidates, the application uses a more flexible score voting system, voters can better express their will, and at the same time, uses non-interactive zero-knowledge proof and traceable ring signature to ensure that each vote is verifiable and legal, and for internal adversaries to destroy the election, it can also be discovered and held accountable in time.

[0194] Fourthly, the application realizes a new self-statistical score voting protocol based on the blockchain with robustness and traceability. The score mechanism introduced in the application makes the election more flexible and better reflects public opinion. At the same time, for the problem of low fault tolerance of the previous self-statistical voting, the application uses Shamir secret sharing and time lock puzzles to ensure fairness and improve fault tolerance. Under the application, even if some voters destroy the election, the election can still be normally conducted.

[0195] Fifthly, the application realizes the function of tracking and disclosing malicious voters. By using traceable ring signature, any two votes and their signatures can be verified. If there is a repeated voting behavior, the identity information will be disclosed.

[0196] Sixthly, the application has the function of public verifiability. By designing a reasonable zero-knowledge proof protocol, the legality of the voter's identity is ensured, and the verifier can verify that each vote is legal without revealing the private information. The sum of the scores used in the encryption is P, which is equal to the specified score.

[0197] Please refer to Figure 3, provided by one of the purposes of the application, a kind of self-statistical score voting device based on block chain, including initialization module 1100, key generation module 1200, voting module 1300, verification module 1400 and vote counting module 1500. Wherein, initialization module 1100 is set to in initialization phase, election agency obtains system security parameter and election basic parameter, generates system global public parameter based on the system security parameter and election basic parameter, wherein the election basic parameter includes the number of candidates, election event number, time difficulty coefficient, predefined minimum number of participants;Key generation module 1200 is set to in key generation phase, each voter inputs the system global public parameter to the election agency to generate own public-private key pair, and input own public key to the election agency, and the election agency generates its corresponding secret share and recognizes it as a qualified voter;Voting module 1300 is set to in voting phase, each voter encrypts its corresponding voting content according to the system global public parameter, own private key and the secret share, and signs the encrypted vote to ensure the correctness and legality of the vote;Verification module 1400 is set to in verification phase, anyone verifies any vote and its corresponding signature to determine the validity of the vote to screen out all valid votes;Vote counting module 1500 is set to in vote counting phase, participants can obtain final election according to the valid vote.

[0198] On the basis of any embodiment of the present application, please refer to Figure 4 Another embodiment of the present application also provides an electronic device, which can be realized by a computer device, as shown in Figure 4 The internal structure diagram of the computer device. The computer device includes a processor, a computer readable storage medium, a memory and a network interface connected by a system bus. Among them, the computer readable storage medium of the computer device stores an operating system, a database and a computer readable instruction, the database can store control information sequence, and the computer readable instruction is executed by the processor to enable the processor to realize a self-statistical score voting method based on block chain. The processor of the computer device is used to provide computing and control ability to support the operation of the entire computer device. The memory of the computer device can store computer readable instructions, and the computer readable instructions are executed by the processor to enable the processor to execute the self-statistical score voting method based on block chain of the present application. The network interface of the computer device is used to connect and communicate with the terminal. Those skilled in the art can understand that Figure 4The structure shown in the figure is only a block diagram of part of the structure related to the scheme of the present application, and does not constitute a limitation on the computer device to which the scheme of the present application is applied. The specific computer device can include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0199] The processor in the embodiment is configured to execute the specific functions of each module and the sub-modules thereof in the above embodiment, and the memory stores the program codes and various data required for executing the above modules or sub-modules. The network interface is configured to transmit data between the user terminal or the server. The memory in the embodiment stores the program codes and data required for executing all the modules / sub-modules in the self-statistical score voting device based on the blockchain of the present application, and the server can call the program codes and data of the server to execute the functions of all the sub-modules. Figure 3

[0200] The present application also provides a storage medium storing computer readable instructions, which, when executed by one or more processors, cause the one or more processors to perform the steps of the self-statistical score voting method based on the blockchain according to any of the embodiments of the present application.

[0201] The present application also provides a computer program product, including computer programs / instructions, which, when executed by one or more processors, implement the steps of the self-statistical score voting method based on the blockchain according to any of the embodiments of the present application.

[0202] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiments of the present application can be completed by a computer program instructing related hardware. The computer program can be stored in a computer readable storage medium. When the program is executed, it can include the processes of the above-mentioned embodiments of each method. The storage medium can be a computer readable storage medium such as a magnetic disc, an optical disc, a read-only memory (ROM), or a random access memory (RAM).

[0203] The above only describes some embodiments of the present application. It should be noted that those of ordinary skill in the art can make several improvements and refinements without departing from the principles of the present application. These improvements and refinements should also be considered within the scope of the present application.

[0204] ​To sum up, the application realizes a new blockchain-based self-statistical score voting protocol with robustness and traceability. The score mechanism introduced in the application makes the election more flexible and better reflects public opinion. At the same time, aiming at the low fault tolerance of the previous self-statistical voting, the application adopts secret sharing and time lock puzzles, which not only ensures fairness, but also improves fault tolerance. Under the application, even if some voters destroy the election, the election can still be carried out normally.

Claims

1. A blockchain-based self-statistical score voting method, characterized in that, include: During the initialization phase, the electoral organization obtains system security parameters and basic election parameters, and generates global public parameters based on the system security parameters and basic election parameters. The basic election parameters include the number of candidates, election event number, time difficulty coefficient, and predefined minimum number of participants. During the key generation phase, each voter inputs the system's global public parameters into the electoral body to generate their own public-private key pair, and inputs their public key into the electoral body. The electoral body generates their corresponding secret share and recognizes them as a qualified voter. The public-private key pair includes a public key and a private key, where the public key is public key y. i The private key is private key x. i , During the voting phase, each voter encrypts their corresponding vote using the system's global public parameters, their private key, and the secret share, and then signs the encrypted ballot to ensure its correctness and legality. This includes: During the voting phase, each voter will use the private key x. i Secret Shares i And for candidate C j Score p i,j Input to the electoral body to generate encrypted ballot B i And signature σ i Among them, B i =(b i,1 ,...,b i,m ) Represents encrypted ballot B i Contains m encrypted items b i,j Each encrypted item b i,j For the score p i,j The encryption is performed using the following formula for each encrypted item: in, This is part of the result used to construct the encrypted ballot; Its function is as an auxiliary parameter; ρ i,j A random number selected from the group; The voters generate a zero-knowledge proof (ZKPoK) for each ballot. 2i ,in, Used to prove that a voter possesses the corresponding private key x i and secret shares i ; Used to prove each score p in each vote i,j All are within the legal range, 0≤p i,j ≤P; This is used to prove that the sum of the scores from all the ballots submitted by the voter equals the predetermined total score P. Each voter generates an encrypted ballot B i Sign it, Where EventID represents the election event number, PK is the set of public keys for all voters, and PK = {y i } i∈[1,n] ; The calculation formula for the hash value and several intermediate parameters includes: Where H is a hash function used to generate a hash value h based on election event information and the public key. Let R1 and δ be the signature values ​​of the ballot. j These are intermediate values ​​that are calculated and used to generate the final signature; Continue with the steps to generate zero-knowledge proofs, including: Voters randomly select w i and calculate For each candidate C j Voters randomly select z j ,e j ∈Z p and calculate Voter Counting in, It is the set of c values ​​for all candidates, where each c... j Through Calculated; It is the set of d values ​​for all candidates, where each d... j Through Calculated; Voter Calculation e i =E-∑ j≠i e j ,z i =w i -e i x i ; Voter signature generation in, It is the set of z-values ​​for all candidates, where each z... i Through z i =w i -e i x i Calculated; It is the set of e values ​​for all candidates, where each e i Through e i =E-∑ j≠i e j Calculated; Voters will (B) i ,σ i ZKPoK 2i ) is published on the blockchain network, where σ i For the final signature of the i-th voter, ZKPoK 2i It is a zero-knowledge proof; During the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, thereby filtering out all valid ballots. During the vote 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, characterized in that, During the initialization phase, the electoral body acquires system security parameters and basic election parameters, and generates system-wide common parameters based on these parameters. The steps include: During the initialization phase, input system security parameter 1. λ The number of candidates is m, the election event number is EventID, the time difficulty coefficient is t, the predefined minimum number of participants is k, and the electoral organization generates a (k-1)th degree polynomial f(x) = s + a1x + a2x. 2 +…+a k-1 x k-1 The time-lock puzzle is given by the formula (N, μ, t, C), where... All are strong RSA integers, and μ is a random number. C = s + T mod N, candidate list CList, H, H1, H2 are hash functions. After initialization, the electoral body publishes the system's global public parameter PP = (G, g, p, k, H, H1, H2, Puzzle, CList, EventID). Assume that the total number of points available to voters in the score voting is P.

3. The blockchain-based self-statistical score voting method according to claim 2, characterized in that, During the key generation phase, each voter inputs the system's globally public parameters into the electoral body to generate their own public-private key pair, and inputs their public key into the electoral body. The electoral body then generates their corresponding secret share and recognizes them as a qualified voter. This process includes: Generate a public-private key pair for each voter based on the system's global public parameter PP; Each voter uses the public key y i Input is fed into the electoral body to generate a zero-knowledge proof ZKPoK. 1i ; The electoral body relies on the zero-knowledge proof ZKPoK. 1i Confirm that the voter possesses the public key y i The corresponding private key x i ; The electoral body generates secret shares s for the voters. 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 1, characterized in that, During the verification phase, any person verifies any ballot and its corresponding signature to determine the validity of the ballot, in order to filter out all valid ballots. This process includes: Calculation determined as well as For all i, the calculation determines... For all i, the calculation determines... Calculation and determination Detection Is it equal to If the equation is true, the vote is valid and returns 1; otherwise, it returns 0, indicating that the vote is unreliable.

5. The blockchain-based self-statistical score voting method according to claim 4, characterized in that, The verification phase, in which anyone verifies any ballot and its corresponding signature to determine the validity of the ballot, after filtering out all valid ballots, includes: During the tracking phase, anyone can check two suspicious ballots (B) c ,σ c ZKPoK 2c ), (B′ c ,σ′ c ,ZKPoK′ 2c The system checks the two ballots. If they are duplicates, it returns `Linked`. If the same voter cast two unique ballots, it returns the voter's public key. Otherwise, it returns `indep`. The specific steps include: Calculation determined For all i, the calculation determines... δ′ i =R′0(R′1) i ; Initialize an empty list TList and determine δ. i Is it equal to δ′? i If the equation holds true, then record the public key corresponding to i in the list TList; Check the list contents. If the list TList contains the public keys of all voters, it means that there are voters who have voted repeatedly and the vote content is the same. Return Linked. If the list contains only one voter's public key, it means that the voter cast two unique votes, and the voter's public key is returned; if neither of the above two conditions is met, indep is returned, indicating that everything is normal.

6. The blockchain-based self-statistical score voting method according to claim 2 or 3, characterized in that, During the vote counting phase, any participant can obtain the final election results based on the valid votes, including the following steps: During the vote counting phase, if all voters participate normally, anyone interested in the election can collect and count the ballots, specifically including: Analyze Puzzle = (N, μ, t, C) and calculate to 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 determined Calculated based on secret sharing Therefore, it can be calculated that Counting votes Where, if P j The value was small and was calculated using a brute-force method. During the vote counting phase, if some voters engage in malicious behavior such as not voting or voting twice, it will interfere with the normal vote counting of other voters and lead to election irregularities. The irregularity handling and recovery process includes: Assumption This indicates that voters participated normally during this election phase. Let N represent the set of anomalous voters. The parsed Puzzle = (N, μ, t, C) is calculated to determine this. The final calculation yields s = CT mod N; The published ballots will be processed to eliminate the impact of abnormal voter activity: Update and publish valid ballots Re-aggregate all valid votes published on the blockchain network Calculation determined Calculate the restored ballots Where, if P j The value was small and was calculated using a brute-force method.

7. A blockchain-based self-statistical score voting device, applied to the blockchain-based self-statistical score voting method as described in claim 1, characterized in that, include: The initialization module is configured to, during the initialization phase, have the electoral organization obtain system security parameters and basic election parameters, and generate system-wide common parameters based on the system security parameters and basic election parameters. 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's global public parameters into the electoral body to generate their own public-private key pair, and inputs their own public key into the electoral body. The electoral body then generates their corresponding secret share and recognizes them as a qualified voter. The voting module is configured so that during the voting phase, each voter encrypts their corresponding vote based on the system's global public parameters, their 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 configured so that during the verification phase, anyone can verify any ballot and its corresponding signature to determine the validity of the ballot, thereby filtering out all valid ballots. The vote counting module is configured so that anyone can obtain the final election results based on the valid votes during the vote counting phase.

8. An electronic device comprising a central processing unit and a memory, characterized in that, The central processing unit is used to invoke and run a computer program stored in the memory to perform the steps of the method as described in any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer program is stored thereon, which, when invoked by a computer, performs the steps included in the method as described in any one of claims 1 to 6.

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