KR20200087913A - System and method for providing secret electronic voting service based on blockchain - Google Patents

System and method for providing secret electronic voting service based on blockchain Download PDF

Info

Publication number
KR20200087913A
KR20200087913A KR1020190003894A KR20190003894A KR20200087913A KR 20200087913 A KR20200087913 A KR 20200087913A KR 1020190003894 A KR1020190003894 A KR 1020190003894A KR 20190003894 A KR20190003894 A KR 20190003894A KR 20200087913 A KR20200087913 A KR 20200087913A
Authority
KR
South Korea
Prior art keywords
blockchain
voting
smart contract
voter
voters
Prior art date
Application number
KR1020190003894A
Other languages
Korean (ko)
Other versions
KR102187294B1 (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 KR1020190003894A priority Critical patent/KR102187294B1/en
Publication of KR20200087913A publication Critical patent/KR20200087913A/en
Application granted granted Critical
Publication of KR102187294B1 publication Critical patent/KR102187294B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Educational Administration (AREA)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention relates to a secret electronic voting system based on a blockchain network which can safely carry out secret electronic voting for a plurality of candidates. Each node making up the secret electronic voting system comprises: a voting process registration module to code a voting process to create a smart contract, and generate a transaction including the smart contract to store the transaction in a blockchain; a voter registration module allowing a node which is a potential voter to register as a voter in the smart contract in the blockchain; a voting module allowing a node registered as a voter to select and vote for one among a plurality of candidates to record the vote in the smart contract in the blockchain; and a vote-counting module allowing all voters to use voting information registered in the smart contract in the blockchain to count the votes. The voting process includes a non-interactive zero-knowledge proof function used for voter registration for potential voters, a 1-out-of-k non-interactive zero-knowledge proof function used for votes of voters, and a full-search vote-counting function.

Description

블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법{System and method for providing secret electronic voting service based on blockchain}System and method for providing secret electronic voting service based on blockchain}

본 발명은 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템에 관한 것으로서, 더욱 구체적으로는 투표자들이 참여 노드로서 블록체인 네트워크를 구성한 후 투표 프로세스를 코드화 하여 스마트 컨트랙트로 작성하여 블록체인에 기록하고, 스마트 컨트랙트의 투표 프로세스를 통해 예비투표자 등록, 투표자 투표 및 개표 과정을 진행하고 모든 투표자의 투표 결과를 블록체인 내의 스마트 컨트랙트에 기록 및 저장함으로써, 계약 이행의 강제성 및 신뢰성을 보장할 수 있으며 비밀 투표를 진행할 수 있는 비밀 전자 투표 시스템에 관한 것이다. The present invention relates to a secret electronic voting system based on a blockchain network, and more specifically, a voter constructs a blockchain network as a participating node, codes the voting process, writes it as a smart contract, records it on the blockchain, and smart Through the voting process of the contract, the process of preliminary voter registration, voter voting and counting, and voting results of all voters are recorded and stored in the smart contract in the blockchain to ensure the enforceability and reliability of contract execution and confidential ballot. It relates to a secret electronic voting system.

공공 인터넷과 같은 무선 통신 기술이 발달함에 따라, 기존의 종이 투표 방식을 대신하는 전자투표에 대한 연구가 다양하게 진행되고 있다. 전자투표는 네트워크를 이용한 전자식 투표로, 통신 가능한 단말기를 이용하여 투표가 가능하므로, 시간적, 공간적 제약이 없다는 장점이 있다. With the development of wireless communication technologies such as the public Internet, research on electronic voting in place of the conventional paper voting method has been conducted in various ways. Electronic voting is an electronic voting using a network, and since voting is possible using a terminal capable of communication, there is no advantage in terms of time and space.

하지만, 이러한 장점에도 불구하고, 종래의 전자투표 방식은 여러 문제점이 발견되고 있다. 특히, 종래의 전자 투표 시스템은 투표자가 투표한 후보자를 숨기고 다수의 후보자 중 하나의 후보자에게 투표했다는 사실을 증명하는 것이 매우 어렵다. 또한, 종래의 전자 투표 시스템은 투표 프로세스를 총괄하는 중앙 서버가 존재하기 때문에, 중앙 서버에 단일 장애점(Single Point of Failure)이나 데이터의 위조 및 변조의 문제가 있다. 또한, 중앙 서버없이 투표자들끼리 네트워크를 구성하여 전자 투표 시스템을 설계하더라도, 투표 과정에서 모두가 투표했다는 사실을 확인하는 것이 매우 어렵다. 해커 등에 의해 악의적인 목적으로 노드가 점령당하는 경우 투표 내용이 포함된 패킷이 조작되거나 훼손될 수 있으며, 전자 투표를 행사한 대상의 단말기를 역추적하여 어떤 사람이 어떠한 후보자에게 투표했는지에 대한 정보가 유출될 수 있다.However, despite these advantages, several problems have been found with the conventional electronic voting method. In particular, it is very difficult for a conventional electronic voting system to prove that a voter has concealed a candidate who has voted and voted for one of the multiple candidates. In addition, in the conventional electronic voting system, since there is a central server that oversees the voting process, there is a single point of failure or data forgery and tampering in the central server. In addition, even if the voters design the electronic voting system by configuring a network among voters without a central server, it is very difficult to confirm that everyone voted during the voting process. If a node is occupied by a hacker for malicious purposes, packets containing the contents of the vote may be tampered with or corrupted, and information on which candidates voted for which candidates by tracing the terminal of the target who electronically voted Can leak.

한편, 영지식 증명(zero knowledge proof; ZKP)이란 주로 암호학에서 어느 증명자가 상대방 검증자에게 어떤 명제(statement)가 참이라는 것을 증명할 때, 그 명제의 참 거짓 여부를 제외한 어떤 지식도 노출시키지 않는 상호 작용의 절차를 의미한다. 어떠한 명제가 참이라는 것을 증명하려는 쪽을 증명자(prover)라고 하고, 증명 과정에 참여하여 증명자와 정보를 주고 받는 쪽을 검증자(verifier)라고 한다. 영지식 증명에 참여하는 당사자들이 상대방을 속이려는 목적으로 프로토콜을 임의로 변경하는 경우, 당사자들이 부정직하다 또는 정직하지 않다고 한다. 그 외의 경우에는 정직하다고 한다. On the other hand, zero knowledge proof (ZKP) is a mutual name that does not expose any knowledge except whether the proposition is true or false when principally proves that a certain statement is true to the other verifier in cryptography. Means the procedure of action. A person who wants to prove that a certain proposition is true is called a provider, and a person who participates in the verification process to send and receive information with the certificater is called a verifier. If the parties participating in the zero-knowledge proof change the protocol arbitrarily to deceive the other party, the parties are said to be dishonest or dishonest. In other cases, it is said to be honest.

영지식 증명은 세 가지 성질, 즉 완전성, 건실성 및 영지식성을 만족하여야 한다. 완전성(completeness)은, 어떤 명제가 참이면, 정직한 증명자는 정직한 검증자에게 이 사실을 납득시킬 수 있어야 하는 것이다. 건실성(soundness)은, 어떤 명제가 거짓이면, 어떠한 부정직한 증명자라도 정직한 검증자에게 이 문장이 사실이라고 납득시킬 수 없어야 하는 것이다. 마지막으로, 영지식성(zero-knowledgeness)은, 어떤 명제가 참이면, 검증자는 문장의 참 거짓 이외에는 아무것도 알 수 없어야 하는 것이다. Proof of zero knowledge must satisfy three properties: completeness, soundness and zero knowledge. Completeness is that, if a certain proposition is true, an honest prover must be able to convince the honest verifier. Soundness is that if any proposition is false, no dishonest attestor should be able to convince the honest verifier that this sentence is true. Finally, zero-knowledgeness is that if a certain proposition is true, the verifier must know nothing but the true falsehood of the sentence.

한편, 블록체인(Blockchain)은 공공 거래 장부라고도 불리우는데, 블록(block)에 데이터를 담아 체인(chain) 형태로 연결한 것으로서, 수많은 노드에 이를 동시에 복제해 저장하는 분산형 데이터 저장 기술이다. 블록체인 기술은 중앙 집중형 서버에 거래 기록을 보관하지 않고 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며, 거래때마다 모든 거래 참여자들이 정보를 공유하고 이를 대조함으로써 데이터 위조 및 변조를 방지할 수 있게 된다. On the other hand, Blockchain (Blockchain) is also called a public transaction ledger, which is a distributed data storage technology that stores data in a block and connects it in a chain form, replicating and storing it simultaneously in numerous nodes. Blockchain technology does not store transaction records on a centralized server, but sends transaction details to all users participating in transactions, and every transaction participants share information and collate against each other to prevent data forgery and tampering. There will be.

