KR102014647B1 - Electronic voting method based on blockchain - Google Patents

Electronic voting method based on blockchain Download PDF

Info

Publication number
KR102014647B1
KR102014647B1 KR1020180071422A KR20180071422A KR102014647B1 KR 102014647 B1 KR102014647 B1 KR 102014647B1 KR 1020180071422 A KR1020180071422 A KR 1020180071422A KR 20180071422 A KR20180071422 A KR 20180071422A KR 102014647 B1 KR102014647 B1 KR 102014647B1
Authority
KR
South Korea
Prior art keywords
voter
account address
blockchain
user
service server
Prior art date
Application number
KR1020180071422A
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 KR1020180071422A priority Critical patent/KR102014647B1/en
Application granted granted Critical
Publication of KR102014647B1 publication Critical patent/KR102014647B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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

Landscapes

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

Abstract

The present invention relates to a blockchain-based electronic voting method which comprises the steps of: distributing a smart contract to a blockchain network; storing an encoded account address and a user ID generated based on the user ID and a password inputted by a user in a database by a plurality of users; extracting the account address for the one user based on an identifier and the password inputted by the one user of the plurality of users; and distributing a result of voting to the blockchain network by specifying a session value using the account address extracted by the one user as a starting address.

Description

블록체인 기반 전자투표방법{ELECTRONIC VOTING METHOD BASED ON BLOCKCHAIN}Blockchain-based electronic voting method {ELECTRONIC VOTING METHOD BASED ON BLOCKCHAIN}

이하 설명하는 기술은 블록체인(Blockchain) 상에서 구현한 전자투표기법에 관한 것이다.The technology described below relates to an electronic voting technique implemented on a blockchain.

정보통신 기술 발전과 함께 온라인 투표시스템에 대한 기술 개발이 진행되면서 전자투표시스템이 세계 주요 국가에서 도입되고 있다. 전자투표는 공공성이 크기 때문에 기술적인 보안성과 안정성이 완벽해야 한다.With the development of information and communication technology, the development of online voting system has led to the introduction of electronic voting system in major countries of the world. Because electronic voting is very public, technical security and stability must be perfect.

기존 금융 분야에서 활발하게 적용하던 블록체인 기술이 점차 다른 분야로 확대되고 있다. 온라인 투표도 블록체인 기술을 도입하여 적용할 분야로 기대되고 있다.Blockchain technology, which has been actively applied in the existing financial sector, is gradually expanding to other fields. Online voting is also expected to be an application of blockchain technology.

한국등록특허 제10-1833323호Korea Patent Registration No. 10-1833323

전자투표는 데이터의 변조 내지 조작 가능성이 있기 때문에 무결성이 완벽하게 보장되지 않는다. 이하 설명하는 기술은 블록체인 기술을 적용한 전자투표 기법을 제공하고자 한다. Electronic voting is not completely guaranteed because of the possibility of tampering or manipulation of the data. The technology described below is intended to provide an electronic voting technique using blockchain technology.

블록체인 기반 전자투표방법은 스마트 컨트랙트(smart contract)가 블록체인 네트워크에 배포되는 단계, 복수의 사용자별로 사용자가 입력한 사용자 ID 및 비밀번호를 기준으로 생성된 암호화된 계좌 주소 및 상기 사용자 ID가 데이터베이스에 저장되는 단계, 상기 복수의 사용자 중 어느 하나의 사용자가 입력한 식별자와 비밀번호를 기준으로 상기 어느 하나의 사용자에 대한 계좌 주소가 추출되는 단계 및 상기 어느 하나의 사용자가 상기 추출한 계좌 주소를 출발지 주소로 세션 값을 지정하여 투표를 진행한 결과가 상기 블록체인 네트워크에 배포되는 단계를 포함한다.In the blockchain-based electronic voting method, a smart contract is distributed to a blockchain network, an encrypted account address generated based on a user ID and password input by a user for each of a plurality of users, and the user ID is stored in a database. Storing, extracting an account address for the one user based on an identifier and a password input by any one of the plurality of users, and using the extracted account address as a starting address. And voting by specifying a session value is distributed to the blockchain network.

이하 설명하는 기술은 블록체인 기술을 사용하여 외부 공격에 의한 데이터 변조의 가능성이 극히 낮은 전자투표방식을 제공한다. The technique described below provides an electronic voting scheme with a very low possibility of data tampering by external attacks using blockchain technology.

블록체인 기술은 블록체인 노드가 데이터를 공유한다. 따라서 전자투표에 블록체인을 적용하면 비밀성 보장이 문제된다. 이하 설명하는 기술은 블록체인에 기반하면서 동시에 투표자의 익명성을 보장할 수 있는 전자투표방식을 제공한다.In blockchain technology, blockchain nodes share data. Therefore, the application of blockchain to electronic voting ensures confidentiality. The technology described below provides an electronic voting method that can guarantee anonymity of voters while being based on blockchain.

도 1은 블록체인 기반의 전자투표시스템에 대한 구조도의 예이다.
도 2는 도 1의 시스템에 기반한 전자투표 과정에 대한 절차흐름도의 예이다.
도 3은 블록체인 기반의 전자투표시스템에 대한 구조도의 다른 예이다.
도 4는 도 3의 시스템에 기반한 전자투표 과정에 대한 절차흐름도의 예이다.
도 5는 스마트 컨트랙트에 대한 예이다.
1 is an example of a structural diagram for a blockchain-based electronic voting system.
2 is an example of a flow diagram for an electronic voting process based on the system of FIG.
3 is another example of a structural diagram of a blockchain-based electronic voting system.
4 is an example of a flow diagram for an electronic voting process based on the system of FIG. 3.
5 is an example for a smart contract.

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

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, A, B, etc. may be used to describe various components, but the components are not limited by the terms, but merely to distinguish one component from other components. Only used as For example, the first component may be referred to as the second component, and similarly, the second component may be referred to as the first component without departing from the scope of the technology described below. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It is to be understood that the present invention means that there is a part or a combination thereof, and does not exclude the presence or addition possibility of one or more other features or numbers, step operation components, parts or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to the detailed description of the drawings, it is to be clear that the division of the components in the present specification is only divided by the main function of each component. That is, two or more components to be described below may be combined into one component, or one component may be provided divided into two or more for each function. Each of the components to be described below may additionally perform some or all of the functions of other components in addition to the main functions of the components, and some of the main functions of each of the components are different. Of course, it may be carried out exclusively by.

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in carrying out the method or operation method, each process constituting the method may occur differently from the stated order unless the context clearly indicates a specific order. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

먼저 블록체인 기술에 대하여 간략하게 설명한다. First, the blockchain technology will be briefly described.

블록체인은 데이터를 거래할 때 중앙집중형 서버에 기록을 보관하는 기존 방식과 달리 거래 참가자 모두에게 내용을 공개하는 분산형 디지털 장부를 말한다. 블록체인에 참여한 모든 구성원이 네트워크를 통해 서로 데이터를 검증하고 저장함으로써 특정인의 임의적인 조작이 어렵도록 설계된 저장 플랫폼이라 할 수 있다. 이러한 상호분산원장(mutual distributed ledger)을 통하여 기존 중앙 집중형 네트워크 기반의 인프라를 뛰어넘는 높은 보안성, 확장성 및 투명성 등을 보장한다.Blockchain refers to a decentralized digital ledger that discloses content to all trading participants, unlike traditional methods of keeping records on a centralized server when trading data. It is a storage platform designed to prevent arbitrary manipulation of a specific person by all members participating in the blockchain verifying and storing data with each other through a network. This mutual distributed ledger ensures high security, scalability and transparency beyond the existing centralized network-based infrastructure.

거래 기록이 '블록'이라는 단위로 정리돼 시간별로 이어져 있는 것이 블록체인의 특징이다. 한 블록에는 앞의 블록과 뒤의 블록과 연결되는 연결 정보가 포함돼 있으며, 앞 블록의 내용을 변경하면 뒤에 이어지는 모든 블록을 다시 생성해야 한다. 따라서 과거 블록의 내용을 조작하는 것은 어렵다. 반대로 과거의 어느 시점에 거래 기록이 존재한다면 그것은 그 시점에 거래가 이루어졌다는 것을 객관적으로 알 수 있는데 이 역시 중요한 점이다.The characteristic of blockchain is that the transaction records are organized in 'blocks' and continued over time. One block contains the connection information that connects the previous block and the next block, and if you change the contents of the previous block, you must recreate all the blocks that follow. Therefore, it is difficult to manipulate the contents of past blocks. Conversely, if a transaction record exists at some point in the past, it is objectively known that the transaction was made at that point, which is also important.

블록체인은 분산형 원장 구조이며, 그 블록체인 네트워크에 참가한 모든 사람이 모든 거래내역을 기록한 원장을 소유한다. 그렇기 때문에 블록체인 기술을 활용하면 별도의 거래관리 기관 없이 분산화 된 거래장부인 블록체인에 의해 작동되기 때문에 시스템 유지비용이 적고 해킹을 원천 차단할 수 있다는 장점이 있다. 분산 원장 환경에서는 사용자가 송금거래를 요청하면, 거래 정보가 기록된 하나의 블록을 생성하여 네트워크상의 모든 참여자에게 블록을 전송한다. 이 때 각 참여자가 전송된 블록을 승인하게 되면 기존 블록체인에 거래 기록이 추가되면서 거래가 완료된다. 기존 블록체인에 담겨 있는 거래정보를 수정하기 위해서는 전체 비트코인 네트워크 참여자의 과반수가 동일한 정보임을 확인해 줘야 하기 때문에 해커가 전 세계 네트워크 참여자의 블록체인을 동시에 해킹하는 것은 사실상 불가능하다.Blockchain is a decentralized ledger structure, where everyone who participates in the blockchain network owns a ledger that records all transactions. Therefore, if you use blockchain technology, it is operated by blockchain, which is a decentralized transaction book without a separate transaction management agency, so it has the advantage of low system maintenance cost and blocking hacking. In a distributed ledger environment, when a user requests a remittance transaction, a block in which transaction information is recorded is generated and the block is transmitted to all participants in the network. At this time, if each participant approves the transmitted block, the transaction is added to the existing blockchain and the transaction is completed. It is virtually impossible for hackers to hack the blockchain of global network participants at the same time because it is necessary to confirm that the majority of all Bitcoin network participants have the same information in order to modify the transaction information contained in the existing blockchain.

블록체인은 각 노드에서 만든 블록의 정당성을 검토하고 네트워크 전체에서 공유하는 블록체인에 반영하기 위해 합의 알고리즘을 사용한다. 블록체인에서 사용되고 있는 대표적인 합의 알고리즘은 PoW(Proof of Work), PoS(Proof of Stake), PBFT(Practical Byzantine Fault Tolerance) 등이 있다. The blockchain uses a consensus algorithm to examine the validity of the blocks created by each node and reflect them on the blockchain shared throughout the network. Representative consensus algorithms used in the blockchain include Proof of Work (PoW), Proof of Stake (POS), and Practical Byzantine Fault Tolerance (PBFT).

블록체인 1.0은 디지털 통화(Digital Currency)의 발행, 유통 및 거래가 주요 기능이었다. 블록체인 2.0은 기존 비트코인의 한계를 극복하고 다양한 영역으로의 확장을 목표로 하여 발전하고 있다. 블록체인 2.0의 대표적인 기술로는 이더리움(Ethereum)이 있으며, 디지털통화의 기능과 더불어 비트코인의 거래 스크립트를 다양한 형태로 프로그램 가능하게 만든 스마트 컨트랙트(Smart Contract)를 구현한다. Blockchain 1.0 has been a major feature of digital currency issuance, distribution and trading. Blockchain 2.0 is evolving with the goal of overcoming the limitations of existing Bitcoin and expanding into various areas. The representative technology of Blockchain 2.0 is Ethereum, which implements Smart Contract, which makes Bitcoin's transaction scripts programmable in various forms as well as the functions of digital currency.

이더리움은 블록체인 기반에서 다양한 분산 애플리케이션을 개발하고 구동할 수 있는 플랫폼으로 확장되었다. 블록체인 플랫폼이란 블록체인 서비스를 개발, 테스트할 수 있도록 블록체인 시스템의 구성요소(분산 네트 워크, 통신 프로토콜 등) 및 필요기능(거래정보 검증, 합의, 노드관리 기능 등)을 제공하는 환경을 말한다. 블록체인 서비스 개발 시 플랫폼을 활용함으로써 개발 편의성과 서비스 간 상호 호환성, 안정성을 확보할 수 있다.Ethereum has been extended to a platform that can develop and run various distributed applications on a blockchain basis. Blockchain platform is an environment that provides the components (distributed network, communication protocol, etc.) and necessary functions (transaction information verification, agreement, node management functions, etc.) of blockchain system so that blockchain services can be developed and tested. . By using the platform in developing blockchain services, it is possible to secure development convenience, interoperability and stability between services.

이더리움은 튜링완전(turing-complete)한 프로그래밍 언어를 사용가능하다. 코딩된 규칙에 따라 사용자는 '어떤 상태'를 다르게 변환시키는 기능이 포함된 "컨트랙트(contracts)"를 작성할 수 있다. 스마트 컨트랙트는 블록체인을 통해 일정 조건을 만족시키면 거래가 자동으로 실행되도록 프로그래밍한다.Ethereum can use a Turing-complete programming language. Coded rules allow users to write "contracts" that include the ability to transform "some state" differently. Smart contracts program the transaction to run automatically when certain conditions are met through the blockchain.

