KR102143530B1 - Electronic voting server implementing on-line secret voting system based on block chain and its operation method - Google Patents

Electronic voting server implementing on-line secret voting system based on block chain and its operation method Download PDF

Info

Publication number
KR102143530B1
KR102143530B1 KR1020190060654A KR20190060654A KR102143530B1 KR 102143530 B1 KR102143530 B1 KR 102143530B1 KR 1020190060654 A KR1020190060654 A KR 1020190060654A KR 20190060654 A KR20190060654 A KR 20190060654A KR 102143530 B1 KR102143530 B1 KR 102143530B1
Authority
KR
South Korea
Prior art keywords
voting
server
blockchain
user
forgery
Prior art date
Application number
KR1020190060654A
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 KR1020190060654A priority Critical patent/KR102143530B1/en
Application granted granted Critical
Publication of KR102143530B1 publication Critical patent/KR102143530B1/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • G06Q2220/16Copy protection or prevention
    • G06Q2220/165Having origin or program ID
    • 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)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Educational Administration (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Suggested is an electronic voting server for creating a blockchain-based online voting system. According to one of various embodiments of the present invention, the electronic voting server includes: a user authentication confirmation part receiving an authentication result of a user from a certificate server issuing a digital certificate in accordance with a digital certificate request from a user terminal; a voting opening management part opening specific voting on a blockchain system by receiving information about voting opening from the user terminal; a user information management part issuing a blockchain wallet address to a user authenticated as a user possessing a vote for the specific voting through the digital certificate; a forgery detection part performing forgery detection in real time or at random time intervals with respect to data by node of the blockchain; a counting accumulation part creating a voting accumulation result by accumulating voting results after the termination of the voting; and a voting result verification part verifying the voting accumulation result created by the counting accumulation part. Therefore, the electronic voting server is capable of creating secret voting principles by managing voting-related information on each node of a blockchain system.

Description

블록체인 기반의 온라인 비밀 투표 시스템을 구축하는 전자투표 서버 및 이의 동작 방법{ELECTRONIC VOTING SERVER IMPLEMENTING ON-LINE SECRET VOTING SYSTEM BASED ON BLOCK CHAIN AND ITS OPERATION METHOD}Electronic voting server to build a blockchain-based online secret voting system and its operation method {ELECTRONIC VOTING SERVER IMPLEMENTING ON-LINE SECRET VOTING SYSTEM BASED ON BLOCK CHAIN AND ITS OPERATION METHOD}

본 발명의 다양한 실시예는 블록체인 기반의 온라인 비밀 투표 시스템을 구축하는 전자투표 서버 및 이의 동작 방법에 관한 것이다.Various embodiments of the present invention relate to an electronic voting server for constructing an online secret voting system based on a block chain and a method of operating the same.

IT 관련 기술이 발전하면서 전통적으로 오프라인 상에서만 이루어지던 활동들이 온라인 상으로 이동되는 속도가 가속화되고 있다. 그 중 하나는 선거 및 투표 관련 활동으로, 오프라인에서 투표 용지를 통해 주로 수행되던 투표가 온라인 상에서도 이루어지고 있다. 온라인 상에서 투표가 진행되는 경우, 투표함, 투표용지, 투표기구 등이 필요하지 않을뿐 아니라 투표가 진행되는 장소 및 해당하는 장소를 관리할 인원 또한 필요하지 않게 되어 금액적인 측면에서 절약이 이루어질 수 있다. 또한, 투표자들 또한 투표가 진행되는 특정 장소로 이동하지 않고도 자신이 보유하고 있는 전자기기를 통해 손쉽게 투표를 수행할 수 있어 시간적인 측면에서도 절약이 이루어질 수 있다.With the advancement of IT-related technologies, the speed at which activities traditionally performed only offline are moving online is accelerating. One of them is election and voting-related activities, and voting, which was mainly conducted offline through ballots, is also taking place online. When voting is conducted online, not only does not need a ballot box, ballot paper, voting mechanism, etc., but also the place where the voting takes place and the number of personnel to manage the place is not required, saving in terms of money. In addition, voters can also save time in terms of time as they can easily vote through their own electronic device without moving to a specific place where voting takes place.

다만, 온라인 상에서 투표가 이루어지는 경우 투표 결과에 대한 보안이 철저하게 지켜지는지에 대한 문제가 존재한다. 일차적으로는, 비밀투표 원칙과 관련하여 각각의 투표자들이 투표를 수행한 내용에 대한 비밀 유지가 완벽하게 이루어지는 지에 대한 이슈가 존재한다. 오프라인에서 투표가 진행되는 경우에는 투표 용지에 투표자를 특정할 수 있는 정보가 포함되지 않기 때문에 비밀투표 원칙이 손쉽게 지켜질 수 있지만, 온라인 상에서는 특정 투표자가 어떠한 후보자 또는 항목에 투표하였는지에 대한 데이터가 기록될 수 있기에 비밀 투표 원칙을 지키는 것이 어려울 수 있었다. However, in the case of online voting, there is a problem of whether the security of the voting results is strictly maintained. Firstly, regarding the secret ballot principle, there is an issue as to whether the confidentiality of what each voter voted for is completely confidential. In the case of offline voting, the secret voting principle can be easily followed because the ballot does not contain information that can identify the voter, but data on which candidate or item a specific voter voted on online is recorded. It could be difficult to keep the secret voting principle.

따라서, 온라인을 통한 투표 시스템 내에서 비밀 투표 기능을 지원하고 동시에 투표 결과의 위변조 가능성을 방지하기 위한 목적으로 블록체인 기술이 투표 시스템에 적용되어 왔다. 블록체인은 중앙 집중형 서버에 거래 기록을 보관하지 않고 거래에 참여하는 모든 사용자에게 거래 내역을 보내고 사용자들에 의해 상호 검증이 완료된 기록만을 체인형으로 결합하며 모든 사용자들이 이를 복제하여 저장하도록 하는 분산형 데이터 저장 기술이다.Therefore, blockchain technology has been applied to the voting system for the purpose of supporting the secret voting function within the online voting system and at the same time preventing the possibility of forgery of voting results. Blockchain does not store transaction records on a centralized server, but sends transaction details to all users participating in the transaction, combines only the records that have been mutually verified by users in a chain, and allows all users to duplicate and store them. Type data storage technology.

다만, 이와 같은 블록체인을 활용하여 투표 시스템을 구축하는데 있어서는, 블록체인 시스템을 투표에 활용하기 위한 별도의 서버 등이 필요하고 이와 같은 서버와 블록체인 시스템의 연계를 어떠한 방식으로 구성할지에 대한 연구개발이 계속되어 왔다. 또한, 투표가 종료된 후 투표 결과를 검증하는 방식과, 투표가 진행중인 경우에도 데이터의 위변조를 탐지하는 방식에 대한 구현 또한 보다 신뢰성 있는 방식으로 진행될 필요가 존재하였다.However, in constructing a voting system using such a block chain, a separate server for utilizing the block chain system for voting is required, and a study on how to configure the connection between such a server and the block chain system. Development has continued. In addition, there was a need to implement a method of verifying the voting result after the voting was over and a method of detecting forgery of data even when voting was in progress, and to proceed in a more reliable manner.

한국공개특허 제10-2018-0115727호Korean Patent Publication No. 10-2018-0115727

본 발명의 다양한 실시예는 블록체인 기술을 도입한 온라인 투표 시스템을 구축함에 있어, 비밀 투표 원칙을 구현하는 것을 그 목적으로 한다.Various embodiments of the present invention aim to implement a secret voting principle in building an online voting system incorporating blockchain technology.

본 발명의 다양한 실시예는 투표가 진행되는 과정이나 투표가 종료되고 난 후 블록체인 시스템 또는 투표 서버 상에서 발생하는 데이터의 위변조를 파악하는 것을 그 목적으로 한다. Various embodiments of the present invention aim to identify forgery and alteration of data occurring on a blockchain system or a voting server after a voting process or voting is completed.

본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

상술한 과제를 해결하기 위한 본 발명의 다양한 실시예 중 하나는, 블록체인 기반의 온라인 투표 시스템을 구현하는 전자투표 서버에 있어서, 사용자 단말기로부터의 디지털 인증서 요청에 따른 디지털 인증서 발급을 수행하는 인증서 서버로부터 사용자의 인증 결과를 수신하는 사용자 인증 확인부; 상기 사용자 단말기로부터 투표 개설에 대한 정보를 수신하여 블록체인 시스템 상에서 특정 투표의 개설을 수행하는 투표 개설 관리부; 상기 디지털 인증서를 통해 상기 특정 투표에 대한 투표권을 보유한 것으로 인증된 사용자에게 블록체인 지갑 주소를 발급하는 사용자 정보 관리부; 블록체인의 노드별 데이터에 대한 위변조 탐지를 실시간 또는 임의의 시간 간격으로 수행하는 위변조 탐지부; 투표가 종료된 이후 투표 결과에 대한 집계 처리를 수행하여 투표 집계 결과를 생성하는 개표 집계부; 및 상기 개표 집계부에 의해 생성된 투표 집계 결과에 대한 검증을 수행하는 투표 결과 검증부를 포함하는, 전자투표 서버를 제공할 수 있다.One of the various embodiments of the present invention for solving the above-described problem is, in an electronic voting server implementing an online voting system based on a block chain, a certificate server issuing a digital certificate according to a digital certificate request from a user terminal. A user authentication verification unit receiving an authentication result of the user from the user; A voting opening management unit for receiving information on voting opening from the user terminal and opening a specific voting on a blockchain system; A user information management unit for issuing a blockchain wallet address to a user who is authenticated as having a voting right for the specific voting through the digital certificate; A forgery detection unit that performs forgery detection of data for each node of the blockchain in real time or at random time intervals; After the voting is over, a counting unit for generating a voting count by performing counting on the voting results; And it is possible to provide an electronic voting server including a voting result verification unit that verifies the voting count result generated by the counting counting unit.

상기 투표 개설 관리부는, 상기 사용자 단말기부터 수신한 투표 개설에 대한 정보 중 적어도 일부를 블록체인 시스템 상에 저장하는 것을 특징으로 할 수 있다.The voting establishment management unit may store at least a part of information on voting opening received from the user terminal on a blockchain system.

상기 인증서 서버는, 사용자 단말기로부터 인증서 생성 요청을 수신하는 제1 단계; 서버 공개키와 랜덤으로 생성한 문자열을 사용자 단말기로 전송하는 제2 단계; 사용자 단말기로부터 상기 서버 공개키를 통해 암호화된 사용자 서명을 수신하는 제3 단계; 및 상기 서버 공개키를 통해 암호화된 사용자 서명을 서버 개인키를 통해 복호화하고 인증서를 생성한 후, 생성된 인증서를 사용자 공개키를 통해 암호화하여 사용자 단말기로 전송하는 제4 단계의 과정을 통해 디지털 인증서를 발급하는 것일 수 있다.The certificate server comprises: a first step of receiving a certificate generation request from a user terminal; A second step of transmitting a server public key and a randomly generated string to a user terminal; A third step of receiving a user signature encrypted through the server public key from a user terminal; And decrypting the user signature encrypted through the server public key through the server private key, generating a certificate, and encrypting the generated certificate through the user public key and transmitting the digital certificate to the user terminal. May be issuing.

상기 위변조 탐지부는, 적어도 하나 이상의 블록체인 노드로부터 수집한 투표 정보에 대한 해시값들과, 상기 전자투표 서버 상에 저장되어 있는 투표 정보에 대한 해시값의 비교를 통해 투표 결과의 위변조 행위를 감지할 수 있다.The forgery detection unit may detect forgery behavior of the voting result by comparing hash values for voting information collected from at least one block chain node and hash values for voting information stored on the electronic voting server. I can.

상기 위변조 탐지부는, 상기 전자투표 서버 및 각각의 블록체인 노드 중에서 위변조 행위가 감지된 위치를 특정하고, 위변조 행위가 감지된 위치에 대한 정보를 관리자 단말기로 전송할 수 있다.The forgery detection unit may specify a location where a forgery action is detected among the electronic voting server and each block chain node, and transmit information on a location where the forgery action is detected to an administrator terminal.

상기 위변조 탐지부는, 위변조 행위가 감지된 위치가 상기 전자투표 서버인 경우에는 진행되고 있는 해당 투표를 중지시키고, 위변조 행위가 감지된 위치가 블록체인 노드 중 하나일 경우 해당 투표를 계속하여 진행시키는 것을 특징으로 할 수 있다.The forgery detection unit stops the voting in progress when the location where the forgery act is detected is the electronic voting server, and continues to proceed with the voting if the location where the forgery act is detected is one of the blockchain nodes. It can be characterized.

상기 사용자 정보 관리부는, 상기 디지털 인증서를 통해 특정 투표에 대한 투표권을 보유한 것으로 인증된 사용자에게 발급된 블록체인 지갑 주소로 투표를 수행할 수 있는 자산을 제공한 후, 해당 투표에 대해 제공된 자산의 카운팅을 수행할 수 있다.The user information management unit provides an asset capable of performing voting with a blockchain wallet address issued to a user who is authenticated as having voting rights for a specific voting through the digital certificate, and then counts the assets provided for the voting. Can be done.

상기 투표 결과 검증부는, 특정 투표 내에서 투표의 대상이 되는 전체 투표 항목들 각각에 대한 블록체인 지갑 주소에 존재하는 자산 및 해당 투표에 대한 투표권을 보유한 것으로 인증된 사용자들의 블록체인 지갑 주소에 존재하는 자산의 총합과, 해당 투표에 대해 제공된 자산에 대해 카운팅된 숫자의 비교를 통해 투표 결과의 검증을 수행할 수 있다.The voting result verification unit exists in the blockchain wallet address of users who are authenticated as having the right to vote for the vote and assets in the blockchain wallet address for each of the voting items within a specific vote. Verification of the voting result can be performed by comparing the total number of assets and the number counted for the assets provided for that voting.

상기 투표 결과 검증부는, 상기 투표 결과 검증부의 비교 결과, 상기 자산의 총합과 해당 투표에 대해 제공된 자산에 대해 카운팅된 숫자가 일치하지 않는 경우 불일치에 대한 정보를 블록체인 상에 저장하는 것을 특징으로 할 수 있다.The voting result verification unit is characterized in that when the comparison result of the voting result verification unit, the total amount of the assets and the number counted for the asset provided for the voting do not match, information on the inconsistency is stored on the blockchain. I can.

본 발명의 다른 실시예에 따르면, 전자투표 서버가 블록체인 기반의 온라인 투표 시스템을 구현하는 방법에 있어서, 사용자 단말기로부터의 디지털 인증서 요청에 따른 디지털 인증서 발급을 수행하는 인증서 서버로부터 사용자의 인증 결과를 수신하는 단계; 상기 사용자 단말기로부터 투표 개설에 대한 정보를 수신하여 블록체인 시스템 상에서 특정 투표의 개설을 수행하는 단계; 상기 디지털 인증서를 통해 상기 특정 투표에 대한 투표권을 보유한 것으로 인증된 사용자에게 블록체인 지갑 주소를 발급하는 단계; 블록체인의 노드별 데이터에 대한 위변조 탐지를 실시간 또는 임의의 시간 간격으로 수행하는 단계; 투표가 종료된 이후 투표 결과에 대한 집계 처리를 수행하여 투표 집계 결과를 생성하는 단계; 및 상기 개표 집계부에 의해 생성된 투표 집계 결과에 대한 검증을 수행하는 단계를 포함하는, 블록체인 기반의 온라인 투표 시스템 구현 방법이 제공될 수 있다.According to another embodiment of the present invention, in a method of implementing an online voting system based on a block chain by an electronic voting server, a user's authentication result is received from a certificate server that issues a digital certificate according to a digital certificate request from a user terminal. Receiving; Receiving information on voting opening from the user terminal and opening a specific voting on a blockchain system; Issuing a blockchain wallet address to a user who is authenticated as having voting rights for the specific voting through the digital certificate; Detecting forgery and alteration of data for each node of the blockchain in real time or at random time intervals; Generating a voting count result by performing aggregate processing on the voting result after the voting is over; And, a method of implementing an online voting system based on a block chain may be provided, including the step of verifying the result of the voting count generated by the counting unit.

본 발명의 다양한 실시예 중 하나에 따르면, 투표자들과 관련된 정보는 전자투표 서버 상에서 관리하고 투표와 직접 관련된 정보는 블록체인 시스템의 각 노드 상에서 관리되도록 함으로써 비밀 투표 원칙을 구현할 수 있다.According to one of various embodiments of the present invention, information related to voters is managed on an electronic voting server, and information directly related to voting is managed on each node of a blockchain system, thereby implementing the secret voting principle.

본 발명의 다양한 실시예 중 하나에 따르면, 전자투표 서버 및 블록체인 시스템의 각 노드들에서 관리되는 투표 관련 데이터의 해시값 비교 등을 통해 데이터의 위변조 감지를 수행할 수 있다.According to one of various embodiments of the present invention, forgery detection of data may be performed by comparing hash values of voting-related data managed by each node of an electronic voting server and a blockchain system.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 일 실시예에 따른 블록체인을 기반으로 구축된 온라인 투표 시스템의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 전자투표 서버의 구성을 개략적으로 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 디지털 인증서의 발급 과정을 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 전자투표 서버의 위변조 탐지 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 온라인 투표 시스템의 사용자가 자신의 투표권을 행사하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 전자투표 서버가 투표의 개설부터 투표의 종료 후 검증까지의 동작을 수행하는 과정을 설명하기 위한 흐름도이다.
1 is a schematic diagram of an online voting system built based on a block chain according to an embodiment of the present invention.
2 is a block diagram schematically showing the configuration of an electronic voting server according to an embodiment of the present invention.
3 is a flowchart showing a process of issuing a digital certificate according to an embodiment of the present invention.
4 is a diagram illustrating a forgery detection method of an electronic voting server according to an embodiment of the present invention.
5 is a view for explaining a method for a user of an online voting system according to an embodiment of the present invention to exercise his or her voting right.
6 is a flowchart illustrating a process in which an electronic voting server according to an embodiment of the present invention performs an operation from opening a voting to verifying after the voting ends.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terms used in the present specification are for describing exemplary embodiments and are not intended to limit the present invention. In the present specification, the singular form also includes the plural form unless otherwise specified in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components other than the components mentioned. Throughout the specification, the same reference numerals refer to the same components, and “and/or” includes each and every combination of one or more of the components mentioned. Although "first", "second", etc. are used to describe various components, it goes without saying that these components are not limited by these terms. These terms are only used to distinguish one component from another component. Therefore, it goes without saying that the first component mentioned below may be the second component within the technical spirit of the present invention.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a certain part of the specification "includes" a certain component, this means that other components may be further included instead of excluding other components unless otherwise specified. In addition, terms such as “... unit” and “module” described in the specification mean a unit that processes at least one function or operation, which may be implemented in hardware or software, or a combination of hardware and software. .

이하, 본 명세서 상에서 "특정 투표"라 함은 하나의 주제에 대해 사용자들이 자신의 의견을 개진하는 하나의 절차를 의미할 수 있다. 하나의 투표 내에서는 투표의 대상이 되는 투표 항목들이 존재할 수 있으며, 해당 투표에 대한 투표권을 보유한 사용자들이 존재할 수 있다.Hereinafter, in this specification, the term "specific voting" may mean one procedure for users to express their opinions on one subject. Voting items subject to voting may exist within one voting, and users who have voting rights for the corresponding voting may exist.

도 1은 본 발명의 일 실시예에 따른 블록체인을 기반으로 구축된 온라인 투표 시스템의 개략도이다.1 is a schematic diagram of an online voting system built based on a block chain according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 온라인 투표 시스템(10)은 블록체인 기술을 기반으로 하여 선거 내용 및 결과의 위변조를 방지하고 투표인이 어떠한 항목 또는 후보자에게 투표권을 행사하였는지 여부에 대한 정보를 타인이 열람할 수 없도록 관리하여 비밀 선거 원칙을 지킬 수 있도록 하는 시스템이다.The online voting system 10 according to an embodiment of the present invention prevents forgery of election contents and results based on blockchain technology, and provides information on which items or candidates the voter casts the right to vote. It is a system that keeps the principle of secret election by managing it so that it cannot be viewed.

일 실시예에 따른 온라인 투표 시스템(10)은 전자투표 서버(100), 사용자 단말기(200), 인증서 서버(300) 및 블록체인 시스템(400)으로 구성될 수 있다.The online voting system 10 according to an embodiment may be composed of an electronic voting server 100, a user terminal 200, a certificate server 300, and a blockchain system 400.

전자투표 서버(100)는 투표의 개설, 각 투표별로 투표권을 행사할 수 있는 사용자들에 대한 정보 관리, 투표가 진행되는 경우 투표의 진행 현황 관리, 투표 결과에 대한 집계 처리 등을 수행할 수 있다.The electronic voting server 100 may open a voting, manage information on users who can exercise voting rights for each voting, manage voting progress when voting is in progress, and aggregate processing of voting results.

본 발명의 일 실시예에 따르면, 온라인 투표 시스템(10)은 블록체인 서버(미도시됨)를 추가적으로 포함하고, 블록체인 서버는 블록체인 시스템(400)과의 통신을 통해 블록체인 상에서 관리되는 투표 관련 데이터의 위변조 탐지 또는 블록체인 상에서 관리되는 투표 관련 데이터를 통해 수행되는 투표 집계 결과 검증을 수행할 수 있다.According to an embodiment of the present invention, the online voting system 10 additionally includes a block chain server (not shown), and the block chain server is a voting managed on the block chain through communication with the block chain system 400. It is possible to detect forgery of related data or verify the result of voting aggregation performed through voting-related data managed on the blockchain.

본 발명의 일 실시예에 따르면, 상기와 같은 블록체인 서버는 전자투표 서버(100) 또는 인증서 서버(300)와 통합되는 형태로 구성될 수 있으며, 본 명세서 상에서는 설명의 편의를 위해 블록체인 시스템(400)과 연계되는 블록체인 서버의 기능이 전자투표 서버(100) 내에 포함된 것으로 가정하고 설명하기로 한다. 다만, 발명의 형태는 이에 제한되지 않으며, 블록체인 서버는 전자투표 서버(100) 및 인증서 서버(300)와 별도로 구성될 수도 있고, 인증서 서버(300)와 통합된 형태로 구성될 수도 있다.According to an embodiment of the present invention, the blockchain server as described above may be configured in a form integrated with the electronic voting server 100 or the certificate server 300, and in the present specification, a blockchain system ( 400) will be described on the assumption that the function of the blockchain server connected to the electronic voting server 100 is included in the electronic voting server 100. However, the form of the invention is not limited thereto, and the blockchain server may be configured separately from the electronic voting server 100 and the certificate server 300, or may be configured in a form integrated with the certificate server 300.

사용자 단말기(200)는 하나의 주제에 대한 특정 투표 자체를 등록시키거나, 특정 투표의 투표 항목들에 대한 투표권을 행사하는 사용자에 의해 제어되는 단말기로 구성될 수 있다.The user terminal 200 may be configured as a terminal that is controlled by a user who registers a specific vote for one subject or exercises voting rights for voting items of a specific vote.

사용자 단말기(200)는 사용자에 의해 제어되며, 웹 브라우저 또는 사용자 단말기(200) 상에 설치된 어플리케이션 등을 통하여 전자투표 서버(100) 및 인증서 서버(300)에 접속할 수 있다. 사용자 단말기(200)는 전자투표 서버(100)로부터 각종 데이터를 수신하여 디스플레이부를 통해 사용자에게 표시할 수 있으며, 사용자는 사용자 단말기(200)의 입력부를 통하여 각종 정보를 입력하여 전자투표 서버(100)로 전송되도록 할 수 있다.The user terminal 200 is controlled by a user, and can access the electronic voting server 100 and the certificate server 300 through a web browser or an application installed on the user terminal 200. The user terminal 200 may receive various data from the electronic voting server 100 and display it to the user through the display unit, and the user inputs various information through the input unit of the user terminal 200 and the electronic voting server 100 Can be sent to.

사용자 단말기(200)는 동작에 필요한 정보들을 저장하는 메모리, 동작에 필요한 각종 연산을 수행하는 CPU와 같은 중앙처리장치, 입출력 장치 등을 포함하여 구성될 수 있다.The user terminal 200 may include a memory storing information necessary for an operation, a central processing unit such as a CPU that performs various operations necessary for an operation, an input/output device, and the like.

이러한 사용자 단말기(200)는 휴대폰, 스마트폰, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 태블릿 PC, 등과 같이 네트워크를 통하여 웹 서버와 연결될 수 있는 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있으며, 개인용 컴퓨터(예를 들어, 데스크탑 컴퓨터, 노트북 컴퓨터 등), 워크스테이션, PDA, 웹 패드 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기 중 하나일 수도 있다.The user terminal 200 includes all kinds of handhelds that can be connected to a web server through a network, such as a mobile phone, a smart phone, a personal digital assistant (PDA), a portable multimedia player (PMP), and a tablet PC. It may include a wireless communication device, and is equipped with a memory means such as a personal computer (for example, a desktop computer, a notebook computer, etc.), a workstation, a personal digital assistant (PDA), a web pad, etc., and is equipped with a microprocessor. It could be one.

본 발명의 일 실시예에 따르면, 사용자 단말기(200)가 전자투표 서버(100)에 접속하는 과정에서 활용하는 어플리케이션이 사용자 단말기(200) 상에 설치되는 루트는 각종 어플리케이션 스토어를 통한 것일 수 있다. 해당 어플리케이션의 다운로드는 무료로 이루어질 수도 있지만, 사용자는 어플리케이션 스토어 상에서 유료로 등록된 전자투표 관련 어플리케이션을 다운로드하여 사용자 단말기(200) 상에 설치하기 위하여 소정의 가격을 지불하여야 할 수 있으며, 해당 어플리케이션의 제작사는 이를 통해 수익을 창출할 수도 있다. 또한, 해당 어플리케이션의 수익 창출은 어플리케이션의 동작 화면 상에서 노출되는 광고를 통해 발생할 수도 있다. 어플리케이션의 제작자는 광고의 게재 기간에 따른 광고비를 광고주로부터 받을 수도 있지만, 광고가 노출되는 빈도수, 광고가 사용자로부터 선택되어 광고주의 상품 또는 서비스와 관련된 웹 페이지로 링크되는 횟수 등을 기반으로 하여 광고주로부터 광고비를 받을 수도 있다.According to an embodiment of the present invention, a route through which an application used in the process of accessing the user terminal 200 to the electronic voting server 100 is installed on the user terminal 200 may be through various application stores. The application may be downloaded for free, but the user may have to pay a predetermined price to download the electronic voting-related application registered for a fee on the application store and install it on the user terminal 200. Producers can also generate revenue through this. In addition, revenue generation of the application may occur through advertisements displayed on the operation screen of the application. The creator of the application may receive an advertisement fee from the advertiser according to the advertisement period, but from the advertiser based on the number of times the advertisement is displayed and the number of times the advertisement is selected by the user and linked to a web page related to the advertiser's product or service. You can also get paid for advertising.

이와 같은 어플리케이션의 실행을 위해 필요한 동작(예: 명령어, 루틴 또는 인스트럭션 등)들은 사용자 단말기(200)의 메모리에 프로그램의 형태로 저장될 수 있으며, 이러한 프로그램은 해당 어플리케이션이 실행되는 경우 사용자 단말기(200)의 프로세서에 의해 호출되어 상기 프로그램에 저장된 동작들을 수행하도록 상기 사용자 단말기(200)를 제어할 수 있다.Operations required for execution of such an application (eg, instructions, routines, instructions, etc.) may be stored in the memory of the user terminal 200 in the form of programs, and such programs may be stored in the user terminal 200 when the corresponding application is executed. The user terminal 200 may be controlled to perform operations that are called by the processor of) and stored in the program.