블록체인을 저장하는 다수 개의 노드들로 이루어지는 블록체인 네트워크에 있어서, 하나의 노드가 전자 서명된 트랜잭션을 브로드캐스팅하면, 이를 수신한 모든 노드들은 작업 증명 과정을 진행하게 되고, 이에 따라 최초로 논스값을 찾은 노드는 블록체인 네트워크의 다른 노드들에 의해 검증된 후 블록 생성 권한을 갖게 된다. 블록 생성 권한을 가진 노드는 트랜잭션을 포함한 블록 생성 정보를 블록체인 네트워크의 모든 노드들로 브로드캐스팅하게 되고, 이를 수신한 모든 노드들은 트랜잭션을 포함하는 블록을 생성하고 자신의 블록체인에 상기 생성된 블록을 연결시켜 저장하게 된다. In a blockchain network composed of multiple nodes storing a blockchain, when one node broadcasts an electronically signed transaction, all nodes that receive it proceed with the proof-of-work process, and accordingly the first nonce value The found node has the authority to create blocks after being verified by other nodes in the blockchain network. A node with block creation authority broadcasts block creation information, including transactions, to all nodes in the blockchain network, and all nodes that receive it create blocks containing transactions and create the blocks on their blockchain. Connect and save.

이에 본 발명은 블록체인 네트워크를 기반으로 하여 영지식 증명을 이용하여 비밀 전자 투표 시스템을 제안하고자 한다. Accordingly, the present invention is to propose a secret electronic voting system using a zero-knowledge proof based on a blockchain network.

한국등록특허공보 제 10-1837169호Korean Registered Patent Publication No. 10-1837169 한국등록특허공보 제 10-1908677호Korean Registered Patent Publication No. 10-1908677

전술한 문제점을 해결하기 위한 본 발명의 목적은 블록체인 네트워크를 기반으로 하여, 다수의 후보자와 다수의 투표자들에 대하여 비대화형 영지식 증명을 이용한 투표자 등록 과정, 1-out-of-k 비대화형 영지식 증명을 이용한 투표 과정 및 완전 탐색 방식의 개표 과정을 포함하는 투표 프로세스를 코드화하여 스마트 컨트랙트에 작성하여 블록체인에 기록하고, 이를 통해 다수의 후보자에 대한 비밀 전자 투표를 안전하게 진행할 수 있도록 하는 비밀 전자 투표 시스템 및 방법을 제공하는 것이다. The object of the present invention for solving the above-mentioned problems is a voter registration process using a non-interactive zero-knowledge proof for a number of candidates and a plurality of voters based on a blockchain network, 1-out-of-k non-interactive The secret to enable the secret electronic voting for multiple candidates to be secured by coding the voting process, including the voting process using zero-knowledge proofs, and the fully-converted voting process, writing it in a smart contract, and thereby secure the secret electronic voting for multiple candidates. It is to provide an electronic voting system and method.

전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 비밀 전자 투표 시스템은 예비 투표자들이 노드로 참여하여 구성된 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템에 관한 것으로서, 상기 블록체인 네트워크를 구성하는 각 노드는, 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록을 생성하여 블록체인에 저장하는 투표 프로세스 등록 모듈; 예비 투표자인 노드가 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 투표자 등록 모듈; 투표자로 등록된 노드가 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 등록하는 투표 모듈; 모든 투표자들이 블록체인 내 스마트 컨트랙트에 등록한 투표 정보들을 이용하여 개표하는 개표 모듈;을 구비한다. The secret electronic voting system according to the first aspect of the present invention for achieving the above-described technical problem relates to a secret electronic voting system based on a blockchain network configured by preliminary voters participating as a node, and configuring the blockchain network Each node that codes, creates a voting process as a smart contract, creates a transaction containing the smart contract, propagates it to the blockchain network, creates a block according to a preset consensus algorithm, and stores the voting process in the blockchain registration module ; A voter registration module in which the preliminary voter node registers as a voter in a smart contract in the blockchain; A voting module in which a node registered as a voter selects one of a plurality of candidates and votes to register in a smart contract in the blockchain; And a ballot counting module for counting all voters using the vote information registered in the smart contract in the blockchain.

전술한 제1 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 투표 프로세스 등록 모듈에 의해 블록체인 내 스마트 컨트랙트에 저장되는 투표 프로세스는, 예비 투표자들에 대하여 투표자 등록을 위하여 사용되는 비대화형 영지식 증명 함수, 투표자들의 투표를 위하여 사용되는 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함하는 것이 바람직하다. In the secret electronic voting system according to the first feature described above, the voting process stored in the smart contract in the block chain by the voting process registration module is a non-interactive zero-knowledge proof function used for registering voters with respect to preliminary voters. It is desirable to include a 1-out-of-k non-interactive zero-knowledge proof function and a fully searched counting function used for voting by voters.

전술한 제1 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 투표자 등록 모듈은, 예비 투표자인 노드가 개인 투표키

Figure pat00001
를 이용하여 공개 투표키와 증명에 쓰이는 공개값들을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것이 바람직하다. In the secret electronic voting system according to the first feature described above, the voter registration module includes a node for which a preliminary voter is a personal voting key.
Figure pat00001
Use to obtain the input parameter value including the public voting key and the public values used for the proof, and generate an instruction to execute the non-interactive zero-knowledge proof function stored in the smart contract as the input parameter value as a transaction, and within the blockchain. It is desirable to record in a smart contract.

전술한 제1 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 투표 모듈은, 등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키

Figure pat00002
를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것이 바람직하다. In the secret electronic voting system according to the above-described first feature, the voting module, a personal voting key for voting for candidates selected by registered voters
Figure pat00002
Use to obtain the input factor values, generate the instructions to execute the 1-out-of-k non-interactive zero-knowledge proof function recorded in the smart contract as the input factor value as a transaction and record it in the smart contract in the blockchain It is desirable to do.

전술한 제1 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 개표 모듈은, 투표자의 투표가 종료된 후 완전 탐색 방식으로 각 투표자에 의해 실행되어 개표되는 것을 특징으로 하며, 블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인

Figure pat00003
값과 각 후보자에 대응되는 변수인 후보값
Figure pat00004
를 이용하여 계산되는 것이 바람직하다. In the secret electronic voting system according to the first feature described above, the counting module is characterized in that it is executed and counted by each voter in a complete search manner after the voter's voting is finished, and recorded in a smart contract in the blockchain. 1-out-of-k non-interactive zero-knowledge proof,
Figure pat00003
Values and candidate values that are variables corresponding to each candidate
Figure pat00004
It is preferably calculated using.

본 발명의 제2 특징에 따른 비밀 전자 투표 방법은, 예비 투표자들이 노드로 참여하여 구성된 블록체인 네트워크를 기반으로 한 비밀 전자 투표 방법에 관한 것으로서, (a) 블록체인 네트워크를 구성하는 노드가, 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록을 생성하여 블록체인의 최초 블록으로 저장하는 단계; (b) 예비 투표자인 노드들이 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 단계; (c) 투표자로 등록된 노드들이 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 등록하는 단계; (d) 블록체인 내 스마트 컨트랙트에 등록된 투표 정보들을 이용하여 개표하는 단계; 를 구비한다. The secret electronic voting method according to the second aspect of the present invention relates to a secret electronic voting method based on a blockchain network configured by preliminary voters participating as nodes, (a) a node constituting the blockchain network, voting Creating a smart contract by coding the process, generating a transaction including the smart contract, propagating it to the blockchain network, generating a block according to a preset consensus algorithm, and storing it as the first block of the blockchain; (b) preliminary voter nodes registering as voters in a smart contract in the blockchain; (c) nodes registered as voters select one of a plurality of candidates and vote to register in a smart contract in the blockchain; (d) counting using the vote information registered in the smart contract in the blockchain; It is provided.

본 발명에 따른 전자 투표 시스템은 스마트 컨트랙트 기술을 활용하여 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하여 블록체인에 기록함으로써, 실행할 때 계약 이행의 강제성 및 신뢰성을 보장할 수 있게 된다. 이로 인해 투표 프로세스가 기록된 스마트 컨트랙트를 실행함으로써 진행되는 예비 투표자의 등록 및 투표자의 투표를 수행할 수 있게 된다. The electronic voting system according to the present invention can code the voting process by using a smart contract technology, write it as a smart contract, and record it on a blockchain, thereby ensuring compulsory and reliable execution of contracts when executed. This enables the preliminary voter registration and voter voting to be performed by executing a smart contract in which the voting process is recorded.

또한, 본 발명에 따른 전자 투표 시스템은 모든 투표자의 투표가 종료된 시점에 개표를 진행하기 위하여, 블록체인에 기록된 스마트 컨트랙트 내의 개표 관련 코드를 실행함으로써, 투표자가 스스로 개표를 진행할 수 있고, 이 결과로 각 후보자에 대한 투표수를 확인할 수 있게 된다. In addition, in the electronic voting system according to the present invention, in order to proceed with the counting at the time when all voters have voted, by executing the counting-related code in the smart contract recorded on the blockchain, the voter can count by himself. As a result, the number of votes for each candidate can be checked.

