KR20210053567A - Method for verifying certification improper use in block environment and system therefor - Google Patents

Method for verifying certification improper use in block environment and system therefor Download PDF

Info

Publication number
KR20210053567A
KR20210053567A KR1020190139318A KR20190139318A KR20210053567A KR 20210053567 A KR20210053567 A KR 20210053567A KR 1020190139318 A KR1020190139318 A KR 1020190139318A KR 20190139318 A KR20190139318 A KR 20190139318A KR 20210053567 A KR20210053567 A KR 20210053567A
Authority
KR
South Korea
Prior art keywords
block
user terminal
information
service
certificate
Prior art date
Application number
KR1020190139318A
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 KR1020190139318A priority Critical patent/KR20210053567A/en
Publication of KR20210053567A publication Critical patent/KR20210053567A/en

Links

Images

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/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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/381Currency conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

The present invention relates to a method for verifying whether a user institution uses a certificate stored in a blockchain for an accurate purpose, and to a system therefor. According to an embodiment of the present invention, the method for verifying an unfair use of a certificate in a blockchain system, comprises the steps of: analyzing authentication information transmitted from a user terminal to authenticate a user; checking an execution function in a first block including a smart contract when a user authentication is successful, and driving the execution function to execute a service; checking usage information related to the smart contract, and generating a second block including the usage information and a service execution result to store the same in a blockchain; transmitting transaction identification information on a second block to the user terminal as access data for inquiring the usage of a certificate used in the service; and providing the user terminal with the usage information included in the second block when an inquiry request message including the transaction identification information on the second block is received from the user terminal. Accordingly, transparency and reliability on the usage of the certificate are improved.

Description

블록체인 환경에서 인증서 부당 사용 검증 방법 및 이를 위한 시스템{Method for verifying certification improper use in block environment and system therefor}Method for verifying certification improper use in block environment and system therefor}

본 발명은 인증서 부당 사용을 검증하기 위한 기술에 관한 것으로서, 더욱 상세하게는 이용 기관에서 블록체인에 저장된 인증서를 정확한 용도에 맞게 사용하였는지 여부를 검증하는 방법 및 이를 위한 시스템에 관한 것이다.The present invention relates to a technology for verifying unauthorized use of a certificate, and more particularly, to a method and a system for verifying whether or not a certificate stored in a blockchain is used for an exact purpose by a user institution.

오늘날 통신망과 보안 기술의 발전으로 인하여, 인터넷을 이용한 계좌이체, 주식 거래 등이 이루어지고 있다.Today, due to the development of communication networks and security technologies, account transfers and stock transactions are being made using the Internet.

이러한 온라이 계좌 이체, 주식 거래 등과 같을 위하여, 인증서를 이용하여 사용자를 인증한다. 상기 인증서는 전자 서명에 사용되는 일종이 온라인 인감증명서로서, 사용자는 인증서를 이용하여 전자 서명한 후에, 온라인 계좌 이체, 주식 거래 등을 서비스 서버로 요청하고, 서비스 서버는 전자 서명과 인증서를 검증한 후에 검증에 성공하면 해당 온라인 서비스를 사용자에게 제공한다.For such an online account transfer, stock transaction, etc., a user is authenticated using a certificate. The above certificate is a kind of online seal certificate used for electronic signature. After the user signs electronically using the certificate, the user requests online account transfer, stock transaction, etc. to the service server, and the service server verifies the electronic signature and the certificate. If verification is successful later, the online service is provided to the user.

한편, 근래에는 신뢰성 향상과 부인방지를 위한 블록체인 기술이 등장하였다. 또한, 블록체인을 이용하여, 블록체인에서 인증서를 생성하여 발행하고, 더불어 인증서를 기반의 전자 서명과 인증서를 검증하는 기술도 등장하였다. 즉, 블록체인을 이용하여 인증서와 전자 서명 검증에 대한 투명성을 높이기 위하여, 블록체인 기술이 이용되기도 한다.On the other hand, in recent years, blockchain technology has emerged to improve reliability and prevent non-repudiation. In addition, using a blockchain, a technology for generating and issuing a certificate in the blockchain, as well as verifying a certificate-based electronic signature and certificate has also emerged. In other words, blockchain technology is sometimes used to increase transparency for verification of certificates and electronic signatures using blockchain.

그런데 블록체인을 이용하여 인증서를 관리하는 기술은, 인증서를 발행/검증하는 인증 기관과 인증서 기반의 인증을 통해서 서비스(예컨대, 계좌이체, 주식 거래)를 제공하는 서비스 기관이 이원화된 형태이다. 이 경우, 서비스 기관에서 사용자 단말로부터 수신한 전자 서명과 사용자 인증서에 대한 검증을 블록체인으로 요청하고, 블록체인으로부터 검증 결과를 수신하여, 이 검증 결과에 따라 선택적으로 서비스를 제공한다. However, in the technology for managing certificates using a blockchain, a certification authority that issues/verifies a certificate and a service organization that provides services (eg, account transfer, stock transaction) through certificate-based authentication are dualized. In this case, the service agency requests verification of the electronic signature and user certificate received from the user terminal through the blockchain, receives the verification result from the blockchain, and selectively provides services according to the verification result.

하지만 이러한 시스템 구조에서 서비스 서버가 사용자의 인증서를 다른 목적으로 사용할 수 있는 문제점이 있다. 예를 들어, 서비스 기관은 사용자 단말로 인증서가 다른 목적으로 사용될 것임을 허위로 고지하고, 사용자 단말로부터 수신한 전자 서명을 이용하여 검증 성공 결과를 블록체인으로부터 수신한 후에, 이 검증 성공 결과를 이용하여 사용자 인증서를 불법적인 목적으로 이용할 수도 있다.However, in this system structure, there is a problem in that the service server can use the user's certificate for other purposes. For example, the service organization falsely informs the user terminal that the certificate will be used for other purposes, and after receiving the verification success result from the blockchain using the electronic signature received from the user terminal, the verification success result is used. User certificates can also be used for illegal purposes.

본 발명은 이러한 문제점을 해결하기 위하여 제안된 것으로, 블록체인 환경에서 인증서 사용에 대한 투명성과 신뢰성을 향상시키는 인증서 부당 사용 검증 방법 및 이를 위한 시스템을 제공하는데 그 목적이 있다. The present invention has been proposed to solve this problem, and an object thereof is to provide a method for verifying unauthorized use of a certificate and a system for the same, which improves transparency and reliability of certificate use in a blockchain environment.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention can be understood by the following description, and will be more clearly understood by examples of the present invention. In addition, it will be easily understood that the objects and advantages of the present invention can be realized by the means shown in the claims and combinations thereof.

상기 목적을 달성하기 위한 본 발명의 제1측면에 따른, 블록체인 시스템에서 인증서의 부당 사용을 검증하기 위한 방법은, 사용자 단말로부터 발송된 인증 정보를 분석하여 사용자를 인증하는 단계; 상기 사용자 인증에 성공하면, 스마트 컨트랙트가 포함된 제1블록에서 실행 함수를 확인하여, 이 실행 함수를 구동하여 서비스를 실행하는 단계; 상기 스마트 컨트랙트와 관련되는 사용처 정보를 확인하고, 상기 사용처 정보와 상기 서비스 실행 결과를 포함하는 제2블록을 생성하여 블록체인에 저장하는 단계; 상기 서비스에서 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제2블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및 상기 제2블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제2블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 단계를 포함한다.According to a first aspect of the present invention for achieving the above object, a method for verifying the illegal use of a certificate in a blockchain system includes: authenticating a user by analyzing authentication information sent from a user terminal; If the user authentication is successful, checking an execution function in a first block containing a smart contract, and running the execution function to execute a service; Checking usage information related to the smart contract, generating a second block including the usage destination information and the service execution result, and storing it in a blockchain; Transmitting the transaction identification information of the second block to the user terminal as access data for inquiring where the certificate used in the service is used; And when the inquiry request message including the transaction identification information of the second block is received from the user terminal, providing the user terminal with the usage information included in the second block.

상기 방법은, 상기 서비스를 실행하는 단계 이전에, 상기 서비스에 이용될 예정인 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제1블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및 상기 제1블록의 트랜잭션 식별정보를 포함하는 메시지를 상기 사용자 단말로부터 수신하면, 상기 서비스가 실행되기 전에 상기 제1블록에 포함된 사용처 정보를 추출하여 상기 사용자 단말로 제공하는 단계를 더 포함할 수 있다.The method includes, before executing the service, transmitting the transaction identification information of the first block to the user terminal, as access data for inquiring a destination of a certificate to be used for the service; And when a message including the transaction identification information of the first block is received from the user terminal, extracting the usage information included in the first block and providing it to the user terminal before the service is executed. I can.

상기 방법은 상기 인증하는 단계 이전에, 난스를 생성하여 상기 사용자 단말로 전송하는 단계를 더 포함할 수 있다. 이 경우, 상기 인증하는 단계는, 상기 인증 정보에서 포함된 전자 서명을 상기 사용자의 공개키로 복호화한 후, 상기 복호화한 난스가 상기 생성한 난스와 일치하는지 여부를 인증할 수 있다.The method may further include generating a nonce and transmitting it to the user terminal before the authentication step. In this case, in the authenticating step, after decrypting the electronic signature included in the authentication information with the user's public key, it may be verified whether the decrypted nonce matches the generated nonce.

상기 방법은, 상기 사용처 정보와 상기 인증 결과를 포함하는 제3블록을 생성하여 상기 블록체인에 저장하는 단계; 상기 인증에 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제3블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및 상기 제3블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제3블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 단계를 더 포함할 수 있다.The method includes the steps of: generating a third block including the usage information and the authentication result and storing the third block in the block chain; Transmitting the transaction identification information of the third block to the user terminal as access data for inquiring the usage destination of the certificate used for the authentication; And when the inquiry request message including the transaction identification information of the third block is received from the user terminal, providing the use destination information included in the third block to the user terminal.