인증서 서버(300)는 사용자가 자신이 특정 투표에 대해 보유한 투표권을 행사하기 위해서 필요한 사전 절차인 사용자 인증을 수행할 수 있도록 하는 기능을 제공할 수 있다.The certificate server 300 may provide a function that enables a user to perform user authentication, which is a preliminary procedure necessary to exercise the voting rights held by the user for a specific vote.

본 발명의 일 실시예에 따르면, 특정 투표에 대한 투표권을 행사하기 위해서는 개인 인증이 필수적으로 요구될 수 있으며, 이와 달리 개인 인증이 인증서를 통해 수행되지 않아도 투표권 행사가 가능한 투표가 존재할 수도 있다. 또한, 투표의 성격에 따라 인증서 서버(300)를 통해 공인 인증서를 발급 받고 이를 통한 인증이 완료된 경우에만 투표권 행사가 가능한 경우가 존재할 수 있고, 간단한 휴대폰 번호 인증을 통해 투표권 행사가 가능한 경우가 존재할 수도 있으며, 특별한 인증 없이 투표권 행사가 가능한 경우도 존재할 수 있다.According to an embodiment of the present invention, personal authentication may be required in order to exercise the right to vote for a specific vote. Unlike this, even if personal authentication is not performed through a certificate, there may be a vote that allows the exercise of the right to vote. In addition, depending on the nature of the voting, there may be cases where voting rights can be exercised only when a public certificate is issued through the certificate server 300 and authentication is completed, and there may be cases where voting rights can be exercised through simple mobile phone number authentication. There may be cases where voting rights can be exercised without special authentication.

인증서 서버(300)는 사용자 단말기(200)의 요청에 따라 소정의 절차를 진행하고 디지털 인증서를 발급하여 사용자 단말기(200)에 전송할 수 있다. 인증서 발급 과정에서 인증서 서버(300)와 사용자 단말기(200) 사이에서 진행되는 인터렉션 등은 추후 상세히 기술하기로 한다.The certificate server 300 may perform a predetermined procedure according to the request of the user terminal 200, issue a digital certificate, and transmit the digital certificate to the user terminal 200. The interaction between the certificate server 300 and the user terminal 200 in the process of issuing a certificate will be described in detail later.

블록체인 시스템(400)은 다수의 블록체인 노드로 이루어질 수 있다. 블록체인은 데이터를 블록이라고 지칭되는 단위로 구성하되, 복수의 블록을 체인형태로 연결하고 수많은 컴퓨팅 시스템에 이를 복제하여 저장하는 분산형 데이터 저장 기술이다. 즉, 블록체인은 중앙 집중형 서버에 거래 기록을 보관하지 않고 거래에 참여하는 개개인의 서버들이 모여 네트워크를 유지하고 관리하는데, 블록체인 시스템(400)의 참여자에 해당하는 개개인의 서버 각각은 '노드'라고 지칭된다.The blockchain system 400 may be composed of a number of blockchain nodes. Blockchain is a decentralized data storage technology that organizes data into units called blocks, connects multiple blocks in a chain, and copies and stores them in numerous computing systems. In other words, the blockchain maintains and manages the network by gathering individual servers participating in the transaction without storing transaction records on a centralized server, and each individual server corresponding to a participant of the blockchain system 400 is a'node Is referred to as'.

본 발명의 일 실시예에 따른 블록체인 시스템(400)은 복수의 노드로 이루어진 전체 네트워크 시스템을 의미할 수 있다. 또한, 본 발명의 블록체인 시스템(400)은 알려진 블록체인 기술 중 하나를 차용하여 활용할 수 있다. 공중에 널리 알려진 블록체인 기술로는 비트코인(Bitcoin), 이더리움(Ethereum), 이오스(EOS) 등이 존재한다.The block chain system 400 according to an embodiment of the present invention may mean an entire network system composed of a plurality of nodes. In addition, the blockchain system 400 of the present invention can be utilized by borrowing one of known blockchain technologies. Blockchain technologies widely known to the public include Bitcoin, Ethereum, and EOS.

도 2는 본 발명의 일 실시예에 따른 전자투표 서버(100)의 구성을 개략적으로 나타낸 블록도이다.2 is a block diagram schematically showing the configuration of an electronic voting server 100 according to an embodiment of the present invention.

도 2를 참조하면, 전자투표 서버(100)는 사용자 인증 확인부(110), 투표 개설 관리부(120), 사용자 정보 관리부(130), 위변조 탐지부(140), 개표 집계부(150), 투표 결과 검증부(160), 통신부(170), 저장부(180) 및 제어부(190)를 포함하여 구성될 수 있다.Referring to FIG. 2, the electronic voting server 100 includes a user authentication verification unit 110, a voting establishment management unit 120, a user information management unit 130, a forgery detection unit 140, a counting unit 150, and voting. A result verification unit 160, a communication unit 170, a storage unit 180, and a control unit 190 may be included.

설명의 편의를 위하여 전자투표 서버(100) 내에서 각각의 역할을 수행하는 주체들을 ~부 또는 ~모듈의 형태로 표시하였으나, 각각의 부분들은 전자투표 서버(100) 내에서 동작하는 서브 프로그램 모듈 또는 제어부(190)를 기능적으로 분류한 구성들일 수 있다. 이러한 프로그램 모듈들은 각 동작을 수행하거나, 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하는 개념이지만, 이에 제한되지는 않는다.For convenience of explanation, subjects that perform each role in the electronic voting server 100 are displayed in the form of ~parts or ~modules, but each part is a subprogram module or a subprogram that operates within the electronic voting server 100 They may be components in which the control unit 190 is functionally classified. These program modules are concepts encompassing routines, subroutines, programs, objects, components, data structures, etc. that perform each operation or execute a specific abstract data type, but are not limited thereto.

사용자 인증 확인부(110)는 사용자 신원을 확인하는 인증 절차를 수행할 수 있으며, 일 실시예에 따르면 이와 같은 사용자 인증은 인증서 서버(300)와의 협력을 통해 수행될 수 있다. 즉, 사용자 인증 확인부(110)는 사용자 단말기(200)로부터의 디지털 인증서 요청에 따른 디지털 인증서 발급을 수행하는 인증서 서버(300)로부터, 사용자 인증 결과를 수신할 수 있다.The user authentication verification unit 110 may perform an authentication procedure to confirm the user identity, and according to an embodiment, such user authentication may be performed through cooperation with the certificate server 300. That is, the user authentication verification unit 110 may receive a user authentication result from the certificate server 300 that issues a digital certificate according to a digital certificate request from the user terminal 200.

본 발명의 일 실시예에 따르면 사용자는 특정 투표에 대한 투표권을 행사하기 위해서 디지털 형태의 인증서 발급을 받아야 할 수 있다. 이와 같은 인증서의 발급은 사용자 단말기(200)와 인증서 서버(300) 간의 인터렉션을 통해서 이루어질 수 있다.According to an embodiment of the present invention, a user may need to obtain a digital certificate in order to exercise the right to vote for a specific vote. Issuance of such a certificate may be performed through an interaction between the user terminal 200 and the certificate server 300.

사용자 단말기(200)와 인증서 서버(300) 간의 인터렉션을 통해 인증서가 발급되는 과정의 일 예시를 살펴보면, 인증서 서버(300)는 사용자 단말기(200)로부터 인증서 생성 요청을 수신하는 제1 단계; 서버 공개키와 랜덤으로 생성한 문자열을 사용자 단말기(200)로 전송하는 제2 단계; 사용자 단말기(200)로부터 상기 서버 공개키를 통해 암호화된 사용자 서명을 수신하는 제3 단계; 및 상기 서버 공개키를 통해 암호화된 사용자 서명을 서버 개인키를 통해 복호화하고 인증서를 생성한 후, 생성된 인증서를 사용자 공개키를 통해 암호화하여 사용자 단말기(200)로 전송하는 제4 단계의 과정을 통해 디지털 인증서를 발급할 수 있다.Looking at an example of a process of issuing a certificate through an interaction between the user terminal 200 and the certificate server 300, the certificate server 300 includes: a first step of receiving a certificate generation request from the user terminal 200; A second step of transmitting a server public key and a randomly generated string to the user terminal 200; A third step of receiving a user signature encrypted through the server public key from the user terminal 200; And decrypting the user signature encrypted through the server public key through the server private key, generating a certificate, and then encrypting the generated certificate through the user public key and transmitting the encrypted certificate to the user terminal 200. Digital certificates can be issued through