또한, 본 발명에 따른 전자 투표 시스템은 예비 투표자가 투표자로서 등록하기 위하여 스마트 컨트랙트 내의 비대화형 영지식 증명을 실행하고, 투표자가 투표를 수행할 때는 스마트 컨트랙트 내의 1-out-of-k 비대화형 영지식 증명을 실행함으로써, 투표자가 다수의 후보자 중 하나에 대하여 투표한 사실은 확인할 수 있지만 투표한 후보가 누구인지는 숨길 수 있게 된다. In addition, the electronic voting system according to the present invention executes non-interactive zero-knowledge proof in a smart contract to register a preliminary voter as a voter, and when a voter performs a vote, a 1-out-of-k non-interactive zero in the smart contract By implementing the proof of knowledge, it is possible to confirm that a voter has voted for one of a number of candidates, but to hide who the voted candidate is.

또한, 이 모든 트랜잭션은 블록으로 구성되어 사전 설정된 합의 알고리즘에 따라 블록체인에 저장되고 공유하게 되므로, 인증 및 부인 방지, 무결성을 보장할 수 있을 뿐만 아니라 악의적인 공격자의 해킹 및 데이터 위/변조 시도가 원천적으로 차단될 수 있게 된다. In addition, all of these transactions are composed of blocks and stored and shared on the blockchain according to a preset consensus algorithm, so it can not only guarantee authentication and non-repudiation, integrity, but also hacking of malicious attackers and attempts to forge/tamper data It can be blocked by nature.

또한, 본 발명에 따른 전자 투표 시스템은 단일의 중앙 서버를 사용하지 않기 때문에 중앙 서버에 의한 단일 장애점의 문제가 발생되는 것을 방지할 수 있게 된다. In addition, since the electronic voting system according to the present invention does not use a single central server, it is possible to prevent a problem of a single point of failure by the central server.

도 1은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 전체 시스템을 설명하기 위하여 도시한 모식도이다.
도 2는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 각 노드가 블록체인에 기록된 스마트 컨트랙트를 통해 수행하는 전자 투표 과정을 전체적으로 도시한 순서도이다.
도 3은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자 등록 모듈(30)의 동작을 순차적으로 설명하는 순서도이며, 도 4는 투표자 등록 모듈에서 예비투표자와 검증자간의 증명 과정을 설명하는 순서도이다.
도 5는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 각 후보자에 대응되는 후보값을 설정하는 과정을 설명하기 위하여 도시한 모식도이다.
도 6은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표 모듈(40)을 통해 각 투표자들이 투표를 수행하는 과정을 순차적으로 도시한 순서도이다.
도 7은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자들이 투표를 수행하기 위하여 1-out-of-k 비대화형 영지식 증명을 수행할 때의 투표자측의 증명 과정을 도시한 순서도이다.
도 8은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자들이 투표를 수행하기 위하여 1-out-of-k 비대화형 영지식 증명을 수행할 때의 검증자측의 증명 과정을 도시한 순서도이다.
도 9는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 개표 모듈(50)의 동작을 도시한 순서도이다.
1 is a schematic diagram illustrating an entire system in an electronic voting system according to a preferred embodiment of the present invention.
FIG. 2 is a flow chart of an electronic voting process performed by each node through a smart contract recorded in a blockchain in an electronic voting system according to a preferred embodiment of the present invention.
FIG. 3 is a flow chart sequentially explaining the operation of the voter registration module 30 in the electronic voting system according to the preferred embodiment of the present invention, and FIG. 4 illustrates the process of verifying between the preliminary voter and the verifier in the voter registration module. It is a flowchart.
5 is a schematic diagram illustrating a process of setting a candidate value corresponding to each candidate in an electronic voting system according to a preferred embodiment of the present invention.
6 is a flow chart sequentially showing a process in which each voter performs a vote through the voting module 40 in the electronic voting system according to the preferred embodiment of the present invention.
FIG. 7 is a flow chart showing a process of voting by the voter when performing a 1-out-of-k non-interactive zero-knowledge proof in order to perform voting in an electronic voting system according to a preferred embodiment of the present invention. to be.
FIG. 8 is a flow chart showing a verification process by a validator when a voter performs 1-out-of-k non-interactive zero-knowledge proof in order to perform a vote in an electronic voting system according to a preferred embodiment of the present invention. to be.
9 is a flowchart illustrating the operation of the counting module 50 in the electronic voting system according to the preferred embodiment of the present invention.

본 발명에 따른 블록체인 네트워크를 기반으로 한 전자 투표 시스템은 투표에 참여하고자 하는 투표자들이 노드로서 블록체인 네트워크를 구성하고 투표 프로세스를 코드화하여 스마트 컨트랙트를 작성하여 최초에 블록체인에 기록하게 되며, 상기 투표 프로세스는 비대화형 영지식 증명, 1-out-of-k 비대화형 영지식 증명과 완전 탐색 방식의 개표 과정을 포함하는 것을 특징으로 한다. In the electronic voting system based on the blockchain network according to the present invention, voters who wish to participate in voting construct a blockchain network as a node and code the voting process to create a smart contract and record it on the blockchain for the first time. The voting process is characterized by a non-interactive zero-knowledge proof, a one-out-of-k non-interactive zero-knowledge proof, and a full-search counting process.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 블록체인 네트워크를 기반으로 한 전자 투표 시스템의 구성 및 동작에 대하여 구체적으로 설명한다. Hereinafter, the configuration and operation of an electronic voting system based on a blockchain network according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 전체 시스템을 설명하기 위하여 도시한 모식도이며, 도 2는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 각 노드가 블록체인에 기록된 스마트 컨트랙트를 통해 수행하는 전자 투표 과정을 전체적으로 도시한 순서도이다. 1 is a schematic diagram illustrating an entire system in an electronic voting system according to a preferred embodiment of the present invention, and FIG. 2 is an electronic voting system according to a preferred embodiment of the present invention, wherein each node is a blockchain It is a flowchart showing the electronic voting process performed through the smart contract recorded in the overall.

도 1 및 도 2를 참조하면, 본 발명에 따른 블록체인 네트워크를 기반으로 한 전자 투표 시스템(1)은 투표하고자 하는 예비 투표자들이 노드로서 구성한 블록체인 네트워크(10)를 기반으로 이루어지며, 각 노드는 블록체인(20), 투표 프로세스 등록 모듈(30), 투표자 등록 모듈(40), 투표 모듈(50), 개표 모듈(60)을 구비한다. 1 and 2, the electronic voting system 1 based on the blockchain network according to the present invention is made on the basis of the blockchain network 10 configured as nodes by preliminary voters who want to vote, and each node Has a blockchain 20, a voting process registration module 30, a voter registration module 40, a voting module 50, and a counting module 60.

상기 블록체인(20)은 투표 프로세스를 코드화한 스마트 컨트랙트, 투표자들에 대한 정보, 투표자들의 투표 정보, 개표 정보 등을 저장한 블록들을 사슬 형태로 연결하여 순차적으로 저장한 데이터 저장소이다. The block chain 20 is a data store that sequentially stores blocks that store smart contracts that coded the voting process, information about voters, voter information, and counting information in a chain.

상기 투표 프로세스 등록 모듈(30)은 사전 설정된 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고 이를 트랜잭션으로 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록체인의 최초 블록으로 기록한다. 상기 코드화되어 스마트 컨트랙트에 기록되는 투표 프로세스는 투표자 등록을 위한 비대화형 영지식 증명 함수, 투표자들의 투표를 위한 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함한다. The voting process registration module 30 codes the pre-set voting process into a smart contract, generates it as a transaction, propagates it to the blockchain network, and records it as the first block of the blockchain according to the preset consensus algorithm. The coded and recorded voting process in the smart contract includes a non-interactive zero-knowledge proof function for voter registration, a 1-out-of-k non-interactive zero-knowledge proof function for voting by voters, and a fully searched counting function. .

상기 투표자 등록 모듈(40)은, 블록체인 네트워크에 참여하는 예비 투표자들이 투표에 참여하기 위하여 투표자로 등록을 진행하는 모듈로서, 각 예비투표자들은 개인 투표키

Figure pat00005
를 이용하여 3개의 입력 인자값(공개 투표키
Figure pat00006
, 증명에 쓰이는 공개값
Figure pat00007
,
Figure pat00008
)을 구하고, 상기 입력 인자값으로 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록한다. 한편, 상기 개인 투표키
Figure pat00009
는 예비투표자들이 블록체인 네트워크에 참여할 때 생성되는 고유한 키로 본인만이 알 수 있는 값이다. The voter registration module 40 is a module in which preliminary voters participating in the blockchain network register as voters in order to participate in voting, and each preliminary voter has a personal voting key.
Figure pat00005
3 input factor values using (public voting key
Figure pat00006
, Public value used for proof
Figure pat00007
,
Figure pat00008
), and generates an instruction to execute a non-interactive zero-knowledge proof as the input argument value as a transaction and records it in a smart contract in the blockchain. Meanwhile, the above individual voting key
Figure pat00009
Is a unique key generated when pre-voting participants participate in the blockchain network, and is a value that only they can know.

상기 투표 모듈(50)은, 상기 투표자 등록 모듈을 통해 등록된 투표자들은 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키

