KR102130699B1 - Block-chain based voting system operating method with distributed transaction pool - Google Patents

Block-chain based voting system operating method with distributed transaction pool Download PDF

Info

Publication number
KR102130699B1
KR102130699B1 KR1020180170998A KR20180170998A KR102130699B1 KR 102130699 B1 KR102130699 B1 KR 102130699B1 KR 1020180170998 A KR1020180170998 A KR 1020180170998A KR 20180170998 A KR20180170998 A KR 20180170998A KR 102130699 B1 KR102130699 B1 KR 102130699B1
Authority
KR
South Korea
Prior art keywords
blockchain
mining
voting system
electronic voting
pools
Prior art date
Application number
KR1020180170998A
Other languages
Korean (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 KR1020180170998A priority Critical patent/KR102130699B1/en
Application granted granted Critical
Publication of KR102130699B1 publication Critical patent/KR102130699B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L2209/38
    • 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

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Disclosed is an operation method of an electronic voting system based on blockchain with a distributed transaction pool. According to one embodiment of the present invention, the operation method may comprise the steps of: randomly allocating miners participating for verifying voting data to a plurality of mining pools (S1); mapping the plurality of mining pools to a plurality of distributed transaction pools in which transaction pools are distributed (S2); and setting mining scheduling for the plurality of mining pools in consideration of the number of contract codes generated in the distributed transaction pool and waiting time of the mining pool (S3).

Description

분산 트랜잭션 풀을 가지는 블록체인 기반 전자 투표 시스템의 운영 방법{Block-chain based voting system operating method with distributed transaction pool}Block-chain based voting system operating method with distributed transaction pool}

본 발명은 블록체인 기반 전자 투표 시스템에 관한 것으로, 보다 상세하게는 분산 트랜잭션 풀을 가지는 블록체인 기반 전자 투표 시스템의 운영 방법에 관한 것이다. The present invention relates to a blockchain-based electronic voting system, and more particularly, to a method of operating a blockchain-based electronic voting system having a distributed transaction pool.

최근 비트코인(Bitcoin) 및 이더(Ether)와 같은 블록체인 기반의 암호화폐에 대한 관심이 증가하고 있다. 네트워크의 모든 참여자가 동일한 공용 원장을 공유하기 때문에 암호화폐는 무결성을 보장하는 장점이 있다. Recently, interest in blockchain-based cryptocurrency such as Bitcoin and Ether is increasing. Cryptocurrency has the advantage of guaranteeing integrity because all participants in the network share the same public ledger.

블록체인은 많은 컴퓨터 사이의 트랜잭션을 기록하는데 사용되며, 모든 참여자가 공유하는 분산 공용 원장이다. 블록체인의 분산 원장은 정보 조작이 매우 어렵다는 장점이 있다. 이러한 장점을 바탕으로 다양한 분야에서 블록체인을 적용하기 위한 연구가 진행되고 있다. 전자 투표 시스템(electronic voting system)도 그 중 하나이다. Blockchain is used to record transactions between many computers and is a distributed public ledger shared by all participants. The distributed ledger of blockchain has the advantage that information manipulation is very difficult. Based on these advantages, research is being conducted to apply blockchain in various fields. An electronic voting system is one of them.

기존의 투표 시스템의 요구사항을 만족하는 전자 투표 시스템이 이더에서 구현된 경우가 있다. 하지만, 이더와 비슷한 환경에서 구현되었기에, 과도한 경쟁과 채굴 보상을 위한 마이닝 풀(mining pool)의 자원 낭비와 같은 문제가 발생한다.In some cases, electronic voting systems that meet the requirements of existing voting systems have been implemented in Ether. However, since it was implemented in an environment similar to Ether, problems such as excessive competition and waste of resources in the mining pool for mining compensation occur.

한국등록특허 제10-1908677호 (2018.10.10. 등록) - 블록체인을 이용한 전자투표 관리 시스템 및 방법Korean Registered Patent No. 10-1908677 (Registration on October 10, 2018)-Electronic voting management system and method using blockchain

본 발명은 트랜잭션 풀을 분산시키고 마이닝 풀을 개별적으로 매핑하여 경쟁 상태를 완화시킴으로써 마이닝 풀의 자원 낭비가 해소되는 블록체인 기반 전자 투표 시스템의 운영 방법을 제공하기 위한 것이다. The present invention is to provide a method of operating a blockchain-based electronic voting system in which resource waste of a mining pool is resolved by distributing transaction pools and individually mapping mining pools to alleviate the competitive state.

본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.Objects other than the present invention will be easily understood through the following description.

본 발명의 일 측면에 따르면, 블록체인 기반 전자 투표 시스템을 운영하는 방법으로서, 투표 데이터를 검증하기 위해 참여한 마이너들을 랜덤으로 복수의 마이닝 풀에 할당하는 단계(S1); 상기 복수의 마이닝 풀은 트랜잭션 풀이 분산된 복수의 분산 트랜잭션 풀에 각각 매핑되는 단계(S2); 상기 분산 트랜잭션 풀에서 생성된 계약 코드의 수와 상기 마이닝 풀의 대기 시간을 고려하여 상기 복수의 마이닝 풀에 대한 채굴 스케쥴링을 설정하는 단계(S3)를 포함하는 블록체인 기반 전자 투표 시스템의 운영 방법이 제공된다. According to an aspect of the present invention, a method of operating a blockchain-based electronic voting system, comprising: randomly allocating minors participating to verify voting data to a plurality of mining pools (S1); The plurality of mining pools are respectively mapped to a plurality of distributed transaction pools in which transaction pools are distributed (S2); A method for operating a blockchain-based electronic voting system, comprising setting up mining scheduling for the plurality of mining pools in consideration of the number of contract codes generated in the distributed transaction pool and the waiting time of the mining pool (S3). Is provided.

상기 단계 S1에서는 의사난수 생성(pseudo random number generator)의 암호학적 알고리즘을 사용하여 랜덤 할당을 수행할 수 있다.In step S1, random allocation may be performed using a cryptographic algorithm of a pseudo random number generator.

k는 생성한 난수, n은 마이닝 풀의 수인 경우, 신규 마이너가 할당될 마이닝 풀 번호 = (k mod n) + 1 일 수 있다.When k is a generated random number and n is a number of mining pools, a mining pool number to which a new miner is allocated = (k mod n) + 1.