인증서 발급의 각 단계를 살펴보면, 인증서 서버(300)가 제2 단계에서 사용자 단말기(200)로 서버 공개키와 랜덤으로 생성한 문자열을 전송하면, 사용자 단말기(200) 상에서는 사용자의 서명을 서버 공개키를 통해 암호화할 수 있다. 이와 같은 암호화 과정에서는 사용자에 대한 정보뿐 아니라 인증서 서버(300)에서 랜덤으로 생성된 문자열이 함께 사용자 서명 상에 포함될 수 있다. Looking at each step of issuing a certificate, when the certificate server 300 transmits a server public key and a randomly generated string to the user terminal 200 in the second step, the user's signature is transferred to the server public key. Can be encrypted through. In this encryption process, not only information on the user but also a character string randomly generated by the certificate server 300 may be included in the user signature.

인증서 서버(300)는 제3 단계에서 사용자 서명을 수신하고, 제 4단계에서 서버 공개키를 통해 암호화된 사용자 서명을 서버 개인키를 통해 복호화할 수 있다. 이와 같은 복호화 단계를 통해 인증서 서버(300)는 사용자 서명 정보를 획득할 수 있으며, 추가적으로 이전에 랜덤으로 생성한 문자열이 정확히 포함되어 있는지 여부를 확인할 수 있다. 인증서 서버(300)는 인증서를 생성한 후 이를 사용자 공개키를 사용하여 암호화화여 사용자 단말기(200)로 전송할 수 있으며, 사용자 단말기(200)는 이를 수신하여 사용자 개인키를 통해 복호화함으로써 디지털 인증서를 발급받아 저장할 수 있다.The certificate server 300 may receive the user signature in the third step, and decrypt the user signature encrypted through the server public key in the fourth step through the server private key. Through such a decryption step, the certificate server 300 may obtain user signature information, and additionally, it may check whether a previously randomly generated character string is accurately included. After generating the certificate, the certificate server 300 may encrypt the certificate using a user public key and transmit it to the user terminal 200, and the user terminal 200 receives it and decrypts it using the user private key to issue a digital certificate. You can receive and store.

사용자 단말기(200)는 이와 같은 과정을 통해 발급 받은 디지털 인증서를 활용하여 추후 사용자 인증이 필요한 시점에 인증서 서버(300)와의 추가 인터렉션을 통해서 사용자 인증을 수행하고 인증 결과가 사용자 단말기(200) 또는 인증서 서버(300)를 통해 사용자 인증 확인부(110)에 전달되도록 할 수 있다.The user terminal 200 performs user authentication through an additional interaction with the certificate server 300 at a time when user authentication is required later by using the digital certificate issued through this process, and the authentication result is the user terminal 200 or the certificate It may be transmitted to the user authentication verification unit 110 through the server 300.

사용자 인증 확인부(110)는 상기와 같이 인증서를 통해 수행된 인증 결과를 통해 사용자를 확인할 수도 있지만, 휴대폰 번호 인증과 같은 방식으로 사용자 인증을 수행할 수도 있다. 사용자 인증 확인부(110)가 휴대폰 번호 인증을 통해 사용자 인증을 수행하는 경우 전자투표 서버(100)는 인증서 서버(300)가 아닌 통신사 서버와의 연계를 통하여 인증 절차를 진행할 수도 있다.The user authentication verification unit 110 may verify the user through the authentication result performed through the certificate as described above, but may perform user authentication in the same manner as mobile phone number authentication. When the user authentication verification unit 110 performs user authentication through mobile phone number authentication, the electronic voting server 100 may perform an authentication procedure through linkage with a communication company server instead of the certificate server 300.

투표 개설 관리부(120)는 투표에 대한 개설 절차 및 투표 개설과 관련된 정보의 관리를 수행할 수 있다. 본 발명의 일 실시예에 따르면, 특정 주제에 대한 투표의 개설은 전자투표 서버(100)의 관리자뿐 아니라 일반 사용자에 의해서 수행될 수도 있다. 즉, 사용자 단말기(200)는 관리자 단말기를 포함하는 개념일 수 있으며, 투표 개설 관리부(120)는 사용자 단말기(200)로부터 투표 개설에 대한 정보를 수신하고, 블록체인 시스템(400) 상에서 특정 투표의 개설을 수행할 수 있다.The voting establishment management unit 120 may manage information related to voting opening procedures and voting opening. According to an embodiment of the present invention, opening of a voting on a specific subject may be performed by a general user as well as an administrator of the electronic voting server 100. That is, the user terminal 200 may be a concept including a manager terminal, and the voting opening management unit 120 receives information on voting opening from the user terminal 200, and performs a specific voting on the block chain system 400. Opening can be performed.

투표를 개설하기 위해서는 투표의 개설에 대한 정보의 입력이 필요하다. 투표의 개설에 대한 정보는 투표의 주제, 투표가 진행되는 기간, 투표의 방식, 투표의 대상이 되는 항목, 투표권을 행사할 수 있는 사용자의 조건 또는 투표자들의 명부, 투표 집계 및 결과 도출 방식 등이 존재할 수 있다. 예를 들어, 투표의 방식에 있어서는, 한정되어 있는 선택지 중 일부를 선택하는 객관식 투표 형태, 투표의 질문에 서술형으로 답변하는 주관식 투표 형태, 2개의 항목 중 하나를 선택하는 VS 형의 찬반투표 형태, 각각의 항목에 대한 선호도를 입력하는 선호도 투표 형태, 투표의 문항 각각에 순위를 선택하여 가중치를 부여할 수 있는 가중치 투표 형태 등이 존재할 수 있으며, 관리자 또는 투표를 개설하고자 하는 사용자는 이와 같은 다양한 형태의 투표 중 하나를 선택하여 투표를 개설할 수 있다.In order to open a vote, it is necessary to enter information on opening a vote. Information on the establishment of voting includes the subject of the voting, the period during which the voting is held, the method of voting, the items subject to voting, the conditions of the users who can exercise the voting rights or the list of voters, the method of counting voting and deriving results. I can. For example, in the method of voting, a multiple-choice voting form in which some of the limited options are selected, a short answer voting form in which a voting question is answered in a narrative form, a VS-type voting form in which one of two items is selected, There may be a preference voting form for entering the preference for each item, a weighted voting form that can assign a weight to each of the voting questions by selecting a ranking, and the administrator or user who wishes to open a voting may have such various forms. You can open a vote by selecting one of the votes in

본 발명의 일 실시예에 따르면, 투표 개설 관리부(120)는 사용자 단말기(200)를 통해 수신한 투표 개설에 대한 정보의 적어도 일부를 블록체인 시스템(400) 상에 저장되도록 할 수 있다. 이와 같은 동작을 통해 온라인 투표 시스템(10)은 투표 결과에 따라 투표 결과가 아닌 투표 개설 정보를 위변조 하는 행위를 방지할 수 있다. 즉, 예를 들어, A 안건에 대한 찬반 투표를 진행하였는데 그 결과에 대한 위변조가 시스템 상 불가능하도록 설계된 경우, A 안건을 B 안건으로 변경하거나 투표의 질문 사항을 반대로 위조하여 정반대의 투표 결과가 나온 것과 같이 조작을 수행하고자 하는 시도가 존재할 수 있다. 투표 개설 관리부(120)는 이와 같은 투표 개설 정보의 위변조를 방지하기 위해 투표 개설 정보 중 적어도 일부가 블록체인 시스템(400) 상에 저장되도록 할 수 있으며, 특히 투표의 주제에 대한 정보가 블록체인 시스템(400) 상에 저장되도록 할 수 있다.According to an embodiment of the present invention, the voting opening management unit 120 may store at least a part of information on voting opening received through the user terminal 200 on the blockchain system 400. Through this operation, the online voting system 10 can prevent an act of forgery of voting opening information other than the voting result according to the voting result. That is, for example, if a vote for or against item A was conducted and the system was designed to prevent forgery and alteration of the result, the opposite vote result was obtained by changing the item A to item B or countering the questionnaire of the vote. As such, there may be attempts to perform an operation. The voting opening management unit 120 may allow at least part of the voting opening information to be stored on the blockchain system 400 in order to prevent such forgery and falsification of the voting opening information, and in particular, information on the subject of voting can be stored in the blockchain system. It can be stored on 400.

사용자 정보 관리부(130)는 온라인 투표 시스템을 사용하는 사용자들의 정보를 관리할 수 있다. 사용자 정보 관리부(130)가 관리하는 사용자 정보는 사용자들의 성명, 전화번호, 주민등록번호, 주소, 아이디, 비밀번호 등을 포함할 수 있으며 이와 같은 개인 정보는 전자투표 서버(100) 내에서 암호화되어 저장될 수 있다.The user information management unit 130 may manage information of users who use the online voting system. User information managed by the user information management unit 130 may include the user's name, phone number, social security number, address, ID, password, etc., and such personal information may be encrypted and stored in the electronic voting server 100. have.

사용자 정보 관리부(130)는 특정 투표에 대해 투표권을 보유한 것으로 확인된 사용자에 대해 블록체인 지갑 주소를 발급할 수 있으며, 해당 주소로 투표를 수행할 수 있는 자산을 제공할 수 있다. 일 실시예에 따르면 이와 같은 사용자의 확인은 디지털 인증서를 통해 수행되는 인증일 수 있다.The user information management unit 130 may issue a blockchain wallet address to a user who is confirmed to have voting rights for a specific voting, and may provide an asset capable of performing voting with the address. According to an embodiment, such user verification may be authentication performed through a digital certificate.

특정 투표에 대해 투표권을 보유한 것으로 확인된 사용자의 블록체인 지갑 주소로 제공되는 자산은 코인, 토큰 등으로 지칭될 수 있으며, 이하 명세서 상에서 해당 자산을 코인으로 지칭하기로 한다. 하나의 코인은 하나의 투표권을 의미할 수 있으며, 기본적인 투표에서는 한 사람의 사용자에게 하나의 코인이 제공되는 것이 원칙이지만, 투표의 종류에 따라 제공되는 코인의 수는 상이할 수 있다.Assets provided to the blockchain wallet address of a user who is confirmed to have the right to vote for a specific vote may be referred to as coins, tokens, etc., and the assets will be referred to as coins in the following specification. One coin can mean one voting right, and in basic voting, one coin is provided to one user in principle, but the number of coins provided may vary depending on the type of vote.

사용자 정보 관리부(130)는 특정 투표에 대한 투표권을 보유한 것으로 확인 또는 인증된 사용자의 블록체인 지갑 주소로 투표를 수행할 수 있는 자산인 코인을 제공한 후, 해당 투표에 대해 제공된 코인의 카운팅을 수행할 수 있다. 사용자 정보 관리부(130)는 이와 같은 카운팅을 수행하며 코인이 제공된 사용자의 개인 정보와 관련하여, 특정 투표에 대한 투표권이 제공되었다는 로그를 기록할 수 있다. 이와 같은 사용자 정보 관리부(130)의 카운팅에 의해, 특정 투표가 종료된 이후 사용자들에게 제공된 코인의 수와, 블록체인 지갑들에 존재하는 코인들의 수가 비교될 수 있다.The user information management unit 130 provides a coin, which is an asset that can perform voting with the user's blockchain wallet address, confirmed or authenticated as having the right to vote for a specific voting, and then performs counting of the coin provided for the voting. can do. The user information management unit 130 may perform such counting and record a log indicating that a voting right for a specific vote has been provided in relation to the personal information of the user provided with the coin. By such counting by the user information management unit 130, the number of coins provided to users after a specific voting is ended and the number of coins present in the blockchain wallets can be compared.

위변조 탐지부(140)는 블록체인 시스템(400) 상에 존재하는 복수의 노드별 데이터에 대한 위변조 탐지를 수행할 수 있으며, 이와 같은 위변조 탐지는 실시간으로 이루어질 수도 있으며, 임의의 시간 간격을 두고 이루어질 수도 있다.The forgery detection unit 140 may perform forgery detection of data for each node existing on the blockchain system 400, and such forgery detection may be performed in real time, or at random time intervals. May be.