Figure pat00010
를 이용하여 입력 인자값(x, y, c,
Figure pat00011
,
Figure pat00012
,
Figure pat00013
,
Figure pat00014
)을 구하고, 상기 입력 인자값으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록한다. 이 때 기록된 모든 투표자의
Figure pat00015
값으로 이후에 개표를 진행하게 된다. The voting module 50 is a personal voting key for voting for candidates selected by voters registered through the voter registration module.
Figure pat00010
Use the input factor values (x, y, c,
Figure pat00011
,
Figure pat00012
,
Figure pat00013
,
Figure pat00014
), and generates an instruction that executes 1-out-of-k non-interactive zero-knowledge proof as the input argument value as a transaction and records it in a smart contract in the blockchain. All voters recorded at this time
Figure pat00015
Values will be counted later.

상기 개표 모듈(60)은 완전 탐색 방식으로 각 투표자에 의해 개표를 진행하는 것으로서, 블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의

Figure pat00016
값을 곱함으로써 시작된다. 곱한 값은 소거법에 의하여
Figure pat00017
이 되는데 이때
Figure pat00018
는 각 후보자에 대응되는 변수인 후보값으로 여기서는 투표자들이 투표한 모든 후보값을 더한 것이 지수가 된다. 완전 탐색 방식을 적용함으로써 후보자들 중 가장 큰 후보값부터 제수(divisor)로 두고
Figure pat00019
를 피제수(dividend) 두어 나눗셈을 수행한다. 이때 나눠지는 횟수를 해당 후보값에 대응되는 후보자의 투표 수로 집계할 수 있고, 해당 나눗셈 과정을 다음으로 큰 후보값을 제수로 둠으로써 가장 작은 후보값까지 반복 수행한다. 이 결과로 각 후보자에 대한 투표 수를 집계할 수 있다. The counting module 60 is to perform a counting by each voter in a full search method, and all voters verified by a 1-out-of-k non-interactive zero-knowledge proof recorded in a smart contract in the blockchain
Figure pat00016
It starts by multiplying the values. The multiplied value is
Figure pat00017
This time
Figure pat00018
Is a candidate value that is a variable corresponding to each candidate. Here, the index is the sum of all candidate values voted by voters. By applying the full search method, the largest candidate value is set as the divisor.
Figure pat00019
Divide by to perform division. At this time, the number of divisions can be counted as the number of votes of candidates corresponding to the candidate value, and the division process is repeated to the smallest candidate value by setting the next largest candidate value to the divisor. As a result, the number of votes for each candidate can be counted.

한편, 본 발명에 따른 전자 투표 시스템을 구성하는 각 모듈에 의해 진행되는 과정에서 각 노드들이 생성하는 모든 트랜잭션은 해당 노드의 개인키와 결합하여 서명된 후 블록체인 네트워크에 전파되고, 송신 노드 이외의 모든 노드들이 트랜잭션의 유효성을 검증하고, 일정 기간동안 트랜잭션을 모아 블록의 생성 권한을 얻기 위한 작업 증명(Proof of Work)이라는 합의 과정을 통해 블록으로 구성되어 다시 블록체인 네트워크로 전파된다. 이후 상기 전파된 블록은 모든 노드로부터 유효성을 확인받은 후 n개의 블록으로 이루어진 블록체인에 n+1번째 블록으로 이어지게 된다. 그 결과, 블록체인에 기록되는 모든 트랜잭션 및 데이터는 무결성을 보장받고 블록체인 네트워크의 모든 노드들은 블록체인의 기록들을 공유하게 된다. 한편, 본 발명에서는 합의 알고리즘으로 작업 증명(Proof of Work) 방식을 사용하는 것을 예시적으로 설명하고 있으나, 이것에 한정하는 것은 아니며 다른 합의 알고리즘도 사용될 수 있다. On the other hand, in the process performed by each module constituting the electronic voting system according to the present invention, all the transactions generated by each node are signed with the private key of the node and then propagated to the blockchain network, and other than the sending node. All nodes are composed of blocks through a consensus process called Proof of Work to verify the validity of the transaction and collect the transactions for a certain period of time to obtain the authority to create blocks, and then propagate back to the blockchain network. After that, the propagated block is confirmed by validity from all nodes, and then continues to an n+1th block in a block chain of n blocks. As a result, all transactions and data recorded on the blockchain are guaranteed integrity, and all nodes in the blockchain network share the records of the blockchain. Meanwhile, in the present invention, the use of a proof-of-work method as a consensus algorithm is exemplarily described, but is not limited to this, and other consensus algorithms may be used.

또한, 블록체인에 데이터를 기록하는 것은 해당 트랜잭션에서 스마트 컨트랙트 내 함수를 호출할 때 함수의 입력값에 따른 출력값을 스마트 컨트랙트에 state로써 기록(혹은 변경)하는 것이기 때문에 스마트 컨트랙트에 기록하는 것과 동일한 것이고, 이때 스마트 컨트랙트에 기록된 값은 블록체인에 기록한 것과 동일한 것이기 때문에 기록된 값의 무결성을 보장받는다.In addition, recording data in the blockchain is the same as recording in the smart contract because it records (or changes) the output value according to the input value of the function as a state in the smart contract when calling the function in the smart contract in the transaction. At this time, since the value recorded in the smart contract is the same as that recorded in the blockchain, the integrity of the recorded value is guaranteed.

이하, 도 3 및 도 4를 참조하여 본 발명의 바람직한 실시예에 따른 전자 투표 시스템의 투표자 등록 모듈(30)에 대하여 구체적으로 설명한다. Hereinafter, the voter registration module 30 of the electronic voting system according to a preferred embodiment of the present invention will be described in detail with reference to FIGS. 3 and 4.

도 3은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자 등록 모듈(30)의 동작을 순차적으로 설명하는 순서도이며, 도 4는 투표자 등록 모듈에서 예비투표자와 검증자간의 증명 과정을 설명하는 순서도이다. FIG. 3 is a flow chart sequentially explaining the operation of the voter registration module 30 in the electronic voting system according to the preferred embodiment of the present invention, and FIG. 4 illustrates the process of verifying between the preliminary voter and the verifier in the voter registration module. It is a flowchart.

도 3을 참조하면, 예비 투표자들이 투표에 참여하기 위해 투표자 등록 모듈(30)을 통해 투표자로서 등록을 진행하게 된다. 이때 개인 투표키

Figure pat00020
를 이용하여 3개의 입력 인자값(공개 투표키
Figure pat00021
, 증명에 쓰이는 공개값
Figure pat00022
,
Figure pat00023
)으로 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 과정으로 비대화형 영지식 증명은 구체적으로 다음과 같이 진행된다.Referring to FIG. 3, preliminary voters are registered as voters through the voter registration module 30 in order to participate in the vote. At this time, the individual voting key
Figure pat00020
3 input factor values using (public voting key
Figure pat00021
, Public value used for proof
Figure pat00022
,
Figure pat00023
) As a process of generating instructions to execute non-interactive zero-knowledge proof as a transaction and recording it in a smart contract in the blockchain, non-interactive zero-knowledge proof proceeds in detail as follows.

먼저, 블록체인 네트워크에 참여하는 예비 투표자는 소수

Figure pat00024
를 생성한 후
Figure pat00025
를 만족하는 소수
Figure pat00026
를 선택한다. 그리고 Prime-order
Figure pat00027
의 곱셈 순환군(Multiplicative cyclic groups)을
Figure pat00028
이라 하고,
Figure pat00029
의 생성원을
Figure pat00030
,
Figure pat00031
라고 한다. 이로써 초기값인 (
Figure pat00032
,
Figure pat00033
,
Figure pat00034
,
Figure pat00035
)가 생성된다(단계 300 및 도 4의 ①,②,③). 상기 g, h 는
Figure pat00036
의 생성원으로, g는 투표 자격 증명 과정과 이후 투표 과정에서 모두 사용되는 값이고, h는 투표 과정에서 사용되는 값이다. First, a small number of preliminary voters participating in the blockchain network
Figure pat00024
After creating
Figure pat00025
Prime to satisfy
Figure pat00026
Choose And Prime-order
Figure pat00027
Multiplicative cyclic groups of
Figure pat00028
And say
Figure pat00029
The origin of
Figure pat00030
,
Figure pat00031
It is said. Thus, the initial value (
Figure pat00032
,
Figure pat00033
,
Figure pat00034
,
Figure pat00035
) Is generated (steps 300 and ①, ②, ③ in FIG. 4). The g, h is
Figure pat00036
As a source of generation, g is a value used in both the voting credential process and the subsequent voting process, and h is a value used in the voting process.

다음, 예비 투표자는 개인 투표키

