KR102430835B1 - Bolckchain e-voting system and manipulation method - Google Patents

Bolckchain e-voting system and manipulation method Download PDF

Info

Publication number
KR102430835B1
KR102430835B1 KR1020200171424A KR20200171424A KR102430835B1 KR 102430835 B1 KR102430835 B1 KR 102430835B1 KR 1020200171424 A KR1020200171424 A KR 1020200171424A KR 20200171424 A KR20200171424 A KR 20200171424A KR 102430835 B1 KR102430835 B1 KR 102430835B1
Authority
KR
South Korea
Prior art keywords
voting
smart contract
block chain
node
contract module
Prior art date
Application number
KR1020200171424A
Other languages
Korean (ko)
Other versions
KR20220060444A (en
Inventor
장재혁
이흥노
Original Assignee
광주과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 광주과학기술원 filed Critical 광주과학기술원
Priority to US17/517,563 priority Critical patent/US20220141020A1/en
Publication of KR20220060444A publication Critical patent/KR20220060444A/en
Application granted granted Critical
Publication of KR102430835B1 publication Critical patent/KR102430835B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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
    • G06Q2230/00Voting or election arrangements
    • 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)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명의 블록체인 전자투표시스템에는, 각각의 비밀키 및 공개키를 가지는 적어도 두 개의 투표노드; 투표노드의 식별정보를 블록체인으로 업로드하는 관제센터; 상기 투표노드의 공개키들과 비밀키들과 자가식별 데이터를 입력받아 상기 투표노드를 식별하고 식별번호를 생성하고 투표결과에 대한 그룹암호화를 수행하고 상기 과정의 공정성을 보장하는 영지식증거를 생성하는 제 1 스마트 컨트랙트 모듈; 및 상기 블록체인으로부터 상기 투표결과를 다운로드하여 상기 투표결과를 복호화하지 않고, 투표의 공정성과 집계결과를 확인하는 제 2 스마트 컨트랙트 모듈이 포함된다. The blockchain electronic voting system of the present invention includes at least two voting nodes each having a private key and a public key; a control center that uploads the identification information of the voting node to the block chain; Receives the public and private keys and self-identification data of the voting node, identifies the voting node, generates an identification number, performs group encryption on the voting result, and generates zero-knowledge evidence that guarantees the fairness of the process 1 smart contract module; and a second smart contract module that downloads the voting results from the block chain and checks the fairness and counting results of voting without decrypting the voting results.

Description

블록체인 전자투표시스템, 그 시스템의 운용방법{Bolckchain e-voting system and manipulation method}Blockchain e-voting system, operation method of the system {Bolckchain e-voting system and manipulation method}

본 발명은 볼록체인을 이용하는 전자투표시스템에 관한 것이다. The present invention relates to an electronic voting system using a convex chain.

일 예로서 본 발명은 검표자가 필요없는 영지식 증명이 가능한 블록체인을 이용하는 전자투표시스템에 관한 것이다. As an example, the present invention relates to an electronic voting system using a block chain capable of zero-knowledge proof that does not require a checker.

일 예로서 본 발명은 스마트 컨트렉트에 기반하는 블록체인을 이용하는 전자투표시스템에 관한 것이다. As an example, the present invention relates to an electronic voting system using a block chain based on a smart contract.

일 예로서 본 발명은 검표자가 필요없는 영지식 증명이 가능하고 스마트 컨트렉트에 기반하는 투표시스템에 관한 것이다. As an example, the present invention relates to a voting system based on a smart contract capable of zero-knowledge proof without the need for a voter.

온라인시스템을 이용하는 전자투표시스템은 경제적이며 언제, 어디서든 의사표현을 할 수 있다는 장점이 있다. 그러나 투표의 다양한 기본원칙을 지키기 어렵다는 단점이 있다. The electronic voting system using the online system is economical and has the advantage of being able to express opinions anytime, anywhere. However, there is a disadvantage in that it is difficult to keep various basic principles of voting.

이 배경에서, 블록체인을 이용하는 전자투표시스템 및 그 시스템의 운용방법으로 공개특허번호 1020200008413가 알려져 있다. 상기 특허문헌에 의해서 온라인 투표의 실현 가능성을 제고하였으나, 선거관리 위원회의 신뢰성에 크게 의존하는 문제가 있다. 전자투표의 속성으로 볼 때, 선거관리 위원회의 신뢰성에 의존하는 것은 전자투표의 실제 적용을 어렵게 하는 큰 문제가 된다. In this background, publication patent number 1020200008413 is known as an electronic voting system using a block chain and an operating method of the system. Although the feasibility of online voting has been improved by the above patent document, there is a problem that it largely depends on the reliability of the election commission. In view of the nature of electronic voting, relying on the credibility of the Election Commission becomes a big problem that makes it difficult to apply the electronic voting system in practice.

구체적으로, 상기 특허문헌의 투표 시스템은, 선거관리 위원회라는 신뢰받는 제 3 자(trusted third-party)에 의존한다. 예를 들어 선거관리 위원회는 투표자들의 DID들과 각각에 대응되는 투표권 데이터들을 모두 보관한다. 따라서 선거관리 위원회가 타인의 투표권을 사용할 수 있다. 즉, 선거관리 위원회의 조작에 의해서 전자투표의 신뢰성이 손상될 수 있다. Specifically, the voting system of the patent document relies on a trusted third-party called the Election Commission. For example, the Election Commission keeps all of the voters' DIDs and voting rights data corresponding to each. Therefore, the election commission can use the voting rights of others. That is, the reliability of electronic voting may be damaged by the manipulation of the Election Commission.

또한, 상기 선거관리 위원회가 컴퓨터 프로그램이고 서버라면, 해커에 의해 모든 기록들이 탈취 될 가능성을 배제할 수 없다. In addition, if the election commission is a computer program and a server, the possibility that all records are stolen by hackers cannot be excluded.

또한, 선거관리 위원회가 임의로 특정 투표를 누락시킬 수도 있다.In addition, the Election Commission may omit certain votes at will.

위에서 본 바와 같이, 믿음을 기반으로 운영하는 선거관리 위원회가 타락하면 부정투표가 발생할 수 있다. 특히, 공신력이 없는 비정부, 또는 민간기구에 있어서는 큰 문제이다. As we saw above, if the election commission, which operates on the basis of faith, is corrupted, it can lead to fraudulent voting. In particular, it is a big problem for non-governmental or private organizations with no public credibility.

공개번호 1020200008413(2020.01.28) '비밀 선거가 보장된 블록체인 기반의 전자 투표를 수행하는 단말 장치 및 서버와, 전자 투표 방법'Publication No. 1020200008413 (2020.01.28) 'Terminal device and server for performing electronic voting based on blockchain with guaranteed secret election, and electronic voting method'

본 발명은 상기되는 배경에서 제안되는 것으로서, 선거관리 위원회에 의존하지 않는 블록체인 전자투표시스템, 그 시스템의 운용방법을 제안한다. The present invention proposes a blockchain electronic voting system that does not depend on the election management committee, and a method of operating the system as proposed in the background described above.

본 발명의 블록체인 전자투표시스템에는, 각각의 자기식별 비밀키 및 자기식별 공개키 및 그룹암호화 비밀키 및 그룹암호화 공개키를 가지는 적어도 두 개의 투표노드; 투표노드의 자기식별 데이터와 상기 공개키들을 상기 블록체인으로 업로드하는 관제센터; 상기 투표노드의공개키들과 및 비밀키들과 자기식별 데이터를 입력받아 상기 투표노드를 식별하고 식별번호를 생성하고 투표결과에 대한 그룹암호화를 수행하고 상기 과정의 공정성을 보장하는 영지식증거를 생성하는 제 1 스마트 컨트랙트 모듈; 및 상기 블록체인으로부터 상기 투표결과를 다운로드하여 상기 투표결과를 복호화하지 않고, 투표의 공정성과 집계결과를 확인하는 제 2 스마트 컨트랙트 모듈이 포함된다. The blockchain electronic voting system of the present invention includes at least two voting nodes each having a self-identification private key and a self-identification public key and a group encryption private key and a group encryption public key; a control center for uploading self-identification data of voting nodes and the public keys to the block chain; By receiving the public and private keys and self-identification data of the voting node, identifying the voting node, generating an identification number, performing group encryption on the voting result, and generating zero-knowledge evidence that guarantees the fairness of the process a first smart contract module; and a second smart contract module that downloads the voting results from the block chain and checks the fairness and counting results of voting without decrypting the voting results.

제 1 스마트 컨트랙트 모듈은, 상기 그룹암호화가 수행된 투표결과와 영지식증거들을 블록체인에 업로드할 수 있다. The first smart contract module may upload the voting result and zero-knowledge evidence on which the group encryption has been performed to the block chain.