위변조 탐지부(140)는 적어도 하나 이상의 블록체인 노드로부터 수집한 투표 정보에 대한 해시값과, 전자투표 서버(100) 상에 저장되어 있는 투표 정보에 대한 해시값의 비교를 통해 위변조 행위를 감지할 수 있다.The forgery detection unit 140 detects forgery behavior by comparing a hash value for voting information collected from at least one blockchain node and a hash value for voting information stored on the electronic voting server 100. I can.

해시값이란, 주어진 원문이 해시 함수를 통해 생성된 값일 수 있다. 해시 함수(Hash function)란, 주어진 원문에서 고정된 길이의 의사 난수를 생성하는 연산기법으로, 불가약적인 일방향함수라는 것이 특징이다. 따라서, 해시값에서 원문을 재현하는 것은 불가능하다The hash value may be a value generated by a given original text through a hash function. A hash function is an operation technique that generates a fixed-length pseudorandom number from a given original text, and is characterized by an inextricable one-way function. Therefore, it is impossible to reproduce the original text from the hash value.

즉, 위변조 탐지부(140)가 비교하는 대상인 해시값은 투표 정보를 원문으로 하여 해시 함수를 통해 생성된 것이며, 원문의 투표 정보에는 투표가 무엇에 대한 투표인지에 대한 내용, 투표를 수행할 수 있는 사용자에 대한 자격 사항에 대한 내용, 투표 항목에 포함되는 목록에 대한 내용 등의 적어도 일부가 포함될 수 있다.That is, the hash value that the forgery detection unit 140 compares is generated through a hash function using the voting information as the original text, and in the voting information in the original text, the content of what the voting is for and the voting can be performed. It may include at least some of the content of qualifications for existing users, content of the list included in the voting item, and the like.

위변조 탐지부(140)는 전자투표 서버(100) 및 복수의 블록체인 노드 중에서 위변조 행위가 감지된 위치를 특정하고, 위변조 행위가 감지된 위치에 대한 정보를 관리자 단말기 측으로 전송할 수 있다.The forgery detection unit 140 may specify a location where a forgery action is detected among the electronic voting server 100 and a plurality of block chain nodes, and transmit information on the location where the forgery action is detected to the administrator terminal.

본 발명의 일 실시예에 따르면, 위변조 탐지부(140)는 위변조 행위를 감지한 후, 위변조 행위가 감지된 위치가 전자투표 서버(100)로 파악되면 위변조가 수행된 투표의 진행을 중단 시키고, 위변조 행위가 감지된 위치가 블록체인 시스템(400) 상에 존재하는 블록체인 노드 중 하나일 경우에는 해당 투표를 계속해서 진행할 수도 있다.According to an embodiment of the present invention, after the forgery detection unit 140 detects the forgery behavior, when the location where the forgery behavior is detected is identified by the electronic voting server 100, the forgery and forgery detection unit stops the progress of the voting performed, If the location where the forgery behavior is detected is one of the blockchain nodes existing on the blockchain system 400, the corresponding voting may be continued.

블록체인 노드에 저장되는 데이터는 블록이라는 단위로 저장될 수 있는데, 블록체인 네트워크 상의 노드들 간의 합의에 따라 새로운 블록이 생성되어 기존의 블록체인과 연결되기 때문에, 이와 같은 합의 시스템에 의해 하나의 코인을 보유한 사용자가 여러 번의 투표를 수행할 수 없으며, 블록체인 노드 상에 보관된 원장 데이터 또한 임의의 사용자에 의해 변경될 수 없다. 이와 같은 블록체인의 합의 시스템 내에서 임의의 사용자가 자신이 원하는 방향으로 투표 내역(거래 내역) 또는 기타 원장 데이터를 수정하기 위해서는 블록체인 네트워크 전체 연산 능력의 50%를 초과하는 해시 파워를 보유하여야 한다.The data stored in the blockchain node can be stored in a unit called a block.Because a new block is created according to the agreement between nodes on the blockchain network and connected with the existing blockchain, one coin A user holding a user cannot vote multiple times, and the ledger data stored on the blockchain node cannot be changed by any user. In such a blockchain consensus system, in order for an arbitrary user to modify the voting history (transaction history) or other ledger data in the direction they want, it must have a hash power that exceeds 50% of the total computing power of the blockchain network. .

이와 같이, 블록체인 노드 각각에 저장되는 데이터를 위변조하는 것은 난이도가 높으며, 하나의 블록체인 노드 상의 데이터가 위변조된 경우에도 대다수 블록체인 노드 상의 데이터가 일치하다면 위변조된 데이터는 인정되지 않는다. 따라서, 위변조 탐지부(140)는 블록체인 시스템(400) 상의 노드 한 개에서 위변조가 발생하는 경우 이를 감지하고 다른 블록체인 노드들을 감시하는 것으로 멈출 수 있으나, 위변조 행위가 전자투표 서버(100) 상에서 발생하는 것으로 감지했을 경우에는 위변조가 감지된 해당 투표를 바로 중지시킬 수 있다.In this way, it is difficult to forge data stored in each of the blockchain nodes, and even if the data on one blockchain node is forged, if the data on most of the blockchain nodes match, the forged data is not recognized. Therefore, the forgery detection unit 140 detects if forgery occurs in one node on the blockchain system 400 and stops by monitoring other blockchain nodes, but the forgery behavior is not performed on the electronic voting server 100. If it is detected that it is occurring, the corresponding voting when forgery is detected can be stopped immediately.

이와 달리, 위변조 탐지부(140)는 블록체인 노드 중 하나에서 위변조 행위가 감지된 경우에도 해당 투표를 중지시킬 수도 있음은 물론이다.Unlike this, it goes without saying that the forgery detection unit 140 may stop the corresponding voting even when a forgery behavior is detected in one of the blockchain nodes.

개표 집계부(150)는 특정 투표가 종료된 이후에, 해당 투표 결과에 대한 집계 처리를 수행하여 투표 집계 결과를 생성할 수 있다. 개표 집계부(150)의 투표 결과에 대한 집계 처리는 블록체인 시스템(400) 상의 데이터를 활용하여 이루어질 수 있다. After the specific voting is finished, the counting unit 150 may generate a voting count result by performing a counting process on the corresponding voting result. The counting processing of the voting results of the counting counting unit 150 may be performed using data on the blockchain system 400.

상세하게는, 개표 집계부(150)는 특정 투표 내에서 투표의 대상이 되는 전체 투표 항목들 각각에 대한 블록체인 지갑 주소에 존재하는 자산인 코인들의 개수를 통해, 각각의 투표 항목들에 대해 행사된 투표권의 개수를 파악할 수 있다.In detail, the counting unit 150 is exercised for each voting item through the number of coins that are assets existing in the blockchain wallet address for each of the voting targets within a specific voting. You can determine the number of voting rights.

투표 결과 검증부(160)는 개표 집계부에 의해 생성된 투표 집계 결과에 대한 검증을 수행할 수 있다. 일 실시예에 따르면, 투표 결과 검증부(160)의 투표 집계 결과에 대한 검증은, 사용자 정보 관리부(130)에 의해 관리되는 사용자들의 투표 기록에 대한 카운트와, 블록체인 지갑 주소에 존재하는 코인들의 개수의 비교를 통해 이루어질 수 있다.The voting result verification unit 160 may verify the voting count result generated by the counting counting unit. According to an embodiment, the verification of the voting count result of the voting result verification unit 160 is a count of the voting records of users managed by the user information management unit 130 and the coins present in the blockchain wallet address. This can be achieved through comparison of the number.

본 발명의 일 실시예에 따르면, 투표 결과 검증부(160)는 특정 투표 내에서 투표의 대상이 되는 전체 투표 항목들 각각에 대한 블록체인 지갑 주소에 존재하는 코인의 수와, 해당하는 투표에 대해 투표권을 보유한 것으로 인증된 사용자들의 블록체인 지갑 주소에 존재하는 코인의 수를 합할 수 있다. 즉, 사용자 인증 단계를 수행하여 블록체인 지갑 주소에 대해 코인이 발행되었으나 사용자가 실제로 투표권을 행사하지 않아 해당 코인이 사용자의 블록체인 지갑 주소에 그대로 남아 있는 경우가 존재할 수 있으므로, 투표 결과 검증부(160)는 이와 같이 코인이 발행되었으나 투표권이 행사되지 않은 수와, 코인이 투표 항목에 대한 블록체인 지갑 주소로 이동하여 투표권이 행사된 수를 합산할 수 있다.According to an embodiment of the present invention, the voting result verification unit 160 includes the number of coins present in the blockchain wallet address for each of all voting items subject to voting within a specific voting and the corresponding voting. You can add up the number of coins in the blockchain wallet address of users who are authenticated as holding voting rights. In other words, there may be a case where a coin was issued to the blockchain wallet address by performing the user authentication step, but the coin remains in the user's blockchain wallet address because the user does not actually exercise the right to vote. 160) can add up the number of coins issued but the voting rights not exercised and the number of voting rights exercised by moving the coin to the blockchain wallet address for the voting item.

이후, 투표 결과 검증부(160)는 이와 같이 합산한 값과, 해당 투표에 대해 사용자에게 제공된 코인의 카운팅값을 비교하여 투표 결과의 검증을 수행할 수 있다. 특정 투표에 대해 사용자에게 제공된 코인 개수의 카운팅은 전술된 바와 같이 사용자 정보 관리부(130)에 의해 이루어질 수 있다. 사용자 정보 관리부(130)는 특정 투표에 대한 투표권을 보유한 것으로 인증된 사용자의 블록체인 지갑 주소로 투표를 수행할 수 있는 코인을 제공하는데, 그 때마다 제공된 코인의 숫자의 형태로 사용자들의 투표 기록에 대한 카운팅을 수행할 수 있다.Thereafter, the voting result verification unit 160 may perform verification of the voting result by comparing the summed value and the counting value of the coin provided to the user for the corresponding voting. Counting the number of coins provided to the user for a specific voting may be performed by the user information management unit 130 as described above. The user information management unit 130 provides a coin for voting to the user's blockchain wallet address, which is authenticated as having the right to vote for a specific voting, in the form of the number of coins provided each time in the user's voting record. Can perform counting.

이와 같이, 투표 결과 검증부(160)는 블록체인 시스템(400) 상에서 기록된 투표 정보와 전자투표 서버(100) 상에서 기록된 투표 정보의 대조를 통해 투표 결과를 검증할 수 있다. 이를 통해 블록체인 시스템(400)과 전자투표 서버(100) 중 한 곳에서만이라도 데이터의 위변조가 이루어지면 관련 투표는 무효가 될 수 있다.In this way, the voting result verification unit 160 may verify the voting result by collating the voting information recorded on the blockchain system 400 with the voting information recorded on the electronic voting server 100. Through this, if data is forged or altered in only one of the blockchain system 400 and the electronic voting server 100, the related voting may be invalidated.

본 발명의 일 실시에에 따르면, 투표 결과 검증부(160)는 블록체인 시스템(400) 상에서 집계된 코인의 숫자와, 전자투표 서버(100) 상에서 카운팅된 사용자들의 투표 기록에 대한 카운팅 숫자가 일치하지 않는 경우, 불일치에 대한 정보를 블록체인 상에 저장할 수 있다. 이와 같은 동작을 통해, 특정 사용자가 불일치에 대한 기록을 전자투표 서버(100) 상에서 변경하는 것을 방지할 수 있다. 불일치에 대한 정보는 투표 내용 자체의 불일치 정보, 코인의 수와 투표 기록에 대한 카운팅 숫자의 불일치 정보 등을 포함할 수 있다.According to an embodiment of the present invention, the voting result verification unit 160 matches the number of coins counted on the blockchain system 400 and the counting number for the voting records of users counted on the electronic voting server 100. If not, information about inconsistencies can be stored on the blockchain. Through such an operation, it is possible to prevent a specific user from changing the record of inconsistency on the electronic voting server 100. Information on the inconsistency may include inconsistency information in the voting content itself, inconsistency information on the number of coins and counting numbers on the voting record, and the like.

일 실시예에 따르면, 전자투표 서버(100)는 도 2에 도시된 각종 구성부 외에 투표 진행 관리부를 포함하여 구성될 수 있다.According to an embodiment, the electronic voting server 100 may be configured to include a voting progress management unit in addition to the various configuration units shown in FIG. 2.

