KR102586412B1 - Method for generating user pseudo information identifier using temporary key issued on user terminal and system therefor - Google Patents

Method for generating user pseudo information identifier using temporary key issued on user terminal and system therefor Download PDF

Info

Publication number
KR102586412B1
KR102586412B1 KR1020220177060A KR20220177060A KR102586412B1 KR 102586412 B1 KR102586412 B1 KR 102586412B1 KR 1020220177060 A KR1020220177060 A KR 1020220177060A KR 20220177060 A KR20220177060 A KR 20220177060A KR 102586412 B1 KR102586412 B1 KR 102586412B1
Authority
KR
South Korea
Prior art keywords
user
server
user terminal
decision information
information identifier
Prior art date
Application number
KR1020220177060A
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 KR1020220177060A priority Critical patent/KR102586412B1/en
Application granted granted Critical
Publication of KR102586412B1 publication Critical patent/KR102586412B1/en

Links

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/3247Cryptographic 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 digital signatures
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템에 관한 것으로, 구체적으로는 블록체인 네트워크 기반의 온라인 투표 시스템을 구현함에 있어 투표결과(집계)는 누구든지 확인이 가능한 반면 투표자 개개인의 투표내용은 네트워크 상에서 추적이 되지 않는 것을 보장할 수 있도록 사용자 의사정보 식별자를 생성하되, 위 사용자 의사정보 식별자를 생성할 시 투표자의 단말기, 즉 사용자 단말기 상에서 발행된 임시키를 이용하는 방법 및 시스템에 관한 것이다.The present invention relates to a method for generating a user decision information identifier and a system for the same. Specifically, in implementing an online voting system based on a blockchain network, anyone can confirm the voting results (tally) while voting by each voter. The content relates to a method and system for generating a user decision information identifier to ensure that it is not tracked on the network, and using a temporary key issued on the voter's terminal, that is, the user terminal, when generating the user decision information identifier. .

Description

사용자 단말기 상에서 발행된 임시키를 이용한 사용자 의사정보 식별자 생성하는 방법 및 이를 위한 시스템{METHOD FOR GENERATING USER PSEUDO INFORMATION IDENTIFIER USING TEMPORARY KEY ISSUED ON USER TERMINAL AND SYSTEM THEREFOR}Method for generating user decision information identifier using temporary key issued on user terminal and system therefor {METHOD FOR GENERATING USER PSEUDO INFORMATION IDENTIFIER USING TEMPORARY KEY ISSUED ON USER TERMINAL AND SYSTEM THEREFOR}

본 발명은 사용자 의사정보 식별자를 생성하는 방법 및 이를 위한 시스템에 관한 것으로, 구체적으로는 블록체인 네트워크 기반의 온라인 투표 시스템을 구현함에 있어 투표결과(집계)는 누구든지 확인이 가능한 반면 투표자 개개인의 투표내용은 네트워크 상에서 추적이 되지 않는 것을 보장할 수 있도록 사용자 의사정보 식별자를 생성하되, 위 사용자 의사정보 식별자를 생성할 시 투표자의 단말기, 즉 사용자 단말기 상에서 발행된 임시키를 이용하는 방법 및 시스템에 관한 것이다.The present invention relates to a method for generating a user decision information identifier and a system for the same. Specifically, in implementing an online voting system based on a blockchain network, anyone can confirm the voting results (tally) while voting by each voter. The content relates to a method and system for generating a user decision information identifier to ensure that it is not tracked on the network, and using a temporary key issued on the voter's terminal, that is, the user terminal, when generating the user decision information identifier. .

투표란 어떤 의사결정을 하는데 다수의 의사를 취합하는 방법 중 하나를 일컫는 것으로, 이러한 투표는 다수의 투표자들로 하여금 정해진 방식에 따라 개개인의 의사를 표시할 수 있는 환경에서 이루어질 수 있다.Voting refers to one of the methods of gathering the opinions of the majority to make a decision. Such voting can be done in an environment where multiple voters can express their individual opinions according to a set method.

네트워크 인프라가 발달하면서 최근에는 오프라인 투표 대신 온라인 투표도 많이 이루어지고 있는데, 아파트 운영을 위한 주민투표가 온라인 투표 사이트를 통해 이루어지는 것, 예능오디션 프로그램에서 시청자 투표가 이루어지는 것 등이 온라인 투표의 예시로 볼 수 있다. Recently, with the development of network infrastructure, online voting has been increasingly conducted instead of offline voting. Examples of online voting include referendums for apartment management being conducted through online voting sites and viewer voting in entertainment audition programs. You can.

한편, 온라인 투표 시스템을 구현할 때에 중요하게 다루어져야 할 것은 투표의 내용을 투표자 이외에는 알 수 없도록 한, 소위 비밀투표권이다. 오프라인 투표에서는 신분증으로 본인인증을 한 후 투표용지에 도장 등을 찍음으로써 투표내용을 표시한 뒤 투표함에 이를 넣는 방식으로 비밀투표가 보장되고 있는데, 특히 투표자를 식별할 수 있는 어떠한 정보도 기재되어 있지 않은 동일 규격의 투표용지가 비밀투표를 보장하기 위한 수단으로 활용되고 있다. Meanwhile, what is important to consider when implementing an online voting system is the so-called secret voting right, which ensures that the contents of the vote cannot be known to anyone other than the voter. In offline voting, secret voting is guaranteed by verifying your identity with an ID card, stamping the ballot paper, marking your vote, and then putting it in the ballot box. In particular, no information that can identify the voter is recorded. Ballot papers of the same standard are being used as a means of ensuring secret voting.

온라인 투표에서도 마찬가지로 비밀투표를 보장하기 위한 수단이 필요하며, 동시에 투표결과(집계)는 누구든지 확인이 가능하여야 하는데 본 발명은 바로 이 수단, 즉 사용자 의사정보 식별자를 생성 및 활용하는 것에 관한 것이다. Likewise, in online voting, a means to ensure secret voting is required, and at the same time, the voting results (tally) must be confirmed by anyone. The present invention relates to this means, that is, generating and utilizing user decision information identifiers.

또한, 본 발명은 이상에서 살핀 기술적 문제점을 해소시킬 수 있음은 물론, 본 기술분야에서 통상의 지식을 가진 자가 용이하게 발명할 수 없는 추가적인 기술요소들을 제공하기 위해 발명되었다. 특히 본 발명은 DB기반으로 다수 참가자들의 어떤 의사를 묻는 성격의 이벤트, 즉 투표관련 이벤트라면 모두 활용이 가능할 것이다.In addition, the present invention was invented to solve the technical problems discussed above, as well as to provide additional technical elements that cannot be easily invented by those skilled in the art. In particular, the present invention is DB-based and can be used for any event that asks the opinions of multiple participants, that is, any event related to voting.

한국등록특허 10-2171568호(2020.10.23. 공고)Korean Patent No. 10-2171568 (announced on October 23, 2020)

본 발명은 온라인 투표시스템을 구현할 때에 투표자 개개인의 투표내용이 외부로 노출되지 않도록 하는 것을 목적으로 한다.The purpose of the present invention is to prevent individual voters' voting details from being exposed to the outside when implementing an online voting system.

동시에, 본 발명은 블록체인 네트워크 상에 투표정보를 기록하게 함으로써 투표결과(집계)가 모든 사용자들에 의해 조회가 가능하게 하며, 또한 투표결과의 조작이 원천적으로 불가능하게 함으로써 전체 온라인 투표시스템의 신뢰성을 높이는 것을 목적으로 한다.At the same time, the present invention records voting information on a blockchain network so that voting results (counts) can be viewed by all users, and also makes manipulation of voting results fundamentally impossible, thereby increasing the reliability of the entire online voting system. The purpose is to increase.

또한 본 발명은 투표자 본인만이 어떤 투표내용으로 온라인 투표에 참여하였는지 과거 투표 이력을 조회 가능하게 함으로써 투표자 편의를 높이는 것을 목적으로 한다. In addition, the purpose of the present invention is to increase voter convenience by allowing only the voter to check past voting history to see what voting details he or she has participated in online voting with.