Figure pat00037
와 공개 투표키
Figure pat00038
를 생성하고, 이번 증명에서만 사용될 임의의 비밀값
Figure pat00039
를 선택하고 공개값
Figure pat00040
를 생성한다(단계 310 및 도 4의 ④). 개인 투표키
Figure pat00041
와 비밀값
Figure pat00042
는 투표자만 알고 있는 값으로, 이 값을 검증자에게 알리지 않고 오직 생성된 공개 투표키
Figure pat00043
와 공개값
Figure pat00044
를 검증자에게 보내게 된다. 그리고 해시 함수를 이용하여 투표자가 조작할 수 없는 랜덤한 값
Figure pat00045
를 생성하고
Figure pat00046
을 생성한다(단계 320 및 도 4의 ⑤,⑥). 여기서, Zq는 q에 대한 수의 집합으로 1,2, ??, q-1 를 가지고 있는 수의 집합으로 이루어진다. Next, the preliminary voter is the individual voting key
Figure pat00037
And public voting key
Figure pat00038
And a random value to be used only for this proof.
Figure pat00039
Select and public value
Figure pat00040
Is generated (step 340 and ④ in FIG. 4). Individual voting key
Figure pat00041
And secret value
Figure pat00042
Is a value known only to the voter, and the public vote key is generated without notifying the validator of this value.
Figure pat00043
And public value
Figure pat00044
Is sent to the verifier. And a random value that voters cannot manipulate using the hash function
Figure pat00045
And create
Figure pat00046
To create (steps 320 and 4, ⑥). Here, Zq is a set of numbers for q and consists of a set of numbers having 1,2, ??, and q-1.

다음, 스마트 컨트랙트 내 비대화형 영지식 증명 함수를 실행하는 트랜잭션을 생성하고(단계 330), 검증자에게 보낼 값들을 상기 비대화형 영지식 증명 함수의 입력 인자값으로 트랜잭션에 추가한다(단계 340). 이때, 검증자에게 보낼 값으로는

Figure pat00047
을 포함하게 된다.Next, a transaction that executes the non-interactive zero-knowledge proof function in the smart contract is generated (step 330), and values to be sent to the verifier are added to the transaction as input parameter values of the non-interactive zero-knowledge proof function (step 340). At this time, as a value to send to the verifier
Figure pat00047
It will include.

다음, 해당 트랜잭션을 자신의 개인키로 서명한 후 블록체인 네트워크에 전파하고(단계 350), 작업증명(POW) 과정을 거쳐 해당 트랜잭션을 블록으로 구성한 후 블록체인에 다시 전파하고(단계 352), 이를 수신한 모든 노드들에 의해 블록의 유효성을 검증받고(단계 354), 일정 개수 이상의 노드들이 해당 블록에 대해 승인하면 블록 체인에 마지막 블록으로 연결하여 저장 및 공유하게 된다(단계 356).Next, the transaction is signed with its own private key, and then propagated to the blockchain network (step 350), and then through the proof-of-work (POW) process, the transaction is composed of blocks and propagated back to the blockchain (step 352). The validity of the block is verified by all the received nodes (step 354), and when more than a certain number of nodes approve the corresponding block, it is connected to the last block in the blockchain and stored and shared (step 356).

한편, 스마트 컨트랙트의 비대화형 영지식 증명 함수의 입력 인자값을 수신한 스마트 컨트랙트는, 비대화형 영지식 증명 함수를 실행하여 검증자로서 검증을 진행하게 된다(단계 370 및 도 4의 ⑦,⑧). 이 때, 해시 함수로

Figure pat00048
를 생성한 후 (도 4의 ⑦)
Figure pat00049
Figure pat00050
가 동일한지 검증함으로써(도 4의 ⑧) 투표자가 개인 투표키
Figure pat00051
를 보유하고 있다는 사실을 검증하면서 해당 사실 외의 정보를 얻지 못한다. 다음, 상기 비대화형 영지식 증명 함수의 동작 후 해당 검증 사실과 예비투표자에 대한 공개 투표키를 블록체인 내 스마트 컨트랙트에 기록함으로써, 예비 투표자에 대하여 투표자로서의 등록을 완료하게 된다(단계 372).Meanwhile, the smart contract that receives the input parameter value of the non-interactive zero-knowledge proof function of the smart contract performs verification as a verifier by executing the non-interactive zero-knowledge proof function (steps 370 and ⑦,⑧ in FIG. 4). . At this time, as a hash function
Figure pat00048
After creating (⑦ in Figure 4)
Figure pat00049
Wow
Figure pat00050
By verifying that is the same (⑧ in FIG. 4 ), the voter has a personal
Figure pat00051
While verifying the fact that the company holds the information, no information other than the fact is obtained. Next, after the operation of the non-interactive zero-knowledge proof function, the verification fact and the public voting key for the preliminary voter are recorded in the smart contract in the blockchain, thereby completing registration as a voter for the preliminary voter (step 372).

도 5는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 각 후보자에 대응되는 후보값을 설정하는 과정을 설명하기 위하여 도시한 모식도이다. 5 is a schematic diagram illustrating a process of setting a candidate value corresponding to each candidate in an electronic voting system according to a preferred embodiment of the present invention.

도 5를 참조하면, 본 발명에 따른 전자 투표 시스템은 다수의 후보자를 두기 위하여 각 후보자에 대응되는 후보값(v)을 설정하기 위하여, j번째 후보자에 대한 후보값(vj)은, 수학식 1과 같이 정해진다.5, in the electronic voting system according to the present invention, in order to set a candidate value (v) corresponding to each candidate in order to place a plurality of candidates, the candidate value (vj) for the j-th candidate is Equation 1 It is decided as follows.

Figure pat00052
Figure pat00052

여기서, m은 투표자가 n명인 경우, 2m > n 을 만족하는 최소의 정수이다. Here, m is a minimum integer satisfying 2 m > n when there are n voters.

이하, 도 6 내지 도 8을 참조하여 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표 모듈(40)을 통해 각 투표자들이 투표를 수행하는 과정을 구체적으로 설명한다. Hereinafter, with reference to FIGS. 6 to 8, in the electronic voting system according to the preferred embodiment of the present invention, a process of voting by each voter through the voting module 40 will be described in detail.

상기 투표 모듈(40)은 등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키

Figure pat00053
를 이용하여 입력 인자값(x, y, c,
Figure pat00054
,
Figure pat00055
,
Figure pat00056
,
Figure pat00057
)으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 과정으로 1-out-of-k 비대화형 영지식 증명은 다음과 같이 진행된다. 이때 1-out-of-k 비대화형 영지식 증명은 2가지를 증명하는 방식으로 먼저 투표자가 알고 있는 비밀 투표키가 참이라는 것을 검증자에게 증명할 때 해당 사실 외의 다른 어떤 것도 드러내지 않는다. 또한 동시에 k개의 후보자에 대하여 선택한 후보자를 드러내지 않고 k개 중 하나를 선택했다는 사실을 증명하게 된다.The voting module 40 is a personal voting key for voting for candidates selected by registered voters
Figure pat00053
Use the input factor values (x, y, c,
Figure pat00054
,
Figure pat00055
,
Figure pat00056
,
Figure pat00057
) Is a process of generating an instruction to execute 1-out-of-k non-interactive zero-knowledge proof as a transaction and recording it in a smart contract in the blockchain.The 1-out-of-k non-interactive zero-knowledge proof is as follows: Proceeds. At this time, the 1-out-of-k non-interactive zero-knowledge proof proves two things. When the first proves to the verifier that the secret ballot key known to the voter is true, nothing other than the fact is revealed. It also proves that one of the k candidates has been selected without revealing the selected candidates for the k candidates at the same time.

도 6은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표 모듈(40)을 통해 각 투표자들이 투표를 수행하는 과정을 순차적으로 도시한 순서도이며, 도 7은 투표자들이 투표를 수행하기 위하여 1-out-of-k 비대화형 영지식 증명을 수행할 때의 투표자측의 증명 과정을 도시한 순서도이며, 도 8은 투표자들이 투표를 수행하기 위하여 1-out-of-k 비대화형 영지식 증명을 수행할 때의 검증자측의 증명 과정을 도시한 순서도이다. FIG. 6 is a flow chart sequentially showing a process in which each voter performs a vote through the voting module 40 in the electronic voting system according to the preferred embodiment of the present invention, and FIG. 7 is for the voters to perform the vote 1-out-of-k is a flow chart showing the process of the voter's proof when performing non-interactive zero-knowledge proof, and FIG. 8 is a 1-out-of-k non-interactive zero-knowledge proof for voters to perform voting It is a flow chart showing the verification process of the verifier when performing.

도 6을 참조하면, 먼저, 투표자는 소수

Figure pat00058
를 생성한 후
Figure pat00059
를 만족하는 소수
Figure pat00060
를 선택한다. 그리고 Prime-order
Figure pat00061
의 곱셈 순환군(Multiplicative cyclic groups)을
Figure pat00062
이라 하고,
Figure pat00063
의 생성원을
Figure pat00064
,
Figure pat00065
라고 한다. 이로써 초기값인 (
Figure pat00066
,
Figure pat00067
,
Figure pat00068
,
Figure pat00069
)가 생성된다(단계 600).Referring to Figure 6, first, the voter is a minority
Figure pat00058
After creating
Figure pat00059
Prime to satisfy
Figure pat00060
Choose And Prime-order
Figure pat00061
Multiplicative cyclic groups of
Figure pat00062
And say
Figure pat00063
The origin of
Figure pat00064
,
Figure pat00065
It is said. Thus, the initial value (
Figure pat00066
,
Figure pat00067
,
Figure pat00068
,
Figure pat00069
) Is generated (step 600).

투표자는 개인 투표키

