Publicly linkable automated vote counting method, system, medium, and device with controllable blockchain access

By combining attribute-based signatures and zero-knowledge proofs, ballots and authentication tokens are generated, solving the balance problem between access control and privacy protection in blockchain voting schemes. This enables publicly linkable automatic vote counting and identification of double-vote ballots, ensuring the fairness and privacy protection of voting.

CN115983851BActive Publication Date: 2026-05-29JINAN UNIVERSITY

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
JINAN UNIVERSITY
Filing Date
2022-12-05
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

Existing blockchain-based voting schemes fail to achieve an effective balance between access control and anonymous voting, resulting in an inappropriate relationship between privacy protection and accountability, and are unable to effectively identify double-voting.

Method used

The solution employs a combination of attribute-based signatures and zero-knowledge proofs. It generates public parameters and private keys, constructs master public and master private keys, sets a hash function, generates attribute keys and random numbers, constructs ballots and authentication tokens, and determines the voting results of candidates through a vote counting threshold, thereby achieving access control and publicly linkable automatic vote counting.

Benefits of technology

It enables anonymous voting only for users who meet the voting policy, simplifies the vote counting process, protects user privacy, allows for public verification of vote counting results, and identifies double-vote ballots, ensuring the fairness and privacy protection of the voting process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115983851B_ABST
    Figure CN115983851B_ABST
Patent Text Reader

Abstract

The application discloses a public linkable automatic vote counting method, system, medium and equipment based on controllable blockchain access, and steps of the method comprise the following steps: generating a main public and private key pair and uploading the main public key to a blockchain, generating an attribute secret key corresponding to an attribute set, generating a random number, setting voting information and uploading the voting information to the blockchain, obtaining the voting information, constructing a ballot, constructing an authentication token of the ballot, sending the ballot and the authentication token thereof to the blockchain, verifying validity of the ballot, detecting whether the ballot is double voting, setting a vote counting threshold, obtaining the ballot with different labels after validity verification and authentication token, calculating a total number of votes of a candidate, and determining a voting result of the candidate based on the vote counting threshold. The application can realize automatic vote counting and access control, and can realize public linkability of double voting ballots.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of electronic voting technology, and specifically to a publicly accessible and linkable automatic vote counting method, system, medium, and device based on blockchain with controllable access. Background Technology

[0002] With the development and advancement of internet technology, electronic voting is gradually replacing traditional voting methods and becoming the new voting method. Voting protocols, such as automatic vote counting, can achieve decentralization to some extent.

[0003] Blockchain provides a decentralized and trusted network environment, bringing new vitality to the application of electronic voting. To effectively protect user privacy, anonymous electronic voting has gradually emerged, leading to the proposal of various solutions. Among these, voting schemes based on hybrid networks, group signatures, ring signatures, linkable group signatures, and linkable ring signatures can meet the security requirements of different scenarios. Blockchain-based voting schemes with access control can effectively screen eligible voters and provide a more convenient and orderly voting process. However, a certain level of privacy protection can lead to the abuse of anonymity, necessitating a balance between privacy and accountability.

[0004] Therefore, there is a need to provide a publicly accessible and linkable automatic vote counting technology based on blockchain with controllable access. Summary of the Invention

[0005] To overcome the defects and shortcomings of existing technologies, this invention provides a publicly linkable automatic vote counting method based on blockchain access control. This method can not only realize automatic vote counting and access control, but also further realize the public linkability of double-vote ballots.

[0006] The second objective of this invention is to provide a publicly accessible and linkable automatic vote counting system based on blockchain with controllable access.

[0007] A third objective of this invention is to provide a computer-readable storage medium;

[0008] A fourth objective of this invention is to provide a computing device.

[0009] To achieve the above objectives, the present invention adopts the following technical solution:

[0010] This invention provides a publicly accessible and linkable automatic vote counting method based on blockchain with controllable access, comprising the following steps:

[0011] Public parameters and a private key are generated based on the attribute-based signature initialization operation;

[0012] A common reference string is generated based on the initialization operation of zero-knowledge proof;

[0013] Define a hash function, construct a master public key based on public parameters, a public reference string, and the hash function, construct a master private key based on the private key, and send the master public key to the blockchain;

[0014] Obtain the attribute set, generate the attribute key corresponding to the attribute set based on the attribute-based signature, and generate a random number;