본 발명의 블록체인 전자투표시스템의 운용방법에는, 상기 투표노드가 자기식별 공개키와 자기식별 비밀키와 그룹암호화 공개키와 그룹암호화 비밀키를 생성하는 것; 상기 투표노드가 자기식별 공개키와 그룹암호화 공개키를 상기 관제센터로 송신하는 것; 상기 관제센터가 블록체인에 상기 투표노드의 자기식별 공개키와 그룹암호화 공개키와 자기식별 데이터를 업로드하는 것; 상기 투표노드가 제 1 스마트 컨트랙트 모듈에 접속하여, 자기가 보유한 자기식별 데이터와 상기 블록체인에 업로드 된 자기식별 데이터를 대조하여 자기를 식별하는 것, 자기식별 공개키를 사용하여 고유한 투표노드 식별번호를 생성하는 것, 자기 식별 과정의 공정성과 투표노드 식별번호의 고유함을 보장하는 제 1 영지식증거를 생성하는 것, 자기의 의사선택지를 작성하고 그룹암호화를 수행하는 것, 자기의 의사선택지 작성 과정과 그룹암호화 과정의 공정성을 보장하는 제 2 영지식증거를 생성하는 것; 상기 제 1 스마트 컨트랙트 모듈이 투표노드의 제 1 영지식증거와 제 2 영지식증거를 상기 블록체인으로 업로드하는 것, 투표노드의 투표결과를 상기 블록체인으로 업로드하는 것; 제 2 스마트 컨트랙트 모듈이 제 1 영지식증거와 제 2 영지식증거를 검토하는 것, 상기 투표결과들을 종합하여 검표를 수행하는 것이 수행된다. In the operating method of the blockchain electronic voting system of the present invention, the voting node generates a self-identification public key, a self-identification private key, a group encryption public key, and a group encryption private key; transmitting, by the voting node, a self-identification public key and a group encryption public key to the control center; uploading, by the control center, the self-identification public key, group encryption public key, and self-identification data of the voting node to the block chain; The voting node accesses the first smart contract module to identify itself by comparing the self-identification data it owns with the self-identification data uploaded to the block chain, and unique voting node identification using the self-identification public key Generating the number, generating the first zero-knowledge evidence that guarantees the fairness of the self-identification process and the uniqueness of the voting node identification number, writing one's own choice and performing group encryption, writing one's own choice generating second zero-knowledge evidence that guarantees the fairness of the process and the group encryption process; uploading, by the first smart contract module, the first zero-knowledge proof and the second zero-knowledge proof of the voting node to the block chain, and uploading the voting result of the voting node to the block chain; The second smart contract module examines the first zero-knowledge evidence and the second zero-knowledge evidence, and performs a check by synthesizing the voting results.

본 발명에 따르면, 투표의 속성을 지키고, 영지식증명을 지키고, 선거관리위원회 등의 제 3 자의 신뢰성에 의존하지 않는 전자투표를 구현할 수 있다. According to the present invention, it is possible to implement electronic voting that preserves the properties of voting, keeps zero-knowledge proof, and does not depend on the reliability of a third party such as an election commission.

도 1은 실시예에 따른 블록체인 전자투표시스템의 구성도.
도 2는 실시예에 따른 전자투표시스템의 운용방법을 설명하는 흐름도.
도 3은 블록체인으로 업로드되는 투표노드의 업로드 데이터.
1 is a block diagram of a block chain electronic voting system according to an embodiment.
Figure 2 is a flow chart explaining the operation method of the electronic voting system according to the embodiment.
Figure 3 is the upload data of the voting node uploaded to the blockchain.

이하에서는 도면을 참조하여 본 발명의 구체적인 실시예를 상세하게 설명한다. 다만, 본 발명의 사상은 이하의 실시예에 제한되지 아니하고, 본 발명의 사상을 이해하는 당업자는 동일한 사상의 범위 내에 포함되는 다른 실시예를 구성요소의 부가, 변경, 삭제, 및 추가 등에 의해서 용이하게 제안할 수 있을 것이나, 이 또한 본 발명 사상의 범위에 포함된다고 할 것이다. Hereinafter, specific embodiments of the present invention will be described in detail with reference to the drawings. However, the spirit of the present invention is not limited to the following embodiments, and those skilled in the art who understand the spirit of the present invention can easily change other embodiments included within the scope of the same idea by adding, changing, deleting, and adding components. However, this will also be included within the scope of the present invention.

먼저, 본 발명의 실시에의 설명에 사용되는 다양한 기술요소를 정의한다. First, various technical elements used in the description of the embodiment of the present invention are defined.

<블록체인><Blockchain>

블록체인은 인터넷 피어 투 피어(peer-to-peer) 네트워크상에 존재하는 데이터베이스이다. 블록체인은 서로 연결된 블록들로 구성되고, 각 블록에는 다수의 트랜잭션이 존재한다. 상기 트랜잭션에는 데이터 및 스마트 컨트랙트 중의 적어도 하나가 기록되어 있다. 블록의 외부에는 검증대기 트랜잭션 풀이 존재한다. 상기 검증대기 트랜잭션 풀은 아직 검증받지 못한 트랜잭션들을 보관하는 임시 저장소이다. 블록체인에 기록된 데이터는 위변조가 불가능하다. 블록체인에 기록된 데이터를 읽기 위해 필요한 권한은 없다. 즉, 누구나 접근 가능하다. Blockchain is a database that exists on the Internet peer-to-peer network. A blockchain consists of blocks connected to each other, and each block has multiple transactions. At least one of data and a smart contract is recorded in the transaction. Outside the block, there is a transaction pool waiting for verification. The verification-waiting transaction pool is a temporary storage for storing transactions that have not yet been verified. Data recorded on the blockchain cannot be forged or tampered with. There is no permission required to read data recorded on the blockchain. That is, anyone can access it.

사용자가 블록체인에 데이터를 업로드하는 절차는 검증, 출판(방송)의 단계를 거치며 구체적으로 다음과 같다. 먼저, 사용자가 데이터를 트랜잭션의 형태로 변환 후, 이를 검증대기 트랜잭션 풀에 삽입하고, 검증대기 트랜잭션 풀을 공유한다. 다수의 검증자들이 검증대기 트랜잭션 풀의 트랜잭션들을 검증한다. 검증대기 트랜잭션의 검증이 종료되면, 검증자들 간의 합의를 통해 검증대기 트랜잭션을 블록에 출판한다. 사용되는 블록체인이 공적(public) 블록체인인 경우 검증자는 불특정 다수의 채굴자이며, 사적(private) 블록체인인 경우 검증자는 사전에 선별된 블록체인 관리자 일 수 있다.The procedure for users to upload data to the blockchain goes through the stages of verification and publication (broadcasting) and is specifically as follows. First, after the user converts data into a transaction form, it is inserted into the transaction pool waiting for verification, and the transaction pool waiting for verification is shared. Multiple validators verify transactions in the transaction pool waiting to be verified. When the verification of the transaction waiting for verification is finished, the transaction waiting for verification is published in the block through consensus among the validators. If the blockchain used is a public blockchain, the validator is an unspecified number of miners, and in the case of a private blockchain, the validator may be a pre-selected blockchain administrator.

<영지식 증명><Zero-Knowledge Proof>

영지식 증명(zero-knowledge proof)은 증명 프로토콜로써 증명자가 검증자에게 어떤 명제(statement)가 참임을 납득시키는 프로토콜이다. 이때, 영지식 증명 프로토콜은 검증자에게 그 명제가 참 혹은 거짓이라는 사실 외의 다른 정보는 일절 전달하지 않는 영지식(zero-knowledge) 특성을 가져야 한다. Zero-knowledge proof is a proof protocol in which a prover convinces a verifier that a certain statement is true. In this case, the zero-knowledge proof protocol must have a zero-knowledge characteristic that does not transmit any information other than the fact that the proposition is true or false to the verifier.

공개된 정보와 비공개 정보로 구성된 어떤 명제를 S라 할 때, 어떤 증명 프로토콜이 영지식 증명 프로토콜이 되기 위한 필요충분조건, 완전성(completeness). 건실성(soundness), 및 영지식성(zero-knowledge)이다. When a proposition consisting of public and private information is S, a necessary and sufficient condition for a proof protocol to be a zero-knowledge proof protocol, completeness. soundness, and zero-knowledge.