상기 트랜잭션 풀은 거래 발생 지역의 특징에 따라 혹은 랜덤으로 분산될 수 있다,.The transaction pool may be distributed randomly or according to the characteristics of the region where the transaction occurs.

상기 계약 코드를 실행하는 수수료와 가스가 모든 계약 코드에 똑같이 적용되게 하는 단계(S4)를 더 포함할 수 있다.It may further include the step (S4) of causing the fee and gas for executing the contract code to be equally applied to all contract codes.

상기 마이너는 매핑된 상기 분산 트랜잭션 풀의 계약 코드를 선입선출(FIFO) 방식으로 블록으로 전송하는 단계(S5)를 더 포함할 수 있다.The minor may further include a step (S5) of transmitting the contract code of the mapped distributed transaction pool in a block in a first-in, first-out (FIFO) manner.

상기 블록체인 기반 전자 투표 시스템은 이더리움 플랫폼을 사용하고, 반허가 블록체인 방식을 사용할 수 있다.The blockchain-based electronic voting system can use the Ethereum platform and use a semi-permitted blockchain method.

상기 블록체인 기반 전자 투표 시스템은, 선거 준비 기간에, 관리자 노드에서 블록체인 네트워크를 구성하고, 유권자 목록을 작성하며 선거 내용을 입력하고 트랜잭션을 상기 블록체인 네트워크에 전송하여 선거 계약을 새로 생성하고 선거 코드를 획득하며, 상기 마이너를 대상으로 검증자를 모집하고, 유권자 노드에 상기 선거 코드를 전파하며, 투표 기간 동안에, 상기 유권자 노드는 상기 선거 코드를 이용하여 상기 마이너가 참여한 상기 블록체인 네트워크에 대해 유권자 등록 시도 및 투표 데이터 전파를 수행하고, 상기 마이너는 유권자 및 투표 데이터에 대해 검증하며, 종료시간이 경과하면, 상기 관리자 노드 및 상기 유권자 노드에서 상기 마이너에게 개표 결과를 요청하여 조회하고, 상기 관리자 노드에서는 선거 결과를 발표하고 개표 결과를 점검하는 프로세스를 수행할 수 있다. The blockchain-based electronic voting system, during the election preparation period, constructs a blockchain network at a manager node, creates a list of voters, enters election information, and sends a transaction to the blockchain network to create a new election contract and election Obtain a code, recruit validators for the minor, propagate the election code to a voter node, and during the voting period, the voter node uses the election code to vote for the blockchain network in which the minor participated Registration attempts and voting data propagation are performed, and the miner verifies the voter and voting data, and when the end time has elapsed, the manager node and the voter node request the inquiring result from the minor and inquire, and the manager node In can process the process of presenting the election results and checking the counting results.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features and advantages other than those described above will become apparent from the following drawings, claims and detailed description of the invention.

본 발명의 실시예에 따르면, 트랜잭션 풀을 분산시키고 마이닝 풀을 개별적으로 매핑하여 경쟁 상태를 완화시킴으로써 마이닝 풀의 자원 낭비가 해소되는 효과가 있다.According to an embodiment of the present invention, by distributing the transaction pool and individually mapping the mining pool, alleviating the competition state, there is an effect that the resource waste of the mining pool is eliminated.

도 1은 블록체인 기반 전자 투표 시스템의 구성도,
도 2는 전자 투표 시스템에서의 블록 생성 방식,
도 3은 현재 환경에서의 과도한 경쟁 상태의 채굴을 보여주는 도면,
도 4는 본 발명의 일 실시예에 따른 블록체인 기반 전자 투표 시스템에서의 분산 트랜잭션 풀 구성을 나타낸 도면,
도 5는 본 발명의 일 실시예에 따른 분산 트랜잭션 풀을 가지는 블록체인 기반 전자 투표 시스템의 운영 방법의 순서도.
1 is a block diagram of a blockchain-based electronic voting system,
2 is a block generation method in an electronic voting system,
3 is a view showing the mining of excessive competition in the current environment,
4 is a diagram showing the configuration of a distributed transaction pool in a blockchain-based electronic voting system according to an embodiment of the present invention;
5 is a flowchart of a method of operating a blockchain-based electronic voting system having a distributed transaction pool according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention can be applied to various changes and can have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected or connected to the other component, but other components may exist in the middle. It should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists in the middle.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components.

본 명세서에서 사용한 용어 는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used herein are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this specification, the terms "include" or "have" are intended to indicate that there are features, numbers, steps, operations, components, parts or combinations thereof described in the specification, and one or more other features. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.In addition, the components of the embodiments described with reference to each drawing are not limited to those embodiments, and may be implemented to be included in other embodiments within the scope of maintaining the technical spirit of the present invention. Although the description is omitted, it is natural that a plurality of embodiments may be reimplemented as one integrated embodiment.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일하거나 관련된 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. In addition, in the description with reference to the accompanying drawings, the same components, regardless of reference numerals, are assigned the same or related reference numerals, and redundant descriptions thereof will be omitted. In the description of the present invention, when it is determined that detailed descriptions of related known technologies may unnecessarily obscure the subject matter of the present invention, detailed descriptions thereof will be omitted.

또한, 명세서에 기재된 "…부", "…유닛", "…모듈", "…기" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as “…unit”, “…unit”, “…module”, and “…group” described in the specification mean a unit that processes at least one function or operation, which is hardware or software or hardware and software. It can be implemented as a combination of.

도 1은 블록체인 기반 전자 투표 시스템의 구성도이고, 도 2는 전자 투표 시스템에서의 블록 생성 방식이다. 1 is a block diagram of a blockchain-based electronic voting system, and FIG. 2 is a block generation method in an electronic voting system.

본 발명의 일 실시예에 따른 블록체인 기반 전자 투표 시스템(100)은 이더리움(Ethereum) 플랫폼을 사용한다. 이더리움은 블록체인을 기반으로 스마트 계약(smart contract)을 구현하는 분산 컴퓨팅 플랫폼이다. 이더리움에서, 암호화폐 이더(Ether)는 거래 정보로 계약 코드(contract code)의 내용을 사용하는 예이다. 이더에서 마이너(miner)는 계약 코드를 실행하고 블록에 이를 포함시키는데, 계약 코드를 실행하는 데에 가스(gas)가 요구된다. 계약 코드는 전자 투표 시스템 및 실물 자산 등록과 같은 다양한 응용 프로그램에서 컨텐츠를 기반으로 적용할 수 있고, 무결성을 보장한다. The blockchain-based electronic voting system 100 according to an embodiment of the present invention uses an Ethereum platform. Ethereum is a distributed computing platform that implements smart contracts based on blockchain. In Ethereum, cryptocurrency Ether is an example of using the contents of a contract code as transaction information. In Ether, the miner executes the contract code and includes it in a block, which requires gas to execute the contract code. The contract code can be applied based on content in various applications such as electronic voting systems and physical asset registration, and ensures integrity.

블록체인 기반 전자 투표 시스템(100)은 프로그래밍 코드 형태의 트랜잭션을 생성하여 블록체인에 저장하는 방식이 필요하므로, 필요시마다 새로운 분산 어플리케이션을 만들 수 있는 개별 블록체인이 활용된다. 또한, 반허가 블록체인 방식을 사용하여 검증자에 대한 정보를 공개하고 법적근거를 확보하는 동시에 사용자(투표자)에 대한 익명성을 보호하는 방식을 활용할 수 있다. Since the blockchain-based electronic voting system 100 needs a method of generating a transaction in the form of programming code and storing it in the blockchain, individual blockchains that can create new distributed applications are utilized whenever necessary. In addition, it is possible to utilize the method of disclosing information on the verifier and securing legal grounds while protecting the anonymity of the user (voteer) by using the anti-permission blockchain method.

블록체인 기반 전자 투표 시스템(100)에서 유권자는 자율적으로 참여가 가능하지만 검증자 노드는 사전에 자발적 참여 신청을 받아 신원 확인 후 블록체인 네트워크에 참여토록 할 수 있다. 자발적 참여자가 없을 것을 대비하여 중앙기관(선관위)에서는 기본적으로 한 개의 노드로 참여할 수 있다. 따라서, 검증자 노드는 자발적 참여자 수가 n이었을 경우 총 n+1이 될 것이다. 이후 블록체인에 부정행위가 감지된다면 해당 검증자 노드는 공격행위를 한 것으로 간주하고 법적 제재를 당할 것이다. 하지만, 블록체인의 작업증명이 있는 한 부정행위는 무산되고 투표 시스템은 안정적으로 지속될 수 있다. In the blockchain-based electronic voting system 100, the voters can participate autonomously, but the validator node may receive a voluntary participation request in advance and confirm the identity to participate in the blockchain network. In case there is no voluntary participant, the central institution (the NEC) can basically participate as one node. Therefore, if the number of voluntary participants is n, the validator node will be n+1 in total. Subsequently, if fraudulent activity is detected on the blockchain, the validator node will be deemed to have attacked and will be subject to legal sanction. However, as long as there is proof of operation of the blockchain, the fraudulent activity will be canceled and the voting system can be maintained stably.

블록체인 네트워크에서 거래를 생성할 때 계약을 생성하게 되면, 화폐의 전송이 아닌 프로그래밍 코드 형태의 데이터를 전송할 수 있다. 이더리움 플랫폼은 해당 코드를 실행할 수 있는 컴파일러가 내장되어 있으므로, 계약을 사용하면 블록체인 기술을 활용하는 프로그램을 만들 수 있다. 계약 프로그래밍 코드는 블록체인의 거래 데이터와 동일하므로 해당 데이터를 임의로 조작할 수 없다. 따라서 데이터베이스 역할과 함께 프로그래밍 코드의 역할도 안정성이 담보될 수 있다. When creating a transaction when creating a transaction on the blockchain network, data in the form of programming code can be transmitted, not the transfer of money. The Ethereum platform has a built-in compiler that can execute the code, so contracts can be used to create programs that utilize blockchain technology. The contract programming code is the same as the blockchain's transaction data, so you cannot manipulate the data arbitrarily. Therefore, the role of the programming code as well as the role of the database can ensure stability.

본 실시예에 따른 블록체인 기반 전자 투표 시스템(100)은 유권자 등록 모듈(110), 선거 등록 모듈(120), 투표 모듈(130), 집계 모듈(140), 개표 모듈(150)을 포함한다. The blockchain-based electronic voting system 100 according to the present embodiment includes a voter registration module 110, an election registration module 120, a voting module 130, an aggregation module 140, and a counting module 150.

유권자 등록 모듈(110)은 유권자 노드로부터 유권자의 개인고유식별코드가 수신되면 키 데이터(공개키/비밀키)를 생성한다. 이 경우 공개키가 중복되는 경우에는 등록에 실패하고, 공개키가 중복되지 않는 경우 해당 공개키를 저장하고 등록에 성공함으로써 유권자 등록을 완료할 수 있다. The voter registration module 110 generates key data (public key/secret key) when a voter's personal unique identification code is received from a voter node. In this case, if the public key overlaps, registration fails, and if the public key does not overlap, the voter registration can be completed by saving the public key and registering successfully.

이러한 절차를 통해 관리자는 투표권을 부여할 유권자 리스트를 확인하여 권한이 있는 유권자가 투표에 참여하도록 유도하고, 유권자는 투표 전 유권자 등록을 마친 후 신분확인 절차를 마치고 투표권을 행사하게 된다. Through this process, the manager checks the list of voters to be given voting rights to induce authorized voters to participate in the voting, and the voters complete the identification process before voting and then exercise their voting rights.

관리자는 블록체인에 유권자 데이터베이스로 사용할 계약을 생성한다. 계약은 유권자 코드를 저장하는 메소드, 조회하는 메소드, 등록된 총 유권자 수를 조회하는 메소드로 구성될 수 있다. 선거 코드에 의해 참조되는 연관 배열을 만들고, 해당 선거 코드마다 유권자 코드와 등록 유권자 수를 구조체로 만들어 3차원 배열이 되도록 할 수 있다. 사용자는 유권자 등록을 하게 되면 중복 및 조건 검사를 하고, 이상이 없을 경우 해당 계약에 유전자 코드를 저장하게 된다. 이후 투표 시 유권자 등록 계약에 유권자 코드가 존재하게 되면 투표권이 있는 것으로 간주하게 된다. The manager creates a contract to be used as a voter database on the blockchain. The contract may consist of a method for storing the voter code, a method for querying, and a method for querying the total number of registered voters. You can create an associative array referenced by the election code, and make a three-dimensional array of voter codes and the number of registered voters for each election code. When the user registers to vote, the user checks for duplicates and conditions, and if there is no abnormality, the genetic code is stored in the contract. Subsequently, if a voter code exists in the voter registration agreement at the time of voting, it is deemed to have a vote.

