KR101962686B1 - System and method for electronic voting - Google Patents

System and method for electronic voting Download PDF

Info

Publication number
KR101962686B1
KR101962686B1 KR1020170110274A KR20170110274A KR101962686B1 KR 101962686 B1 KR101962686 B1 KR 101962686B1 KR 1020170110274 A KR1020170110274 A KR 1020170110274A KR 20170110274 A KR20170110274 A KR 20170110274A KR 101962686 B1 KR101962686 B1 KR 101962686B1
Authority
KR
South Korea
Prior art keywords
block
node
transaction
voting
received
Prior art date
Application number
KR1020170110274A
Other languages
Korean (ko)
Other versions
KR20190023894A (en
Inventor
신지선
김동인
이신철
Original Assignee
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세종대학교산학협력단 filed Critical 세종대학교산학협력단
Priority to KR1020170110274A priority Critical patent/KR101962686B1/en
Publication of KR20190023894A publication Critical patent/KR20190023894A/en
Application granted granted Critical
Publication of KR101962686B1 publication Critical patent/KR101962686B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2230/00Voting or election arrangements

Abstract

An electronic voting system and method are disclosed. An electronic voting system according to an embodiment of the present invention includes an election management node for generating and distributing an initial block for constituting a block chain of a vote result of an electronic voting; One or more voting nodes for generating a generic transaction containing a selection value for any one of a plurality of candidates from a voter; And one or more aggregation nodes for verifying the generic transaction received from the one or more voting nodes and aggregating verified generic transactions to generate one or more blocks.

Description

[0001] SYSTEM AND METHOD FOR ELECTRONIC VOTING [0002]

Embodiments of the present invention relate to a reliable electronic voting technology.

Electronic voting means conducting electronic voting, which is one of the ways to ask members of the group. For example, if the presidential election is conducted by electronic voting, the voters are candidates who have registered as presidential candidates by using voting terminals installed at the polling stations or personal terminals (personal computers, mobile terminals such as smart phones, etc.) And then selects one of them.

Such electronic voting does not use a separate ballot for voting, so it can reduce the election cost compared to the existing analog voting method and has the advantage that the canvassing is performed very quickly. However, electronic voting has the problem of forgery and alteration of the result of voting by a malicious group, and there is a limit to replacing the existing voting method.

Korean Registered Patent No. 10-1167647 (2012. 07.16)

Embodiments of the present invention are intended to provide a technical means for implementing reliable electronic voting.

According to an exemplary embodiment, an election management node for generating and distributing an initial block for constituting a block chain for voting results of electronic voting; One or more voting nodes for generating a generic transaction containing a selection value for any one of a plurality of candidates from a voter; And one or more aggregation nodes for verifying the generic transaction received from the one or more voting nodes and aggregating verified generic transactions to generate one or more blocks, wherein the voting node and the aggregation node generate Verifying the one or more blocks that have been verified, and connecting verified blocks to the block chain.

The initial block may include a total number of voters participating in the electronic voting, a signature value of the election management node, a public key of the one or more aggregation nodes, and a public key hash value of each of the plurality of candidates.

The general transaction may include a PIN number of the voter, a public key hash value of the candidate selected by the voter, a signature value of the voter's private key, and a public key of the voter.

Wherein the voting node verifies the validity of the PIN number input from the voter, receives the candidate selection value from the verified voter, generates the general transaction, and transmits the generated general transaction to another voting node or the voting node To the aggregation node.

Wherein the voting node determines whether a PIN number that is duplicated with the PIN number included in the received general transaction when the general transaction is received from another voting node, whether the candidate's public key hash value is valid, Verifies the received generic transaction according to the validity of the private key signature value of the private key signature value, and transmits the verified generic transaction to the other voting node or the aggregation node.

Wherein the voting node is further configured to determine that the public key hash value of the candidate is not valid or that the voter's private key signature value is not valid, Can be discarded.

Wherein the aggregation node is configured to, when receiving the general transaction from another voting node, determine whether a PIN number that is duplicated with the PIN number included in the received general transaction, whether the candidate's public key hash value is valid, The validated generic transaction may be verified according to the validity of the private key signature value of the validated generic transaction, and the validated generic transaction may be added to the block being currently generated.

When the predetermined block generation period has been reached, the aggregation node may generate a base transaction, add the base transaction to the currently generated block, and transmit the generated block to another voting node or another aggregation node.

The base transaction may include a public key hash value of each of the plurality of candidates and a number of votes of each of the plurality of candidates aggregated in the block to which the base transaction belongs.

Wherein the voting node or the aggregation node having received the block determines whether the total number of votes recorded in the base transaction of the received block matches the total number of votes calculated from the general transaction included in the received block, Whether the number of votes of each of the plurality of candidates recorded in the base transaction of the block matches the number of votes of each candidate calculated from the general transaction included in the received block, Verifies the received block by judging whether or not the PIN number is present and whether the muckle root hash value included in the block is validated and adds its signature value to the verified block to determine whether the voting node To the aggregation node.

The voting node or the aggregation node receiving the block may connect the verified block to the block chain when the number of signature values included in the verified block is equal to or greater than a predetermined value.

According to another exemplary embodiment, at the election management node, generating and distributing an initial block for constituting a block chain for voting result of electronic voting; Generating, at the voting node, a generic transaction containing a selection value for any one of a plurality of candidates from a voter; At the aggregation node, verifying the generic transaction received from the voting node and aggregating the verified generic transaction to generate a block; And verifying the generated block at the voting node or the aggregation node, and coupling the verified block to the block chain.

The initial block may include a total number of voters participating in the electronic voting, a signature value of the election management node, a public key of the one or more aggregation nodes, and a public key hash value of each of the plurality of candidates.

The general transaction may include a PIN number of the voter, a public key hash value of the candidate selected by the voter, a signature value of the voter's private key, and a public key of the voter.

The generating of the generic transaction may include verifying the validity of the PIN number input from the voter, receiving the candidate selection value from the validated voter, generating the generic transaction, To the voting node or to the aggregation node.

Wherein the voting node determines whether a PIN number that is duplicated with the PIN number included in the received general transaction when the general transaction is received from another voting node, whether the candidate's public key hash value is valid, Verifies the received generic transaction according to the validity of the private key signature value of the private key signature value, and transmits the verified generic transaction to the other voting node or the aggregation node.

Wherein the voting node is further configured to determine that the public key hash value of the candidate is not valid or that the voter's private key signature value is not valid, Can be discarded.

Wherein the block generating step includes a step of receiving the public key hash value of the voter, the validity of the public key hash value of the candidate, and the validity of the private key signature value of the voter, Verifying the generic transaction, and adding the verified generic transaction to the block currently being created.

The step of generating a block may further include generating a base transaction and adding the generated base transaction to the currently generated block when the preset block generation period is reached, and transmitting the generated block to another voting node or another aggregation node .

The base transaction may include a public key hash value of each of the plurality of candidates and a number of votes of each of the plurality of candidates aggregated in the block to which the base transaction belongs.

Wherein the block verification and block chain concatenation step comprises: comparing whether the total number of votes recorded in the base transaction of the received block matches the total number of votes calculated from the general transaction included in the received block; Whether there is a match between the number of votes of each of the plurality of candidates recorded in the block and the number of votes of each candidate calculated from the general transaction included in the received block and the PIN number duplicated in the block chain with the PIN number included in the block And verifies the received block by judging whether or not the muckle root hash value included in the block is valid, adds its signature value to the verified block, and transmits it to the other voting node or other aggregation node .

The block verification and block chain connection step may be configured to connect the verified block to the block chain when the number of signature values included in the verified block is equal to or greater than a predetermined value.

According to the embodiments of the present invention, electronic voting results can be prevented from being altered or falsified, and a reliable electronic voting system can be provided.

1 is a block diagram illustrating a configuration of an electronic voting system 100 according to an embodiment of the present invention.
2 is an exemplary diagram for explaining the structure of an initial block (Genesis Block) according to an embodiment of the present invention.
3 is an exemplary diagram illustrating a structure of a general block according to an embodiment of the present invention.
4 is an exemplary diagram illustrating a general transaction structure according to an embodiment of the present invention.
5 is an exemplary diagram for explaining a base transaction structure according to an embodiment of the present invention.
FIG. 6 is a flowchart illustrating a process of generating a vote and a general transaction in each voting node according to an embodiment of the present invention.
7 is a flowchart for explaining a general transaction verification process in each voting node according to an embodiment of the present invention.
8 is a flowchart illustrating a general transaction verification, collection and block generation process 800 at each aggregation node or election management node according to an embodiment of the present invention.
9 is a flowchart illustrating a block verification process 900 at each voting node, an aggregation node, or an election management node according to an embodiment of the present invention.
10 is an exemplary diagram for explaining a process of forming a block chain in the electronic voting system according to an embodiment of the present invention through the above-

Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular form of a term includes plural forms of meaning. In this description, the expressions " comprising " or " comprising " are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.

1 is a block diagram for explaining a configuration of an electronic voting system 100 according to an embodiment of the present invention. As shown, an electronic voting system 100 in accordance with an embodiment of the present invention includes one or more voting nodes 102, one or more aggregation nodes 104, and an election management node 106.

A voting node 102 (abbreviated as Voter Node or VN) is a terminal used by voters participating in electronic voting. In one embodiment, the voting node 102 may be a voting device, such as a polling place. In another embodiment, the voting node 102 may be a computing device, such as a desktop computer, a notebook computer, a tablet, a smartphone, etc., used by the voter. For voter authentication in electronic voting, each voter can conduct a voter qualification procedure and receive a PIN number through a separate voter verification system (not shown) before the electronic voting day. For example, the voter verification system may be a system provided by a government agency, or a separate public entity that manages electronic voting. For security purposes, the PIN number and the personal information of each voter (voter) can be stored in different repositories. Candidates wishing to run for the election may vote in advance of the election day using the ballot node 102 to publish their public key hash value.

In one embodiment, the voting node 102 generates a transaction in accordance with a voter's vote (the act of selecting one of the candidate candidates for the election). At this time, the transaction generated by the voting node 102 will be referred to as a general transaction in order to distinguish it from a base transaction to be described later. The voting node 102 also verifies the general transaction generated by the other voting node and the block generated by the aggregation node 104.

An aggregator node 104 (abbreviated as an Aggregator Node) verifies the generic transaction generated by the voting node 102, and collects the verified generic transaction to generate a block. In addition, the aggregation node 104 performs a role of verifying blocks generated by other aggregation nodes.

An electoral authority node 106 (abbreviated as EAN) is a terminal used in a subject who manages electronic voting. The election management node 106 generates an initial block (Genesis Block) and distributes it through the network. In one embodiment, the initial block is the first block of a block chain that is generated as a result of electronic voting, including basic information related to electronic voting.

In addition, the election management node 106 verifies the generic transaction generated by the voting node 102 as well as the aggregation node 104 in the electronic voting process, collects the verified general transaction to generate a block, It verifies the generated block.

In one embodiment, one or more voting nodes 102, one or more aggregation nodes 104 and an election management node 106 may be implemented on a computing device that includes one or more processors and a computer readable recording medium coupled to the processor have. The computer readable recording medium may be internal or external to the processor, and may be coupled to the processor by any of a variety of well known means. A processor in the computing device may cause each computing device to operate in accordance with the exemplary embodiment described herein. For example, a processor may execute instructions stored on a computer-readable recording medium, and instructions stored on the computer readable recording medium may cause a computing device to perform operations in accordance with the exemplary embodiments described herein For example.

On the one hand, one or more voting nodes 102, one or more aggregation nodes 104, and election management node 106 may send and receive data to each other via communications network 108. In some embodiments, the communication network may be an Internet, one or more local area networks, a wire area networks, a cellular network, a mobile network, other types of networks, .

2 is an exemplary diagram illustrating a structure of an initial block according to an embodiment of the present invention. As described above, in the embodiments of the present invention, the initial block is the first block constituting the block chain, and includes basic information related to electronic voting. Such an initial block may only be generated by the election management node 106. As shown, an initial block according to an embodiment of the present invention includes a header area and a transaction area.

First, the items included in the header area are as follows.

- Block ID: This is an identifier for distinguishing the initial block from other blocks.

- Block Type: A value for distinguishing whether the block is an initial block or a general block is stored.

- Previous Hash: This field has no value because there is no previous block in the area where the hash value of the previous block connected with this block is stored or the initial block.

- Version: Indicates the version of the block chain used for electronic voting.

- Merkle Root: The root hash value of the Merkle Tree created from the transactions contained in the initial block is stored.

- Timestamp: Indicates the creation time of the initial block.

- All number of Voters: Indicates the total number of voters who received a PIN to participate in the election.

- EAN Signature: The signature value of the Electoral Authority Node.

The transaction area of the initial block contains the following two transactions:

- first transaction (Tx1): a transaction that contains the public keys of selected aggregation nodes through an appropriate validation procedure.

The second transaction (Tx2) is a transaction that contains the public key hash of candidates for the election.

3 is an exemplary diagram illustrating a structure of a general block according to an embodiment of the present invention. In the embodiments of the present invention, a normal block is a block generated after an initial block, and a transaction generated at the time of voting of each voting node 102 is stored. The normal block also includes a header area and a transaction area as in the initial block.

First, the items included in the header area of the general block are as follows.

- Block ID: It is an identifier to distinguish the general block from other blocks.

- Block Type: A value for distinguishing whether the block is an initial block or a general block is stored.

- Previous Hash: This area stores the hash value of the previous block connected with this block.

- Version: Indicates the version of the block chain used for electronic voting.

- Merkle Root: Stores the root hash value of the Merkle Tree generated from the transactions contained in the normal block.

- Timestamp: Indicates the generation time of the normal block.

- Transaction Count: It indicates the number of transactions included in the general block.

- Signatures: The signature values of nodes (voting node, aggregation node, election management node) that verified the general block are stored.

In the transaction area of the normal block, the voting results of each voter performed at the voting node are stored in transaction form. That is, in the embodiment of the present invention, one transaction corresponds to one vote of the voters.

4 is an exemplary diagram illustrating a general transaction structure according to an embodiment of the present invention. As described above, in the embodiments of the present invention, the generic transaction is a transaction generated in the voting process at the voting node 102. [ As shown, a general transaction according to an embodiment of the present invention includes a header and a body.

The header of a generic transaction contains the following items:

- Transaction ID: It is an identifier to distinguish the general transaction from other transactions.

- Transaction Type: An identifier indicating the kind of transaction, and is used to distinguish whether the transaction is a general transaction or a base transaction.

- Version: Indicates the version of the block chain used for electronic voting.

- Timestamp: Indicates the creation time of the corresponding generic transaction.

The body of a generic transaction contains the following items:

- PIN: The PIN that the voter who generated the transaction has passed the voter verification procedure is stored.

- Candidate's Public Key Hash: The public key hash value of the candidate selected by the voter who created the transaction is stored.

- Voter's Signature: The voter's private key signature value is stored.

- Voter's Raw Public Key: This is the public key of the voter and is used to verify the signature value.

5 is an exemplary diagram illustrating a base transaction structure according to an embodiment of the present invention. In the embodiments of the present invention, the base transaction is a transaction generated by the aggregation node 104 every predetermined block generation period. As shown, the general transaction according to an exemplary embodiment of the present invention includes a header and a body.

The header of the base transaction contains the following items.

- Transaction ID: It is an identifier to distinguish the corresponding base transaction from other transactions.

- Transaction Type: An identifier indicating the kind of transaction, and is used to distinguish whether the transaction is a general transaction or a base transaction.

- Version: Indicates the version of the block chain used for electronic voting.

- Timestamp: Indicates the creation time of the corresponding base transaction.

The body of the base transaction contains the following items:

Each Candidate's Public Key Hash is the public key hash value of each candidate.

- Each Candidate's Number of Votes: The number of votes for each candidate in the block as a result of the aggregation of transactions in the block to which the corresponding base transaction belongs.

FIG. 6 is a flowchart illustrating a voting and generic transaction generation process 600 at each voting node 102 according to an embodiment of the present invention. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.

In step 602, the voting node 102 receives the PIN number from the voter. As described above, the PIN number may be given to each voter through a separate voter verification system before the election day.

In step 604, the voting node 102 verifies the validity of the entered PIN number. In one embodiment, the voting node 102 may be configured to validate the PIN number in conjunction with the voter verification system.

If the verification of the validity of the entered PIN number is successful as a result of step 604, the voting node 102 receives the voter's selection value for one of the candidates for the election in step 606. That is, in this step, the voter who successfully authenticates the PIN number performs the actual voting. To this end, the voting node 102 may be configured to output an appropriate user interface for voter candidate selection.

On the other hand, if the verification of the validity of the entered PIN number is unsuccessful as a result of step 604, the voting node 102 terminates the voting process in step 608.

In step 610, the voting node 102 creates a generic transaction that includes the voter ' s PIN number and the candidate selection value. The detailed configuration of the general transaction is as described in FIG.

In step 612, the voting node 102 transmits the generated generic transaction to the other node. In embodiments of the present invention, the generic transaction generated at the voting node 102 may be transmitted to either the voting node 102, the aggregation node 104, or the election management node 106.

FIG. 7 is a flowchart illustrating a general transaction verification process 700 at each voting node 102 in accordance with an embodiment of the present invention. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.

At step 702, the voting node 102 receives a generic transaction from another voting node participating in the electronic voting.

In step 704, the voting node 102 determines whether there is a PIN number that overlaps with the PIN number included in the general transaction received in the block chain at that point in time.

If it is determined in step 704 that there is no duplicated PIN number, the voting node 102 determines in step 706 whether the public key hash value of the candidate included in the general transaction is valid. In one embodiment, the voting node 102 may determine the validity of the candidate by comparing the candidate's public key hash value included in the generic transaction with the public key hash value of the initial block.

If it is determined in step 706 that the public key hash value is valid, the voting node 102 verifies the voter's private key signature value included in the general transaction in step 708. In one embodiment, the voting node may verify the private key signature value using the voter ' s public key included in the generic transaction.

If verification of the private key signature value is successful as a result of step 708, the voting node 102 transmits the received general transaction to another node in step 710. In embodiments of the present invention, the voting node 102 may send the generic transaction to either the voting node 102, the aggregation node 104, or the election management node 106.

If the PIN number is duplicated in step 704, the public key hash value is not valid in step 706, or the signature value verification fails in step 708, then in step 712, the voting node 102 transmits the received The general transaction is discarded.

FIG. 8 is a flow diagram illustrating a general transaction validation, collection, and block generation process 800 at each aggregation node 104, or election management node 106, in accordance with an embodiment of the present invention. In the following description, it is assumed that the aggregation node 104 verifies the generic transaction and generates a block for convenience. However, the following steps may be performed in the same manner at each of the voting node 102 and the election management node 106 . In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.

At step 802, the aggregation node 104 receives a generic transaction from the voting node 102 participating in the electronic voting.

In step 804, the aggregation node 104 determines whether there is a PIN number that overlaps with the PIN number of the general transaction received in step 802 among the general transactions already included in the block currently being generated.

If it is determined in step 804 that there is no duplicated PIN number, the aggregation node 104 determines whether the public key hash value of the candidate included in the general transaction is valid in step 806. In one embodiment, the aggregation node 104 may compare the public key hash value of the candidate contained in the generic transaction with the public key hash value of the initial block to determine the validity.

If it is determined in step 806 that the public key hash value is valid, the aggregation node 104 verifies the private key signature value of the voter included in the general transaction in step 808. In one embodiment, the voting node may verify the private key signature value using the voter ' s public key included in the generic transaction.

If the verification of the private key signature value is successful as a result of step 808, the aggregation node 104 adds the received general transaction to the block currently being generated in the aggregation node 104 in step 810.

If the PIN number is duplicated in step 804, the public key hash value is not valid in step 806, or the signature value verification fails in step 808, in step 812, the aggregation node 104 transmits the received PIN number The general transaction is discarded.

In step 814, the aggregation node 104 determines whether or not a predetermined block generation period has been reached. If not yet, the aggregation node 104 returns to step 802 and repeats the process of collecting and verifying the generic transaction.

If it is determined in step 814 that the block generation period has been reached, the aggregation node 104 stops the general transaction collection and generates a base transaction in step 816. As described above, the base transaction is the last transaction of the currently generated block, and includes the result of counting the number of votes of each candidate in the block.

In step 816, the aggregation node 104 transmits the generated block to another node. In embodiments of the present invention, the aggregation node 104 may send the block to any of the voting node 102, the aggregation node 104, or the election management node 106.

FIG. 9 is a flow diagram illustrating a block verification process 900 at each voting node 102, aggregation node 104, or election management node 106, in accordance with an embodiment of the present invention. In the following description, it is assumed that the aggregation node 104 verifies the block for the sake of convenience. However, the following steps may be performed in the voting node 102 and the election management node 106 as well. In the illustrated flow chart, the method is described as being divided into a plurality of steps, but at least some of the steps may be performed in reverse order, combined with other steps, performed together, omitted, divided into detailed steps, One or more steps may be added and performed.

At step 902, the aggregation node 104 receives the block from the other node. In embodiments of the present invention, the aggregation node 104 may receive a block from either the voting node 102, the aggregation node 104, or the election management node 106.

At step 904, the aggregation node 104 determines whether the total number of votes of the base transaction included in the received block matches the total number of votes calculated from the transaction that the actual block contains.

If it is determined in step 904 that the numbers match, the aggregation node 104 determines in step 906 whether or not the number of votes for each candidate recorded in the base transaction matches the number of votes for each candidate calculated from the transaction included in the actual block do.

If it is determined in step 906, the aggregation node 104 inquires of the block chain in step 908 and determines whether there is a PIN number included in the block chain among the PIN numbers included in the block .

If it is determined in step 908 that the duplicated PIN number does not exist, the aggregation node 104 verifies whether the transaction in the block is forged or not by verifying the hash value stored in the block in step 910.

If verification of the muckle hash value is successful in step 910, the aggregation node 104 adds its signature value to the header of the received block in step 912.

On the other hand, if the total number of votes does not match in step 904, the number of votes of each candidate does not match in step 906, the PIN number exists in step 908, or the verification of the muckle root hash value fails in step 910 In step 914, the aggregation node 104 discards the received block.

At step 916, the aggregation node 104 determines whether the number of signatures included in the block is greater than or equal to a threshold value. For example, the threshold may be set to 50% of the total number of nodes in the network participating in the electronic voting. However, the embodiments of the present invention are not limited to specific threshold values.

If it is determined in step 916 that the number of signatures is greater than or equal to the threshold value, the aggregation node 104 connects the received block to the block chain in step 918.

On the other hand, if it is determined in step 916 that the number of signatures is less than the threshold value, the aggregation node 104 transmits the received block to another node in step 920. In embodiments of the present invention, the aggregation node 104 may send the block to any of the voting node 102, the aggregation node 104, or the election management node 106.

FIG. 10 is an exemplary diagram illustrating a process of forming a block chain in the electronic voting system 100 according to an embodiment of the present invention. As shown, voting results at the voting node 102 result in generic transactions TX1, TX2, and TX3. Of these, TX1 and TX2 are added to block 2001 by the aggregation node 104, and TX3 is added to the block 2002 by another aggregation node 104. [ When the block generation cycle is reached, the aggregation node 104 generating the block 2001 generates a base transaction BTX based on the voting results of TX1 and TX2, adds it to the last transaction of the block 2001, and connects the block to the block chain. Block 0, which is the first block of the block chain, corresponds to the initial block.

In this way, when the voting results are aggregated using a block chain, it is virtually impossible for a malicious user to forge or tamper with the results of the voting. Therefore, according to the embodiments of the present invention, reliability and stability in electronic voting can be ensured.

An embodiment of the present invention may include a program for performing the methods described herein on a computer, and a computer-readable recording medium including the program. The computer-readable recording medium may include a program command, a local data file, a local data structure, or the like, alone or in combination. The media may be those specially designed and constructed for the present invention, or may be those that are commonly used in the field of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, and specifically configured to store and execute program instructions such as ROM, RAM, flash memory, Hardware devices. Examples of such programs may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, . Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.

100: Electronic voting system
102: Voting node
104: Aggregation node
106: election management node

Claims (22)

  1. An election management node for generating and distributing an initial block for constituting a block chain for voting results of electronic voting;
    One or more voting nodes for generating a generic transaction containing a selection value for any one of a plurality of candidates from a voter; And
    One or more aggregation nodes for verifying the generic transaction received from the one or more voting nodes and aggregating verified generic transactions to generate one or more blocks,
    The voting node and the aggregation node verifying the one or more blocks generated at the aggregation node, connecting the verified block to the block chain,
    The aggregation node comprising:
    Adds the verified general transaction to the block currently being created, and when the predetermined block generation period is reached, adds the base transaction to the block currently being generated, and transfers the generated block to another voting node or another aggregation node Transmitting electronic voting system.
  2. The method according to claim 1,
    Wherein the initial block comprises:
    The total voter number participating in the electronic voting, the signature value of the election management node, the public key of the one or more aggregation nodes, and the public key hash value of each of the plurality of candidates.
  3. The method according to claim 1,
    The generic transaction,
    A PIN number of the voter, a public key hash value of the candidate selected by the voter, a signature value of the voter's private key, and a public key of the voter.
  4. The method of claim 3,
    The voting node,
    The validity of the PIN number input from the voter is verified, the candidate selection value is received from the validated voter, the generic transaction is generated, and the generated general transaction is transmitted to the other voting node or the aggregation node , Electronic voting system.
  5. The method of claim 4,
    The voting node,
    If the general transaction is received from another voting node,
    Verifying the received generic transaction according to whether the PIN number contained in the received generic transaction exists in a duplicate PIN number, whether the candidate's public key hash value is valid, and whether the voter's private key signature value is valid. And transmits a verified common transaction to another voting node or said aggregation node.
  6. The method of claim 5,
    The voting node,
    If it is determined that there is a duplicated PIN number as a result of the verification of the generic transaction, the public key hash value of the candidate is invalid, or that the voter's private key signature value is invalid, Electronic voting system to discard.
  7. The method of claim 4,
    The aggregation node comprising:
    If the general transaction is received from another voting node,
    Verifying the received generic transaction according to whether the PIN number contained in the received generic transaction exists in a duplicate PIN number, whether the candidate's public key hash value is valid, and whether the voter's private key signature value is valid. Electronic voting system.
  8. delete
  9. The method of claim 7,
    The base transaction includes:
    A public key hash value of each of the plurality of candidates, and a number of votes of each of the plurality of candidates aggregated in the block to which the base transaction belongs.
  10. The method of claim 7,
    Wherein the voting node or the aggregation node, which has received the block,
    Whether or not the total number of votes recorded in the base transaction of the received block matches the total number of votes calculated from the general transaction included in the received block,
    Whether the number of votes of each of the plurality of candidates recorded in the base transaction of the received block matches the number of votes of each candidate calculated from the general transaction included in the received block,
    Whether or not a PIN number included in the block exists in the block chain,
    Verifying the received block by determining whether the muckle hash value included in the block is valid,
    Adds the signature value to the verified block, and sends it to the other voting node or other aggregation node.
  11. The method of claim 10,
    Wherein the voting node or the aggregation node, which has received the block,
    And connects the verified block to the block chain if the number of signature values included in the verified block is equal to or greater than a predetermined value.
  12. Generating and distributing an initial block for constituting a block chain to the voting result of the electronic voting at the election management node;
    Generating, at the voting node, a generic transaction containing a selection value for any one of a plurality of candidates from a voter;
    At the aggregation node, verifying the generic transaction received from the voting node and aggregating the verified generic transaction to generate a block; And
    Verifying the generated block at the voting node or the aggregation node, and coupling the verified block to the block chain,
    Wherein the block generation step comprises:
    Adding a verified generic transaction to a block currently being created; And
    Generating a base transaction, adding the generated base transaction to the currently generated block, and transmitting the generated block to another voting node or another aggregating node when the predetermined block generating period is reached.
  13. The method of claim 12,
    Wherein the initial block comprises:
    The total number of voters participating in the electronic voting, the signature value of the election management node, the public key of the one or more aggregation nodes, and the public key hash value of each of the plurality of candidates.
  14. The method of claim 12,
    The generic transaction,
    A PIN number of the voter, a public key hash value of the candidate selected by the voter, a signature value of the voter's private key, and a public key of the voter.
  15. 15. The method of claim 14,
    Wherein the generating the generic transaction comprises:
    The validity of the PIN number input from the voter is verified, the candidate selection value is received from the validated voter, the generic transaction is generated, and the generated general transaction is transmitted to the other voting node or the aggregation node The electronic voting method comprising:
  16. 16. The method of claim 15,
    The voting node,
    If the general transaction is received from another voting node,
    Verifying the received generic transaction according to whether the PIN number contained in the received generic transaction exists in a duplicate PIN number, whether the candidate's public key hash value is valid, and whether the voter's private key signature value is valid. And transmits the verified common transaction to another voting node or the aggregation node.
  17. 18. The method of claim 16,
    The voting node,
    If it is determined that there is a duplicated PIN number as a result of the verification of the generic transaction, the public key hash value of the candidate is invalid, or that the voter's private key signature value is invalid, Discard, electronic voting method.
  18. 16. The method of claim 15,
    Wherein the block generation step comprises:
    Verifying the received generic transaction according to whether the PIN number contained in the received generic transaction exists in a duplicate PIN number, whether the candidate's public key hash value is valid, and whether the voter's private key signature value is valid. The electronic voting method.
  19. delete
  20. 19. The method of claim 18,
    The base transaction includes:
    A public key hash value of each of the plurality of candidates, and a number of votes of each of the plurality of candidates aggregated in the block to which the base transaction belongs.
  21. 19. The method of claim 18,
    Wherein the block verification and block chain connection step comprises:
    Whether or not the total number of votes recorded in the base transaction of the received block matches the total number of votes calculated from the general transaction included in the received block,
    Whether the number of votes of each of the plurality of candidates recorded in the base transaction of the received block matches the number of votes of each candidate calculated from the general transaction included in the received block,
    Whether or not a PIN number included in the block exists in the block chain,
    Verifying the received block by determining whether the muckle hash value included in the block is valid,
    And adding its signature value to the verified block and sending it to another voting node or another aggregating node.
  22. 23. The method of claim 21,
    Wherein the block verification and block chain connection step comprises:
    And to connect the verified block to the block chain if the number of signature values included in the verified block is greater than or equal to a predetermined value.
KR1020170110274A 2017-08-30 2017-08-30 System and method for electronic voting KR101962686B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170110274A KR101962686B1 (en) 2017-08-30 2017-08-30 System and method for electronic voting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170110274A KR101962686B1 (en) 2017-08-30 2017-08-30 System and method for electronic voting

Publications (2)

Publication Number Publication Date
KR20190023894A KR20190023894A (en) 2019-03-08
KR101962686B1 true KR101962686B1 (en) 2019-03-27

Family

ID=65801589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170110274A KR101962686B1 (en) 2017-08-30 2017-08-30 System and method for electronic voting

Country Status (1)

Country Link
KR (1) KR101962686B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160027229A1 (en) * 2014-07-25 2016-01-28 Blockchain Technologies Corporation System and method for securely receiving and counting votes in an election

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100912532B1 (en) * 2006-12-01 2009-08-18 한국전자통신연구원 Internet Voting method for all participants having mutual attestation functions on trusted computing environment and system thereof
KR101167647B1 (en) 2010-09-14 2012-07-20 주식회사 이맥소프트 An Electron Vote Symtem

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160027229A1 (en) * 2014-07-25 2016-01-28 Blockchain Technologies Corporation System and method for securely receiving and counting votes in an election

Also Published As

Publication number Publication date
KR20190023894A (en) 2019-03-08

Similar Documents

Publication Publication Date Title
US8356179B2 (en) Entity bi-directional identificator method and system based on trustable third party
US20020038290A1 (en) Digital notary system and method
EP2346207A1 (en) A method for authenticating a trusted platform based on the tri-element peer authentication (tepa)
US9948467B2 (en) Method and system for blockchain variant using digital signatures
CN102523213A (en) Server and terminal authenticating method and server and terminal
CN102347929A (en) Verification method of user identity and apparatus thereof
US9652920B2 (en) Voting systems and voting methods based on smart mobile communication devices
US20130297513A1 (en) Multi factor user authentication
CN103778730B (en) Improve mobile terminal near-field communication method of payment security, system and terminal
US9864983B2 (en) Payment method, payment server performing the same and payment system performing the same
Gonggrijp et al. Studying the Nedap/Groenendaal ES3B voting computer: A computer security perspective
CN106452785A (en) Block chain network, branch node and block chain network application method
CN105809062A (en) Contract construction and execution methods and apparatuses
CN107710258A (en) Systems and methods for personal identification and verification
AU2010295202B2 (en) Trusted message storage and transfer protocol and system
US10333706B2 (en) Methods and systems of providing verification of information using a centralized or distributed ledger
CN104751038A (en) Identity authentication method, device and system
EP2639999B1 (en) Method and system for identifying anonymous entity
CN103944737A (en) User identity authentication method, third-party authentication platform and operator authentication platform
CN102724040B (en) The method of detecting authenticity contrary member apparatus, control devices and systems
US9954842B2 (en) Method, client, server and system of login verification
US9225728B2 (en) Method and device for anonymous entity identification
Ruffing et al. Liar, liar, coins on fire!: Penalizing equivocation by loss of bitcoins
US10204341B2 (en) Method and system for an efficient consensus mechanism for permissioned blockchains using bloom filters and audit guarantees
CN103136276A (en) System, method and device of verification of data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant