A blockchain-based cell democratic voting method

CN116738452BActive Publication Date: 2026-11-03NANJING UNIV OF INFORMATION SCI & TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310478961.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-04-28
Publication Date
2026-11-03
Estimated Expiration
2043-04-28

AI Technical Summary

Technical Problem

Existing blockchain-based electronic voting systems suffer from problems such as high cost, low participation rate, cumbersome process, insufficient security, limited applicable scenarios, and dependence on specific platforms in community democratic voting, making it difficult to meet the needs of community democratic voting.

Method used

By employing technologies such as blockchain, blind signatures, zero-knowledge proofs, and threshold encryption, a community democratic voting method was designed. Through stages such as initialization, registration, vote initiation, voting, and vote counting, the method ensures the legality, privacy, integrity, fairness, accuracy, verifiability, and robustness of the vote. It supports multiple votes and multiple rounds of voting and is independent of the underlying blockchain platform.

Benefits of technology

It achieves an efficient, secure, and transparent voting process, meets the diverse needs of community democratic voting, increases homeowner participation, reduces costs, ensures the accuracy and privacy of voting results, and is applicable to various blockchain platforms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116738452B_ABST
    Figure CN116738452B_ABST
Patent Text Reader

Abstract

The application discloses a kind of methods for democratic voting of cell based on blockchain, it is related to blockchain technology field, by combining blind signature and zero-knowledge proof technology, while protecting the privacy of owner, ensure the legality of owner identity;Through the improvement of threshold encryption technology based on Elgamal, the fairness of voting is effectively guaranteed;Through unique process design, the method has outstanding high versatility, high efficiency and platform independence;The method can fully meet the ideal electronic voting system including eight security standards such as legality, privacy, integrity, openness, accuracy, verifiability, uniqueness and robustness, and effectively solve the problems of low voting efficiency, single function, dependence on specific blockchain platform and other problems existing in the current existing electronic voting method based on blockchain.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of blockchain technology, and in particular to a blockchain-based method for community democratic voting. Background Technology

[0002] Community democracy is a form of grassroots democracy, and voting plays a crucial role in community democratic management. Residents can express their will through voting, thereby achieving democratic elections, democratic decision-making, and opinion polls. However, promoting community democratic voting faces numerous difficulties: First, due to the numerous public affairs within a community, frequent on-site voting is costly, placing a financial burden on the property management company or residents; second, on-site voting consumes a significant amount of residents' time and involves cumbersome procedures, potentially reducing their enthusiasm for participation, and residents may be unable to attend for various reasons. Therefore, the high cost and low participation rate make community voting difficult to implement, and residents' democratic rights are not adequately guaranteed.

[0003] In recent years, with the continuous development of information technology, electronic voting has gradually emerged in the public eye. Many researchers have proposed several complete electronic voting models. Compared to traditional paper voting, electronic voting is more convenient, environmentally friendly, and cost-effective. In 1992, Fujioka et al. proposed a confidential voting scheme suitable for large-scale elections, using blind signatures and bit commitment technology to encrypt ballots and sending them to a trusted third party (TTP) for counting. In 2002, Kiayas and Yung proposed an uncontroversial, self-counting electronic voting model that supports complete ballot confidentiality. In 2010, Hao et al. proposed a two-round anonymous voting model capable of self-counting, which does not require a trusted third party or private channel. Participants execute the protocol by sending two rounds of public messages; therefore, this scheme is more efficient in terms of the number of rounds, computational cost, and bandwidth usage. However, these traditional schemes, due to their centralized design and opaque voting and counting processes, are susceptible to ballot tampering and manipulation of voting results, and are also vulnerable to cyberattacks that could cause service paralysis.

[0004] Generally speaking, an ideal electronic voting system should have the following eight basic security features:

[0005] 1) Legality: The voting activities initiated by the voting organizers are reviewed to ensure the legality of the voting content; at the same time, the identity of the voters must be verified, and only legitimate voters are qualified to vote;

[0006] 2) Privacy: This refers to the privacy of the voter's identity. No individual or organization can link the voter's real identity with the ballot at any stage.

[0007] 3) Integrity: No individual or organization may modify, forge, or delete ballots;

[0008] 4) Fairness: No individual or organization may obtain the voting results before the voting ends;

[0009] 5) Accuracy: Therefore, all verified legitimate votes should be correctly counted in the final results;

[0010] 6) Verifiability: Voters can verify whether their ballots have been recorded correctly, and anyone authorized can verify the final vote count;

[0011] 7) Uniqueness: Each voter can only retain one valid ballot;

[0012] 8) Robustness: The system should be able to tolerate some erroneous votes that will not affect the voting process or the final result.