선거 등록 모듈(120)은 선거 내용 및 양식을 입력받아 선거 계약을 블록체인에 생성함으로써 선거를 저장한다. 그리고 선거 코드를 생성하고, 해당 선거 코드를 전파함으로써 선거 등록을 완료한다. The election registration module 120 stores elections by receiving election content and forms and generating election contracts on the blockchain. Then, the election registration is completed by generating an election code and spreading the corresponding election code.

선가의 제목과 항목, 종료시간을 저장할 수 있는 문자열 변수를 만들고 유권자 코드로 참조되는 투표값이 저장된 연관 배열이 생성될 수 있다. 블록체인의 데이터는 모두에게 공개되어 있으므로, 유권자 코드가 어떠한 값을 저장하고 있는지 유추할 수 없도록 유권자 코드를 랜덤 코드 값으로 대체시켜 줄 수 있다. A string variable that can store the title, item, and end time of the author can be created, and an associative array containing the vote value referenced by the voter code can be created. Since the blockchain data is open to all, it is possible to replace the voter code with a random code value so that the value of the voter code cannot be inferred.

투표 모듈(130)은 선거 코드가 입력되면 현재 시간이 종료시간인지 여부를 판단한다. 종료시간 이전이라면 유권자 등록 모듈(110)을 통해 유권자 등록이 이루어지게 하고, 유권자 등록이 완료된 경우 투표용지를 로드한다. 유권자 노드에서 기표 입력이 이루어지만, 공개키를 저장하고 항목 카운트를 증가시켜 투표가 성공된 것으로 판단한다. 종료시간이 경과하였거나 유권자 등록에 실패한 경우 투표가 실패한 것으로 판단한다. When the election code is input, the voting module 130 determines whether the current time is the end time. If it is before the end time, voter registration is made through the voter registration module 110, and when the voter registration is completed, a ballot is loaded. Voter input is made at the voter node, but it is determined that the voting was successful by storing the public key and increasing the item count. If the end time has elapsed or the voter registration fails, it is determined that the vote has failed.

집계 모듈(140)은 선거 코드가 입력되면 블록시간이 종료시간 이전인지를 판단한다. 종료시간 이전이라면 투표 카운트를 진행하여 현재 투표량을 계산한다. 블록시간이 종료시간 이후라면 집계를 종료한다. When the election code is input, the aggregation module 140 determines whether the block time is before the end time. If it is before the end time, the current count is calculated by counting the votes. If the block time is after the end time, counting ends.

개표 모듈(150)은 선거 코드가 입력되면 블록시간이 종료시간 이전인지를 판단한다. 종료시간 이전이라면 투표 진행 중으로 판단하며, 종료시간 이후라면 투표가 종료되었는 바 투표를 카운트하여 항목별 득표수/득표율을 계산하고 개표를 종료할 수 있다. When the election code is input, the counting module 150 determines whether the block time is before the end time. If it is before the end time, it is judged that voting is in progress. If it is after the end time, the number of votes/number of votes per item can be calculated by counting the number of votes.

본 실시예에서 유권자는 블록체인 네트워크에 접속하여 유권자 등록 계약과 선거 계약을 액세스하여 언제 어디서든지 온라인으로 사용할 수 있는 탈 중앙집중식 전자 투표 시스템을 사용해 투표하고 개표 값을 조회할 수 있다. In this embodiment, the voter can access the blockchain network to access the voter registration agreement and the election agreement to vote using a decentralized electronic voting system that can be used online anytime, anywhere, and query the count value.

전자 투표 진행 과정은 다음과 같다. The electronic voting process is as follows.

선거 준비 기간에 관리자 노드는 블록체인 네트워크를 구성한다. 유권자 목록을 작성하고, 선거 내용을 입력하고 트랜잭션을 블록체인 네트워크에 전송하게 되면 선거 계약이 새로 생성되고, 선거 코드를 획득한다. During the election preparation period, the manager node forms a blockchain network. When the voter list is created, the election information is entered, and the transaction is transmitted to the blockchain network, a new election contract is generated and an election code is obtained.

마이너를 대상으로 검증자를 모집한다. 참여를 원하는 마이너는 검증자 허가를 요청하고 관리자 노드에서는 검증자 허가를 승인한다. 그리고 블록체인 네트워크에 참여하고, 유권자 노드에 선거 코드를 전파한다. We recruit validators for minors. Miners who want to participate will request the verifier permission, and the manager node will approve the verifier permission. It participates in the blockchain network and spreads the election code to voter nodes.

투표 기간 동안 유권자 노드는 선거 코드를 이용하여 마이너가 참여한 블록체인 네트워크에 대해 유권자 등록을 시도하고 마이너는 이에 대한 데이터를 검증한다. 그리고 유권자 노드에서 투표 데이터를 전파하고, 마이너를 이를 검증한다. 투표 데이터는 유권자 코드와 함께 트랜잭션을 만들어 선거 계약으로 전송된다. 선거 계약은 메소드를 호출하여 유권자 코드를 연관 배열에 매핑시켜 투표 데이터를 저장한다. During the voting period, the voter node attempts to register a voter against the blockchain network in which the miner participates using the election code, and the miner verifies the data. Then, the voter node propagates the voting data, and the miner verifies it. The voting data is sent to the election contract by creating a transaction with the voter code. The election contract stores the voting data by calling the method to map the voter code to an associative array.

종료시간이 경과하면, 관리자 노드 및/또는 유권자 노드에서 마이너에게 개표 결과를 요청하고, 조회된 개표 결과를 관리자 노드 및/또는 유권자 노드로 보낼 수 있다. When the end time elapses, the administrator node and/or the voter node may request a counting result from the minor and send the inquired counting result to the administrator node and/or the voter node.