영지식 증명 프로토콜은 증명과정과 검증과정의 두 과정으로 구분할 수 있다. 상기 증명과정은 증명자가 명제 S가 참임을 스스로 검증한 후, 그 증거를 생성하는 과정이다. 상기 검증과정은 검증자가 증명자로부터 증거를 받아 증거에 문제가 없는지를 확인하는 과정이다. 만약 증거에 문제가 없다면, 증명자가 명제 S의 자가검증을 잘 수행했다는 사실이 수학적으로 보장되어 있어야 한다.The zero-knowledge proof protocol can be divided into two processes: a proof process and a verification process. The proof process is a process in which the prover verifies that the proposition S is true and then generates the evidence. The verification process is a process in which the verifier receives the evidence from the prover and confirms whether there is a problem in the evidence. If there is no problem with the evidence, it must be mathematically guaranteed that the prover performed the self-test of the proposition S well.

<투표노드 식별번호><Vote Node Identification Number>

투표노드가 식별번호를 생성할 때 활용하는 서명 알고리즘을 포함한다. 여기서 상기 투표노드는 상기 투표자가 투표를 행하도록 하는 자원을 예로 들 수 있다. Includes the signature algorithm used by voting nodes to generate identification numbers. Here, the voting node may be a resource that allows the voter to vote.

상기 서명 알고리즘의 예는 RSA(Rivest-Shamir-Adleman) 암호화와 ECDSA(Elliptic Curve Digital Signature Algorithm) 암호화가 있을 수 있다. 그 외의 다른 방법도 적용될 수 있다. Examples of the signature algorithm may include Rivest-Shamir-Adleman (RSA) encryption and Elliptic Curve Digital Signature Algorithm (ECDSA) encryption. Other methods may also be applied.

실시예에서는 RSA를 활용한 서명 알고리즘을 사용할 수 있다. 구체적으로 설명한다. In an embodiment, a signature algorithm utilizing RSA may be used. Described specifically.

모든 투표노드는, p, 및 q의 자기식별 공개키, s의 자기식별 비밀키를 가지고 있다. 여기서, 상기 키는 투표노드의 식별번호 생성을 위하여 필요하다. 투표 노드의 개인식별 데이터 m을 서명하여 고유 식별번호를 생성하는 과정(sign)은, sing(m,s):=msmodq 로 정의할 수 있다. 상기 p, q, 및 s는 임의의 두 소수(prime number)를 이용하여 RSA방식을 따라서 제공될 수 있다. Every voting node has a self-identifying public key of p, and q, and a self-identifying private key of s. Here, the key is required for generating the identification number of the voting node. The process (sign) of generating a unique identification number by signing the personal identification data m of the voting node can be defined as sing(m,s):=m s modq. The p, q, and s may be provided according to the RSA method using any two prime numbers.

어떤 식별번호 M이 고유함을 검증하는 과정은 verify(M,p,q):=(Mpmodq)^(mmodq)이고, 여기서 ^는 두 피연산자가 같으면 1을 출력하고 다르면 0을 출력하는 연산자이다. 하나의 투표노드에 대하여 하나의 자기식별 공개키만이 블록체인에 업로드되어 있기 때문에, 상기 검증과정은 투표노드 식별번호의 고유함을 증명할 수 있다.The process of verifying that a certain identification number M is unique is verify(M,p,q):=(M p modq)^(mmodq), where ^ is an operator that outputs 1 if the two operands are the same and outputs 0 if they are different. . Since only one self-identifying public key for one voting node is uploaded to the blockchain, the verification process can prove the uniqueness of the voting node identification number.

<그룹암호화><Group Encryption>

그룹암호화는 투표내용의 암호화 및 검표에 사용된다. 상기 그룹 암호화는 투표 내용을 복호화하지 않고도 투표결과의 집합계산이 가능하도록 하는 암호화이다. 실시예의 그룹암호화는 소정의 예에 지나지 않고 다른 방안도 가능하다. Group encryption is used to encrypt and validate votes. The group encryption is encryption that enables the collective calculation of voting results without decrypting the voting contents. The group encryption of the embodiment is only a predetermined example, and other methods are possible.

실시예에서의 그룹암호화의 과정을 설명한다. The process of group encryption in the embodiment will be described.

먼저, 모든 투표노드는 두 개의 그룹암호화 공개키와 하나의 그룹암호화 비밀키를 가질 수 있다. 여기서, 상기 키는 그룹암호화에 필요하다. 상기 투표노드들 중 i번째 투표노드는 그룹암호화 비밀키로서 임의의 정수인 ski를 가질 수 있다. i번째 투표노드는 상기 비밀키를 이용하여 하나의 그룹암호화 공개키(예를 들어, pki:=gski)를 제공할 수 있다. 여기서, g는 투표를 행하는 투표노드들의 그룹 G의 암호화 베이스이고, 모든 투표노드에게 공개되는 정보이다. 그룹 G는 N개의 투표노드들로 구성된 그룹이다. 상기 암호화 베이스 g는 정수이다. 상기 암호화 베이스는 관제센터로부터 제공될 수 있다. First, every voting node can have two group encryption public keys and one group encryption private key. Here, the key is required for group encryption. The i-th voting node among the voting nodes may have an arbitrary integer sk i as a group encryption secret key. The i-th voting node may provide one group encryption public key (eg, pk i :=g ski ) by using the secret key. Here, g is the encryption base of the group G of voting nodes that perform voting, and is information disclosed to all voting nodes. Group G is a group consisting of N voting nodes. The encryption base g is an integer. The encryption base may be provided from a control center.

모든 투표노드의 상기 공개키를 이용하여, 다른 하나의 그룹암호화 공개키 (yki)를 제공할 수 있다. 수학식 1을 이용하여 i번째 투표노드의 다른 하나의 공개키 yki를 제공할 수 있다. Using the public key of all voting nodes, it is possible to provide another group encryption public key (yk i ). Using Equation 1, it is possible to provide another public key yk i of the i-th voting node.

Figure 112020133583616-pat00001
Figure 112020133583616-pat00001

여기서, yki는 i번째 투표노드의 다른 하나의 공개키이고, pki는 i번째 투표노드의 하나의 공개키이고, N은 그룹 G에 속한 투표노드의 수이다. Here, yk i is another public key of the i-th voting node, pk i is one public key of the i-th voting node, and N is the number of voting nodes belonging to the group G.

상기 G그룹의 그룹암호화(ENC)는 수학식 2로 주어질 수 있다. The group encryption (ENC) of the G group may be given by Equation (2).

Figure 112020133583616-pat00002
Figure 112020133583616-pat00002

여기서 mi는 G그룹의 i번째 투표노드가 싣고자 하는 메시지, 즉 의사선택 내용이다. Here, m i is the message that the i-th voting node of group G wants to load, that is, the content of the decision.

검표는 수학식 3으로 수행될 수 있다. Inspection may be performed by Equation (3).

Figure 112020133583616-pat00003
Figure 112020133583616-pat00003

여기서, ENCG(i)는 G그룹의 i번째 투표노드의 암호화메시지이다. Here, ENC G(i) is the encrypted message of the i-th voting node of the G group.

상기 그룹암호화를 예를 들어 설명한다. 3명으로 구성된 어떤 투표자 그룹이 있다. i는 1에서 3까지이다. 각각의 투표노드는 그룹암호화를 위하여, 두 개의 공개키와 하나의 비밀키를 공유한다. 상기 암호화베이스는 3으로 예를 든다. The group encryption will be described as an example. There is a certain group of voters of three. i is from 1 to 3. Each voting node shares two public keys and one private key for group encryption. The encryption base is exemplified as 3.

각각의 그룹원의 공개키와 비밀키를 각각,

Figure 112020133583616-pat00004
,
Figure 112020133583616-pat00005
, 및
Figure 112020133583616-pat00006
로 할 수 있다. Each group member's public key and private key,
Figure 112020133583616-pat00004
,
Figure 112020133583616-pat00005
, and
Figure 112020133583616-pat00006
can be done with

위와 같이 각 그룹원의 비밀키와 공개키가 정해지면, 상기 수학식 1을 이용하여, 각 그룹원의 그룹공개키(yki)를 생성할 수 있다. When the private key and public key of each group member are determined as described above, the group public key (yk i ) of each group member can be generated using Equation 1 above.

각 그룹원의 그룹공개키는, 각각,

Figure 112020133583616-pat00007
,
Figure 112020133583616-pat00008
, 및
Figure 112020133583616-pat00009
가 될 수 있다.The group public key of each group member is,
Figure 112020133583616-pat00007
,
Figure 112020133583616-pat00008
, and
Figure 112020133583616-pat00009
can be

각 그룹원의 투표는 어떤 의사결정으로서 5점 만점의 점수를 투표하고, 집계결과 후 만점은 15점으로 한다. 각 그룹원은 예를 들어, m1은 2점, m2는 4점, 및 m3는 1점으로 투표하였다. Each group member's vote is a decision-making, and a score out of 5 is voted, and after the counting result, the perfect score is 15. Each group member voted, for example, with 2 points for m 1 , 4 points for m 2 , and 1 point for m 3 .

