KR101962686B1 - System and method for electronic voting - Google Patents
System and method for electronic voting Download PDFInfo
- 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
- transaction
- node
- voting
- received
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000002776 aggregation Effects 0.000 claims abstract description 87
- 238000004220 aggregation Methods 0.000 claims abstract description 87
- 230000004931 aggregating effect Effects 0.000 claims abstract description 7
- 238000012795 verification Methods 0.000 claims description 24
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/26—Government or public services
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Voting apparatus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2230/00—Voting or election arrangements
Landscapes
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Time Recorders, Dirve Recorders, Access Control (AREA)
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
본 발명의 실시예들은 신뢰성 있는 전자 투표 제공 기술과 관련된다.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.
본 발명의 실시예들은 신뢰성 있는 전자 투표를 구현하기 위한 기술적인 수단을 제공하기 위한 것이다.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.
상기 일반 트랜잭션은, 상기 투표자의 PIN 번호, 상기 투표자가 선택한 후보자의 공개키 해시값, 상기 투표자의 개인키 서명값, 및 상기 투표자의 공개키를 포함할 수 있다.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.
상기 투표 노드는, 상기 투표자로부터 입력받은 PIN 번호의 유효성을 검증하고, 상기 유효성이 검증된 상기 투표자로부터 후보자 선택값을 입력받아 상기 일반 트랜잭션을 생성하며, 생성된 상기 일반 트랜잭션을 타 투표 노드 또는 상기 집계 노드로 송신할 수 있다.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.
상기 투표 노드는, 타 투표 노드로부터 상기 일반 트랜잭션이 수신되는 경우, 수신된 상기 일반 트랜잭션에 포함된 상기 PIN 번호와 중복되는 PIN 번호의 존재 여부, 후보자의 공개키 해시값의 유효 여부, 및 상기 투표자의 개인키 서명값의 유효 여부에 따라 수신된 상기 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 타 투표 노드 또는 상기 집계 노드로 송신할 수 있다.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.
상기 투표 노드는, 상기 검증 결과 중복된 PIN 번호가 존재하거나, 상기 후보자의 공개키 해시값이 유효하지 않거나, 또는 상기 투표자의 개인키 서명값이 유효하지 않을 것으로 판단되는 경우, 수신된 상기 일반 트랜잭션을 폐기할 수 있다.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.
상기 집계 노드는, 타 투표 노드로부터 상기 일반 트랜잭션이 수신되는 경우, 수신된 상기 일반 트랜잭션에 포함된 상기 PIN 번호와 중복되는 PIN 번호의 존재 여부, 후보자의 공개키 해시값의 유효 여부, 및 상기 투표자의 개인키 서명값의 유효 여부에 따라 수신된 상기 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 현재 생성중인 블록에 추가할 수 있다.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.
상기 블록을 수신한 상기 투표 노드 또는 상기 집계 노드는, 수신된 상기 블록의 베이스 트랜잭션에 기록된 총 투표수와 수신된 상기 블록에 포함된 일반 트랜잭션으로부터 계산된 총 투표수의 일치 여부, 수신된 상기 블록의 베이스 트랜잭션에 기록된 상기 복수의 후보자 각각의 득표수와 수신된 상기 블록에 포함된 일반 트랜잭션으로부터 계산된 각 후보자별 득표수의 일치 여부, 블록 체인에 상기 블록에 포함된 PIN 번호와 중복된 PIN 번호가 존재하는지의 여부, 및ㅍ상기 블록에 포함된 머클 루트 해시값의 유효 여부를 판단함으로써 상기 수신된 블록을 검증하고,ㅍ검증된 블록에 자신의 서명값을 추가하여 타 투표 노드 또는 타 집계 노드로 송신할 수 있다.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.
상기 일반 트랜잭션은, 상기 투표자의 PIN 번호, 상기 투표자가 선택한 후보자의 공개키 해시값, 상기 투표자의 개인키 서명값, 및 상기 투표자의 공개키를 포함할 수 있다.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.
상기 일반 트랜잭션을 생성하는 단계는, 상기 투표자로부터 입력받은 PIN 번호의 유효성을 검증하고, 상기 유효성이 검증된 상기 투표자로부터 후보자 선택값을 입력받아 상기 일반 트랜잭션을 생성하며, 생성된 상기 일반 트랜잭션을 타 투표 노드 또는 상기 집계 노드로 송신하도록 구성될 수 있다.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.
상기 투표 노드는, 타 투표 노드로부터 상기 일반 트랜잭션이 수신되는 경우, 수신된 상기 일반 트랜잭션에 포함된 상기 PIN 번호와 중복되는 PIN 번호의 존재 여부, 후보자의 공개키 해시값의 유효 여부, 및 상기 투표자의 개인키 서명값의 유효 여부에 따라 수신된 상기 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 타 투표 노드 또는 상기 집계 노드로 송신할 수 있다.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.
상기 투표 노드는, 상기 검증 결과 중복된 PIN 번호가 존재하거나, 상기 후보자의 공개키 해시값이 유효하지 않거나, 또는 상기 투표자의 개인키 서명값이 유효하지 않을 것으로 판단되는 경우, 수신된 상기 일반 트랜잭션을 폐기할 수 있다.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.
상기 블록 생성 단계는, 수신된 상기 일반 트랜잭션에 포함된 상기 PIN 번호와 중복되는 PIN 번호의 존재 여부, 후보자의 공개키 해시값의 유효 여부, 및 상기 투표자의 개인키 서명값의 유효 여부에 따라 수신된 상기 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 현재 생성중인 블록에 추가하도록 구성될 수 있다.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.
상기 블록 검증 및 블록 체인 연결 단계는, 수신된 상기 블록의 베이스 트랜잭션에 기록된 총 투표수와 수신된 상기 블록에 포함된 일반 트랜잭션으로부터 계산된 총 투표수의 일치 여부,수신된 상기 블록의 베이스 트랜잭션에 기록된 상기 복수의 후보자 각각의 득표수와 수신된 상기 블록에 포함된 일반 트랜잭션으로부터 계산된 각 후보자별 득표수의 일치 여부, 블록 체인에 상기 블록에 포함된 PIN 번호와 중복된 PIN 번호가 존재하는지의 여부, 및 상기 블록에 포함된 머클 루트 해시값의 유효 여부를 판단함으로써 상기 수신된 블록을 검증하고, 검증된 블록에 자신의 서명값을 추가하여 타 투표 노드 또는 타 집계 노드로 송신하도록 구성될 수 있다.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은 본 발명의 일 실시예에 따른 전자 투표 시스템(100)의 구성을 설명하기 위한 블록도
도 2는 본 발명의 일 실시예에 따른 초기 블록(Genesis Block)의 구조를 설명하기 위한 예시도
도 3은 본 발명의 일 실시예에 따른 일반 블록의 구조를 설명하기 위한 예시도
도 4는 본 발명의 일 실시예에 따른 일반 트랜잭션 구조를 설명하기 위한 예시도
도 5는 본 발명의 일 실시예에 따른 베이스(Base) 트랜잭션 구조를 설명하기 위한 예시도
도 6은 본 발명의 일 실시예에 따른 각 투표 노드에서의 투표 및 일반 트랜잭션 생성 과정을 설명하기 위한 흐름도
도 7은 본 발명의 일 실시예에 따른 각 투표 노드에서의 일반 트랜잭션 검증 과정을 설명하기 위한 흐름도
도 8은 본 발명의 일 실시예에 따른 각 집계 노드, 또는 선거 관리 노드에서의 일반 트랜잭션 검증, 수집 및 블록 생성 과정(800)을 설명하기 위한 흐름도
도 9는 본 발명의 일 실시예에 따른 각 투표 노드, 집계 노드, 또는 선거 관리 노드에서의 블록 검증 과정(900)을 설명하기 위한 흐름도
도 10은 본 발명의 일 실시예에 따른 전자 투표 시스템에서 전술한 과정을 거쳐 블록 체인을 형성하는 과정을 설명하기 위한 예시도1 is a block diagram illustrating a configuration of an
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
9 is a flowchart illustrating a
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은 본 발명의 일 실시예에 따른 전자 투표 시스템(100)의 구성을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 다른 전자 투표 시스템(100)은 하나 이상의 투표 노드(102), 하나 이상의 집계 노드(104) 및 선거 관리 노드(106)를 포함한다.1 is a block diagram for explaining a configuration of an
투표 노드(102)(Voter Node, 또는 VN으로 줄여 칭함)는 전자 투표에 참여하는 투표자가 사용하는 단말이다. 일 실시예에서, 투표 노드(102)는 투표소 등에 설치된 투표 전용 장치일 수 있다. 다른 실시예에서, 투표 노드(102)는 투표자가 사용하는 데스크탑 컴퓨터, 노트북 컴퓨터, 태블릿, 스마트폰 등의 컴퓨팅 장치일 수 있다. 전자 투표시 투표자 인증을 위하여, 각 투표자들은 전자 투표일 이전에 별도의 투표자 검증 시스템(미도시)을 통하여 유권자 자격 검증 절차를 수행하고 PIN 번호를 부여받을 수 있다. 예를 들어, 상기 투표자 검증 시스템은 정부 기관, 또는 전자투표를 관리하는 별도의 공공 기관 등에서 제공되는 시스템일 수 있다. 보안을 위하여 PIN 번호와 각 유권자(투표자)의 개인 정보는 각각 다른 저장소에 저장될 수 있다. \해당 선거에 입후보한 후보자들은 그들의 공개키 해시값을 공개하기 위하여 투표 노드(102)를 이용하여 선거일 이전에 미리 투표를 진행할 수 있다.A voting node 102 (abbreviated as Voter Node or VN) is a terminal used by voters participating in electronic voting. In one embodiment, the
일 실시예에서, 투표 노드(102)는 투표자의 투표(선거에 입후보한 후보자들 중 어느 하나의 후보자를 선택하는 행위)에 따라 트랜잭션(transaction)을 생성한다. 이때 투표 노드(102)가 생성하는 트랜잭션은 후술할 베이스 트랜잭션과의 구분을 위하여 일반 트랜잭션이라고 칭하기로 한다. 또한, 투표 노드(102)는 타 투표 노드가 생성한 일반 트랜잭션 및 집계 노드(104)가 생성한 블록을 검증하는 역할을 수행한다.In one embodiment, the
집계 노드(104)(Aggregator Node, 또는 AN으로 줄여 칭함)는 투표 노드(102)가 생성한 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 수집하여 블록을 생성한다. 또한 집계 노드(104)는 타 집계 노드가 생성한 블록을 검증하는 역할을 수행한다.An aggregator node 104 (abbreviated as an Aggregator Node) verifies the generic transaction generated by the
선거 관리 노드(106)(Electoral Authority Node, 또는 EAN으로 줄여 칭함)는 전자 투표를 관리하는 주체에서 사용하는 단말이다. 선거 관리 노드(106)는 초기 블록(Genesis Block)을 생성하여 이를 네트워크를 통해 배포한다. 일 실시예에서, 초기 블록은 전자 투표의 결과로 생성되는 블록 체인(Block Chain)을 구성하는 가장 첫 번째 블록으로서, 전자 투표와 관련된 기본 정보를 포함한다.An electoral authority node 106 (abbreviated as EAN) is a terminal used in a subject who manages electronic voting. The
또한, 선거 관리 노드(106)는 전자 투표 과정에서 집계 노드(104)와 마찬가지로 투표 노드(102)가 생성한 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 수집하여 블록을 생성하며, 타 집계 노드가 생성한 블록을 검증하는 역할을 수행한다.In addition, the
일 실시예에서, 하나 이상의 투표 노드(102), 하나 이상의 집계 노드(104) 및 선거 관리 노드(106)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.In one embodiment, one or
한편, 하나 이상의 투표 노드(102), 하나 이상의 집계 노드(104) 및 선거 관리 노드(106)는 통신 네트워크(108)를 통하여 서로 데이터를 송수신할 수 있다. 몇몇 실시예들에서, 통신 네트워크는 인터넷, 하나 이상의 로컬 영역 네트워크(local area networks), 광역 네트워크(wire area networks), 셀룰러 네트워크, 모바일 네트워크, 그 밖에 다른 종류의 네트워크들, 또는 이러한 네트워크들의 조합을 포함할 수 있다.On the one hand, one or
도 2는 본 발명의 일 실시예에 따른 초기 블록(Genesis Block)의 구조를 설명하기 위한 예시도이다. 전술한 바와 같이, 본 발명의 실시예들에서 초기 블록은 블록 체인을 구성하는 가장 첫 번째 블록으로서, 전자 투표와 관련된 기본 정보를 포함한다. 이와 같은 초기 블록은 선거 관리 노드(106)에 의해서만 생성될 수 있다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 초기 블록은 헤더(Header) 영역 및 트랜잭션(Transaction) 영역을 포함한다.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
먼저, 헤더 영역에 포함되는 항목은 다음과 같다.First, the items included in the header area are as follows.
- Block ID: 초기 블록을 다른 블록과 구별하기 위한 식별자이다.- Block ID: This is an identifier for distinguishing the initial block from other blocks.
- Block Type: 해당 블록이 초기 블록인지, 또는 일반 블록인지를 구별하기 위한 값이 저장된다.- Block Type: A value for distinguishing whether the block is an initial block or a general block is stored.
- Previous Hash: 본 블록과 연결된 이전 블록의 해시값이 저장되는 영역이나, 초기 블록의 경우 이전 블록이 없으므로 본 항목은 아무런 값도 가지지 않는다.- 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: 전자 투표에 사용되는 블록체인의 버전을 나타낸다.- Version: Indicates the version of the block chain used for electronic voting.
- Merkle Root: 초기 블록에 포함된 트랜잭션으로부터 생성된 머클 트리(Merkle Tree)의 루트 해시값이 저장된다.- Merkle Root: The root hash value of the Merkle Tree created from the transactions contained in the initial block is stored.
- Timestamp: 초기 블록의 생성 시각을 나타낸다.- Timestamp: Indicates the creation time of the initial block.
- All number of Voters: 해당 선거에 참여하기 위하여 PIN을 지급받은 총 유권자 수를 나타낸다.- All number of Voters: Indicates the total number of voters who received a PIN to participate in the election.
- EAN Signature: 선거 관리 노드(Electoral Authority Node)의 서명값이다.- EAN Signature: The signature value of the Electoral Authority Node.
초기 블록의 트랜잭션 영역에는 다음의 두 개의 트랜잭션을 포함한다.The transaction area of the initial block contains the following two transactions:
- 1번째 트랜잭션(Tx1): 적합한 검증 절차를 통해 선정된 집계 노드들의 공개키들을 포함하는 트랜잭션이다.- first transaction (Tx1): a transaction that contains the public keys of selected aggregation nodes through an appropriate validation procedure.
- 2번째 트랜잭션(Tx2): 해당 선거에 입후보한 후보자들의 공개키 해시를 포함하는 트랜잭션이다.The second transaction (Tx2) is a transaction that contains the public key hash of candidates for the election.
도 3은 본 발명의 일 실시예에 따른 일반 블록의 구조를 설명하기 위한 예시도이다. 본 발명의 실시예들에서, 일반 블록은 초기 블록 이후에 생성되는 블록으로서, 각 투표 노드(102)의 투표시 생성되는 트랜잭션이 저장된다. 일반 블록 또한 초기 블록과 마찬가지로 헤더(Header) 영역 및 트랜잭션(Transaction) 영역을 포함한다.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
먼저, 일반 블록의 헤더 영역에 포함되는 항목은 다음과 같다.First, the items included in the header area of the general block are as follows.
- Block ID: 해당 일반 블록을 다른 블록과 구별하기 위한 식별자이다.- Block ID: It is an identifier to distinguish the general block from other blocks.
- Block Type: 해당 블록이 초기 블록인지, 또는 일반 블록인지를 구별하기 위한 값이 저장된다.- Block Type: A value for distinguishing whether the block is an initial block or a general block is stored.
- Previous Hash: 본 블록과 연결된 이전 블록의 해시값이 저장되는 영역이다.- Previous Hash: This area stores the hash value of the previous block connected with this block.
- Version: 전자 투표에 사용되는 블록체인의 버전을 나타낸다.- Version: Indicates the version of the block chain used for electronic voting.
- Merkle Root: 일반 블록에 포함된 트랜잭션들로부터 생성된 머클 트리(Merkle Tree)의 루트 해시값이 저장된다.- Merkle Root: Stores the root hash value of the Merkle Tree generated from the transactions contained in the normal block.
- Timestamp: 해당 일반 블록의 생성 시각을 나타낸다.- Timestamp: Indicates the generation time of the normal block.
- Transaction Count: 해당 일반 블록에 포함되는 트랜잭션의 수를 나타낸다.- Transaction Count: It indicates the number of transactions included in the general block.
- Signatures: 해당 일반 블록을 검증한 노드(투표 노드, 집계 노드, 선거 관리 노드)의 서명값이 저장된다.- 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는 본 발명의 일 실시예에 따른 일반 트랜잭션 구조를 설명하기 위한 예시도이다. 전술한 바와 같이, 본 발명의 실시예들에서 일반 트랜잭션은 투표 노드(102)에서의 투표 과정에서 생성되는 트랜잭션이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 일반 트랜잭션은 헤더(Header)와 본문(Body)을 포함한다.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
일반 트랜잭션의 헤더에는 다음과 같은 항목을 포함한다.The header of a generic transaction contains the following items:
- Transaction ID: 해당 일반 트랜잭션을 다른 트랜잭션과 구별하기 위한 식별자이다.- Transaction ID: It is an identifier to distinguish the general transaction from other transactions.
- Transaction Type: 해당 트랜잭션의 종류를 나타내는 식별자로서, 해당 트랜잭션이 일반 트랜잭션인지 또는 베이스(Base) 트랜잭션인지를 구분하기 위하여 사용된다.- 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: 전자 투표에 사용되는 블록체인의 버전을 나타낸다.- Version: Indicates the version of the block chain used for electronic voting.
- Timestamp: 해당 일반 트랜잭션의 생성 시각을 나타낸다.- Timestamp: Indicates the creation time of the corresponding generic transaction.
일반 트랜잭션의 본문에는 다음과 같은 항목을 포함한다.The body of a generic transaction contains the following items:
- PIN: 해당 트랜잭션을 생성한 투표자가 유권자 검증절차를 거쳐 지급받은 PIN이 저장된다.- PIN: The PIN that the voter who generated the transaction has passed the voter verification procedure is stored.
- Candidate's Public Key Hash: 해당 트랜잭션을 생성한 투표자가 선택한 후보자의 공개키 해시값이 저장된다.- 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: 해당 투표자의 개인키 서명값이 저장된다.- Voter's Signature: The voter's private key signature value is stored.
- Voter's Raw Public Key: 해당 투표자의 공개키이며, 서명값 검증을 위해 사용된다.- Voter's Raw Public Key: This is the public key of the voter and is used to verify the signature value.
도 5는 본 발명의 일 실시예에 따른 베이스(Base) 트랜잭션 구조를 설명하기 위한 예시도이다. 본 발명의 실시예들에서 베이스 트랜잭션은 기 설정된 블록 생성 주기마다 집계 노드(104)에 의하여 생성되는 트랜잭션이다. 도시된 바와 같이, 일반 트랜잭션과 마찬가지로, 본 발명의 일 실시예에 따른 일반 트랜잭션은 헤더(Header)와 본문(Body)을 포함한다.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
베이스 트랜잭션의 헤더는 다음과 같은 항목을 포함한다.The header of the base transaction contains the following items.
- Transaction ID: 해당 베이스 트랜잭션을 다른 트랜잭션과 구별하기 위한 식별자이다.- Transaction ID: It is an identifier to distinguish the corresponding base transaction from other transactions.
- Transaction Type: 해당 트랜잭션의 종류를 나타내는 식별자로서, 해당 트랜잭션이 일반 트랜잭션인지 또는 베이스(Base) 트랜잭션인지를 구분하기 위하여 사용된다.- 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: 전자 투표에 사용되는 블록체인의 버전을 나타낸다.- Version: Indicates the version of the block chain used for electronic voting.
- Timestamp: 해당 베이스 트랜잭션의 생성 시각을 나타낸다.- 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: 각 후보자들의 공개키 해시값이다.Each Candidate's Public Key Hash is the public key hash value of each candidate.
- Each Candidate's Number of Votes: 해당 베이스 트랜잭션이 속한 블록 내 트랜잭션 집계 결과로서, 해당 블록 내에서 각 후보자들의 득표수를 나타낸다.- 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.
도 6은 본 발명의 일 실시예에 따른 각 투표 노드(102)에서의 투표 및 일반 트랜잭션 생성 과정(600)을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.FIG. 6 is a flowchart illustrating a voting and generic
단계 602에서, 투표 노드(102)는 투표자로부터 PIN 번호를 입력받는다. 전술한 바와 같이, 상기 PIN 번호는 각 투표자들이 투표일 이전에 별도의 투표자 검증 시스템 등을 통하여 부여받은 것일 수 있다. In
단계 604에서, 투표 노드(102)는 입력된 상기 PIN 번호의 유효성을 검증한다. 일 실시예에서, 투표 노드(102)는 상기 투표자 검증 시스템과 연계하여 상기 PIN 번호의 유효성을 검증하도록 구성될 수 있다.In
만약 상기 604 단계의 수행 결과 입력된 PIN 번호의 유효성 검증에 성공한 경우, 단계 606에서 투표 노드(102)는 해당 선거에 입후보한 후보자들 중 하나의 후보자에 대한 투표자의 선택값을 입력받는다. 즉, 본 단계는 PIN 번호의 인증에 성공한 투표자가 실제 투표를 진행하는 단계이다. 이를 위하여 투표 노드(102)는 상기 투표자의 후보자 선택을 위한 적절한 사용자 인터페이스를 출력하도록 구성될 수 있다.If the verification of the validity of the entered PIN number is successful as a result of
한편 상기 604 단계의 수행 결과 입력된 PIN 번호의 유효성 검증에 성공하지 못한 경우, 단계 608에서 투표 노드(102)는 투표 과정을 종료하게 된다.On the other hand, if the verification of the validity of the entered PIN number is unsuccessful as a result of
단계 610에서, 투표 노드(102)는 투표자의 PIN 번호 및 후보자 선택값을 포함하는 일반 트랜잭션을 생성한다. 상기 일반 트랜잭션의 상세 구성에 대해서는 도 4에서 설명한 바와 같다.In
단계 612에서, 투표 노드(102)는 생성된 상기 일반 트랜잭션을 타 노드로 송신한다. 본 발명의 실시예들에서, 투표 노드(102)에서 생성된 일반 트랜잭션은 타 투표 노드(102), 집계 노드(104) 또는 선거 관리 노드(106) 중 어느 하나로 전송될 수 있다.In
도 7은 본 발명의 일 실시예에 따른 각 투표 노드(102)에서의 일반 트랜잭션 검증 과정(700)을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.FIG. 7 is a flowchart illustrating a general
단계 702에서, 투표 노드(102)는 전자 투표에 참여하는 타 투표 노드로부터 일반 트랜잭션을 수신한다.At
단계 704에서, 투표 노드(102)는 해당 시점의 블록 체인에 수신된 상기 일반 트랜잭션에 포함된 PIN 번호와 중복되는 PIN 번호가 존재하는지의 여부를 판단한다.In
상기 704 단계의 판단 결과 중복된 PIN 번호가 존재하지 않는 경우, 단계 706에서 투표 노드(102)는 상기 일반 트랜잭션에 포함된 후보자의 공개키 해시값이 유효한지의 여부를 판단한다. 일 실시예에서, 투표 노드(102)는 상기 일반 트랜잭션에 포함된 후보자의 공개키 해시값을 초기 블록의 공개키 해시값과 비교하여 상기 유효성 여부를 판단할 수 있다.If it is determined in
상기 706 단계의 판단 결과 상기 공개키 해시값이 유효한 경우, 단계 708에서 투표 노드(102)는 상기 일반 트랜잭션에 포함된 투표자의 개인키 서명값을 검증한다. 일 실시예에서, 투표 노드는 상기 일반 트랜잭션에 포함된 투표자의 공개키를 이용하여 상기 개인키 서명값을 검증할 수 있다.If it is determined in
상기 708 단계의 수행 결과 상기 개인키 서명값의 검증에 성공한 경우, 단계 710에서 투표 노드(102)는 수신한 상기 일반 트랜잭션을 타 노드로 송신한다. 본 발명의 실시예들에서, 투표 노드(102)는 상기 일반 트랜잭션을 타 투표 노드(102), 집계 노드(104) 또는 선거 관리 노드(106) 중 어느 하나로 전송할 수 있다.If verification of the private key signature value is successful as a result of
한편, 상기 704 단계에서 중복된 PIN 번호가 존재하거나, 상기 706 단계에서 공개키 해시값이 유효하지 않거나, 또는 상기 708 단계에서 서명값 검증에 실패한 경우, 단계 712에서 투표 노드(102)는 수신된 상기 일반 트랜잭션을 폐기한다.If the PIN number is duplicated in
도 8은 본 발명의 일 실시예에 따른 각 집계 노드(104), 또는 선거 관리 노드(106)에서의 일반 트랜잭션 검증, 수집 및 블록 생성 과정(800)을 설명하기 위한 흐름도이다. 이하의 설명에서는 편의를 위해 집계 노드(104)에서 일반 트랜잭션을 검증하고 블록을 생성하는 것으로 가정하였으나, 이하의 단계들은 각 투표 노드(102) 및 선거 관리 노드(106)에서도 동일하게 수행될 수 있다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.FIG. 8 is a flow diagram illustrating a general transaction validation, collection, and block
단계 802에서, 집계 노드(104)는 전자 투표에 참여하는 투표 노드(102)로부터 일반 트랜잭션을 수신한다.At
단계 804에서, 집계 노드(104)는 해당 시점에 생성 중인 블록에 이미 포함되어 있는 일반 트랜잭션 중 상기 802 단계에서 수신된 일반 트랜잭션의 PIN 번호와 중복되는 PIN 번호가 존재하는지의 여부를 판단한다.In
상기 804 단계의 판단 결과 중복된 PIN 번호가 존재하지 않는 경우, 단계 806에서 집계 노드(104)는 상기 일반 트랜잭션에 포함된 후보자의 공개키 해시값이 유효한지의 여부를 판단한다. 일 실시예에서, 집계 노드(104)는 상기 일반 트랜잭션에 포함된 후보자의 공개키 해시값을 초기 블록의 공개키 해시값과 비교하여 상기 유효성 여부를 판단할 수 있다.If it is determined in
상기 806 단계의 판단 결과 상기 공개키 해시값이 유효한 경우, 단계 808에서 집계 노드(104)는 상기 일반 트랜잭션에 포함된 투표자의 개인키 서명값을 검증한다. 일 실시예에서, 투표 노드는 상기 일반 트랜잭션에 포함된 투표자의 공개키를 이용하여 상기 개인키 서명값을 검증할 수 있다.If it is determined in
상기 808 단계의 수행 결과 상기 개인키 서명값의 검증에 성공한 경우, 단계 810에서 집계 노드(104)는 수신된 상기 일반 트랜잭션을 집계 노드(104)에서 현재 생성중인 블록에 추가한다.If the verification of the private key signature value is successful as a result of
한편, 상기 804 단계에서 중복된 PIN 번호가 존재하거나, 상기 806 단계에서 공개키 해시값이 유효하지 않거나, 또는 상기 808 단계에서 서명값 검증에 실패한 경우, 단계 812에서 집계 노드(104)는 수신된 상기 일반 트랜잭션을 폐기한다.If the PIN number is duplicated in
단계 814에서, 집계 노드(104)는 기 설정된 블록 생성 주기에 도달했는지의 여부를 판단한다. 만약 아직 블록 생성 주기가 아닌 경우, 집계 노드(104)는 802 단계로 돌아가 일반 트랜잭션의 수집하고 검증하는 과정을 반복한다. In
만약 상기 814 단계의 판단 결과 블록 생성 주기에 도달한 경우, 단계 816에서 집계 노드(104)는 일반 트랜잭션 수집을 멈추고 베이스 트랜잭션을 생성한다. 전술한 바와 같이, 상기 베이스 트랜잭션은 현재 생성된 블록의 마지막 트랜잭션으로서, 해당 블록 내에서의 각 후보자들의 득표수 집계 결과를 포함한다.If it is determined in
단계 816에서, 집계 노드(104)는 생성된 상기 블록을 타 노드로 송신한다. 본 발명의 실시예들에서, 집계 노드(104)는 상기 블록을 타 투표 노드(102), 집계 노드(104) 또는 선거 관리 노드(106) 중 어느 하나로 전송할 수 있다.In
도 9는 본 발명의 일 실시예에 따른 각 투표 노드(102), 집계 노드(104), 또는 선거 관리 노드(106)에서의 블록 검증 과정(900)을 설명하기 위한 흐름도이다. 이하의 설명에서는 편의를 위해 집계 노드(104)에서 블록을 검증하는 것으로 가정하였으나, 이하의 단계들은 각 투표 노드(102) 및 선거 관리 노드(106)에서도 동일하게 수행될 수 있다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.FIG. 9 is a flow diagram illustrating a
단계 902에서, 집계 노드(104)는 타 노드로부터 블록을 수신한다. 본 발명의 실시예들에서, 집계 노드(104)는 타 투표 노드(102), 집계 노드(104) 또는 선거 관리 노드(106) 중 어느 하나로부터 블록을 수신할 수 있다.At
단계 904에서, 집계 노드(104)는 수신된 블록에 포함된 베이스 트랜잭션의 총 투표수가 실제 블록이 포함하고 있는 트랜잭션으로부터 계산된 총 투표수와 일치하는지 여부를 판단한다.At
상기 904 단계의 판단 결과 일치하는 경우, 단계 906에서 집계 노드(104)는 베이스 트랜잭션에 기록된 각 후보자별 득표수가 실제 블록이 포함하고 있는 트랜잭션으로부터 계산된 각 후보자별 득표수와 일치하는지 여부를 판단한다.If it is determined in
상기 906 단계의 판단 결과 일치하는 경우, 단계 908에서 집계 노드(104)는 블록 체인을 조회하여 블록 내에 포함된 PIN 번호 중 상기 블록 체인에 포함된 PIN 번호와 중복된 PIN 번호가 존재하는지의 여부를 판단한다.If it is determined in
상기 908 단계의 판단 결과 중복된 PIN 번호가 존재하지 않는 경우, 단계 910에서 집계 노드(104)는 블록에 저장된 머클 루트 해시값을 검증함으로써 블록 내 트랜잭션의 위변조 여부를 확인한다.If it is determined in
상기 910 단계의 검증 결과 머클 루트 해시값의 검증에 성공하는 경우, 단계 912에서 집계 노드(104)는 수신된 블록의 헤더에 자신의 서명값을 추가한다.If verification of the muckle hash value is successful in
한편, 상기 904 단계에서 총 투표수가 일치하지 않거나, 상기 906 단계에서 후보자별 득표수가 일치하지 않거나, 상기 908 단계에서 중복된 PIN 번호가 존재하거나, 또는 상기 910 단계에서 머클 루트 해시값의 검증에 실패한 경우, 단계 914에서 집계 노드(104)는 수신된 블록을 폐기한다.On the other hand, if the total number of votes does not match in
단계 916에서, 집계 노드(104)는 블록에 포함된 서명의 개수가 임계값 이상인지의 여부를 판단한다. 예를 들어, 상기 임계값은 상기 전자 투표에 참여하는 네트워크 내 전체 노드의 개수의 50%로 설정될 수 있다. 다만 본 발명의 실시예들은 특정 임계값에 한정되는 것은 아니다.At
상기 916 단계의 판단 결과 서명 개수가 임계값 이상인 경우, 단계 918에서 집계 노드(104)는 수신된 블록을 블록 체인에 연결한다.If it is determined in
이와 달리 상기 916 단계의 판단 결과 서명 개수가 임계값 미만인 경우, 단계 920에서 집계 노드(104)는 수신된 상기 블록을 타 노드로 송신한다. 본 발명의 실시예들에서, 집계 노드(104)는 상기 블록을 타 투표 노드(102), 집계 노드(104) 또는 선거 관리 노드(106) 중 어느 하나로 전송할 수 있다.On the other hand, if it is determined in
도 10은 본 발명의 일 실시예에 따른 전자 투표 시스템(100)에서 전술한 과정을 거쳐 블록 체인을 형성하는 과정을 설명하기 위한 예시도이다. 도시된 바와 같이, 투표 노드(102)에서의 투표자들의 투표 결과 일반 트랜잭션 TX1, TX2, TX3이 생성된다. 이 중 TX1, TX2는 집계 노드(104)에 의해 블록 2001에 추가되고, TX3은 다른 집계 노드(104)에 의해 블록 2002에 추가된다. 블록 생성 주기가 되면, 블록 2001을 생성한 집계 노드(104)는 TX1, TX2의 투표 결과를 종합하여 베이스 트랜잭션 BTX를 생성하여 블록 2001의 마지막 트랜잭션으로 추가하고 해당 블록을 블록 체인에 연결한다. 블록 체인의 첫 번째 블록인 Block 0은 초기 블록에 해당하며, Block 1부터는 일반 블록이 된다.FIG. 10 is an exemplary diagram illustrating a process of forming a block chain in the
이와 같이 블록 체인을 이용하여 투표 결과를 집계할 경우 악의적인 사용자가 투표 결과를 위조하거나 변조하는 것이 사실상 불가능하게 된다. 따라서 본 발명의 실시예들에 따를 경우 전자 투표에 있어 신뢰성과 안정성을 담보할 수 있다.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.
본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램, 및 상기 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 프로그램의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.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: 전자 투표 시스템
102: 투표 노드
104: 집계 노드
106: 선거 관리 노드100: Electronic voting system
102: Voting node
104: Aggregation node
106: election management node
Claims (22)
투표자로부터 복수의 후보자 중 어느 하나의 후보자에 대한 선택값을 포함하는 일반 트랜잭션을 생성하는 하나 이상의 투표 노드; 및
상기 하나 이상의 투표 노드로부터 수신된 상기 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 집계하여 하나 이상의 블록을 생성하는 하나 이상의 집계 노드를 포함하며,
상기 투표 노드 및 상기 집계 노드는 상기 집계 노드에서 생성된 상기 하나 이상의 블록을 검증하고, 검증된 블록을 상기 블록 체인에 연결하며,
상기 집계 노드는,
검증된 일반 트랜잭션을 현재 생성중인 블록에 추가하고, 기 설정된 블록 생성 주기에 도달한 경우, 베이스 트랜잭션을 생성하여 상기 현재 생성중인 블록에 추가하고, 생성된 상기 블록을 타 투표 노드 또는 타 집계 노드로 송신하는, 전자 투표 시스템.
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.
상기 초기 블록은,
상기 전자 투표에 참여한 총 유권자 수, 상기 선거 관리 노드의 서명값, 상기 하나 이상의 집계 노드의 공개키 및 상기 복수의 후보자들 각각의 공개키 해시값을 포함하는, 전자 투표 시스템.
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.
상기 일반 트랜잭션은,
상기 투표자의 PIN 번호, 상기 투표자가 선택한 후보자의 공개키 해시값, 상기 투표자의 개인키 서명값, 및 상기 투표자의 공개키를 포함하는, 전자 투표 시스템.
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.
상기 투표 노드는,
상기 투표자로부터 입력받은 PIN 번호의 유효성을 검증하고, 상기 유효성이 검증된 상기 투표자로부터 후보자 선택값을 입력받아 상기 일반 트랜잭션을 생성하며, 생성된 상기 일반 트랜잭션을 타 투표 노드 또는 상기 집계 노드로 송신하는, 전자 투표 시스템.
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.
상기 투표 노드는,
타 투표 노드로부터 상기 일반 트랜잭션이 수신되는 경우,
수신된 상기 일반 트랜잭션에 포함된 상기 PIN 번호와 중복되는 PIN 번호의 존재 여부, 후보자의 공개키 해시값의 유효 여부, 및 상기 투표자의 개인키 서명값의 유효 여부에 따라 수신된 상기 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 타 투표 노드 또는 상기 집계 노드로 송신하는, 전자 투표 시스템.
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.
상기 투표 노드는,
상기 일반 트랜잭션에 대한 검증 결과 중복된 PIN 번호가 존재하거나, 상기 후보자의 공개키 해시값이 유효하지 않거나, 또는 상기 투표자의 개인키 서명값이 유효하지 않을 것으로 판단되는 경우, 수신된 상기 일반 트랜잭션을 폐기하는, 전자 투표 시스템.
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.
상기 집계 노드는,
타 투표 노드로부터 상기 일반 트랜잭션이 수신되는 경우,
수신된 상기 일반 트랜잭션에 포함된 상기 PIN 번호와 중복되는 PIN 번호의 존재 여부, 후보자의 공개키 해시값의 유효 여부, 및 상기 투표자의 개인키 서명값의 유효 여부에 따라 수신된 상기 일반 트랜잭션을 검증하는, 전자 투표 시스템.
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.
상기 베이스 트랜잭션은,
상기 복수의 후보자들 각각의 공개키 해시값, 및 상기 베이스 트랜잭션이 속한 블록 내에서 집계된 상기 복수의 후보자들 각각의 득표수를 포함하는, 전자 투표 시스템.
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.
상기 블록을 수신한 상기 투표 노드 또는 상기 집계 노드는,
수신된 상기 블록의 베이스 트랜잭션에 기록된 총 투표수와 수신된 상기 블록에 포함된 일반 트랜잭션으로부터 계산된 총 투표수의 일치 여부,
수신된 상기 블록의 베이스 트랜잭션에 기록된 상기 복수의 후보자 각각의 득표수와 수신된 상기 블록에 포함된 일반 트랜잭션으로부터 계산된 각 후보자별 득표수의 일치 여부,
블록 체인에 상기 블록에 포함된 PIN 번호와 중복된 PIN 번호가 존재하는지의 여부, 및
상기 블록에 포함된 머클 루트 해시값의 유효 여부를 판단함으로써 상기 수신된 블록을 검증하고,
검증된 블록에 자신의 서명값을 추가하여 타 투표 노드 또는 타 집계 노드로 송신하는, 전자 투표 시스템.
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.
상기 블록을 수신한 상기 투표 노드 또는 상기 집계 노드는,
상기 검증된 블록에 포함된 서명값의 개수가 기 설정된 값 이상인 경우, 상기 검증된 블록을 상기 블록 체인에 연결하는, 전자 투표 시스템.
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.
투표 노드에서, 투표자로부터 복수의 후보자 중 어느 하나의 후보자에 대한 선택값을 포함하는 일반 트랜잭션을 생성하는 단계;
집계 노드에서, 상기 투표 노드로부터 수신된 상기 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 집계하여 블록을 생성하는 단계; 및
상기 투표 노드 또는 상기 집계 노드에서, 생성된 상기 블록을 검증하고, 검증된 블록을 상기 블록 체인에 연결하는 단계를 포함하고,
상기 블록 생성 단계는,
검증된 일반 트랜잭션을 현재 생성중인 블록에 추가하는 단계; 및
기 설정된 블록 생성 주기에 도달한 경우, 베이스 트랜잭션을 생성하여 상기 현재 생성중인 블록에 추가하고, 생성된 상기 블록을 타 투표 노드 또는 타 집계 노드로 송신하는 단계를 더 포함하는, 전자 투표 방법.
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.
상기 초기 블록은,
상기 전자 투표에 참여한 총 유권자 수, 상기 선거 관리 노드의 서명값, 상기 하나 이상의 집계 노드의 공개키 및 상기 복수의 후보자들 각각의 공개키 해시값을 포함하는, 전자 투표 방법.
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.
상기 일반 트랜잭션은,
상기 투표자의 PIN 번호, 상기 투표자가 선택한 후보자의 공개키 해시값, 상기 투표자의 개인키 서명값, 및 상기 투표자의 공개키를 포함하는, 전자 투표 방법.
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.
상기 일반 트랜잭션을 생성하는 단계는,
상기 투표자로부터 입력받은 PIN 번호의 유효성을 검증하고, 상기 유효성이 검증된 상기 투표자로부터 후보자 선택값을 입력받아 상기 일반 트랜잭션을 생성하며, 생성된 상기 일반 트랜잭션을 타 투표 노드 또는 상기 집계 노드로 송신하도록 구성되는, 전자 투표 방법.
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:
상기 투표 노드는,
타 투표 노드로부터 상기 일반 트랜잭션이 수신되는 경우,
수신된 상기 일반 트랜잭션에 포함된 상기 PIN 번호와 중복되는 PIN 번호의 존재 여부, 후보자의 공개키 해시값의 유효 여부, 및 상기 투표자의 개인키 서명값의 유효 여부에 따라 수신된 상기 일반 트랜잭션을 검증하고, 검증된 일반 트랜잭션을 타 투표 노드 또는 상기 집계 노드로 송신하는, 전자 투표 방법.
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.
상기 투표 노드는,
상기 일반 트랜잭션에 대한 검증 결과 중복된 PIN 번호가 존재하거나, 상기 후보자의 공개키 해시값이 유효하지 않거나, 또는 상기 투표자의 개인키 서명값이 유효하지 않을 것으로 판단되는 경우, 수신된 상기 일반 트랜잭션을 폐기하는, 전자 투표 방법.
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.
상기 블록 생성 단계는,
수신된 상기 일반 트랜잭션에 포함된 상기 PIN 번호와 중복되는 PIN 번호의 존재 여부, 후보자의 공개키 해시값의 유효 여부, 및 상기 투표자의 개인키 서명값의 유효 여부에 따라 수신된 상기 일반 트랜잭션을 검증하도록 구성되는, 전자 투표 방법.
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. 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.
상기 블록 검증 및 블록 체인 연결 단계는,
수신된 상기 블록의 베이스 트랜잭션에 기록된 총 투표수와 수신된 상기 블록에 포함된 일반 트랜잭션으로부터 계산된 총 투표수의 일치 여부,
수신된 상기 블록의 베이스 트랜잭션에 기록된 상기 복수의 후보자 각각의 득표수와 수신된 상기 블록에 포함된 일반 트랜잭션으로부터 계산된 각 후보자별 득표수의 일치 여부,
블록 체인에 상기 블록에 포함된 PIN 번호와 중복된 PIN 번호가 존재하는지의 여부, 및
상기 블록에 포함된 머클 루트 해시값의 유효 여부를 판단함으로써 상기 수신된 블록을 검증하고,
검증된 블록에 자신의 서명값을 추가하여 타 투표 노드 또는 타 집계 노드로 송신하도록 구성되는, 전자 투표 방법.
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.
상기 블록 검증 및 블록 체인 연결 단계는,
상기 검증된 블록에 포함된 서명값의 개수가 기 설정된 값 이상인 경우, 상기 검증된 블록을 상기 블록 체인에 연결하도록 구성되는, 전자 투표 방법.
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.
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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102051454B1 (en) | 2019-04-23 | 2019-12-04 | 에스지에이블록체인 주식회사 | A decision-making system using blockchains by verifying conditions |
KR20200114188A (en) | 2019-03-28 | 2020-10-07 | 권형석 | Electronic voting method using smart contract based block chain And system |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086780B (en) | 2019-03-26 | 2021-11-02 | 北京百度网讯科技有限公司 | Method and device for processing tampered transaction based on Ether house and storage medium |
KR102169695B1 (en) * | 2019-05-15 | 2020-10-23 | 김동영 | A self-verifiable blockchain electronic voting management method |
KR102282928B1 (en) * | 2019-07-05 | 2021-07-28 | 로버트 제임스 히갈티 | Sport voting system |
KR102120882B1 (en) * | 2019-09-11 | 2020-06-09 | 이민재 | Block chain based contest system and method for contesting |
KR102248401B1 (en) * | 2019-11-22 | 2021-05-11 | (주)레몬클라우드 | Apparatus of election administration and method thereof |
CN110933098B (en) * | 2019-12-05 | 2022-04-08 | 全链通有限公司 | Electronic voting method, device and storage medium based on block chain |
KR102392980B1 (en) * | 2020-03-10 | 2022-05-03 | 주식회사 미버스랩스 | Blockchain Distributed System and Method for Processing Blockchain Transaction |
KR102357460B1 (en) * | 2020-03-27 | 2022-01-28 | 한양대학교 산학협력단 | Electronic voting system and method based on homogeneous cryptography |
KR102582359B1 (en) | 2020-06-29 | 2023-09-25 | 한국전자통신연구원 | Method and apparatus for generating block in blockchain system |
KR102173426B1 (en) * | 2020-07-08 | 2020-11-03 | 주식회사 아이오트러스트 | Privacy preserving public key infrastructure based self sign and verification system and method in decentralized identity |
Citations (1)
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)
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 |
-
2017
- 2017-08-30 KR KR1020170110274A patent/KR101962686B1/en active IP Right Grant
Patent Citations (1)
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 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200114188A (en) | 2019-03-28 | 2020-10-07 | 권형석 | Electronic voting method using smart contract based block chain And system |
KR102051454B1 (en) | 2019-04-23 | 2019-12-04 | 에스지에이블록체인 주식회사 | A decision-making system using blockchains by verifying conditions |
Also Published As
Publication number | Publication date |
---|---|
KR20190023894A (en) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101962686B1 (en) | System and method for electronic voting | |
CN112446785B (en) | Cross-chain transaction method, system, device, equipment and storage medium | |
US11290441B1 (en) | Systems and methods for blockchain validation of user identity and authority | |
US11799660B2 (en) | Optimizations for verification of interactions system and method | |
CN111464518B (en) | Method and device for sending and verifying cross-link communication data | |
CN110245186B (en) | Service processing method based on block chain and related equipment | |
EP3859644B1 (en) | Block chain-based data check system and method, computing device, and storage medium | |
US11917050B1 (en) | Systems and methods for generating a blockchain-based user profile | |
US20220353281A1 (en) | Centralized threat intelligence | |
CN112632629B (en) | Voting management method, device, medium and electronic equipment based on block chain | |
CN113256297B (en) | Data processing method, device and equipment based on block chain and readable storage medium | |
CN109166040B (en) | Transaction auditing method, device, equipment and storage medium based on block chain | |
CN111556115B (en) | Block chain-based data processing method, device, equipment and storage medium | |
CN111209339B (en) | Block synchronization method, device, computer and storage medium | |
CN109242663A (en) | A kind of bookkeeping methods and system based on block chain technology | |
CN110597864A (en) | Block chain-based personal information management method and device | |
CN112738253A (en) | Data processing method, device and equipment based on block chain and storage medium | |
CN111967061A (en) | Credible account transfer transaction method and device based on block chain | |
CN110321730A (en) | A kind of method, block chain node and the storage medium of operation data processing | |
CN110689343A (en) | Transaction verification method and device based on directed acyclic graph | |
CN111476640A (en) | Authentication method, system, storage medium and big data authentication platform | |
JP2022517042A (en) | Preventing erroneous copies of data records from being sent to distributed ledger systems | |
CN111865595A (en) | Block chain consensus method and device | |
KR102317656B1 (en) | Electronic vote record management system based on blockchain | |
CN110728504A (en) | Data processing method, device and equipment of block chain and readable storage medium |
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 |