KR102187294B1 - 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법 - Google Patents

블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법 Download PDF

Info

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

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

Abstract

본 발명은 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템에 관한 것이다. 상기 비밀 전자 투표 시스템을 구성하는 각 노드는, 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인에 저장하는 투표 프로세스 등록 모듈; 예비 투표자인 노드가 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 투표자 등록 모듈; 투표자로 등록된 노드가 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 기록하는 투표 모듈; 모든 투표자들이 블록체인 내 스마트 컨트랙트에 등록한 투표 정보들을 이용하여 개표하는 개표 모듈;을 구비한다. 상기 투표 프로세스는, 예비 투표자들에 대하여 투표자 등록을 위하여 사용되는 비대화형 영지식 증명 함수, 투표자들의 투표를 위하여 사용되는 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함한다.

Description

블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법{System and method for providing secret electronic voting service based on blockchain}
본 발명은 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템에 관한 것으로서, 더욱 구체적으로는 투표자들이 참여 노드로서 블록체인 네트워크를 구성한 후 투표 프로세스를 코드화 하여 스마트 컨트랙트로 작성하여 블록체인에 기록하고, 스마트 컨트랙트의 투표 프로세스를 통해 예비투표자 등록, 투표자 투표 및 개표 과정을 진행하고 모든 투표자의 투표 결과를 블록체인 내의 스마트 컨트랙트에 기록 및 저장함으로써, 계약 이행의 강제성 및 신뢰성을 보장할 수 있으며 비밀 투표를 진행할 수 있는 비밀 전자 투표 시스템에 관한 것이다.
공공 인터넷과 같은 무선 통신 기술이 발달함에 따라, 기존의 종이 투표 방식을 대신하는 전자투표에 대한 연구가 다양하게 진행되고 있다. 전자투표는 네트워크를 이용한 전자식 투표로, 통신 가능한 단말기를 이용하여 투표가 가능하므로, 시간적, 공간적 제약이 없다는 장점이 있다.
하지만, 이러한 장점에도 불구하고, 종래의 전자투표 방식은 여러 문제점이 발견되고 있다. 특히, 종래의 전자 투표 시스템은 투표자가 투표한 후보자를 숨기고 다수의 후보자 중 하나의 후보자에게 투표했다는 사실을 증명하는 것이 매우 어렵다. 또한, 종래의 전자 투표 시스템은 투표 프로세스를 총괄하는 중앙 서버가 존재하기 때문에, 중앙 서버에 단일 장애점(Single Point of Failure)이나 데이터의 위조 및 변조의 문제가 있다. 또한, 중앙 서버없이 투표자들끼리 네트워크를 구성하여 전자 투표 시스템을 설계하더라도, 투표 과정에서 모두가 투표했다는 사실을 확인하는 것이 매우 어렵다. 해커 등에 의해 악의적인 목적으로 노드가 점령당하는 경우 투표 내용이 포함된 패킷이 조작되거나 훼손될 수 있으며, 전자 투표를 행사한 대상의 단말기를 역추적하여 어떤 사람이 어떠한 후보자에게 투표했는지에 대한 정보가 유출될 수 있다.
한편, 영지식 증명(zero knowledge proof; ZKP)이란 주로 암호학에서 어느 증명자가 상대방 검증자에게 어떤 명제(statement)가 참이라는 것을 증명할 때, 그 명제의 참 거짓 여부를 제외한 어떤 지식도 노출시키지 않는 상호 작용의 절차를 의미한다. 어떠한 명제가 참이라는 것을 증명하려는 쪽을 증명자(prover)라고 하고, 증명 과정에 참여하여 증명자와 정보를 주고 받는 쪽을 검증자(verifier)라고 한다. 영지식 증명에 참여하는 당사자들이 상대방을 속이려는 목적으로 프로토콜을 임의로 변경하는 경우, 당사자들이 부정직하다 또는 정직하지 않다고 한다. 그 외의 경우에는 정직하다고 한다.
영지식 증명은 세 가지 성질, 즉 완전성, 건실성 및 영지식성을 만족하여야 한다. 완전성(completeness)은, 어떤 명제가 참이면, 정직한 증명자는 정직한 검증자에게 이 사실을 납득시킬 수 있어야 하는 것이다. 건실성(soundness)은, 어떤 명제가 거짓이면, 어떠한 부정직한 증명자라도 정직한 검증자에게 이 문장이 사실이라고 납득시킬 수 없어야 하는 것이다. 마지막으로, 영지식성(zero-knowledgeness)은, 어떤 명제가 참이면, 검증자는 문장의 참 거짓 이외에는 아무것도 알 수 없어야 하는 것이다.
한편, 블록체인(Blockchain)은 공공 거래 장부라고도 불리우는데, 블록(block)에 데이터를 담아 체인(chain) 형태로 연결한 것으로서, 수많은 노드에 이를 동시에 복제해 저장하는 분산형 데이터 저장 기술이다. 블록체인 기술은 중앙 집중형 서버에 거래 기록을 보관하지 않고 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며, 거래때마다 모든 거래 참여자들이 정보를 공유하고 이를 대조함으로써 데이터 위조 및 변조를 방지할 수 있게 된다.
블록체인을 저장하는 다수 개의 노드들로 이루어지는 블록체인 네트워크에 있어서, 하나의 노드가 전자 서명된 트랜잭션을 브로드캐스팅하면, 이를 수신한 모든 노드들은 작업 증명 과정을 진행하게 되고, 이에 따라 최초로 논스값을 찾은 노드는 블록체인 네트워크의 다른 노드들에 의해 검증된 후 블록 생성 권한을 갖게 된다. 블록 생성 권한을 가진 노드는 트랜잭션을 포함한 블록 생성 정보를 블록체인 네트워크의 모든 노드들로 브로드캐스팅하게 되고, 이를 수신한 모든 노드들은 트랜잭션을 포함하는 블록을 생성하고 자신의 블록체인에 상기 생성된 블록을 연결시켜 저장하게 된다.
이에 본 발명은 블록체인 네트워크를 기반으로 하여 영지식 증명을 이용하여 비밀 전자 투표 시스템을 제안하고자 한다.
한국등록특허공보 제 10-1837169호 한국등록특허공보 제 10-1908677호
전술한 문제점을 해결하기 위한 본 발명의 목적은 블록체인 네트워크를 기반으로 하여, 다수의 후보자와 다수의 투표자들에 대하여 비대화형 영지식 증명을 이용한 투표자 등록 과정, 1-out-of-k 비대화형 영지식 증명을 이용한 투표 과정 및 완전 탐색 방식의 개표 과정을 포함하는 투표 프로세스를 코드화하여 스마트 컨트랙트에 작성하여 블록체인에 기록하고, 이를 통해 다수의 후보자에 대한 비밀 전자 투표를 안전하게 진행할 수 있도록 하는 비밀 전자 투표 시스템 및 방법을 제공하는 것이다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 비밀 전자 투표 시스템은 예비 투표자들이 노드로 참여하여 구성된 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템에 관한 것으로서, 상기 블록체인 네트워크를 구성하는 각 노드는, 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록을 생성하여 블록체인에 저장하는 투표 프로세스 등록 모듈; 예비 투표자인 노드가 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 투표자 등록 모듈; 투표자로 등록된 노드가 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 등록하는 투표 모듈; 모든 투표자들이 블록체인 내 스마트 컨트랙트에 등록한 투표 정보들을 이용하여 개표하는 개표 모듈;을 구비한다.
전술한 제1 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 투표 프로세스 등록 모듈에 의해 블록체인 내 스마트 컨트랙트에 저장되는 투표 프로세스는, 예비 투표자들에 대하여 투표자 등록을 위하여 사용되는 비대화형 영지식 증명 함수, 투표자들의 투표를 위하여 사용되는 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함하는 것이 바람직하다.
전술한 제1 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 투표자 등록 모듈은, 예비 투표자인 노드가 개인 투표키
Figure 112019003776906-pat00001
를 이용하여 공개 투표키와 증명에 쓰이는 공개값들을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것이 바람직하다.
전술한 제1 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 투표 모듈은, 등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키
Figure 112019003776906-pat00002
를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것이 바람직하다.
전술한 제1 특징에 따른 비밀 전자 투표 시스템에 있어서, 상기 개표 모듈은, 투표자의 투표가 종료된 후 완전 탐색 방식으로 각 투표자에 의해 실행되어 개표되는 것을 특징으로 하며, 블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인
Figure 112019003776906-pat00003
값과 각 후보자에 대응되는 변수인 후보값
Figure 112019003776906-pat00004
를 이용하여 계산되는 것이 바람직하다.
본 발명의 제2 특징에 따른 비밀 전자 투표 방법은, 예비 투표자들이 노드로 참여하여 구성된 블록체인 네트워크를 기반으로 한 비밀 전자 투표 방법에 관한 것으로서, (a) 블록체인 네트워크를 구성하는 노드가, 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록을 생성하여 블록체인의 최초 블록으로 저장하는 단계; (b) 예비 투표자인 노드들이 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 단계; (c) 투표자로 등록된 노드들이 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 등록하는 단계; (d) 블록체인 내 스마트 컨트랙트에 등록된 투표 정보들을 이용하여 개표하는 단계; 를 구비한다.
본 발명에 따른 전자 투표 시스템은 스마트 컨트랙트 기술을 활용하여 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하여 블록체인에 기록함으로써, 실행할 때 계약 이행의 강제성 및 신뢰성을 보장할 수 있게 된다. 이로 인해 투표 프로세스가 기록된 스마트 컨트랙트를 실행함으로써 진행되는 예비 투표자의 등록 및 투표자의 투표를 수행할 수 있게 된다.
또한, 본 발명에 따른 전자 투표 시스템은 모든 투표자의 투표가 종료된 시점에 개표를 진행하기 위하여, 블록체인에 기록된 스마트 컨트랙트 내의 개표 관련 코드를 실행함으로써, 투표자가 스스로 개표를 진행할 수 있고, 이 결과로 각 후보자에 대한 투표수를 확인할 수 있게 된다.
또한, 본 발명에 따른 전자 투표 시스템은 예비 투표자가 투표자로서 등록하기 위하여 스마트 컨트랙트 내의 비대화형 영지식 증명을 실행하고, 투표자가 투표를 수행할 때는 스마트 컨트랙트 내의 1-out-of-k 비대화형 영지식 증명을 실행함으로써, 투표자가 다수의 후보자 중 하나에 대하여 투표한 사실은 확인할 수 있지만 투표한 후보가 누구인지는 숨길 수 있게 된다.
또한, 이 모든 트랜잭션은 블록으로 구성되어 사전 설정된 합의 알고리즘에 따라 블록체인에 저장되고 공유하게 되므로, 인증 및 부인 방지, 무결성을 보장할 수 있을 뿐만 아니라 악의적인 공격자의 해킹 및 데이터 위/변조 시도가 원천적으로 차단될 수 있게 된다.
또한, 본 발명에 따른 전자 투표 시스템은 단일의 중앙 서버를 사용하지 않기 때문에 중앙 서버에 의한 단일 장애점의 문제가 발생되는 것을 방지할 수 있게 된다.
도 1은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 전체 시스템을 설명하기 위하여 도시한 모식도이다.
도 2는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 각 노드가 블록체인에 기록된 스마트 컨트랙트를 통해 수행하는 전자 투표 과정을 전체적으로 도시한 순서도이다.
도 3은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자 등록 모듈(30)의 동작을 순차적으로 설명하는 순서도이며, 도 4는 투표자 등록 모듈에서 예비투표자와 검증자간의 증명 과정을 설명하는 순서도이다.
도 5는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 각 후보자에 대응되는 후보값을 설정하는 과정을 설명하기 위하여 도시한 모식도이다.
도 6은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표 모듈(40)을 통해 각 투표자들이 투표를 수행하는 과정을 순차적으로 도시한 순서도이다.
도 7은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자들이 투표를 수행하기 위하여 1-out-of-k 비대화형 영지식 증명을 수행할 때의 투표자측의 증명 과정을 도시한 순서도이다.
도 8은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자들이 투표를 수행하기 위하여 1-out-of-k 비대화형 영지식 증명을 수행할 때의 검증자측의 증명 과정을 도시한 순서도이다.
도 9는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 개표 모듈(50)의 동작을 도시한 순서도이다.
본 발명에 따른 블록체인 네트워크를 기반으로 한 전자 투표 시스템은 투표에 참여하고자 하는 투표자들이 노드로서 블록체인 네트워크를 구성하고 투표 프로세스를 코드화하여 스마트 컨트랙트를 작성하여 최초에 블록체인에 기록하게 되며, 상기 투표 프로세스는 비대화형 영지식 증명, 1-out-of-k 비대화형 영지식 증명과 완전 탐색 방식의 개표 과정을 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 블록체인 네트워크를 기반으로 한 전자 투표 시스템의 구성 및 동작에 대하여 구체적으로 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 전체 시스템을 설명하기 위하여 도시한 모식도이며, 도 2는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 각 노드가 블록체인에 기록된 스마트 컨트랙트를 통해 수행하는 전자 투표 과정을 전체적으로 도시한 순서도이다.
도 1 및 도 2를 참조하면, 본 발명에 따른 블록체인 네트워크를 기반으로 한 전자 투표 시스템(1)은 투표하고자 하는 예비 투표자들이 노드로서 구성한 블록체인 네트워크(10)를 기반으로 이루어지며, 각 노드는 블록체인(20), 투표 프로세스 등록 모듈(30), 투표자 등록 모듈(40), 투표 모듈(50), 개표 모듈(60)을 구비한다.
상기 블록체인(20)은 투표 프로세스를 코드화한 스마트 컨트랙트, 투표자들에 대한 정보, 투표자들의 투표 정보, 개표 정보 등을 저장한 블록들을 사슬 형태로 연결하여 순차적으로 저장한 데이터 저장소이다.
상기 투표 프로세스 등록 모듈(30)은 사전 설정된 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고 이를 트랜잭션으로 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록체인의 최초 블록으로 기록한다. 상기 코드화되어 스마트 컨트랙트에 기록되는 투표 프로세스는 투표자 등록을 위한 비대화형 영지식 증명 함수, 투표자들의 투표를 위한 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함한다.
상기 투표자 등록 모듈(40)은, 블록체인 네트워크에 참여하는 예비 투표자들이 투표에 참여하기 위하여 투표자로 등록을 진행하는 모듈로서, 각 예비투표자들은 개인 투표키
Figure 112019003776906-pat00005
를 이용하여 3개의 입력 인자값(공개 투표키
Figure 112019003776906-pat00006
, 증명에 쓰이는 공개값
Figure 112019003776906-pat00007
,
Figure 112019003776906-pat00008
)을 구하고, 상기 입력 인자값으로 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록한다. 한편, 상기 개인 투표키
Figure 112019003776906-pat00009
는 예비투표자들이 블록체인 네트워크에 참여할 때 생성되는 고유한 키로 본인만이 알 수 있는 값이다.
상기 투표 모듈(50)은, 상기 투표자 등록 모듈을 통해 등록된 투표자들은 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키
Figure 112019003776906-pat00010
를 이용하여 입력 인자값(x, y, c,
Figure 112019003776906-pat00011
,
Figure 112019003776906-pat00012
,
Figure 112019003776906-pat00013
,
Figure 112019003776906-pat00014
)을 구하고, 상기 입력 인자값으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록한다. 이 때 기록된 모든 투표자의
Figure 112019003776906-pat00015
값으로 이후에 개표를 진행하게 된다.
상기 개표 모듈(60)은 완전 탐색 방식으로 각 투표자에 의해 개표를 진행하는 것으로서, 블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의
Figure 112019003776906-pat00016
값을 곱함으로써 시작된다. 곱한 값은 소거법에 의하여
Figure 112019003776906-pat00017
이 되는데 이때
Figure 112019003776906-pat00018
는 각 후보자에 대응되는 변수인 후보값으로 여기서는 투표자들이 투표한 모든 후보값을 더한 것이 지수가 된다. 완전 탐색 방식을 적용함으로써 후보자들 중 가장 큰 후보값부터 제수(divisor)로 두고
Figure 112019003776906-pat00019
를 피제수(dividend) 두어 나눗셈을 수행한다. 이때 나눠지는 횟수를 해당 후보값에 대응되는 후보자의 투표 수로 집계할 수 있고, 해당 나눗셈 과정을 다음으로 큰 후보값을 제수로 둠으로써 가장 작은 후보값까지 반복 수행한다. 이 결과로 각 후보자에 대한 투표 수를 집계할 수 있다.
한편, 본 발명에 따른 전자 투표 시스템을 구성하는 각 모듈에 의해 진행되는 과정에서 각 노드들이 생성하는 모든 트랜잭션은 해당 노드의 개인키와 결합하여 서명된 후 블록체인 네트워크에 전파되고, 송신 노드 이외의 모든 노드들이 트랜잭션의 유효성을 검증하고, 일정 기간동안 트랜잭션을 모아 블록의 생성 권한을 얻기 위한 작업 증명(Proof of Work)이라는 합의 과정을 통해 블록으로 구성되어 다시 블록체인 네트워크로 전파된다. 이후 상기 전파된 블록은 모든 노드로부터 유효성을 확인받은 후 n개의 블록으로 이루어진 블록체인에 n+1번째 블록으로 이어지게 된다. 그 결과, 블록체인에 기록되는 모든 트랜잭션 및 데이터는 무결성을 보장받고 블록체인 네트워크의 모든 노드들은 블록체인의 기록들을 공유하게 된다. 한편, 본 발명에서는 합의 알고리즘으로 작업 증명(Proof of Work) 방식을 사용하는 것을 예시적으로 설명하고 있으나, 이것에 한정하는 것은 아니며 다른 합의 알고리즘도 사용될 수 있다.
또한, 블록체인에 데이터를 기록하는 것은 해당 트랜잭션에서 스마트 컨트랙트 내 함수를 호출할 때 함수의 입력값에 따른 출력값을 스마트 컨트랙트에 state로써 기록(혹은 변경)하는 것이기 때문에 스마트 컨트랙트에 기록하는 것과 동일한 것이고, 이때 스마트 컨트랙트에 기록된 값은 블록체인에 기록한 것과 동일한 것이기 때문에 기록된 값의 무결성을 보장받는다.
이하, 도 3 및 도 4를 참조하여 본 발명의 바람직한 실시예에 따른 전자 투표 시스템의 투표자 등록 모듈(30)에 대하여 구체적으로 설명한다.
도 3은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표자 등록 모듈(30)의 동작을 순차적으로 설명하는 순서도이며, 도 4는 투표자 등록 모듈에서 예비투표자와 검증자간의 증명 과정을 설명하는 순서도이다.
도 3을 참조하면, 예비 투표자들이 투표에 참여하기 위해 투표자 등록 모듈(30)을 통해 투표자로서 등록을 진행하게 된다. 이때 개인 투표키
Figure 112019003776906-pat00020
를 이용하여 3개의 입력 인자값(공개 투표키
Figure 112019003776906-pat00021
, 증명에 쓰이는 공개값
Figure 112019003776906-pat00022
,
Figure 112019003776906-pat00023
)으로 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 과정으로 비대화형 영지식 증명은 구체적으로 다음과 같이 진행된다.
먼저, 블록체인 네트워크에 참여하는 예비 투표자는 소수
Figure 112019003776906-pat00024
를 생성한 후
Figure 112019003776906-pat00025
를 만족하는 소수
Figure 112019003776906-pat00026
를 선택한다. 그리고 Prime-order
Figure 112019003776906-pat00027
의 곱셈 순환군(Multiplicative cyclic groups)을
Figure 112019003776906-pat00028
이라 하고,
Figure 112019003776906-pat00029
의 생성원을
Figure 112019003776906-pat00030
,
Figure 112019003776906-pat00031
라고 한다. 이로써 초기값인 (
Figure 112019003776906-pat00032
,
Figure 112019003776906-pat00033
,
Figure 112019003776906-pat00034
,
Figure 112019003776906-pat00035
)가 생성된다(단계 300 및 도 4의 ①,②,③). 상기 g, h 는
Figure 112019003776906-pat00036
의 생성원으로, g는 투표 자격 증명 과정과 이후 투표 과정에서 모두 사용되는 값이고, h는 투표 과정에서 사용되는 값이다.
다음, 예비 투표자는 개인 투표키
Figure 112020078124514-pat00037
와 공개 투표키
Figure 112020078124514-pat00038
를 생성하고, 이번 증명에서만 사용될 임의의 비밀값
Figure 112020078124514-pat00039
를 선택하고 공개값
Figure 112020078124514-pat00040
를 생성한다(단계 310 및 도 4의 ④). 개인 투표키
Figure 112020078124514-pat00041
와 비밀값
Figure 112020078124514-pat00042
는 투표자만 알고 있는 값으로, 이 값을 검증자에게 알리지 않고 오직 생성된 공개 투표키
Figure 112020078124514-pat00043
와 공개값
Figure 112020078124514-pat00044
를 검증자에게 보내게 된다. 그리고 해시 함수를 이용하여 투표자가 조작할 수 없는 랜덤한 값
Figure 112020078124514-pat00045
를 생성하고
Figure 112020078124514-pat00046
을 생성한다(단계 320 및 도 4의 ⑤,⑥). 여기서, Zq는 q에 대한 수의 집합으로 1,2, …, q-1 를 가지고 있는 수의 집합으로 이루어진다.
다음, 스마트 컨트랙트 내 비대화형 영지식 증명 함수를 실행하는 트랜잭션을 생성하고(단계 330), 검증자에게 보낼 값들을 상기 비대화형 영지식 증명 함수의 입력 인자값으로 트랜잭션에 추가한다(단계 340). 이때, 검증자에게 보낼 값으로는
Figure 112019003776906-pat00047
을 포함하게 된다.
다음, 해당 트랜잭션을 자신의 개인키로 서명한 후 블록체인 네트워크에 전파하고(단계 350), 작업증명(POW) 과정을 거쳐 해당 트랜잭션을 블록으로 구성한 후 블록체인에 다시 전파하고(단계 352), 이를 수신한 모든 노드들에 의해 블록의 유효성을 검증받고(단계 354), 일정 개수 이상의 노드들이 해당 블록에 대해 승인하면 블록 체인에 마지막 블록으로 연결하여 저장 및 공유하게 된다(단계 356).
한편, 스마트 컨트랙트의 비대화형 영지식 증명 함수의 입력 인자값을 수신한 스마트 컨트랙트는, 비대화형 영지식 증명 함수를 실행하여 검증자로서 검증을 진행하게 된다(단계 370 및 도 4의 ⑦,⑧). 이 때, 해시 함수로
Figure 112019003776906-pat00048
를 생성한 후 (도 4의 ⑦)
Figure 112019003776906-pat00049
Figure 112019003776906-pat00050
가 동일한지 검증함으로써(도 4의 ⑧) 투표자가 개인 투표키
Figure 112019003776906-pat00051
를 보유하고 있다는 사실을 검증하면서 해당 사실 외의 정보를 얻지 못한다. 다음, 상기 비대화형 영지식 증명 함수의 동작 후 해당 검증 사실과 예비투표자에 대한 공개 투표키를 블록체인 내 스마트 컨트랙트에 기록함으로써, 예비 투표자에 대하여 투표자로서의 등록을 완료하게 된다(단계 372).
도 5는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 각 후보자에 대응되는 후보값을 설정하는 과정을 설명하기 위하여 도시한 모식도이다.
도 5를 참조하면, 본 발명에 따른 전자 투표 시스템은 다수의 후보자를 두기 위하여 각 후보자에 대응되는 후보값(v)을 설정하기 위하여, j번째 후보자에 대한 후보값(vj)은, 수학식 1과 같이 정해진다.
Figure 112019003776906-pat00052
여기서, m은 투표자가 n명인 경우, 2m > n 을 만족하는 최소의 정수이다.
이하, 도 6 내지 도 8을 참조하여 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표 모듈(40)을 통해 각 투표자들이 투표를 수행하는 과정을 구체적으로 설명한다.
상기 투표 모듈(40)은 등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키
Figure 112019003776906-pat00053
를 이용하여 입력 인자값(x, y, c,
Figure 112019003776906-pat00054
,
Figure 112019003776906-pat00055
,
Figure 112019003776906-pat00056
,
Figure 112019003776906-pat00057
)으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 과정으로 1-out-of-k 비대화형 영지식 증명은 다음과 같이 진행된다. 이때 1-out-of-k 비대화형 영지식 증명은 2가지를 증명하는 방식으로 먼저 투표자가 알고 있는 비밀 투표키가 참이라는 것을 검증자에게 증명할 때 해당 사실 외의 다른 어떤 것도 드러내지 않는다. 또한 동시에 k개의 후보자에 대하여 선택한 후보자를 드러내지 않고 k개 중 하나를 선택했다는 사실을 증명하게 된다.
도 6은 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 투표 모듈(40)을 통해 각 투표자들이 투표를 수행하는 과정을 순차적으로 도시한 순서도이며, 도 7은 투표자들이 투표를 수행하기 위하여 1-out-of-k 비대화형 영지식 증명을 수행할 때의 투표자측의 증명 과정을 도시한 순서도이며, 도 8은 투표자들이 투표를 수행하기 위하여 1-out-of-k 비대화형 영지식 증명을 수행할 때의 검증자측의 증명 과정을 도시한 순서도이다.
도 6을 참조하면, 먼저, 투표자는 소수
Figure 112019003776906-pat00058
를 생성한 후
Figure 112019003776906-pat00059
를 만족하는 소수
Figure 112019003776906-pat00060
를 선택한다. 그리고 Prime-order
Figure 112019003776906-pat00061
의 곱셈 순환군(Multiplicative cyclic groups)을
Figure 112019003776906-pat00062
이라 하고,
Figure 112019003776906-pat00063
의 생성원을
Figure 112019003776906-pat00064
,
Figure 112019003776906-pat00065
라고 한다. 이로써 초기값인 (
Figure 112019003776906-pat00066
,
Figure 112019003776906-pat00067
,
Figure 112019003776906-pat00068
,
Figure 112019003776906-pat00069
)가 생성된다(단계 600).
투표자는 개인 투표키
Figure 112019003776906-pat00070
Figure 112019003776906-pat00071
를 생성하는데(단계 610), 이때
Figure 112019003776906-pat00072
를 생성하는데 들어간
Figure 112019003776906-pat00073
는 투표자가 선택한 후보자의 후보값이 된다. 개인 투표키
Figure 112019003776906-pat00074
를 이용하여 입력 인자값(x, y, c,
Figure 112019003776906-pat00075
,
Figure 112019003776906-pat00076
,
Figure 112019003776906-pat00077
,
Figure 112019003776906-pat00078
)을 구하고, 상기 입력 인자값으로 1-out-of-k 비대화형 영지식 증명을 실행하는 지시 사항을 트랜잭션으로 생성한다(단계 620). 다음, 검증자에게 보낼 값들을 1-out-of-k 비대화형 영지식 증명 함수의 입력 인자값으로 트랜잭션에 추가한다(단계 630).
여기서, 상기 입력 인자값(x, y, c,
Figure 112019003776906-pat00079
,
Figure 112019003776906-pat00080
,
Figure 112019003776906-pat00081
,
Figure 112019003776906-pat00082
)은 도 7에 도시된 바와 같이, x 및 y는
Figure 112019003776906-pat00083
에 따라 계산되고, a 및 b는 자신이 선택한 투표자에 따라, 선택한 투표자의 경우
Figure 112019003776906-pat00084
,
Figure 112019003776906-pat00085
가 되며, 그외 다른 경우는 각각
Figure 112019003776906-pat00086
,
Figure 112019003776906-pat00087
이며, 이때 r과 c는 Zq에 속해있는 투표자 값을 의미한다.
Figure 112019003776906-pat00088
,
Figure 112019003776906-pat00089
은 투표자가 투표한 값에 따라 투표의 비밀성을 유지하기 위한 진짜 투표값과 가짜 투표값들의 집합을 나타내며 c는 자신이 투표한 후보자의 값과 앞선 투표값들의 집합을 해시 함수를 통해 해싱한 값이며,
Figure 112019003776906-pat00090
,
Figure 112019003776906-pat00091
은 자신이 한 투표가 유효함을 입증하기 위해 c값을 통해 생성되는 값이다.
다음, 해당 트랜잭션을 자신의 개인키로 서명한 후 블록체인 네트워크에 전파하고(단계 640), 작업증명(POW) 과정을 거쳐 해당 트랜잭션을 블록으로 구성한 후 블록체인에 다시 전파하고(단계 642), 이를 수신한 모든 노드들에 의해 블록의 유효성을 검증받고(단계 644), 일정 개수 이상의 노드들이 해당 블록에 대해 승인하면 블록 체인에 마지막 블록으로 연결하여 저장 및 공유하게 된다(단계 646).
한편, 스마트 컨트랙트의 1-out-of-k 비대화형 영지식 증명 함수의 입력 인자값을 수신한 스마트 컨트랙트는, 1-out-of-k 비대화형 영지식 증명 함수를 실행하여 검증자로서 검증을 진행하게 된다(단계 670). 따라서 투표자는 개인 투표키
Figure 112019003776906-pat00092
Figure 112019003776906-pat00093
를 이용하여 첫 번째 증명을,
Figure 112019003776906-pat00094
를 이용하여 두 번째 증명을 진행하게 된다. 또한 k명의 후보자가 있을 때 실제 투표자가 선택한 후보자의 후보값에 대해서만 진짜 증명을 수행하고, 나머지 (k-1)명의 후보자에 대해서는 투표자가 값 형식에 맞춰 임의로 만든 값을 검증자에게 넘겨줌으로써 검증할 수 있도록 한다. 검증자는 k번의 검증을 수행하게 되는데 이 중 어떤 것이 실제 선택한 후보자의 후보값에 대한 검증인지는 모르지만 k번의 검증 중에 하나로 속해 있다고 판단한다.
상기 1-out-of-k 비대화형 영지식 증명 함수를 실행한 후 해당 검증 사실과 투표자의
Figure 112019003776906-pat00095
값을 블록의 형태로 블록체인 내 스마트 컨트랙트에 기록한다(단계 672)
이하, 도 9를 참조하여 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 개표 모듈(50)의 동작을 구체적으로 설명한다.
도 9는 본 발명의 바람직한 실시예에 따른 전자 투표 시스템에 있어서, 개표 모듈(50)의 동작을 도시한 순서도이다.
도 9를 참조하면, 개표 모듈(50)은 투표가 끝난 후 완전 탐색 방식으로 각 투표자에 의해 개표를 진행하게 되는데, 블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의
Figure 112019003776906-pat00096
값을 호출하여 곱함으로써 시작된다. 곱한 값은 소거법에 의하여
Figure 112019003776906-pat00097
이 되는데 이때
Figure 112019003776906-pat00098
는 각 후보자에 대응되는 변수인 후보값으로 여기서는 투표자들이 투표한 모든 후보값을 더한 것이 지수가 된다. 완전 탐색 방식을 적용함으로써 후보자들 중 가장 큰 후보값부터 제수(divisor)로 두고
Figure 112019003776906-pat00099
를 피제수(dividend) 두어 나눗셈을 수행한다. 이때 나눠지는 횟수를 해당 후보값에 대응되는 후보자의 투표 수로 집계할 수 있고, 해당 나눗셈 과정을 다음으로 큰 후보값을 제수로 둠으로써 가장 작은 후보값까지 반복 수행한다. 이 결과로 각 후보자에 대한 투표 수를 집계할 수 있다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
1 : 전자 투표 시스템
10 : 블록체인 네트워크
20 : 블록체인
30 : 투표 프로세스 등록 모듈
40 : 투표자 등록 모듈
50 : 투표 모듈
60 : 개표 모듈

