KR102479989B1 - 비밀성이 제고된 온라인 투표 방법 및 이를 위한 시스템 - Google Patents

비밀성이 제고된 온라인 투표 방법 및 이를 위한 시스템 Download PDF

Info

Publication number
KR102479989B1
KR102479989B1 KR1020220048473A KR20220048473A KR102479989B1 KR 102479989 B1 KR102479989 B1 KR 102479989B1 KR 1020220048473 A KR1020220048473 A KR 1020220048473A KR 20220048473 A KR20220048473 A KR 20220048473A KR 102479989 B1 KR102479989 B1 KR 102479989B1
Authority
KR
South Korea
Prior art keywords
user
voting
information
server
user terminal
Prior art date
Application number
KR1020220048473A
Other languages
English (en)
Inventor
서광준
박상길
Original Assignee
주식회사 블로코
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 블로코 filed Critical 주식회사 블로코
Priority to KR1020220048473A priority Critical patent/KR102479989B1/ko
Application granted granted Critical
Publication of KR102479989B1 publication Critical patent/KR102479989B1/ko
Priority to PCT/KR2023/002101 priority patent/WO2023204410A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • GPHYSICS
    • 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
    • G06Q50/265Personal security, identity or safety
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2230/00Voting or election arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Landscapes

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

Abstract

본 발명은 비밀성이 제고된 온라인 투표 방법 및 시스템에 관한 것으로, 구체적으로는 블록체인 네트워크 기반의 온라인 투표 시스템을 구현함에 있어 투표결과(집계)는 누구든지 확인이 가능한 반면 투표자 개개인의 투표내용은 네트워크 상에서 추적이 되지 않는 것을 보장할 수 있도록 한 온라인 투표 방법 및 시스템에 관한 것이다.

Description