투표 진행 관리부(미도시됨)는 투표 시작 및 종료에 대한 안내를 사용자 단말기(200)에 대해 수행할 수 있으며, 실시간 투표율 관리, 투표 참여자 명단 관리 등을 수행하고 이와 관련된 데이터를 관리자에게 전달할 수도 있다.The voting progress management unit (not shown) may perform guidance on the start and end of voting to the user terminal 200, and may perform real-time turnout management, voting participant list management, etc., and transmit related data to the administrator. .

통신부(170)는 전자투표 서버(100)가 사용자 단말기(200), 인증서 서버(300) 및 블록체인 시스템(400)과의 통신을 수행할 수 있도록 한다. 통신부(170)가 통신을 수행하기 위해서 사용하는 통신망은 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 예를 들면, 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN: Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network) 등 다양한 통신망으로 구현될 수 있다.The communication unit 170 enables the electronic voting server 100 to communicate with the user terminal 200, the certificate server 300, and the blockchain system 400. The communication network used by the communication unit 170 to perform communication may be configured regardless of its communication mode, such as wired or wireless, for example, a local area network (LAN) or a metropolitan area network (MAN: Metropolitan Area Network) and a wide area network (WAN).

저장부(180)는 전자투표 서버(100)의 각종 구성부 내에서 수집되고, 생성되고 가공되는 정보들을 저장하는 역할을 수행한다. 즉, 저장부(180)에는 등록된 투표들에 대한 정보, 진행중인 투표들에 대한 정보, 종료된 투표들에 대한 정보 등이 저장될 수 있으며, 온라인 투표 시스템(10)의 사용자들에 대한 정보 또한 저장될 수 있다. 이러한 저장부(180)는 예를 들어, 메모리(memory), 캐시(cash), 버퍼(buffer) 등을 포함할 수 있으며, 소프트웨어, 펌웨어, 하드웨어 또는 이들 중 적어도 둘 이상의 조합으로 구성될 수 있다.The storage unit 180 serves to store information collected, generated, and processed in various components of the electronic voting server 100. That is, the storage unit 180 may store information on registered votes, information on ongoing votes, information on ended votes, etc., and information on users of the online voting system 10 Can be saved. The storage unit 180 may include, for example, a memory, a cache, a buffer, and the like, and may be formed of software, firmware, hardware, or a combination of at least two or more of them.

제어부(190)는 사용자 인증 확인부(110), 투표 개설 관리부(120), 사용자 정보 관리부(130), 위변조 탐지부(140), 개표 집계부(150), 투표 결과 검증부(160), 통신부(170) 및 저장부(180) 간의 데이터 흐름을 제어하는 기능을 수행할 수 있다. 즉, 본 발명의 일 실시예에 따른 제어부(190)는 사용자 인증 확인부(110), 투표 개설 관리부(120), 사용자 정보 관리부(130), 위변조 탐지부(140), 개표 집계부(150), 투표 결과 검증부(160), 통신부(170) 및 저장부(180)에서 각각 고유한 기능을 수행하도록 제어할 수 있다.The control unit 190 includes a user authentication verification unit 110, a voting opening management unit 120, a user information management unit 130, a forgery detection unit 140, a counting unit 150, a voting result verification unit 160, a communication unit A function of controlling data flow between the 170 and the storage unit 180 may be performed. That is, the control unit 190 according to an embodiment of the present invention includes a user authentication verification unit 110, a voting opening management unit 120, a user information management unit 130, a forgery detection unit 140, and a counting unit 150. , The voting result verification unit 160, the communication unit 170, and the storage unit 180 may each be controlled to perform a unique function.

도 2에서 사용자 인증 확인부(110), 투표 개설 관리부(120), 사용자 정보 관리부(130), 위변조 탐지부(140), 개표 집계부(150), 투표 결과 검증부(160) 및 통신부(170)는 제어부(190)를 기능적으로 분류한 구성이므로 하나의 제어부(190)로서 통합되어 구성될 수도 있다.In FIG. 2, a user authentication verification unit 110, a voting opening management unit 120, a user information management unit 130, a forgery detection unit 140, a counting counting unit 150, a voting result verification unit 160 and a communication unit 170 ) Is a configuration that functionally classifies the control unit 190, and thus may be integrated and configured as one control unit 190.

도 3은 본 발명의 일 실시예에 따른 디지털 인증서의 발급 과정을 나타낸 흐름도이다.3 is a flowchart showing a process of issuing a digital certificate according to an embodiment of the present invention.

도 3을 참조하면, 사용자는 사용자 단말기(200)를 통해 인증서 서버(300)에 접속하여 디지털 인증서의 발급을 요청할 수 있다(S310). 인증서 서버(300)는 사용자 단말기(200)로부터 인증서 발급에 대한 요청을 수신한 뒤, 서버 공개키 및 랜덤 문자열을 생성하고(S320), 생성한 서버 공개키 및 랜덤 문자열을 사용자 단말기(200)에 전달할 수 있다(S330). S320 단계에서 인증서 서버(300)는 서버 공개키를 생성하면서 이에 매칭되는 서버 개인키를 생성할 수 있음은 물론이다.Referring to FIG. 3, a user may request issuance of a digital certificate by accessing the certificate server 300 through the user terminal 200 (S310). After receiving a request for issuing a certificate from the user terminal 200, the certificate server 300 generates a server public key and a random string (S320), and transfers the generated server public key and a random string to the user terminal 200. Can be delivered (S330). It goes without saying that the certificate server 300 in step S320 may generate a server private key matching the server public key while generating the server public key.

사용자 단말기(200)는 사용자의 서명 및 인증서 서버(300)로부터 수신한 랜덤 문자열을 서버 공개키를 이용하여 암호화할 수 있으며(S340), 암호화된 사용자 서명을 인증서 서버(300)로 전달할 수 있다(S350).The user terminal 200 may encrypt the user's signature and the random string received from the certificate server 300 using the server public key (S340), and may transmit the encrypted user signature to the certificate server 300 (S340). S350).

인증서 서버(300)는 서버 개인키를 활용하여 암호화된 사용자 서명을 복호화 하고(S360), 사용자 서명을 기초로 하여 디지털 인증서를 생성한 뒤 생성한 인증서를 사용자 공개키를 이용하여 암호화할 수 있다(S370). 이후, 암호화된 상태의 디지털 인증서는 사용자 단말기(200)로 전달될 수 있다(S380).The certificate server 300 decrypts the encrypted user signature using the server private key (S360), generates a digital certificate based on the user signature, and then encrypts the generated certificate using the user public key ( S370). Thereafter, the encrypted digital certificate may be transmitted to the user terminal 200 (S380).

사용자 단말기(200)는 수신한 인증서를 사용자 개인키를 활용하여 복호화함으로써, 발급받은 인증서를 사용자 단말기(200) 내에 저장하여 보관할 수 있다. 이후, 사용자는 발급받은 인증서를 통해 자신의 신원을 인증할 수 있다.The user terminal 200 may store and store the issued certificate in the user terminal 200 by decrypting the received certificate using the user private key. Thereafter, the user can authenticate his or her identity through the issued certificate.

도 4는 본 발명의 일 실시예에 따른 전자투표 서버(100)의 위변조 탐지 방법을 설명하기 위한 도면이다.4 is a diagram for explaining a forgery detection method of the electronic voting server 100 according to an embodiment of the present invention.

도 4를 참조하면, 온라인 투표 시스템(10)은 전자투표 서버(100), 인증서 서버(300) 및 블록체인 시스템(400)을 포함하여 구성될 수 있다.Referring to FIG. 4, the online voting system 10 may include an electronic voting server 100, a certificate server 300, and a block chain system 400.

전자투표 서버(100)는 전자투표 서버(100) 내의 데이터와, 블록체인 시스템(400) 상에 존재하는 복수의 노드별 데이터에 대한 위변조 탐지를 수행할 수 있다.The electronic voting server 100 may perform forgery detection of data in the electronic voting server 100 and data for each of a plurality of nodes existing on the blockchain system 400.

이와 같은 위변조 탐지는 전술한 바와 같이, 적어도 하나 이상의 블록체인 노드로부터 수집한 투표 정보에 대한 해시값과, 전자투표 서버(100) 상에 저장되어 있는 투표 정보에 대한 해시값의 비교를 통해 이루어질 있다.Such forgery detection may be performed by comparing a hash value for voting information collected from at least one blockchain node and a hash value for voting information stored on the electronic voting server 100, as described above. .

전자투표 서버(100)는 추가적으로 인증서 서버(300)에서의 데이터 위변조 또한 감시할 수 있다.The electronic voting server 100 may additionally monitor data forgery and alteration in the certificate server 300.

전자투표 서버(100)는 실시간으로 데이터 위변조 감시를 수행하다가, 데이터 위변조 행위가 탐지되면 이에 대한 내용을 관리자 단말기에게 전달할 수 있다. 관리자 단말기로 전달되는 내용은 위변조가 발생한 시각, 위변조의 내용, 위변조가 발생한 위치 등을 포함할 수 있다.The electronic voting server 100 may perform data forgery monitoring in real time and, when a data forgery behavior is detected, may transmit the information to the administrator terminal. The content delivered to the manager terminal may include the time when the forgery occurred, the content of the forgery, and the location where the forgery occurred.

도 5는 본 발명의 일 실시예에 따른 온라인 투표 시스템(10)의 사용자가 자신의 투표권을 행사하는 방법을 설명하기 위한 도면이다.5 is a diagram for explaining a method for a user of the online voting system 10 according to an embodiment of the present invention to exercise his or her voting right.

도 5를 참조하면, 사용자 A~E는 전자투표 서버(100) 상에 등록된 사용자로 특정 투표에 대한 투표권을 가질 수 있는 사용자들이다. 각각의 사용자들은 인증서를 통해 자신이 해당 투표에 대한 유권자 임을 인증할 수 있으며, 전자투표 서버(100)는 이와 같은 인증이 확인되는 유권자들에 대해 블록체인 지갑 주소를 발급할 수 있다. 또한, 전자투표 서버(100)는 블록체인 지갑 주소를 발급 이후에 해당 블록체인 지갑 주소로 투표를 수행할 수 있는 자산인 코인을 제공할 수 있다.Referring to FIG. 5, users A to E are users registered on the electronic voting server 100 and may have voting rights for a specific vote. Each user can authenticate that he or she is a voter for a corresponding vote through a certificate, and the electronic voting server 100 can issue a blockchain wallet address to voters whose authentication is confirmed. In addition, the electronic voting server 100 may provide a coin, which is an asset capable of voting with the corresponding blockchain wallet address after issuing the blockchain wallet address.

사용자가 투표 대상이 되는 후보자들 중에 한 명을 선택하면, 해당 사용자에 대해 발급되었던 블록체인 지갑 주소에 존재하던 코인이 선택된 후보자의 블록체인 지갑 주소로 이동하는 거래가 발생한다. 이와 같은 거래는 블록체인 기술을 통해 수행되기 때문에 이중 거래가 일어날 가능성이 차단된다.When a user selects one of the candidates for voting, a transaction occurs in which the coin existing in the blockchain wallet address issued for the user is transferred to the selected candidate's blockchain wallet address. Since such transactions are performed through blockchain technology, the possibility of double transactions is blocked.

또한, 블록체인 지갑 주소를 통해서 사용자 개인에 대한 정보를 확인할 수 없기 때문에, 사용자에게 발급된 블록체인 지갑 주소 또는 투표 대상이 되는 항목들에 대한 블록체인 지갑 주소에 존재하는 코인이나 코인의 거래 내역을 통해 개개인의 투표 정보를 확인할 수 없게 된다.In addition, since information about the user cannot be verified through the blockchain wallet address, the transaction details of coins or coins present in the blockchain wallet address issued to the user or the blockchain wallet address for items subject to voting are recorded. Through this, individual voting information cannot be checked.

즉, 디지털 인증서를 통해 전자 서명을 수행하고 투표를 수행한 사용자만이 인증서 서버(300)를 통해 접근 권한을 부여받고 본인의 투표기록을 열람할 수 있으며, 해당 사용자 외의 타 사용자 또는 관리자는 투표기록을 열람할 수 없게 된다.That is, only the user who performed an electronic signature and voted through a digital certificate is granted access authority through the certificate server 300 and can view his or her voting record, and other users or administrators other than the user can view the voting record. You will not be able to browse.