또한 본 발명은 투표자의 단말기, 즉 사용자 단말기 상에서 발행된 임시키를 이용하여 사용자의 의사정보를 전자서명하고, SSO 서버로 하여금 권한토큰 생성 시 상기 임시키의 공개키를 포함해 전자서명을 하게 하며, 블록체인 네트워크에 상기 권한토큰이 기록되도록 하는 등의 단계들을 포함함으로써 사용자 단말기로부터 투표서버에 전달되는 사용자 의사정보 및 사용자 의사정보 식별자가 검증이 가능하게 하는 것을 목적으로 한다.In addition, the present invention electronically signs the user's decision information using a temporary key issued on the voter's terminal, that is, the user terminal, and causes the SSO server to electronically sign including the public key of the temporary key when generating an authority token. The purpose is to enable verification of user decision information and user decision information identifier transmitted from the user terminal to the voting server by including steps such as recording the authority token in the blockchain network.

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

위와 같은 문제점을 해결하기 위하여, 본 발명에 따른 사용자 단말기 상에서 사용자 의사정보 식별자를 생성하는 방법은, (a) 사용자 단말기가 제1 서버 측으로 사용자 인증요청을 전송하고, 응답으로 상기 제1 서버로부터 발행된 인증토큰을 수신하는 단계; (b) 사용자 단말기가 임시키를 발행하는 단계; (c) 사용자 단말기가 제2 서버 측으로 서비스 접근 권한요청을 전송 - 상기 권한요청에는 상기 임시키에 대응되는 공개키를 포함함 - 하고, 응답으로 상기 제2 서버로부터 발행된 권한토큰을 수신하되, 상기 권한토큰에는 상기 임시키에 매칭되는 공개키가 포함되어 있고, 또한 상기 권한토큰은 상기 제2 서버에 의해 전자서명되며, 전자서명 후 블록체인 네트워크 상에 기록되는 것을 특징으로 하는 단계; (d) 사용자 단말기가 제3 서버 측으로 이벤트 정보요청을 전송하고, 응답으로 상기 제3 서버로부터 제공된 이벤트정보를 수신하는 단계; (e) 사용자 단말기가, 상기 권한토큰 및 상기 이벤트정보 내 포함된 이벤트코드를 해싱하여 사용자 의사정보 식별자를 생성하는 단계; (f) 사용자 단말기가, 상기 사용자 의사정보 식별자 및 사용자 의사정보를 상기 제3 서버로 전송하되, 상기 사용자 의사정보는 상기 임시키를 활용하여 전자서명되는 것을 특징으로 하는 단계;를 포함할 수 있다.In order to solve the above problem, the method of generating a user decision information identifier on a user terminal according to the present invention is (a) the user terminal transmits a user authentication request to the first server, and issues a user authentication request from the first server in response. receiving an authentication token; (b) the user terminal issuing a temporary key; (c) The user terminal transmits a service access authority request to the second server - the authority request includes a public key corresponding to the temporary key - and receives an authority token issued from the second server in response, The authority token includes a public key matching the temporary key, the authority token is electronically signed by the second server, and the authority token is recorded on a blockchain network after the electronic signature; (d) the user terminal transmitting an event information request to a third server and receiving event information provided from the third server in response; (e) the user terminal generating a user decision information identifier by hashing the event code included in the authority token and the event information; (f) the user terminal transmits the user decision information identifier and the user decision information to the third server, wherein the user decision information is electronically signed using the temporary key. .

또한, 상기 사용자 의사정보 식별자 생성 방법에 있어서, 상기 (f)단계에서 상기 제3 서버로 전송된 사용자 의사정보 식별자 및 사용자 의사정보는, 상기 제3 서버에 의해, 상기 제2 서버의 전자서명 및 상기 사용자 단말기의 전자서명이 확인되는 것을 특징으로 할 수 있다.In addition, in the method of generating the user decision information identifier, the user decision information identifier and the user decision information transmitted to the third server in step (f) are, by the third server, the electronic signature of the second server and The electronic signature of the user terminal may be confirmed.

또한, 상기 사용자 의사정보 식별자 생성 방법에 있어서, 상기 제3 서버는, 상기 사용자 단말기로부터 상기 권한토큰 또는 상기 권한토큰에 포함된 정보 중 일부를 더 수신하는 것을 특징으로 할 수 있다.Additionally, in the method for generating the user decision information identifier, the third server may further receive the authority token or some of the information included in the authority token from the user terminal.

또한, 상기 사용자 의사정보 식별자 생성 방법에 있어서, 상기 제3 서버에 의해 확인된 사용자 의사정보 식별자 및 사용자 의사정보는, 상기 블록체인 네트워크 상에 기록되는 것을 특징으로 할 수 있다.Additionally, in the method for generating the user intention information identifier, the user intention information identifier and the user intention information confirmed by the third server may be recorded on the blockchain network.

본 발명에 따르면 온라인 투표의 비밀성을 보장할 수 있게 되는 효과가 있으며, 나아가 투표결과가 블록체인 네트워크에 기록되게 함으로써 조작이 불가능한 투표 환경을 마련할 수 있게 되는 효과가 있다.According to the present invention, it is possible to guarantee the secrecy of online voting, and furthermore, it is possible to create a voting environment in which manipulation is impossible by recording voting results in a blockchain network.

또한 본 발명에 따르면, 투표자 본인은 자신의 투표이력(투표내용 포함)을 확인할 수 있게 되는 효과가 있다. Additionally, according to the present invention, the voter has the effect of being able to check his/her voting history (including voting details).

또한 본 발명에 따르면, 투표자가 투표서버 측에 전달한 투표기록(사용자 의사정보 및 사용자 의사정보 식별자)에 대한 정합성 확인이 가능하며, 나아가 실 투표율 확인이 가능해 지는 효과가 있다. In addition, according to the present invention, it is possible to check the consistency of the voting record (user opinion information and user opinion identifier) transmitted by the voter to the voting server, and furthermore, it is possible to check the actual voter turnout.

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

도 1은 본 발명에 따른 온라인 투표 시스템의 개략적인 모습을 도시한 것이다.
도 2는 사용자 단말기 상에서 사용자 의사정보 식별자를 생성하는 제1 실시예를 도시한 것이다.
도 3은 사용자 단말기 상에서 발행된 임시키를 활용하여 사용자 의사정보 식별자를 생성하는 제2 실시예를 도시한 것이다.
Figure 1 schematically shows an online voting system according to the present invention.
Figure 2 shows a first embodiment of generating a user decision information identifier on a user terminal.
Figure 3 shows a second embodiment of generating a user decision information identifier using a temporary key issued on the user terminal.

본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.Details regarding the purpose and technical configuration of the present invention and its operational effects will be more clearly understood by the following detailed description based on the drawings attached to the specification of the present invention. Embodiments according to the present invention will be described in detail with reference to the attached drawings.

본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.The embodiments disclosed herein should not be construed or used as limiting the scope of the present invention. It is obvious to those skilled in the art that the description, including embodiments, of this specification has various applications. Accordingly, any embodiments described in the detailed description of the present invention are illustrative to better explain the present invention and are not intended to limit the scope of the present invention to the embodiments.

도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.The functional blocks shown in the drawings and described below are only examples of possible implementations. Other functional blocks may be used in other implementations without departing from the spirit and scope of the detailed description. Additionally, although one or more functional blocks of the present invention are shown as individual blocks, one or more of the functional blocks of the present invention may be a combination of various hardware and software components that perform the same function.

또한, 어떤 구성요소들을 포함한다는 표현은 “개방형”의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.Additionally, the expression including certain components is an “open” expression and simply refers to the presence of the components and should not be understood as excluding additional components.

나아가 어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다. Furthermore, when a component is referred to as being “connected” or “connected” to another component, it should be understood that although it may be directly connected or connected to the other component, other components may exist in between. do.

도 1은 본 발명에 따른 온라인 투표시스템을 개략적으로 도시한 것으로, 이를 참고할 때 온라인 투표시스템에는 가장 먼저 사용자 단말기(10), 그리고 제1 서버(100), 제2 서버(200), 제3 서버(300), 및 블록체인 네트워크(50)가 포함될 수 있다. Figure 1 schematically shows an online voting system according to the present invention. When referring to this, the online voting system first includes a user terminal 10, then a first server 100, a second server 200, and a third server. 300, and a blockchain network 50 may be included.