[0015] Set voting information, including voting identifier, voting strategy, deadline, first candidate and second candidate, and send the voting information to the blockchain;

[0016] Obtain voting information and construct ballots by combining random numbers and voting identifiers;

[0017] Obtain the attribute key, construct a label based on the hash function, generate a proof based on the zero-knowledge proof protocol, and construct an authentication token for the ballot based on the label and the proof. Send the ballot and its authentication token to the blockchain.

[0018] Verify the validity of the ballots, obtain any two ballots, check if the authentication tokens of the two ballots have the same label, and determine if the two authentication tokens were generated by the same user;

[0019] Set a vote counting threshold, obtain votes with different labels after validity verification and authentication tokens, calculate the total number of votes for each candidate, determine the candidate's voting result based on the vote counting threshold, and output the candidate's voting result.

[0020] As a preferred technical solution, the setting of the hash function, which constructs the master public key based on public parameters, a public reference string, and the hash function, specifically includes:

[0021] The hash function is represented as: H: {0,1} * ×{0,1} * →$, where $ represents the attribute space;

[0022] The master public key is represented as: mpk = (apk, cpp, H), where apk represents the public parameters and cpp represents the public reference string.

[0023] As a preferred technical solution, the step of generating a random number based on the attribute-based signature to generate an attribute key corresponding to the attribute set specifically includes:

[0024] Generate an attribute key corresponding to the attribute set based on the attribute-based signature key generation operation;

[0025] Random numbers satisfy the following conditions:

[0026]

[0027] Where, r iThis represents a random number, and n represents the number of voters.

[0028] As a preferred technical solution, the step of obtaining voting information and constructing a ballot by combining a random number and a voting identifier specifically includes:

[0029] The ballot is represented as: B i =Vid||(b i +r i ), where B i This represents a ballot, Vid represents the vote identifier, and b i Represents candidate voting information, r i The symbol represents a random number, and || represents a concatenation operator.

[0030] As a preferred technical solution, the method of generating a proof based on a zero-knowledge proof protocol and constructing an authentication token for a vote based on a label and a proof specifically includes:

[0031] The authentication token is represented as: π i =(t i proof i ), where π i Represents the authentication token, t i Indicates label, proof i This indicates proof;

[0032] Tag t i Specifically, it is represented as: t i =H(Vid,sk) Su ), where H represents the hash function, Vid represents the voting identifier, and sk Su Indicates the attribute key;

[0033] proof i Specifically, it is expressed as follows:

[0034] Perform attribute-based signature generation to generate a signature for ballot B. i Signature σ i =Sign(B i ,Ψ,sk Su );