이하 설명하는 기술은 블록체인에 기반한 전자투표방법 내지 전자투표시스템에 관한 것이다. 설명의 편의를 위해 이하 설명하는 전자투표는 이더리움에 기반한다고 전제한다. 전술한 바와 같이 이더리움은 스마트 컨트랙트를 이용하여 블록체인에서 프로그램밍된 일정한 동작 내지 상태 변화를 할 수 있다.The technology described below relates to an electronic voting method or an electronic voting system based on a blockchain. For the convenience of explanation, the following electronic voting is assumed to be based on Ethereum. As described above, Ethereum may use a smart contract to perform certain operations or state changes programmed in the blockchain.

이하 관리자는 전자투표를 생성하고 관리하는 주체를 의미한다. 유권자는 특정한 전자투표에 참여하여 특정 후보에 투표를 수행하는 주체를 의미한다. Hereinafter, the administrator refers to a subject who creates and manages electronic voting. Voter means a person who participates in a specific electronic ballot and votes on a particular candidate.

관리자 및 유권자는 컴퓨터 장치인 단말을 이용하여 전자투표를 관리하고 진행한다. 단말은 일정한 연산이 가능한 컴퓨터 장치를 의미한다. 예컨대, 단말은 PC, 노트북, 스마트기기 및 전자투표전용 터미널(terminal) 등을 포함한다.The administrator and the voter manage and proceed with the electronic voting using the terminal, which is a computer device. The terminal refers to a computer device capable of constant operation. For example, the terminal includes a PC, a notebook computer, a smart device, and a terminal for electronic voting.

도 1은 블록체인 기반의 전자투표시스템에 대한 구조도의 예이다. 1 is an example of a structural diagram of a blockchain-based electronic voting system.

관리자(A)는 관리자 단말(10)을 이용하여 전자투표를 위한 정보를 생성하고, 전자투표과정을 관리한다. 관리자 단말(10)은 웹 브라우저를 통하여 전자투표시스템에 접근할 수 있다. 또는 관리자 단말(10)은 전용 애플리케이션을 실행하여 전자투표시스템에 전급할 수 있다. 도 1은 웹 브라우져를 통해 전자투표시스템에 접근하는 예를 도시하였다.The manager A generates information for the electronic voting using the manager terminal 10 and manages the electronic voting process. The manager terminal 10 may access the electronic voting system through a web browser. Alternatively, the manager terminal 10 may execute a dedicated application to feed the electronic voting system. 1 illustrates an example of accessing an electronic voting system through a web browser.

유권자(B)는 유권자 단말(20)을 이용하여 전자투표를 수행한다. 유권자 단말(10)은 웹 브라우저를 통해 전자투표시스템에 접근할 수 있다. 또는 유권자 단말(10)은 전용 애플리케이션을 실행하여 전자투표시스템에 전급할 수 있다. 도 1은 웹 브라우져를 통해 전자투표시스템에 접근하는 예를 도시하였다.Voter B performs electronic voting using voter terminal 20. The voter terminal 10 may access the electronic voting system through a web browser. Alternatively, the voter terminal 10 may execute a dedicated application to feed the electronic voting system. 1 illustrates an example of accessing an electronic voting system through a web browser.

전자투표시스템은 데이터베이스(80) 및 블록체인 네트워크(100)로 구성된다. 데이터베이스(80)는 유권자별로 일정한 정보를 저장한다. 데이터베이스(80)는 유권자 ID(식별자), 유권자에 대한 계좌주소, 투표 컨트랙트 주소 등을 저장할 수 있다.The electronic voting system is composed of a database 80 and a blockchain network 100. The database 80 stores certain information for each voter. The database 80 may store voter IDs (identifiers), account addresses for voters, voting contract addresses, and the like.

블록체인 네트워크(100)는 물리적으로는 복수의 노드로 구성된다. 노드는 네트워크 상에 연결된 객체로서, 일정한 저장매체를 보유한 장치이다. 예컨대, 노드는 서버, PC 등과 장치로 구현될 수 있다. 블록들은 컨트랙트를 보유한다. 블록체인은 계좌주소, 컨트랙트 주소, 트랜잭션주소, 비밀키 등을 저장할 수 있다.The blockchain network 100 is physically composed of a plurality of nodes. A node is an object connected on a network that is a device with a constant storage medium. For example, the node may be implemented as a server, a PC, or the like. Blocks hold contracts. Blockchain can store account address, contract address, transaction address, secret key, etc.

이더리움 경우 블록체인은 이더리움 가상머신(Ethereum Virtual Machine, EVM)을 구성한다. EVM은 이더리움 스마트 콘트렉트의 런타임 환경이라고 할 수 있다. EVM은 이러리움 블락체인 네트워크의 노드들이 공유하는 하나의 가상 머신이다. EVM은 합의 알고리즘에 따라 일정한 동작(상태 변경)을 수행한다.In the case of Ethereum, the blockchain constitutes an Ethereum Virtual Machine (EVM). EVM is the runtime environment for Ethereum smart contracts. EVM is a virtual machine that is shared by nodes in this blockchain network. EVM performs certain operations (state changes) according to a consensus algorithm.

도 2는 도 1의 시스템에 기반한 전자투표 과정(200)에 대한 절차흐름도의 예이다. 도 2는 하나의 유권자 단말(20)을 예로 들어 설명한다. 복수의 개별 유권자에 대해서도 동일한 과정을 수행한다. 2 is an example of a flow diagram for an electronic voting process 200 based on the system of FIG. 1. 2 illustrates one voter terminal 20 as an example. Do the same for multiple individual voters.

유권자는 유권자 단말(20)을 통해 전자투표를 위한 회원 가입을 한다(201). 유권자는 회원가입 과정에서 기본적으로 사용자 ID와 비밀번호를 입력한다. 사용자 ID와 비밀번호는 블록체인 네트워크(100)에 전송된다(202).The voter registers for electronic voting through the voter terminal 20 (201). Voters enter a user ID and password by default during the registration process. The user ID and password are sent to the blockchain network 100 (202).

블록체인 네트워크(100)에서 EVM은 사용자 ID를 기준으로 계좌주소를 생성한다(211). 이때 생성하는 계좌주소는 사용자를 나타내는 주소에 해당한다. EVM은 해쉬 함수 등을 이용하여 계좌주소를 생성할 수 있다. EVM은 생성된 계좌주소를 비밀번호를 이용하여 암호화한다(211). EVM은 일정한 암호화키로 이용하여 계좌주소를 암호화한다. 암호화 방식은 다양한 방식이 사용될 수 있다. 예컨대, 암호화 방식은 AES(Advanced Encryption Standard)가 사용될 수 있다. In the blockchain network 100, the EVM generates an account address based on the user ID (211). In this case, the generated account address corresponds to an address representing the user. EVM can generate account addresses using hash functions. The EVM encrypts the generated account address using a password (211). EVM encrypts account addresses using a constant encryption key. As the encryption method, various methods may be used. For example, the encryption scheme may be AES (Advanced Encryption Standard).