본 발명은 보안성 및 신뢰성이 강화된 온라인 투표시스템을 제공하기 위한 것으로, 특히 '사용자 의사정보 식별자'를 생성 및 활용함으로써 누가 어떤 의사정보를 기입하여 투표를 하였는지 추적이 불가능하도록 하는 것을 주된 특징으로 하며, 또한 투표정보는 블록체인 네트워크(50)에 기록이 되도록 함으로써 투표 결과에 어떤 임의의 조작이나 편집이 불가능하도록 하는 것을 주된 특징으로 한다.The purpose of the present invention is to provide an online voting system with enhanced security and reliability. In particular, the main feature is to make it impossible to track who entered what decision information and voted by creating and utilizing a 'user decision information identifier'. In addition, the main feature is that voting information is recorded in the blockchain network 50 to prevent any arbitrary manipulation or editing of voting results.

도 1에 도시되어 있는 제1 서버(100) 내지 제3 서버(300)들은 각각 사용자 인증을 위한 서버(인증서버), SSO 서비스를 위한 서버(SSO서버), 그리고 투표 이벤트를 관리하기 위한 서버(투표관리서버)일 수 있으며, 사용자 단말기(10)는 이들 서버들에 개별적으로 접근하여 특정 데이터를 수집하고, 이렇게 수집된 데이터를 암호화 함으로써 사용자 의사정보 식별자를 생성해 낼 수 있다. 이 때, 상기 제1 서버(100)와 제2 서버(200)는 단일의 서버장치로 구현이 가능할 수 있다. The first server 100 to the third server 300 shown in FIG. 1 are respectively a server for user authentication (authentication server), a server for SSO service (SSO server), and a server for managing voting events ( It may be a voting management server), and the user terminal 10 can individually access these servers to collect specific data and generate a user decision information identifier by encrypting the collected data. At this time, the first server 100 and the second server 200 may be implemented as a single server device.

본 상세한 설명에서 자주 언급될 용어 '사용자 의사정보 식별자'는 말 그대로 특정 사용자의 의사정보를 식별하기 위한 용도의 문자, 숫자, 또는 문자와 숫자의 조합을 의미하는 것으로, 쉽게 말해 특정 사용자가 온라인에서 투표를 할 때에 특정 투표의사, 즉 사용자 의사정보를 식별하기 위한 것이다. 이 때, '사용자 의사정보 식별자'는 당연히 그 투표가 누구에 의해 이루어진 것인지 노출시키지 않아야 하며, 단지 해당 사용자 의사정보가 다른 이의 의사정보와 구별될 수 있도록 하는 역할을 하여야 한다. The term 'user opinion information identifier', which will be frequently mentioned in this detailed description, literally means letters, numbers, or a combination of letters and numbers for the purpose of identifying the opinion information of a specific user. In simple terms, it means that a specific user can use it online. This is to identify specific voting intentions, that is, user intention information, when voting. At this time, the 'user decision information identifier' should not reveal who the vote was made by, but should only serve to distinguish the user's decision information from other people's decision information.

예를 들어, 갑이라는 투표자가 아파트 동대표 선거에 참여한다고 가정할 때, 갑은 2번 후보자에게 투표를 할 수 있는데, 온라인 투표시스템 상에서 갑에 의해 처리된 투표정보는 [사용자 의사정보 식별자]+[2번 후보자]의 구조로 이루어질 수 있으며, 당연히 갑이라는 사람을 식별할 수 있을만한 정보는 노출되지 않을 것이다.For example, assuming that voter A is participating in the apartment block representative election, A can vote for candidate 2, and the voting information processed by A on the online voting system is [User decision information identifier] + [ Candidate No. 2], and of course no information that could identify person A will be exposed.

이렇듯 사용자 의사정보 식별자는 투표에 참여하는 사람을 식별하는 것이 아니라 사용자의 의사정보, 즉 찍고자 하는 선택지를 향한 투표의사를 식별하기 위한 것임을 이해하기로 한다.In this way, it is to be understood that the user intention information identifier is not intended to identify the person participating in the vote, but rather to identify the user's intention information, that is, the intention to vote for the option to be voted for.

한편, 사용자 단말기(10), 서버들(100~300), 및 블록체인 네트워크에 대해 구체적으로 부연 설명을 하자면 다음과 같다.Meanwhile, a detailed explanation of the user terminal 10, servers 100 to 300, and blockchain network is as follows.

먼저 사용자 단말기(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) 등으로 구현될 수 있다. First, regarding the user terminal 10, the user terminal 10 refers to a terminal owned or carried by a user (voter). This includes portable terminals such as smartphones, PDAs, tablet PCs, etc., as well as home PCs. Installable terminals such as the like may also be included. When viewing these user terminals from the perspective of devices, it is assumed that each user terminal 10 is equipped with a central processing unit (CPU) and memory. The central processing unit may also be called a controller, microcontroller, microprocessor, microcomputer, etc. Additionally, the central processing unit may be implemented by hardware, firmware, software, or a combination thereof. When implemented using hardware, an application specific integrated circuit (ASIC) or a digital signal processor (DSP) is used. , DSPD (digital signal processing device), PLD (programmable logic device), FPGA (field programmable gate array), etc., if implemented using firmware or software, a module, procedure or function that performs the above functions or operations. The firmware or software may be configured to include. In addition, memory includes ROM (Read Only Memory), RAM (Random Access Memory), EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), flash memory, SRAM (Static RAM), It can be implemented with HDD (Hard Disk Drive), SSD (Solid State Drive), etc.

참고로, 본 상세한 설명에서는 발명의 이해를 돕기 위하여 사용자 단말기(10)가 스마트폰, 또는 태블릿PC인 경우를 상정하여 설명하기로 한다. 이 경우, 상기 사용자 단말기(10)는 디스플레이 및 터치 감응형 표면을 포함할 수 있으며, 나아가 부수적으로 물리적 키보드, 마우스 및/또는 조이스틱과 같은 하나 이상의 다른 물리적 사용자 입력용 수단이 더 연결될 수도 있다. 또한 상기 사용자 단말기(10)는 소리나 음성을 감지하고 녹음할 수 있는 수단을 더 포함할 수도 있다. 한편, 사용자 단말기 상에서 실행되는 다양한 애플리케이션들은, 옵션적으로, 터치 감응형 표면과 같은 적어도 하나의 보편적인 물리적 사용자 입력용 수단을 사용할 수 있다. 터치 감응형 표면의 하나 이상의 기능뿐만 아니라 사용자 단말기 상에 표시되는 대응하는 정보는 하나의 어플리케이션으로부터 다음 어플리케이션으로 그리고/또는 개별 어플리케이션 내에서 옵션적으로 조정되고/되거나 변경될 수 있다. 이러한 방식으로, 사용자 단말기의 (터치 감응형 표면과 같은) 보편적인 물리적 아키텍처는, 옵션적으로, 사용자에게 직관적이고 명료한 사용자 인터페이스들을 이용하여 다양한 애플리케이션들을 지원할 수 있다.For reference, this detailed description will be described assuming that the user terminal 10 is a smartphone or a tablet PC to aid understanding of the invention. In this case, the user terminal 10 may include a display and a touch-sensitive surface, and may additionally be connected to one or more other physical user input means, such as a physical keyboard, mouse and/or joystick. Additionally, the user terminal 10 may further include means for detecting and recording sound or voice. Meanwhile, various applications running on the user terminal may optionally use at least one common means for physical user input, such as a touch-sensitive surface. One or more functions of the touch-sensitive surface, as well as corresponding information displayed on the user terminal, may optionally be adjusted and/or changed from one application to the next and/or within individual applications. In this way, the universal physical architecture of the user terminal (such as a touch-sensitive surface) can optionally support a variety of applications using user interfaces that are intuitive and clear to the user.

한편, 서버들은 각각의 기능을 수행하기 위한 프로그램, 즉 명령어들의 집합을 저장 및 실행하는 구성이며, 나아가 복수의 사용자 단말기들로부터 수신되는 다양한 요청들에 응답하는 구성일 수 있다. 후술하겠지만 각각의 서버들은 사용자 단말기(10)로부터의 요청에 대한 응답으로 토큰, 또는 정보를 제공한다. Meanwhile, servers are a configuration that stores and executes programs to perform each function, that is, a set of commands, and may also be a configuration that responds to various requests received from a plurality of user terminals. As will be described later, each server provides a token or information in response to a request from the user terminal 10.