Figure pat00070
Figure pat00071
를 생성하는데(단계 610), 이때
Figure pat00072
를 생성하는데 들어간
Figure pat00073
는 투표자가 선택한 후보자의 후보값이 된다. 개인 투표키
Figure pat00074
를 이용하여 입력 인자값(x, y, c,
Figure pat00075
,
Figure pat00076
,
Figure pat00077
,
Figure pat00078
)을 구하고, 상기 입력 인자값으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성한다(단계 620). 다음, 검증자에게 보낼 값들을 1-out-of-k 비대화형 영지식 증명 함수의 입력 인자값으로 트랜잭션에 추가한다(단계 630). Voter's Individual Voting Key
Figure pat00070
in
Figure pat00071
(Step 610), where
Figure pat00072
Into creating
Figure pat00073
Is the candidate value of the candidate chosen by the voter. Individual voting key
Figure pat00074
Use the input factor values (x, y, c,
Figure pat00075
,
Figure pat00076
,
Figure pat00077
,
Figure pat00078
), and generates an instruction to execute a 1-out-of-k non-interactive zero-knowledge proof as the input parameter value (step 620). Next, the values to be sent to the verifier are added to the transaction as the input argument value of the 1-out-of-k non-interactive zero-knowledge proof function (step 630).

여기서, 상기 입력 인자값(x, y, c,

Figure pat00079
,
Figure pat00080
,
Figure pat00081
,
Figure pat00082
)은 도 7에 도시된 바와 같이, x 및 y는
Figure pat00083
에 따라 계산되고, a 및 b는 자신이 선택한 투표자에 따라, 선택한 투표자의 경우 Here, the input factor values (x, y, c,
Figure pat00079
,
Figure pat00080
,
Figure pat00081
,
Figure pat00082
) As shown in Figure 7, x and y are
Figure pat00083
Calculated according to, and a and b are for the selected voters, according to the voters of their choice

Figure pat00084
,
Figure pat00085
가 되며, 그외 다른 경우는 각각
Figure pat00086
,
Figure pat00087
이며, 이때 r과 c는 Zq에 속해있는 투표자 값을 의미한다.
Figure pat00084
,
Figure pat00085
And other cases
Figure pat00086
,
Figure pat00087
Where r and c are voter values belonging to Zq.

Figure pat00088
,
Figure pat00089
은 투표자가 투표한 값에 따라 투표의 비밀성을 유지하기 위한 진짜 투표값과 가짜 투표값들의 집합을 나타내며 c는 자신이 투표한 후보자의 값과 앞선 투표값들의 집합을 해시 함수를 통해 해싱한 값이며,
Figure pat00090
,
Figure pat00091
은 자신이 한 투표가 유효함을 입증하기 위해 c값을 통해 생성되는 값이다.
Figure pat00088
,
Figure pat00089
Denotes a set of real votes and fake votes to maintain the secrecy of the vote according to the voter's voted value, and c is the value of the candidate's vote and the previous set of votes hashed through the hash function And
Figure pat00090
,
Figure pat00091
Is a value that is generated through the value of c to prove that your vote is valid.

다음, 해당 트랜잭션을 자신의 개인키로 서명한 후 블록체인 네트워크에 전파하고(단계 640), 작업증명(POW) 과정을 거쳐 해당 트랜잭션을 블록으로 구성한 후 블록체인에 다시 전파하고(단계 642), 이를 수신한 모든 노드들에 의해 블록의 유효성을 검증받고(단계 644), 일정 개수 이상의 노드들이 해당 블록에 대해 승인하면 블록 체인에 마지막 블록으로 연결하여 저장 및 공유하게 된다(단계 646).Next, the transaction is signed with its own private key, and then propagated to the blockchain network (step 640), and then through the proof-of-work (POW) process, the transaction is composed of blocks and propagated back to the blockchain (step 642). The validity of the block is verified by all the received nodes (step 644), and if more than a certain number of nodes approve the block, it is connected to the last block in the blockchain and stored and shared (step 646).

한편, 스마트 컨트랙트의 1-out-of-k 비대화형 영지식 증명 함수의 입력 인자값을 수신한 스마트 컨트랙트는, 1-out-of-k 비대화형 영지식 증명 함수를 실행하여 검증자로서 검증을 진행하게 된다(단계 670). 따라서 투표자는 개인 투표키

Figure pat00092
Figure pat00093
를 이용하여 첫 번째 증명을,
Figure pat00094
를 이용하여 두 번째 증명을 진행하게 된다. 또한 k명의 후보자가 있을 때 실제 투표자가 선택한 후보자의 후보값에 대해서만 진짜 증명을 수행하고, 나머지 (k-1)명의 후보자에 대해서는 투표자가 값 형식에 맞춰 임의로 만든 값을 검증자에게 넘겨줌으로써 검증할 수 있도록 한다. 검증자는 k번의 검증을 수행하게 되는데 이 중 어떤 것이 실제 선택한 후보자의 후보값에 대한 검증인지는 모르지만 k번의 검증 중에 하나로 속해 있다고 판단한다.Meanwhile, the smart contract that receives the input parameter value of the 1-out-of-k non-interactive zero-knowledge proof function of the smart contract performs verification as a verifier by executing the 1-out-of-k non-interactive zero-knowledge proof function. Proceed (step 670). Therefore, the voter is the individual
Figure pat00092
Wow
Figure pat00093
Using the first proof,
Figure pat00094
Proceed with the second proof. In addition, when there are k candidates, real proof is performed only on the candidate value of the candidate selected by the actual voter, and the remaining (k-1) candidates can be verified by passing the randomly created value to the validator according to the value format. Make it possible. The verifier performs k verifications, but it is not known which of the candidates is actually a candidate value, but determines that it belongs to one of k verifications.

상기 1-out-of-k 비대화형 영지식 증명 함수를 실행한 후 해당 검증 사실과 투표자의

Figure pat00095
값을 블록의 형태로 블록체인 내 스마트 컨트랙트에 기록한다(단계 672) After executing the 1-out-of-k non-interactive zero-knowledge proof function, the verification facts and voters
Figure pat00095
The value is recorded in a smart contract in the blockchain in the form of a block (step 672).

이하, 도 9를 참조하여 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 개표 모듈(50)의 동작을 구체적으로 설명한다. Hereinafter, the operation of the counting module 50 in the electronic voting system according to the preferred embodiment of the present invention will be described in detail with reference to FIG. 9.

도 9는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 개표 모듈(50)의 동작을 도시한 순서도이다. 9 is a flowchart illustrating the operation of the counting module 50 in the electronic voting system according to the preferred embodiment of the present invention.

도 9를 참조하면, 개표 모듈(50)은 투표가 끝난 후 완전 탐색 방식으로 각 투표자에 의해 개표를 진행하게 되는데, 블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의

Figure pat00096
값을 호출하여 곱함으로써 시작된다. 곱한 값은 소거법에 의하여
Figure pat00097
이 되는데 이때
Figure pat00098
는 각 후보자에 대응되는 변수인 후보값으로 여기서는 투표자들이 투표한 모든 후보값을 더한 것이 지수가 된다. 완전 탐색 방식을 적용함으로써 후보자들 중 가장 큰 후보값부터 제수(divisor)로 두고
Figure pat00099
를 피제수(dividend) 두어 나눗셈을 수행한다. 이때 나눠지는 횟수를 해당 후보값에 대응되는 후보자의 투표 수로 집계할 수 있고, 해당 나눗셈 과정을 다음으로 큰 후보값을 제수로 둠으로써 가장 작은 후보값까지 반복 수행한다. 이 결과로 각 후보자에 대한 투표 수를 집계할 수 있다.Referring to FIG. 9, the counting module 50 performs counting by each voter in a complete search method after the voting is over, and the 1-out-of-k non-interactive zero-knowledge proof recorded in the smart contract in the blockchain Voters verified by
Figure pat00096
It starts by multiplying the values by calling them. The multiplied value is
Figure pat00097
This time
Figure pat00098
Is a candidate value that is a variable corresponding to each candidate. Here, the index is the sum of all candidate values voted by voters. By applying the full search method, the largest candidate value is set as the divisor.
Figure pat00099
Divide by to perform division. At this time, the number of divisions can be counted as the number of votes of candidates corresponding to the candidate value, and the division process is repeated to the smallest candidate value by setting the next largest candidate value to the divisor. As a result, the number of votes for each candidate can be counted.

이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다. In the above, the present invention has been mainly described for its preferred embodiment, but this is merely an example and does not limit the present invention, and those skilled in the art to which the present invention pertains do not depart from the essential characteristics of the present invention. It will be appreciated that various modifications and applications not illustrated above are possible in the scope. And, the differences related to these modifications and applications should be construed as being included in the scope of the invention defined in the appended claims.

1 : 전자 투표 시스템
10 : 블록체인 네트워크
20 : 블록체인
30 : 투표 프로세스 등록 모듈
40 : 투표자 등록 모듈
50 : 투표 모듈
60 : 개표 모듈
1: Electronic voting system
10: blockchain network
20: Blockchain
30: voting process registration module
40: Voter registration module
50: voting module
60: counting module

Claims (12)