데이터베이스(80)는 블록체인 네트워크(100)로부터 사용자 ID와 해당 사용자 ID를 사용하여 생성한 암호화된 계좌주소를 수신(212)하여 저장한다(221).The database 80 receives (212) and stores an encrypted account address generated using the user ID and the corresponding user ID from the blockchain network 100 (221).

도 2에서 EVM이 계좌주소 생성과 암호화를 수행한다고 도시하였다. 경우에 따라서 유권자 단말(20)이 자신의 사용자 ID를 기준으로 계좌 주소를 생성하고, 자신의 비밀번호를 기준으로 계좌 주소를 암호화할 수 있다. 이 경우 유권자 단말(20)이 암호화한 계좌 주소와 사용자 ID를 데이터베이스(80)에 전달할 수 있다.In FIG. 2, the EVM performs account address generation and encryption. In some cases, the voter terminal 20 may generate an account address based on its user ID, and may encrypt the account address based on its own password. In this case, the voter terminal 20 may transmit the encrypted account address and the user ID to the database 80.

관리자 단말(10)은 투표 내용을 포함하는 컨트랙트를 작성한다(231). 관리자 단말(10)은 투표 시작 시간(날짜), 투표 종료 시간, 후보자 리스트 등을 입력한다. 관리자 단말(10)이 입력된 정보를 바탕으로 생성된 컨트랙트를 블록체인 네트워크(100)에 배포한다(232). 관리자 단말(10)이 입력된 정보를 바탕으로 생성한 트랙잭션을 블록체인 네트워크에 전송한다(232). The manager terminal 10 creates a contract including the contents of the vote (231). The manager terminal 10 inputs a voting start time (date), a voting end time, a candidate list, and the like. The manager terminal 10 distributes the generated contract to the blockchain network 100 based on the input information (232). The manager terminal 10 transmits the generated transaction based on the input information to the blockchain network (232).

이후 유권자가 투표를 수행하는 과정을 설명한다. 유권자는 유권자 단말(20)을 통해 로그인을 수행한다(241). 로그인이 성공하면 해당 유권자는 정상적인 유권자로 인증된다. 도 1에 도시하지 않았지만, 이를 위해 유권자 정보를 별도로 보유하는 유권자 데이터베이스를 사용할 수 있다. 유권자 데이터베이스는 유권자 ID 및 해당 유권자의 비밀번호를 보유할 수 있다. It then explains how voters perform their votes. The voter logs in through the voter terminal 20 (241). If the login succeeds, the voter authenticates as a normal voter. Although not shown in FIG. 1, a voter database that separately holds voter information may be used. The voter database may hold a voter ID and the voter's password.

로그인이 성공하면, 유권자 단말(20)은 사용자 ID를 데이터베이스(80)에 전송한다(242). 유권자 단말(20)은 데이터베이스(80)로부터 자신의 사용자 ID 에 매칭되는 암호화된 계좌주소를 수신한다(243). 유권자 단말(20)은 암호화된 계좌주소를 자신의 비밀번호로 복호한다(251).If the login is successful, the voter terminal 20 transmits the user ID to the database 80 (242). The voter terminal 20 receives an encrypted account address that matches its user ID from the database 80 (243). The voter terminal 20 decrypts the encrypted account address with its own password (251).

유권자 단말(20)은 복호한 계좌주소를 세션값을 지정한다(261). 유권자 단말(20)은 복호한 계좌주소 내지 세션값을 블록체인 네트워크(100)에 전달한다(261). 유권자 단말(20)은 블록체인 네트워크(100)로부터 투표 정보(컨트랙트)를 수신한다(262). 예컨대, 로그인이 성공한 유권자는 특정 계좌가 열리면 투표 목록을 확인할 수 있다. 복수의 투표가 있는 경우, 유권자가 특정한 투표를 선택하면 블록체인에 저장되어 있는 선거 컨트랙트 내용을 읽어와서 후보자 목록 확인이 가능하다.The voter terminal 20 designates the session value of the decoded account address (261). The voter terminal 20 transmits the decoded account address or session value to the blockchain network 100 (261). The voter terminal 20 receives voting information (contract) from the blockchain network 100 (262). For example, a successful voter can check the vote list when a particular account is opened. If there are multiple votes, the voter selects a specific vote, and the candidate list can be checked by reading the election contract stored in the blockchain.

유권자 단말(20)은 투표를 수행한다(271). 구체적인 투표 수행 과정은 후술한다. 유권자 단말(20)은 복호한 계좌주소를 출발지 주소로 세션값을 지정하여 투표를 수행한다. 유권자가 투표권을 행사하면 해당 후보자 정보를 바탕으로 트랜잭션이 발생하여 블록체인 네트워크(100)에 전송된다. 유권자 단말(20)은 투표를 진행한 트랙잭션을 블록체인 네트워크에 전달(배포)한다(281).The voter terminal 20 performs a vote (271). A detailed voting process will be described later. The voter terminal 20 performs voting by specifying the session value as the starting address of the decoded account address. When the voter exercises the right to vote, a transaction occurs based on the candidate information and is transmitted to the blockchain network 100. The voter terminal 20 transmits (distributes) the voting transaction to the blockchain network (281).

도 2는 대칭키 암호화 방식을 전제로 설명하였지만, 공개키 암호화 방식이 사용될 수도 있다. 이 경우 데이터베이스(80)는 사용자 비밀키가 아닌 공개키를 사용하여 계좌주소를 암호화하고, 유권자 단말(20)은 암호화된 계좌주소를 비밀키인 자신의 비밀번호로 복호할 수도 있다.Although FIG. 2 has been described on the premise of a symmetric key encryption method, a public key encryption method may be used. In this case, the database 80 encrypts the account address using the public key instead of the user secret key, and the voter terminal 20 may decrypt the encrypted account address with its own password, which is the secret key.

도 3은 블록체인 기반의 전자투표시스템에 대한 구조도의 다른 예이다. 도 3은 전자투표시스템은 도 1과 달리 서비스 서버(50)가 존재한다. 서비스 서버(50)가 전자투표 수행을 위한 제어 및 서비스를 제공한다. 다른 구성은 도 1의 전자투표시스템과 유사 내지 동일하다.3 is another example of a structural diagram of a blockchain-based electronic voting system. In FIG. 3, the electronic voting system, unlike FIG. 1, has a service server 50. The service server 50 provides a control and a service for performing the electronic voting. Other configurations are similar to the same as those of the electronic voting system of FIG.