서버의 형태는, 어느 특정 운영자가 관리하는 적어도 하나의 서버용 PC일 수 있으며, 또는 타 업체에서 제공하는 클라우드 서버의 형태, 즉 운영자가 회원가입하여 사용할 수 있는 클라우드 서버의 형태일 수도 있다. 서버용 PC로 구현된 경우, 해당 서버는 중앙처리유닛 및 메모리를 포함할 수 있으며, 이에 대해서는 앞선 사용자 단말기의 설명 과정에서 자세히 언급하였으므로 여기서는 설명을 생략하기로 한다.The form of the server may be at least one server PC managed by a specific operator, or it may be a cloud server provided by another company, that is, a cloud server that the operator can sign up for and use. When implemented as a server PC, the server may include a central processing unit and memory, and since this was mentioned in detail in the previous description of the user terminal, the description will be omitted here.

다음으로 블록체인이란 일정기간 동안의 거래정보를 기록하고 있는 블록(block)들을 체인 형태로 연결하여 수많은 컴퓨터에 동시에 복제해 저장한 분산형 데이터 저장 기술을 일컫는다. 블록체인 네트워크(50)는 이처럼 데이터를 체인과 같이 연결하여 중앙 집중형 서버에 거래기록을 보관하지 않고 누구나 열람할 수 있게 공개함으로써 데이터 위조나 변조가 애초부터 이루어질 수 없게, 즉 거래기록을 서로 감시할 수 있게 한 P2P 구조의 데이터 저장 수단이다. 블록체인에 기록된 데이터는 해킹을 통한 위변조가 매우 어렵기 때문에 누구나 신뢰할 수 있다는 특징이 있으며, 또한 블록체인에 기록된 데이터는 여러 컴퓨터에 분산 저장되기 때문에 특정 노드에 대한 디도스 공격이나 랜섬웨어 공격 등으로부터도 안전하다. 나아가 블록체인은 평등한 참여자들에 의해 자율적으로 유지되고 운영될 수 있으므로 기존에 모든 정보가 중앙 서버로 집중되던 서버 클라이언트 구조에 비해 유연한 특성을 가진다. Next, blockchain refers to a distributed data storage technology that connects blocks that record transaction information for a certain period of time in the form of a chain and replicates and stores them on numerous computers simultaneously. The blockchain network 50 connects data like a chain and makes transaction records public for anyone to view rather than storing them on a centralized server, preventing data forgery or alteration from the beginning, that is, mutually monitoring transaction records. It is a P2P structured data storage method that allows this. Data recorded on the blockchain is very difficult to forge or falsify through hacking, so anyone can trust it. Additionally, because the data recorded on the blockchain is distributed and stored on multiple computers, DDoS attacks or ransomware attacks on specific nodes are possible. It is also safe from Furthermore, because blockchain can be maintained and operated autonomously by equal participants, it has more flexible characteristics compared to the existing server-client structure where all information was concentrated on a central server.

임의의 투표행위가 발생됐을 때, 해당 투표행위에 대한 블록이 생성 및 브로드캐스팅 되며, 블록을 전달 받은 각 노드들은 해당 블록을 자신의 블록체인 맨 끝에 추가하고, 자신의 스마트 컨트랙트 데이터베이스를 동기화 한다. When a random voting action occurs, a block for the voting action is created and broadcast, and each node that receives the block adds the block to the end of its blockchain and synchronizes its smart contract database.

이상 도 1을 참고하여 본 발명에 따른 온라인 투표 시스템, 사용자 의사정보 식별자, 그리고 시스템을 구성하는 각 구성들에 대해 살펴 보았다.With reference to FIG. 1, the online voting system according to the present invention, the user decision information identifier, and each component constituting the system were examined.

도 2는 사용자 의사정보 식별자를 생성하는 방법 중 제1 실시예를 도시한 것이다. Figure 2 shows a first embodiment of a method for generating a user decision information identifier.

도면을 참고할 때, 제1 실시예에 따른 사용자 의사정보 식별자 생성 방법은, 사용자 단말기(10)가 제1 서버(100)에 사용자 인증을 요청하는 단계(S101)로부터 시작된다. 제1 서버(100)는 인증서버로서의 역할을 할 수 있으며, 예를 들어 사용자 단말기(10)로부터 사용자 또는 투표자의 아이디 및 비밀번호를 수신한 뒤 서비스를 이용할 수 있는 사용자가 맞는지를 확인할 수 있다. Referring to the drawings, the method for generating a user decision information identifier according to the first embodiment begins with a step (S101) in which the user terminal 10 requests user authentication from the first server 100. The first server 100 may serve as an authentication server, for example, after receiving the user's or voter's ID and password from the user terminal 10, it can confirm whether the user is the one who can use the service.

S101 단계 후, 제1 서버(100)에서는 앞서 사용자 인증을 요청한 자의 정보들이 등록된 사용자로 확인이 된 경우 인증토큰을 상기 사용자 단말기(10) 측에 발행(S102)할 수 있다. 인증토큰은 난수 형태의 문자열로 구성된 것일 수 있으며, 후속적으로 제2 서버(200) 또는 제3 서버(300) 중 적어도 하나에 접근할 때에도 권한이 있는지 여부를 확인하기 위해 쓰일 수 있다. After step S101, if the information of the person who previously requested user authentication is confirmed to be a registered user, the first server 100 may issue an authentication token to the user terminal 10 (S102). The authentication token may be composed of a string in the form of a random number, and may be used to confirm whether or not the user is authorized when subsequently accessing at least one of the second server 200 or the third server 300.

S102 단계 이후, 사용자 단말기(10)는 사용자로부터 PIN정보를 입력(S103) 받을 수 있다. 사용자 단말기(10)에 PIN정보가 입력되는 방식은 다양할 수 있으며, 예를 들어 사용자가 임의로 정한 문자, 숫자, 또는 이들의 조합, 또는 사용자에 의해 입력되는 임의의 패턴, 또는 지문, 얼굴, 홍채 등의 인식 가능한 생체정보 등이 PIN정보로 활용될 수 있다. PIN정보는 오로지 사용자만이 알 수 있는 정보, 사용자만이 제공할 수 있는 정보여야 한다. 서비스를 제공하는 주체들마저도 어느 사용자가 어떤 의사 표시를 하였는지 알 수 없게 하기 위해 위와 같은 사용자 개별 PIN정보가 활용될 수 있다. PIN정보는 어떤 사용자가 어떤 의사정보를 표시하였는지 다른 주체들로 하여금 추적할 수 없게 하는 동시에, 해당 사용자만 자신이 어떤 투표 이벤트에 어떤 의사정보를 발신하였는지 조회할 수 있게 하는 매개체일 수 있다. 즉, 사용자는 사용자 단말기(10)에 설치된 어플리케이션을 실행시킨 후 PIN정보를 입력할 수 있으며, 이를 통해 자신이 과거부터 참여하였던 투표 이력을 조회할 수 있다. After step S102, the user terminal 10 can receive PIN information from the user (S103). There may be various ways in which PIN information is input to the user terminal 10, for example, letters, numbers, or a combination thereof arbitrarily determined by the user, or a random pattern input by the user, or fingerprint, face, or iris. Recognizable biometric information, etc. can be used as PIN information. PIN information must be information known only to the user and information that only the user can provide. The above individual user PIN information can be used to prevent even the entities providing the service from knowing which user expressed which intention. PIN information can be a medium that prevents other entities from tracking which user has expressed which opinion information, and at the same time allows only the relevant user to inquire which opinion information he or she has sent to which voting event. That is, the user can run the application installed on the user terminal 10 and then input PIN information, through which the user can check the voting history in which he or she has participated in the past.