그리고 관리자 노드에서는 선거 결과를 발표하고, 개표 결과를 점검함으로써 개표 및 투표를 종료할 수 있다. And the manager node can end the counting and voting by announcing the election results and checking the counting results.

기존 투표 방법에는 종이 투표와 전자 투표 시스템이 포함된다. 블록체인 기반 전자 투표 시스템은 위치와 무관하며, 종이 투표와 비교할 때 투표 기간 동안 경제적이다. 또한, 초기 비용이 낮고, 투표 결과의 신뢰도가 기존 전자 투표 시스템보다 높다. 세 가지 투표 방법을 비교하면 표 1과 같다. Existing voting methods include paper voting and electronic voting systems. Blockchain-based electronic voting systems are location independent and economical during the voting period compared to paper voting. In addition, the initial cost is low, and the reliability of the voting results is higher than that of the existing electronic voting system. Table 1 compares the three voting methods.

Figure 112018131190941-pat00001
Figure 112018131190941-pat00001

본 실시예에 따른 블록체인 기반 전자 투표 시스템(100)은 표 2와 같은 요구사항이 충족될 필요가 있다. Blockchain-based electronic voting system 100 according to this embodiment needs to meet the requirements shown in Table 2.

Figure 112018131190941-pat00002
Figure 112018131190941-pat00002

도 2를 참조하면, (a)의 경우에는 전자 투표 시스템의 블록체인 네트워크에 참여하는 마이너가 속하는 모든 마이닝 풀이 매번 불필요한 블록을 생성하기 때문에 불필요한 자원이 낭비될 수 있다. Referring to FIG. 2, in the case of (a), unnecessary resources may be wasted because all mining pools belonging to the miners participating in the blockchain network of the electronic voting system generate unnecessary blocks each time.

따라서, (b)와 같이 데이터가 생성되면 블록을 생성하도록 모든 마이닝 풀이 변경된다. 데이터가 생성되지 않으면 대기 상태로 전환되고, 자원 소비가 줄어들 수 있다. Therefore, when data is generated as shown in (b), all mining pools are changed to generate blocks. If no data is generated, it is switched to the standby state and resource consumption may be reduced.

하지만, 이 경우에도 컴퓨팅 파워, 저장 용량 및 네트워크 사용 외에도 블록 충돌의 성능 효율성이 문제될 수 있다. 블록체인 기반 전자 투표 시스템(100)은 이더의 채굴 환경과 유사한 채굴 환경을 가정하고 있다. 하지만, 이더는 채굴 보상을 위한 마이닝 풀의 과도한 경쟁 상태에 있고, 성공적으로 채굴된 하나의 마이닝 풀만이 그 노력으로 인정될 수 있다. However, in this case, in addition to computing power, storage capacity, and network use, performance efficiency of block collision may be a problem. The blockchain-based electronic voting system 100 assumes a mining environment similar to that of Ether. However, Ether is in an excessively competitive state of mining pools for mining rewards, and only one successfully mined pool can be recognized for its efforts.

도 3은 현재 환경에서의 과도한 경쟁 상태의 채굴을 보여주는 도면이다. 블록체인 기반 전자 투표 시스템(100)에 적용하면, 마이닝 풀의 자원이 낭비된다. 그리고 현재 환경에서 블록마다 포함될 수 있는 계약 코드(선거 코드)에는 한계가 있다(문제점 1). 3 is a view showing the mining of excessive competition in the current environment. When applied to the blockchain-based electronic voting system 100, resources of the mining pool are wasted. And in the current environment, there is a limit to the contract code (election code) that can be included for each block (problem 1).

마이너는 수수료에 따라 블록에 포함시킬 계약 코드를 선택하고, 선택되지 않은 계약 코드는 이후에 선택될 때까지 체인에 포함되지 않는다. 즉, 유권자가 자신의 투표가 적용되었음을 확인하는 데 상당한 시간이 걸릴 수 있다. 이는 유권자의 전자 투표 시스템 가용성(availability)에 위배된다(문제점 2). The miner selects the contract code to be included in the block according to the fee, and the unselected contract code is not included in the chain until later selected. In other words, it can take considerable time for voters to confirm that their vote has been applied. This violates voter electronic voting system availability (problem 2).

도 4는 본 발명의 일 실시예에 따른 블록체인 기반 전자 투표 시스템에서의 분산 트랜잭션 풀 구성을 나타낸 도면이며, 도 5는 본 발명의 일 실시예에 따른 분산 트랜잭션 풀을 가지는 블록체인 기반 전자 투표 시스템의 운영 방법의 순서도이다.4 is a diagram illustrating the configuration of a distributed transaction pool in a blockchain-based electronic voting system according to an embodiment of the present invention, and FIG. 5 is a blockchain-based electronic voting system having a distributed transaction pool according to an embodiment of the present invention It is a flowchart of the operating method.

본 발명의 일 실시예에 따른 블록체인 기반 전자 투표 시스템(100)에서는 마이닝 풀의 자원 낭비를 감소시키기 위해 분산 트랜잭션 풀(distributed transaction pool)을 적용한다. In the blockchain-based electronic voting system 100 according to an embodiment of the present invention, a distributed transaction pool is applied to reduce resource waste in the mining pool.

도 3에 도시된 채굴 환경에서의 문제점 1은 생성된 데이터가 하나의 트랜잭션 풀에 포함되어 있고, 모든 마이닝 풀이 채굴 성공을 위해 경쟁한다는 것이다. 이를 해결하기 위해 트랜잭션 풀을 분산시키고, 각 마이닝 풀을 개별적으로 매핑하여 경쟁 상태를 완화할 수 있다. Problem 1 in the mining environment shown in FIG. 3 is that the generated data is included in one transaction pool, and all mining pools compete for mining success. To solve this, the transaction pool can be distributed, and each mining pool can be individually mapped to alleviate the competition.

도 4에는 트랜잭션 풀이 분산되고 마이닝 풀이 매핑되는 매핑되는 분산 트랜잭션 풀이 도시되어 있다. 4 shows a mapped distributed transaction pool in which transaction pools are distributed and mining pools are mapped.