[0013] In 2008, Satoshi Nakamoto published the original paper on Bitcoin, marking the birth of blockchain technology. Blockchain is a data storage technology that can be viewed as a digital, decentralized, public, and immutable distributed ledger. All transactions between users are recorded in a public and secure manner without the need for a central entity. Because these characteristics of blockchain can effectively solve the security problems of traditional electronic voting systems, many blockchain-based electronic voting schemes have emerged, effectively preventing malicious attacks or fraudulent voting.

[0014] In 2017, McCorry et al. proposed the first blockchain voting scheme that does not rely on a trusted third party for vote counting and protects voter privacy. Any participant can calculate the final voting result through a publicly accessible function. However, this scheme does not allow abstentions and is only suitable for small-scale elections, lacking robustness and versatility. Liu et al. proposed a blockchain-based platform-independent anonymous voting scheme that effectively protects voter privacy using blind signature technology. However, each voter's vote requires blind signatures from both the organizer and the checker, making the process cumbersome. Moreover, the intermediate voting results are public to all participants, which may affect the final voting result and lack fairness. Yang et al. proposed a voting protocol based on homomorphic encryption. This protocol allows each voter to vote for multiple candidates. Each participant can verify the validity of the vote and the vote count without decrypting the ballot by using the homomorphic properties of encryption. However, homomorphic encryption usually requires huge computational overhead and is inefficient. Therefore, this scheme is only suitable for elections in small-scale scenarios.

[0015] In summary, existing blockchain-based technical solutions generally suffer from several problems: First, they struggle to fully meet the eight basic security standards mentioned above; second, their applicability is limited to a single scenario, confined to democratic elections, failing to meet the needs of community voting for democratic decision-making and public opinion surveys; third, the voting process is complex and inefficient, potentially reducing homeowner participation; and fourth, most rely on specific underlying blockchain platforms, making them difficult to adapt to the specific circumstances of different communities and lacking flexibility. Therefore, existing technical solutions are not suitable for the voting needs of community settings. Summary of the Invention

[0016] To address the above technical problems, this invention provides a blockchain-based method for community democratic voting, comprising the following steps:

[0017] S1. Initialization phase: Each entity initializes the key parameters of each type, while the CA obtains the list of legal voting owners in the current community. The entities include owners, property management, owners' committee and CA.

[0018] S2, Registration Phase: The owner sets their own voting public key and sends this voting public key along with their identity information to the CA; after the CA verifies the owner's identity, it performs a blind signature on the owner's voting public key and then returns the signature to the owner; the owner sends the signature and voting public key to the blockchain smart contract for verification. After successful verification, the smart contract stores the voting public key on the blockchain, at which point the registration is successful. Only successfully registered owners have the right to vote.

[0019] S3. Voting Initiation Stage: The property management or homeowners submit a voting proposal to the homeowners' committee; members of the homeowners' committee review the proposal; after the review is approved, the voting information is published on the blockchain, so that any homeowner in the community with permission to access the blockchain can obtain the voting information in a timely manner.

[0020] S4. Voting Phase: Registered homeowners obtain voting information from the blockchain and then select the corresponding option. The system automatically generates a ballot based on the selection. Next, threshold encryption technology is used to encrypt the ballot, with the key jointly held by the property management, the homeowners' committee, and the CA. Finally, zero-knowledge proof technology is used to prove to the smart contract that the homeowner possesses the private key corresponding to the voting public key, i.e., a registered user with voting rights. After the smart contract verification is successful, the encrypted ballot is stored in the blockchain for homeowners to verify on the blockchain whether their ballot has been stored correctly.

[0021] S5. Counting Phase: If the number of voters is less than or equal to 2 / 3 of the total number of residents in the community after the voting deadline, the vote in this round is invalid; if the number of voters is greater than 2 / 3 of the total number of residents in the community, the counting phase begins, and homeowners who do not vote within the specified time are considered to have abstained.

[0022] At the start of the vote counting, the CA, the owners' committee, and the property management company each send their respective private keys for encrypting their ballots to the smart contract. The smart contract then decrypts all the encrypted ballots one by one using the ballot decryption key and checks whether the ballot format is correct. If it is correct, the ballot is valid; if it is incorrect, the ballot is considered invalid and will not participate in the subsequent vote counting process. The smart contract counts the valid ballots and finally publishes the vote counting results on the blockchain.

[0023] The technical solution further defined in this invention is:

[0024] Furthermore, in step S1, the CA generates global public parameters g, p, and q, and simultaneously generates the blind signature public-private key pair (pk) for the current cell. blind ,sk blind ), and obtain the list of legally voting owners in the community from the owners' committee; then, determine the public parameters g, p, q, and pk. blind These parameters are published on the blockchain so that any participant can access them.

[0025] The aforementioned blockchain-based community democratic voting method, in step S2, the registration phase includes the following sub-steps.

[0026] S2.1, The homeowner sets up the voting key x on the DApp. i DApp calculates voting private key sk i ←hash(x i ), and calculate the voting public key.