상기 방법은, 상기 인증하는 단계 이전에, 서비스 서버로부터 상기 스마트 컨트랙트의 등록을 요청받는 단계; 및 상기 스마트 컨트랙트의 사용처 정보와 상기 스마트 컨트랙트가 포함된 상기 제1블록을 생성하여 상기 블록체인에 저장하는 단계를 더 포함할 수 있다. The method includes: receiving a request for registration of the smart contract from a service server before the authenticating step; And generating the first block including the usage information of the smart contract and the smart contract and storing it in the block chain.

상기 서비스를 실행하는 단계는, 사용자 단말로부터 발송한 입력 정보를 확인하고, 상기 입력 정보를 상기 실행 함수에 입력하여, 상기 서비스를 실행할 수 있다. Executing the service may include checking input information sent from a user terminal, inputting the input information into the execution function, and executing the service.

상술한 방법은 컴퓨터가 판독 가능한 기록 매체에 컴퓨터 프로그램으로서 기록될 수 있다. The above-described method can be recorded as a computer program on a computer-readable recording medium.

상기 목적을 달성하기 위한 본 발명의 제2측면에 따른 인증서의 부당 사용을 검증하기 위한 블록체인 시스템은, 사용자 단말로부터 발송된 인증 정보를 분석하여 사용자를 인증하여 인증에 성공하면, 스마트 컨트랙트가 포함된 제1블록에서 실행 함수를 확인하여 이 실행 함수를 구동하여 서비스를 실행하는 인증 모듈; 상기 스마트 컨트랙트와 관련되는 사용처 정보를 확인하고, 상기 사용처 정보와 상기 서비스 실행 결과를 포함하는 제2블록을 생성하여 블록체인에 저장하는 블록 관리 모듈; 및 상기 서비스에서 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제2블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 정보 제공 모듈을 포함한다. A blockchain system for verifying the illegal use of a certificate according to the second aspect of the present invention to achieve the above object, when the authentication succeeds by analyzing the authentication information sent from the user terminal and authenticating the user, a smart contract is included. An authentication module that checks the execution function in the first block and executes the service by driving the execution function; A block management module for checking usage information related to the smart contract, generating a second block including the usage destination information and a result of executing the service, and storing it in a block chain; And an information providing module that transmits the transaction identification information of the second block to the user terminal as access data for inquiring the usage destination of the certificate used in the service.

상기 정보 제공 모듈은, 상기 제2블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제2블록에 포함된 사용처 정보를 상기 사용자 단말로 제공할 수 있다.When an inquiry request message including transaction identification information of the second block is received from the user terminal, the information providing module may provide usage information included in the second block to the user terminal.

본 발명은 인증서 사용처 정보를 포함하는 블록을 블록체인에 저장하고, 더불어 상기 인증서가 사용될 때마다 사용처 정보에 접근할 수 있는 트랜잭셕 아이디를 사용자 단말로 제공함으로써, 인증서 사용에 대한 투명성과 신뢰성을 향상시키는 장점이 있다.The present invention stores a block containing the certificate usage information in the blockchain, and provides a transaction ID to access the usage information whenever the certificate is used, thereby improving transparency and reliability in the use of certificates. It has the advantage of letting you do it.

또한, 본 발명은 전자 서명을 수행되기 전에, 사용자에게 인증서가 사용예정인 사용처 정보를 제공함으로써, 인증서가 불법적으로 사용되는 것을 사전에 예방할 수 있는 장점도 있다.In addition, the present invention has the advantage of preventing illegal use of the certificate in advance by providing the user with information on the destination where the certificate is intended to be used before the electronic signature is performed.

본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 발명을 실시하기 위한 구체적인 내용과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른, 인증서 부당 사용 검증 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 블록체인 시스템에서 스마트 컨트랙트와 관련된 블록을 저장하는 방법을 설명하는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른, 블록체인 시스템에서 인증서가 사용되기 전에 인증서의 사용처 정보를 사용자에게 제공하는 방법을 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른, 블록체인 시스템에서 인증서가 사용된 후에 인증서의 사용처 정보를 사용자에게 제공하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 블록체인 시스템을 나타내는 도면이다.
The following drawings attached to the present specification illustrate preferred embodiments of the present invention, and serve to further understand the technical idea of the present invention together with specific details for carrying out the invention, so the present invention is described in such drawings. It is limited to matters and should not be interpreted.
1 is a diagram illustrating a system for verifying unauthorized use of a certificate according to an embodiment of the present invention.
2 is a flowchart illustrating a method of storing a block related to a smart contract in a block chain system according to an embodiment of the present invention.
3 is a flowchart illustrating a method of providing information about a certificate usage destination to a user before a certificate is used in a blockchain system according to an embodiment of the present invention.
4 is a flowchart illustrating a method of providing information about a certificate usage to a user after a certificate is used in a blockchain system according to an embodiment of the present invention.
5 is a diagram illustrating a block chain system according to an embodiment of the present invention.

상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.The above-described objects, features, and advantages will become more apparent through the following detailed description in connection with the accompanying drawings, whereby those of ordinary skill in the technical field to which the present invention pertains can easily implement the technical idea of the present invention. There will be. In addition, in describing the present invention, when it is determined that a detailed description of a known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted. Hereinafter, a preferred embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른, 인증서 부당 사용 검증 시스템을 나타내는 도면이다.1 is a diagram illustrating a system for verifying unauthorized use of a certificate according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 인증서 부당 사용 검증 시스템은, 사용자 단말(100), 서비스 서버(300) 및 블록체인 시스템(200)을 포함하며, 이러한 구성요소들은 네트워크(400)를 통해서 서로 통신한다. 상기 네트워크(400)는 유선 통신망과 이동통신망을 포함하는 것으로서, 본 발명에 있어서 주지의 관용기술에 해당하므로 자세한 설명은 생략한다. As shown in FIG. 1, the authentication system for verifying unauthorized use of a certificate according to an embodiment of the present invention includes a user terminal 100, a service server 300, and a blockchain system 200, and these components are network Communicate with each other through 400. The network 400 includes a wired communication network and a mobile communication network, and a detailed description thereof will be omitted since it corresponds to a known common technology in the present invention.

사용자 단말(100)은 사용자가 소지한 개인용 컴퓨터, 이동통신 단말 등으로서, 네트워크(400)와 통신이 가능하다. 또한, 사용자 단말(100)은 블록체인 시스템(200)에서 발행한 인증서를 저장하고, 개인키와 공개키를 자체적으로 생성하여 저장한다. 상기 사용자 단말(100)은 공개키를 블록체인 시스템(200), 서비스 서버(300) 등에 배포할 수 있다. 사용자 단말(100)은 인증서와 개인키를 이용하여 전자 서명을 수행하여, 전자 서명값이 포함된 인증 정보를 서비스 서버(300)로 전송함으로써, 서비스 서버(300)로 온라인 서비스를 요청할 수 있다. 사용자 단말(100)은 서비스 서버(300)로 트랜잭션 식별정보(TxID)를 수신하고, 이 트랜잭션 식별정보를 이용하여 블록체인 시스템(200)에 접근하여 인증서 사용처를 확인할 수 있다.The user terminal 100 is a personal computer, mobile communication terminal, etc. possessed by the user, and can communicate with the network 400. In addition, the user terminal 100 stores the certificate issued by the blockchain system 200, and generates and stores a private key and a public key by itself. The user terminal 100 may distribute the public key to the blockchain system 200, the service server 300, and the like. The user terminal 100 may request an online service from the service server 300 by performing an electronic signature using a certificate and a private key and transmitting authentication information including the electronic signature value to the service server 300. The user terminal 100 may receive the transaction identification information (TxID) from the service server 300 and access the blockchain system 200 using the transaction identification information to check the certificate usage location.

서비스 서버(300)는 주식 거래, 계좌 이체, 부동산 거래, 본인 인증 등과 같이 사용자의 전자 서명이 필요한 서비스를 제공하는 서버로서, 자신이 제공하는 서비스를 스마트 컨트랙트로서 생성하여, 이 스마트 컨트랙트를 블록체인(210)에 사전에 등록한다. 상기 스마트 컨트랙트에서는 서비스를 실행할 수 있는 실행 함수가 포함된다. 상기 실행 함수에는 입력값이 정의되고, 더불어 입력값에 따라 프로세스를 처리할 수 있는 로직(logic)이 포함된다. 상기 로직은 프로그램 언어로서 상기 실행 함수에 기록될 수 있다. 예컨대, 서비스 서버(300)가 금융 서버인 경우, 계좌이체과 관련된 실행 함수가 스마트 컨트랙트에 포함될 수 있으며, 이 경우 실행 함수의 입력값으로 출금 계좌, 이체 금액, 입금 계좌, 입금 은행 등을 입력값으로 정의되며 이러한 입력값에 따라 계좌 이체를 수행할 수 있는 로직(logic)이 상기 실행 함수에 기록될 수 있다.The service server 300 is a server that provides services that require a user's electronic signature, such as stock transaction, account transfer, real estate transaction, and identity authentication. Register in advance at (210). The smart contract includes an execution function that can execute a service. An input value is defined in the execution function, and a logic capable of processing a process according to the input value is included. The logic can be written to the execution function as a programming language. For example, when the service server 300 is a financial server, an execution function related to an account transfer may be included in a smart contract, and in this case, as an input value of the execution function, a withdrawal account, a transfer amount, a deposit account, a deposit bank, etc. It is defined, and logic capable of performing an account transfer according to this input value may be recorded in the execution function.