비밀성이 제고된 온라인 투표 방법 및 이를 위한 시스템{ONLINE VOTING METHOD WITH IMPROVED CONFIDENTIALITY AND SYSTEM THEREFOR}
본 발명은 비밀성이 제고된 온라인 투표 방법 및 시스템에 관한 것으로, 구체적으로는 블록체인 네트워크 기반의 온라인 투표 시스템을 구현함에 있어 투표결과(집계)는 누구든지 확인이 가능한 반면 투표자 개개인의 투표내용은 네트워크 상에서 추적이 되지 않는 것을 보장할 수 있도록 한 온라인 투표 방법 및 시스템에 관한 것이다.
투표란 어떤 의사결정을 하는데 다수의 의사를 취합하는 방법 중 하나를 일컫는 것으로, 이러한 투표는 다수의 투표자들로 하여금 정해진 방식에 따라 개개인의 의사를 표시할 수 있는 환경에서 이루어질 수 있다.
네트워크 인프라가 발달하면서 최근에는 오프라인 투표 대신 온라인 투표도 많이 이루어지고 있는데, 아파트 운영을 위한 주민투표가 온라인 투표 사이트를 통해 이루어지는 것, 예능오디션 프로그램에서 시청자 투표가 이루어지는 것 등이 온라인 투표의 예시로 볼 수 있다.
한편, 온라인 투표 시스템을 구현할 때에 중요하게 다루어져야 할 것은 투표의 내용을 투표자 이외에는 알 수 없도록 한, 소위 비밀투표권이다. 오프라인 투표에서는 신분증으로 본인인증을 한 후 투표용지에 도장 등을 찍음으로써 투표내용을 표시한 뒤 투표함에 이를 넣는 방식으로 비밀투표가 보장되고 있는데, 특히 투표자를 식별할 수 있는 어떠한 정보도 기재되어 있지 않은 동일 규격의 투표용지가 비밀투표를 보장하기 위한 수단으로 활용되고 있다.
온라인 투표에서도 마찬가지로 비밀투표를 보장하기 위한 수단이 필요하며, 동시에 투표결과(집계)는 누구든지 확인이 가능하여야 하는데 본 발명은 바로 이 수단, 즉 사용자 의사정보 식별자를 생성 및 활용하는 것에 관한 것이다.
또한, 본 발명은 이상에서 살핀 기술적 문제점을 해소시킬 수 있음은 물론, 본 기술분야에서 통상의 지식을 가진 자가 용이하게 발명할 수 없는 추가적인 기술요소들을 제공하기 위해 발명되었다. 특히 본 발명은 DB기반으로 다수 참가자들의 어떤 의사를 묻는 성격의 이벤트, 즉 투표관련 이벤트라면 모두 활용이 가능할 것이다.
한국등록특허 10-2171568호(2020.10.23. 공고)
본 발명은 온라인 투표시스템을 구현할 때에 투표자 개개인의 투표내용이 외부로 노출되지 않도록 하는 것을 목적으로 한다.
동시에, 본 발명은 블록체인 네트워크 상에 투표정보를 기록하게 함으로써 투표결과(집계)가 모든 사용자들에 의해 조회가 가능하게 하며, 또한 투표결과의 조작이 원천적으로 불가능하게 함으로써 전체 온라인 투표시스템의 신뢰성을 높이는 것을 목적으로 한다.
또한 본 발명은 투표자 본인만이 어떤 투표내용으로 온라인 투표에 참여하였는지 과거 투표 이력을 조회 가능하게 함으로써 투표자 편의를 높이는 것을 목적으로 한다.
한편, 본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
위와 같은 문제점을 해결하기 위한 것으로, 본 발명에 따른 온라인 투표 방법은, (a) 투표관리서버가 사용자 단말기로부터 사용자 의사정보를 수신하는 단계; 및 (b) 투표관리서버가 블록체인 네트워크에 상기 사용자 의사정보를 저장하는 단계;를 포함하되, 상기 사용자 단말기로부터 수신되는 사용자 의사정보는 사용자 의사정보 식별자를 포함하고, 상기 사용자 의사정보 식별자는, 상기 사용자 단말기가 상기 투표관리서버 이외의 타 서버로부터 수신한 권한토큰, 및 상기 사용자 단말기가 상기 투표관리서버로부터 수신한 이벤트 코드를 해싱하여 생성된 것을 특징으로 한다.
또한, 상기 온라인 투표 방법에 있어서 상기 사용자 의사정보 식별자는, 상기 사용자 단말기가, 상기 권한토큰, 이벤트코드, 및 상기 사용자로부터 입력 받은 PIN정보를 포함하여 해싱하여 생성된 것을 특징으로 할 수 있다.
본 발명에 따르면 온라인 투표의 비밀성을 보장할 수 있게 되는 효과가 있으며, 나아가 투표결과가 블록체인 네트워크에 기록되게 함으로써 조작이 불가능한 투표 환경을 마련할 수 있게 되는 효과가 있다.
또한 본 발명에 따르면, 투표자 본인은 자신의 투표이력(투표내용 포함)을 확인할 수 있게 되는 효과가 있다.
한편, 본 발명에 의한 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명에 따른 온라인 투표 시스템의 개략적인 모습을 도시한 것이다.
도 2는 사용자 의사정보 식별자를 생성하는 제1 실시예를 도시한 것이다.
도 3은 사용자 의사정보 식별자를 생성하는 제2 실시예를 도시한 것이다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.
본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.
도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.
또한, 어떤 구성요소들을 포함한다는 표현은 “개방형”의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
나아가 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다.
도 1은 본 발명에 따른 온라인 투표시스템을 개략적으로 도시한 것으로, 이를 참고할 때 온라인 투표시스템에는 가장 먼저 사용자 단말기(10), 그리고 제1 서버(100), 제2 서버(200), 제3 서버(300), 및 블록체인 네트워크(50)가 포함될 수 있다.
본 발명은 보안성 및 신뢰성이 강화된 온라인 투표시스템을 제공하기 위한 것으로, 특히 '사용자 의사정보 식별자'를 생성 및 활용함으로써 누가 어떤 의사정보를 기입하여 투표를 하였는지 추적이 불가능하도록 하는 것을 주된 특징으로 하며, 또한 투표정보는 블록체인 네트워크(50)에 기록이 되도록 함으로써 투표 결과에 어떤 임의의 조작이나 편집이 불가능하도록 하는 것을 주된 특징으로 한다.
도 1에 도시되어 있는 제1 서버(100) 내지 제3 서버(300)들은 각각 사용자 인증을 위한 서버(인증서버), SSO 서비스를 위한 서버(SSO서버), 그리고 투표 이벤트를 관리하기 위한 서버(투표관리서버)일 수 있으며, 사용자 단말기(10)는 이들 서버들에 개별적으로 접근하여 특정 데이터를 수집하고, 이렇게 수집된 데이터를 암호화 함으로써 사용자 의사정보 식별자를 생성해 낼 수 있다. 이 때, 상기 제1 서버(100)와 제2 서버(200)는 단일의 서버장치로 구현이 가능할 수 있다.
본 상세한 설명에서 자주 언급될 용어 '사용자 의사정보 식별자'는 말 그대로 특정 사용자의 의사정보를 식별하기 위한 용도의 문자, 숫자, 또는 문자와 숫자의 조합을 의미하는 것으로, 쉽게 말해 특정 사용자가 온라인에서 투표를 할 때에 특정 투표의사, 즉 사용자 의사정보를 식별하기 위한 것이다. 이 때, '사용자 의사정보 식별자'는 당연히 그 투표가 누구에 의해 이루어진 것인지 노출시키지 않아야 하며, 단지 해당 사용자 의사정보가 다른 이의 의사정보와 구별될 수 있도록 하는 역할을 하여야 한다.
예를 들어, 갑이라는 투표자가 아파트 동대표 선거에 참여한다고 가정할 때, 갑은 2번 후보자에게 투표를 할 수 있는데, 온라인 투표시스템 상에서 갑에 의해 처리된 투표정보는 [사용자 의사정보 식별자]+[2번 후보자]의 구조로 이루어질 수 있으며, 당연히 갑이라는 사람을 식별할 수 있을만한 정보는 노출되지 않을 것이다.
이렇듯 사용자 의사정보 식별자는 투표에 참여하는 사람을 식별하는 것이 아니라 사용자의 의사정보, 즉 찍고자 하는 선택지를 향한 투표의사를 식별하기 위한 것임을 이해하기로 한다.
한편, 사용자 단말기(10), 서버들(100~300), 및 블록체인 네트워크에 대해 구체적으로 부연 설명을 하자면 다음과 같다.
먼저 사용자 단말기(10)와 관련하여, 사용자 단말기(10)는 사용자(투표자)가 보유하거나 소지하고 다니는 단말기를 일컫는 것으로, 여기에는 스마트폰, PDA, 태블릿PC 등과 같이 휴대가 가능한 단말기는 물론 홈PC 등과 같은 설치형 단말기도 포함될 수 있다. 이러한 사용자 단말기를 장치의 측면에서 볼 때에, 각 사용자 단말기(10)들은 중앙처리유닛(CPU)과 메모리를 구비하고 있는 것을 전제로 한다. 중앙처리유닛은 컨트롤러(controller), 마이크로 컨트롤러(microcontroller), 마이크로 프로세서(microprocessor), 마이크로 컴퓨터(microcomputer) 등으로도 불릴 수 있다. 또한 중앙처리유닛은 하드웨어(hardware) 또는 펌웨어(firmware), 소프트웨어, 또는 이들의 결합에 의해 구현될 수 있는데, 하드웨어를 이용하여 구현하는 경우에는 ASIC(application specific integrated circuit) 또는 DSP(digital signal processor), DSPD(digital signal processing device), PLD(programmable logic device), FPGA(field programmable gate array) 등으로, 펌웨어나 소프트웨어를 이용하여 구현하는 경우에는 위와 같은 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등을 포함하도록 펌웨어나 소프트웨어가 구성될 수 있다. 또한, 메모리는 ROM(Read Only Memory), RAM(Random Access Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래쉬(flash) 메모리, SRAM(Static RAM), HDD(Hard Disk Drive), SSD(Solid State Drive) 등으로 구현될 수 있다.
참고로, 본 상세한 설명에서는 발명의 이해를 돕기 위하여 사용자 단말기(10)가 스마트폰, 또는 태블릿PC인 경우를 상정하여 설명하기로 한다. 이 경우, 상기 사용자 단말기(10)는 디스플레이 및 터치 감응형 표면을 포함할 수 있으며, 나아가 부수적으로 물리적 키보드, 마우스 및/또는 조이스틱과 같은 하나 이상의 다른 물리적 사용자 입력용 수단이 더 연결될 수도 있다. 또한 상기 사용자 단말기(10)는 소리나 음성을 감지하고 녹음할 수 있는 수단을 더 포함할 수도 있다. 한편, 사용자 단말기 상에서 실행되는 다양한 애플리케이션들은, 옵션적으로, 터치 감응형 표면과 같은 적어도 하나의 보편적인 물리적 사용자 입력용 수단을 사용할 수 있다. 터치 감응형 표면의 하나 이상의 기능뿐만 아니라 사용자 단말기 상에 표시되는 대응하는 정보는 하나의 어플리케이션으로부터 다음 어플리케이션으로 그리고/또는 개별 어플리케이션 내에서 옵션적으로 조정되고/되거나 변경될 수 있다. 이러한 방식으로, 사용자 단말기의 (터치 감응형 표면과 같은) 보편적인 물리적 아키텍처는, 옵션적으로, 사용자에게 직관적이고 명료한 사용자 인터페이스들을 이용하여 다양한 애플리케이션들을 지원할 수 있다.
한편, 서버들은 각각의 기능을 수행하기 위한 프로그램, 즉 명령어들의 집합을 저장 및 실행하는 구성이며, 나아가 복수의 사용자 단말기들로부터 수신되는 다양한 요청들에 응답하는 구성일 수 있다. 후술하겠지만 각각의 서버들은 사용자 단말기(10)로부터의 요청에 대한 응답으로 토큰, 또는 정보를 제공한다.
서버의 형태는, 어느 특정 운영자가 관리하는 적어도 하나의 서버용 PC일 수 있으며, 또는 타 업체에서 제공하는 클라우드 서버의 형태, 즉 운영자가 회원가입하여 사용할 수 있는 클라우드 서버의 형태일 수도 있다. 서버용 PC로 구현된 경우, 해당 서버는 중앙처리유닛 및 메모리를 포함할 수 있으며, 이에 대해서는 앞선 사용자 단말기의 설명 과정에서 자세히 언급하였으므로 여기서는 설명을 생략하기로 한다.
다음으로 블록체인이란 일정기간 동안의 거래정보를 기록하고 있는 블록(block)들을 체인 형태로 연결하여 수많은 컴퓨터에 동시에 복제해 저장한 분산형 데이터 저장 기술을 일컫는다. 블록체인 네트워크(50)는 이처럼 데이터를 체인과 같이 연결하여 중앙 집중형 서버에 거래기록을 보관하지 않고 누구나 열람할 수 있게 공개함으로써 데이터 위조나 변조가 애초부터 이루어질 수 없게, 즉 거래기록을 서로 감시할 수 있게 한 P2P 구조의 데이터 저장 수단이다. 블록체인에 기록된 데이터는 해킹을 통한 위변조가 매우 어렵기 때문에 누구나 신뢰할 수 있다는 특징이 있으며, 또한 블록체인에 기록된 데이터는 여러 컴퓨터에 분산 저장되기 때문에 특정 노드에 대한 디도스 공격이나 랜섬웨어 공격 등으로부터도 안전하다. 나아가 블록체인은 평등한 참여자들에 의해 자율적으로 유지되고 운영될 수 있으므로 기존에 모든 정보가 중앙 서버로 집중되던 서버 클라이언트 구조에 비해 유연한 특성을 가진다.
임의의 투표행위가 발생됐을 때, 해당 투표행위에 대한 블록이 생성 및 브로드캐스팅 되며, 블록을 전달 받은 각 노드들은 해당 블록을 자신의 블록체인 맨 끝에 추가하고, 자신의 스마트 컨트랙트 데이터베이스를 동기화 한다.
이상 도 1을 참고하여 본 발명에 따른 온라인 투표 시스템, 사용자 의사정보 식별자, 그리고 시스템을 구성하는 각 구성들에 대해 살펴 보았다.
도 2는 사용자 의사정보 식별자를 생성하는 방법 중 제1 실시예를 도시한 것이다.
도면을 참고할 때, 제1 실시예에 따른 사용자 의사정보 식별자 생성 방법은, 사용자 단말기(10)가 제1 서버(100)에 사용자 인증을 요청하는 단계(S101)로부터 시작된다. 제1 서버(100)는 인증서버로서의 역할을 할 수 있으며, 예를 들어 사용자 단말기(10)로부터 사용자 또는 투표자의 아이디 및 비밀번호를 수신한 뒤 서비스를 이용할 수 있는 사용자가 맞는지를 확인할 수 있다.
S101 단계 후, 제1 서버(100)에서는 앞서 사용자 인증을 요청한 자의 정보들이 등록된 사용자로 확인이 된 경우 인증토큰을 상기 사용자 단말기(10) 측에 발행(S103)할 수 있다. 인증토큰은 난수 형태의 문자열로 구성된 것일 수 있으며, 후속적으로 제2 서버(200) 또는 제3 서버(300) 중 적어도 하나에 접근할 때에도 권한이 있는지 여부를 확인하기 위해 쓰일 수 있다.
S103 단계 이후, 사용자 단말기(10)는 제2 서버(200)에 서비스 접근 권한을 요청(S105)할 수 있다. 제2 서버(200)는 SSO 서버일 수 있다. SSO 서버는 SSO 서비스를 제공하는 서버이며, SSO는 한번의 로그인 인증으로 여러 개의 서비스를 추가적인 인증 없이 사용할 수 있는 기술을 말하며, 인증은 하나의 시스템에서 수행하고, 그 시스템이 서비스를 각각 담당하는 타 시스템(서버)에 인증정보를 알려주는 방식으로 SSO서비스가 제공된다. 본 단계는 사용자 단말기(10)가 SSO서버에 특정 서비스에 접근할 수 있는 권한을 요청하는 단계로, 예를 들어 사용자 단말기(10)에서는 온라인 투표 서비스를 이용하기 위해 SSO 서버 측에 접근 권한을 요청할 수 있다. 한편, 본 단계가 수행되는 과정에서는 사용자 단말기(10)에 추가적인 인증정보 요청이 이루어질 수 있으며, 앞서 제1 서버(100)에서 입력한 사용자 인증정보와는 또 다른 별도의 인증정보인 SSO 인증정보가 더 요구될 수 있다. SSO 인증정보는 상기 사용자 단말기(100), 또는 사용자(투표자)를 식별할 수 있는 것이라면 그 종류에 제한이 없다 할 것이다.
한편, S105 단계 후 제2 서버(200)는 상기 요청에 대한 응답으로 권한토큰을 발행(S107)하게 된다. 권한토큰은 상기 제2 서버(200)와 연계되어 있는 타 서버들이 제공하는 서비스를 이용하고자 할 시 타 서버에 접근하는 용도로 쓰이며, 이 과정에서 사용자 단말기(10)는 권한토큰을 직접 타 서버에 전달하거나, 또는 사용자 단말기(10)가 건넨 권한토큰을 제2 서버(200)가 타 서버에 전달하는 단계가 존재할 수 있다.
권한토큰까지 수신한 뒤, 사용자 단말기(10)는 제3 서버(300)에 이벤트 정보를 요청(S109)할 수 있다. 본 단계는 사용자(투표자)가 어떤 투표에 참여할 것인지를 정하여 그 투표에 참여하고 싶다는 의사를 표시하는 단계로도 이해될 수 있다. 제3 서버(300)는 투표관리서버일 수 있다.
예를 들어, 이 단계는 사용자 단말기(10)의 화면 상에 여러 개의 진행 중인 투표 이벤트가 표시되고, 이 중에 사용자가 어느 하나의 투표 이벤트를 선택하면 사용자 단말기(10), 더 정확하게는 사용자 단말기(10)에서 구동되는 어플리케이션에서 제3 서버(300)를 향해 이벤트 정보를 요청할 수 있다.
S109 단계 후, 제3 서버(300)는 위 요청에 대한 응답으로 이벤트 정보를 전달할 수 있으며, 전달되는 이벤트 정보 중에는 이벤트 코드가 반드시 포함된다. 이벤트 정보란, 상기 사용자(투표자)가 참여하고자 하는 투표 이벤트에 관한 다양한 정보들이 포함될 수 있으며, 투표 목적, 투표 시간, 선택 가능한 선택지, 투표 결과 산출에 대한 설명, 또는 투표 참여에 따른 보상 등 다양한 정보들이 포함될 수 있다.
이벤트 정보(이벤트 코드)까지 수신한 뒤 사용자 단말기(10)는 사용자 의사정보 식별자를 생성(S113)할 수 있다. 사용자 의사정보 식별자는 앞서 수신된 권한토큰, 그리고 이벤트 코드가 암호화 됨으로써 생성될 수 있다. 바람직하게는, 상기 권한토큰 및 이벤트 코드가 조합된 상태에서 해싱(hashing) 됨으로써 사용자 의사정보 식별자가 생성될 수 있다.
이렇게 S113 단계까지가 본 발명에 따른 사용자 의사정보 식별자를 생성하는 방법에 포함될 수 있다. 참고로 본 실시예는 서비스를 제공하는 주체의 입장에서, 다시 말해 제1 서버 내지 제3서버의 운영자 중 적어도 하나는 어느 사용자가 어떤 의사 표시를 하였는지를 알 수 있으나, 통상적으로 서비스를 제공하는 자는 높은 보안을 유지하기 위한 수단들을 갖추고 있으므로 일반 사용자들의 입장에서는 이를 신뢰하여 이벤트에 참여할 수 있을 것이다. 서비스를 제공하는 주체들마저도 어느 사용자가 어떤 의사 표시를 하였는지 알 수 없게 하기 위해서는 사용자 개별 PIN정보가 더 활용될 수 있는데, 이는 후술하게 될 제2 실시예에서 다시 언급하기로 하며, 여기서는 잠시 설명을 뒤로 미뤄둔다.
한편, 사용자 의사정보 식별자가 생성된 후, 사용자 단말기(10)에서는 상기 사용자(투표자)의 사용자 의사정보를 제3 서버(300) 측으로 전달(S115)한다. S101 단계로부터 이어져 S115 단계, S117 단계까지를 포함하는 방법은 소위 온라인 투표 방법으로 정의될 수 있는데, 본 115단계에서는, 앞서 생성되었던 사용자 의사정보 식별자와 사용자의 의사정보가 결합되는 단계가 포함될 수 있다. 예를 들어, 사용자가 1번 선택지에 투표하고자 한다면, 사용자 단말기(10)에서는 사용자 의사정보 식별자에 "1번 선택"이라는 정보를 덧붙여 제3 서버(300) 측에 전달할 수 있다. 즉, 본 단계에서는 "사용자 의사정보 식별자"에 의해 식별되는 '누군가'가 '어느 선택지'를 선택하였는지에 대한 정보를 제3 서버(300)로 전달하는 과정이 수행될 수 있다.
S115 단계 후, 제3 서버(300)는 앞서 수신한 사용자 의사정보를 블록체인 네트워크(50)에 기록(S117)할 수 있다.
한편, 도 3은 제2 실시예에 따른 사용자 의사정보 식별자 생성 방법을 도시한 것이다. 제1 실시예와 비교할 때, 제2 실시예는 사용자 단말기(10)에 입력(S204)되는 PIN정보가 더 존재한다는 점, 그리고 사용자 의사정보 식별자 생성(S213) 시 PIN정보, 권한토큰, 및 이벤트 코드가 모두 암호화 된다는 점에서 차이가 있다.
사용자 단말기(10)에 PIN정보가 입력되는 방식은 다양할 수 있으며, 예를 들어 사용자가 임의로 정한 문자, 숫자, 또는 이들의 조합, 또는 사용자에 의해 입력되는 임의의 패턴, 또는 지문, 얼굴, 홍채 등의 인식 가능한 생체정보 등이 PIN정보로 활용될 수 있다. PIN정보는 오로지 사용자만이 알 수 있는 정보, 사용자만이 제공할 수 있는 정보여야 한다. PIN정보는 어떤 사용자가 어떤 의사정보를 표시하였는지 다른 주체들로 하여금 추적할 수 없게 하는 동시에, 해당 사용자만 자신이 어떤 투표 이벤트에 어떤 의사정보를 발신하였는지 조회할 수 있게 하는 매개체일 수 있다. 즉, 사용자는 사용자 단말기(10)에 설치된 어플리케이션을 실행시킨 후 PIN정보를 입력할 수 있으며, 이를 통해 자신이 과거부터 참여하였던 투표 이력을 조회할 수 있다.
참고로, 앞선 제1 실시예에서와 마찬가지로 S213 단계에서는 "사용자 의사정보 식별자"를 생성하고 있으며, S215 단계에서는 "사용자 의사정보"를 전달하고 있음을 이해한다. 사용자 의사정보 식별자는 앞서에서도 자세히 설명했던 것처럼 특정 이벤트에 참여하고 있는 임의의 참여자를 식별하기 위한 것으로, 사용자 단말기(10), 더 정확하게는 어플리케이션 상에서 PIN정보, 권한토큰, 및 이벤트 코드를 해싱 처리함으로써 생성하는 것이다. 한편, S215 단계에서의 사용자 의사정보는 상기 사용자 의사정보 식별자에 더하여 사용자가 표시하고자 하는 의사정보가 더 결합된 것을 의미할 수 있다.
이상 도면들을 참고하여 본 발명에 따른 사용자 의사정보 식별자 생성 방법 및 전반적인 온라인 투표 시스템에 대해 살펴 보았다.
한편, 본 발명에서 언급되는 사용자 의사정보 식별자는 2인 이상의 사용자들, 다시 말해 하나의 그룹이 어떤 의사정보를 표시할 때에 식별하기 위한 용도로 활용될 수도 있다. 경우에 따라 특정 이벤트에서는 복수의 사용자들이 속해 있는 하나의 그룹이 어떤 의사결정을 하여야 할 필요도 있으며, 특히 다수의 사용자들이 모두 어플리케이션을 설치하는 등의 과정들을 거쳐 개별 투표에 참여하기가 어려운 경우 대표성을 가진 1인이 다수 사용자들의 의사를 받아 투표 이벤트에 참여할 수 있는데, 본 발명에 따른 사용자 의사정보 식별자는 이렇게 복수 사용자들의 의사정보를 제3 서버(300) 측에 전달하고자 할 때에도 활용 가능하다. 이 경우, 사용자 단말기(10)는 대표자 1인의 단말기일 수 있으며, 또한 상기 사용자 단말기(10)에는 특정 의사표시를 한 사용자들의 개인식별자들이 수집되어 있을 수 있다. 개인식별자들은 의사표시를 대표자 1인에게 전달한 사용자들을 각각 식별할 수 있을 정도의 것이면 족하다 할 것이며, 필요에 따라 참여 사용자가 참여하고자 하는 투표 이벤트를 특정할 수 있는 이벤트 코드(이 때 이벤트 코드는 S111, S211에서의 이벤트 코드와는 다른 것일 수 있음)가 더 포함될 수도 있겠으나 필수적인 사항은 아니라 할 것이다.
한편, 개별 사용자들로부터 개인식별자 및 의사정보를 수신한 사용자 단말기(10)에서는 소위 그룹 의사정보 식별자를 생성할 수 있다. 이 때, 그룹 의사정보 식별자에는 상기 대표자 1인, 즉 사용자 단말기(10) 소유자의 권한토큰, 이벤트 코드가 포함될 수 있으며, 여기에 참여자들의 개인식별자들이 더 포함되어 해싱 됨으로써 생성될 수 있다. 또한, 사용자 단말기(10) 소유자의 권한토큰, 이벤트 코드, 개인식별자들, 외에 사용자 단말기(10) 소유자의 PIN 정보가 더 포함되어 해싱될 수도 있다. 이렇게 생성된 그룹 의사정보 식별자에는 참여한 사용자들의 의사정보가 덧붙여져 "그룹 의사정보"의 형태로 제3 서버(300) 측에 전달될 수 있다. 그룹 의사정보는 몇 명이 어떤 선택지를 선택하였는지에 대한 정보를 포함할 수 있으며, 예를 들어 [1번 선택지 31명; 2번 선택지 55명; 3번 선택지 198명; ?? ]등과 같은 정보를 포함할 수 있다.
또 다른 한편, 상기 그룹 의사정보 식별자는 특정 선택지를 선택한 사용자들만을 위해 생성될 수도 있다. 예를 들어 제1 그룹 의사정보 식별자는 제1 선택지를 선택한 사용자들의 개인식별자들, 사용자 단말기(10) 소유자의 PIN정보, 권한토큰, 및 이벤트 코드가 해싱됨으로써, 그리고 제2 그룹 의사정보 식별자는 제2 선택지를 선택한 사용자들의 개인식별자들, 사용자 단말기(10) 소유자의 PIN정보, 권한토큰, 및 이벤트 코드가 해싱됨으로써 생성될 수 있다. 제3 서버(300) 측에 전달되는 그룹 의사정보도 당연히 2개로 나뉘어 전달될 수 있다. 특정 선택지를 선택한 개인식별자들이 상이하므로 각 그룹 의사정보 식별자는 서로 구분될 수 있으며, 이러한 방식을 통해 사용자 단말기(10) 소유자, 즉 대표자1인은 제3 서버(300) 측에 다수의 의사를 쉽게 전달할 수 있다.
한편, 이와 같은 실시예에 있어서는 당연히 대표자 1인만이 투표 참여 이력 조회가 가능하다 할 것이며, 나머지 투표 이벤트 참여자들은 상기 대표자 1인의 조회가 없이는 개별적으로 자신의 참여 이력을 조회할 수 없다.
이상 사용자 의사정보 식별자 생성 방법, 그리고 이를 포함하는 온라인 투표 시스템에 대해 살펴보았다. 한편, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.
10 사용자 단말기
50 블록체인 네트워크
100 제1 서버
200 제2 서버
300 제3 서버

Claims (2)

  1. 온라인 투표 방법에 있어서,
    (a) 투표관리서버가 사용자 단말기로부터 사용자 의사정보 식별자 및 사용자 의사정보가 결합된 것을 수신하는 단계; 및
    (b) 투표관리서버가 블록체인 네트워크에 상기 사용자 의사정보 식별자 및 사용자 의사정보를 저장하는 단계;를 포함하되,
    상기 사용자 의사정보 식별자는,
    상기 사용자 단말기가, SSO(Single Sign On) 서버로부터 수신한 권한토큰, 상기 사용자 단말기가 상기 투표관리서버로부터 수신한 이벤트코드, 및 상기 사용자 단말기에 설치된 어플리케이션을 통해 사용자로부터 입력 받은 PIN정보가 조합된 상태에서 해싱함으로써 생성된 것을 특징으로 하며,
    상기 권한토큰은, 상기 SSO 서버와 연계되어 있는 투표관리서버가 제공하는 서비스를 이용할 시 해당 투표관리서버에 접근하는 용도의 것이고,
    상기 이벤트코드는, 상기 투표관리서버로부터 상기 사용자 단말기가 수신한 이벤트정보에 포함되되, 상기 이벤트정보는 투표 목적, 투표 시간, 및 선택 가능한 선택지를 더 포함하며,
    상기 사용자 의사정보 식별자는, 상기 사용자 단말기 상에서 사용자 의사정보와 결합되어 상기 투표관리서버로 전달되는 것으로서,
    상기 사용자 의사정보 식별자는, 사용자의 상기 사용자 의사정보를 식별하기 위한 용도의 것이고,
    상기 사용자 의사정보는, 상기 사용자 단말기의 사용자가 상기 선택 가능한 선택지 중에서 어느 선택지를 선택하였는지에 대한 정보인 것을 특징으로 하는,
    온라인 투표 방법.
  2. 삭제
KR1020220048473A 2022-04-19 2022-04-19 비밀성이 제고된 온라인 투표 방법 및 이를 위한 시스템 KR102479989B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220048473A KR102479989B1 (ko) 2022-04-19 2022-04-19 비밀성이 제고된 온라인 투표 방법 및 이를 위한 시스템
PCT/KR2023/002101 WO2023204410A1 (ko) 2022-04-19 2023-02-14 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220048473A KR102479989B1 (ko) 2022-04-19 2022-04-19 비밀성이 제고된 온라인 투표 방법 및 이를 위한 시스템

Publications (1)

Publication Number Publication Date
KR102479989B1 true KR102479989B1 (ko) 2022-12-22

Family

ID=84578374

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220048473A KR102479989B1 (ko) 2022-04-19 2022-04-19 비밀성이 제고된 온라인 투표 방법 및 이를 위한 시스템

Country Status (1)

Country Link
KR (1) KR102479989B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023204410A1 (ko) * 2022-04-19 2023-10-26 주식회사 블로코 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101908677B1 (ko) * 2017-09-29 2018-10-16 숭실대학교산학협력단 블록체인을 이용한 전자투표 관리 시스템 및 방법
KR20200114188A (ko) * 2019-03-28 2020-10-07 권형석 스마트 컨트랙트 기반 블록체인을 활용한 전자투표 방법 및 시스템.
KR102171568B1 (ko) 2019-01-07 2020-10-29 한양대학교 에리카산학협력단 투표자 단말, 인증서버, 투표서버, 및 전자투표 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101908677B1 (ko) * 2017-09-29 2018-10-16 숭실대학교산학협력단 블록체인을 이용한 전자투표 관리 시스템 및 방법
KR102171568B1 (ko) 2019-01-07 2020-10-29 한양대학교 에리카산학협력단 투표자 단말, 인증서버, 투표서버, 및 전자투표 시스템
KR20200114188A (ko) * 2019-03-28 2020-10-07 권형석 스마트 컨트랙트 기반 블록체인을 활용한 전자투표 방법 및 시스템.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023204410A1 (ko) * 2022-04-19 2023-10-26 주식회사 블로코 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템

Similar Documents

Publication Publication Date Title
US10949511B2 (en) Multicomputer processing for data authentication using a blockchain approach
US10692321B2 (en) Architecture for access management
US11645593B2 (en) Use of identity and access management for service provisioning
RU2652443C1 (ru) Система и способ определения количества голосов избирателей, собираемых с помощью электронного голосования
CN111260398B (zh) 一种广告投放控制方法、装置、电子设备及存储介质
US10153901B2 (en) System and method for verifying user identity in a virtual environment
US7549049B2 (en) Dynamic auditing of electronic elections
US8613391B2 (en) System and method for secure voting
US9015281B2 (en) Private data sharing system
US7418401B2 (en) Secure internet transactions on unsecured computers
CN109509288B (zh) 电子投票系统和控制方法
CN109241753A (zh) 一种基于区块链的数据共享方法和系统
WO2016040744A1 (en) Systems and methods for online third-party authentication of credentials
JP2003527035A (ja) 遠隔の第三者監視を有する自動識別保護システム
CN108369614A (zh) 用户认证方法及用于实现该方法的系统
CN113792318A (zh) 数据授权方法及装置、计算机可读存储介质、计算机设备
CN111291394A (zh) 一种虚假信息管理方法、装置和存储介质
KR102479989B1 (ko) 비밀성이 제고된 온라인 투표 방법 및 이를 위한 시스템
KR102479988B1 (ko) 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템
JP2017023348A (ja) ゲームシステム、スコア処理プログラム、ゲームシステムの管理装置及びスコア処理方法
Awalu et al. Development of a distributed blockchain evoting system
CN110708156A (zh) 一种通信方法、客户端及服务器
Heinl et al. Remote electronic voting in uncontrolled environments: A classifying survey
KR102544764B1 (ko) 사용자 단말기 상에서 발행된 임시식별자를 이용한 사용자 의사정보 식별자 생성하는 방법 및 이를 위한 시스템
Vakarjuk et al. Russian federal remote E-voting scheme of 2021–protocol description and analysis

Legal Events

Date Code Title Description
GRNT Written decision to grant