[0027] S2.2, Generate message m←hash(pk) i Then, a random number r1 is selected as the blinding factor, and r1 and pk are used as the blinding factor. blind PK i Blindify the data to obtain m'←blind(m,r1), and then send m' along with the personal information to CA;

[0028] S2.3 After the CA verifies that the user is a legitimate owner, it uses sk blind Perform a blind signature on message m' to obtain the signature: BlindSig←sign(m', sk blind Then, BlindSig is returned to the owner;

[0029] S2.4 After receiving BlindSig, the owner unblinds it to obtain the original signature Sig←unblind(BlindSig,r1), and then uses pk... blind Verify the correctness of the signature;

[0030] S2.5, then the owner will PK iThe Sig is sent to the blockchain smart contract. After verifying that the signature is correct and the public key is not registered, the smart contract will perform a PK. i Stored on the blockchain.

[0031] In the aforementioned blockchain-based community democratic voting method, in step S3, members of the owners' committee review the proposal. When two-thirds of the members approve the proposal, it means that the proposal has been approved.

[0032] In the aforementioned blockchain-based community democratic voting method, after the proposal is approved in step S3, the following steps are performed.

[0033] S3.1 The administrator in the owners' committee sets the additional information, including the start date and end date of the voting, and sends the additional information to the smart contract;

[0034] S3.2 The smart contract verifies the identity of the initiator and publishes the voting information on the blockchain after verifying the format of the proposal, so that any community owner with permission to access the blockchain can obtain this voting information.

[0035] S3.3 Next, the CA, the owners' committee, and the property management company each generate a private key sk for encrypting the voting threshold. CA ,sk C ,sk M Each of them calculates the encrypted intermediate number. Send to the smart contract;

[0036] S3.4 The smart contract multiplies the received encrypted intermediate numbers to generate the public key for encrypting the vote. And publish the PK on the blockchain vote .

[0037] In the aforementioned blockchain-based community democratic voting method, in step S3.3, the CA, the owners' committee, and the property management company generate new and different private keys for encrypting the voting threshold in each round of voting. Each private key for encrypting the voting threshold is limited to use in the current round of voting.

[0038] The aforementioned blockchain-based community democratic voting method, in step S4, includes the following steps in the voting stage.

[0039] S4.1 The owner obtains the voting information on the blockchain, and then selects the corresponding option on the DApp according to their own preferences. The DApp automatically generates the ballot string based on the option selected by the owner.

[0040] S4.2 After the ballot string is generated, the DApp encodes it into ASCII to obtain the ballot. i Then calculate hash(vote) iGenerate a random number r2 and use threshold encryption to encrypt the public key pk. vote Crypto ballots get votes i '←encrypt(vote i ,r,pk vote );