i번째 그룹원의 그룹암호화(ENC)는 상기 수학식 2로 수행될 수 있다. Group encryption (ENC) of the i-th group member may be performed by Equation 2 above.

수학식 2로 수행되는 각 그룹원의 그룹암호화결과는, The group encryption result of each group member performed by Equation 2 is,

Figure 112020133583616-pat00010
로 주어질 수 있다.
Figure 112020133583616-pat00010
can be given as

검표(또는 집계)는 수학식 3으로 주어질 수 있다. 수학식 3을 이용하여 각 그룹원의 검표를 수행하면,

Figure 112020133583616-pat00011
로 집계됨을 알 수 있다. A checklist (or aggregation) may be given by Equation (3). When the check of each group member is performed using Equation 3,
Figure 112020133583616-pat00011
It can be seen that counted as

결국, 집계결과는 37이며 밑을 3(암호화베이스)으로 하는 이산 log를 취하면 7이 계산된다. 이 결과에 따르면, 집계 과정에서 그룹암호화의 결과를 복호화하지 않기 때문에 각 투표노드의 의사가 무엇인지 알 수 없다. 그에 불구하고 그룹전체의 투표결과를 알 수 있다. In the end, the aggregate result is 3 7 , and 7 is calculated by taking the discrete log with the base 3 (encryption base). According to this result, the intention of each voting node cannot be known because the result of group encryption is not decrypted during the counting process. Nevertheless, the voting results of the entire group can be known.

실시예에서 적용하는 그룹암호화는 다른 방법을 사용할 수 있는 것은 물론이다. Of course, other methods may be used for group encryption applied in the embodiment.

<스마트 컨트랙트><Smart Contract>

스마트 컨트랙트는 프로그램의 형태로 제공될 수 있다. 입력을 받아 정해진 연산을 수행한 후 출력물을 새로운 트랜잭션에 기록하고 업로드할 수 있다. 스마트 컨트랙트가 지원하는 연산은 튜링완전(turing-complete) 언어가 지원하는 모든 연산을 포함하며, 영지식증명 프로토콜에 사용되는 연산을 포함한다. 상기 스마트 컨트랙트가 수행되는 자원을 스마트 컨트랙트 모듈이라고 할 수 있다. 상기 스마트 컨트랙트는 관제센터가 제공할 수 있다. Smart contracts can be provided in the form of programs. After receiving the input and performing the specified operation, the output can be recorded and uploaded in a new transaction. The operations supported by the smart contract include all operations supported by the Turing-complete language, including those used in the zero-knowledge proof protocol. The resource on which the smart contract is performed may be referred to as a smart contract module. The smart contract may be provided by the control center.

실시예에서 상기 스마트 컨트랙트 모듈에는 투표를 실행하는 제 1 스마트 컨트랙트 모듈, 및 검표를 실행하는 제 2 스마트 컨트랙트 모듈이 포함될 수 있다. In an embodiment, the smart contract module may include a first smart contract module that executes voting, and a second smart contract module that executes a ballot.

도 1은 실시예에 따른 블록체인 전자투표시스템의 구성도이다. 1 is a block diagram of a blockchain electronic voting system according to an embodiment.

도 1을 참조하면, 상기 관제센터(2)는 그룹 G의 상기 암호와 베이스(g)를 각 투표노드에게 제공할 수 있다(원문자 1). 상기 관제센터(2)는 각 투표노드(1)의 공개키를 입수하고(원문자 2), 관제선터가 보유하고 있는 각 투표노드(1)의 식별정보(DID:Digital ID, 홍채, 및 지문 등의 정보일 수 있다)와 함께 블록체인(3)에 업로드할 수 있다(원문자 3). 상기 관제센터(2)는 상기 스마트 컨트랙트를 블록체인(3)에 업로드할 수 있다(원문자 3). Referring to FIG. 1 , the control center 2 may provide the password and base g of group G to each voting node (original character 1). The control center 2 obtains the public key of each voting node 1 (original character 2), and the identification information (DID: Digital ID, iris, and fingerprint of each voting node 1 held by the control center) etc.) and can be uploaded to the block chain 3 (original character 3). The control center 2 can upload the smart contract to the block chain 3 (original letter 3).

상기 제 1 스마트 컨트랙트 모듈(41)은 모든 투표노드의 정보를 다운로드한다(원문자 4). 상기 제 1 스마트 컨트랙트 모듈(41)은 각각의 투표노드와 접속하여, 각 투표자에 대한 해당투표자식별(voteIDi), 해당투표자식별의 영지식 증명(proof_voteIDi), 및 투표내용수록을 수행할 수 있다. 상기 제 1 스마트 컨트랙트 모듈(41)은, 그룹공개키(yki) 생성, 그룹암호화 수행(ENCG(i)(votei)), 및 그룹암호화의 영지식 증명(proof_voteENCi)을 수행할 수 있다. The first smart contract module 41 downloads information of all voting nodes (original character 4). The first smart contract module 41 connects to each voting node, and identifies the voter for each voter (voteID i ), the zero-knowledge proof of the voter identification (proof_voteID i ), and the voting content recording. have. The first smart contract module 41 may generate a group public key (yki), perform group encryption (ENC G(i) (vote i )), and perform zero-knowledge proof (proof_voteENCi) of group encryption.

상기 투표노드(1)는 상기 스마트 컨트랙트 모듈(41)에 접속한다. 상기 투표노드(1)는, 스마트 컨트랙트로, 투표노드 자신이 보유하고 있는 DID, 서명을 위한 공개키와 비밀키, 그룹암호화를 위한 공개키와 비밀키를 업로드한다(원문자 5). The voting node (1) is connected to the smart contract module (41). The voting node 1 uploads, as a smart contract, the DID possessed by the voting node itself, a public key and a private key for signing, and a public key and a private key for group encryption (original letter 5).

상기 제 1 스마트 컨트랙트 모듈(41)은 투표결과를 블록체인(3)으로 업로드한다(원문자 6). i번째 투표노드의 투표결과(balloti)에는, 투표자식별정보(voteIDi), 해당투표자의 영지식 증명(proof_voteIDi), 투표실행시각(time_publish), 그룹공개키(yki) 생성, 그룹암호화정보(ENCG(i)(votei)), 및 그룹암호화의 영지식 증명(proof_voteENCi)을 업로드 한다. 상기 그룹암호화정보에는 그룹공개키가 적용되어 있다. 상기 그룹암호화정보는 상기 투표노드의 의사선택지가 수록될 수 있다.The first smart contract module 41 uploads the voting result to the block chain 3 (original character 6). In the voting result (ballot i ) of the i-th voting node, voter identification information (voteID i ), zero-knowledge proof of the voter (proof_voteID i ), voting execution time (time_publish), group public key (yki) generation, group encryption information (ENC G(i) (vote i )), and a zero-knowledge proof of group encryption (proof_voteENCi). A group public key is applied to the group encryption information. The group encryption information may contain the choice of the voting node.

투표가 종료된 뒤에는, 검표를 수행할 수 있다. 상기 제 2 스마트 컨트랙트 모듈(42)에 의해서 검표가 수행될 수 있다. 상기 제 2 스마트 컨트랙트 모듈(42)은 상기 관제센터(2)로부터 검토를 위한 비밀키(s0)를 입수한다. 상기 제 2 스마트 컨트랙트 모듈(42)은 블록체인의 수록정보를 이용하여 검토를 수행할 수 있다. After the voting has been completed, a ballot can be performed. Inspection may be performed by the second smart contract module 42 . The second smart contract module 42 obtains a secret key s0 for review from the control center 2 . The second smart contract module 42 may perform a review using the information contained in the block chain.

상기 제 2 스마트 컨트랙트 모듈은 동일한 식별번호가 표기된 두 개의 입력이 있으면 가장 최신의 투표결과(balloti)만을 인정한다. 이를 통하여 어느 투표노드가 두 번의 투표를 하였을 때 최신 정보를 이용함으로서, 투표노드가 최후로 표명한 진정한 의사를 파악할 수 있다. The second smart contract module recognizes only the most recent voting result (balloti) if there are two inputs marked with the same identification number. Through this, by using the latest information when a voting node voted twice, the true intention expressed by the voting node can be grasped.

상기 제 2 스마트 컨트랙트 모듈(42)은 메시지를 복호하지 않고 투표결과를 알 수 있다. 이에 대해서는 상기 그룹암호화를 통하여 상세하게 설명한 바가 있다. The second smart contract module 42 can know the voting result without decoding the message. This has been described in detail through the group encryption.