관리자(A)는 관리자 단말(10)을 이용하여 전자투표를 위한 정보를 생성하고, 전자투표과정을 관리한다. 관리자 단말(10)은 웹 브라우저를 통하여 전자투표시스템에 접근할 수 있다. 또는 관리자 단말(10)은 전용 애플리케이션을 실행하여 전자투표시스템에 전급할 수 있다. 도 1은 웹 브라우져를 통해 전자투표시스템에 접근하는 예를 도시하였다.The manager A generates information for the electronic voting using the manager terminal 10 and manages the electronic voting process. The manager terminal 10 may access the electronic voting system through a web browser. Alternatively, the manager terminal 10 may execute a dedicated application to feed the electronic voting system. 1 illustrates an example of accessing an electronic voting system through a web browser.

유권자(B)는 유권자 단말(20)을 이용하여 전자투표를 수행한다. 유권자 단말(10)은 웹 브라우저를 통해 전자투표시스템에 접근할 수 있다. 또는 유권자 단말(10)은 전용 애플리케이션을 실행하여 전자투표시스템에 전급할 수 있다. 도 1은 웹 브라우져를 통해 전자투표시스템에 접근하는 예를 도시하였다.Voter B performs electronic voting using voter terminal 20. The voter terminal 10 may access the electronic voting system through a web browser. Alternatively, the voter terminal 10 may execute a dedicated application to feed the electronic voting system. 1 illustrates an example of accessing an electronic voting system through a web browser.

전자투표시스템은 서비스 서버(50), 데이터베이스(80) 및 블록체인 네트워크(100)를 포함한다.The electronic voting system includes a service server 50, a database 80 and a blockchain network 100.

서비스 서버(50)는 사용자의 회원 가입, 사용자 ID를 사용한 계좌 주소 생성, 계좌 주소 암호화, 트랜잭션 전달 등을 수행한다. The service server 50 performs user registration, account address generation using a user ID, account address encryption, transaction delivery, and the like.

데이터베이스(80)는 유권자별로 일정한 정보를 저장한다. 데이터베이스(80)는 유권자 ID(식별자), 유권자에 대한 계좌주소, 투표 컨트랙트 주소 등을 저장할 수 있다. The database 80 stores certain information for each voter. The database 80 may store voter IDs (identifiers), account addresses for voters, voting contract addresses, and the like.

블록체인 네트워크(100)는 물리적으로는 복수의 노드로 구성된다. 노드는 네트워크 상에 연결된 객체로서, 일정한 저장매체를 보유한 장치이다. 예컨대, 노드는 서버, PC 등과 장치로 구현될 수 있다. 블록들은 컨트랙트를 보유한다. 블록체인은 계좌주소, 컨트랙트 주소, 트랜잭션주소, 비밀키 등을 저장할 수 있다.The blockchain network 100 is physically composed of a plurality of nodes. A node is an object connected on a network that is a device with a constant storage medium. For example, the node may be implemented as a server, a PC, or the like. Blocks hold contracts. Blockchain can store account address, contract address, transaction address, secret key, etc.

이더리움 경우 블록체인은 이더리움 가상머신(Ethereum Virtual Machine, EVM)을 구성한다. EVM은 이더리움 스마트 콘트렉트의 런타임 환경이라고 할 수 있다. EVM은 이러리움 블락체인 네트워크의 노드들이 공유하는 하나의 가상 머신이다. EVM은 합의 알고리즘에 따라 일정한 동작(상태 변경)을 수행한다.In the case of Ethereum, the blockchain constitutes an Ethereum Virtual Machine (EVM). EVM is the runtime environment for Ethereum smart contracts. EVM is a virtual machine that is shared by nodes in this blockchain network. EVM performs certain operations (state changes) according to a consensus algorithm.

도 4는 도 3의 시스템에 기반한 전자투표 과정(300)에 대한 절차흐름도의 예이다. 도 4는 하나의 유권자 단말(20)을 예로 들어 설명한다. 복수의 개별 유권자에 대해서도 동일한 과정을 수행한다. 4 is an example of a flow diagram for an electronic voting process 300 based on the system of FIG. 3. 4 illustrates one voter terminal 20 as an example. Do the same for multiple individual voters.

유권자는 유권자 단말(20)을 통해 전자투표를 위한 회원 가입을 한다(301). 유권자는 회원가입 과정에서 기본적으로 사용자 ID와 비밀번호를 입력한다. 유권자 단말(20)은 사용자 ID와 비밀번호를 서비스 서버(50)에 전송한다(302).The voter registers as a member for electronic voting through the voter terminal 20 (301). Voters enter a user ID and password by default during the registration process. The voter terminal 20 transmits the user ID and password to the service server 50 (302).

서비스 서버(50)는 사용자 ID를 기준으로 계좌주소를 생성한다. 서비스 서버(50)는 해쉬 함수 등을 이용하여 계좌주소를 생성할 수 있다(311). 이때 생성하는 계좌주소는 사용자를 나타내는 주소에 해당한다. 서비스 서버(50)는 생성된 계좌주소를 비밀번호를 이용하여 암호화한다(311). 즉, 서비스 서버(50)는 일정한 암호화키로 이용하여 계좌주소를 암호화한다. 암호화 방식은 다양한 방식이 사용될 수 있다. 예컨대, 암호화 방식은 AES(Advanced Encryption Standard)가 사용될 수 있다. 서비스 서버(50)는 사용자 ID와 해당 사용자 ID를 사용하여 생성한 암호화된 계좌주소를 데이터베이스(80)에 전달한다(312). 데이터베이스(80)는 사용자 ID와 암호화된 계좌주소를 매칭하여 저장한다(313). The service server 50 generates an account address based on the user ID. The service server 50 may generate an account address using a hash function or the like (311). In this case, the generated account address corresponds to an address representing the user. The service server 50 encrypts the generated account address using a password (311). That is, the service server 50 encrypts the account address using a predetermined encryption key. As the encryption method, various methods may be used. For example, the encryption scheme may be AES (Advanced Encryption Standard). The service server 50 transmits the encrypted account address generated using the user ID and the corresponding user ID to the database 80 (312). The database 80 matches and stores the user ID and the encrypted account address (313).

도 3에서 서비스 서버(50)가 계좌주소 생성과 암호화를 수행한다고 도시하였다. 경우에 따라서 유권자 단말(20)이 자신의 사용자 ID를 기준으로 계좌 주소를 생성하고, 자신의 비밀번호를 기준으로 계좌 주소를 암호화할 수 있다. 이 경우 유권자 단말(20)이 암호화한 계좌 주소와 사용자 ID를 데이터베이스(80)에 직접 또는 서비스 서버(50)를 경유하여 전달할 수 있다.In FIG. 3, the service server 50 performs account address generation and encryption. In some cases, the voter terminal 20 may generate an account address based on its user ID, and may encrypt the account address based on its own password. In this case, the voter terminal 20 may transmit the encrypted account address and the user ID to the database 80 directly or through the service server 50.