서비스 서버(300)는 사용자 단말(100)로부터 서비스를 요청받으면, 블록체인 시스템(200)에서 생성한 난스(Nonce)를 사용자 단말(100)로 제공한 후, 사용자 단말(100)로부터 인증 정보를 수신하면, 이 인증 정보가 포함된 서비스 실행 요청을 블록체인 시스템(200)으로 전송한다. 상기 난스는 무작위로 생성되는 일회성 문자열, 일회성 숫자열 또는 문자와 숫자의 조합이다. 상기 인증 정보의 인증 결과에 따라, 블록체인 시스템(200)에서 서비스가 선택적으로 실행되게 한다. 서비스 서버(300)는 서비스 실행 결과를 블록체인 시스템(200)으로부터 수신할 수 있다. When a service request is received from the user terminal 100, the service server 300 provides the nonce generated by the blockchain system 200 to the user terminal 100, and then receives authentication information from the user terminal 100. Upon receipt, a service execution request including this authentication information is transmitted to the blockchain system 200. The nonce is a randomly generated one-time string, one-time number string, or a combination of letters and numbers. According to the authentication result of the authentication information, the service is selectively executed in the blockchain system 200. The service server 300 may receive a service execution result from the blockchain system 200.

블록체인 시스템(200)은 복수의 노드들이 연결되어 형성되는 일종의 네트워크 집합으로서, 공유 분산 데이터인 블록체인(210)을 포함한다. 블록체인 시스템(200)에 참여한 노드들은 동일한 블록체인(210)을 구축한다. 사용자 단말(100), 서비스 서버(300)도 블록체인 시스템(200)에 포함되어 블록체인(210)을 공유할 수도 있다. 상기 블록체인 시스템(200)은 클라우드 컴퓨터 시스템에 구현될 수도 있다.The blockchain system 200 is a set of networks formed by connecting a plurality of nodes, and includes a blockchain 210 that is shared distributed data. Nodes participating in the blockchain system 200 build the same blockchain 210. The user terminal 100 and the service server 300 may also be included in the block chain system 200 to share the block chain 210. The blockchain system 200 may be implemented in a cloud computer system.

블록체인(210)을 구성하는 블록은 블록 헤더와 트랜잭션으로 구성된다. 블록 헤더는 이전 블록 해시값, 머클루트(Markle Root), 타임스탬프를 포함한다. 상기 이전 블록 해시는 블록체인 구조에서 이전 블록(즉, 부모 블록)에 대한 해시 참조값을 나타낸다. 머클루트는 머클 트리 루트에 대한 해시(hash)이다. 타임 스탬프는 블록의 생성시간이 기록된다. Blocks constituting the blockchain 210 are composed of a block header and a transaction. The block header contains the previous block hash value, Merkle Root, and timestamp. The previous block hash represents a hash reference value for the previous block (i.e., the parent block) in the blockchain structure. Merkleot is the hash of the Merkle tree root. In the time stamp, the creation time of the block is recorded.

상기 트랜잭션는 사용처 정보와 사용처 식별코드를 포함한다. 상기 사용처 정보는 인증서가 사용된 정보를 사용자가 인지할 수 있는 텍스트로 나타내는 것으로서, 예를 들어 "주식 거래", "계좌이체", "부동산 거래" 등과 같은 사용자가 인지할 수 있는 설명 정보이다. 또한, 사용처 식별코드는 사용처 정보와 매핑되고 내부적으로 관리되는 사용처 정보에 대한 고유정보로서, 일정길이의 영문자와 숫자가 조합될 수 있다.The transaction includes destination information and a destination identification code. The usage information indicates information on which the certificate has been used in text that the user can recognize, and is descriptive information that can be recognized by the user, such as "stock transaction", "account transfer", and "real estate transaction". In addition, the usage destination identification code is unique information on the usage destination information that is mapped with the usage destination information and is internally managed, and may be combined with English characters and numbers of a certain length.

본 발명의 실시예에 따른, 블록은 스마트 컨트랙트 블록(이하, 'SC 블록'으로 지칭함), 인증 블록, 서비스 실행 블록으로 구분될 수 있다. 상기 SC 블록의 트랜잭션은 스마트 컨트랙트와 관련된 실행 함수, 사용처 정보 및 사용처 식별코드를 포함한다. 또한, 인증 블록의 트랜잭션은 사용자 인증 결과, 사용처 정보 및 사용처 식별코드를 포함한다. 서비스 실행 블록의 트랜잭션은 서비스 실행 결과, 사용처 정보 및 사용처 식별코드를 포함한다. According to an embodiment of the present invention, blocks may be divided into smart contract blocks (hereinafter referred to as'SC blocks'), authentication blocks, and service execution blocks. The transaction of the SC block includes an execution function related to the smart contract, usage destination information, and usage destination identification code. In addition, the transaction of the authentication block includes the user authentication result, the destination information, and the destination identification code. The transaction of the service execution block includes the service execution result, usage destination information, and usage destination identification code.

블록체인 시스템(200)은 블록을 관리하는 기능 이외에, 인증서를 생성하여 배포하기도 하고, 더불어 사용자의 인증과 서비스 실행을 수행하기도 한다. 사용자에게 배포된 인증서는 인증서 식별코도와 함께 블록체인(210)에 저장된다. 구체적으로, 블록체인 시스템(200)은 사용자 단말(100)로부터 인증서 생성을 요청받으면, 사전에 설정된 인증서 생성 알고리즘에 유효기간이 포함된 인증서를 생성하고, 이 인증서를 사용자 단말(100)로 전송한다. 이때, 블록체인 시스템(200)은 상기 인증서의 식별코드를 생성하고, 이 인증서의 식별코드와 상기 인증서가 포함하는 신규 블록을 생성하고, 이 신규 블록의 이전의 블록과 연결함으로써, 상기 신규 블록을 블록체인(210)에 저장한다. 또한, 블록체인 시스템(200)은 상기 인증서의 식별코드도 사용자 단말(100)로 전송할 수 있다.In addition to the function of managing blocks, the blockchain system 200 generates and distributes certificates, and also performs user authentication and service execution. The certificate distributed to the user is stored in the blockchain 210 together with the certificate identification code. Specifically, when receiving a request to generate a certificate from the user terminal 100, the blockchain system 200 generates a certificate including a validity period in a pre-set certificate generation algorithm, and transmits the certificate to the user terminal 100. . At this time, the blockchain system 200 generates the identification code of the certificate, generates the identification code of the certificate and a new block that the certificate contains, and connects the new block with the previous block of the new block. It is stored in the blockchain 210. In addition, the blockchain system 200 may also transmit the identification code of the certificate to the user terminal 100.

또한, 블록체인 시스템(200)은 서비스 서버(300)로부터 스마트 컨트랙트를 수신하면, 이 스마트 컨트랙트에 포함된 실행 함수가 사용되는 사용처의 식별코드를 생성하여 서비스 서버(300)로 제공하고, 더불어 상기 스마트 컨트랙트와 상기 사용처 식별코드를 포함하는 신규 SC 블록을 생성하고, 이 신규 SC 블록을 기존 블록과 연결함으로써 블록체인(210)에 저장한다. In addition, when the blockchain system 200 receives a smart contract from the service server 300, it generates an identification code of a usage destination in which the execution function included in the smart contract is used, and provides it to the service server 300. A new SC block including the smart contract and the usage identification code is created, and the new SC block is connected with the existing block to be stored in the blockchain 210.

한편, 블록체인 시스템(200)은 사용자 단말(100)이 서비스를 서비스 서버(300)로 요청하는 경우, 사용자 인증을 위한 난스를 생성하여 사용자 단말(100)로 제공할 수 있다. 이때, 블록체인 시스템(200)은 인증서가 사용되는 사용처의 식별코드를 서비스 서버(300)로부터 수신하고, 이 식별코드와 관련된 트랜잭션 식별정보를 사용자 단말(100)로 제공할 수 있다. 이에 따라, 사용자 단말(100)은 전자 서명을 수행하기 전에, 상기 트랜잭션 식별정보와 대응되는 사용처 정보를 블록체인 시스템(200)으로부터 획득하여, 인증서가 사용되는 사용처를 미리 확인할 수도 있다.Meanwhile, when the user terminal 100 requests a service to the service server 300, the blockchain system 200 may generate a nonce for user authentication and provide it to the user terminal 100. At this time, the blockchain system 200 may receive an identification code of a destination where the certificate is used from the service server 300 and provide transaction identification information related to the identification code to the user terminal 100. Accordingly, before performing the electronic signature, the user terminal 100 may obtain usage information corresponding to the transaction identification information from the blockchain system 200 and check the usage destination where the certificate is used in advance.

또한, 블록체인 시스템(200)은 사용자 단말(100)로부터 인증정보를 수신하는 경우, 인증정보를 분석하여 사용자를 인증한 후에 인증에 성공하면, 서비스와 관련된 실행 함수를 구동할 수 있다. 상기 블록체인 시스템(200)은 SC 블록의 트랜잭션 식별정보와 입력 정보를 서비스 서버(300)로부터 수신하고, 상기 SC 블록의 트랜잭션 식별정보를 포함하는 SC 블록을 블록체인(210)에서 추출한 후, 이 SC 블록에 포함된 실행함수에 상기 입력 정보를 대입하여 실행 함수를 구동하여 요구되는 서비스를 실행할 수 있다. In addition, when the blockchain system 200 receives authentication information from the user terminal 100, if authentication is successful after analyzing the authentication information and authenticating the user, it may run an execution function related to the service. The block chain system 200 receives the transaction identification information and input information of the SC block from the service server 300, extracts the SC block including the transaction identification information of the SC block from the block chain 210, and The required service can be executed by driving the execution function by substituting the input information into the execution function included in the SC block.

블록체인 시스템(200)은 사용자 인증으로서, 전자 서명 검증, 해시값 검증, 난스 검증, 인증서 검증 중에서 하나 이상을 수행할 수 있다. 사용자 인증에 대한 구체적인 방법으로 도 4를 참조한 설명을 통해서 자세하게 설명된다.As user authentication, the blockchain system 200 may perform one or more of electronic signature verification, hash value verification, nonce verification, and certificate verification. A detailed method for user authentication will be described in detail with reference to FIG. 4.

블록체인 시스템(200)은 인증 결과, 인증서 사용처 정보 및 인증서 사용처 식별코드를 포함하는 신규 인증 블록을 생성하고, 이 신규 인증 블록을 블록체인(210)에 저장한다. 또한, 블록체인 시스템(200)은 실행 함수의 실행 결과, 인증서 사용처 정보 및 인증서 사용처 식별코드를 포함하는 서비스 실행 블록을 생성하여 블록체인(210)에 저장한다. The blockchain system 200 generates a new authentication block including an authentication result, information on a certificate use place, and a certificate use place identification code, and stores the new authentication block in the block chain 210. In addition, the blockchain system 200 generates a service execution block including a result of execution of the execution function, information on a certificate use destination, and an identification code for a certificate use, and stores it in the blockchain 210.

이하, 도 2 내지 도 4를 참조한 설명을 통해서, 본 발명의 실시예에 따른 인증서 부당 사용 검증 방법에 대해서 보다 구체적으로 설명한다.Hereinafter, a method for verifying unauthorized use of a certificate according to an embodiment of the present invention will be described in more detail through the description with reference to FIGS. 2 to 4.

도 2는 본 발명의 일 실시예에 따른, 블록체인 시스템에서 스마트 컨트랙트와 관련된 블록을 저장하는 방법을 설명하는 흐름도이다.2 is a flowchart illustrating a method of storing a block related to a smart contract in a block chain system according to an embodiment of the present invention.

도 2를 참조하면, 서비스 서버(300)는 서비스와 관련된 실행 함수를 포함하는 스마트 컨트랙트를 생성한다(S201). 상기 실행 함수에는 입력값이 정의되고, 더불어 입력값에 따라 프로세스를 처리할 수 있는 로직(logic)이 포함된다. 상기 로직은 프로그램 언어로서 상기 실행 함수에 기록될 수 있다. 이어서, 서비스 서버(300)는 상기 생성한 스마트 컨트랙와 스마트 컨트랙트의 사용처 정보가 포함된 등록 요청 메시지를 블록체인 시스템(200)으로 전송한다(S203).Referring to FIG. 2, the service server 300 creates a smart contract including an execution function related to a service (S201). An input value is defined in the execution function, and a logic capable of processing a process according to the input value is included. The logic can be written to the execution function as a programming language. Subsequently, the service server 300 transmits a registration request message including the generated smart contract and the usage information of the smart contract to the blockchain system 200 (S203).

이어서, 블록체인 시스템(200)은 등록 요청 메시지에서 사용처 정보를 확인하고, 이 사용처 정보에 대한 고유의 식별코드(즉, 사용처 식별코드)를 생성한다(S205). 다음으로, 블록체인 시스템(200)은 상기 스마트 컨트랙트, 상기 사용처 식별코드 및 사용처 정보를 포함하는 신규 SC 블록을 생성하고, 이 신규 SC 블록을 기존 블록과 연결함으로써 블록체인(210)에 저장한다(S207). 한편, 블록체인 시스템(200)은 전자 서명 등의 인증 수단을 이용하여, 서비스 서버(300)를 인증할 수 있으며, 서비스 서버(300)의 인증에 성공한 경우에 상기 SC 블록을 블록체인(210)에 저장할 수 있다. Subsequently, the blockchain system 200 checks the usage destination information in the registration request message, and generates a unique identification code (ie, usage destination identification code) for the usage destination information (S205). Next, the blockchain system 200 creates a new SC block including the smart contract, the usage identification code, and usage information, and stores the new SC block in the blockchain 210 by linking the new SC block with the existing block ( S207). On the other hand, the blockchain system 200 can authenticate the service server 300 using an authentication means such as an electronic signature, and when the authentication of the service server 300 is successful, the SC block is transferred to the blockchain 210 Can be saved on.

블록체인 시스템(200)은 정상적으로 SC 블록이 저장되면, 상기 사용처 식별코드를 포함하는 등록 알림 메시지를 서비스 서버(300)로 전송한다(S209).When the SC block is normally stored, the blockchain system 200 transmits a registration notification message including the use destination identification code to the service server 300 (S209).

그러면, 서비스 서버(300)는 상기 등록 알림 메시지에서 사용처 식별코드를 확인하고, 상기 스마트 컨트랙트와 연관하여 사용처 식별코드를 별도로 저장하여 관리한다.Then, the service server 300 checks the usage location identification code in the registration notification message, and separately stores and manages the usage location identification code in association with the smart contract.

도 3은 본 발명의 일 실시예에 따른, 블록체인 시스템에서 인증서가 사용되기 전에 인증서의 사용처 정보를 사용자에게 제공하는 방법을 설명하는 흐름도이다. 3 is a flowchart illustrating a method of providing information about a certificate usage destination to a user before a certificate is used in a blockchain system according to an embodiment of the present invention.

도 3을 참조하면, 사용자 단말(100)은 계좌 이체, 주식 매매 등과 같은 특정 서비스를 서비스 서버(300)로 요청한다(S301).Referring to FIG. 3, the user terminal 100 requests a specific service, such as an account transfer or stock trading, to the service server 300 (S301).

그러면, 서비스 서버(300)는 사용자 단말(100)로부터 요구한 서비스가 인증서 사용이 필요한 서비스임을 확인하고, 더불어 상기 서비스를 실행할 수 있는 스마트 컨트랙트를 확인한다. 그리고 서비스 서버(300)는 스마트 컨트랙트와 대응되는 사용처 식별코드를 확인한다(S303). 상기 사용처 식별코드는 도 2를 참조한 설명에서와 같이, 스마트 컨트랙트가 등록되면 블록체인 시스템(200)으로부터 수신된다. 이어서, 블록체인 시스템(200)은 상기 확인한 사용처 식별코드를 포함하는 난스 요청 메시지를 블록체인 시스템(200)으로 전송한다(S305).Then, the service server 300 confirms that the service requested from the user terminal 100 is a service requiring the use of a certificate, and also confirms a smart contract capable of executing the service. In addition, the service server 300 checks a destination identification code corresponding to the smart contract (S303). The usage identification code is received from the blockchain system 200 when a smart contract is registered, as in the description with reference to FIG. 2. Subsequently, the blockchain system 200 transmits a nonce request message including the identified use destination identification code to the blockchain system 200 (S305).

블록체인 시스템(200)은 난스 요청 메시지에 포함된 사용처 식별코드를 확인하고, 이 사용처 식별코드를 포함하는 SC 블록을 블록체인(210)에서 추출한 후, 상기 SC 블록의 트랜잭션 식별정보를 확인한다(S307). 이어서, 블록체인 시스템(200)은 사전에 설정된 난스 생성 알고리즘에 토대로, 랜덤값인 난스를 생성한다(S309). 이때, 블록체인 시스템(200)은 상기 트랜잭션 식별정보, 현재 시각, 사용자 단말(100)의 인증서 식별코드 등을 이용하여 난스를 생성할 수 있다.The blockchain system 200 checks the use destination identification code included in the nonce request message, extracts the SC block including the use destination identification code from the blockchain 210, and then checks the transaction identification information of the SC block ( S307). Subsequently, the blockchain system 200 generates a random value nonce based on a previously set nonce generation algorithm (S309). In this case, the blockchain system 200 may generate a nonce using the transaction identification information, the current time, and a certificate identification code of the user terminal 100.

다음으로, 블록체인 시스템(200)은 상기 생성한 난스와 상기 확인한 SC 블록의 트랜잭션 식별정보(SC TxID)를 서비스 서버(300)로 전송하고(S311), 서비스 서버(300)는 상기 난스와 SC 블록의 트랜잭션 식별정보를 사용자 단말(100)로 전달한다(S313). 다른 실시형태로서, 블록체인 시스템(200)은 서비스 서버(300)를 경유하지 않고, 다이렉트로 상기 난스와 SC 블록의 트랜잭션 식별정보를 사용자 단말(100)로 전송할 수 있다.Next, the blockchain system 200 transmits the generated nonce and the transaction identification information (SC TxID) of the confirmed SC block to the service server 300 (S311), and the service server 300 transmits the generated nonce and the SC block to the service server 300 (S311). The transaction identification information of the block is transmitted to the user terminal 100 (S313). As another embodiment, the blockchain system 200 may directly transmit the transaction identification information of the nonce and the SC block to the user terminal 100 without going through the service server 300.

사용자 단말(100)은 난스를 수신한 후에 이 난스와 저장중인 인증서를 이용하여 전자 서명을 수행할 수 있으나, 인증서가 사용되는 용도를 알기 위하여, 상기 수신한 SC 블록의 트랜잭션 식별정보를 포함하는 사용처 정보 요청 메시지를 블록체인 시스템(200)으로 전송할 수 있다(S315).After receiving the nonce, the user terminal 100 may perform an electronic signature using the nonce and the stored certificate, but in order to know the purpose for which the certificate is used, the usage including the transaction identification information of the received SC block The information request message may be transmitted to the blockchain system 200 (S315).

그러면, 블록체인 시스템(200)은 상기 트랜잭션 식별정보를 가지는 SC 블록을 블록체인(210)에서 추출하고, 상기 SC 블록의 트랜잭션에서 사용처 정보를 확인한다. 그리고 블록체인 시스템(200)은 상기 사용처 정보를 사용자 단말(100)로 전송하여, 인증서가 사용되기 전에 인증서의 사용처 정보를 사용자가 인지하게 한다(S317).Then, the block chain system 200 extracts the SC block having the transaction identification information from the block chain 210 and checks the usage destination information in the transaction of the SC block. In addition, the blockchain system 200 transmits the usage destination information to the user terminal 100 so that the user recognizes the usage destination information of the certificate before the certificate is used (S317).

도 3과 같은 프로세서에 따라, 사용자는 서비스 서버(300)에서 실행된 예정인 서비스의 용도와 인증서가 사용될 용도가 일치하는지 여부를, 인증서를 사용하기 전에 미리 확인할 수 있다. According to the processor as shown in FIG. 3, the user can check in advance whether the intended use of the service executed in the service server 300 and the purpose of which the certificate is to be used match before using the certificate.

사용자는 블록체인 시스템(200)으로부터 수신한 사용처 정보가 자신이 생각하는 것과 다를 때에는 전자 서명을 수행하지 않고, 서비스 요청을 철회할 수 있다. 반면, 사용자는 블록체인 시스템(200)으로부터 수신한 사용처 정보가 자신이 생각하는 것과 일치하는 경우 전자 서명을 수행하여 실질적인 서비스 처리를 요청할 수 있다. When the usage information received from the blockchain system 200 is different from what he or she thinks, the user can withdraw a service request without performing an electronic signature. On the other hand, if the usage information received from the blockchain system 200 matches what he or she thinks, the user may request a substantial service processing by performing an electronic signature.

도 4는 본 발명의 일 실시예에 따른, 블록체인 시스템에서 인증서가 사용된 후에 인증서의 사용처 정보를 사용자에게 제공하는 방법을 설명하는 흐름도이다. 4 is a flowchart illustrating a method of providing information about a certificate usage to a user after a certificate is used in a blockchain system according to an embodiment of the present invention.

도 4를 참조한 설명은 도 3에 따른 절차 이후에 진행된다. The description with reference to FIG. 4 proceeds after the procedure according to FIG. 3.

도 4를 참조하면, 사용자 단말(100)은 사용자로부터 서비스 실행을 위한 입력정보(예컨대, 계좌 이체 입력정보, 주식 거래 입력정보)를 입력받은 후, 전자 서명값 생성한다(S401). 이때, 사용자 단말(100)은 상기 난스와 인증서를 사용자의 개인키로 암호화함으로써, 전자 서명값을 생성할 수 있다. Referring to FIG. 4, the user terminal 100 receives input information for service execution (eg, account transfer input information, stock transaction input information) from the user, and then generates an electronic signature value (S401). In this case, the user terminal 100 may generate an electronic signature value by encrypting the nonce and the certificate with the user's private key.

다음으로, 사용자 단말(100)은 상기 전자 서명값, 상기 난스, 서비스 서버(300)의 식별정보, 인증서 식별코드, 상기 SC 블록의 트랜잭션 식별정보, 상기 서비스 실행을 위한 입력정보 등 중에서 하나 이상을 해시 처리한 해시값을 생성한다. 이어서, 사용자 단말(100)은 상기 해시값, 인증서의 식별코드, 상기 전자 서명값를 포함하는 인증정보, 상기 입력정보 및 SC 블록의 트랜잭션 식별정보를 서비스 서버(300)로 전송한다(S405). 그러면, 서비스 서버(300)는 상기 인증정보, 상기 입력정보 및 SC 블록체인의 트랜잭션 식별정보를 블록체인 시스템(200)에 전송하여, 해당 서비스의 실행을 요청한다(S407). Next, the user terminal 100 selects one or more of the electronic signature value, the nonce, identification information of the service server 300, a certificate identification code, transaction identification information of the SC block, input information for executing the service, etc. Generates a hash value after hashing. Subsequently, the user terminal 100 transmits the hash value, the identification code of the certificate, the authentication information including the electronic signature value, the input information, and the transaction identification information of the SC block to the service server 300 (S405). Then, the service server 300 transmits the authentication information, the input information, and transaction identification information of the SC blockchain to the blockchain system 200, and requests execution of the corresponding service (S407).

그러면, 블록체인 시스템(200)은 상기 인증정보를 분석하여, 사용자 인증을 수행한다(S409). 상기 블록체인 시스템(200)은 사용자의 공개키를 확인하고, 이 공개키를 이용하여 상기 전자 서명값을 복호화한 후, 복호화된 결과인 난스와 인증서를 확인하고, 이 난스와 인증서가 사용자 단말(100)로 제공한 난스와 인증서와 일치하는지 여부를 1차 인증한다. 블록체인 시스템(200)은 상기 인증서의 식별코드를 토대로, 블록체인(210)에서 인증서를 추출하여, 인증서의 일치 여부를 검증할 수 있다. 또한, 블록체인 시스템(200)은 상기 사용자 단말(100)로 배포한 인증서의 식별코드를 확인하고, 상기 사용자 단말(100)로 제공한 난스, 상기 전자 서명값, 상기 서비스 서버(300)의 식별정보, 상기 인증서의 식별코드, SC 블록의 트랜잭션 식별정보, 상기 입력정보 등 중에서 하나 이상을 해시 처리한 해시값을 생성한 후에, 이 해시값과 사용자 단말(100)로부터 수신한 해시값이 일치하는지 여부를 2차 인증한다. 또한, 블록체인 시스템(200)은 상기 인증서를 확인하고, 이 인증서가 만료되었는지 여부를 추가적으로 인증할 수 있다.Then, the blockchain system 200 analyzes the authentication information and performs user authentication (S409). The blockchain system 200 verifies the user's public key, decrypts the electronic signature value using this public key, and then verifies the decrypted result of the nonce and the certificate, and the nonce and the certificate are converted to the user terminal ( First authentication is made whether it matches the nonce and certificate provided by 100). The blockchain system 200 may extract a certificate from the blockchain 210 based on the identification code of the certificate, and verify whether the certificate matches. In addition, the blockchain system 200 checks the identification code of the certificate distributed to the user terminal 100, and identifies the nonce provided to the user terminal 100, the electronic signature value, and the service server 300 After generating a hash value obtained by hashing at least one of the information, the identification code of the certificate, the transaction identification information of the SC block, the input information, etc., is this hash value and the hash value received from the user terminal 100 match? Whether it is secondarily authenticated. In addition, the blockchain system 200 may verify the certificate and additionally verify whether the certificate has expired.

블록체인 시스템(200)은 어느 한 인증에도 실패하면, 서비스 서버(300)로 사용자 인증에 실패하였음을 통보한다. If any authentication fails, the blockchain system 200 notifies the service server 300 that user authentication has failed.

한편, 블록체인 시스템(200)는 모든 사용자 인증에 성공하면, 서비스 서버(300)로부터 수신한 SC 블록의 트랜잭션 식별정보를 확인하고, 상기 트랜잭션 식별정보를 가지는 SC 블록을 블록체인(210)에서 추출한다. 그리고 블록체인 시스템(200)은 상기 추출한 SC 블록에 포함된 스마트 컨트랙트의 실행 함수를 확인하고, 이 실행함수에 상기 입력정보를 대입하여 실행 함수를 구동함으로써, 요구되는 서비스를 실행한다(S411, S413).On the other hand, if all user authentication is successful, the blockchain system 200 checks the transaction identification information of the SC block received from the service server 300, and extracts the SC block having the transaction identification information from the blockchain 210. do. In addition, the blockchain system 200 checks the execution function of the smart contract included in the extracted SC block, and executes the execution function by substituting the input information into the execution function to execute the required service (S411, S413. ).

다음으로, 블록체인 시스템(200)은 상기 추출한 SC 블록에서 사용처 정보와 사용처 식별코드를 확인하고, 상기 사용자 인증 결과, 상기 인증서 사용처 정보 및 상기 인증서 사용처 식별코드를 포함하는 신규 인증 블록을 생성하고, 이 신규 인증 블록을 블록체인(210)에 저장한다(S415). 또한, 블록체인 시스템(200)은 실행 함수의 실행 결과, 상기 인증서 사용처 정보 및 상기 인증서 사용처 식별코드를 포함하는 서비스 실행 블록을 생성하여, 블록체인(210)에 저장한다. Next, the blockchain system 200 checks the usage destination information and the usage destination identification code from the extracted SC block, and generates a new authentication block including the user authentication result, the certificate usage destination information, and the certificate usage identification code, This new authentication block is stored in the blockchain 210 (S415). In addition, the blockchain system 200 generates a service execution block including the execution result of the execution function, the certificate use destination information, and the certificate use destination identification code, and stores it in the blockchain 210.

다음으로, 블록체인 시스템(200)은 상기 저장한 인증 블록의 트랜잭션 식별정보 및 상기 서비스 실행 블록의 트랜잭션 식별정보 및 서비스 실행 결과를 서비스 서버(300)로 전송한다(S417). Next, the blockchain system 200 transmits the stored transaction identification information of the authentication block, the transaction identification information of the service execution block, and the service execution result to the service server 300 (S417).

그러면, 서비스 서버(300)는 자체적으로 관리하는 데이터베이스(도면에 도시되지 않음)에 서비스 실행 결과를 반영하고, 더불어 사용자 단말(100)로 정상적으로 서비스가 처리되었음을 알리는 메시지를 전송한다(S419). 이때, 서비스 서버(300)는 블록체인 시스템(200)으로부터 수신한 인증 블록의 트랜잭션 식별정보 및 서비스 실행 블록의 트랜잭션 식별정보를 사용자 단말(100)로 전송한다.Then, the service server 300 reflects the service execution result in a database (not shown in the drawing) managed by itself, and transmits a message indicating that the service has been normally processed to the user terminal 100 (S419). At this time, the service server 300 transmits the transaction identification information of the authentication block and the transaction identification information of the service execution block received from the block chain system 200 to the user terminal 100.

사용자 단말(100)은 상기 알림 메시지를 수신한 후에, 상기 알림 메시지에 포함된 두 개의 트랜잭션 식별정보를 이용하여, 서비스 서버(300)와 블록체인 시스템(200)에서 실행된 서비스 결과와 인증서의 사용처를 확인할 수 있다. 사용자 단말(100)은 서비스 결과와 인증서의 사용처를 확인하기 위하여, 상기 확인한 두 트랜잭션 식별정보(즉, 인증 블록의 트랜잭션 식별정보 및 서비스 실행 블록의 트랜잭션 식별정보)를 포함하는 서비스 결과 조회 메시지를 블록체인 시스템(200)으로 전송한다(S421).After receiving the notification message, the user terminal 100 uses the two transaction identification information included in the notification message, and the service result executed in the service server 300 and the blockchain system 200 and the use of the certificate. You can check. The user terminal 100 blocks a service result inquiry message including the two confirmed transaction identification information (i.e., transaction identification information of the authentication block and transaction identification information of the service execution block) in order to confirm the service result and the use of the certificate. It is transmitted to the chain system 200 (S421).

그러면, 블록체인 시스템(200)은 상기 서비스 결과 조회 메시지에서 인증 블록의 트랜잭션 식별정보 및 서비스 실행 블록의 트랜잭션 식별정보를 확인하고, 상기 인증 블록의 트랜잭셕 식별정보를 가지는 트랜잭션을 블록체인(210)에서 추출하고, 더불어 상기 서비스 실행 블록의 트랜잭션 식별정보를 가지는 트랜잭션을 블록체인(210)에서 추출한다. 이어서, 블록체인 시스템(200)은 상기 추출한 트랜잭션들을 사용자 단말(100)로 전송한다(S423).Then, the blockchain system 200 checks the transaction identification information of the authentication block and the transaction identification information of the service execution block in the service result inquiry message, and converts the transaction having the transaction identification information of the authentication block into the blockchain 210 In addition, a transaction having the transaction identification information of the service execution block is extracted from the block chain 210. Subsequently, the blockchain system 200 transmits the extracted transactions to the user terminal 100 (S423).

사용자 단말(100)은 블록체인 시스템(200)에서 수신한 트랜잭션들에 포함된 데이터를 화면에 출력함으로써 사용자 인증 결과와 인증서 사용처 정보 그리고 실행 함수의 실행 결과와 인증서 사용처 정보를 사용자에게 인지시킬 수 있다(S425). The user terminal 100 may display the data included in the transactions received from the blockchain system 200 on the screen, thereby recognizing the user authentication result, the certificate usage information, the execution result of the execution function, and the certificate usage information to the user. (S425).

도 4와 같은 프로세서에 따라, 사용자는 서비스 서버(300)에서 인증서가 사용된 경우, 이 인증서의 사용처 정보를 블록체인 시스템(200)으로부터 획득할 수 있다. According to the processor as shown in FIG. 4, when a certificate is used in the service server 300, the user can obtain information on the use of the certificate from the blockchain system 200.

도 5는 본 발명의 일 실시예에 따른, 블록체인 시스템을 나타내는 도면이다.5 is a diagram illustrating a block chain system according to an embodiment of the present invention.

도 5에 도시된 바와 같이, 본 발명의 일 실시예에 따른 블록체인 시스템(200)은 스마트 컨트랙트 등록 모듈(220), 블록 관리 모듈(230), 인증 모듈(240) 및 정보 제공 모듈(250)을 포함하고, 이러한 구성요소들은 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합을 통해서 구현될 수 있다.As shown in FIG. 5, the blockchain system 200 according to an embodiment of the present invention includes a smart contract registration module 220, a block management module 230, an authentication module 240, and an information providing module 250. Including, these components may be implemented as hardware or software, or may be implemented through a combination of hardware and software.

또한, 상기 블록체인 시스템(200)은 하나 이상의 프로세서, 메모리 및 통신 회로를 포함할 수 있으며, 스마트 컨트랙트 등록 모듈(220), 블록 관리 모듈(230), 인증 모듈(240) 및 정보 제공 모듈(250)은 상기 프로세서에 의해서 실행되는 프로그램 형태로 메모리에 탑재될 수 있다. 또한, 상기 블록체인 시스템(200)는 상기 통신 회로를 통하여 네트워크(400)와 통신할 수 있다. In addition, the blockchain system 200 may include one or more processors, memory, and communication circuits, and a smart contract registration module 220, a block management module 230, an authentication module 240, and an information providing module 250 ) May be mounted in a memory in the form of a program executed by the processor. In addition, the blockchain system 200 may communicate with the network 400 through the communication circuit.

스마트 컨트랙트 등록 모듈(220)은 스마트 컨트랙트와 관련된 SC 블록을 생성하여 블록체인(210)에 저장한다. 구체적으로, 스마트 컨트랙트 등록 모듈(220)은 사용처 정보와 스마트 컨트랙트가 포함된 등록 요청 메시지를 서비스 서버(300)로부터 수신하면, 상기 등록 요청 메시지에서 사용처 정보를 확인한 후, 상기 사용처 정보에 대한 고유의 식별코드(즉, 사용처 식별코드)를 생성한다. 아울러, 스마트 컨트랙트 등록 모듈(220)은 상기 스마트 컨트랙트, 상기 사용처 식별코드 및 사용처 정보를 포함하는 신규 SC 블록을 생성하고, 이 신규 SC 블록을 기존 블록과 연결함으로써 블록체인(210)에 저장한다. 스마트 컨트랙트 등록 모듈(220)은 SC 블록의 저장을 저장을 완료하면, 상기 사용처 식별코드를 포함하는 등록 알림 메시지를 서비스 서버(300)로 전송한다.The smart contract registration module 220 generates an SC block related to the smart contract and stores it in the block chain 210. Specifically, when the smart contract registration module 220 receives the registration request message including the usage location information and the smart contract from the service server 300, after checking the usage location information in the registration request message, the unique Generate an identification code (ie, a destination identification code). In addition, the smart contract registration module 220 creates a new SC block including the smart contract, the usage identification code, and usage information, and stores the new SC block in the blockchain 210 by linking the new SC block with the existing block. When the storage of the SC block is completed, the smart contract registration module 220 transmits a registration notification message including the use destination identification code to the service server 300.

블록 관리 모듈(230)은 블록체인(210)에 저장되는 블록등를 관리하는 기능을 수행한다. 즉, 블록 관리 모듈(230)은 인증 블록과 서비스 실행 블록을 생성하여 블록체인(210)에 저장하는데, 인증 모듈(240)에서 인증에 성공한 서비스와 관련된 인증 블록과 서비스 실행 블록을 생성하여 블록체인(210)에 저장한다. 구체적으로, 인증 모듈(240)에서 사용자 인증에 성공하여 서비스를 실행하면, 블록 관리 모듈(230)은 서비스 실행에 수행된 함수를 포함하는 SC 블록을 블록체인(210)에서 확인하고, 이 SC 블록에서 사용처 식별코드와 사용처 정보를 확인한다. 게다가, 블록 관리 모듈(230)은 인증 모듈(240)에서 수행된 사용자 인증 결과, 상기 인증서 사용처 정보 및 상기 인증서 사용처 식별코드를 포함하는 신규 인증 블록을 생성하고, 이 신규 인증 블록을 블록체인(210)에 저장한다. 또한, 블록 관리 모듈(230)은 실행 함수를 토대로 실행된 서비스 결과, 상기 인증서 사용처 정보 및 상기 인증서 사용처 식별코드를 포함하는 서비스 실행 블록을 생성하여, 블록체인(210)에 저장한다. The block management module 230 performs a function of managing blocks, etc. stored in the block chain 210. That is, the block management module 230 generates an authentication block and a service execution block and stores it in the block chain 210, and the authentication module 240 generates an authentication block and a service execution block related to a service that has been successfully authenticated to Save to 210. Specifically, when the authentication module 240 successfully authenticates the user and executes the service, the block management module 230 checks the SC block including the function performed in the service execution in the block chain 210, and this SC block Check the usage identification code and usage information at. In addition, the block management module 230 generates a new authentication block including the user authentication result performed by the authentication module 240, the certificate usage information and the certificate usage identification code, and converts the new authentication block to the block chain 210 ). In addition, the block management module 230 generates a service execution block including the result of the service executed based on the execution function, the certificate use destination information, and the certificate use destination identification code, and stores it in the block chain 210.

인증 모듈(240)은 난스(nonce)를 생성하여 사용자 단말(100)로 제공하고, 더불어 사용자를 인증을 수행한다. 인증 모듈(240)은 난스를 요청받으면, 난스를 생성하여 사용자 단말(100)로 제공할 수 있다. 이때, 인증 모듈(240)은 인증서가 사용되는 사용처의 식별코드를 확인하고, 이 사용처 식별코드를 포함하는 SC 블록을 블록체인(210)에서 추출한 후, 상기 SC 블록의 트랜잭션 식별정보를 확인하고 나서, 상기 SC 블록의 트랜잭션 식별정보, 현재 시각, 인증서 식별코드 등을 이용하여 난스를 생성할 수 있다. The authentication module 240 generates a nonce, provides it to the user terminal 100, and authenticates the user. Upon receiving a request for a nonce, the authentication module 240 may generate a nonce and provide it to the user terminal 100. At this time, the authentication module 240 checks the identification code of the use place where the certificate is used, extracts the SC block including the use place identification code from the blockchain 210, and then confirms the transaction identification information of the SC block. , It is possible to generate a nonce using transaction identification information of the SC block, a current time, a certificate identification code, and the like.