도 1 및 관련 기술요소를 참조하여 실시예에 따른 블록체인 전자투표시스템의 운용방법을 설명한다. An operating method of the blockchain electronic voting system according to an embodiment will be described with reference to FIG. 1 and related technical elements.

도 2는 실시예에 따른 전자투표시스템의 운용방법을 설명하는 흐름도이다. 2 is a flowchart illustrating a method of operating an electronic voting system according to an embodiment.

실시예의 운용방법은 신뢰받는 검표자가 필요하지 않다. 실시예의 운용방법은, 투표의 특성이 제 3 자의 신뢰성에 의존하지 않는다. 실시예의 운용방법은 투표를 주최하는 관제센터와 투표에 참여하는 투표노드가 있다. 관제센터는 검표에 사용되는 자신만의 비밀 키(s0)를 보유할 수 있다. 투표란 관제센터가 사전에 정의한 안건과 그에 관한 의사선택지를 바탕으로 투표노드들의 의사를 묻고 결과를 종합하는 절차일 수 있다. 투표노드는, 한 개의 의사에 다수의 표를 줄 수 있다. 한 명의 투표자가 투표할 수 있는 표의 수는 최대 Smax개로 제한될 수 있다. 투표자의 수는 N명이며, 투표자 명단은 투표가 시행되기 이전에 정해질 수 있다. 주최자는 투표가 시행되기 이전부터 모든 투표자의 개인 인증 데이터를 보유할 수 있다. 주최자가 보유중인 투표자의 개인 인증 데이터를 S-DIDi라 칭할 수 있다. 본인인증 데이터의 예는 홍채 이미지, 지문 이미지, 증명사진 이미지, 음성 데이터, 및 공인인증 데이터 중의 적어도 하나가 될 수 있으며, 이에 제한되지 않는다. N명의 투표자에 대해, 투표자의 개인 인증 데이터를 DIDi라 칭할 수 있다. 실시예의 운용방법은 투표노드가 모든 투표과정의 공정성에 대한 자가 검증을 수행한 후에 그 영지식 증거를 블록체인에 업로드할 수 있다. The method of operation of the embodiment does not require a trusted validator. In the operating method of the embodiment, the voting characteristics do not depend on the credibility of a third party. The operation method of the embodiment includes a control center hosting a vote and a voting node participating in the voting. The control center may have its own secret key (s0) used for ticketing. Voting may be a procedure of asking the votes of the voting nodes and synthesizing the results based on the agenda defined by the control center in advance and the decision options related thereto. A voting node can give multiple votes to one doctor. The number of votes one voter can cast may be limited to a maximum of S max . The number of voters is N, and the list of voters may be determined before the voting takes place. Organizers can retain all voters' personal authentication data before voting takes place. The voter's personal authentication data held by the organizer can be called S-DIDi. Examples of personal authentication data may be at least one of an iris image, a fingerprint image, an ID photo image, voice data, and public authentication data, but is not limited thereto. For N voters, the voter's personal authentication data may be referred to as DIDi. The operation method of the embodiment may upload the zero-knowledge evidence to the blockchain after the voting node performs self-verification for the fairness of all voting processes.

먼저, 상기 관제센터(2)는 상기 암호와 베이스(g)를 각 투표노드에게 제공할 수 있다(S1). 상기 투표노드(1)는 서명을 위한 공개키(pi, qi) 및 비밀키(si)를 생성할 수 있다. 상기 투표노드(1)는 상기 암호화 베이스(g)를 이용하여, 그룹암호화를 위한 공개키(pki) 및 비밀키(ski)를 생성할 수 있다. 상기 투표노드는 공개키를 상기 관제센터로 송신할 수 있다(S2). First, the control center 2 may provide the encryption and the base g to each voting node (S1). The voting node 1 may generate a public key (pi, qi) and a private key (si) for signing. The voting node 1 may generate a public key (pki) and a private key (ski) for group encryption using the encryption base g. The voting node may transmit the public key to the control center (S2).

상기 관제센터(2)는 블록체인(3)에 각 투표노드의 데이터를 도 3과 같이 업로드할 수 있다(S3). 상기 블록체인(3)으로 업로드되는 다른 데이터도, 내용은 다르지만 마찬가지로 구조로 업로드될 수 있다. The control center 2 may upload the data of each voting node to the block chain 3 as shown in FIG. 3 (S3). Other data uploaded to the block chain 3 may also be uploaded in the same structure although the content is different.

상기 관제센터(2)는 스마트 컨트랙트를 업로드할 수 있다(S3). 상기 스마트 컨트랙트에는 투표를 위한 컨트랙트와 검토를 위한 컨트랙트가 포함될 수 있다. 상기 투표노드의 데이터에는, 상기 관제센터가 미리 보유하고 있는 각 투표노드(1)의 식별정보(DID:Digital ID)를 업로드할 수 있다. The control center 2 may upload a smart contract (S3). The smart contract may include a contract for voting and a contract for review. In the data of the voting node, identification information (DID: Digital ID) of each voting node 1 previously held by the control center may be uploaded.

상기 제 1 스마트 컨트랙트 모듈(41)에 의해서 투표가 수행될 수 있다. 상기 표노드는 상기 제 1 스마트 컨트랙트 모듈(41)를 이용하여 투표할 수 있다. Voting may be performed by the first smart contract module 41 . The table node may vote by using the first smart contract module 41 .

상기 제 1 스마트 컨트랙트 모듈(41)은 각각의 투표노드와 접속하여, 각각의 투표노드를 식별하여 고유 식별번호를 생성하는 것, 각각의 투표노드의 의사선택지를 작성하는 과정이 수행될 수 있다(S4). 상기 식별번호 생성 및 의사선택지의 작성에는 영지식 증명이 수행될 수 있다. The first smart contract module 41 connects with each voting node, identifies each voting node to generate a unique identification number, and the process of creating a choice of each voting node can be performed ( S4). Zero-knowledge proof may be performed for the generation of the identification number and the creation of the pseudo-option.

더 구체적으로, 각 투표노드의 식별정보를 비교하여 투표노드를 확인하는 것(Cert), 각 투표자에 대한 해당투표노드의 식별(voteIDi), 해당투표노드의 영지식 증명(proof_voteID), 및 투표내용수록(x입력)을 수행할 수 있다. More specifically, verifying the voting node by comparing the identification information of each voting node (Cert), the identification of the corresponding voting node for each voter (voteIDi), the zero-knowledge proof of the corresponding voting node (proof_voteID), and voting contents Recording (x input) can be performed.

여기서, 상기 투표내용수록에는 마지막은 하나의 필드(L+1)를 추가할 수 있다. 상기 추가 필드가 영이 아니면 추후에 기권표로 취급할 수 있다. 이를 통하여 상기 투표노드는 기권표를 투표할 수도 있다. Here, one last field (L+1) may be added to the voting contents. If the additional field is not zero, it may be treated as an abstention vote later. Through this, the voting node may vote for an abstention vote.

이후에 각 필드값의 합이 최대값(Smax)를 넘지 않는지를 판단할 수 있다. 상기 각 필드값의 합이 상기 최대값을 넘으면 이상이 있는 것으로서 무효처리할 수 있다. Thereafter, it may be determined whether the sum of the field values does not exceed the maximum value Smax. If the sum of the respective field values exceeds the maximum value, it may be invalidated as an abnormality.

이후에, 상기 그룹공개키를 생성(yki), 상기 그룹공개키를 이용하여 그룹암호화를 수행(ENC), 및 상기 그룹암호화의 영지식 증명(proof_voteENC)을 수행할 수 있다. Thereafter, it is possible to generate the group public key (yki), perform group encryption using the group public key (ENC), and perform zero-knowledge proof (proof_voteENC) of the group encryption.

이후에, 마지막으로 투표노드를 확인하는 것(Cert), 해당투표노드의 영지식 증명(proof_voteID), 및 상기 그룹암호화의 영지식 증명(proof_voteENC)의 어느 하나라도 영이 발생하면 에러로 취급하여 다시 할 수 투표를 진행할 수 있다. After that, if zero occurs in any one of the last confirmation of the voting node (Cert), the zero-knowledge proof (proof_voteID) of the corresponding voting node, and the zero-knowledge proof (proof_voteENC) of the group encryption, it is treated as an error and can be redone. A number of votes may be held.

정상적으로 투표가 종료되면, 개인식별정보(DIDi), 비밀키(si, ski)를 삭제한다. When voting ends normally, personal identification information (DIDi) and secret key (si, ski) are deleted.