S103 단계 후, 사용자 단말기(10)는 제2 서버(200)에 서비스 접근 권한을 요청(S104)할 수 있다. 제2 서버(200)는 SSO 서버일 수 있다. SSO 서버는 SSO 서비스를 제공하는 서버이며, SSO는 한번의 로그인 인증으로 여러 개의 서비스를 추가적인 인증 없이 사용할 수 있는 기술을 말하며, 인증은 하나의 시스템에서 수행하고, 그 시스템이 서비스를 각각 담당하는 타 시스템(서버)에 인증정보를 알려주는 방식으로 SSO서비스가 제공된다. 본 단계는 사용자 단말기(10)가 SSO서버에 특정 서비스에 접근할 수 있는 권한을 요청하는 단계로, 예를 들어 사용자 단말기(10)에서는 온라인 투표 서비스를 이용하기 위해 SSO 서버 측에 접근 권한을 요청할 수 있다. 한편, 본 단계가 수행되는 과정에서는 사용자 단말기(10)에 추가적인 인증정보 요청이 이루어질 수 있으며, 앞서 제1 서버(100)에서 입력한 사용자 인증정보와는 또 다른 별도의 인증정보인 SSO 인증정보가 더 요구될 수 있다. SSO 인증정보는 상기 사용자 단말기(100), 또는 사용자(투표자)를 식별할 수 있는 것이라면 그 종류에 제한이 없다 할 것이다.After step S103, the user terminal 10 may request service access authority from the second server 200 (S104). The second server 200 may be an SSO server. An SSO server is a server that provides SSO services. SSO refers to a technology that allows multiple services to be used without additional authentication with one login authentication. Authentication is performed by one system, and that system is responsible for each service. The SSO service is provided by providing authentication information to the system (server). This step is a step in which the user terminal 10 requests permission to access a specific service from the SSO server. For example, the user terminal 10 requests access permission from the SSO server to use an online voting service. You can. Meanwhile, in the process of performing this step, a request for additional authentication information may be made to the user terminal 10, and SSO authentication information, which is separate authentication information different from the user authentication information previously entered by the first server 100, may be requested. More may be required. There is no limit to the type of SSO authentication information as long as it can identify the user terminal 100 or the user (voter).

한편, S104 단계 후 제2 서버(200)는 상기 요청에 대한 응답으로 권한토큰을 발행(S105)하게 된다. 권한토큰은 상기 제2 서버(200)와 연계되어 있는 타 서버들이 제공하는 서비스를 이용하고자 할 시 타 서버에 접근하는 용도로 쓰이며, 이 과정에서 사용자 단말기(10)는 권한토큰을 직접 타 서버에 전달하거나, 또는 사용자 단말기(10)가 건넨 권한토큰을 제2 서버(200)가 타 서버에 전달하는 단계가 존재할 수 있다. Meanwhile, after step S104, the second server 200 issues an authority token in response to the request (S105). The authority token is used to access other servers when attempting to use services provided by other servers linked to the second server 200. In this process, the user terminal 10 directly sends the authority token to the other server. There may be a step in which the second server 200 transmits the authorization token handed over by the user terminal 10 to another server.

권한토큰까지 수신한 뒤, 사용자 단말기(10)는 제3 서버(300)에 이벤트 정보를 요청(S106)할 수 있다. 본 단계는 사용자(투표자)가 어떤 투표에 참여할 것인지를 정하여 그 투표에 참여하고 싶다는 의사를 표시하는 단계로도 이해될 수 있다. 제3 서버(300)는 투표관리서버일 수 있다. After receiving the authority token, the user terminal 10 may request event information from the third server 300 (S106). This step can also be understood as a step in which the user (voter) decides which vote to participate in and expresses his or her intention to participate in that vote. The third server 300 may be a voting management server.

예를 들어, 이 단계는 사용자 단말기(10)의 화면 상에 여러 개의 진행 중인 투표 이벤트가 표시되고, 이 중에 사용자가 어느 하나의 투표 이벤트를 선택하면 사용자 단말기(10), 더 정확하게는 사용자 단말기(10)에서 구동되는 어플리케이션에서 제3 서버(300)를 향해 이벤트 정보를 요청할 수 있다. For example, in this step, several ongoing voting events are displayed on the screen of the user terminal 10, and when the user selects any one voting event, the user terminal 10, more precisely, the user terminal ( The application running in 10) may request event information from the third server 300.

S106 단계 후, 제3 서버(300)는 위 요청에 대한 응답으로 이벤트 정보를 전달(S107)할 수 있으며, 전달되는 이벤트 정보 중에는 이벤트 코드가 반드시 포함된다. 이벤트 정보란, 상기 사용자(투표자)가 참여하고자 하는 투표 이벤트에 관한 다양한 정보들이 포함될 수 있으며, 투표 목적, 투표 시간, 선택 가능한 선택지, 투표 결과 산출에 대한 설명, 또는 투표 참여에 따른 보상 등 다양한 정보들이 포함될 수 있다. After step S106, the third server 300 may deliver event information in response to the above request (S107), and the event code is always included among the delivered event information. Event information may include various information about the voting event in which the user (voter) wishes to participate, such as voting purpose, voting time, available options, explanation of voting result calculation, or compensation for voting participation. may be included.

이벤트 정보(이벤트 코드)까지 수신한 뒤 사용자 단말기(10)는 사용자 의사정보 식별자를 생성(S108)할 수 있다. 사용자 의사정보 식별자는 앞서 사용자로부터 입력을 받았던 PIN정보, 그리고 앞서 수신된 권한토큰, 이벤트 코드가 암호화됨으로써 생성될 수 있다. 바람직하게는, 상기 PIN정보, 권한토큰 및 이벤트 코드가 조합된 상태에서 해싱(hashing) 됨으로써 사용자 의사정보 식별자가 생성될 수 있다. 이렇게 S108 단계까지가 본 발명의 일 실시예에 따른 사용자 의사정보 식별자를 생성하는 방법에 포함될 수 있다. After receiving event information (event code), the user terminal 10 can generate a user decision information identifier (S108). The user decision information identifier can be created by encrypting the PIN information previously entered by the user, and the previously received permission token and event code. Preferably, the user decision information identifier can be generated by hashing the combination of the PIN information, authority token, and event code. In this way, up to step S108 may be included in the method of generating a user decision information identifier according to an embodiment of the present invention.

한편, 사용자 의사정보 식별자가 생성된 후, 사용자 단말기(10)에서는 상기 사용자(투표자)의 사용자 의사정보를 제3 서버(300) 측으로 전달(S109)한다. S101 단계로부터 이어져 S109 단계까지를 포함하는 방법은 소위 온라인 투표 방법으로 정의될 수 있는데, 본 S109단계에서는, 앞서 생성되었던 사용자 의사정보 식별자와 사용자의 의사정보가 결합되는 단계가 포함될 수 있다. 예를 들어, 사용자가 1번 선택지에 투표하고자 한다면, 사용자 단말기(10)에서는 사용자 의사정보 식별자에 "1번 선택"이라는 정보를 덧붙여 제3 서버(300) 측에 전달할 수 있다. 즉, 본 단계에서는 "사용자 의사정보 식별자"에 의해 식별되는 '누군가'가 '어느 선택지'를 선택하였는지에 대한 정보를 제3 서버(300)로 전달하는 과정이 수행될 수 있다.Meanwhile, after the user opinion information identifier is generated, the user terminal 10 transmits the user opinion information of the user (voter) to the third server 300 (S109). The method continuing from step S101 and including step S109 can be defined as a so-called online voting method. In step S109, a step of combining the user's decision information identifier and the user's decision information created previously may be included. For example, if the user wishes to vote for option 1, the user terminal 10 may add the information “choice 1” to the user decision information identifier and transmit it to the third server 300. That is, in this step, a process of transmitting information about 'which option' was selected by 'someone' identified by the 'user decision information identifier' to the third server 300 may be performed.

S109 단계 후, 제3 서버(300)는 앞서 수신한 사용자 의사정보를 블록체인 네트워크(50)에 기록(S110)할 수 있다. After step S109, the third server 300 may record the previously received user intention information in the blockchain network 50 (S110).

한편, 도 3은 제2 실시예에 따른 사용자 의사정보 식별자 생성 방법을 도시한 것이다. 제2 실시예에서는 사용자 단말기(10) 상에서 발행된 임시키를 활용한다는 점에서 제1 실시예와 차이점이 있다.Meanwhile, Figure 3 shows a method for generating a user decision information identifier according to a second embodiment. The second embodiment differs from the first embodiment in that it utilizes a temporary key issued on the user terminal 10.