또한, 인증 모듈(240)은 사용자의 인증 정보를 수신하면 상기 인증정보를 분석하여 사용자 인증을 수행한다. 상기 인증 정보에는 사용자의 전자 서명값, 해시값 및 인증서의 식별코드가 포함될 수 있으며, 이 경우 인증 모듈(240)은 사용자의 전자 서명값을 검증하고, 더불어 해시값을 검증하고, 인증서의 유효성을 검증함으로써, 사용자 인증을 수행한다. 상기 인증 모듈(240)은 사용자의 공개키를 확인하고, 이 공개키를 이용하여 상기 전자 서명값을 복호화한 후, 복호화된 결과에서 난스와 인증서를 확인하고, 이 난스와 인증서가 사용자 단말(100)로 제공한 난스와 인증서와 일치하는지 여부를 1차 인증한다. 인증 모듈(240)은 상기 인증서의 식별코드를 토대로, 블록체인(210)에서 인증서를 추출하여, 인증서의 일치 여부를 검증할 수 있다. 또한, 인증 모듈(240)은 상기 인증서의 식별코드를 확인하고, 상기 사용자 단말(100)로 제공한 난스, 상기 전자 서명값, 상기 서비스 서버(300)의 식별정보, 상기 인증서의 식별코드, SC 블록의 트랜잭션 식별정보, 상기 입력정보 등 중에서 하나 이상을 해시 처리한 해시값을 생성한 후에, 이 해시값과 사용자 단말(100)로부터 수신한 해시값이 일치하는지 여부를 2차 인증할 수 있다. 또한, 인증 모듈(240)은 사용자의 인증서를 확인하고, 이 인증서가 만료되었는지 여부를 추가적으로 인증할 수 있다.In addition, when receiving the authentication information of the user, the authentication module 240 analyzes the authentication information to perform user authentication. The authentication information may include a user's electronic signature value, a hash value, and an identification code of a certificate. In this case, the authentication module 240 verifies the user's electronic signature value, verifies the hash value, and verifies the validity of the certificate. By verifying, user authentication is performed. The authentication module 240 verifies the user's public key, decrypts the electronic signature value using the public key, and then verifies the nonce and the certificate from the decrypted result, and the nonce and the certificate are converted to the user terminal 100 First authentication is made whether or not it matches the nonce and certificate provided by ). The authentication module 240 may extract a certificate from the blockchain 210 based on the identification code of the certificate, and verify whether the certificate matches. In addition, the authentication module 240 checks the identification code of the certificate, and the nonce provided to the user terminal 100, the electronic signature value, the identification information of the service server 300, the identification code of the certificate, SC After generating a hash value obtained by hashing at least one of the transaction identification information of the block, the input information, and the like, it is possible to secondarily authenticate whether the hash value and the hash value received from the user terminal 100 match. In addition, the authentication module 240 may check the user's certificate and additionally authenticate whether the certificate has expired.

인증 모듈(240)은 사용자 인증에 성공하면, 서비스와 관련된 SC 블록의 트랜잭션 식별정보를 확인하고, 상기 트랜잭션 식별정보를 가지는 SC 블록을 블록체인(210)에서 추출한 후, 상기 추출한 SC 블록에 포함된 스마트 컨트랙트의 실행 함수를 실행함으로써, 요구된 서비스를 처리한다. 이때, 인증 모듈(240)은 상기 실행 함수에 사용자가 입력한 입력정보를 대입하여 상기 실행 함수를 구동함으로써, 요구되는 서비스를 실행한다.When user authentication is successful, the authentication module 240 checks the transaction identification information of the SC block related to the service, extracts the SC block having the transaction identification information from the block chain 210, and is included in the extracted SC block. By executing the smart contract's execution function, the requested service is processed. At this time, the authentication module 240 executes the required service by substituting input information input by the user into the execution function and driving the execution function.

정보 제공 모듈(250)은 사용처 정보에 접근할 수 있는 데이터를 사용자에게 제공하고, 사용자 단말로 인증서의 사용처 정보를 제공하는 기능을 수행한다. 구체적으로, 정보 제공 모듈(250)은 인증 모듈(240)에서 난스가 생성되어 제공되면, 실행 예정될 서비스와 관련된 SC 블록에 포함되는 트랜잭션의 식별정보를 확인하고, 상기 SC 블록의 트랜잭션 식별정보를 사용처 정보를 확인할 수 있는 접근 데이터로서 사용자 단말(100)로 제공할 수 있다. 정보 제공 모듈(250)은 서비스가 실행되기 전의 상태에서, 사용자의 단말(100)로부터 SC 블록의 트랜잭션 식별정보를 수신하면, 상기 트랜잭션 식별정보를 가지는 SC 블록을 블록체인(210)에서 추출하고, 이 추출한 SC 블록의 트랜잭션에서 사용처 정보를 확인한다. 아울러, 정보 제공 모듈(250)은 상기 확인한 사용처 정보를 사용자 단말(100)로 전송하여, 인증서가 사용되기 전(즉, 서비스가 실행되기 전)에 인증서의 사용처 정보를 사용자가 인지하게 한다.The information providing module 250 provides data for accessing the usage destination information to a user, and serves to provide the usage destination information of the certificate to the user terminal. Specifically, when the nonce is generated and provided by the authentication module 240, the information providing module 250 checks the identification information of the transaction included in the SC block related to the service to be executed, and checks the transaction identification information of the SC block. As access data for confirming usage information, it may be provided to the user terminal 100. When the information providing module 250 receives the transaction identification information of the SC block from the user's terminal 100 in the state before the service is executed, the SC block having the transaction identification information is extracted from the blockchain 210, Check the usage information in the transaction of the extracted SC block. In addition, the information providing module 250 transmits the verified usage destination information to the user terminal 100 so that the user recognizes the usage destination information of the certificate before the certificate is used (ie, before the service is executed).

또한, 정보 제공 모듈(250)은 블록 관리 모듈(230)에서 인증 블록, 서비스 실행 블록 중 하나 이상을 생성하여 블록체인(210)에 저장하면, 상기 저장한 인증 블록의 트랜잭션 식별정보, 상기 서비스 실행 블록의 트랜잭션 식별정보를 확인하여, 사용자 단말로 제공한다. 이후에, 정보 제공 모듈(250)은 사용자의 단말(100)로부터 상기 인증 블록의 트랜잭션 식별정보, 서비스 실행 블록의 트랜잭션 식별정보 중에서 하나 이상을 수신하면, 해당 트랜잭션 식별정보를 가지는 하나 이상의 트랜잭션을 블록체인(210)에서 추출하여 사용자 단말(100)로 전송함으로써, 인증서가 사용되기 후(즉, 인증완료된 후 또는 서비스가 실행된 후)에 인증서의 사용처 정보를 사용자가 인지하게 한다.In addition, when the information providing module 250 generates one or more of an authentication block and a service execution block in the block management module 230 and stores it in the block chain 210, the transaction identification information of the stored authentication block and the service execution Check the transaction identification information of the block and provide it to the user terminal. Thereafter, when one or more of the transaction identification information of the authentication block and the transaction identification information of the service execution block are received from the user's terminal 100, the information providing module 250 blocks one or more transactions having the corresponding transaction identification information. By extracting from the chain 210 and transmitting it to the user terminal 100, the user can recognize the usage information of the certificate after the certificate is used (ie, after authentication is completed or after the service is executed).

본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.While this specification includes many features, such features should not be construed as limiting the scope or claims of the invention. In addition, features described in separate embodiments herein may be combined and implemented in a single embodiment. Conversely, various features described in a single embodiment in the present specification may be individually implemented in various embodiments, or may be properly combined and implemented.

도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.Although the operations have been described in a specific order in the drawings, it should not be understood that such operations are performed in a specific order as shown, or as a series of consecutive sequences, or that all described operations are performed to obtain a desired result. . Multitasking and parallel processing can be advantageous in certain environments. In addition, it should be understood that classification of various system components in the above-described embodiments does not require such classification in all embodiments. The above-described program components and systems may generally be implemented as a package in a single software product or multiple software products.

상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.The method of the present invention as described above may be implemented as a program and stored in a recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.) in a form that can be read by a computer. This process can be easily performed by a person of ordinary skill in the art to which the present invention pertains, and thus will not be described in detail.

이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.The present invention described above, for those of ordinary skill in the art to which the present invention pertains, various substitutions, modifications and changes are possible within the scope of the technical spirit of the present invention. It is not limited by the drawings.

100 : 사용자 단말 200 : 블록체인 시스템
210 : 블록체인 220 : 스마트 컨트랙트 등록 모듈
230 : 블록 관리 모듈 240 : 인증 모듈
250 : 정보 제공 모듈 300 : 서비스 서버
400 : 네트워크
100: user terminal 200: blockchain system
210: Blockchain 220: Smart contract registration module
230: block management module 240: authentication module
250: information providing module 300: service server
400: network

Claims (12)