투표가 종료하면, 상기 제 1 스마트 컨트랙트 모듈(41)은, 블록체인(3)으로 소정의 정보를 업로드한다(S5). 업로드되는 정보에는, 투표자식별정보(voteIDi), 해당투표자의 영지식 증명(proof_voteID), 투표실행시각(time_publish), 그룹공개키(yki) 생성, 그룹암호화정보(ENCG(i)(votei)), 및 그룹암호화의 영지식 증명(proof_voteENCi)이 포함될 수 있다. When voting ends, the first smart contract module 41 uploads predetermined information to the block chain 3 (S5). The uploaded information includes voter identification information (voteIDi), zero-knowledge proof of the voter (proof_voteID), voting execution time (time_publish), group public key (yki) generation, group encryption information (ENC G(i) (votei)) , and a zero-knowledge proof of group encryption (proof_voteENCi) may be included.

상기 투표과정(S4), 및 투표결과가 업로드되는 과정(S5)은, 상기 제 1 스마트 컨트랙트 모듈에 의해서 수행되는 것으로서, 상세한 내용은 수학식 4를 참조할 수 있다. The voting process (S4) and the voting result uploading process (S5) are performed by the first smart contract module, and for details, refer to Equation (4).

Figure 112020133583616-pat00012
Figure 112020133583616-pat00012

수학식 4에서 ZKP(연산)는 입력 연산의 연산 과정의 공정성을 보장하는 영지식증거를 생성하는 함수이다.In Equation 4, ZKP (operation) is a function for generating zero-knowledge evidence that guarantees the fairness of the operation process of the input operation.

수학식 4에서 ZKP_verify(증거)는 입력 영지식증거의 타당성을 검증하는 함수이다.In Equation 4, ZKP_verify (evidence) is a function that verifies the validity of the input zero-knowledge evidence.

모든 투표노드의 투표가 종료된 뒤에는, 검표를 수행할 수 있다. After the voting of all voting nodes is finished, the ballot can be performed.

상기 제 2 스마트 컨트랙트 모듈(42)에 의해서 검표가 수행될 수 있다. 상기 제 2 스마트 컨트랙트 모듈(42)은 상기 관제센터(2)로부터 검토를 위한 비밀키(s0)와 블록체인의 수록정보를 입수할 수 있다(S6).Inspection may be performed by the second smart contract module 42 . The second smart contract module 42 may obtain the secret key s0 for review and the information contained in the block chain from the control center 2 (S6).

상기 제 2 스마트 컨트랙트 모듈(42)은, 자신이 가진 비밀키(s0)와 입수한 비밀키가 서로 다른 경우에는, 검표를 거부할 수 있다. The second smart contract module 42 may reject the check if the secret key (s0) it owns and the secret key obtained are different from each other.

상기 제 2 스마트 컨트랙트 모듈(42)은, 블록체인으로 정보를 입수하여 수록된 정보를 알아낼 수 있다. 이때 상기 정보는 블록체인의 각 블록의 정보를 연결하여 단일의 정보를 생성하는 것을 의미할 수 있다. 이때 상기 정보는 암호화된 그룹암호화 정보를 개별적으로 복호화하는 것을 의미하지 않을 수 있다. The second smart contract module 42 may obtain information through the block chain and find out the information contained therein. In this case, the information may mean generating a single piece of information by linking the information of each block of the block chain. In this case, the information may not mean individually decrypting the encrypted group encryption information.

상기 제 2 스마트 컨트랙트 모듈(42)은 상기 의사 선택지의 복호화가 없이 의사 선택지의 집계결과를 알아낼 수 있다(S7). 상기 그룹암호화에 의해서 상기 작용이 수행되는 것은 이미 살펴본 바와 같다. The second smart contract module 42 may find out the aggregation result of the pseudo option without decrypting the pseudo option (S7). As described above, the above operation is performed by the group encryption.

상기 제 2 스마트 컨트랙트 모듈(42)은, 해당투표노드의 영지식 증명(proof_voteIDi)의 검증(ZKP_verify(proof_voteIDi)), 및 상기 그룹암호화의 영지식 증명(proof_voteENCi)의 검증(ZKP_verify(proof_voteENCi))을 수행할 수 있다. The second smart contract module 42 performs verification of the zero-knowledge proof (proof_voteIDi) of the corresponding voting node (ZKP_verify(proof_voteIDi)) and the verification of the zero-knowledge proof (proof_voteENCi) of the group encryption (ZKP_verify(proof_voteENCi)) can be done

상기 제 2 스마트 컨트랙트 모듈은 동일한 투표자에 대하여 두 개의 입력이 있으면 가장 최신의 투표결과(balloti)를 이용한다. 이를 통하여 어느 투표노드가 두 번의 투표를 하였을 때 최선정보를 이용함으로서, 투표노드의 진정한 의사를 파악할 수 있다. The second smart contract module uses the most recent voting result (balloti) if there are two inputs for the same voter. Through this, it is possible to grasp the true intention of a voting node by using the best information when a voting node has voted twice.

이후에, 상기 제 2 스마트 컨트랙트 모듈(42)은 집계결과를 블록체인(3)에 업로드할 수 있다(S8)Thereafter, the second smart contract module 42 may upload the aggregate result to the block chain 3 (S8).

투표시스템이 가져야 하는 투표의 특성은 다음과 같다. The voting characteristics that the voting system should have are as follows.

정확성: 모든 정당한 유효투표는 투표결과에 정확히 집계. Accuracy: All valid valid votes are counted accurately in the voting results.

확인성: 투표결과 위조방지를 위한 투표결과 검증수단이 필요. Verification: A means of verifying voting results is required to prevent forgery of voting results.

완전성: 부정 투표자에 의한 방해 차단하고 부정투표는 미집계. Integrity: Blocking interference by fraudulent voters and uncounted fraudulent votes.

단일성: 투표권이 없는 유권자의 투표참여 불가. Unity: Non-voting voters are not allowed to vote.

합법성: 정당한 투표자는 오직 1회만 참여 가능. Legality: A valid voter can only participate once.

기밀성: 투표자와 투표결과의 비밀관계 보장. Confidentiality: Ensuring the confidentiality of voters and voting results.

공정성: 투표 중의 집계결과가 남은 투표에 영향을 주지 않음.Fairness: The result of the count during voting does not affect the remaining votes.

본 발명의 시스템 및 운용방법이 상기 각 특성을 지키는 것을 설명한다. The system and operating method of the present invention will be described in keeping each of the above characteristics.

먼저, 상기 정확성을 담보하는 요인을 다음과 같이 예시할 수 있다.First, factors that guarantee the accuracy can be exemplified as follows.

투표자가 투표 스마트 컨트랙트를 이용하여 투표의 유효성을 자가검증할 수 있다. 투표의 유효성 자가검증을 수행한 증거를 생성할 수 있다. 불특정 다수의 블록체인 검증자(채굴자)에 의해 투표의 유효성 증거를 검증받을 수 있다. 검표 스마트 컨트랙트 모듈이 투표의 유효성 증거를 한 번 더 검증할 수 있다. 검증받은 증거와 암호화된 투표내용은 함께 블록체인에 기록되어 불변할 수 있다. 모든 투표는 검표 스마트컨트랙트에 의해 일괄적으로 집계할 수 있다.Voters can self-verify the validity of their votes using the voting smart contract. Evidence of performing self-validation of the validity of the vote can be generated. Evidence of voting validity can be verified by an unspecified number of blockchain validators (miners). The checklist smart contract module can verify the validity of the vote once more. Verified evidence and encrypted votes are recorded together on the blockchain and can be immutable. All votes can be aggregated collectively by the ticketing smart contract.

상기 확인성을 담보하는 요인을 다음과 같이 예시할 수 있다.Factors that ensure the confirmability can be exemplified as follows.

투표내용이 투표대상자에 의해 작성되었다는 증거가 암호화된 투표데이터와 함께 블록체인에 기록되어 불변할 수 있다. 투표데이터가 조작될 경우 증거의 검증이 불가능하므로 무효표로 처리할 수 있다. 누구나 투표데이터와 증거를 검증한 후 집계 결과를 재생산 할 수 있다. Evidence that the content of the vote was written by the voter is recorded on the blockchain along with the encrypted voting data, making it immutable. If the voting data is manipulated, the verification of the evidence is impossible, so it can be treated as an invalid vote. Anyone can reproduce the aggregated results after verifying the voting data and evidence.

상기 완전성을 담보하는 요인을 다음과 같이 예시할 수 있다.Factors that ensure the above integrity can be exemplified as follows.

모든 투표자는 투표내용을 작성 후 합법한 투표임을 자가검증하고 그 증거를 블록체인에 기록할 수 있다. 투표내용이 부정할 경우 증거가 검증 불가능할 수 있다. 검증 불가능한 증거와 함께 기록된 투표내용은 무효처리할 수 있다. Every voter can self-verify that it is a legal vote after writing the vote and record the evidence on the blockchain. If the voting contents are false, the evidence may be unverifiable. Votes recorded with unverifiable evidence may be invalidated.