관리자 단말(10)은 투표 내용을 포함하는 컨트랙트를 작성한다(331). 관리자 단말(10)은 투표 시작 시간(날짜), 투표 종료 시간, 후보자 리스트 등을 입력한다. 관리자 단말(10)이 입력된 정보를 바탕으로 생성된 컨트랙트를 서비스 서버(50)에 전송하고(332), 서비스 서버(50)는 블록체인 네트워크(100)에 배포한다(333). 경우에 따라서 관리자 단말이 생성한 컨트랙트를 블록체인 네트워크(100)에 직접 배포할 수도 있다.The manager terminal 10 creates a contract including the contents of the vote (331). The manager terminal 10 inputs a voting start time (date), a voting end time, a candidate list, and the like. The manager terminal 10 transmits the generated contract based on the input information to the service server 50 (332), and the service server 50 distributes the blockchain network 100 (333). In some cases, the contract generated by the manager terminal may be directly distributed to the blockchain network 100.

이후 유권자가 투표를 수행하는 과정을 설명한다. 유권자는 유권자 단말(20)을 통해 로그인을 수행한다(341). 로그인이 성공하면 해당 유권자는 정상적인 유권자로 인증된다. 도 3에 도시하지 않았지만, 이를 위해 유권자 정보를 별도로 보유하는 유권자 데이터베이스를 사용할 수 있다. 유권자 데이터베이스는 유권자 ID 및 해당 유권자의 비밀번호를 보유할 수 있다. It then explains how voters perform their votes. The voter logs in via the voter terminal 20 (341). If the login succeeds, the voter authenticates as a normal voter. Although not shown in FIG. 3, a voter database that separately holds voter information may be used. The voter database may hold a voter ID and the voter's password.

로그인이 성공하면, 유권자 단말(20)은 사용자 ID를 서비스 서버(50)에 전송한다(342). 서비스 서버(50)는 사용자 ID를 데이터베이스(80)에 전송한다(343). 서비스 서버(50)는 데이터베이스(80)로부터 자신의 사용자 ID 에 매칭되는 암호화된 계좌주소를 수신한다(344). 유권자 단말(20)은 서비스 서버(50)로부터 자신의 사용자 ID 에 매칭되는 암호화된 계좌주소를 수신한다(345).If the login is successful, the voter terminal 20 transmits the user ID to the service server 50 (342). The service server 50 transmits the user ID to the database 80 (343). The service server 50 receives an encrypted account address matching its user ID from the database 80 (344). The voter terminal 20 receives an encrypted account address matching its user ID from the service server 50 (345).

유권자 단말(20)은 암호화된 계좌주소를 자신의 비밀번호로 복호한다(351).The voter terminal 20 decrypts the encrypted account address with its own password (351).

유권자 단말(20)은 복호한 계좌주소를 세션값을 지정하여 서비스 서버(50)에 전달한다(361). 서비스 서버(50)는 복호한 계좌주소 내지 세션값을 블록체인 네트워크(100)에 전달한다(362).The voter terminal 20 transfers the decoded account address to the service server 50 by specifying a session value (361). The service server 50 transmits the decoded account address or session value to the blockchain network 100 (362).

서비스 서버(50)는 블록체인 네트워크(100)로부터 투표 정보(컨트랙트)를 수신한다(363). 유권자 단말(20)은 서비스 서버(50)를 경유하여 블록체인 네트워크(100)로부터 투표 정보(컨트랙트)를 수신한다(364). 예컨대, 로그인이 성공한 유권자는 특정 계좌가 열리면 투표 목록을 확인할 수 있다. 복수의 투표가 있는 경우, 유권자가 특정한 투표를 선택하면 블록체인에 저장되어 있는 선거 컨트랙트 내용을 읽어와서 후보자 목록 확인이 가능하다.The service server 50 receives voting information (contract) from the blockchain network 100 (363). The voter terminal 20 receives voting information (contract) from the blockchain network 100 via the service server 50 (364). For example, a successful voter can check the vote list when a particular account is opened. If there are multiple votes, the voter selects a specific vote, and the candidate list can be checked by reading the election contract stored in the blockchain.

유권자 단말(20)은 투표를 수행한다(371). 구체적인 투표 수행 과정은 후술한다. 유권자 단말(20)은 복호한 계좌주소를 출발지 주소로 세션값을 지정하여 투표를 수행한다. 유권자가 투표권을 행사하면 해당 후보자 정보를 바탕으로 트랜잭션이 발생하여 서비스 서버(50)에 전달되고(381), 최종적으로 블록체인 네트워크(100)에 전송된다(382). 유권자 단말(20)은 투표를 진행한 트랙잭션을 블록체인 네트워크에 전달(배포)한다.The voter terminal 20 performs a vote (371). A detailed voting process will be described later. The voter terminal 20 performs voting by specifying the session value as the starting address of the decoded account address. When the voter casts his / her right to vote, a transaction occurs based on the candidate information, is transmitted to the service server 50 (381), and finally transmitted to the blockchain network 100 (382). The voter terminal 20 transmits (distributes) the voting transaction to the blockchain network.

도 4는 대칭키 암호화 방식을 전제로 설명하였지만, 공개키 암호화 방식이 사용될 수도 있다. 이 경우 서비스 서버(50)는 사용자 비밀키가 아닌 공개키를 사용하여 계좌주소를 암호화하고, 유권자 단말(20)은 암호화된 계좌주소를 비밀키인 자신의 비밀번호로 복호할 수도 있다.Although FIG. 4 has been described on the premise of a symmetric key encryption method, a public key encryption method may be used. In this case, the service server 50 encrypts the account address using the public key instead of the user secret key, and the voter terminal 20 may decrypt the encrypted account address with its own password which is the secret key.

도 5는 스마트 컨트랙트에 대한 예이다. 전술한 바와 같이 스마트 컨트랙트는 블록체인에서 일정한 조건이 만족하거나 발생하는 경우, 특정한 상태 변화를 갖게되는 프로그램에 해당한다. 컨트랙트는 고유한 컨트랙트 소유자 (contractOwner), 후보자 배열(candidateList) 및 후보자의 득표수 (votesReceived)를 갖는다.5 is an example for a smart contract. As described above, a smart contract corresponds to a program having a specific state change when certain conditions are met or occur in the blockchain. A contract has a unique contract owner (contractOwner), a candidate array (candidateList), and the votes of the candidates (votesReceived).