예비 투표자들이 노드로 참여하여 구성된 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템에 있어서, 블록체인 네트워크를 구성하는 각 노드는,
투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록을 생성하여 블록체인에 저장하는 투표 프로세스 등록 모듈;
예비 투표자인 노드가 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 투표자 등록 모듈;
투표자로 등록된 노드가 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 기록하는 투표 모듈;
모든 투표자들이 블록체인 내 스마트 컨트랙트에 등록한 투표 정보들을 이용하여 개표하는 개표 모듈;
을 구비하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템.
In a secret electronic voting system based on a blockchain network formed by preliminary voters participating as nodes, each node constituting the blockchain network,
A voting process registration module that encodes a voting process, writes it as a smart contract, generates a transaction including the smart contract, propagates it to the blockchain network, generates a block according to a preset consensus algorithm, and stores it in the blockchain;
A voter registration module in which the preliminary voter node registers as a voter in a smart contract in the blockchain;
A voting module in which a node registered as a voter selects one of a plurality of candidates and votes to record in a smart contract in the blockchain;
A counting module for counting all voters using the vote information registered in the smart contract in the blockchain;
Secret electronic voting system based on the blockchain network, characterized in that it comprises a.
제1항에 있어서, 상기 투표 프로세스 등록 모듈에 의해 블록체인 내 스마트 컨트랙트에 저장되는 투표 프로세스는,
예비 투표자들에 대하여 투표자 등록을 위하여 사용되는 비대화형 영지식 증명 함수, 투표자들의 투표를 위하여 사용되는 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
According to claim 1, The voting process stored in the smart contract in the blockchain by the voting process registration module,
It includes a non-interactive zero-knowledge proof function used for voter registration for preliminary voters, a one-out-of-k non-interactive zero-knowledge proof function used for voting by voters, and a fully searched counting function. Secret electronic voting system based on blockchain network.
제1항에 있어서, 상기 투표자 등록 모듈은,
예비 투표자인 노드가 개인 투표키
Figure pat00100
를 이용하여 공개 투표키와 증명에 쓰이는 공개값들을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
According to claim 1, The voter registration module,
The primary voter node is the individual vote key
Figure pat00100
Use to obtain the input parameter value including the public voting key and the public values used for the proof, and generate an instruction to execute the non-interactive zero-knowledge proof function stored in the smart contract as the input parameter value as a transaction, and within the blockchain. A secret electronic voting system based on a blockchain network characterized by recording in a smart contract.
제3항에 있어서, 상기 입력 인자값은 공개 투표키
Figure pat00101
, 증명에 쓰이는 공개값들
Figure pat00102
,
Figure pat00103
이며,
공개 투표키
Figure pat00104
Figure pat00105
이며, 공개값
Figure pat00106
Figure pat00107
이며, 공개값
Figure pat00108
인 것을 특징으로 하며,
여기서,
Figure pat00109
는 예비투표자에 의해 생성되는 소수이며,
Figure pat00110
Figure pat00111
를 만족하는 소수이며,
Figure pat00112
,
Figure pat00113
는 Prime-order
Figure pat00114
의 곱셈 순환군(Multiplicative cyclic groups)인
Figure pat00115
의 생성원이며,
Figure pat00116
는 임의의 비밀값으로서
Figure pat00117
를 만족하는 값들 중 선택되는 값이며,
Figure pat00118
는 해시 함수를 이용하여 생성하는 랜덤한 값이며, Zq는
Figure pat00119
에 대한 수의 집합으로 1,2,??,
Figure pat00120
-1을 가지는 수의 집합인 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
The method of claim 3, wherein the input factor value is a public voting key
Figure pat00101
, Public values used for proof
Figure pat00102
,
Figure pat00103
And
Public voting key
Figure pat00104
The
Figure pat00105
And public value
Figure pat00106
The
Figure pat00107
And public value
Figure pat00108
Characterized in that,
here,
Figure pat00109
Is the prime number generated by the preliminary voter,
Figure pat00110
The
Figure pat00111
Is a prime number that satisfies,
Figure pat00112
,
Figure pat00113
Prime-order
Figure pat00114
Multiplicative cyclic groups of
Figure pat00115
Is the source of
Figure pat00116
Is an arbitrary secret value
Figure pat00117
Is a value selected from among values satisfying,
Figure pat00118
Is a random value generated using a hash function, and Zq is
Figure pat00119
1,2,??, as a set of numbers for
Figure pat00120
A secret electronic voting system based on a blockchain network characterized by being a set of numbers with -1.
제1항에 있어서, 상기 투표 모듈은,
등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키
Figure pat00121
를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
According to claim 1, The voting module,
Private voting key to vote for candidates selected by registered voters
Figure pat00121
Use to obtain the input factor values, generate the instructions to execute the 1-out-of-k non-interactive zero-knowledge proof function recorded in the smart contract as the input factor value as a transaction and record it in the smart contract in the blockchain Secret electronic voting system based on a blockchain network, characterized by.
제5항에 있어서, 상기 투표 모듈에서의 1-out-of-k 비대화형 영지식 증명 함수의 입력 인자값은 x, y, c,
Figure pat00122
,
Figure pat00123
,
Figure pat00124
,
Figure pat00125
인 것을 특징으로 하며,
여기서,
Figure pat00126
이며,
Figure pat00127
는 투표자가 선택한 후보자의 후보값이며,
Figure pat00128
는 예비투표자에 의해 생성되는 소수이며,
Figure pat00129
Figure pat00130
를 만족하는 소수이며,
Figure pat00131
,
Figure pat00132
는 Prime-order
Figure pat00133
의 곱셈 순환군(Multiplicative cyclic groups)인
Figure pat00134
의 생성원이며,
Figure pat00135
는 임의의 비밀값으로서
Figure pat00136
를 만족하는 값들 중 선택되는 값이며,
Figure pat00137
는 해시 함수를 이용하여 생성하는 랜덤한 값이며,
Figure pat00138
,
Figure pat00139
은 투표자가 투표한 값에 따라 투표의 비밀성을 유지하기 위한 진짜 투표값과 가짜 투표값들의 집합을 나타내며 c는 자신이 투표한 후보자의 값과 앞선 투표값들의 집합을 해시 함수를 통해 해싱한 값이며,
Figure pat00140
,
Figure pat00141
은 자신이 한 투표가 유효함을 입증하기 위해 c값을 통해 생성되는 값인 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
The method of claim 5, wherein the input parameter value of the 1-out-of-k non-interactive zero-knowledge proof function in the voting module is x, y, c,
Figure pat00122
,
Figure pat00123
,
Figure pat00124
,
Figure pat00125
Characterized in that,
here,
Figure pat00126
And
Figure pat00127
Is the candidate value of the candidate chosen by the voter,
Figure pat00128
Is the prime number generated by the preliminary voter,
Figure pat00129
The
Figure pat00130
Is a prime number that satisfies,
Figure pat00131
,
Figure pat00132
Prime-order
Figure pat00133
Multiplicative cyclic groups of
Figure pat00134
Is the source of
Figure pat00135
Is an arbitrary secret value
Figure pat00136
Is a value selected from among values satisfying,
Figure pat00137
Is a random value generated using a hash function,
Figure pat00138
,
Figure pat00139
Denotes a set of real votes and fake votes to maintain the secrecy of the vote according to the voter's voted value, and c is the value of the candidate's vote and the previous set of votes hashed through the hash function And
Figure pat00140
,
Figure pat00141
Is a secret electronic voting system based on a blockchain network, characterized in that it is a value generated through a c value to prove that one vote is valid.
제1항에 있어서, 상기 개표 모듈은,
투표자의 투표가 종료된 후 완전 탐색 방식으로 각 투표자에 의해 실행되어 개표되는 것을 특징으로 하며,
블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인
Figure pat00142
값과 각 후보자에 대응되는 변수인 후보값
Figure pat00143
를 이용하여 계산되는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
According to claim 1, The counting module,
After the voter's vote is finished, it is executed and counted by each voter in a full search method.
The vote result of all voters verified by 1-out-of-k non-interactive zero-knowledge proof recorded in the smart contract in the blockchain
Figure pat00142
Values and candidate values that are variables corresponding to each candidate
Figure pat00143
A secret electronic voting system based on a blockchain network characterized by being calculated using.
예비 투표자들이 노드로 참여하여 구성된 블록체인 네트워크를 기반으로 한 비밀 전자 투표 방법에 있어서,
(a) 블록체인 네트워크를 구성하는 노드가, 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록을 생성하여 블록체인의 최초 블록으로 저장하는 단계;
(b) 예비 투표자인 노드들이 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 단계;
(c) 투표자로 등록된 노드들이 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 등록하는 단계;
(d) 블록체인 내 스마트 컨트랙트에 등록된 투표 정보들을 이용하여 개표하는 단계;
를 구비하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 한 비밀 전자 투표 방법.
In a secret electronic voting method based on a blockchain network composed of preliminary voters participating as nodes,
(a) The nodes constituting the blockchain network code the voting process, write it as a smart contract, create a transaction that includes the smart contract, propagate it to the blockchain network, and generate a block according to a preset consensus algorithm to create a blockchain Storing as the first block of the;
(b) preliminary voter nodes registering as voters in a smart contract in the blockchain;
(c) nodes registered as voters select one of a plurality of candidates and vote to register in a smart contract in the blockchain;
(d) counting using the vote information registered in the smart contract in the blockchain;
Secret electronic voting method based on a blockchain network, characterized in that it comprises a.
제8항에 있어서, 상기 블록체인 내 스마트 컨트랙트에 저장되는 투표 프로세스는,
예비 투표자들에 대한 투표자 등록을 위하여 사용되는 비대화형 영지식 증명 함수, 투표자들의 투표를 위하여 사용되는 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.
According to claim 8, The voting process stored in the smart contract in the blockchain,
Features include non-interactive zero-knowledge proof function used for voter registration for preliminary voters, 1-out-of-k non-interactive zero-knowledge proof function used for voting by voters, and a fully searched counting function Secret electronic voting method based on blockchain network.
제8항에 있어서, 상기 (b) 단계는,
예비 투표자인 노드가 개인 투표키
Figure pat00144
를 이용하여 공개 투표키와 증명에 쓰이는 공개들값을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.
The method of claim 8, wherein the step (b),
The primary voter node is the individual vote key
Figure pat00144
Obtain an input parameter value including the public voting key and the public values used for authentication, and generate an instruction to execute a non-interactive zero-knowledge proof function stored in the smart contract as the input parameter value as a transaction and block chain Secret electronic voting method based on blockchain network, characterized by recording in my smart contract.
제8항에 있어서, 상기 (c) 단계는,
등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키
Figure pat00145
를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.
The method of claim 8, wherein step (c),
Private voting key to vote for candidates selected by registered voters
Figure pat00145
Use to obtain the input factor values, generate the instructions to execute the 1-out-of-k non-interactive zero-knowledge proof function recorded in the smart contract as the input factor value as a transaction and record it in the smart contract in the blockchain Secret electronic voting method based on a blockchain network, characterized by.
제8항에 있어서, 상기 (d) 단계는,
투표자의 투표가 종료된 후 완전 탐색 방식으로 각 투표자에 의해 실행되어 개표되는 것을 특징으로 하며,
블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인
Figure pat00146
값과 각 후보자에 대응되는 변수인 후보값
Figure pat00147
를 이용하여 계산되는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.
The method of claim 8, wherein (d) step,
After the voter's vote is finished, it is executed and counted by each voter in a full search method.
The vote result of all voters verified by 1-out-of-k non-interactive zero-knowledge proof recorded in the smart contract in the blockchain
Figure pat00146
Values and candidate values that are variables corresponding to each candidate
Figure pat00147
Secret electronic voting method based on a blockchain network, characterized by being calculated using.
KR1020190003894A 2019-01-11 2019-01-11 System and method for providing secret electronic voting service based on blockchain KR102187294B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190003894A KR102187294B1 (en) 2019-01-11 2019-01-11 System and method for providing secret electronic voting service based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190003894A KR102187294B1 (en) 2019-01-11 2019-01-11 System and method for providing secret electronic voting service based on blockchain