상기 단일성을 담보하는 요인을 다음과 같이 예시할 수 있다.Factors that ensure the unity can be exemplified as follows.

모든 투표자는 개인인증을 자가수행한 후 그 증거를 투표내용과 함께 블록체인에 기록할 수 있다. 개인인증 증거가 검증 불가능할 경우 함께 기록된 투표내용은 무효처리할 수 있다.All voters can self-certify and record the evidence on the blockchain together with the votes. If the personal authentication evidence cannot be verified, the votes recorded together may be invalidated.

상기 합법성을 담보하는 요인을 다음과 같이 예시할 수 있다.Factors that ensure the above legality can be exemplified as follows.

투표자별로 고유의 의사 선택지 식별번호가 있다. 의사 선택지 식별번호는 투표자의 비밀 키를 사용하여 생성하며, 사전에 등록된 투표자의 공개 키를 사용하여 검증 가능해야 할 수 있다. 한 명의 투표자는 한 개의 공개키만을 사전 등록하므로, 한 명의 투표자는 하나의 식별번호만을 생성할 수 있다. 투표자는 자신의 공개 키를 사용하여 식별번호의 유효성을 자가 검증하고, 그 증거를 생성한 후, 식별번호와 함께 블록체인에 기록할 수 있다. 식별번호의 유효성에 관한 증거가 검증 불가능한 경우, 함께 기록된 투표는 무효처리할 수 있다. Each voter has a unique physician option identification number. The pseudo-option identification number is generated using the voter's private key and may need to be verifiable using the pre-registered voter's public key. Since one voter pre-registers only one public key, one voter can generate only one identification number. Voters can self-validate the validity of the identification number using their public key, generate the evidence, and record it on the blockchain along with the identification number. If the evidence as to the validity of the identification number cannot be verified, the votes recorded together may be invalidated.

상기 기밀성을 담보하는 요인을 다음과 같이 예시할 수 있다.Factors that ensure the confidentiality can be exemplified as follows.

투표자가 의사 선택 식별번호를 자신의 비밀 키를 이용하여 직접 생성할 수 있다. 투표자는 의사 선택 식별번호만을 블록체인에 기록하므로, 비밀 키를 모르는 제 3 자는 투표자와 식별번호 간의 관계를 유추할 수 없다. 투표내용은 암호화되어 공개되고, 검표 및 개표시에도 그 내용이 복호화되지 않으므로, 제 3 자가 식별번호와 투표내용간의 관계를 유추할 수 없다. Voters can directly generate a pseudo-selection identification number using their private key. Since the voter records only the pseudo-selection identification number in the blockchain, a third party who does not know the secret key cannot infer the relationship between the voter and the identification number. Since the contents of the votes are encrypted and disclosed, and the contents are not decrypted even when the ticket is counted and counted, a third party cannot infer the relationship between the identification number and the contents of the vote.

상기 공정성을 담보하는 요인을 다음과 같이 예시할 수 있다.Factors that ensure the fairness can be exemplified as follows.

모든 투표내용은 암호화되어 업로드 될 수 있다. 검표 및 개표를 포함한 투표 전 과정을 통틀어 투표내용이 복호화되지 않을 수 있다. 그룹암호화에 의해 모든 투표가 완료되지 않으면 투표 내용의 집계가 불가능할 수 있다. All voting contents can be encrypted and uploaded. Voting contents may not be decrypted throughout the entire voting process, including the counting and counting. If all votes are not completed by group encryption, it may not be possible to count votes.

상기되는 내용에 따르면 본 발명 투표시스템 및 그 운용방법의 장점이 이해될 수 있다.According to the above content, the advantages of the present invention voting system and its operating method can be understood.

본 발명에 따르면 영지식 증명을 지키고, 제 3 자의 신뢰도에 영향을 받지 않는 상태로 전자투표시스템을 운영할 수 있다. According to the present invention, it is possible to maintain the zero-knowledge proof and operate the electronic voting system in a state that is not affected by the reliability of a third party.

1: 투표노드
2: 관제센서
3: 블록체인
41, 42: 스마트 컨트랙트 모듈
1: Voting node
2: control sensor
3: Blockchain
41, 42: smart contract module

Claims (20)