유권자가 웹 브라우저에서 특정 후보에 투표 하게 되면 스마트 컨트랙트의 voteForCandidate함수가 호출된다. alreadyVoted함수를 통해 유권자의 투표 이행 여부를 판단하여 votesReceived 값을 증가시켜준다. 투표가 종료하여 결과를 집계할 때는 totalVotesFor함수를 호출한다.When a voter votes for a candidate in the web browser, the voteForCandidate function of the smart contract is called. The votesReceived value is increased by determining whether voters have performed their votes through the alreadyVoted function. When the vote is closed and the results are aggregated, the totalVotesFor function is called.

또한, 상술한 바와 같은 전자투표 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수 있다. 상기 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.In addition, the electronic voting method as described above may be implemented as a program (or application) including an executable algorithm that can be executed on a computer. The program may be stored and provided in a non-transitory computer readable medium.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.A non-transitory readable medium refers to a medium that stores data semi-permanently and is read by a device, not a medium storing data for a short time such as a register, a cache, a memory, and the like. Specifically, the various applications or programs described above may be stored and provided in a non-transitory readable medium such as a CD, a DVD, a hard disk, a Blu-ray disk, a USB, a memory card, a ROM, or the like.

본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.The embodiments and the drawings attached to this specification are merely to clearly show a part of the technical idea included in the above-described technology, and those skilled in the art can easily make it within the scope of the technical idea included in the description and the drawings of the above-described technology. It will be apparent that both the inferred modifications and the specific embodiments are included in the scope of the above-described technology.

10 : 관리자 단말
20 : 유권자 단말
50 : 서비스 서버
80 : 데이터베이스
100 : 블록체인 네트워크
10: manager terminal
20: Voter Terminal
50: service server
80: database
100: blockchain network

Claims (11)

컨트랙트 소유자, 후보자 리스트 및 후보자별 득표수를 포함하는 스마트 컨트랙트(smart contract)가 블록체인 네트워크에 배포되는 단계;
상기 블록체인 네트워크의 가상 머신이 유권자의 ID를 기준으로 계좌 주소를 생성하고, 생성한 계좌 주소를 상기 유권자의 비밀번호로 암호화하여 데이터베이스에 저장하는 단계;
상기 블록체인 네트워크가 상기 유권자의 복호된 계좌 주소를 세션값으로 갖는 요청에 대한 응답으로 상기 유권자에게 상기 스마트 컨트랙트를 전달하는 단계; 및
상기 블록체인 네트워크가 상기 유권자로부터 투표를 수행하여 실행된 스마트 컨트랙트를 수신하는 단계를 포함하되,
상기 복호된 계좌 주소는 상기 유권자가 상기 데이터베이스로부터 수신한 암호화된 계좌 주소를 자신의 비밀번호로 복호하여 생성한 주소이고,
상기 스마트 컨트랙트는 상기 유권자가 상기 후보자 리스트 중 특정 후보자에 투표하는 조건이 발생하면 상기 유권자의 투표 여부를 확인하는 함수 및 상기 특정 후보자의 득표수를 업데이트하는 함수를 실행하는 블록체인 기반 전자투표방법.
Distributing a smart contract including a contract owner, a candidate list, and a candidate number of candidates in a blockchain network;
Generating, by the virtual machine of the blockchain network, an account address based on the voter's ID, encrypting the generated account address with the voter's password and storing it in a database;
The blockchain network delivering the smart contract to the voter in response to a request having the voter's decoded account address as the session value; And
Receiving, by the blockchain network, a smart contract executed by voting from the voter,
The decrypted account address is an address generated by decrypting the encrypted account address received by the voter from the database with his / her password,
The smart contract is a blockchain-based electronic voting method that executes a function of checking whether the voter votes and updating the number of votes of the specific candidate when the voter votes on a particular candidate in the candidate list.
삭제delete 삭제delete 제1항에 있어서,
상기 유권자는 사용자의 ID와 매칭되는 암호화된 계좌 주소를 상기 데이터베이스로부터 수신하고, 상기 자신의 비밀번호로 복호하여 상기 암호화된 계좌 주소를 복호하는 블록체인 기반 전자투표방법.
The method of claim 1,
And the voter receives an encrypted account address matching the user's ID from the database, and decrypts the encrypted account address by decrypting the password with its own password.
삭제delete 서비스 서버가 복수의 사용자별로 사용자 ID를 기준으로 계좌 주소를 생성하고, 생성한 계좌 주소를 해당 사용자의 비밀번호로 암호화하고, 암호화된 계좌 주소를 데이터베이스에 저장하는 단계;
상기 서비스 서버가 컨트랙트(contract) 소유자, 후보자 리스트 및 후보자 득표수를 포함하는 스마트 컨트랙트를 블록체인 네트워크에 배포하는 단계;
상기 서비스 서버가 상기 복수의 사용자 중 어느 하나의 사용자가 입력한 식별자를 기준으로 상기 데이터베이스에서 매칭되는 암호화된 계좌 주소를 검색하여 상기 사용자에게 전달하는 단계;
상기 서비스 서버가 상기 어느 하나의 사용자가 상기 암호화된 계좌 주소를 상기 어느 하나의 사용자의 비밀번호로 복호한 계좌 주소를 세션값으로 설정한 트랙잭션을 상기 블록체인 네트워크에 전달하는 단계;
상기 서비스 서버가 상기 트랙잭션에 대한 응답으로 상기 블록체인 네트워크로부터 수신한 상기 스마트 컨트랙트를 상기 사용자에게 전달하는 단계; 및
상기 서비스 서버가 상기 어느 하나의 사용자가 투표를 수행하여 실행된 스마트 컨트랙트를 상기 블록체인 네트워크에 배포하는 단계를 포함하되,
상기 스마트 컨트랙트는 유권자가 상기 후보자 리스트 중 특정 후보자에 투표하는 조건이 발생하면 상기 유권자의 투표 여부를 확인하는 함수 및 상기 특정 후보자의 득표수를 업데이트하는 함수를 실행하는 블록체인 기반 전자투표방법.
Generating, by the service server, an account address based on a user ID for each of a plurality of users, encrypting the generated account address with a corresponding user's password, and storing the encrypted account address in a database;
Distributing, by the service server, a smart contract including a contract owner, a candidate list, and a candidate vote count to a blockchain network;
The service server retrieving a matched encrypted account address from the database based on an identifier input by any one of the plurality of users and delivering the matched encrypted account address to the user;
Transmitting, by the service server, to the blockchain network a transaction in which the user sets the encrypted account address with the password of the one user as a session value;
Delivering, by the service server, the smart contract received from the blockchain network to the user in response to the transaction; And
Distributing, by the service server, the smart contract executed by one of the users by voting in the blockchain network,
The smart contract is a blockchain-based electronic voting method that executes a function of checking whether the voter votes and updating the number of votes of the specific candidate when a condition in which a voter votes for a particular candidate in the candidate list occurs.
제6항에 있어서,
상기 스마트 컨트랙트는 투표 시작 시간 및 투표 종료 시간을 더 포함하는 블록체인 기반 전자투표방법.
The method of claim 6,
The smart contract is a blockchain-based electronic voting method further comprises a voting start time and voting end time.
제6항에 있어서,
상기 서비스 서버는 상기 복수의 사용자 각각에 대하여 회원 가입 단계에서 입력한 상기 사용자 ID를 기준으로 상기 계좌 주소를 생성하고, 상기 회원 가입 단계에서 입력한 상기 비밀번호를 기준으로 상기 계좌 주소를 암호화하는 블록체인 기반 전자투표방법.
The method of claim 6,
The service server generates the account address for each of the plurality of users based on the user ID entered in the registration step, and encrypts the account address based on the password entered in the registration step. Based electronic voting method.
제6항에 있어서,
상기 서비스 서버는 상기 복호한 계좌 주소를 상기 어느 하나의 사용자에게 전달하고, 상기 어느 하나의 사용자로부터 상기 계좌 주소를 출발지 주소로 세션 값을 지정하여 투표를 진행한 상기 트랜잭션을 상기 블록체인 네트워크에 배포하는 블록체인 기반 전자투표방법.
The method of claim 6,
The service server delivers the decoded account address to the one user, and distributes the transaction in which the voting is performed by specifying the session value as the starting address from the one user to the blockchain network. Blockchain based electronic voting method.
삭제delete 컴퓨터에서 제1항 또는 제4항 중 어느 하나의 항에 기재된 블록체인 기반 전자투표방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for executing the blockchain-based electronic voting method according to any one of claims 1 to 4.
KR1020180071422A 2018-06-21 2018-06-21 Electronic voting method based on blockchain KR102014647B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180071422A KR102014647B1 (en) 2018-06-21 2018-06-21 Electronic voting method based on blockchain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180071422A KR102014647B1 (en) 2018-06-21 2018-06-21 Electronic voting method based on blockchain

