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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 230000008569 process Effects 0.000 claims abstract description 60
- 230000002452 interceptive effect Effects 0.000 claims abstract description 49
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000012795 verification Methods 0.000 description 9
- 230000000644 propagated effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000011160 research 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3033—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic 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
Description
본 발명은 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템에 관한 것으로서, 더욱 구체적으로는 투표자들이 참여 노드로서 블록체인 네트워크를 구성한 후 투표 프로세스를 코드화 하여 스마트 컨트랙트로 작성하여 블록체인에 기록하고, 스마트 컨트랙트의 투표 프로세스를 통해 예비투표자 등록, 투표자 투표 및 개표 과정을 진행하고 모든 투표자의 투표 결과를 블록체인 내의 스마트 컨트랙트에 기록 및 저장함으로써, 계약 이행의 강제성 및 신뢰성을 보장할 수 있으며 비밀 투표를 진행할 수 있는 비밀 전자 투표 시스템에 관한 것이다. 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.
전술한 문제점을 해결하기 위한 본 발명의 목적은 블록체인 네트워크를 기반으로 하여, 다수의 후보자와 다수의 투표자들에 대하여 비대화형 영지식 증명을 이용한 투표자 등록 과정, 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 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 투표자 등록 모듈은, 예비 투표자인 노드가 개인 투표키 를 이용하여 공개 투표키와 증명에 쓰이는 공개값들을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것이 바람직하다. 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. 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 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 투표 모듈은, 등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키 를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 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 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 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인 값과 각 후보자에 대응되는 변수인 후보값 를 이용하여 계산되는 것이 바람직하다. 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, Values and candidate values that are variables corresponding to each candidate 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
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
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
본 발명에 따른 블록체인 네트워크를 기반으로 한 전자 투표 시스템은 투표에 참여하고자 하는 투표자들이 노드로서 블록체인 네트워크를 구성하고 투표 프로세스를 코드화하여 스마트 컨트랙트를 작성하여 최초에 블록체인에 기록하게 되며, 상기 투표 프로세스는 비대화형 영지식 증명, 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
상기 블록체인(20)은 투표 프로세스를 코드화한 스마트 컨트랙트, 투표자들에 대한 정보, 투표자들의 투표 정보, 개표 정보 등을 저장한 블록들을 사슬 형태로 연결하여 순차적으로 저장한 데이터 저장소이다. The
상기 투표 프로세스 등록 모듈(30)은 사전 설정된 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고 이를 트랜잭션으로 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록체인의 최초 블록으로 기록한다. 상기 코드화되어 스마트 컨트랙트에 기록되는 투표 프로세스는 투표자 등록을 위한 비대화형 영지식 증명 함수, 투표자들의 투표를 위한 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함한다. The voting
상기 투표자 등록 모듈(40)은, 블록체인 네트워크에 참여하는 예비 투표자들이 투표에 참여하기 위하여 투표자로 등록을 진행하는 모듈로서, 각 예비투표자들은 개인 투표키 를 이용하여 3개의 입력 인자값(공개 투표키 , 증명에 쓰이는 공개값 , )을 구하고, 상기 입력 인자값으로 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록한다. 한편, 상기 개인 투표키 는 예비투표자들이 블록체인 네트워크에 참여할 때 생성되는 고유한 키로 본인만이 알 수 있는 값이다. The
상기 투표 모듈(50)은, 상기 투표자 등록 모듈을 통해 등록된 투표자들은 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키 를 이용하여 입력 인자값(x, y, c, , , , )을 구하고, 상기 입력 인자값으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록한다. 이 때 기록된 모든 투표자의 값으로 이후에 개표를 진행하게 된다. The
상기 개표 모듈(60)은 완전 탐색 방식으로 각 투표자에 의해 개표를 진행하는 것으로서, 블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 값을 곱함으로써 시작된다. 곱한 값은 소거법에 의하여 이 되는데 이때 는 각 후보자에 대응되는 변수인 후보값으로 여기서는 투표자들이 투표한 모든 후보값을 더한 것이 지수가 된다. 완전 탐색 방식을 적용함으로써 후보자들 중 가장 큰 후보값부터 제수(divisor)로 두고 를 피제수(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 It starts by multiplying the values. The multiplied value is This time 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. 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
도 3은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자 등록 모듈(30)의 동작을 순차적으로 설명하는 순서도이며, 도 4는 투표자 등록 모듈에서 예비투표자와 검증자간의 증명 과정을 설명하는 순서도이다. FIG. 3 is a flow chart sequentially explaining the operation of the
도 3을 참조하면, 예비 투표자들이 투표에 참여하기 위해 투표자 등록 모듈(30)을 통해 투표자로서 등록을 진행하게 된다. 이때 개인 투표키 를 이용하여 3개의 입력 인자값(공개 투표키 , 증명에 쓰이는 공개값 , )으로 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 과정으로 비대화형 영지식 증명은 구체적으로 다음과 같이 진행된다.Referring to FIG. 3, preliminary voters are registered as voters through the
먼저, 블록체인 네트워크에 참여하는 예비 투표자는 소수 를 생성한 후 를 만족하는 소수 를 선택한다. 그리고 Prime-order 의 곱셈 순환군(Multiplicative cyclic groups)을 이라 하고, 의 생성원을 , 라고 한다. 이로써 초기값인 (, , , )가 생성된다(단계 300 및 도 4의 ①,②,③). 상기 g, h 는 의 생성원으로, g는 투표 자격 증명 과정과 이후 투표 과정에서 모두 사용되는 값이고, h는 투표 과정에서 사용되는 값이다. First, a small number of preliminary voters participating in the blockchain network After creating Prime to satisfy Choose And Prime-order Multiplicative cyclic groups of And say The origin of , It is said. Thus, the initial value ( , , , ) Is generated (
다음, 예비 투표자는 개인 투표키 와 공개 투표키 를 생성하고, 이번 증명에서만 사용될 임의의 비밀값 를 선택하고 공개값 를 생성한다(단계 310 및 도 4의 ④). 개인 투표키 와 비밀값 는 투표자만 알고 있는 값으로, 이 값을 검증자에게 알리지 않고 오직 생성된 공개 투표키 와 공개값 를 검증자에게 보내게 된다. 그리고 해시 함수를 이용하여 투표자가 조작할 수 없는 랜덤한 값 를 생성하고 을 생성한다(단계 320 및 도 4의 ⑤,⑥). 여기서, Zq는 q에 대한 수의 집합으로 1,2, ??, q-1 를 가지고 있는 수의 집합으로 이루어진다. Next, the preliminary voter is the individual voting key And public voting key And a random value to be used only for this proof. Select and public value Is generated (
다음, 스마트 컨트랙트 내 비대화형 영지식 증명 함수를 실행하는 트랜잭션을 생성하고(단계 330), 검증자에게 보낼 값들을 상기 비대화형 영지식 증명 함수의 입력 인자값으로 트랜잭션에 추가한다(단계 340). 이때, 검증자에게 보낼 값으로는 을 포함하게 된다.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 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의 ⑦,⑧). 이 때, 해시 함수로 를 생성한 후 (도 4의 ⑦) 와 가 동일한지 검증함으로써(도 4의 ⑧) 투표자가 개인 투표키 를 보유하고 있다는 사실을 검증하면서 해당 사실 외의 정보를 얻지 못한다. 다음, 상기 비대화형 영지식 증명 함수의 동작 후 해당 검증 사실과 예비투표자에 대한 공개 투표키를 블록체인 내 스마트 컨트랙트에 기록함으로써, 예비 투표자에 대하여 투표자로서의 등록을 완료하게 된다(단계 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 (
도 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
여기서, 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
상기 투표 모듈(40)은 등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키 를 이용하여 입력 인자값(x, y, c, , , , )으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 과정으로 1-out-of-k 비대화형 영지식 증명은 다음과 같이 진행된다. 이때 1-out-of-k 비대화형 영지식 증명은 2가지를 증명하는 방식으로 먼저 투표자가 알고 있는 비밀 투표키가 참이라는 것을 검증자에게 증명할 때 해당 사실 외의 다른 어떤 것도 드러내지 않는다. 또한 동시에 k개의 후보자에 대하여 선택한 후보자를 드러내지 않고 k개 중 하나를 선택했다는 사실을 증명하게 된다.The
도 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
도 6을 참조하면, 먼저, 투표자는 소수 를 생성한 후 를 만족하는 소수 를 선택한다. 그리고 Prime-order 의 곱셈 순환군(Multiplicative cyclic groups)을 이라 하고, 의 생성원을 , 라고 한다. 이로써 초기값인 (, , , )가 생성된다(단계 600).Referring to Figure 6, first, the voter is a minority After creating Prime to satisfy Choose And Prime-order Multiplicative cyclic groups of And say The origin of , It is said. Thus, the initial value ( , , , ) Is generated (step 600).
투표자는 개인 투표키 로 를 생성하는데(단계 610), 이때 를 생성하는데 들어간 는 투표자가 선택한 후보자의 후보값이 된다. 개인 투표키 를 이용하여 입력 인자값(x, y, c, , , , )을 구하고, 상기 입력 인자값으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성한다(단계 620). 다음, 검증자에게 보낼 값들을 1-out-of-k 비대화형 영지식 증명 함수의 입력 인자값으로 트랜잭션에 추가한다(단계 630). Voter's Individual Voting Key in (Step 610), where Into creating Is the candidate value of the candidate chosen by the voter. Individual voting key Use the input factor values (x, y, c, , , , ), 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, , , , )은 도 7에 도시된 바와 같이, x 및 y는 에 따라 계산되고, a 및 b는 자신이 선택한 투표자에 따라, 선택한 투표자의 경우 Here, the input factor values (x, y, c, , , , ) As shown in Figure 7, x and y are Calculated according to, and a and b are for the selected voters, according to the voters of their choice
, 가 되며, 그외 다른 경우는 각각 , 이며, 이때 r과 c는 Zq에 속해있는 투표자 값을 의미한다. , And other cases , Where r and c are voter values belonging to Zq.
, 은 투표자가 투표한 값에 따라 투표의 비밀성을 유지하기 위한 진짜 투표값과 가짜 투표값들의 집합을 나타내며 c는 자신이 투표한 후보자의 값과 앞선 투표값들의 집합을 해시 함수를 통해 해싱한 값이며, , 은 자신이 한 투표가 유효함을 입증하기 위해 c값을 통해 생성되는 값이다. , 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 , 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). 따라서 투표자는 개인 투표키 와 를 이용하여 첫 번째 증명을, 를 이용하여 두 번째 증명을 진행하게 된다. 또한 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 Wow Using the first proof, 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 비대화형 영지식 증명 함수를 실행한 후 해당 검증 사실과 투표자의 값을 블록의 형태로 블록체인 내 스마트 컨트랙트에 기록한다(단계 672) After executing the 1-out-of-k non-interactive zero-knowledge proof function, the verification facts and voters 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
도 9는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 개표 모듈(50)의 동작을 도시한 순서도이다. 9 is a flowchart illustrating the operation of the
도 9를 참조하면, 개표 모듈(50)은 투표가 끝난 후 완전 탐색 방식으로 각 투표자에 의해 개표를 진행하게 되는데, 블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 값을 호출하여 곱함으로써 시작된다. 곱한 값은 소거법에 의하여 이 되는데 이때 는 각 후보자에 대응되는 변수인 후보값으로 여기서는 투표자들이 투표한 모든 후보값을 더한 것이 지수가 된다. 완전 탐색 방식을 적용함으로써 후보자들 중 가장 큰 후보값부터 제수(divisor)로 두고 를 피제수(dividend) 두어 나눗셈을 수행한다. 이때 나눠지는 횟수를 해당 후보값에 대응되는 후보자의 투표 수로 집계할 수 있고, 해당 나눗셈 과정을 다음으로 큰 후보값을 제수로 둠으로써 가장 작은 후보값까지 반복 수행한다. 이 결과로 각 후보자에 대한 투표 수를 집계할 수 있다.Referring to FIG. 9, the
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다. 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-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.
예비 투표자인 노드가 개인 투표키 를 이용하여 공개 투표키와 증명에 쓰이는 공개값들을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.According to claim 1, The voter registration module,
The primary voter node is the individual vote key 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.
공개 투표키 는 이며, 공개값는 이며, 공개값 인 것을 특징으로 하며,
여기서, 는 예비투표자에 의해 생성되는 소수이며, 는 를 만족하는 소수이며, , 는 Prime-order 의 곱셈 순환군(Multiplicative cyclic groups)인 의 생성원이며, 는 임의의 비밀값으로서 를 만족하는 값들 중 선택되는 값이며, 는 해시 함수를 이용하여 생성하는 랜덤한 값이며, Zq는 에 대한 수의 집합으로 1,2,??, -1을 가지는 수의 집합인 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.The method of claim 3, wherein the input factor value is a public voting key , Public values used for proof , And
Public voting key The And public value The And public value Characterized in that,
here, Is the prime number generated by the preliminary voter, The Is a prime number that satisfies, , Prime-order Multiplicative cyclic groups of Is the source of Is an arbitrary secret value Is a value selected from among values satisfying, Is a random value generated using a hash function, and Zq is 1,2,??, as a set of numbers for A secret electronic voting system based on a blockchain network characterized by being a set of numbers with -1.
등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키 를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.According to claim 1, The voting module,
Private voting key to vote for candidates selected by registered voters 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.
여기서, 이며, 는 투표자가 선택한 후보자의 후보값이며, 는 예비투표자에 의해 생성되는 소수이며, 는 를 만족하는 소수이며, , 는 Prime-order 의 곱셈 순환군(Multiplicative cyclic groups)인 의 생성원이며, 는 임의의 비밀값으로서 를 만족하는 값들 중 선택되는 값이며, 는 해시 함수를 이용하여 생성하는 랜덤한 값이며, , 은 투표자가 투표한 값에 따라 투표의 비밀성을 유지하기 위한 진짜 투표값과 가짜 투표값들의 집합을 나타내며 c는 자신이 투표한 후보자의 값과 앞선 투표값들의 집합을 해시 함수를 통해 해싱한 값이며, , 은 자신이 한 투표가 유효함을 입증하기 위해 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, , , , Characterized in that,
here, And Is the candidate value of the candidate chosen by the voter, Is the prime number generated by the preliminary voter, The Is a prime number that satisfies, , Prime-order Multiplicative cyclic groups of Is the source of Is an arbitrary secret value Is a value selected from among values satisfying, Is a random value generated using a hash function, , 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 , 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-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인 값과 각 후보자에 대응되는 변수인 후보값 를 이용하여 계산되는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템. 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 Values and candidate values that are variables corresponding to each candidate 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.
예비 투표자들에 대한 투표자 등록을 위하여 사용되는 비대화형 영지식 증명 함수, 투표자들의 투표를 위하여 사용되는 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.
예비 투표자인 노드가 개인 투표키 를 이용하여 공개 투표키와 증명에 쓰이는 공개들값을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.The method of claim 8, wherein the step (b),
The primary voter node is the individual vote key 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.
등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키 를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.The method of claim 8, wherein step (c),
Private voting key to vote for candidates selected by registered voters 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.
투표자의 투표가 종료된 후 완전 탐색 방식으로 각 투표자에 의해 실행되어 개표되는 것을 특징으로 하며,
블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인 값과 각 후보자에 대응되는 변수인 후보값 를 이용하여 계산되는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.
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 Values and candidate values that are variables corresponding to each candidate Secret electronic voting method based on a blockchain network, characterized by being calculated using.
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)
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)
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 |
-
2019
- 2019-01-11 KR KR1020190003894A patent/KR102187294B1/en active IP Right Grant
Patent Citations (4)
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)
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)
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 |