각각의 비밀키 및 공개키를 가지는 적어도 두 개의 투표노드;
암호화 베이스를 상기 투표노드로 제공하는 관제센터;
상기 투표노드가 상기 암호화 베이스를 이용하여 생성한 그룹암호화를 위한 공개키 및 비밀키를 입력받아 상기 투표노드의 투표에 대한 그룹암호화를 수행하고,
상기 그룹암호화가 수행된 투표결과를 블록체인에 업로드하도록,
스마트 컨트랙트가 수행되는 제 1 스마트 컨트랙트 모듈; 및
상기 블록체인으로부터 상기 투표결과를 다운로드하여 상기 투표결과를 복호화하지 않고, 투표의 집계결과를 확인하는 제 2 스마트 컨트랙트 모듈이 포함되고,
상기 제 1 스마트 컨트랙트 모듈은, 투표실행시각(time_publish)을 상기 블록체인으로 업로드하는 블록체인 전자투표시스템.
at least two voting nodes each having a private key and a public key;
a control center that provides an encryption base to the voting node;
The voting node receives a public key and a private key for group encryption generated using the encryption base, and performs group encryption on the voting of the voting node,
To upload the voting results on which the group encryption has been performed to the blockchain,
a first smart contract module in which a smart contract is performed; and
A second smart contract module that downloads the voting results from the block chain and checks the voting results without decrypting the voting results is included,
The first smart contract module is a block chain electronic voting system that uploads a voting execution time (time_publish) to the block chain.
제 1 항에 있어서,
상기 관제센터는, 상기 투표노드의 제 1 개인식별정보를 미리 수록하여 상기 블록체인으로 업로드하고,
상기 투표노드는, 자신이 가지는 제 2 개인식별정보를 상기 제 1 스마트 컨트랙트 모듈로 업로드하여,
상기 제 1 스마트 컨트랙트 모듈은, 상기 제 1, 2 개인식별정보를 비교하여 투표노드를 확인하는 블록체인 전자투표시스템.
The method of claim 1,
The control center pre-records the first personal identification information of the voting node and uploads it to the block chain,
The voting node uploads the second personal identification information it has to the first smart contract module,
The first smart contract module is a block-chain electronic voting system that confirms the voting node by comparing the first and second personal identification information.
제 1 항에 있어서,
상기 관제센터가, 검표를 위한 비밀키를 상기 제 2 스마트 컨트랙트 모듈로 제공하는 블록체인 전자투표시스템.
The method of claim 1,
A block chain electronic voting system in which the control center provides a secret key for ticketing to the second smart contract module.
제 1 항에 있어서,
상기 제 1 스마트 컨트랙트 모듈은, 상기 투표노드에 대한 투표노드식별(voteIDi), 및 투표노드식별에 대한 영지식 증명(proof_voteID)을 수행하는 블록체인 전자투표시스템.
The method of claim 1,
The first smart contract module is a blockchain electronic voting system that performs voting node identification (voteIDi) for the voting node, and zero-knowledge proof (proof_voteID) for voting node identification.
제 1 항에 있어서,
상기 제 1 스마트 컨트랙트 모듈은, 상기 그룹암호화의 영지식 증명(proof_voteENCi)을 수행하는 블록체인 전자투표시스템.
The method of claim 1,
The first smart contract module is a blockchain electronic voting system that performs zero-knowledge proof (proof_voteENCi) of the group encryption.
제 1 항에 있어서,
상기 스마트 컨트랙트는 상기 관제센터가 블록체인을 통하여 공급하는 블록체인 전자투표시스템.
The method of claim 1,
The smart contract is a block chain electronic voting system that the control center supplies through a block chain.
제 1 항에 있어서,
상기 제 1 스마트 컨트랙트 모듈은, 투표노드식별정보(voteIDi), 투표노드식별정보의 영지식 증명(proof_voteID), 그룹암호화정보(ENCG(i)(votei)), 및 그룹암호화 정보의 영지식 증명(proof_voteENCi)을 상기 블록체인으로 업로드하는 블록체인 전자투표시스템.
The method of claim 1,
The first smart contract module includes voting node identification information (voteIDi), zero-knowledge proof of voting node identification information (proof_voteID), group encryption information (ENC G(i) (votei)), and zero-knowledge proof of group encryption information A blockchain electronic voting system that uploads (proof_voteENCi) to the blockchain.
제 1 항에 있어서,
상기 제 2 스마트 컨트랙트 모듈은, 상기 집계결과를 상기 블록체인에 업로드하는 블록체인 전자투표시스템.
The method of claim 1,
The second smart contract module is a block chain electronic voting system that uploads the counting result to the block chain.
제 1 항에 있어서,
상기 제 2 스마트 컨트랙트 모듈은 상기 집계결과는 상기 블록체인에 업로드하는 블록체인 전자투표시스템.
The method of claim 1,
The second smart contract module is a block chain electronic voting system that uploads the counting result to the block chain.
관제센터가 같은 암호화 베이스를 적어도 두 개의 투표노드 각각에게 제공하는 것;
상기 투표노드가 상기 암호화 베이스를 이용하여, 그룹암호화를 위한 공개키(pki) 및 비밀키(ski)를 생성하는 것;
상기 투표노드가 공개키를 상기 관제센터로 송신하는 것;
상기 관제센터가 블록체인에 상기 투표노드의 데이터를 업로드하는 것;
상기 투표노드가 제 1 스마트 컨트랙트 모듈에 접속하여, 자기를 식별하여 서명하는 것, 자기의 의사선택지를 작성하고 그룹암호화를 수행하는 것;
상기 제 1 스마트 컨트랙트 모듈이 투표결과를 상기 블록체인으로 업로드하는 것;
제 2 스마트 컨트랙트 모듈이 검표를 수행하는 것이 수행되고,
상기 제 1 스마트 컨트랙트 모듈이 상기 블록체인으로 업로드하는 정보에는, 투표실행시각(time_publish)이 포함되는 블록체인 전자투표시스템의 운용방법.
that the control center provides the same cryptographic base to each of the at least two voting nodes;
generating, by the voting node, a public key (pki) and a private key (ski) for group encryption using the encryption base;
transmitting the public key to the control center by the voting node;
uploading, by the control center, the data of the voting node to the block chain;
The voting node accesses the first smart contract module, identifies and signs itself, writes its own choice and performs group encryption;
uploading, by the first smart contract module, a voting result to the block chain;
It is performed that the second smart contract module performs the check,
The information uploaded to the block chain by the first smart contract module includes a voting execution time (time_publish).
제 10 항에 있어서,
상기 투표노드가 서명을 위한 공개키(pi, qi) 및 비밀키(si)를 생성하여, 상기 관제센터 및 상기 제 1 스마트 컨트랙트 모듈로 전송하는 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
The voting node generates a public key (pi, qi) and a private key (si) for signing, and transmits it to the control center and the first smart contract module. A method of operating a blockchain electronic voting system.
제 10 항에 있어서,
상기 제 1, 2 스마트 컨트랙트 모듈의 스마트 컨트랙트는, 상기 관제센터가 상기 블록체인에 업로드하는 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
The smart contract of the first and second smart contract modules is a method of operating a block chain electronic voting system that the control center uploads to the block chain.
제 10 항에 있어서,
상기 투표노드의 데이터에는, 상기 관제센터가 미리 보유하고 있는 각 투표노드의 식별정보가 포함되고,
상기 투표노드는, 상기 제 1 스마트 컨트랙트 모듈에게 자신이 식별정보를 전송하여,
상기 제 1 스마트 컨트랙트 모듈은, 두 개의 식별정보를 비교하여 투표노드를 확인하는 것이 수행되는, 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
The data of the voting node includes identification information of each voting node previously held by the control center,
The voting node transmits its identification information to the first smart contract module,
The first smart contract module, the operation method of the blockchain electronic voting system, in which the verification of the voting node by comparing the two identification information is performed.
제 10 항에 있어서,
상기 투표노드가 상기 제 1 스마트 컨트랙트 모듈에 접속하여, 상기 서명의 작업에 대한 영지식증명 및 상기 의사선택지의 작업에 대한 영지식 증명이 더 수행되는, 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
The method of operating a blockchain electronic voting system, wherein the voting node accesses the first smart contract module, and zero-knowledge proof for the signature work and zero-knowledge proof for the pseudo-choice work are further performed.
제 10 항에 있어서,
상기 의사선택지에는, 기권표를 식별하는 하나의 필드가 더 추가되는 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
The operation method of the block chain electronic voting system in which one field for identifying the abstention vote is further added to the decision option.
제 10 항에 있어서,
투표의 종료 후에, 개인식별정보(DIDi), 비밀키(si, ski)는 삭제되는 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
After the end of voting, personal identification information (DIDi) and secret key (si, ski) are deleted. How to operate a blockchain electronic voting system.
삭제delete 제 10 항에 있어서,
상기 제 2 스마트 컨트랙트 모듈은 상기 관제센터로부터 검표를 위한 비밀키(s0)를 입수하는 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
The second smart contract module is a method of operating a block chain electronic voting system to obtain a secret key (s0) for ticketing from the control center.
제 10 항에 있어서,
상기 제 2 스마트 컨트랙트 모듈은, 해당투표노드의 영지식 증명(proof_voteIDi)의 검증(ZKP_verify(proof_voteIDi)), 및 상기 그룹암호화의 영지식 증명(proof_voteENCi)의 검증(ZKP_verify(proof_voteENCi))을 수행하는 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
The second smart contract module is a block that performs verification (ZKP_verify(proof_voteIDi)) of the zero-knowledge proof (proof_voteIDi) of the corresponding voting node and verification of the zero-knowledge proof (proof_voteENCi) of the group encryption (ZKP_verify(proof_voteENCi)) How to operate the chain electronic voting system.
제 10 항에 있어서,
상기 제 2 스마트 컨트랙트 검표결과를 상기 블록체인이 업로드하는 블록체인 전자투표시스템의 운용방법.
11. The method of claim 10,
A method of operating a block chain electronic voting system in which the block chain uploads the second smart contract check result.
KR1020200171424A 2020-11-04 2020-12-09 Bolckchain e-voting system and manipulation method KR102430835B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/517,563 US20220141020A1 (en) 2020-11-04 2021-11-02 Blockchain e-voting system and operating method thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020200146369 2020-11-04
KR20200146369 2020-11-04
US202063112723P 2020-11-12 2020-11-12
US63/112,723 2020-11-12

Publications (2)

Publication Number Publication Date
KR20220060444A KR20220060444A (en) 2022-05-11
KR102430835B1 true KR102430835B1 (en) 2022-08-10

Family

ID=81607207

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200171424A KR102430835B1 (en) 2020-11-04 2020-12-09 Bolckchain e-voting system and manipulation method

Country Status (1)

Country Link
KR (1) KR102430835B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837169B1 (en) * 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102144614B1 (en) 2018-07-16 2020-08-13 한양대학교 산학협력단 Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method
KR101994455B1 (en) * 2018-07-27 2019-06-28 박기업 distributed network system operating a group for the nodes included in the system
KR20200085204A (en) * 2019-01-04 2020-07-14 이정훈 Verifiable Electronic Voting System
KR102187294B1 (en) * 2019-01-11 2020-12-07 서강대학교 산학협력단 System and method for providing secret electronic voting service based on blockchain

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837169B1 (en) * 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same

Also Published As

Publication number Publication date
KR20220060444A (en) 2022-05-11

Similar Documents

Publication Publication Date Title
CN107453865B (en) Multi-party data sharing method and system for protecting privacy of data sending source
US8145520B2 (en) Method and system for verifying election results
CN110855443B (en) Voting method and device based on block chain and zero knowledge proof
JP2019053269A (en) System and method for determining ballot of voter collected by electronic voting
US20220141020A1 (en) Blockchain e-voting system and operating method thereof
KR20200087913A (en) System and method for providing secret electronic voting service based on blockchain
CN112291062B (en) Voting method and device based on block chain
Wu et al. A blockchain-based network security mechanism for voting systems
CN108540447A (en) A kind of certification authentication method and system based on block chain
Abandah et al. Secure national electronic voting system.
KR100912532B1 (en) Internet Voting method for all participants having mutual attestation functions on trusted computing environment and system thereof
CN115147975B (en) Encryption network voting method based on block chain
RU2444063C1 (en) Voting method with high-reliability biometric protection of anonymity of voter
KR102430835B1 (en) Bolckchain e-voting system and manipulation method
JP2023098847A (en) Apparatus, method and computer program (selective audit process for privacy-preserving blockchain)
KR20200085204A (en) Verifiable Electronic Voting System
US10341314B2 (en) Method of security and verifiability of an electronic vote
RU2292082C2 (en) Voting system without forcing
Grontas et al. Blockchain, consensus, and cryptography in electronic voting
Vijayalakshmi et al. Secure online voting system in cloud
CN115174087A (en) Apparatus and system for zero knowledge proof with multi-party computation execution
Kohlas et al. Reasoning about public-key certification: On bindings between entities and public keys
Drakshayani et al. Online Voting System Using Blockchain
KR20200085586A (en) Secret electronic voting system and method
TWM579789U (en) Electronic contract signing device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right