Publications (1)

Publication Number Publication Date
KR102014647B1 true KR102014647B1 (en) 2019-10-21

Family

ID=68460330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180071422A KR102014647B1 (en) 2018-06-21 2018-06-21 Electronic voting method based on blockchain

Country Status (1)

Country Link
KR (1) KR102014647B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110930578A (en) * 2019-11-21 2020-03-27 山东爱城市网信息技术有限公司 Voting method, equipment and medium based on block chain
CN111062060A (en) * 2019-11-28 2020-04-24 杭州趣链科技有限公司 Voting proposal life cycle management method based on intelligent contract
KR102179498B1 (en) * 2020-04-13 2020-11-17 주식회사 한국정보보호경영연구소 Method for providing smart group bankbook service based decentralized identifier and system thereof
KR102186029B1 (en) * 2019-12-20 2020-12-03 (주) 모로보기 Electronic voting system using blockchain and electronic voting method using blockchain

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140098919A (en) * 2013-01-31 2014-08-11 한국전자통신연구원 Method of providing virtual machine for real time virtual desktop service and service gateway of the same
KR101626405B1 (en) * 2015-05-06 2016-06-01 주식회사 모바일컨버전스 Method and system for server security using dynamic address translation
KR101833323B1 (en) 2018-01-12 2018-02-28 한국스마트인증 주식회사 Method for Confirming Statement by Use of Block Chain Which Guarantees Anonymity and Prevents Sybil Attack
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140098919A (en) * 2013-01-31 2014-08-11 한국전자통신연구원 Method of providing virtual machine for real time virtual desktop service and service gateway of the same
KR101626405B1 (en) * 2015-05-06 2016-06-01 주식회사 모바일컨버전스 Method and system for server security using dynamic address translation
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
KR101833323B1 (en) 2018-01-12 2018-02-28 한국스마트인증 주식회사 Method for Confirming Statement by Use of Block Chain Which Guarantees Anonymity and Prevents Sybil Attack

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110930578A (en) * 2019-11-21 2020-03-27 山东爱城市网信息技术有限公司 Voting method, equipment and medium based on block chain
CN111062060A (en) * 2019-11-28 2020-04-24 杭州趣链科技有限公司 Voting proposal life cycle management method based on intelligent contract
CN111062060B (en) * 2019-11-28 2022-04-26 杭州趣链科技有限公司 Voting proposal life cycle management method based on intelligent contract
KR102186029B1 (en) * 2019-12-20 2020-12-03 (주) 모로보기 Electronic voting system using blockchain and electronic voting method using blockchain
KR102179498B1 (en) * 2020-04-13 2020-11-17 주식회사 한국정보보호경영연구소 Method for providing smart group bankbook service based decentralized identifier and system thereof

Similar Documents

Publication Publication Date Title
US11238543B2 (en) Payroll based blockchain identity
US11777726B2 (en) Methods and systems for recovering data using dynamic passwords
US11314891B2 (en) Method and system for managing access to personal data by means of a smart contract
US11082221B2 (en) Methods and systems for creating and recovering accounts using dynamic passwords
KR102084674B1 (en) Method for managing content based on blockchain and system performing the method
KR102014647B1 (en) Electronic voting method based on blockchain
CN110300973A (en) The foundation of alliance's block chain network
KR20190075771A (en) Authentication System Using Block Chain Through Distributed Storage after Separating Personal Information
US20210234702A1 (en) Multi-decentralized private blockchains network
JP2001326632A (en) Distribution group management system and method
CN105518687A (en) Secure data storage
US20220405765A1 (en) Know your customer (kyc) and anti-money laundering (aml) verification in a multi-decentralized private blockchains network
US20220021528A1 (en) Secure storage techniques utilizing consortium distributed ledgers
JP7114078B2 (en) Electronic authentication method and program
JP2023548572A (en) Storing sensitive data on the blockchain
Gupta et al. End to end secure e-voting using blockchain & quantum key distribution
KR102186029B1 (en) Electronic voting system using blockchain and electronic voting method using blockchain
Ernstberger et al. SoK: Data Sovereignty
Ghafourian et al. Combining blockchain and biometrics: A survey on technical aspects and a first legal analysis
TWI766171B (en) Account data processing method and account data processing system
Tahlil et al. AlgoCert: Adopt Non-transferable NFT for the Issuance and Verification of Educational Certificates using Algorand Blockchain
KR102531929B1 (en) Clinical information providing method and system based on blockchain enhancing security of personal information
Megha Authentication of Financial Wallet System and Data Protection using BlockChain
TWI737139B (en) Personal data protection application system and personal data protection application method
Fiore Providing trust to multi-cloud storage platforms through the blockchain