Claims (12)

  1. 예비 투표자들이 노드로 참여하여 구성된 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템에 있어서, 블록체인 네트워크를 구성하는 각 노드는,
    투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록을 생성하여 블록체인에 저장하는 투표 프로세스 등록 모듈;
    예비 투표자인 노드가 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 투표자 등록 모듈;
    투표자로 등록된 노드가 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 기록하는 투표 모듈;
    모든 투표자들이 블록체인 내 스마트 컨트랙트에 등록한 투표 정보들을 이용하여 개표하는 개표 모듈;
    을 구비하고, 상기 투표자 등록 모듈은,
    예비 투표자인 노드가 개인 투표키
    Figure 112020078124514-pat00157
    를 이용하여 공개 투표키와 증명에 쓰이는 공개값들을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하며,
    상기 입력 인자값은 공개 투표키
    Figure 112020078124514-pat00158
    , 증명에 쓰이는 공개값들
    Figure 112020078124514-pat00159
    ,
    Figure 112020078124514-pat00160
    이며,
    공개 투표키
    Figure 112020078124514-pat00161
    Figure 112020078124514-pat00162
    이며, 공개값
    Figure 112020078124514-pat00163
    Figure 112020078124514-pat00164
    이며, 공개값
    Figure 112020078124514-pat00165
    인 것을 특징으로 하며,
    여기서,
    Figure 112020078124514-pat00166
    는 예비투표자에 의해 생성되는 소수이며,
    Figure 112020078124514-pat00167
    Figure 112020078124514-pat00168
    를 만족하는 소수이며,
    Figure 112020078124514-pat00169
    ,
    Figure 112020078124514-pat00170
    는 Prime-order
    Figure 112020078124514-pat00171
    의 곱셈 순환군(Multiplicative cyclic groups)인
    Figure 112020078124514-pat00172
    의 생성원이며,
    Figure 112020078124514-pat00173
    는 임의의 비밀값으로서
    Figure 112020078124514-pat00174
    를 만족하는 값들 중 선택되는 값이며,
    Figure 112020078124514-pat00175
    는 해시 함수를 이용하여 생성하는 랜덤한 값이며, Zq는
    Figure 112020078124514-pat00176
    에 대한 수의 집합으로 1,2,…,
    Figure 112020078124514-pat00177
    -1을 가지는 수의 집합인 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
  2. 제1항에 있어서, 상기 투표 프로세스 등록 모듈에 의해 블록체인 내 스마트 컨트랙트에 저장되는 투표 프로세스는,
    예비 투표자들에 대하여 투표자 등록을 위하여 사용되는 비대화형 영지식 증명 함수, 투표자들의 투표를 위하여 사용되는 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 투표 모듈은,
    등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키
    Figure 112019003776906-pat00121
    를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
  6. 제5항에 있어서, 상기 투표 모듈에서의 1-out-of-k 비대화형 영지식 증명 함수의 입력 인자값은 x, y, c,
    Figure 112019003776906-pat00122
    ,
    Figure 112019003776906-pat00123
    ,
    Figure 112019003776906-pat00124
    ,
    Figure 112019003776906-pat00125
    인 것을 특징으로 하며,
    여기서,
    Figure 112019003776906-pat00126
    이며,
    Figure 112019003776906-pat00127
    는 투표자가 선택한 후보자의 후보값이며,
    Figure 112019003776906-pat00128
    는 예비투표자에 의해 생성되는 소수이며,
    Figure 112019003776906-pat00129
    Figure 112019003776906-pat00130
    를 만족하는 소수이며,
    Figure 112019003776906-pat00131
    ,
    Figure 112019003776906-pat00132
    는 Prime-order
    Figure 112019003776906-pat00133
    의 곱셈 순환군(Multiplicative cyclic groups)인
    Figure 112019003776906-pat00134
    의 생성원이며,
    Figure 112019003776906-pat00135
    는 임의의 비밀값으로서
    Figure 112019003776906-pat00136
    를 만족하는 값들 중 선택되는 값이며,
    Figure 112019003776906-pat00137
    는 해시 함수를 이용하여 생성하는 랜덤한 값이며,
    Figure 112019003776906-pat00138
    ,
    Figure 112019003776906-pat00139
    은 투표자가 투표한 값에 따라 투표의 비밀성을 유지하기 위한 진짜 투표값과 가짜 투표값들의 집합을 나타내며 c는 자신이 투표한 후보자의 값과 앞선 투표값들의 집합을 해시 함수를 통해 해싱한 값이며,
    Figure 112019003776906-pat00140
    ,
    Figure 112019003776906-pat00141
    은 자신이 한 투표가 유효함을 입증하기 위해 c값을 통해 생성되는 값인 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
  7. 제1항에 있어서, 상기 개표 모듈은,
    투표자의 투표가 종료된 후 완전 탐색 방식으로 각 투표자에 의해 실행되어 개표되는 것을 특징으로 하며,
    블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인
    Figure 112019003776906-pat00142
    값과 각 후보자에 대응되는 변수인 후보값
    Figure 112019003776906-pat00143
    를 이용하여 계산되는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 시스템.
  8. 예비 투표자들이 노드로 참여하여 구성된 블록체인 네트워크를 기반으로 한 비밀 전자 투표 방법에 있어서,
    (a) 블록체인 네트워크를 구성하는 노드가, 투표 프로세스를 코드화하여 스마트 컨트랙트로 작성하고, 스마트 컨트랙트를 포함하는 트랜잭션을 생성하여 블록체인 네트워크에 전파하고 사전 설정된 합의 알고리즘에 따라 블록을 생성하여 블록체인의 최초 블록으로 저장하는 단계;
    (b) 예비 투표자인 노드들이 블록체인 내 스마트 컨트랙트에 투표자로 등록하는 단계;
    (c) 투표자로 등록된 노드들이 다수의 후보자 중 하나를 선택하고 투표하여 블록체인 내 스마트 컨트랙트에 등록하는 단계;
    (d) 블록체인 내 스마트 컨트랙트에 등록된 투표 정보들을 이용하여 개표하는 단계;
    를 구비하고, 상기 (b) 단계는,
    예비 투표자인 노드가 개인 투표키
    Figure 112020078124514-pat00178
    를 이용하여 공개 투표키와 증명에 쓰이는 공개들값을 포함하는 입력 인자값을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 저장된 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하며,
    상기 입력 인자값은 공개 투표키
    Figure 112020078124514-pat00179
    , 증명에 쓰이는 공개값들
    Figure 112020078124514-pat00180
    ,
    Figure 112020078124514-pat00181
    이며,
    공개 투표키
    Figure 112020078124514-pat00182
    Figure 112020078124514-pat00183
    이며, 공개값
    Figure 112020078124514-pat00184
    Figure 112020078124514-pat00185
    이며, 공개값
    Figure 112020078124514-pat00186
    인 것을 특징으로 하며,
    여기서,
    Figure 112020078124514-pat00187
    는 예비투표자에 의해 생성되는 소수이며,
    Figure 112020078124514-pat00188
    Figure 112020078124514-pat00189
    를 만족하는 소수이며,
    Figure 112020078124514-pat00190
    ,
    Figure 112020078124514-pat00191
    는 Prime-order
    Figure 112020078124514-pat00192
    의 곱셈 순환군(Multiplicative cyclic groups)인
    Figure 112020078124514-pat00193
    의 생성원이며,
    Figure 112020078124514-pat00194
    는 임의의 비밀값으로서
    Figure 112020078124514-pat00195
    를 만족하는 값들 중 선택되는 값이며,
    Figure 112020078124514-pat00196
    는 해시 함수를 이용하여 생성하는 랜덤한 값이며, Zq는
    Figure 112020078124514-pat00197
    에 대한 수의 집합으로 1,2,…,
    Figure 112020078124514-pat00198
    -1을 가지는 수의 집합인 것을 특징으로 하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 한 비밀 전자 투표 방법.
  9. 제8항에 있어서, 상기 블록체인 내 스마트 컨트랙트에 저장되는 투표 프로세스는,
    예비 투표자들에 대한 투표자 등록을 위하여 사용되는 비대화형 영지식 증명 함수, 투표자들의 투표를 위하여 사용되는 1-out-of-k 비대화형 영지식 증명 함수 및 완전 탐색 방식의 개표 함수를 포함하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.
  10. 삭제
  11. 제8항에 있어서, 상기 (c) 단계는,
    등록된 투표자들이 선택하는 후보에 대하여 투표를 수행하기 위해 개인 투표키
    Figure 112019003776906-pat00145
    를 이용하여 입력 인자값들을 구하고, 상기 입력 인자값으로 상기 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명 함수를 실행하는 지시 사항을 트랜잭션으로 생성하고 블록체인 내 스마트 컨트랙트에 기록하는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.
  12. 제8항에 있어서, 상기 (d) 단계는,
    투표자의 투표가 종료된 후 완전 탐색 방식으로 각 투표자에 의해 실행되어 개표되는 것을 특징으로 하며,
    블록체인 내 스마트 컨트랙트에 기록된 1-out-of-k 비대화형 영지식 증명으로 검증받은 모든 투표자의 투표 결과값인
    Figure 112019003776906-pat00146
    값과 각 후보자에 대응되는 변수인 후보값
    Figure 112019003776906-pat00147
    를 이용하여 계산되는 것을 특징으로 하는 블록체인 네트워크를 기반으로 하는 비밀 전자 투표 방법.