[0041] S4.3, The homeowner enters their voting private key sk i The DApp calculates the zero-knowledge proof verification number ZKP locally, and then combines (pk i ZKP, vote i Send ') to the voting smart contract;

[0042] S4.4 The smart contract first verifies the ZKP to prove that the owner owns the key. i After verification, the vote will be cast. i 'and hash(vote) i The ballots are stored on the blockchain so that homeowners can verify on the blockchain whether their ballots have been stored correctly.

[0043] In the aforementioned blockchain-based community democratic voting method, step S4.1, the ballot string sequentially includes n selected options, a verification string, and a random string;

[0044] The n selected options are represented as X1&X2&...X n Where X1, X2...X n The options selected by the owner are connected by the symbol &, where n∈[1,m] and m represents the total number of options in this round of voting; the verification string is represented as _VOTE_, used to verify whether the ballot format is valid; the length of the random string is set to k, and k is greater than or equal to 6.

[0045] In the aforementioned blockchain-based community democratic voting method, in step S5, at the start of vote counting, the CA, the owners' committee, and the property management company respectively encrypt their respective ballots for this round of voting using their private keys sk. CA ,sk C ,sk M Send to the smart contract;

[0046] Then the smart contract will send the private key sk CA ,sk C ,sk M Aggregate and decrypt all encrypted votes one by one to obtain the vote. i * ←decrypt(vote i ',sk CA ,sk C ,sk M), i∈[1,n], and then hash(vote) the hash value of each decrypted ballot. i * ) and the original hash value (vote) stored on the blockchain when the owners vote. i The hash values ​​are compared. If the hash values ​​match and the ballot format is correct, the ballot is valid; otherwise, the ballot is considered invalid and will not participate in the subsequent vote counting process.

[0047] The beneficial effects of this invention are:

[0048] This invention proposes a novel community democratic voting scheme by leveraging technologies such as blockchain, blind signatures, zero-knowledge proofs, and threshold encryption. This invention fully meets the eight security standards described in the background section and also possesses unique high versatility, high efficiency, and platform independence.

[0049] Legitimacy: Voting activities initiated by community owners or property management companies must be reviewed by the owners' committee, and only legitimate voting activities can be approved; in addition, only legitimate owners authorized by the CA can call the smart contract to vote; and this invention uses zero-knowledge proof technology, so owners do not need to send their private key information when voting, which greatly reduces the risk of private key leakage and can effectively prevent impersonation voting.

[0050] Privacy: By utilizing the blind nature of blind signature technology, the owner separates their real identity from their voting public key. When the CA performs a blind signature on the voting public key submitted by the owner, although it knows the owner's identity, it cannot know the real voting public key used by the owner, and therefore cannot establish a connection between the voter's real identity and the voting public key. Thus, the owner's identity privacy is protected without relying on trust in third parties.

[0051] Integrity: The votes cast by homeowners are stored on the blockchain. Due to the decentralized, transparent and immutable nature of the blockchain, any action on the blockchain is subject to the joint supervision of all participants. Therefore, no individual or institution can easily modify, forge or delete the votes.

[0052] Fairness: Because the ballot uses threshold encryption technology, even if the ballot is leaked during voting or transmission, no individual or organization other than the voter will know its contents. Furthermore, the decryption keys are jointly held by the CA, the property management company, and the owners' committee, requiring the participation of all three parties to decrypt the ballot. Therefore, even if any two parties inadvertently leak their private keys before the voting deadline, the ballot cannot be decrypted. Thus, the intermediate results of the vote will not be leaked, ensuring the fairness of the voting process.

[0053] Accuracy: During the vote counting phase, this solution uses blockchain smart contracts to count votes, replacing traditional third-party vote counting agencies. The smart contract code related to vote counting supports public review by various entities and organizations. The vote counting process is open and transparent. Only valid votes verified by the smart contract will be counted and added to the final results, ensuring the accuracy of the vote counting results.

[0054] Verifiability: After completing their vote, homeowners can check their ballots on the blockchain to verify whether their votes have been recorded correctly. After the voting phase ends, any user with access to the blockchain can use the private keys published by the CA, property management, and homeowners' committee to decrypt the encrypted ballots stored on the blockchain and count the votes to verify whether the final vote count is correct.

[0055] Uniqueness: During the registration phase, each owner has only one chance to obtain a blind signature based on their identity information, so they can only legally hold one voting public key in a round of voting; when an owner votes, the smart contract records the owner's voting public key on the blockchain, so when an owner votes repeatedly, the latest vote will overwrite the original vote, ensuring that an owner can only retain one valid vote.

[0056] Robustness: After the voting phase ends, even if some owners (less than or equal to 1 / 3 of the total number of owners in the community) do not vote, it will not affect the voting process. These owners who did not vote will be considered as abstaining. During the vote counting phase, if the system finds some invalid ballots (less than or equal to 1 / 3 of the total number of owners in the community), these ballots, along with their corresponding owners, will also be considered as abstaining and will not be included in the final result.

[0057] High versatility: Because this invention uses a unique ballot threshold encryption method, the ballot can support multiple selections, meeting the needs of diverse voting scenarios. It can not only be used for community democratic elections, but also realize community democratic decision-making and public opinion survey functions.

[0058] Efficiency: After obtaining the blind signature from the CA, the owner can directly initiate a zero-knowledge proof to vote on the voting smart contract without waiting for other owners. The registration and voting phases can run in parallel. Furthermore, this invention distinguishes between ballots for different voting activities, allowing multiple rounds of voting to occur simultaneously within the same timeframe. After obtaining identity authentication from the CA, the owner can participate in multiple rounds of voting until their identity is revoked. Once voting is complete, the owner can log off without participating in subsequent processes. Therefore, the owner does not need frequent interaction with the CA or the smart contract. Thus, this invention greatly simplifies the voting process, saves owners time, and improves voting efficiency.

[0059] Platform Independence: This invention only proposes a secure voting framework and does not impose requirements on the underlying block structure. Therefore, it is independent of the underlying blockchain platform. As long as the blockchain platform has basic functions such as state database and smart contracts, this solution can be deployed. Communities can choose a suitable blockchain platform according to their own actual situation. They can use public chains (ETH, EOS, Solana, etc.), consortium chains (Hyperledger Fabric, Hyperchain, etc.) or custom private blockchains. Attached Figure Description

[0060] Figure 1 This is a schematic diagram of the model of the present invention;

[0061] Figure 2 This is a UML sequence diagram of the registration phase in this invention;

[0062] Figure 3 This is a UML timing diagram of the voting phase of this invention;

[0063] Figure 4 This is a diagram illustrating the format of the ballot string in this invention;

[0064] Figure 5 This is a flowchart illustrating the vote counting stage in this invention. Detailed Implementation

[0065] This embodiment provides a blockchain-based community democratic voting method, which involves three cryptographic techniques: blind signature, zero-knowledge proof, and threshold encryption.

[0066] Blind signatures: Blind signatures enable the signer to sign a sender's message without revealing the message's content. Therefore, blind signatures effectively hide the content of the signed message, making them widely used in e-commerce and electronic voting. There are various ways to implement blind signatures; this embodiment uses an RSA-based blind signature algorithm, the specific implementation process of which is as follows:

[0067] Assuming Alice is the holder of message m and Bob is the signer, Bob first generates his own RSA public key (n,e) and private key (n,d), and publishes the public key (n,e). Then, Alice selects a blinding factor r and blinds message m into m' according to formula (1). Next, Alice sends m' to Bob, who performs blind signing on m' according to formula (2) to obtain the signature BlindSig, and returns it to Alice. Finally, Alice deblinds the signature according to formula (3) to obtain the original signature Sig.

[0068] During the signature verification phase, the verifier uses the public key (n,e) to verify equation (4). If the equation is true, the signature is correct.

[0069] m'←blind(m,r,e)=m*r e mod n(1)

[0070] BlindSig←sign(m',d)=m' d modn=(m*r e ) d mod n(2)

[0071] Sig←unblind(BlindSig,r)=BlindSig*r -1 (3)

[0072] m = Sig e mod n(4)

[0073] Where m is the original message, m' is the blinded message, BlindSig is Bob's blind signature, Sig is Alice's original signature after deblinding, and n, e, and d are parameters in the public and private keys.

[0074] Schnorr Zero-Knowledge Protocol: Zero-knowledge proof refers to the ability of a prover to convince a verifier that a statement is true without providing any useful information to the verifier. In 1991, German mathematician and cryptographer Schnorr proposed a zero-knowledge protocol based on the Sigma protocol, namely the Schnorr protocol. It is an interactive knowledge proof mechanism based on the discrete logarithm problem. This embodiment uses a non-interactive Schnorr protocol improved using the Fiat-Shamir paradigm, which can compress the original three-step proof process into one step, greatly improving the efficiency of the proof.

[0075] Suppose there is a prover Alice and a verifier Bob. Alice first sets a value sk as her private key. Alice wants Bob to verify that she owns sk without knowing any information about sk. The proof process is as follows:

[0076] M1. Initialize the global common parameters g, p, and q, where p is a random large prime number, q is a prime factor of p-1, and g is... Alice generates a public key pk←g based on sk, using a generator on sk. sk modp, then send pk to Bob;

[0077] M2, Alice generates a random number b and calculates B←g bmodp, then calculate r←(b+c*sk)modq, where c←hash(pk||B), and finally ZKP←<B,r> Send it to Bob for verification;

[0078] M3 and Bob first calculate c using the known pk and B, and then verify whether equation (5) holds. If it holds, it proves that Alice does indeed possess the private key sk corresponding to the public key pk.

[0079] g r modp = pk c *Bmodp(5)

[0080] Where g is A generator on the , p is a random large prime number, and g and p are pre-agreed common parameters.

[0081] Threshold encryption: Threshold encryption is an important tool for combating collusion attacks. It decentralizes the centralized authority of traditional public-key cryptosystems to avoid single-point failure or attack. In threshold encryption schemes, the encryption key is divided into multiple parts and distributed to several participants. The encryption key is public and can be used to directly encrypt messages, but decryption requires the cooperation of multiple participants to reconstruct the key and correctly decrypt the data. The number of these participants must reach a specific threshold for decryption to be performed.

[0082] This embodiment applies threshold encryption to ballot encryption, preventing premature leakage of ballot information before the end of the current round of voting, which could affect the final voting results. This scheme improves upon the Lifted-ElGamal threshold encryption scheme by eliminating the reliance on a trusted center. Participants generate their own private keys, which are then aggregated through a blockchain smart contract to generate the system's public key, thus enhancing system security and reliability. The key generation, encryption, and decryption process in this embodiment is as follows:

[0083] Suppose there are n participants P1, P2, ..., Pn. n Given a large prime number p, and A generator g;

[0084] Key generation: P i Set your own private key sk i Then calculate And send it to the blockchain smart contract, the smart contract will receive X1, X2, ..., X n Aggregation is performed according to formula (6) to generate a public key pk.

[0085]

[0086] Encryption: Assuming we have plaintext M←Zp*, we select a random number r←Zp* and calculate the ciphertext C according to formula (7).

[0087] C←encrypt(M,r,pk)=(C1,C2)=(g r modp,M*pk r modp)(7)

[0088] Decryption: P i Each person's private key x i Send to the smart contract, smart contract calculates And record k i Until all participants have published their private keys, the smart contract calculates the plaintext M according to formula (8).

[0089]

[0090] Where C1 and C2 are parts of the ciphertext C, k i ,i∈[1,n] represents the smart contract using x i The intermediate value calculated with C1.

[0091] This embodiment provides a blockchain-based community democratic voting method, such as... Figure 1 As shown, it includes the following steps

[0092] S1. Initialization phase: Each entity initializes the key parameters of each type, while the CA obtains the list of legal voting owners in the current community. The entities include owners, property management, owners' committee and CA.

[0093] Homeowners: Homeowners who live within the community and are eligible to vote can submit voting proposals to the community's homeowners' committee and are also the main body of the vote;

[0094] Property management: It is a company or service organization responsible for managing, maintaining and operating the public affairs of the community. It can also submit voting proposals to the community's owners' committee.

[0095] The owners' committee is elected by the owners in the community, represents the interests of the owners, and is responsible to all owners. It is responsible for reviewing voting proposals from owners and property management, and is also the initiator of voting. In this example, it is assumed that the owners' committee has been elected and is able to perform its duties correctly.

[0096] Authentication Center (CA): It possesses the identity information of the community's residents and is responsible for authenticating their identities.

[0097] In step S1, the CA generates global public parameters g, p, and q, and simultaneously generates the blind signature public-private key pair (pk) for the current cell. blind,sk blind ), and obtain the list of legally voting owners in the community from the owners' committee; then, determine the public parameters g, p, q, and pk. blind These parameters are published on the blockchain and can be accessed by any participant.

[0098] S2. Registration Phase: Owners must register on the blockchain before they can vote. This is a necessary measure to ensure the legality of voting. To prove their voting rights, owners first need to obtain signature authentication from the CA. To protect owners' privacy and ensure the anonymity of voting, and to prevent the CA from linking the owner's voting public key with their real identity, this embodiment uses blind signature technology.

[0099] The owner sets up their own voting public key and sends this voting public key along with their identity information to the CA. After the CA verifies the owner's identity, it performs a blind signature on the owner's voting public key and then returns the signature to the owner. The owner sends the signature and voting public key to the blockchain smart contract for verification. After successful verification, the smart contract stores the voting public key on the blockchain, at which point the registration is successful. Only successfully registered owners have the right to vote.

[0100] like Figure 2 As shown, the registration phase includes the following steps.

[0101] S2.1 The owner sets the voting key x on the decentralized application (DApp). i DApp calculates voting private key sk i ←hash(x i ), and calculate the voting public key.

[0102] S2.2, Generate message m←hash(pk) i Then, a random number r1 is selected as the blinding factor, and r1 and pk are used as the blinding factor. blind PK i Blindify the data to obtain m'←blind(m,r1), and then send m' along with the personal information to CA;

[0103] S2.3 After the CA verifies that the user is a legitimate owner, it uses sk blind Perform a blind signature on message m' to obtain the signature: BlindSig←sign(m', sk blind Then, BlindSig is returned to the owner;

[0104] S2.4 After receiving BlindSig, the owner unblinds it to obtain the original signature Sig←unblind(BlindSig,r1), and then uses pk... blind Verify the correctness of the signature;

[0105] S2.5, then the owner will PK i The Sig is sent to the blockchain smart contract. After verifying that the signature is correct and the public key is not registered, the smart contract will perform a PK. i Stored on the blockchain.

[0106] S3. Voting Initiation Stage: The property management or homeowners submit a voting proposal to the homeowners' committee. The proposal includes information such as the topic, options, and remarks. Members of the homeowners' committee review the proposal. When two-thirds of the members vote in favor, the proposal is approved. After approval, the voting information is published on the blockchain, so that any homeowner in the community with permission to access the blockchain can obtain the voting information.

[0107] In step S3, after the proposal is approved, the following steps are performed.

[0108] S3.1 The administrator in the owners' committee sets the additional information, including the start date and end date of the voting, and sends the additional information to the smart contract;

[0109] S3.2 The smart contract verifies the identity of the initiator and publishes the voting information on the blockchain after verifying the format of the proposal. In this way, any community resident with permission to access the blockchain can obtain the voting information.

[0110] S3.3 Next, the CA, the owners' committee, and the property management company each generate a private key sk for encrypting the voting threshold. CA ,sk C ,sk M (To ensure voting security, a new private key for encrypting ballots is generated for each round of voting, and this key is only used for that round of voting), and each voter calculates its own encrypted intermediate number. Send to the smart contract;

[0111] S3.4 The smart contract multiplies the received encrypted intermediate numbers to generate the public key for encrypting the vote. And publish the PK on the blockchain vote Neither party should disclose its decryption private key before the voting deadline.

[0112] S4. Voting Phase: After completing registration, homeowners can vote. Successfully registered homeowners obtain voting information on the blockchain, then select the corresponding option, and the system automatically generates a ballot based on the selection. Next, threshold encryption technology is used to encrypt the ballot, with the key jointly held by the property management, the homeowners' committee, and the CA. Finally, to prevent the leakage of homeowners' voting private keys, zero-knowledge proof technology is used to prove to the smart contract that the homeowner possesses the private key corresponding to the voting public key, i.e., a registered user with voting qualifications. After the smart contract verification is passed, the encrypted ballot is stored in the blockchain. Afterward, homeowners can verify on the blockchain whether their ballots have been stored correctly.

[0113] like Figure 3 As shown, the voting stage includes the following steps:

[0114] S4.1. The owner obtains the voting information on the blockchain, and then selects the corresponding option according to their preferences on the DApp. The DApp automatically generates a ballot string based on the owner's selection; the format of the ballot string is as follows: Figure 4 As shown, "X1&X2&...X n “ represents the option chosen by the owner (n∈[1,m], where m represents the total number of options in this round of voting), which are connected by the “&” symbol. “_VOTE_” is the check character of the ballot, used to verify whether the ballot format is valid. Finally, there is a random string of length k, where k is greater than or equal to 6.

[0115] S4.2 After the ballot string is generated, the DApp encodes it into ASCII to obtain the ballot. i Then calculate hash(vote) i Generate a random number r2 and use threshold encryption to encrypt the public key pk. vote Crypto ballots get votes i '←encrypt(vote i ,r,pk vote );

[0116] S4.3, The homeowner enters their voting private key sk i The DApp calculates the zero-knowledge proof verification number ZKP locally, and then combines (pk i ZKP, vote i Send ') to the voting smart contract;

[0117] S4.4 The smart contract first verifies the ZKP to prove that the owner owns the key. i After verification, the vote will be cast. i 'and hash(vote) i The ballot is stored on the blockchain, and then the owner can verify on the blockchain whether their ballot has been stored correctly.

[0118] S5. Voting Stage: (e.g., ...) Figure 5 As shown, if the number of voters is less than or equal to 2 / 3 of the total number of residents in the community after the voting deadline, the vote in this round will be invalid; if the number of voters is greater than 2 / 3 of the total number of residents in the community, the vote counting stage will begin, and homeowners who do not vote within the specified time will be considered to have abstained.

[0119] At the start of the vote count, the CA, the owners' committee, and the property management company each encrypted their ballots for that round with their private keys (sk). CA ,sk C ,sk M Send to the smart contract;

[0120] Then the smart contract will send the private key sk CA ,sk C ,sk M Aggregate and decrypt all encrypted votes one by one to obtain the vote. i * ←decrypt(vote i ',sk CA ,sk C ,sk M ), i∈[1,n], and then hash(vote) the hash value of each decrypted ballot. i * ) and the original hash value (vote) stored on the blockchain when the owners vote. i The hash values ​​are compared. If the hash values ​​match and the ballot format is correct, the ballot is valid; otherwise, the ballot is considered invalid and will not participate in the subsequent vote counting process.

[0121] The smart contract counts the valid votes and finally publishes the vote count on the blockchain.

[0122] In addition to the embodiments described above, the present invention may have other implementations. All technical solutions formed by equivalent substitution or equivalent transformation fall within the protection scope claimed by the present invention.

Claims

1. A blockchain-based method for community-based democratic voting, characterized in that: Includes the following steps: S1. Initialization phase: Each entity initializes the key parameters of each type, while the Certificate Authority (CA) obtains the list of legal voting owners in the current community. The entities include owners, property management, owners' committee and CA. S2, Registration Phase: The owner sets their own voting public key and sends this voting public key along with their identity information to the CA; after the CA verifies the owner's identity, it performs a blind signature on the owner's voting public key and then returns the signature to the owner; the owner sends the signature and voting public key to the blockchain smart contract for verification. After successful verification, the smart contract stores the voting public key on the blockchain, at which point the registration is successful. Only successfully registered owners have the right to vote. The registration process includes the following steps: S2.1 Owners set up voting keys on the decentralized application (DApp). DApp calculates voting private keys And calculate the voting public key. ; S2.2, Generate Message Then select a random number. As a blinding factor, using and Will Blinding, to obtain Next Send it along with your personal information to the CA; S2.3 After the CA verifies that the user is a legitimate owner, it uses... Regarding the message Obtain a signature by performing a blind signature. Then Return to the owner; S2.4, The owner received Afterwards, the blinding process was completed, yielding the original signature. and use Verify the correctness of the signature; S2.5, then the owner will as well as The public key is sent to the blockchain smart contract. After verifying that the signature is correct and that the public key is not registered, the smart contract will... Stored on the blockchain; S3. Voting Initiation Stage: The property management or homeowners submit a voting proposal to the homeowners' committee; members of the homeowners' committee review the proposal; after the review is approved, the voting information is published on the blockchain, so that any homeowner in the community with permission to access the blockchain can obtain the voting information in a timely manner. S4. Voting Phase: Registered homeowners obtain voting information on the blockchain, then select the corresponding option, and the system automatically generates a ballot based on the selection; next, threshold encryption technology is used to encrypt the ballot, and the key is jointly held by the property management, the homeowners' committee, and the CA; finally, zero-knowledge proof technology is used to prove to the smart contract that the homeowner possesses the private key corresponding to the voting public key, i.e., a registered user with voting qualifications; Once the smart contract is verified, the encrypted ballot is stored on the blockchain, allowing homeowners to verify on the blockchain whether their ballots have been stored correctly. The voting phase includes the following steps: S4.1 The owner obtains the voting information on the blockchain, and then selects the corresponding option on the DApp according to their own preferences. The DApp automatically generates the ballot string based on the option selected by the owner. S4.2 After the ballot string is generated, the DApp encodes it into ASCII to obtain the ballot. Then calculate And generate a random number Use threshold encryption public key Crypto ballots obtained ; S4.3, The homeowner enters their voting private key. The DApp calculates the zero-knowledge proof verification number ZKP locally, and then... Send to the voting smart contract; S4.4 The smart contract first verifies the ZKP to prove that the owner owns it. After verification, and The ballots are stored on the blockchain so that homeowners can verify on the blockchain whether their ballots have been stored correctly. S5. Counting Phase: If the number of voters is less than or equal to 2 / 3 of the total number of residents in the community after the voting deadline, the vote in this round is invalid; if the number of voters is greater than 2 / 3 of the total number of residents in the community, the counting phase begins, and homeowners who do not vote within the specified time are considered to have abstained. At the start of the vote counting, the CA, the owners' committee, and the property management company each send their respective private keys for encrypting their ballots to the smart contract. The smart contract then decrypts all the encrypted ballots one by one using the ballot decryption key and checks whether the ballot format is correct. If it is correct, the ballot is valid; if it is incorrect, the ballot is considered invalid and will not participate in the subsequent vote counting process. The smart contract counts the valid ballots and finally publishes the vote counting results on the blockchain.

2. The blockchain-based community democratic voting method according to claim 1, characterized in that: In step S1, the CA generates global public parameters g, p, and q, and simultaneously generates a blind signature public-private key pair for the current cell. And obtain the list of legally voting owners in the community from the owners' committee; then, the public parameters g, p, q, and These parameters are published on the blockchain so that any participant can access them.

3. The blockchain-based community democratic voting method according to claim 1, characterized in that: In step S3, the members of the owners' committee review the proposal. When two-thirds of the members approve the proposal, it means that the proposal has been approved.

4. The blockchain-based community democratic voting method according to claim 1, characterized in that: In step S3, after the proposal is approved, the following steps are performed: S3.1 The administrator in the owners' committee sets the additional information, including the start date and end date of the voting, and sends the additional information to the smart contract; S3.2 The smart contract verifies the identity of the initiator and publishes the voting information on the blockchain after verifying the format of the proposal, so that any community owner with permission to access the blockchain can obtain this voting information. S3.3 Next, the CA, the owners' committee, and the property management company each generate a private key for encrypting the voting threshold. , , Each of them calculates the encrypted intermediate number. Send to the smart contract; S3.4 The smart contract multiplies the received encrypted intermediate numbers to generate the public key for encrypting the vote. and publish it on the blockchain. .

5. A blockchain-based community democratic voting method according to claim 4, characterized in that: In step S3.3, the CA, the owners' committee, and the property management company generate new and different private keys for encrypting the voting threshold in each round of voting. Each private key for encrypting the voting threshold is only used in the current round of voting.

6. The blockchain-based community democratic voting method according to claim 1, characterized in that: In step S4.1, the ballot string sequentially includes n selected options, a verification string, and a random string; The n selected options are represented as X1&X2&...X n Where X1, X2...X n This represents the options selected by the homeowner, connected by the '&' symbol. m represents the total number of voting options in this round; the validation string is represented as _VOTE_, used to verify whether the ballot format is valid; the length of the random string is set to k, and k is greater than or equal to 6.

7. The blockchain-based community democratic voting method according to claim 1, characterized in that: In step S5, at the start of the vote counting, the CA, the owners' committee, and the property management company each encrypt their respective ballots for this round of voting using their private keys. , , Send to the smart contract; Then the smart contract will use the private key. , , Aggregate and decrypt all encrypted votes one by one to obtain... Then, the hash value of each decrypted ballot... The original hash value stored on the blockchain when the owners vote The hash values ​​are compared, and if the hash values ​​match and the ballot format is correct, the ballot is valid; otherwise, the ballot is considered invalid and will not participate in the subsequent vote counting process.

Citation Information

Patent Citations

  • Electronic voting method and system based on Ethereum block chain

    CN111817855A

  • Anonymous and anti-stress electronic voting system based on partial blind signature and block chain

    CN114333137A