Publications (2)

Publication Number Publication Date
KR20200087913A true KR20200087913A (en) 2020-07-22
KR102187294B1 KR102187294B1 (en) 2020-12-07

Family

ID=71893186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190003894A KR102187294B1 (en) 2019-01-11 2019-01-11 System and method for providing secret electronic voting service based on blockchain

Country Status (1)

Country Link
KR (1) KR102187294B1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112422294A (en) * 2020-12-04 2021-02-26 网易(杭州)网络有限公司 Anonymous voting method and device based on ring signature, electronic equipment and storage medium
CN112822239A (en) * 2020-12-30 2021-05-18 深圳市宝能投资集团有限公司 Block chain consensus method, block chain consensus device, electronic equipment and storage medium
KR20220060444A (en) * 2020-11-04 2022-05-11 광주과학기술원 Bolckchain e-voting system and manipulation method
CN114677794A (en) * 2022-03-18 2022-06-28 南京邮电大学 Electronic voting method based on block chain
CN115189882A (en) * 2022-04-08 2022-10-14 安徽师范大学 Distributed identity authentication method based on block chain in group knowledge perception
CN115473642A (en) * 2022-08-01 2022-12-13 湖北工业大学 Block chain time lock encryption electronic voting system and method capable of monitoring malicious votes
CN116938470A (en) * 2023-06-27 2023-10-24 天津大学 Safe electronic voting system based on block chain
KR102595354B1 (en) * 2023-02-07 2023-10-30 주식회사 지크립토 Blockchain-based Electronic Voting System and Method with Zero-knowledge proof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837169B1 (en) 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same
KR101908677B1 (en) 2017-09-29 2018-10-16 숭실대학교산학협력단 System and method for managementing electronic vote using blockchain
KR20180115727A (en) * 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 Block Chain Implementation Counting System and Method for Use in Security Voting and Distribution

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180115727A (en) * 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 Block Chain Implementation Counting System and Method for Use in Security Voting and Distribution
KR20180117119A (en) * 2016-02-23 2018-10-26 엔체인 홀딩스 리미티드 Agent-based Turing complete transactions that incorporate feedback within a block-chain system
KR101837169B1 (en) 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same
KR101908677B1 (en) 2017-09-29 2018-10-16 숭실대학교산학협력단 System and method for managementing electronic vote using blockchain

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Patrick McCorry, "A Smart Contract for Boardroom Voting with Maximum Voter Privacy", Conference: Financial Cryptography and Data Security, 2017.01. 1부.* *
아이콘루프, "스마트 컨트랙트 개요-2", 인터넷블로그, 2017.04.04. 1부.* *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220060444A (en) * 2020-11-04 2022-05-11 광주과학기술원 Bolckchain e-voting system and manipulation method
CN112422294A (en) * 2020-12-04 2021-02-26 网易(杭州)网络有限公司 Anonymous voting method and device based on ring signature, electronic equipment and storage medium
CN112822239A (en) * 2020-12-30 2021-05-18 深圳市宝能投资集团有限公司 Block chain consensus method, block chain consensus device, electronic equipment and storage medium
CN114677794A (en) * 2022-03-18 2022-06-28 南京邮电大学 Electronic voting method based on block chain
CN114677794B (en) * 2022-03-18 2024-03-15 南京邮电大学 Electronic voting method based on block chain
CN115189882A (en) * 2022-04-08 2022-10-14 安徽师范大学 Distributed identity authentication method based on block chain in group knowledge perception
CN115189882B (en) * 2022-04-08 2024-04-30 安徽师范大学 Block chain-based distributed identity authentication method in crowd sensing
CN115473642A (en) * 2022-08-01 2022-12-13 湖北工业大学 Block chain time lock encryption electronic voting system and method capable of monitoring malicious votes
CN115473642B (en) * 2022-08-01 2024-04-30 湖北工业大学 Block chain time lock encryption electronic voting system and method capable of supervising malicious voting
KR102595354B1 (en) * 2023-02-07 2023-10-30 주식회사 지크립토 Blockchain-based Electronic Voting System and Method with Zero-knowledge proof
CN116938470A (en) * 2023-06-27 2023-10-24 天津大学 Safe electronic voting system based on block chain

Also Published As

Publication number Publication date
KR102187294B1 (en) 2020-12-07

Similar Documents

Publication Publication Date Title
KR102187294B1 (en) System and method for providing secret electronic voting service based on blockchain
CN109523683B (en) Anonymous electronic voting method based on block chain technology
Adiputra et al. A proposal of blockchain-based electronic voting system
Panja et al. A smart contract system for decentralized borda count voting
Singh et al. SecEVS: secure electronic voting system using blockchain technology
Damgård et al. Unclonable group identification
Gupta et al. End to end secure e-voting using blockchain & quantum key distribution
Xu et al. Multi-candidate voting model based on blockchain
CN110867012A (en) Method, device and system for de-centering electronic voting based on intelligent contract and storage medium
Benaloh et al. Shuffle-sum: coercion-resistant verifiable tallying for STV voting
Faour Transparent voting platform based on permissioned blockchain
Salman et al. A Review on E-Voting Based on Blockchain Models
Emami et al. A scalable decentralized privacy-preserving e-voting system based on zero-knowledge off-chain computations
Ball et al. New techniques for zero-knowledge: Leveraging inefficient provers to reduce assumptions, interaction, and trust
Lu et al. Self-tallying e-voting with public traceability based on blockchain
CN114005217A (en) Electronic voting system and method based on block chain
Alvi et al. Bsevoting: A conceptual framework to develop electronic voting system using sidechain
Hu et al. A practical anonymous voting scheme based on blockchain for Internet of energy
EP3474241A1 (en) Electronic balloting
CN112422294B (en) Anonymous voting method and device based on ring signature, electronic equipment and storage medium
Vijayalakshmi et al. Secure online voting system in cloud
Hussain Danwar et al. A Framework for e-Voting System Based on Blockchain and Distributed Ledger Technologies.
Panja Zero-Knowledge Proof, Deniability and Their Applications in Blockchain, E-Voting and Deniable Secret Handshake Protocols
Patel et al. Why Proprietary Blockchains Are Not Suitable for Online Voting!
KR102430835B1 (en) Bolckchain e-voting system and manipulation method

Legal Events

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