KR1020190003894A 2019-01-11 2019-01-11 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법 KR102187294B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190003894A KR102187294B1 (ko) 2019-01-11 2019-01-11 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190003894A KR102187294B1 (ko) 2019-01-11 2019-01-11 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법

Publications (2)

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

Family

ID=71893186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190003894A KR102187294B1 (ko) 2019-01-11 2019-01-11 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102187294B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102430835B1 (ko) * 2020-11-04 2022-08-10 광주과학기술원 블록체인 전자투표시스템, 그 시스템의 운용방법
CN112422294B (zh) * 2020-12-04 2022-11-01 网易(杭州)网络有限公司 基于环签名的匿名投票方法及装置、电子设备、存储介质
CN112822239A (zh) * 2020-12-30 2021-05-18 深圳市宝能投资集团有限公司 一种区块链共识方法、装置、电子设备及存储介质
CN114677794B (zh) * 2022-03-18 2024-03-15 南京邮电大学 一种基于区块链的电子投票方法
CN115189882B (zh) * 2022-04-08 2024-04-30 安徽师范大学 一种群智感知中基于区块链的分布式身份认证方法
CN115473642B (zh) * 2022-08-01 2024-04-30 湖北工业大学 可监管恶意投票的区块链时间锁加密电子投票系统及方法
KR102595354B1 (ko) * 2023-02-07 2023-10-30 주식회사 지크립토 영지식증명을 갖는 블록체인 기반의 전자투표시스템 및 방법
CN116938470A (zh) * 2023-06-27 2023-10-24 天津大学 一种基于区块链的安全电子投票系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837169B1 (ko) * 2016-12-29 2018-03-09 주식회사 코인플러그 영지식 증명 알고리즘을 사용하여 머클 트리 구조의 블록체인 기반 비밀 전자 투표 서비스를 제공하기 위한 방법, 및 이를 이용한 투표 코인 발행 서버, 투표 토큰 분배 서버 및 투표 지원 서버
KR101908677B1 (ko) * 2017-09-29 2018-10-16 숭실대학교산학협력단 블록체인을 이용한 전자투표 관리 시스템 및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201806780PA (en) * 2016-02-23 2018-09-27 Nchain Holdings Ltd Agent-based turing complete transactions integrating feedback within a blockchain system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837169B1 (ko) * 2016-12-29 2018-03-09 주식회사 코인플러그 영지식 증명 알고리즘을 사용하여 머클 트리 구조의 블록체인 기반 비밀 전자 투표 서비스를 제공하기 위한 방법, 및 이를 이용한 투표 코인 발행 서버, 투표 토큰 분배 서버 및 투표 지원 서버
KR101908677B1 (ko) * 2017-09-29 2018-10-16 숭실대학교산학협력단 블록체인을 이용한 전자투표 관리 시스템 및 방법

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부.*