도 6은 본 발명의 일 실시예에 따른 전자투표 서버(100)가 투표의 개설부터 투표의 종료 후 검증까지의 동작을 수행하는 과정을 설명하기 위한 흐름도이다.6 is a flowchart illustrating a process in which the electronic voting server 100 according to an embodiment of the present invention performs an operation from opening a voting to verifying after the voting ends.

도 6을 참조하면, 전자투표 서버(100)는 사용자 단말기(200)로부터 투표 개설에 대한 정보를 수신할 수 있다(S610). 투표 개설에 대한 정보는, 투표의 내용, 투표의 대상이 되는 항목, 투표 기간, 투표 방식, 투표를 수행할 수 있는 유권자의 조건 등을 포함할 수 있다. 일 실시예에 따르면, 이와 같은 투표 개설은 관리자에 의해 수행될 수도 있으나, 일반 사용자들이 자신의 사용자 단말기(200)를 통해 수행할 수도 있다.Referring to FIG. 6, the electronic voting server 100 may receive information on voting opening from the user terminal 200 (S610). The information on the opening of a vote may include the content of the vote, items subject to vote, a voting period, a voting method, and conditions of a voter who can perform a vote. According to an embodiment, such a voting opening may be performed by an administrator, but general users may be performed through their user terminal 200.

전자투표 서버(100)는 투표 개설에 대한 정보를 수신한 이후, 수신한 정보를 토대로 특정 주제에 대한 투표를 개설할 수 있다(S620). 전자투표 서버(100)는 특정 투표의 개설 과정에서 투표 대상이 되는 항목들에 대한 블록체인 지갑 주소를 개설할 수 있으며, 신원에 대한 인증이 완료된 사용자들에게 발급할 블록체인 지갑 주소를 미리 개설할 수도 있다.The electronic voting server 100 may open a voting on a specific topic based on the received information after receiving information on voting opening (S620). The electronic voting server 100 may open a blockchain wallet address for items subject to voting in the process of opening a specific voting, and establish a blockchain wallet address to be issued to users who have completed authentication of their identity in advance. May be.

전자투표 서버(100)는 특정 투표에 대해 투표권을 보유한 사용자들의 인증 결과를 인증서 서버(300)로부터 수신할 수 있다(S630). 이와 달리, 전자투표 서버(100)는 인증서가 아닌 상이한 방식으로 사용자에 대한 신원 인증을 수행할 수도 있다.The electronic voting server 100 may receive authentication results of users who have voting rights for a specific voting from the certificate server 300 (S630). Alternatively, the electronic voting server 100 may perform identity authentication for a user in a different manner other than a certificate.

전자투표 서버(100)는 특정 투표에 대해 투표권을 보유한 것으로 확인된 사용자에 대하여 블록체인 지갑 주소를 발급할 수 있다(S640). 사용자에게 발급되는 블록체인 지갑 주소에는 투표권을 행사할 수 있는 자산이 존재할 수도 있으며, 전자투표 서버(100)가 블록체인 지갑 주소를 발급한 이후에 해당 주소로 투표권을 행사할 수 있는 자산을 제공할 수도 있다.The electronic voting server 100 may issue a blockchain wallet address to a user who is confirmed to have voting rights for a specific voting (S640). In the blockchain wallet address issued to the user, there may be an asset that can exercise voting rights, and after the electronic voting server 100 issues the blockchain wallet address, it may provide an asset that can exercise voting rights to the corresponding address. .

사용자는 이후 자신의 사용자 단말기(200)를 통해 자신이 원하는 투표 항목에 투표권을 행사할 수 있으며, 그에 따라 블록체인 시스템(400) 상에서는 투표권 역할을 수행하는 코인의 거래가 이루어질 수 있다. 상세하게는, 해당 사용자에게 발급된 블록체인 지갑 주소에 존재하던 코인이, 사용자가 투표한 항목에 대한 블록체인 지갑 주소로 이동하는 거래가 수행될 수 있다.The user can then exercise the voting right on the voting item he desires through his user terminal 200, and accordingly, a transaction of coins serving as voting rights on the blockchain system 400 can be made. Specifically, a transaction in which coins existing in the blockchain wallet address issued to the user are transferred to the blockchain wallet address for the item voted by the user may be performed.

전자투표 서버(100)는 투표가 진행되는 과정에서 블록체인의 노드별 데이터에 대한 위변조 탐지를 수행할 수 있다(S650). 전자투표 서버(100)가 투표가 진행되는 과정에서의 데이터 원장에 대한 위변조 탐지를 수행하는 방식은, 전술한 바와 같이 블록체인 시스템(400) 상의 각 노드별 데이터와, 전자투표 서버(100) 상에 저장되어 있는 데이터의 비교를 통해 이루어질 수 있다. 상세하게는, 전자투표 서버(100)는 블록체인 노드 각각으로부터 수집한 투표 정보에 대한 해시값과, 전자투표 서버(100) 상에 저장되어 있는 투표 정보에 대한 해시값의 비교를 통해 투표 결과의 위변조 행위를 감지할 수 있다.The electronic voting server 100 may detect forgery and alteration of data for each node of a block chain during a voting process (S650). The method in which the electronic voting server 100 performs forgery detection of the data ledger in the process of voting is, as described above, data for each node on the blockchain system 400 and on the electronic voting server 100. This can be done through comparison of the data stored in. In detail, the electronic voting server 100 compares the hash value for voting information collected from each of the blockchain nodes and the hash value for voting information stored on the electronic voting server 100 to compare the voting result. Forgery behavior can be detected.

투표가 진행되는 기간이 지나 투표가 종료된 경우, 전자투표 서버(100)는 투표 대상이 되는 항목들의 블록체인 지갑 주소 내에 존재하는 코인수와, 전자투표 서버(100) 내에서 카운팅 되었던 코인 제공수 또는 투표 기록을 비교하여 투표 집계 결과에 대한 최종적인 검증을 수행할 수 있다(S660).When the voting period is over and the voting is terminated, the electronic voting server 100 determines the number of coins present in the blockchain wallet address of the items subject to voting and the number of coins counted in the electronic voting server 100. Or, it is possible to perform a final verification on the result of the aggregate vote by comparing the voting records (S660).

이와 같은 검증 과정에서, 전자투표 서버(100)는 특정 투표 내에서 투표의 대상이 되는 투표 항목들 각각에 대한 블록체인 지갑 주소에 존재하는 코인 및 해당 투표에 대한 투표권을 보유한 것으로 인증된 사용자들의 블록체인 지갑 주소에 존재하는 코인의 합과, 전자투표 서버(100) 내에서 카운팅된 코인 또는 투표 기록에 대한 숫자를 비교할 수 있다.In this verification process, the electronic voting server 100 is a block of users who are authenticated as having the right to vote for the corresponding vote and coins present in the blockchain wallet address for each of the voting items subject to voting within a specific vote. The sum of the coins existing in the chain wallet address and the number of coins or voting records counted in the electronic voting server 100 may be compared.

전자투표 서버(100)는 S650의 위변조 탐지 과정이나, S660의 투표 집계 결과의 검증 과정에서 데이터의 위변조가 감지된 경우 진행되고 있는 투표를 중단시키거나 종료된 투표를 무효로 처리할 수 있다. 또한, 전자투표 서버(100)는 위변조가 감지된 경우 해당 위치를 포착하여 관리자에게 알림을 전송할 수 있으며, 위변조 감지와 관련된 내용을 블록체인 시스템(400) 상에 저장할 수도 있다.The electronic voting server 100 may stop the ongoing voting or invalidate the ended voting when forgery of data is detected during the forgery detection process of S650 or the verification process of the voting count result of S660. In addition, when forgery and forgery is detected, the electronic voting server 100 may capture a corresponding location and transmit a notification to the administrator, and may store contents related to forgery detection on the blockchain system 400.

이와 같이, 본 발명의 다양한 실시예들에 따르면 온라인으로 투표를 진행함에 있어 블록체인 관련 기술이 도입됨으로써 투표 결과에 대한 보안성이 향상될 수 있으며, 전자투표 서버와 블록체인 시스템을 분리하여 도입하고 사용자의 블록체인 지갑 주소를 통해 사용자 정보를 알 수 없도록 관리함으로써 비밀 투표 원칙도 구현할 수 있게 된다. 또한, 투표의 진행중 또는 투표가 완료된 이후에 데이터의 위변조를 파악할 수 있어 투표 집계 결과에 대한 신뢰성이 향상될 수 있다.As described above, according to various embodiments of the present invention, the security of the voting result can be improved by introducing a blockchain-related technology when voting online, and the electronic voting server and the blockchain system are separately introduced. The secret voting principle can also be implemented by managing user information so that user information is not known through the user's blockchain wallet address. In addition, since the forgery and alteration of data can be identified during voting or after voting is completed, the reliability of the voting count can be improved.

본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.The steps of a method or algorithm described in connection with an embodiment of the present invention may be implemented directly in hardware, a software module executed by hardware, or a combination thereof. Software modules include Random Access Memory (RAM), Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), Flash Memory, hard disk, removable disk, CD-ROM, or It may reside on any type of computer-readable recording medium well known in the art to which the present invention pertains.

이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다. The embodiments of the present invention have been described above with reference to the accompanying drawings, but those skilled in the art to which the present invention pertains may be implemented in other specific forms without changing the technical spirit or essential features of the present invention. You will understand. Therefore, the embodiments described above are illustrative in all respects and should be understood as non-limiting.

10: 온라인 투표 시스템
100: 전자투표 서버
200: 사용자 단말기
300: 인증서 서버
400: 블록체인 시스템
10: online voting system
100: e-voting server
200: user terminal
300: certificate server
400: Blockchain system

Claims (10)