투표 결과의 신뢰성을 높이기 위해 투표 데이터를 검증하기 위해 참여한 모든 마이너가 무작위로 마이닝 풀에 배정된다(S1). In order to increase the reliability of voting results, all miners who participated to verify the voting data are randomly assigned to the mining pool (S1).

이전의 블록체인 기반 전자 투표 시스템 연구들에서는 기존 채굴 환경을 이용하여 진행하였다. 기존 채굴 환경은 채굴 보상을 얻고자 하는 마이너들이 하나의 블록을 생성하기 위해 과다 경쟁을 수행하는 환경으로, 마이너들은 자신이 원하는 마이닝 풀에서 채굴을 수행하였다. 과다 경쟁에서 채굴에 성공한 한 마이닝 풀 외의 모든 마이닝 풀들은 자원을 낭비한다. 전자 투표 시스템의 트랜잭션 수는 블록체인을 이용한 거래 환경의 트랜잭션 수에 비해 적으며, 더 작은 규모의 마이닝 풀이 채굴을 수행할 수 있다.Previous blockchain-based e-voting system studies used existing mining environments. The existing mining environment is an environment in which miners who want to obtain mining rewards are competing excessively to create one block, and miners performed mining in their desired mining pool. All mining pools other than mining pools that successfully mined in excessive competition waste resources. The number of transactions in the electronic voting system is small compared to the number of transactions in the transaction environment using blockchain, and a smaller mining pool can perform mining.

따라서, 본 실시예에서는 새로운 마이너가 추가되면, 기존에 정의된 마이닝 풀들 중 하나에 할당되도록 하며, 마이너는 자신이 어느 마이닝 풀에 속하는지 알 수 없다. Therefore, in this embodiment, when a new miner is added, it is assigned to one of the previously defined mining pools, and the miner does not know which mining pool he belongs to.

랜덤 할당을 위해 의사난수 생성(pseudo random number generator) 등의 암호학적 알고리즘을 사용할 수 있다. 예를 들면, k는 생성한 난수, n은 마이닝 풀의 수인 경우 새로운 마이너가 할당될 마이닝 풀 번호 = (k mod n) + 1 이다. For random allocation, a cryptographic algorithm such as a pseudo random number generator can be used. For example, if k is a random number generated and n is the number of mining pools, mining pool number = (k mod n) + 1 to which a new miner is assigned.

암호학적 알고리즘의 비예측성, 비중복성 특징을 통해 마이너들은 랜덤하고 균일하게 마이닝 풀들에 할당될 수 있다. Through the non-predictability and non-redundancy features of cryptographic algorithms, miners can be randomly and uniformly assigned to mining pools.

각각의 마이닝 풀은 분산된 트랜잭션 풀에 매핑된다(S2). 트랜잭션 풀은 특징(발생 지역 등)에 따라 또는 랜덤으로 분산시킬 수 있다. 마이닝 풀은 독립적인 트랜잭션 풀에 연결되므로, 독립적인 채굴을 수행한다. Each mining pool is mapped to a distributed transaction pool (S2). Transaction pools can be distributed randomly or according to characteristics (eg, region of origin). Since the mining pool is connected to an independent transaction pool, independent mining is performed.

마이닝 풀은 랜덤으로 구성되었기 때문에 특징을 가지지 않는다. 따라서, 트랜잭션 풀이 지역 등의 특성을 가지더라도 마이닝 풀 - 트랜잭션 풀 매핑 후의 채굴 신뢰성을 보장할 수 있다. 이는 마이닝 풀과 트랜잭션 풀 간의 매핑이 투표 시스템 구현자가 선호하는 방법으로 수행될 수 있음을 의미한다. Since the mining pool is randomly constructed, it has no characteristics. Therefore, even if the transaction pool has characteristics such as region, it is possible to guarantee mining reliability after mining pool to transaction pool mapping. This means that the mapping between mining pool and transaction pool can be done in a way preferred by the voting system implementer.

마이닝 풀과 트랜잭션 풀이 분산되더라도 채굴 결과로 생성되는 블록의 체인은 하나로 유지해야 한다. 즉, 채굴에서 생성된 블록은 단일 체인에 연결되어야 한다. 이로 인해 마이닝 풀들 간의 채굴 스케쥴링이 필요하다. 이는 엉클(uncle) 블록 방지를 위함이다. Even if the mining pool and transaction pool are distributed, the chain of blocks generated as a result of mining must be kept as one. That is, blocks generated from mining must be connected to a single chain. For this reason, it is necessary to schedule mining between mining pools. This is to prevent uncle block.

따라서, 채굴은 트랜잭션 풀에서 생성된 계약 코드 수(트랜잭션 수)와 마이닝 풀당 대기 시간(트랜잭션의 채굴이 수행되지 않은 시간)을 고려하여 스케쥴될 수 있다(S3). Therefore, mining may be scheduled in consideration of the number of contract codes generated in the transaction pool (number of transactions) and the waiting time per mining pool (time when mining of the transaction is not performed) (S3).

문제점 2는 블록 당 최대 계약 코드의 한계이다. 이를 해결하기 위해 계약 코드를 실행하는 수수료와 가스가 모든 계약 코드에 똑같이 적용되고(S4), 마이너는 트랜잭션 풀의 계약 코드를 선입 선출(FIFO) 방식으로 블록으로 전송할 수 있다(S5). Problem 2 is the limit of the maximum contract code per block. To solve this, the fee and gas for executing the contract code are equally applied to all contract codes (S4), and the minor can transmit the contract code of the transaction pool in a block in a first-in, first-out (FIFO) manner (S5).

본 실시예에 따른 분산 트랜잭션 풀을 가지는 블록체인 기반 전자 투표 시스템에서는 채굴 자원 소비 측면에서 효율성이 향상된다. 이전에는 N개의 마이닝 풀이 채굴에 참여할 때 N-1 개의 풀에서 소비한 자원이 낭비된다. 하지만, 본 실시예에 따를 때 모든 마이닝 풀이 매핑되면 자원이 효율적으로 할당될 수 있다. In a blockchain-based electronic voting system having a distributed transaction pool according to the present embodiment, efficiency is improved in terms of mining resource consumption. Previously, when N mining pools participated in mining, resources consumed by N-1 pools were wasted. However, when all mining pools are mapped according to the present embodiment, resources can be efficiently allocated.