도면을 참고할 때, 제2 실시예는 사용자 단말기(10)가 제1 서버(100)에 사용자 인증 요청을 하는 단계(S301) 및 제1 서버(100)가 인증토큰을 발행하는 단계(S302)를 포함할 수 있는데, 이는 앞서 제1 실시예의 S101 단계, S102 단계와 실질적으로 동일하므로 자세한 설명은 생략하기로 한다.Referring to the drawing, the second embodiment includes the step of the user terminal 10 requesting user authentication to the first server 100 (S301) and the step of the first server 100 issuing an authentication token (S302). It may be included, and since this is substantially the same as steps S101 and S102 of the first embodiment, detailed description will be omitted.

S302 단계 이후, 사용자 단말기(10)는 임시키를 발행(S303)할 수 있다. 임시키는 공개키 알고리즘에 기반한 임의의 개인키를 의미하며, 위 임시키는 후속 단계들에서 사용자 의사정보 식별자, 또는 사용자 의사정보를 검증하는 데에 활용될 수 있다. 참고로, 상기 임시키는 완전히 새롭게 생성된 숫자, 문자, 또는 이들의 조합일 수 있으며, 또는 HD 월렛 기반의 키일 수도 있다. HD월렛 기반 키는 하나의 루트 키에서 파생되어 만들어진 개인키를 의미하는 것으로, 키 자체의 익명성이 보장되고 오직 루트 개인키의 소유자만 재생성이 가능한 키를 의미할 수 있다. After step S302, the user terminal 10 may issue a temporary key (S303). Delegation refers to a random private key based on a public key algorithm, and can be used to verify the user decision information identifier or user decision information in subsequent steps of delegation. For reference, the key may be a completely newly created number, letter, or a combination thereof, or it may be an HD wallet-based key. An HD wallet-based key refers to a private key derived from a single root key, and can refer to a key that guarantees the anonymity of the key itself and can be regenerated only by the owner of the root private key.

S303 단계 이후에는 사용자 단말기(10)가 제2 서버(200), 즉 SSO 서버 측에 서비스 접근 권한을 요청(S304)할 수 있으며, 본 단계에서는 사용자 단말기(10)가 상기 임시키에 대응되는 공개키를 상기 제2 서버(200)에 전송할 수 있다. 즉, 사용자 단말기(10)는 SSO 서버에 앞서 발행되었던 임시키에 대응되는 공개키를 공유함으로써 전체 전자 투표 시스템으로 하여금 상기 사용자의 투표기록을 검증할 수 있는 환경이 갖추어지도록 할 수 있다. After step S303, the user terminal 10 may request service access authority from the second server 200, that is, the SSO server (S304), and in this step, the user terminal 10 creates a public key corresponding to the temporary key. The key may be transmitted to the second server 200. In other words, the user terminal 10 can provide an environment in which the entire electronic voting system can verify the user's voting record by sharing the public key corresponding to the temporary key previously issued to the SSO server.

S304 단계 이후, 제2 서버(200)는 상기 서비스 접근 권한 요청에 따라 권한토큰을 생성(S305)할 수 있다. 이 때 제2 서버(200)는 권한토큰 생성 시 상기 임시키에 대응되는 공개키를 포함시킨 채 전자서명을 수행할 수 있다. After step S304, the second server 200 may generate an authority token according to the service access authority request (S305). At this time, the second server 200 may perform an electronic signature while including the public key corresponding to the temporary key when generating the authority token.

S305 단계 이후에는 제2 서버(200)가 상기 생성 및 전자서명 된 권한토큰을 블록체인 네트워크(50)에 기록(S306)할 수 있으며, 또한 상기 권한토큰을 상기 사용자 단말기(10) 측에 발행(S307)할 수 있다. 상기 사용자 단말기(10)에 권한토큰이 발행될 때에는 상기 권한토큰이 블록체인 네트워크에 기록될 때 생성된 트랜잭션 아이디가 함께 사용자 단말기(10)측에 전달될 수 있다. After step S305, the second server 200 may record the generated and electronically signed authority token in the blockchain network 50 (S306), and may also issue the authority token to the user terminal 10 ( S307) You can. When an authority token is issued to the user terminal 10, the transaction ID generated when the authority token is recorded in the blockchain network may be transmitted to the user terminal 10 together.

S307 단계 이후에는 사용자 단말기(10)가 제3 서버(300), 즉 투표관리서버에 이벤트 정보를 요청(S308)할 수 있으며, 제3 서버(300)는 이에 대한 응답으로 이벤트 코드가 포함된 이벤트 정보를 사용자 단말기(10)에 제공(S309)할 수 있다. After step S307, the user terminal 10 may request event information from the third server 300, that is, the voting management server (S308), and the third server 300 may send an event containing an event code in response. Information may be provided to the user terminal 10 (S309).

S309 단계 이후, 사용자 단말기(10)는 사용자 의사정보 식별자를 생성(S310)할 수 있다. 사용자 의사정보 식별자는 앞서 제2 서버로부터 수신된 권한토큰, 그리고 제3 서버로부터 수신된 이벤트 코드가 암호화됨으로써 생성될 수 있다. 바람직하게는, 상기 권한토큰 및 이벤트 코드가 조합된 상태에서 해싱(hashing) 됨으로써 사용자 의사정보 식별자가 생성될 수 있다.After step S309, the user terminal 10 may generate a user decision information identifier (S310). The user decision information identifier can be generated by encrypting the authority token previously received from the second server and the event code received from the third server. Preferably, the user decision information identifier can be generated by hashing the combination of the authority token and the event code.

S310 단계 후, 사용자 단말기(10)는 사용자 의사정보를 상기 임시키를 활용하여 전자서명(S311) 할 수 있다. 사용자는 자신의 사용자 단말기(10)를 통해 특정 투표의사를 입력할 수 있으며, 이는 곧 사용자 의사정보로 정의될 수 있는데, 사용자 단말기(10)는 위 사용자 의사정보를 상기 임시키로 전자서명을 함으로써 사용자 의사정보가 후속 단계에서 검증이 되게 할 수 있다.After step S310, the user terminal 10 can electronically sign the user's decision information using the temporary key (S311). The user can enter a specific voting intention through his or her user terminal 10, which can be defined as user intention information. The user terminal 10 electronically signs the above user intention information with the temporary key, thereby registering the user's voting intention. Physician information can be verified at a later stage.

S311 단계 이후에는 사용자 단말기(10)가 제3 서버(300)로 상기 사용자 의사정보 및 사용자 의사정보 식별자를 전달(S312)할 수 있다. 본 단계는 앞선 제1 실시예에서 언급했던 것과 같이 사용자 단말기(10)가 사용자 의사정보 식별자에 상기 사용자 의사정보를 결합한 상태로 제3 서버(300)에 전달하는 단계로 이해될 수 있다. After step S311, the user terminal 10 may transmit the user intention information and the user intention information identifier to the third server 300 (S312). As mentioned in the first embodiment above, this step can be understood as a step in which the user terminal 10 combines the user's decision information with the user's decision information identifier and transmits it to the third server 300.

S312 단계 후에는 제3 서버(300)가 상기 사용자 의사정보 식별자 및 사용자 의사정보를 검증하는 단계(S313)가 실행될 수 있다. 이 단계에서 제3 서버(300)는 상기 제2 서버(200)에 의해 실행된 전자서명, 그리고 상기 사용자 단말기(10)에 의해 실행된 전자서명을 검증할 수 있는데, 이 때 제3 서버(300)는 S313 단계 이전에 상기 사용자 단말기(10)로부터 트랜잭션 아이디, 즉 상기 제2 서버(200)가 블록체인 네트워크(50)에 권한토큰을 기록할 때에 생성되었던 트랜잭션 아이디를 공유 받은 상태인 것을 전제로 한다. 예를 들어, 제3 서버(300)는 사용자 단말기(10)로부터 이벤트정보를 요청받는 S308 단계, 또는 사용자 단말기(10)로부터 사용자 의사정보 및 사용자 의사정보 식별자를 수신하는 S312 단계, 또는 그 밖에 사용자 단말기(10)와 제3 서버(300) 간 네트워크 통신을 통해 데이터를 송수신 할 수 있었던 기회에 위와 같은 트랜잭션 아이디를 공유 받을 수 있으며, 제3 서버(300)는 위 트랜잭션 아이디를 참고하여 블록체인 네트워크(50)로부터 권한토큰, 또는 권한토큰 내 포함되어 있는 공개키(상기 임시키에 매칭되는 공개키)를 획득함으로써 상기 검증 단계를 수행할 수 있다. After step S312, a step (S313) in which the third server 300 verifies the user decision information identifier and user decision information may be performed. In this step, the third server 300 can verify the electronic signature executed by the second server 200 and the electronic signature executed by the user terminal 10. At this time, the third server 300 ) assumes that the transaction ID, that is, the transaction ID generated when the second server 200 records the authority token in the blockchain network 50, has been shared from the user terminal 10 before step S313. do. For example, the third server 300 receives a request for event information from the user terminal 10 in step S308, or in step S312 of receiving the user decision information and user decision information identifier from the user terminal 10, or other user When there is an opportunity to transmit and receive data through network communication between the terminal 10 and the third server 300, the above transaction ID can be shared, and the third server 300 refers to the above transaction ID to create a blockchain network. The verification step can be performed by obtaining an authority token or a public key included in the authority token (a public key matching the temporary key) from (50).