블록체인 시스템에서 인증서의 부당 사용을 검증하기 위한 방법으로서,
사용자 단말로부터 발송된 인증 정보를 분석하여 사용자를 인증하는 단계;
상기 사용자 인증에 성공하면, 스마트 컨트랙트가 포함된 제1블록에서 실행 함수를 확인하여, 이 실행 함수를 구동하여 서비스를 실행하는 단계;
상기 스마트 컨트랙트와 관련되는 사용처 정보를 확인하고, 상기 사용처 정보와 상기 서비스 실행 결과를 포함하는 제2블록을 생성하여 블록체인에 저장하는 단계;
상기 서비스에서 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제2블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및
상기 제2블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제2블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 단계를 포함하는 인증서 부당 사용 검증 방법.
As a method to verify the illegal use of certificates in the blockchain system,
Analyzing the authentication information sent from the user terminal to authenticate the user;
If the user authentication is successful, checking an execution function in a first block containing a smart contract, and running the execution function to execute a service;
Checking usage information related to the smart contract, generating a second block including the usage destination information and the service execution result, and storing it in a blockchain;
Transmitting the transaction identification information of the second block to the user terminal as access data for inquiring where the certificate used in the service is used; And
And, when an inquiry request message including the transaction identification information of the second block is received from the user terminal, providing information about the usage destination included in the second block to the user terminal.
제1항에 있어서,
상기 서비스를 실행하는 단계 이전에,
상기 서비스에 이용될 예정인 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제1블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및
상기 제1블록의 트랜잭션 식별정보를 포함하는 메시지를 상기 사용자 단말로부터 수신하면, 상기 서비스가 실행되기 전에 상기 제1블록에 포함된 사용처 정보를 추출하여 상기 사용자 단말로 제공하는 단계를 더 포함하는 인증서 부당 사용 검증 방법.
The method of claim 1,
Before the step of executing the service,
Transmitting the transaction identification information of the first block to the user terminal as access data for inquiring a destination of a certificate to be used for the service; And
Upon receiving a message including the transaction identification information of the first block from the user terminal, the certificate further comprising the step of extracting the usage information included in the first block and providing it to the user terminal before the service is executed. How to verify misuse.
제1항에 있어서,
상기 인증하는 단계 이전에,
난스를 생성하여 상기 사용자 단말로 전송하는 단계를 더 포함하고,
상기 인증하는 단계는,
상기 인증 정보에서 포함된 전자 서명을 상기 사용자의 공개키로 복호화한 후, 상기 복호화한 난스가 상기 생성한 난스와 일치하는지 여부를 인증하는 것을 특징으로 하는 인증서 부당 사용 검증 방법.
The method of claim 1,
Before the step of authenticating,
Further comprising the step of generating a nonce and transmitting it to the user terminal,
The step of authenticating,
After decrypting the electronic signature included in the authentication information with the user's public key, it is verified whether the decrypted nonce matches the generated nonce.
제1항에 있어서,
상기 사용처 정보와 상기 인증 결과를 포함하는 제3블록을 생성하여 상기 블록체인에 저장하는 단계;
상기 인증에 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제3블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 단계; 및
상기 제3블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제3블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 단계를 더 포함하는 인증서 부당 사용 검증 방법.
The method of claim 1,
Generating a third block including the usage information and the authentication result and storing it in the block chain;
Transmitting the transaction identification information of the third block to the user terminal as access data for inquiring the usage destination of the certificate used for the authentication; And
When the inquiry request message including the transaction identification information of the third block is received from the user terminal, the method of verifying unauthorized use of a certificate further comprising the step of providing the usage information included in the third block to the user terminal.
제1항에 있어서,
상기 인증하는 단계 이전에,
서비스 서버로부터 상기 스마트 컨트랙트의 등록을 요청받는 단계; 및
상기 스마트 컨트랙트의 사용처 정보와 상기 스마트 컨트랙트가 포함된 상기 제1블록을 생성하여 상기 블록체인에 저장하는 단계를 더 포함하는 인증서 부당 사용 검증 방법.
The method of claim 1,
Before the step of authenticating,
Receiving a request for registration of the smart contract from a service server; And
Generating the first block including the usage information of the smart contract and the smart contract, and storing the first block in the blockchain.
제1항에 있어서,
상기 서비스를 실행하는 단계는,
사용자 단말로부터 발송한 입력 정보를 확인하고, 상기 입력 정보를 상기 실행 함수에 입력하여, 상기 서비스를 실행하는 것을 특징으로 하는 인증서 부당 사용 검증 방법.
The method of claim 1,
The step of executing the service,
Checking the input information sent from a user terminal, inputting the input information into the execution function, and executing the service.
제1항 내지 제6항 중 어느 한 항에 따른 방법을 실행하고 컴퓨터가 판독 가능한 기록매체에 기록된 컴퓨터 프로그램.A computer program that executes the method according to any one of claims 1 to 6 and is recorded on a computer-readable recording medium. 인증서의 부당 사용을 검증하기 위한 블록체인 시스템에 있어서,
사용자 단말로부터 발송된 인증 정보를 분석하여 사용자를 인증하여 인증에 성공하면, 스마트 컨트랙트가 포함된 제1블록에서 실행 함수를 확인하여 이 실행 함수를 구동하여 서비스를 실행하는 인증 모듈;
상기 스마트 컨트랙트와 관련되는 사용처 정보를 확인하고, 상기 사용처 정보와 상기 서비스 실행 결과를 포함하는 제2블록을 생성하여 블록체인에 저장하는 블록 관리 모듈; 및
상기 서비스에서 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제2블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하는 정보 제공 모듈을 포함하고,
상기 정보 제공 모듈은, 상기 제2블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제2블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 것을 특징으로 하는 블록체인 시스템.
In a blockchain system to verify the illegal use of certificates,
An authentication module that analyzes the authentication information sent from the user terminal to authenticate the user and, if the authentication is successful, checks the execution function in the first block containing the smart contract and executes the execution function to execute the service;
A block management module for checking usage information related to the smart contract, generating a second block including the usage destination information and a result of executing the service, and storing it in a block chain; And
As access data capable of inquiring a usage destination of a certificate used in the service, comprising an information providing module for transmitting transaction identification information of the second block to the user terminal,
The information providing module, when an inquiry request message including transaction identification information of the second block is received from the user terminal, the block characterized in that it provides the usage information included in the second block to the user terminal Chain system.
제8항에 있어서,
상기 정보 제공 모듈은,
상기 서비스가 실행되기 이전에, 상기 서비스에 이용될 예정인 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제1블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하고, 상기 제1블록의 트랜잭션 식별정보를 포함하는 메시지가 상기 사용자 단말로부터 수신되면 상기 서비스가 실행되기 전에 상기 제1블록에 포함된 사용처 정보를 추출하여 상기 사용자 단말로 제공하는 것을 특징으로 하는 블록체인 시스템.
The method of claim 8,
The information providing module,
Before the service is executed, as access data for inquiring the destination of the certificate to be used for the service, the transaction identification information of the first block is transmitted to the user terminal, and the transaction identification information of the first block When a message including a message is received from the user terminal, before the service is executed, the usage information included in the first block is extracted and provided to the user terminal.
제8항에 있어서,
상기 인증 모듈은, 난스를 생성하여 상기 사용자 단말로 전송하고, 상기 인증 정보에서 포함된 전자 서명을 상기 사용자의 공개키로 복호화한 후, 상기 복호화한 난스가 상기 생성한 난스와 일치하는지 여부를 인증하는 것을 특징으로 하는 블록체인 시스템.
The method of claim 8,
The authentication module generates and transmits the nonce to the user terminal, decrypts the electronic signature included in the authentication information with the user's public key, and then authenticates whether the decrypted nonce matches the generated nonce. Blockchain system, characterized in that.
제8항에 있어서,
상기 블록 관리 모듈은,
상기 사용처 정보와 상기 인증 결과를 포함하는 제3블록을 생성하여 상기 블록체인에 저장하고,
상기 정보 제공 모듈은,
상기 인증에 사용된 인증서의 사용처를 조회할 수 있는 접근 데이터로서, 상기 제3블록의 트랜잭션 식별정보를 상기 사용자 단말로 전송하고, 상기 제3블록의 트랜잭션 식별정보를 포함하는 조회 요청 메시지가 상기 사용자 단말로부터 수신되는 경우, 상기 제3블록에 포함된 사용처 정보를 상기 사용자 단말로 제공하는 것을 특징으로 하는 블록체인 시스템.
The method of claim 8,
The block management module,
A third block including the usage information and the authentication result is created and stored in the blockchain,
The information providing module,
As access data for inquiring the use of the certificate used for the authentication, the transaction identification information of the third block is transmitted to the user terminal, and an inquiry request message including the transaction identification information of the third block is sent to the user. When received from a terminal, a block chain system, characterized in that providing the usage information included in the third block to the user terminal.
제8항에 있어서,
서비스 서버로부터 상기 스마트 컨트랙트의 등록을 요청받아, 상기 스마트 컨트랙트의 사용처 정보와 상기 스마트 컨트랙트가 포함된 상기 제1블록을 생성하여 상기 블록체인에 저장하는 스마트 컨트랙트 등록 모듈을 더 포함하는 블록체인 시스템.
The method of claim 8,
Block chain system further comprising a smart contract registration module for receiving the registration of the smart contract from a service server, generating the first block including the usage information of the smart contract and the smart contract, and storing it in the block chain.
KR1020190139318A 2019-11-04 2019-11-04 Method for verifying certification improper use in block environment and system therefor KR20210053567A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190139318A KR20210053567A (en) 2019-11-04 2019-11-04 Method for verifying certification improper use in block environment and system therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190139318A KR20210053567A (en) 2019-11-04 2019-11-04 Method for verifying certification improper use in block environment and system therefor

Publications (1)

Publication Number Publication Date
KR20210053567A true KR20210053567A (en) 2021-05-12

Family

ID=75918990

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190139318A KR20210053567A (en) 2019-11-04 2019-11-04 Method for verifying certification improper use in block environment and system therefor

Country Status (1)

Country Link
KR (1) KR20210053567A (en)

Similar Documents

Publication Publication Date Title
KR102052036B1 (en) Method for obtaining data through searching and merging distributed data stored using blockchain
KR102220087B1 (en) Method, apparatus, and system for processing two-dimensional barcodes
US11838425B2 (en) Systems and methods for maintaining decentralized digital identities
US20230246842A1 (en) Compact recordation protocol
KR101829729B1 (en) Method for certifying a user by using mobile id through blockchain and merkle tree structure related thereto, and terminal and server using the same
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
KR101883156B1 (en) System and method for authentication, user terminal, authentication server and service server for executing the same
CN108985100B (en) Block chain-based element security certification method, device, equipment and medium
JP2021536698A (en) Method and device for managing user identification authentication data
KR102177848B1 (en) Method and system for verifying an access request
EP3008852B1 (en) System and method for encryption
KR20180079806A (en) Method for authenticating a user without a face-to-face contact by using mobile id based on blockchain and merkle tree structure related thereto, and terminal and server using the same
KR101858653B1 (en) Method for certifying a user by using mobile id through blockchain database and merkle tree structure related thereto, and terminal and server using the same
CN112733178B (en) Cross-chain trust method, device, equipment and medium based on digital certificate authentication
CN114666168B (en) Decentralized identity certificate verification method and device, and electronic equipment
US20230232222A1 (en) User terminal, authentication terminal, registration terminal, management system and program
KR101767534B1 (en) Method for providing identity verification using card base on near field communication, card, verification terminal, verification support server and identity verification server using the same
KR102333811B1 (en) System and method for processing card payment based on block-chain
KR20200000978A (en) Data security method and system
KR20210053567A (en) Method for verifying certification improper use in block environment and system therefor
KR101619282B1 (en) Cloud system for manging combined password and control method thereof
CN110351302B (en) Bank account login method, equipment and storage medium