그리고 높은 가용성을 보정할 수 있다. 모든 계약 코드에 대해 시간에 따른 우선순위를 적용함으로써 장기간 특정 계약 코드가 블록에 포함되지 않는 것을 방지할 수 있다. 또한, 채굴 스케쥴링을 통해 특정 마이닝 풀의 우선순위가 낮아지는 것을 방지할 수 있다. And high availability can be corrected. By applying priority over time to all contract codes, it is possible to prevent a specific contract code from being included in a block for a long time. In addition, it is possible to prevent the mining pool from being lowered in priority through mining scheduling.

전술한 분산 트랜잭션 풀을 가지는 블록체인 기반 전자 투표 시스템 운영 방법은 디지털 처리 장치에 내장된 소프트웨어 프로그램 등에 의해 시계열적 순서에 따른 자동화된 절차로 수행될 수도 있음은 당연하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 상기 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체 등을 포함한다.It is natural that the above-described method of operating a blockchain-based electronic voting system having a distributed transaction pool may be performed by an automated procedure according to a time series sequence by a software program embedded in a digital processing device. The codes and code segments constituting the program can be easily inferred by a computer programmer in the field. In addition, the program is stored in a computer readable media, and read and executed by a computer to implement the method. The information storage medium includes a magnetic recording medium, an optical recording medium, and the like.

상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to embodiments of the present invention, those skilled in the art variously modify the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. And can be changed.

100: 블록체인 기반 전자 투표 시스템
110: 유권자 등록 모듈 120: 선거 등록 모듈
130: 투표 모듈 140: 집계 모듈
150: 개표 모듈
100: Blockchain based electronic voting system
110: Voter Registration Module 120: Election Registration Module
130: voting module 140: aggregation module
150: counting module

Claims (8)

블록체인 기반 전자 투표 시스템을 운영하는 방법으로서,
투표 데이터를 검증하기 위해 참여한 마이너들을 랜덤으로 복수의 마이닝 풀에 할당하는 단계(S1);
상기 복수의 마이닝 풀은 트랜잭션 풀이 분산된 복수의 분산 트랜잭션 풀에 각각 매핑되는 단계(S2);
상기 분산 트랜잭션 풀에서 생성된 계약 코드의 수와 상기 마이닝 풀의 대기 시간을 고려하여 상기 복수의 마이닝 풀에 대한 채굴 스케쥴링을 설정하는 단계(S3);
를 포함하는 블록체인 기반 전자 투표 시스템의 운영 방법.
As a method of operating a blockchain-based electronic voting system,
Randomly allocating miners who participated to verify the voting data to a plurality of mining pools (S1);
The plurality of mining pools are respectively mapped to a plurality of distributed transaction pools in which transaction pools are distributed (S2);
Setting mining scheduling for the plurality of mining pools in consideration of the number of contract codes generated in the distributed transaction pool and the waiting time of the mining pool (S3);
Method of operating a blockchain-based electronic voting system comprising a.
제1항에 있어서,
상기 단계 S1에서는,
의사난수 생성(pseudo random number generator)의 암호학적 알고리즘을 사용하여 랜덤 할당을 수행하는 것을 특징으로 하는 블록체인 기반 전자 투표 시스템의 운영 방법.
According to claim 1,
In step S1,
A method of operating a blockchain-based electronic voting system, characterized in that random allocation is performed using a cryptographic algorithm of a pseudo random number generator.
제2항에 있어서,
k는 생성한 난수, n은 마이닝 풀의 수인 경우, 신규 마이너가 할당될 마이닝 풀 번호 = (k mod n) + 1 인 것을 특징으로 하는 블록체인 기반 전자 투표 시스템의 운영 방법.
According to claim 2,
When k is a generated random number and n is a number of mining pools, a mining pool number to be assigned a new miner = (k mod n) + 1 is a method of operating a blockchain-based electronic voting system.
제1항에 있어서,
상기 트랜잭션 풀은 거래 발생 지역의 특징에 따라 혹은 랜덤으로 분산된 것을 특징으로 하는 블록체인 기반 전자 투표 시스템의 운영 방법.
According to claim 1,
The transaction pool is a method of operating a blockchain-based electronic voting system, characterized in that it is distributed randomly or according to the characteristics of the region where the transaction occurs.
제1항에 있어서,
상기 계약 코드를 실행하는 수수료와 가스가 모든 계약 코드에 똑같이 적용되게 하는 단계(S4)를 더 포함하는 블록체인 기반 전자 투표 시스템의 운영 방법.
According to claim 1,
Method of operating a blockchain-based electronic voting system further comprising the step (S4) of the fee and gas for executing the contract code equally applied to all contract codes.
제1항에 있어서,
상기 마이너는 매핑된 상기 분산 트랜잭션 풀의 계약 코드를 선입선출(FIFO) 방식으로 블록으로 전송하는 단계(S5)를 더 포함하는 블록체인 기반 전자 투표 시스템의 운영 방법.
According to claim 1,
The minor is a method of operating a blockchain-based electronic voting system further comprising the step of transmitting the mapped contract code of the distributed transaction pool as a block in a first-in first-out (FIFO) method.
제1항에 있어서,
상기 블록체인 기반 전자 투표 시스템은 이더리움 플랫폼을 사용하고, 반허가 블록체인 방식을 사용한 것을 특징으로 하는 블록체인 기반 전자 투표 시스템의 운영 방법.
According to claim 1,
The blockchain-based electronic voting system uses an Ethereum platform and uses a semi-permitted blockchain method.
제1항에 있어서,
상기 블록체인 기반 전자 투표 시스템은,
선거 준비 기간에, 관리자 노드에서 블록체인 네트워크를 구성하고, 유권자 목록을 작성하며 선거 내용을 입력하고 트랜잭션을 상기 블록체인 네트워크에 전송하여 선거 계약을 새로 생성하고 선거 코드를 획득하며,
상기 마이너를 대상으로 검증자를 모집하고, 유권자 노드에 상기 선거 코드를 전파하며,
투표 기간 동안에, 상기 유권자 노드는 상기 선거 코드를 이용하여 상기 마이너가 참여한 상기 블록체인 네트워크에 대해 유권자 등록 시도 및 투표 데이터 전파를 수행하고, 상기 마이너는 유권자 및 투표 데이터에 대해 검증하며,
종료시간이 경과하면, 상기 관리자 노드 및 상기 유권자 노드에서 상기 마이너에게 개표 결과를 요청하여 조회하고, 상기 관리자 노드에서는 선거 결과를 발표하고 개표 결과를 점검하는 프로세스를 수행하는 것을 특징으로 하는 블록체인 기반 전자 투표 시스템의 운영 방법.
According to claim 1,
The blockchain-based electronic voting system,
During the election preparation period, the administrator node constructs a blockchain network, creates a list of voters, enters elections, and sends transactions to the blockchain network to create new election contracts and obtain election codes,
Recruiting validators for the minors, spreading the election code to voter nodes,
During the voting period, the voter node uses the election code to perform voter registration attempts and vote data propagation to the blockchain network in which the minor participates, and the miner verifies voter and vote data,
When the end time has elapsed, the manager node and the voter node request and query the counting result from the minor, and the manager node announces the election result and performs the process of checking the counting result. How the electronic voting system works.
KR1020180170998A 2018-12-27 2018-12-27 Block-chain based voting system operating method with distributed transaction pool KR102130699B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180170998A KR102130699B1 (en) 2018-12-27 2018-12-27 Block-chain based voting system operating method with distributed transaction pool

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180170998A KR102130699B1 (en) 2018-12-27 2018-12-27 Block-chain based voting system operating method with distributed transaction pool