마지막으로 S313 단계 후에는 제3 서버(300)가 앞선 단계에서 검증된 사용자 의사정보 식별자 및 사용자 의사정보를 블록체인 네트워크(50)에 기록하는 단계가 실행될 수 있다. 이 때, 상기 제3 서버(300)는 블록체인 네트워크(50)에 상기 권한토큰도 저장함으로써 추후 제3자에 의한 조회가 가능하게 할 수 있다. Finally, after step S313, a step may be performed in which the third server 300 records the user decision information identifier and user decision information verified in the previous step in the blockchain network 50. At this time, the third server 300 can also store the authority token in the blockchain network 50 to enable later inquiry by a third party.

이상 도면들을 참고하여 본 발명에 따른 사용자 의사정보 식별자 생성 방법 및 전반적인 온라인 투표 시스템에 대해 살펴보았다. With reference to the above drawings, we looked at the user decision information identifier generation method and the overall online voting system according to the present invention.

한편, 본 발명에서 언급되는 사용자 의사정보 식별자는 2인 이상의 사용자들, 다시 말해 하나의 그룹이 어떤 의사정보를 표시할 때에 식별하기 위한 용도로 활용될 수도 있다. 경우에 따라 특정 이벤트에서는 복수의 사용자들이 속해 있는 하나의 그룹이 어떤 의사결정을 하여야 할 필요도 있으며, 특히 다수의 사용자들이 모두 어플리케이션을 설치하는 등의 과정들을 거쳐 개별 투표에 참여하기가 어려운 경우 대표성을 가진 1인이 다수 사용자들의 의사를 받아 투표 이벤트에 참여할 수 있는데, 본 발명에 따른 사용자 의사정보 식별자는 이렇게 복수 사용자들의 의사정보를 제3 서버(300) 측에 전달하고자 할 때에도 활용 가능하다. 이 경우, 사용자 단말기(10)는 대표자 1인의 단말기일 수 있으며, 또한 상기 사용자 단말기(10)에는 특정 의사표시를 한 사용자들의 개인식별자들이 수집되어 있을 수 있다. 개인식별자들은 의사표시를 대표자 1인에게 전달한 사용자들을 각각 식별할 수 있을 정도의 것이면 족하다 할 것이며, 필요에 따라 참여 사용자가 참여하고자 하는 투표 이벤트를 특정할 수 있는 이벤트 코드가 더 포함될 수도 있겠으나 필수적인 사항은 아니라 할 것이다.Meanwhile, the user opinion information identifier mentioned in the present invention may be used to identify two or more users, that is, one group, when displaying some opinion information. In some cases, in certain events, it may be necessary for a group of multiple users to make a decision, especially when it is difficult for multiple users to participate in individual voting through processes such as installing the application. One person with can participate in a voting event by receiving the opinions of multiple users, and the user opinion information identifier according to the present invention can also be used when transmitting the opinion information of multiple users to the third server 300. In this case, the user terminal 10 may be a terminal of one representative, and the user terminal 10 may have collected personal identifiers of users who have expressed a specific intention. It will be sufficient for personal identifiers to be able to identify each user who conveyed their intention to one representative. If necessary, an event code that can specify the voting event in which the participating user wishes to participate may be further included, but it is essential. This will not be a problem.

한편, 개별 사용자들로부터 개인식별자 및 의사정보를 수신한 사용자 단말기(10)에서는 소위 그룹 의사정보 식별자를 생성할 수 있다. 이 때, 그룹 의사정보 식별자에는 상기 대표자 1인, 즉 사용자 단말기(10) 소유자의 권한토큰, 이벤트 코드가 포함될 수 있으며, 여기에 참여자들의 개인식별자들이 더 포함되어 해싱됨으로써 생성될 수 있다. 또한, 사용자 단말기(10) 소유자의 권한토큰, 이벤트 코드, 개인식별자들, 외에 사용자 단말기(10) 소유자의 PIN 정보가 더 포함되어 해싱될 수도 있다. 이렇게 생성된 그룹 의사정보 식별자에는 참여한 사용자들의 의사정보가 덧붙여져 "그룹 의사정보"의 형태로 제3 서버(300) 측에 전달될 수 있다. 그룹 의사정보는 몇 명이 어떤 선택지를 선택하였는지에 대한 정보를 포함할 수 있으며, 예를 들어 [1번 선택지 31명; 2번 선택지 55명; 3번 선택지 198명; ? ]등과 같은 정보를 포함할 수 있다. Meanwhile, the user terminal 10, which receives personal identifiers and decision information from individual users, can generate a so-called group decision information identifier. At this time, the group decision information identifier may include the authority token and event code of one representative, that is, the owner of the user terminal 10, and may be generated by hashing the personal identifiers of the participants. In addition, in addition to the authority token, event code, and personal identifiers of the owner of the user terminal 10, the PIN information of the owner of the user terminal 10 may be further included and hashed. The group decision information identifier generated in this way can be added with the decision information of participating users and transmitted to the third server 300 in the form of “group decision information.” Group decision information may include information about how many people chose which option, for example [31 people for option 1; Option 2: 55 people; Option 3: 198 people; ? ], etc. may be included.

또 다른 한편, 상기 그룹 의사정보 식별자는 특정 선택지를 선택한 사용자들만을 위해 생성될 수도 있다. 예를 들어 제1 그룹 의사정보 식별자는 제1 선택지를 선택한 사용자들의 개인식별자들, 사용자 단말기(10) 소유자의 PIN정보, 권한토큰, 및 이벤트 코드가 해싱됨으로써, 그리고 제2 그룹 의사정보 식별자는 제2 선택지를 선택한 사용자들의 개인식별자들, 사용자 단말기(10) 소유자의 PIN정보, 권한토큰, 및 이벤트 코드가 해싱됨으로써 생성될 수 있다. 제3 서버(300) 측에 전달되는 그룹 의사정보도 당연히 2개로 나뉘어 전달될 수 있다. 특정 선택지를 선택한 개인식별자들이 상이하므로 각 그룹 의사정보 식별자는 서로 구분될 수 있으며, 이러한 방식을 통해 사용자 단말기(10) 소유자, 즉 대표자1인은 제3 서버(300) 측에 다수의 의사를 쉽게 전달할 수 있다. On the other hand, the group decision information identifier may be generated only for users who select a specific option. For example, the first group decision information identifier is obtained by hashing the personal identifiers of the users who selected the first option, the PIN information of the owner of the user terminal 10, the authority token, and the event code, and the second group decision information identifier is It can be generated by hashing the personal identifiers of users who selected option 2, PIN information of the owner of the user terminal 10, permission token, and event code. The group decision information transmitted to the third server 300 may also be divided into two and transmitted. Since the personal identifiers who selected a specific option are different, each group decision information identifier can be distinguished from each other, and in this way, the owner of the user terminal 10, that is, one representative, can easily send multiple opinions to the third server 300. It can be delivered.

한편, 이와 같은 실시예에 있어서는 당연히 대표자 1인만이 투표 참여 이력 조회가 가능하다 할 것이며, 나머지 투표 이벤트 참여자들은 상기 대표자 1인의 조회가 없이는 개별적으로 자신의 참여 이력을 조회할 수 없다. Meanwhile, in this embodiment, only one representative can check the voting participation history, and the remaining voting event participants cannot individually check their participation history without the representative.