Also Published As

Publication number Publication date
KR20200087913A (ko) 2020-07-22

Similar Documents

Publication Publication Date Title
KR102187294B1 (ko) 블록체인 네트워크를 기반으로 한 비밀 전자 투표 시스템 및 방법
CN109523683B (zh) 一种基于区块链技术的不记名电子投票方法
Panja et al. A smart contract system for decentralized borda count voting
Adida Advances in cryptographic voting systems
Chow et al. Robust Receipt-Free Election System with Ballot Secrecy and Verifiability.
Damgård et al. Unclonable group identification
CN110855443A (zh) 一种基于区块链和零知识证明的投票方法及装置
Xu et al. Multi-candidate voting model based on blockchain
Locher et al. Verifiable internet elections with everlasting privacy and minimal trust
Faour Transparent voting platform based on permissioned blockchain
Groth Honest verifier zero-knowledge arguments applied
Spadafora et al. A coercion-resistant blockchain-based E-voting protocol with receipts
Li et al. Non-equivocation in blockchain: Double-authentication-preventing signatures gone contractual
Hu et al. A practical anonymous voting scheme based on blockchain for Internet of energy
Emami et al. A scalable decentralized privacy-preserving e-voting system based on zero-knowledge off-chain computations
EP3474241A1 (en) Electronic balloting
Grontas et al. Blockchain, consensus, and cryptography in electronic voting
Lu et al. Self-tallying e-voting with public traceability based on blockchain
Vijayalakshmi et al. Secure online voting system in cloud
Griffy et al. PACIFIC: Privacy-preserving automated contact tracing scheme featuring integrity against cloning
Spadafora et al. Coercion-resistant blockchain-based e-voting protocol
Panja Zero-Knowledge Proof, Deniability and Their Applications in Blockchain, E-Voting and Deniable Secret Handshake Protocols
Yang Coercion-resistance in electronic voting: design and analysis
Sheikhi et al. Receipt-Free Electronic Voting from zk-SNARK.
Longo et al. Multiple Candidates Coercion-Resistant Blockchain-Based E-Voting Protocol With Receipts.

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