[0035] Let x = (B) i ,Ψ,t i ,mpk) is a declaration, w i =(S u ,sk Su ,σ i As evidence, for NP languages

[0036] Generate the corresponding proof using a zero-knowledge proof protocol.i ;

[0037] Where ∧ represents logical AND, Sign represents an attribute-based signature algorithm, Verify represents an attribute-based verification algorithm, Ψ represents the voting strategy, mpk represents the master public key, and S u Represents a collection of attributes.

[0038] As a preferred technical solution, the validity of the vote is verified by using a zero-knowledge proof protocol to verify the validity of the proof.

[0039] As a preferred technical solution, the voting results of candidates are determined based on a vote counting threshold, specifically as follows:

[0040] calculate That is, calculation in b i This indicates candidate voting information, candidate voting information b i Setting r to 0 indicates voting for the first candidate A0, and setting it to 1 indicates voting for candidate A1. i Represents a random number;

[0041] Calculate the total number of votes for each candidate. If the total number of votes is more than half of the total number of votes, the second candidate is declared the winner. If the total number of votes is less than half of the total number of votes, the first candidate is declared the winner.

[0042] To achieve the second objective mentioned above, the present invention adopts the following technical solution:

[0043] This invention provides a publicly accessible and linkable automatic vote counting system based on blockchain with controllable access, comprising: a parameter setting module, an attribute key construction module, a random number construction module, a voting information construction module, a ballot construction module, an authentication token construction module, a data upload module, a ballot validity verification module, a ballot double-vote check module, a voting result calculation module, and a voting result output module;

[0044] The parameter setting module is used to construct parameters, specifically including: generating public parameters and private keys based on attribute-based signature initialization operations, generating public reference strings based on zero-knowledge proof initialization operations, setting hash functions, constructing master public keys based on public parameters, public reference strings and hash functions, and constructing master private keys based on private keys;

[0045] The attribute key construction module is used to obtain an attribute set and generate an attribute key corresponding to the attribute set based on the attribute-based signature.

[0046] The random number construction module is used to generate random numbers;

[0047] The voting information construction module is used to set voting information, which includes voting identifier, voting strategy, deadline, first candidate and second candidate;

[0048] The ballot construction module is used to obtain voting information and construct ballots by combining random numbers and voting identifiers;

[0049] The authentication token construction module is used to construct authentication tokens for votes based on tags and proofs, wherein the attribute key is obtained and the tag is constructed based on the hash function, and the proof is generated based on the zero-knowledge proof protocol;

[0050] The data upload module is used to send the master public key to the blockchain, the voting information to the blockchain, and the ballot and its authentication token to the blockchain.

[0051] The ballot validity verification module is used to verify the validity of the ballot;

[0052] The dual-vote check module is used to obtain any two ballots, detect whether the authentication tokens of the two ballots have the same label, and determine whether the two authentication tokens were generated by the same user.

[0053] The voting result calculation module is used to set a vote counting threshold, obtain votes with different labels after validity verification and authentication tokens, calculate the total number of votes for candidates, and determine the voting results of candidates based on the vote counting threshold.

[0054] The voting result output module is used to output the voting results for the candidates.

[0055] To achieve the third objective mentioned above, the present invention adopts the following technical solution:

[0056] A computer-readable storage medium storing a program that, when executed by a processor, implements the aforementioned publicly linked, blockchain-based, access-controlled, and controllable automatic vote counting method.

[0057] To achieve the fourth objective mentioned above, the present invention adopts the following technical solution:

[0058] A computing device includes a processor and a memory for storing processor-executable programs, wherein when the processor executes the programs stored in the memory, it implements the above-described publicly linked, blockchain-based, access-controlled, and controllable automatic vote counting method.

[0059] Compared with the prior art, the present invention has the following advantages and beneficial effects:

[0060] (1) The attribute-based signature algorithm of this invention achieves the purpose of access control by setting a voting strategy, which solves the problem that the current blockchain-based voting scheme cannot achieve access control and achieves the technical effect that only users who meet the voting strategy can cast valid votes.

[0061] (2) This invention achieves the effect of blinding the ballots by randomizing the ballots, avoiding the encryption and decryption of the ballots, simplifying the calculation of the vote counting process, and realizing the public verifiability of the vote counting results; at the same time, it solves the problem that it is impossible to design an automatic vote counting protocol under access control, and achieves the technical effect of automatic vote counting under access control.

[0062] (3) The present invention adopts a technical solution that combines attribute-based signature and zero-knowledge proof, which solves the privacy leakage problem of the voting scheme. It enables only users who meet the voting strategy to cast their votes anonymously and allows anyone to verify the correctness of the proof corresponding to the vote cast, thus achieving the technical effect of protecting user identity and privacy.

[0063] (4) The present invention adopts a publicly available and linkable technical solution, which solves the problem that the automatic voting protocol cannot effectively identify double votes, and achieves the technical effect of allowing everyone to identify double votes without affecting the privacy of other honest users. Attached Figure Description

[0064] Figure 1 This is a flowchart illustrating the publicly accessible and linkable automatic vote counting method based on blockchain access control of the present invention. Detailed Implementation

[0065] To make the objectives, technical solutions, and advantages of this invention clearer, the invention will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the invention.

[0066] Example 1

[0067] like Figure 1 As shown, this embodiment provides a publicly accessible and linkable automatic vote counting method based on blockchain with controllable access, including the following steps:

[0068] S1: The registration center initializes the voting system.

[0069] Perform attribute-based signature initialization to generate public parameter apk and private key ask;

[0070] Perform zero-knowledge proof initialization operations and generate a common reference string (cpp);

[0071] Choose a hash function, H: {0,1} * ×{0,1} * →$, where $ represents the attribute space;

[0072] Generate the master public key mpk = (apk, cpp, H) and the master private key msk = ask;

[0073] The registry sends the mpk file to the blockchain to expose the master public key.

[0074] S2: The registry center issues keys to registered users:

[0075] User u submits attribute set S to the registry center u ={s1,...,s n The registry center performs a key generation operation based on an attribute-based signature algorithm, generating a key for user u that matches the submitted attribute set S. u The corresponding key sk Su And then select a random number r for it. i ;

[0076] Where u is a positive integer, r i It is an integer, and n represents the number of voters, that is, the number of people who want to register.

[0077] S3: The voting initiator discloses voting information:

[0078] The voting initiator sets the voting identifier Vid, participation conditions (i.e., voting strategy) Ψ, deadline t, first candidate A0 and second candidate A1, and sends Vid, Ψ, t, candidate A0 and A1 to the blockchain to make the voting information public.

[0079] S4: User participation in voting:

[0080] User u constructs ballot B i =Vid||(b i +r i (b) i A value of 0 indicates voting for the first candidate A0, a value of 1 indicates voting for the second candidate A1, and || is the concatenation operator;

[0081] Perform attribute-based signature generation to generate a signature for ballot B. i Signature σ i =Sign(B i ,Ψ,sk Su );

[0082] Calculate label t i =H(Vid,sk) Su H represents the hash function;

[0083] Let x = (B) i ,Ψ,t i ,mpk) is a declaration, w i =(Su ,sk Su ,σ i As evidence, for NP languages

[0084] Generate the corresponding proof using a zero-knowledge proof protocol. i , where ∧ represents logical AND, Sign represents an attribute-based signature algorithm, and Verify represents an attribute-based verification algorithm;

[0085] Generate a pair of ballots B i Authentication token π i =(t i proof i );

[0086] User u publicly votes B i and against B i Authentication token π i The ballot and its authentication token (B) i ,π i Send it to the blockchain.

[0087] S5: Verify the validity of the ballot:

[0088] Verify the proof using a zero-knowledge proof protocol i The effectiveness.

[0089] S6: Check the ballots cast by both voters:

[0090] Assume the first vote is B i =Tid||(b i +r i ) and second vote B j =Tid||(b j +r j For two different votes in the same vote, the first authentication token π i =(t i proof i ) and second authentication token π j =(t j proof j () are the first votes B i Second vote B j The authentication token, where t i and t j These represent the authentication token π. i and π j The label in the proof i and proof j These represent the authentication token π. i and πj The proof is in the text.

[0091] Check two labels t i and t j Are they equal? ​​If t i =t j , representing π i and π j Created by the same user, B i and B j It indicates a double vote; otherwise, it means there was no double vote. When a double vote occurs, the vote is invalid, and the voting process restarts.

[0092] S7: Calculate and announce the voting results:

[0093] If all votes have been cast and verified, and no double votes have occurred, it means that each user cast only one valid vote. The calculation... That is, calculation in The total number of votes for candidate A1 can then be calculated. This example uses a 0-1 voting system, where the votes cast are 0 and 1. i The sum of} is 0 while {b} i The sum of the votes is the number of votes with the number 1, which is how many people voted for candidate A1. When the total number of votes is more than half of the total number of votes (greater than n / 2), the second candidate A1 wins; when the total number of votes is less than half of the total number of votes, the first candidate A0 wins.

[0094] The publicly linkable automatic vote counting method based on blockchain access control proposed in this embodiment can not only achieve access control and ensure user privacy, but also further enable publicly linkable double-vote ballots that can be executed by anyone. It is mainly applicable to voting scenarios where there are two candidates.

[0095] Example 2

[0096] This embodiment provides a publicly accessible and linkable automatic vote counting system based on blockchain with controllable access, including: a parameter setting module, an attribute key construction module, a random number construction module, a voting information construction module, a ballot construction module, an authentication token construction module, a data upload module, a ballot validity verification module, a ballot double-vote check module, a voting result calculation module, and a voting result output module;

[0097] In this embodiment, the parameter setting module is used to construct parameters, specifically including: generating public parameters and private keys based on the attribute-based signature initialization operation, generating a public reference string based on the zero-knowledge proof initialization operation, setting a hash function, constructing a master public key based on the public parameters, public reference string and hash function, and constructing a master private key based on the private key;

[0098] In this embodiment, the attribute key construction module is used to obtain an attribute set and generate an attribute key corresponding to the attribute set based on the attribute-based signature;

[0099] In this embodiment, the random number construction module is used to generate random numbers;

[0100] In this embodiment, the voting information construction module is used to set voting information, which includes voting identifier, voting strategy, deadline, first candidate and second candidate;

[0101] In this embodiment, the ballot construction module is used to obtain voting information and construct ballots by combining random numbers and voting identifiers;

[0102] In this embodiment, the authentication token construction module is used to construct authentication tokens for votes based on tags and proofs, wherein the attribute key is obtained and the tag is constructed based on the hash function, and the proof is generated based on the zero-knowledge proof protocol;

[0103] In this embodiment, the data upload module is used to send the master public key to the blockchain, send the voting information to the blockchain, and send the ballot and its authentication token to the blockchain.

[0104] In this embodiment, the ballot validity verification module is used to verify the validity of the ballot;

[0105] In this embodiment, the ballot double-vote checking module is used to obtain any two ballots, detect whether the authentication tokens of the two ballots have the same label, and determine whether the two authentication tokens were generated by the same user;

[0106] In this embodiment, the voting result calculation module is used to set a vote counting threshold, obtain votes with different labels after validity verification and authentication tokens, calculate the total number of votes for the candidates, and determine the voting results of the candidates based on the vote counting threshold;

[0107] In this embodiment, the voting result output module is used to output the voting results of the candidates.

[0108] Example 3

[0109] This embodiment provides a computer-readable storage medium, which may be a ROM, RAM, disk, optical disk, or other storage medium. The storage medium stores one or more programs. When the programs are executed by a processor, they implement the publicly accessible and linkable automatic vote counting method based on blockchain access control as described in Embodiment 1.

[0110] Example 4

[0111] This embodiment provides a computing device, which may be a desktop computer, laptop computer, smartphone, PDA handheld terminal, tablet computer or other terminal device with display function. The computing device includes a processor and a memory. The memory stores one or more programs. When the processor executes the program stored in the memory, it implements the blockchain-based access-controllable publicly linked automatic vote counting method of Embodiment 1.

[0112] The above embodiments are preferred embodiments of the present invention, but the embodiments of the present invention are not limited to the above embodiments. Any changes, modifications, substitutions, combinations, or simplifications made without departing from the spirit and principle of the present invention shall be considered equivalent substitutions and shall be included within the protection scope of the present invention.

Claims

1. A publicly accessible and linkable automatic vote counting method based on blockchain with controllable access, characterized in that, Includes the following steps: Public parameters and a private key are generated based on the attribute-based signature initialization operation; A common reference string is generated based on the initialization operation of zero-knowledge proof; Define a hash function, construct a master public key based on public parameters, a public reference string, and the hash function, construct a master private key based on the private key, and send the master public key to the blockchain; Obtain the attribute set, generate an attribute key corresponding to the attribute set based on the attribute-based signature, and generate a random number, specifically including: Generate an attribute key corresponding to the attribute set based on the attribute-based signature key generation operation; Set voting information, including voting identifier, voting strategy, deadline, first candidate and second candidate, and send the voting information to the blockchain; Obtain voting information and construct ballots by combining random numbers and voting identifiers; The ballot is represented as: B i =Vid||(b i +r i ), where B i This represents a ballot, Vid represents the vote identifier, and b i Represents candidate voting information, r i || represents a random number; Obtain the attribute key, construct a label based on the hash function, generate a proof based on the zero-knowledge proof protocol, and construct an authentication token for the ballot based on the label and the proof. Send the ballot and its authentication token to the blockchain. The method of generating proofs based on zero-knowledge proof protocols and constructing authentication tokens for votes based on labels and proofs specifically includes: The authentication token is represented as: π i =( proof i ), where π i Indicates authentication token, Indicates label, proof i This indicates proof; Label Specifically, it is expressed as follows: =H(Vid,sk Su ), where H represents the hash function, Vid represents the voting identifier, and sk Su Indicates the attribute key; proof i Specifically, it is expressed as follows: Perform attribute-based signature generation to generate a signature for vote B. i Signature σ i =Sign(B i ,Ψ,sk Su ); Let x = (B) i ,Ψ, ,mpk) is a declaration, w i =(S u ,sk Su ,σ i As evidence, for the NP language L = {x} i =(B i ,Ψ, ,mpk): w i =(S u ,sk Su ,σ i ) st (S u ={s1,...,s n })˄(Verify(B i ,Ψ,σ i ) =1)˄( =H(Vid,sk Su Using a zero-knowledge proof protocol, the corresponding proof is generated. i ; Where ˄ represents logical AND, Sign represents an attribute-based signature algorithm, Verify represents an attribute-based verification algorithm, Ψ represents the voting strategy, mpk represents the master public key, and S u Represents a collection of attributes; Verify the validity of the ballots, obtain any two ballots, check if the authentication tokens of the two ballots have the same label, and determine if the two authentication tokens were generated by the same user; First Authentication Token π i =( proof i ) and second authentication token π j =( proof j () are the first votes B i Second vote B j The authentication token, of which, and These represent the authentication token π. i and π j The label in the proof i and proof j These represent the authentication token π. i and π j The proof in the text; Check two labels and Are they equal? = , representing π i and π j Created by the same user, B i and B j It indicates a double vote; otherwise, it means there was no double vote. Set a vote counting threshold, obtain votes with different labels after validity verification and authentication tokens, calculate the total number of votes for each candidate, determine the voting results of each candidate based on the vote counting threshold, and output the voting results of each candidate. The voting results for candidates are determined based on the vote counting threshold, specifically as follows: calculate That is, calculation Candidate voting information b i A value of 0 indicates voting for the first candidate A0, and a value of 1 indicates voting for candidate A1; Random numbers satisfy the following conditions: ; Where n represents the number of voters; Calculate the total number of votes for each candidate. If the total number of votes is more than half of the total number of votes, the second candidate is declared the winner. If the total number of votes is less than half of the total number of votes, the first candidate is declared the winner.

2. The publicly accessible and linkable automatic vote counting method based on blockchain access controllable according to claim 1, characterized in that, The setting of the hash function, based on public parameters, a public reference string, and the hash function, constructs the master public key, specifically including: The hash function is represented as: H: {0,1} * ×{0,1} * →$, where $ represents the attribute space; The master public key is represented as: mpk=(apk,cpp,H), where apk represents the public parameters and cpp represents the public reference string.

3. The publicly accessible and linkable automatic vote counting method based on blockchain access control as described in claim 1, characterized in that, The validity of the vote is verified using a zero-knowledge proof protocol.

4. A publicly accessible and linkable automatic vote counting system based on blockchain, characterized in that, The method for implementing the publicly linked, blockchain-based, access-controllable, and automatically counting votes according to any one of claims 1-3 includes: a parameter setting module, an attribute key construction module, a random number construction module, a voting information construction module, a ballot construction module, an authentication token construction module, a data upload module, a ballot validity verification module, a ballot double-vote check module, a voting result calculation module, and a voting result output module. The parameter setting module is used to construct parameters, specifically including: generating public parameters and private keys based on attribute-based signature initialization operations, generating public reference strings based on zero-knowledge proof initialization operations, setting hash functions, constructing master public keys based on public parameters, public reference strings and hash functions, and constructing master private keys based on private keys; The attribute key construction module is used to obtain an attribute set and generate an attribute key corresponding to the attribute set based on the attribute-based signature. The random number construction module is used to generate random numbers; The voting information construction module is used to set voting information, which includes voting identifier, voting strategy, deadline, first candidate and second candidate; The ballot construction module is used to obtain voting information and construct ballots by combining random numbers and voting identifiers; The authentication token construction module is used to construct authentication tokens for votes based on tags and proofs, wherein the attribute key is obtained and the tag is constructed based on the hash function, and the proof is generated based on the zero-knowledge proof protocol; The data upload module is used to send the master public key to the blockchain, the voting information to the blockchain, and the ballot and its authentication token to the blockchain. The ballot validity verification module is used to verify the validity of the ballot; The dual-vote check module is used to obtain any two ballots, detect whether the authentication tokens of the two ballots have the same label, and determine whether the two authentication tokens were generated by the same user. The voting result calculation module is used to set a vote counting threshold, obtain votes with different labels after validity verification and authentication tokens, calculate the total number of votes for candidates, and determine the voting results of candidates based on the vote counting threshold. The voting result output module is used to output the voting results for the candidates.

5. A computer-readable storage medium storing a program, characterized in that, When the program is executed by the processor, it implements the publicly linked, blockchain-based, access-controlled, and automatically counted votes method as described in any one of claims 1-3.

6. A computing device, comprising a processor and a memory for storing a processor-executable program, characterized in that, When the processor executes the program stored in the memory, it implements the publicly linked automatic vote counting method based on blockchain access control as described in any one of claims 1-3.