블록체인 기반의 온라인 투표 시스템을 구현하는 전자투표 서버에 있어서,
사용자 단말기로부터의 디지털 인증서 요청에 따른 디지털 인증서 발급을 수행하는 인증서 서버로부터 사용자의 인증 결과를 수신하는 사용자 인증 확인부;
상기 사용자 단말기로부터 투표 개설에 대한 정보를 수신하여 블록체인 시스템 상에서 특정 투표의 개설을 수행하는 투표 개설 관리부;
상기 디지털 인증서를 통해 상기 특정 투표에 대한 투표권을 보유한 것으로 인증된 사용자에게 블록체인 지갑 주소를 발급하는 사용자 정보 관리부;
블록체인의 노드별 데이터에 대한 위변조 탐지를 실시간 또는 임의의 시간 간격으로 수행하는 위변조 탐지부;
투표가 종료된 이후 투표 결과에 대한 집계 처리를 수행하여 투표 집계 결과를 생성하는 개표 집계부; 및
상기 개표 집계부에 의해 생성된 투표 집계 결과에 대한 검증을 수행하는 투표 결과 검증부를 포함하고,
상기 위변조 탐지부는,
적어도 하나 이상의 블록체인 노드로부터 수집한 투표 정보에 대한 해시값들과, 상기 전자투표 서버 상에 저장되어 있는 투표 정보에 대한 해시값의 비교를 통해 투표 결과의 위변조 행위를 감지하며,
상기 전자투표 서버 및 각각의 블록체인 노드 중에서 위변조 행위가 감지된 위치를 특정하고, 위변조 행위가 감지된 위치에 대한 정보를 관리자 단말기로 전송하고,
위변조 행위가 감지된 위치가 상기 전자투표 서버인 경우에는 진행되고 있는 해당 투표를 중지시키고, 위변조 행위가 감지된 위치가 블록체인 노드 중 하나일 경우 해당 투표를 계속하여 진행시키는 것을 특징으로 하는, 전자투표 서버.
In the electronic voting server that implements a blockchain-based online voting system,
A user authentication verification unit receiving a user authentication result from a certificate server that issues a digital certificate according to a digital certificate request from a user terminal;
A voting opening management unit for receiving information on voting opening from the user terminal and opening a specific voting on a blockchain system;
A user information management unit for issuing a blockchain wallet address to a user who is authenticated as having a voting right for the specific vote through the digital certificate;
A forgery detection unit that performs forgery detection of data for each node of the blockchain in real time or at random time intervals;
After the voting is over, a counting unit for generating a voting count by performing counting on the voting results; And
It includes a voting result verification unit that performs verification on the voting count result generated by the counting counting unit,
The forgery detection unit,
Detects forgery behavior of voting results through comparison of hash values for voting information collected from at least one blockchain node and hash values for voting information stored on the electronic voting server,
The electronic voting server and each block chain node specify the location where the forgery behavior is detected, and transmit information on the location where the forgery behavior is detected to the administrator terminal,
If the location where the forgery act is detected is the electronic voting server, the voting in progress is stopped, and if the location where the forgery act is detected is one of the blockchain nodes, the corresponding voting is continued. Voting server.
제1항에 있어서,
상기 투표 개설 관리부는,
상기 사용자 단말기부터 수신한 투표 개설에 대한 정보 중 적어도 일부를 블록체인 시스템 상에 저장하는 것을 특징으로 하는, 전자투표 서버
The method of claim 1,
The voting opening management unit,
Electronic voting server, characterized in that storing at least a part of information on voting opening received from the user terminal on a blockchain system
제1항에 있어서,
상기 인증서 서버는,
사용자 단말기로부터 인증서 생성 요청을 수신하는 제1 단계;
서버 공개키와 랜덤으로 생성한 문자열을 사용자 단말기로 전송하는 제2 단계;
사용자 단말기로부터 상기 서버 공개키를 통해 암호화된 사용자 서명을 수신하는 제3 단계; 및
상기 서버 공개키를 통해 암호화된 사용자 서명을 서버 개인키를 통해 복호화하고 인증서를 생성한 후, 생성된 인증서를 사용자 공개키를 통해 암호화하여 사용자 단말기로 전송하는 제4 단계의 과정을 통해 디지털 인증서를 발급하는 것인, 전자투표 서버.
The method of claim 1,
The certificate server,
A first step of receiving a certificate generation request from a user terminal;
A second step of transmitting a server public key and a randomly generated string to a user terminal;
A third step of receiving a user signature encrypted through the server public key from a user terminal; And
After decrypting the user signature encrypted through the server public key through the server private key and generating a certificate, the digital certificate is transmitted to the user terminal by encrypting the generated certificate through the user public key. Issuing, electronic voting server.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 사용자 정보 관리부는,
상기 디지털 인증서를 통해 특정 투표에 대한 투표권을 보유한 것으로 인증된 사용자에게 발급된 블록체인 지갑 주소로 투표를 수행할 수 있는 자산을 제공한 후, 해당 투표에 대해 제공된 자산의 카운팅을 수행하는, 전자투표 서버.
The method of claim 1,
The user information management unit,
Electronic voting, which provides an asset capable of voting with a blockchain wallet address issued to a user who is authenticated as having the right to vote for a specific voting through the digital certificate, and then performs counting of the assets provided for the voting. server.
제7항에 있어서,
상기 투표 결과 검증부는,
특정 투표 내에서 투표의 대상이 되는 전체 투표 항목들 각각에 대한 블록체인 지갑 주소에 존재하는 자산 및 해당 투표에 대한 투표권을 보유한 것으로 인증된 사용자들의 블록체인 지갑 주소에 존재하는 자산의 총합과, 해당 투표에 대해 제공된 자산에 대해 카운팅된 숫자의 비교를 통해 투표 결과의 검증을 수행하는, 전자투표 서버.
The method of claim 7,
The voting result verification unit,
Within a specific vote, the total amount of assets in the blockchain wallet address for each of the voting items and the assets in the blockchain wallet address of users who have been authenticated as having the right to vote for that vote, and the corresponding An electronic voting server that performs verification of voting results through comparison of counted numbers for assets provided for voting.
제8항에 있어서,
상기 투표 결과 검증부는,
상기 투표 결과 검증부의 비교 결과,
상기 자산의 총합과 해당 투표에 대해 제공된 자산에 대해 카운팅된 숫자가 일치하지 않는 경우 불일치에 대한 정보를 블록체인 상에 저장하는 것을 특징으로 하는, 전자투표 서버.
The method of claim 8,
The voting result verification unit,
The comparison result of the voting result verification unit,
When the total number of assets and the number counted for the assets provided for the corresponding vote do not match, information on the discrepancy is stored on the blockchain.
전자투표 서버가 블록체인 기반의 온라인 투표 시스템을 구현하는 방법에 있어서,
사용자 단말기로부터의 디지털 인증서 요청에 따른 디지털 인증서 발급을 수행하는 인증서 서버로부터 사용자의 인증 결과를 수신하는 단계;
상기 사용자 단말기로부터 투표 개설에 대한 정보를 수신하여 블록체인 시스템 상에서 특정 투표의 개설을 수행하는 단계;
상기 디지털 인증서를 통해 상기 특정 투표에 대한 투표권을 보유한 것으로 인증된 사용자에게 블록체인 지갑 주소를 발급하는 단계;
블록체인의 노드별 데이터에 대한 위변조 탐지를 실시간 또는 임의의 시간 간격으로 수행하는 단계;
투표가 종료된 이후 투표 결과에 대한 집계 처리를 수행하여 투표 집계 결과를 생성하는 단계; 및
생성된 투표 집계 결과에 대한 검증을 수행하는 단계를 포함하고,
상기 블록체인의 노드별 데이터에 대한 위변조 탐지를 실시간 또는 임의의 시간 간격으로 수행하는 단계는,
적어도 하나 이상의 블록체인 노드로부터 수집한 투표 정보에 대한 해시값들과, 상기 전자투표 서버 상에 저장되어 있는 투표 정보에 대한 해시값의 비교를 통해 투표 결과의 위변조 행위를 감지하는 단계;
상기 전자투표 서버 및 각각의 블록체인 노드 중에서 위변조 행위가 감지된 위치를 특정하고, 위변조 행위가 감지된 위치에 대한 정보를 관리자 단말기로 전송하는 단계; 및
위변조 행위가 감지된 위치가 상기 전자투표 서버인 경우에는 진행되고 있는 해당 투표를 중지시키고, 위변조 행위가 감지된 위치가 블록체인 노드 중 하나일 경우 해당 투표를 계속하여 진행시키는 단계를 포함하는 것을 특징으로 하는, 블록체인 기반의 온라인 투표 시스템 구현 방법.
In the method for the electronic voting server to implement a blockchain-based online voting system,
Receiving a user's authentication result from a certificate server that issues a digital certificate according to a digital certificate request from a user terminal;
Receiving information on voting opening from the user terminal and opening a specific voting on a blockchain system;
Issuing a blockchain wallet address to a user who is authenticated as having voting rights for the specific voting through the digital certificate;
Detecting forgery and alteration of data for each node of the blockchain in real time or at random time intervals;
Generating a voting count result by performing aggregate processing on the voting result after the voting is over; And
Including the step of performing verification on the generated vote count result,
The step of performing forgery detection of the data for each node of the blockchain in real time or at arbitrary time intervals,
Detecting forgery behavior of voting results by comparing hash values for voting information collected from at least one blockchain node and hash values for voting information stored on the electronic voting server;
Specifying a location where forgery behavior is detected among the electronic voting server and each block chain node, and transmitting information on the location where the forgery behavior is detected to an administrator terminal; And
If the location where the forgery act is detected is the electronic voting server, stopping the voting in progress, and if the location where the forgery act is detected is one of the blockchain nodes, continuing to proceed with the corresponding voting. How to implement a blockchain-based online voting system.
KR1020190060654A 2019-05-23 2019-05-23 Electronic voting server implementing on-line secret voting system based on block chain and its operation method KR102143530B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190060654A KR102143530B1 (en) 2019-05-23 2019-05-23 Electronic voting server implementing on-line secret voting system based on block chain and its operation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190060654A KR102143530B1 (en) 2019-05-23 2019-05-23 Electronic voting server implementing on-line secret voting system based on block chain and its operation method

Publications (1)

Publication Number Publication Date
KR102143530B1 true KR102143530B1 (en) 2020-08-11

Family

ID=72048183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190060654A KR102143530B1 (en) 2019-05-23 2019-05-23 Electronic voting server implementing on-line secret voting system based on block chain and its operation method

Country Status (1)

Country Link
KR (1) KR102143530B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112258326A (en) * 2020-12-24 2021-01-22 布比(北京)网络技术有限公司 Random block output method and system
KR102376113B1 (en) * 2020-09-28 2022-03-17 한국항공대학교산학협력단 Communication and control system between control device and drone swarm based on blockchain network
KR20230001698A (en) * 2021-06-29 2023-01-05 주식회사 헤세그 Method of voting on the blockchain that can be rewarded for voting and system for the same

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101837169B1 (en) * 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same
JP2018055473A (en) * 2016-09-29 2018-04-05 富士通株式会社 Management system, management method, and management program
KR101837170B1 (en) * 2016-12-29 2018-04-19 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain 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
JP2019021296A (en) * 2017-07-11 2019-02-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America Electronic voting system and control method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180115727A (en) 2016-02-23 2018-10-23 엔체인 홀딩스 리미티드 Block Chain Implementation Counting System and Method for Use in Security Voting and Distribution
JP2018055473A (en) * 2016-09-29 2018-04-05 富士通株式会社 Management system, management method, and management program
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
KR101837170B1 (en) * 2016-12-29 2018-04-19 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same
JP2019021296A (en) * 2017-07-11 2019-02-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America Electronic voting system and control method
KR101908677B1 (en) * 2017-09-29 2018-10-16 숭실대학교산학협력단 System and method for managementing electronic vote using blockchain

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102376113B1 (en) * 2020-09-28 2022-03-17 한국항공대학교산학협력단 Communication and control system between control device and drone swarm based on blockchain network
CN112258326A (en) * 2020-12-24 2021-01-22 布比(北京)网络技术有限公司 Random block output method and system
KR20230001698A (en) * 2021-06-29 2023-01-05 주식회사 헤세그 Method of voting on the blockchain that can be rewarded for voting and system for the same
WO2023277429A1 (en) * 2021-06-29 2023-01-05 주식회사 헤세그 Voting method on blockchain, capable of rewarding vote, and system therefor
KR102488557B1 (en) * 2021-06-29 2023-01-13 주식회사 헤세그 Method of voting on the blockchain that can be rewarded for voting and system for the same

Similar Documents

Publication Publication Date Title
US10942994B2 (en) Multicomputer processing for data authentication using a blockchain approach
KR102054410B1 (en) Method for providing reward for delegating computing power for blockchain service management
US11159537B2 (en) Multicomputer processing for data authentication and event execution using a blockchain approach
CN108765240B (en) Block chain-based inter-institution customer verification method, transaction supervision method and device
US20180165781A1 (en) Digital Identity System
CN110380858A (en) Game common recognition agreement for block chain
CN107710258A (en) System and method for personal identification and checking
KR102143530B1 (en) Electronic voting server implementing on-line secret voting system based on block chain and its operation method
CN111369730B (en) Voting processing method and device based on block chain
Roh et al. A study on electronic voting system using private blockchain
JP7114078B2 (en) Electronic authentication method and program
US20210365584A1 (en) Portable reputation brokering using linked blockchains and shared events
KR102014647B1 (en) Electronic voting method based on blockchain
Gupta et al. End to end secure e-voting using blockchain & quantum key distribution
KR20200026627A (en) Online vote method using block chain and apparatus therefor
CN112231751A (en) Data transmission system and method based on block chain
Vakarjuk et al. Russian federal remote E-voting scheme of 2021–protocol description and analysis
Gifari et al. On preventing bitcoin transaction from money laundering in Indonesia: Analysis and recommendation on regulations
Hermstrüwer The limits of blockchain democracy: a transatlantic perspective on blockchain voting systems
CN112734455A (en) Prize exchanging result generating method, device and equipment and readable storage medium
KR102381028B1 (en) Electronic vote management system and method using block-chain
Ramani et al. Blockchain for digital rights management
KR102586412B1 (en) Method for generating user pseudo information identifier using temporary key issued on user terminal and system therefor
Malathi et al. Rendering Untampered E-Votes Using Blockchain Technology
CN113626881B (en) Object evaluation method, device, electronic equipment and storage medium

Legal Events

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