이상 사용자 의사정보 식별자 생성 방법, 그리고 이를 포함하는 온라인 투표 시스템에 대해 살펴보았다. 한편, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.We have looked at the method for generating user decision information identifiers and the online voting system that includes them. Meanwhile, the present invention is not limited to the specific embodiments and application examples described above, and various modifications may be made by those skilled in the art without departing from the gist of the present invention as claimed in the claims. Of course, it is possible, but these modified implementations should not be understood separately from the technical idea or outlook of the present invention.

10 사용자 단말기
50 블록체인 네트워크
100 제1 서버
200 제2 서버
300 제3 서버
10 user terminal
50 Blockchain Networks
100 first server
200 2nd server
300 3rd party server

Claims (4)

사용자 단말기 상에서 사용자 의사정보 식별자를 생성하는 방법에 있어서,
(a) 사용자 단말기가 제1 서버 측으로 사용자 인증요청을 전송하고, 응답으로 상기 제1 서버로부터 발행된 인증토큰을 수신하는 단계;
(b) 사용자 단말기가 임시키를 발행하는 단계;
(c) 사용자 단말기가 제2 서버 측으로 서비스 접근 권한요청을 전송 - 상기 권한요청에는 상기 임시키에 대응되는 공개키를 포함함 - 하고, 응답으로 상기 제2 서버로부터 발행된 권한토큰을 수신하되, 상기 권한토큰에는 상기 임시키에 매칭되는 공개키가 포함되어 있고, 또한 상기 권한토큰은 상기 제2 서버에 의해 전자서명되며, 전자서명 후 블록체인 네트워크 상에 기록되는 것을 특징으로 하는 단계;
(d) 사용자 단말기가 제3 서버 측으로 이벤트 정보요청을 전송하고, 응답으로 상기 제3 서버로부터 제공된 이벤트정보를 수신하는 단계;
(e) 사용자 단말기가, 상기 권한토큰 및 상기 이벤트정보 내 포함된 이벤트코드를 해싱하여 사용자 의사정보 식별자를 생성하는 단계;
(f) 사용자 단말기가, 상기 사용자 의사정보 식별자 및 사용자 의사정보를 상기 제3 서버로 전송하되, 상기 사용자 의사정보는 상기 임시키를 활용하여 전자서명되는 것을 특징으로 하는 단계;
를 포함하되,
상기 (f)단계에서 상기 제3 서버로 전송된 사용자 의사정보 식별자 및 사용자 의사정보는, 상기 제3 서버에 의해, 상기 제2 서버의 전자서명 및 상기 사용자 단말기의 전자서명이 확인되는 것을 특징으로 하는,
사용자 의사정보 식별자 생성 방법.
In a method of generating a user decision information identifier on a user terminal,
(a) a user terminal transmitting a user authentication request to a first server and receiving an authentication token issued from the first server in response;
(b) the user terminal issuing a temporary key;
(c) The user terminal transmits a service access authority request to the second server - the authority request includes a public key corresponding to the temporary key - and receives an authority token issued from the second server in response, The authority token includes a public key matching the temporary key, the authority token is electronically signed by the second server, and the authority token is recorded on a blockchain network after the electronic signature;
(d) the user terminal transmitting an event information request to a third server and receiving event information provided from the third server in response;
(e) the user terminal generating a user decision information identifier by hashing the event code included in the authority token and the event information;
(f) a step wherein the user terminal transmits the user decision information identifier and the user decision information to the third server, wherein the user decision information is electronically signed using the temporary key;
Including,
The user decision information identifier and user decision information transmitted to the third server in step (f) are characterized in that the electronic signature of the second server and the electronic signature of the user terminal are confirmed by the third server. doing,
How to generate user decision information identifier.
삭제delete 제1항에 있어서,
상기 제3 서버는, 상기 사용자 단말기로부터 상기 권한토큰 또는 상기 권한토큰에 포함된 정보 중 일부를 더 수신하는 것을 특징으로 하는,
사용자 의사정보 식별자 생성 방법.
According to paragraph 1,
The third server is characterized in that it further receives the authority token or some of the information included in the authority token from the user terminal.
How to generate user decision information identifier.
제1항에 있어서,
상기 제3 서버에 의해 확인된 사용자 의사정보 식별자 및 사용자 의사정보는, 상기 블록체인 네트워크 상에 기록되는 것을 특징으로 하는,
사용자 의사정보 식별자 생성 방법.
According to paragraph 1,
Characterized in that the user decision information identifier and user decision information confirmed by the third server are recorded on the blockchain network.
How to generate user decision information identifier.
KR1020220177060A 2022-12-16 2022-12-16 Method for generating user pseudo information identifier using temporary key issued on user terminal and system therefor KR102586412B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220177060A KR102586412B1 (en) 2022-12-16 2022-12-16 Method for generating user pseudo information identifier using temporary key issued on user terminal and system therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220177060A KR102586412B1 (en) 2022-12-16 2022-12-16 Method for generating user pseudo information identifier using temporary key issued on user terminal and system therefor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020230129084A Division KR20240096341A (en) 2023-09-26 Method for generating user pseudo information identifier and system therefor

Publications (1)

Publication Number Publication Date
KR102586412B1 true KR102586412B1 (en) 2023-10-11

Family

ID=88295014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220177060A KR102586412B1 (en) 2022-12-16 2022-12-16 Method for generating user pseudo information identifier using temporary key issued on user terminal and system therefor

Country Status (1)

Country Link
KR (1) KR102586412B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20180074935A (en) * 2016-12-26 2018-07-04 김주한 Electronic voting ASP system using 2-channel authentication and method thereof
KR102171568B1 (en) 2019-01-07 2020-10-29 한양대학교 에리카산학협력단 A voter terminal, an authentication server, a voting server, and Electronic voting system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180074935A (en) * 2016-12-26 2018-07-04 김주한 Electronic voting ASP system using 2-channel authentication and method thereof
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
KR102171568B1 (en) 2019-01-07 2020-10-29 한양대학교 에리카산학협력단 A voter terminal, an authentication server, a voting server, and Electronic voting system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
선연수 기자, "블로코, ‘블록체인 기반 전자 투표 활용안’ 보고서 발표" , CCTV 뉴스 (2020.04.14.)* *

Similar Documents

Publication Publication Date Title
US11082235B2 (en) Cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys
US10692321B2 (en) Architecture for access management
US10153901B2 (en) System and method for verifying user identity in a virtual environment
CA2947177C (en) System and method for secure voting
CN109509288B (en) Electronic voting system and control method
US20190095835A1 (en) Use of identity and access management for service provisioning
US10783733B2 (en) Electronic voting system and control method
EP3997606B1 (en) Cryptoasset custodial system with custom logic
JP2019053269A (en) System and method for determining ballot of voter collected by electronic voting
CN112789823B (en) Block chain-based competitive election network system and competitive election method
JP7029328B2 (en) Electronic voting system and control method
CN108369614A (en) User authen method and system for carrying out the process
Awalu et al. Development of a distributed blockchain evoting system
US20150066867A1 (en) Systems and methods for zero-knowledge attestation validation
KR102479988B1 (en) Method for generating user decision intention information identifier and system therefor
KR102479989B1 (en) Online voting method with improved confidentiality and system therefor
KR102586412B1 (en) Method for generating user pseudo information identifier using temporary key issued on user terminal and system therefor
EP2147415B1 (en) Supervised voting system and method
KR102544764B1 (en) Method for generating user pseudo information identifier using temporary identifier issued on user terminal and system therefor
KR20240096341A (en) Method for generating user pseudo information identifier and system therefor
WO2023204410A1 (en) Method for generating user intention information identifier and system for same
US12002297B1 (en) System and method for reliable opinion polls
Nwogu et al. Enhancing the robustness of a three-layer security electronic voting system using Kerberos authentication
Dragomir Research and contributions on improving the cyber security of the IT&C system of Permanent Electoral Authority
Dragomir CONTRIBUTIONS ON IMPROVING THE CYBER SECURITY OF THE AUTHORITY'S IT SYSTEM PERMANENT ELECTIONS.

Legal Events

Date Code Title Description
A107 Divisional application of patent
GRNT Written decision to grant