Publications (1)

Publication Number Publication Date
KR102130699B1 true KR102130699B1 (en) 2020-07-06

Family

ID=71571096

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180170998A KR102130699B1 (en) 2018-12-27 2018-12-27 Block-chain based voting system operating method with distributed transaction pool

Country Status (1)

Country Link
KR (1) KR102130699B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022114436A1 (en) * 2020-11-24 2022-06-02 제주대학교 산학협력단 System and method for controlling traffic of blockchain transaction data

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160012424A1 (en) * 2014-07-11 2016-01-14 Ribbit.me! USA Inc. Distributed ledger protocol to incentivize transactional and non-transactional commerce
KR20180006338A (en) * 2016-07-08 2018-01-17 김만이 Method and system for managing payment and document computing using identifiable tags and artificial intelligence
KR101827373B1 (en) * 2017-08-29 2018-02-08 주식회사 더블체인 Block window module having agreement algorithm for limiting mining, managing server and virtual money exchange system and method
KR101837169B1 (en) * 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same
KR101908677B1 (en) 2017-09-29 2018-10-16 숭실대학교산학협력단 System and method for managementing electronic vote using blockchain
KR20180115727A (en) * 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 Block Chain Implementation Counting System and Method for Use in Security Voting and Distribution
KR20180131960A (en) * 2018-04-20 2018-12-11 주식회사 시그마체인 Method of verifying block based on block chain

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160012424A1 (en) * 2014-07-11 2016-01-14 Ribbit.me! USA Inc. Distributed ledger protocol to incentivize transactional and non-transactional commerce
KR20180115727A (en) * 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 Block Chain Implementation Counting System and Method for Use in Security Voting and Distribution
KR20180006338A (en) * 2016-07-08 2018-01-17 김만이 Method and system for managing payment and document computing using identifiable tags and artificial intelligence
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
KR101827373B1 (en) * 2017-08-29 2018-02-08 주식회사 더블체인 Block window module having agreement algorithm for limiting mining, managing server and virtual money exchange system and method
KR101908677B1 (en) 2017-09-29 2018-10-16 숭실대학교산학협력단 System and method for managementing electronic vote using blockchain
KR20180131960A (en) * 2018-04-20 2018-12-11 주식회사 시그마체인 Method of verifying block based on block chain

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Abdullah Al-Shehabi, "Bitcoin Transaction Fee Estimation Using Mempool State and Linear Perceptron Machine Learning Algorithm" *
Ji-Sun Park etal, "Smart Contract-Based Review System for an IoT Data Marketplace" *
Sam M. Werner, "After You: Intelligent Orchestration of Queue-based Cryptocurrency Mining Pools" *
Xiaojun Liu etal, "Evolutionary Game for Mining Pool Selection in Blockchain Networks" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022114436A1 (en) * 2020-11-24 2022-06-02 제주대학교 산학협력단 System and method for controlling traffic of blockchain transaction data

Similar Documents

Publication Publication Date Title
US20240048376A1 (en) Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions
EP3610436B1 (en) Rapid distributed consensus on blockchain
JP7407895B2 (en) Blockchain for general calculations
CN111164935B (en) Systems and methods for providing privacy and security protection in blockchain-based private transactions
CN109964446B (en) Consensus method based on voting
EP3613189B1 (en) Secure blockchain-based consensus
US20200026699A1 (en) Highly Performant Decentralized Public Ledger with Hybrid Consensus
US20230283473A1 (en) Computer-implemented systems and methods relating to a binary blockchain comprising a pair of coupled blockchains
CN111164626A (en) Intelligent contract execution using distributed coordination
US20210256016A1 (en) Blockchain system and method
CN111066283A (en) System and method for communicating, storing and processing data provided by entities on a blockchain network
US12002045B2 (en) Resource management system and method of operation thereof
CN110557403B (en) Resource allocation method and device based on block chain, storage medium and node equipment
CN111416709B (en) Voting method, device, equipment and storage medium based on block chain system
CN110738783A (en) System, method, device, equipment and readable storage medium for updating voting data
Bilal et al. Blockchain technology: Opportunities & challenges
KR102130699B1 (en) Block-chain based voting system operating method with distributed transaction pool
KR20210046982A (en) Project Management Platform
KR20220148397A (en) A neural consensus proof based block chain network platform system constructed by using a non-random consensus proof-based blockchain network
CN112308700A (en) Method and device for processing enterprise credit investigation data, computer equipment and storage medium
Ushmani Blockchain insight
US20220405749A1 (en) Allocation of a digital asset using blockchain transactions
Himanshu An overview of blockchain technology: Architecture and consensus protocols
Kalla Blockchain perspectives, mining, and types: An introductory tutorial
Bashar Fair and Efficient Consensus Protocols for Secure Blockchain Applications

Legal Events

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