KR20210004842A - Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them - Google Patents

Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them Download PDF

Info

Publication number
KR20210004842A
KR20210004842A KR1020200076078A KR20200076078A KR20210004842A KR 20210004842 A KR20210004842 A KR 20210004842A KR 1020200076078 A KR1020200076078 A KR 1020200076078A KR 20200076078 A KR20200076078 A KR 20200076078A KR 20210004842 A KR20210004842 A KR 20210004842A
Authority
KR
South Korea
Prior art keywords
recipient
virtual asset
sender
authentication server
signature value
Prior art date
Application number
KR1020200076078A
Other languages
Korean (ko)
Other versions
KR102348232B1 (en
Inventor
어준선
송주한
Original Assignee
주식회사 코인플러그
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코인플러그 filed Critical 주식회사 코인플러그
Priority to PCT/KR2020/008635 priority Critical patent/WO2021002692A1/en
Priority to US16/919,553 priority patent/US10944574B2/en
Publication of KR20210004842A publication Critical patent/KR20210004842A/en
Priority to KR1020210062172A priority patent/KR20210058784A/en
Application granted granted Critical
Publication of KR102348232B1 publication Critical patent/KR102348232B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • 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/08Payment architectures
    • G06Q20/16Payments settled via telecommunication systems
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices

Landscapes

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

Abstract

The present invention relates to a method for providing a virtual asset service based on a decentralized identifier which allows a virtual asset service provider to obtain and store information on users who trade virtual assets so as to prevent money laundering through virtual asset transactions, and a virtual asset service providing server using the same.

Description

탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버{METHOD FOR PROVIDING VIRTUAL ASSET SERVICE BASED ON DICENTRALIZED IDENTITY AND VIRTUAL ASSET SERVICE PROVIDING SERVER USING THEM}Decentralized ID-based virtual asset service provision method and virtual asset service provision server using it {METHOD FOR PROVIDING VIRTUAL ASSET SERVICE BASED ON DICENTRALIZED IDENTITY AND VIRTUAL ASSET SERVICE PROVIDING SERVER USING THEM}

본 발명은 가상 자산 서비스를 제공하는 방법 및 이를 이용한 가상 자산 서비스 제공 서버에 관한 것으로, 보다 상세하게는, 가상 자산을 이용하여 자금을 세탁하는 것을 방지하기 위한 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법 및 이를 이용한 가상 자산 서비스 제공 서버에 관한 것이다.The present invention relates to a method for providing a virtual asset service and a server for providing a virtual asset service using the same, and more particularly, to provide a virtual asset service based on a decentralized ID to prevent money laundering using a virtual asset. It relates to a method and a virtual asset service providing server using the same.

암호화폐인 가상 자산(virtual asset)의 일종인 비트코인은 중앙은행에서 발행하는 법정화폐의 정의를 뒤흔들며 시장에서 높은 수요를 나타냈을 뿐만 아니라, 기존의 서비스들에도 블록체인이 적용되는 파급효과를 가져왔다.Bitcoin, a type of cryptocurrency, virtual asset, shakes the definition of fiat currency issued by the central bank, showing high demand in the market, and has a ripple effect that blockchain is applied to existing services. come.

비트코인은 블록체인이라고 불리는 분산원장 기술을 통해, 암호화 기술과 네트워크 기술 들을 결합해 비트코인의 발행과 거래 내역을 P2P 분산 네트워크 상에서 다수의 컴퓨터가 동시에 기록하고 검증한다.Bitcoin is a distributed ledger technology called blockchain that combines encryption technology and network technologies to simultaneously record and verify Bitcoin issuance and transaction details on a P2P distributed network.

비트코인의 블록체인 기술에의 적용 이후, 블록체인 기술을 이용하는 이더리움, 리플 등과 같은 다양한 가상 자산이 발행되었다.After the application of Bitcoin to the blockchain technology, various virtual assets such as Ethereum and Ripple that use blockchain technology have been issued.

그리고, 특정 가상 자산을 법정화폐 또는 다른 가상 자산과 거래를 할 수 있도록 하기 위한 마켓 플레이스인 가상 자산 거래소가 생성되었으며, 전세계적으로 다양한 가상 자산 거래소를 통해 다양한 가상 자산들이 거래되고 있다.In addition, a virtual asset exchange, a marketplace for transacting specific virtual assets with fiat currency or other virtual assets, has been created, and various virtual assets are traded through various virtual asset exchanges worldwide.

한편, 블록체인을 이용하는 가상 자산의 특성상 사용자의 가상 자산 어드레스를 이용하여 실제 사용자를 특정하기가 어렵다.On the other hand, it is difficult to specify a real user using the user's virtual asset address due to the nature of the virtual asset using the blockchain.

따라서, 이러한 실제 사용자를 특정하기 어렵다는 특성을 이용하여, 가상 자산의 거래를 통해 자금을 세탁하는 문제점이 발생하고 있다. 즉, 불법적 범죄수익을 가상 자산의 거래를 통해 정당한 거래로 인한 수익으로 보이도록 출처나 소유 관계를 은폐하고 있다.Accordingly, there is a problem of laundering money through a transaction of a virtual asset by using the characteristic that it is difficult to specify such an actual user. In other words, the source or ownership relationship is concealed so that illegal criminal proceeds can be seen as profits from legitimate transactions through virtual asset transactions.

하지만, 가상 자산의 거래를 이용하여 불법적인 자금의 세탁하는 행위를 효과적으로 방지할 수 있는 방법이 없는 것이 사실이다.However, it is true that there is no way to effectively prevent illegal money laundering by using virtual asset transactions.

따라서, 본 발명자는 가상 자산 거래를 통해 자금을 세탁하는 것을 효과적으로 방지할 수 있도록 하는 방안을 제안하고자 한다.Accordingly, the inventors of the present invention propose a method to effectively prevent money laundering through virtual asset transactions.

본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.An object of the present invention is to solve all the above-described problems.

또한, 본 발명은 가상 자산의 거래를 통해 자금을 세탁하는 것을 방지하도록 하는 것을 다른 목적으로 한다.In addition, another object of the present invention is to prevent money laundering through the transaction of virtual assets.

또한, 본 발명은 가상 자산의 거래를 통해 자금을 세탁하는 사용자를 용이하게 확인할 수 있도록 하는 것을 또 다른 목적으로 한다.In addition, another object of the present invention is to make it possible to easily identify a user laundering money through a transaction of a virtual asset.

또한, 본 발명은 가상 자산의 거래를 하는 사용자들의 프라이버시를 해치지 않고 가상 자산의 거래를 하는 사용자들의 정보를 획득 및 보관할 수 있도록 하는 것을 또 다른 목적으로 한다.In addition, another object of the present invention is to enable the acquisition and storage of information of users who trade virtual assets without compromising the privacy of users who trade virtual assets.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 탈중앙화 아이디(decentralized identifier, DID) 기반으로 가상 자산 서비스를 제공하는 방법에 있어서, (a) 사용자들 각각에 대응되는 KYC(known your customer) 정보의 인증 결과에 따라 상기 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태에서, 송신자 단말 - 상기 송신자 단말은 가상 자산을 전송하고자 하는 송신자가 소유한 단말이며, 상기 송신자에 대응되는 송신자 가상 자산 어드레스는 상기 화이트리스트에 등록된 상태임 - 로부터 상기 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청이 획득되면, 가상 자산 서비스 제공 서버가, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있는지를 확인하며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있을 경우에는, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있지 않을 경우에는, (i) 상기 송신자 단말로 하여금 수신자 단말 - 상기 수신자 단말은 상기 수신자가 소유한 단말임- 로 수신자 KYC 등록을 요청하여 상기 수신자 단말이 인증 서버를 통해 수신자 KYC를 인증한 수신자 VC(verifiable credential)를 획득하도록 하고, 상기 수신자 단말로부터 수신자 DID와, 상기 수신자 VC를 수신자 프라이빗 키로 서명한 수신자 서명값을 획득하며, 상기 수신자 DID와 상기 수신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제1-1 프로세스를 수행하거나, (ii) 상기 송신자 단말로 하여금 상기 수신자 단말로 상기 수신자 KYC 등록을 요청하여 상기 수신자 단말이 상기 인증 서버를 통해 상기 수신자 KYC를 인증한 상기 수신자 VC를 획득하며, 상기 수신자 VC를 상기 수신자 프라이빗 키로 서명한 상기 수신자 서명값을 데이터 허브에 등록하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID를 획득하며, 상기 수신자 DID를 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제1-2 프로세스를 수행하는 단계; 및 (b) 상기 가상 자산 서비스 제공 서버가, (i) 상기 제1-1 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 블록체인 네트워크로부터 상시 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득하거나 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제2-1 프로세스를 수행하거나, (ii) 상기 제1-2 프로세스에 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 상기 데이터 허브로부터 상기 수신자 서명값을 획득하고, 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제2-2 프로세스를 수행하며, 상기 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하면, 상기 제1 수신자 가상 자산 어드레스를 상기 화이트리스트에 등록하며, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주는 단계; 를 포함하는 방법이 제공된다.According to an embodiment of the present invention for achieving the above object, in a method of providing a virtual asset service based on a decentralized identifier (DID), (a) KYC (known your customer) corresponding to each user ) In a state in which the virtual asset addresses of each of the users are registered and managed as a whitelist according to the authentication result of the information, the sender terminal is a terminal owned by the sender who wants to transmit the virtual asset, and corresponds to the sender. When a virtual asset transmission request including a first recipient virtual asset address corresponding to a recipient to receive the virtual asset from is obtained, the virtual asset service providing server is in a state registered in the whitelist. It is checked whether the first recipient virtual asset address is registered in the whitelist, and if the first recipient virtual asset address is registered in the whitelist, the virtual asset is transferred from the sender virtual asset address to the first When the first recipient virtual asset address is not registered in the whitelist, (i) the sender terminal causes the recipient terminal-the recipient terminal is a terminal owned by the recipient. -Recipient who requested the recipient KYC registration with the recipient terminal to obtain the recipient VC (verifiable credential) that authenticated the recipient KYC through an authentication server, and signed the recipient DID and the recipient VC with the recipient private key from the recipient terminal Acquire a signature value and perform the 1-1 process of transmitting the recipient DID and the recipient signature value to the virtual asset service providing server, or (ii) allow the sender terminal to register the recipient KYC with the recipient terminal By requesting, and the recipient terminal obtains the recipient VC that authenticates the recipient KYC through the authentication server, The first to register the recipient signature value signed by the recipient VC with the recipient private key in a data hub, obtain the recipient DID from the recipient terminal, and transmit the recipient DID to the virtual asset service providing server Performing two processes; And (b) the virtual asset service providing server, (i) using the recipient DID obtained from the recipient terminal by the 1-1 process, a recipient public key corresponding to the recipient at all times from the blockchain network and a second Obtain a recipient virtual asset address or cause a resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and the recipient public key and the second recipient virtual asset Perform a 2-1 process of verifying the receiver signature value and the first receiver virtual asset address using an address, or (ii) using the receiver DID obtained from the receiver terminal in the 1-2 process The receiver's signature value is obtained from the data hub, and the receiver public key and the second receiver virtual asset address corresponding to the receiver are obtained from the blockchain network using the receiver DID, or the resolver server causes the receiver The recipient public key and the second recipient virtual asset address are obtained from the blockchain network using a DID, and the recipient signature value and the first recipient are used using the recipient public key and the second recipient virtual asset address. Perform a 2-2 process of verifying the virtual asset address, the recipient signature value is verified, and if the first recipient virtual asset address and the second recipient virtual asset address match, the first recipient virtual asset address Registering in the whitelist and transmitting the virtual asset from the sender virtual asset address to the first recipient virtual asset address; A method comprising a is provided.

상기에서, 상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 (b) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증할 수 있다.In the above, the recipient VC includes the recipient KYC, an authentication server signature value that signed the recipient KYC with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server, and in step (b) , The virtual asset service providing server obtains the recipient VC by decrypting the recipient signature value using the recipient public key, and the authentication from the blockchain network using the authentication server DID included in the recipient VC Obtain the authentication server public key of the server or have the resolver server obtain the authentication server public key from the blockchain network using the authentication server DID, and decrypt the recipient VC using the authentication server public key The recipient KYC can be verified.

상기에서, 상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득할 수 있다.In the above, the virtual asset service providing server causes the resolver server to obtain an authentication server DID document corresponding to the authentication server from the blockchain network using the authentication server DID, and in the authentication server DID document, the You can obtain the authentication server public key.

상기 (a) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 송신자 단말로 논스를 전송하며, (i) 상기 제1-1 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 VC에 상기 논스를 추가하여 상기 수신자 서명값을 생성하도록 하거나, (ii) 상기 제1-2 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 프라이빗 키를 이용하여 상기 논스를 서명한 논스 서명값을 생성하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID와 상기 논스 서명값을 획득하여 상기 가상 자산 서비스 제공 서버로 전송하도록 하며, 상기 (b) 단계에서, 상기 가상 자산 서비스 제공 서버는, (i) 상기 제2-1 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 논스를 획득하여 상기 수신자 서명값을 검증하거나, (ii) 상기 제2-2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 논스 서명값을 복호화하여 상기 논스 서명값을 검증할 수 있다.In the step (a), the virtual asset service providing server transmits a nonce to the sender terminal, and (i) by the 1-1 process, the sender terminal transmits the nonce to the receiver terminal The receiver terminal generates the receiver signature value by adding the nonce to the receiver VC, or (ii) the sender terminal causes the sender terminal to transmit the nonce to the receiver terminal and the receiver The terminal generates a nonce signature value in which the nonce is signed using the recipient private key, obtains the recipient DID and the nonce signature value from the recipient terminal and transmits it to the virtual asset service providing server, and the ( In step b), the virtual asset service providing server, (i) in the 2-1 process, decrypts the receiver signature value using the receiver public key to obtain the nonce to verify the receiver signature value, or , (ii) In the 2-2 process, the nonce signature value may be decrypted using the recipient public key to verify the nonce signature value.

상기 (b) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 상기 수신자 DID 문서에서 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득할 수 있다.In the step (b), the virtual asset service providing server causes the resolver server to obtain a recipient DID document corresponding to the recipient from the blockchain network using the recipient DID, and the recipient DID document It is possible to obtain a recipient public key and the second recipient virtual asset address.

상기 (a) 단계 이전에, (a01) 상기 송신자 단말로부터 사용자 등록 요청이 획득되면, 상기 가상 자산 서비스 제공 서버가, 상기 송신자 단말로 논스를 포함하는 송신자 KYC 등록을 요청하여, (i) 상기 송신자 단말로 하여금 상기 인증 서버를 통해 송신자 KYC를 인증한 송신자 VC를 획득하도록 하고, 송신자 DID와, 상기 논스와 상기 송신자 VC를 송신자 프라이빗 키로 서명한 송신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제3-1 프로세스를 수행하거나, (ii) 상기 송신자 단말로 하여금 상기 인증 서버를 통해 상기 송신자 KYC를 인증한 상기 송신자 VC를 획득하고, 상기 송신자 VC를 상기 송신자 프라이빗 키로 서명한 상기 송신자 서명값을 상기 데이터 허브에 등록하도록 하고, 상기 송신자 DID와, 상기 논스를 상기 송신자 프라이빗 키로 서명한 논스 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제3-2 프로세스를 수행하는 단계; 및Before the step (a), (a01) when a user registration request is obtained from the sender terminal, the virtual asset service providing server requests the sender terminal to register a sender KYC including nonce, and (i) the sender Allowing the terminal to obtain a sender VC that has authenticated the sender KYC through the authentication server, and transmits the sender DID and a sender signature value signed by the sender private key with the nonce and the sender VC to the virtual asset service providing server Perform the 3-1 process, or (ii) allow the sender terminal to obtain the sender VC that authenticated the sender KYC through the authentication server, and the sender signature value that signed the sender VC with the sender private key. Performing a 3-2 process of registering with the data hub and transmitting the sender DID and a nonce signature value signed with the sender private key to the virtual asset service providing server; And

(a02) 상기 가상 자산 서비스 제공 서버가, (i) 상기 제3-1 프로세스에 의해 상기 송신자 단말로부터 획득되는 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자에 대응되는 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 송신자 가상 자산 어드레스를 획득하도록 하며, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 검증하는 제4-1 프로세스를 수행하거나, (ii) 상기 제3-2 프로세스에 의해 상기 송신자 단말로부터 획득되는 상기 송신자 DID를 이용하여 상기 데이터 허브로부터 상기 송신자 서명값을 획득하고, 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 송신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 송신자 가상 자산 어드레스를 획득하도록 하며, 상기 송신자 퍼블릭 키를 이용하여 상기 논스 서명값 및 상기 송신자 서명값을 검증하는 제4-2 프로세스를 수행하며, 상기 송신자 서명값이 검증되거나 상기 논스 서명값과 상기 송신자 서명값이 검증되면, 상기 송신자 가상 어드레스를 상기 화이트리스트에 등록하는 단계; 를 더 포함할 수 있다.(a02) The virtual asset service providing server includes: (i) a sender public key corresponding to the sender from the blockchain network and a sender virtual using the sender DID obtained from the sender terminal by the 3-1 process. Obtaining an asset address or causing the resolver server to obtain the sender public key and the sender virtual asset address from the blockchain network using the sender DID, and verify the sender signature value using the sender public key. Perform a 4-1 process, or (ii) obtain the sender signature value from the data hub using the sender DID obtained from the sender terminal by the 3-2 process, and use the sender DID Obtaining the sender public key and the sender virtual asset address from the blockchain network, or causing the resolver server to obtain the sender public key and the sender virtual asset address from the blockchain network using the sender DID, the Performs a 4-2 process of verifying the nonce signature value and the sender signature value using a sender public key, and when the sender signature value is verified or the nonce signature value and the sender signature value are verified, the sender virtual Registering an address in the white list; It may further include.

상기에서, 상기 송신자 VC는 상기 송신자 KYC, 상기 송신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 (a02) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 복호화하여 상기 송신자 VC를 획득하며, 상기 송신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 송신자 VC를 복호화하여 상기 송신자 KYC를 검증함으로써 상기 송신자 서명값을 검증할 수 있다.In the above, the sender VC includes the sender KYC, an authentication server signature value in which the sender KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server, and in step (a02) , The virtual asset service providing server obtains the sender VC by decrypting the sender signature value using the sender public key, and the authentication from the blockchain network using the authentication server DID included in the sender VC Obtain the authentication server public key of the server or have the resolver server obtain the authentication server public key from the blockchain network using the authentication server DID, and decrypt the sender VC using the authentication server public key By verifying the sender KYC, the sender's signature value can be verified.

상기에서, 상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득할 수 있다.In the above, the virtual asset service providing server causes the resolver server to obtain an authentication server DID document corresponding to the authentication server from the blockchain network using the authentication server DID, and in the authentication server DID document, the You can obtain the authentication server public key.

또한, 본 발명의 일 실시예에 따르면, 탈중앙화 아이디(decentralized identifier, DID) 기반으로 가상 자산 서비스를 제공하는 방법에 있어서, (a) 사용자들 각각에 대응되는 KYC(known your customer) 정보의 인증 결과에 따라 상기 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태에서, 송신자 단말 - 상기 송신자 단말은 가상 자산을 전송하고자 하는 송신자가 소유한 단말이며, 상기 송신자에 대응되는 송신자 가상 자산 어드레스는 상기 화이트리스트에 등록된 상태임 - 로부터 상기 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청이 획득되면, 가상 자산 서비스 제공 서버가, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있는지를 확인하며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있을 경우에는, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있지 않을 경우에는, 상기 송신자 단말로 하여금 수신자 단말 - 상기 수신자 단말은 상기 수신자가 소유한 단말임- 로 수신자 KYC 등록을 요청하도록 하며, 상기 수신자 KYC 등록 요청에 대응하여 상기 수신자 단말로부터 수신자 등록 요청이 획득되면, 상기 수신자 단말로 논스를 포함하는 수신자 KYC 요청 정보를 전송하여 (i) 상기 수신자 단말로 하여금 인증 서버를 통해 수신자 KYC를 인증한 수신자 VC를 획득하도록 하고, 수신자 DID와, 상기 수신자 VC와 상기 논스를 수신자 프라이빗 키로 서명한 제1 수신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제5-1 프로세스를 수행하거나, (ii) 상기 수신자 단말로 하여금 상기 인증 서버를 통해 상기 수신자 KYC를 인증한 상기 수신자 VC를 획득하고 상기 수신자 VC를 상기 수신자 프라이빗 키로 서명한 제2 수신자 서명값을 데이터 허브로 등록하고, 상기 수신자 DID와, 상기 논스를 상기 수신자 프라이빗 키로 서명한 논스 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제5-2 프로세스를 수행하는 단계; 및 (b) 상기 가상 자산 서비스 제공 서버가, (i) 상기 제5-1 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득하거나 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 제1 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제6-1 프로세스를 수행하거나, (ii) 상기 제5-2 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 상기 데이터 허브로부터 상기 제2 수신자 서명값을 획득하고, 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 논스 서명값, 상기 수신자 서명값 및 상기 제1 수신자 가상 자산 어드레스를 검증하는 제6-2 프로세스를 수행하며, 상기 제1 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하거나, 상기 논스 서명값과 상기 제2 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하면, 상기 제1 수신자 가상 자산 어드레스를 상기 화이트리스트에 등록하며, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주는 단계; 를 포함하는 방법이 제공된다.In addition, according to an embodiment of the present invention, in a method of providing a virtual asset service based on a decentralized identifier (DID), (a) authentication of known your customer (KYC) information corresponding to each user In a state in which virtual asset addresses of each of the users are registered and managed in a white list according to the result, the sender terminal-the sender terminal is a terminal owned by the sender who wants to transmit the virtual asset, and the sender virtual asset corresponding to the sender The address is registered in the whitelist-when a virtual asset transmission request including a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset from is obtained, the virtual asset service providing server, the first recipient It is checked whether a virtual asset address is registered in the whitelist, and if the first recipient virtual asset address is registered in the whitelist, the virtual asset is transferred from the sender virtual asset address to the first recipient virtual asset address. If the first recipient virtual asset address is not registered in the whitelist, the sender terminal asks the recipient terminal-the recipient terminal is a terminal owned by the recipient-and requests the recipient's KYC registration. When a receiver registration request is obtained from the receiver terminal in response to the receiver KYC registration request, the receiver KYC request information including nonce is transmitted to the receiver terminal, and (i) the receiver terminal allows the receiver through the authentication server. Perform a 5-1 process of obtaining a recipient VC that authenticates KYC, and transmitting the recipient DID, the recipient VC and the first recipient signature value signed with the recipient private key with the recipient private key, to the virtual asset service providing server Or, (ii) the recipient terminal obtains the recipient VC that authenticates the recipient KYC through the authentication server, and the recipient A fifth to register a second recipient signature value signed by the recipient private key with the VC as a data hub, and transmit the recipient DID and the nonce signature value signed with the recipient private key to the virtual asset service providing server -2 performing the process; And (b) the virtual asset service providing server, (i) using the receiver DID obtained from the receiver terminal by the 5-1 process, a receiver public key corresponding to the receiver from the blockchain network and a second Obtain a recipient virtual asset address or cause a resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and the recipient public key and the second recipient virtual asset Perform a 6-1 process of verifying the first receiver signature value and the first receiver virtual asset address using an address, or (ii) the receiver DID obtained from the receiver terminal by the 5-2 process Using the data hub to obtain the second recipient signature value, and using the recipient DID to obtain the recipient public key and the second recipient virtual asset address from the blockchain network, or the resolver server to cause the recipient Obtaining the recipient public key and the second recipient virtual asset address from the blockchain network using a DID, and the nonce signature value and the recipient signature value using the recipient public key and the second recipient virtual asset address And performing a 6-2 process of verifying the first recipient virtual asset address, wherein the first recipient signature value is verified, the first recipient virtual asset address and the second recipient virtual asset address match, or the The nonce signature value and the second recipient signature value are verified, and if the first recipient virtual asset address and the second recipient virtual asset address match, the first recipient virtual asset address is registered in the whitelist, and the virtual Transmitting an asset from the sender virtual asset address to the first recipient virtual asset address; A method comprising a is provided.

상기에서, 상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 (b) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 수신자 퍼블릭 키를 이용하여 상기 제1 수신자 서명값을 복호화하거나 상기 제2 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증할 수 있다.In the above, the recipient VC includes the recipient KYC, an authentication server signature value that signed the recipient KYC with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server, and in step (b) , The virtual asset service providing server obtains the receiver VC by decrypting the first receiver signature value or decrypts the second receiver signature value using the receiver public key, and the authentication server included in the receiver VC Obtaining the authentication server public key of the authentication server from the blockchain network using a DID or causing the resolver server to obtain the authentication server public key from the blockchain network using the authentication server DID, and the authentication server The recipient VC may be decrypted using a public key to verify the recipient KYC.

또한, 본 발명의 일 실시예에 따르면, 탈중앙화 아이디(decentralized identifier, DID) 기반으로 가상 자산 서비스를 제공하는 가상 자산 서비스 제공 서버에 있어서, DID 기반으로 가상 자산 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리; 및 상기 메모리에 저장된 상기 인스트럭션들에 따라 상기 DID 기반으로 상기 가상 자산 서비스를 제공하기 위한 동작을 수행하는 프로세서; 를 포함하되, 상기 프로세서는, (I) 사용자들 각각에 대응되는 KYC(known your customer) 정보의 인증 결과에 따라 상기 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태에서, 송신자 단말 - 상기 송신자 단말은 가상 자산을 전송하고자 하는 송신자가 소유한 단말이며, 상기 송신자에 대응되는 송신자 가상 자산 어드레스는 상기 화이트리스트에 등록된 상태임 - 로부터 상기 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청이 획득되면, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있는지를 확인하며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있을 경우에는, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있지 않을 경우에는, (i) 상기 송신자 단말로 하여금 수신자 단말 - 상기 수신자 단말은 상기 수신자가 소유한 단말임- 로 수신자 KYC 등록을 요청하여 상기 수신자 단말이 인증 서버를 통해 수신자 KYC를 인증한 수신자 VC(verifiable credential)를 획득하도록 하고, 상기 수신자 단말로부터 수신자 DID와, 상기 수신자 VC를 수신자 프라이빗 키로 서명한 수신자 서명값을 획득하며, 상기 수신자 DID와 상기 수신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제1-1 프로세스를 수행하거나, (ii) 상기 송신자 단말로 하여금 상기 수신자 단말로 상기 수신자 KYC 등록을 요청하여 상기 수신자 단말이 상기 인증 서버를 통해 상기 수신자 KYC를 인증한 상기 수신자 VC를 획득하며, 상기 수신자 VC를 상기 수신자 프라이빗 키로 서명한 상기 수신자 서명값을 데이터 허브에 등록하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID를 획득하며, 상기 수신자 DID를 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제1-2 프로세스를 수행하는 제1 프로세스, 및 (II) (i) 상기 제1-1 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 블록체인 네트워크로부터 상시 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득하거나 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제2-1 프로세스를 수행하거나, (ii) 상기 제1-2 프로세스에 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 상기 데이터 허브로부터 상기 수신자 서명값을 획득하고, 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제2-2 프로세스를 수행하며, 상기 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하면, 상기 제1 수신자 가상 자산 어드레스를 상기 화이트리스트에 등록하며, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주는 제2 프로세스를 수행하는 가상 자산 서비스 제공 서버가 제공된다.In addition, according to an embodiment of the present invention, in a virtual asset service providing server that provides a virtual asset service based on a decentralized identifier (DID), a memory in which instructions for providing a virtual asset service based on DID are stored. ; And a processor that performs an operation for providing the virtual asset service based on the DID according to the instructions stored in the memory. Including, wherein the processor, (I) in a state in which the virtual asset addresses of each of the users are registered and managed in a white list according to the authentication result of KYC (known your customer) information corresponding to each of the users, the sender terminal -The sender terminal is a terminal owned by the sender who wants to transmit the virtual asset, and the sender virtual asset address corresponding to the sender is registered in the whitelist.- The first corresponding to the receiver to receive the virtual asset from When a virtual asset transmission request including a recipient virtual asset address is obtained, it is checked whether the first recipient virtual asset address is registered in the white list, and if the first recipient virtual asset address is registered in the white list The virtual asset is transmitted from the sender virtual asset address to the first recipient virtual asset address, and if the first recipient virtual asset address is not registered in the whitelist, (i) to the sender terminal The recipient terminal-the recipient terminal is a terminal owned by the recipient-and requests the recipient's KYC registration so that the recipient terminal obtains a recipient VC (verifiable credential) that authenticates the recipient KYC through an authentication server, and the recipient terminal From the receiver DID and the receiver VC to obtain a receiver signature value signed with a receiver private key, and perform a 1-1 process of transmitting the receiver DID and the receiver signature value to the virtual asset service providing server, or ( ii) The sender terminal requests the receiver terminal to register the receiver KYC, and the receiver terminal obtains the receiver VC that authenticates the receiver KYC through the authentication server, and signs the receiver VC with the receiver private key. Register the recipient's signature value in the data hub, obtain the recipient DID from the recipient terminal, and obtain the recipient DID A first process for performing a 1-2 process to transmit to the virtual asset service providing server, and (II) (i) a block using the receiver DID obtained from the receiver terminal by the 1-1 process Obtaining the recipient public key and the second recipient virtual asset address corresponding to the recipient from the chain network or using the recipient DID to obtain the recipient public key and the second recipient virtual asset address from the blockchain network by a resolver server And performing a 2-1 process of verifying the recipient signature value and the first recipient virtual asset address using the recipient public key and the second recipient virtual asset address, or (ii) the first recipient In the process, the receiver's signature value is obtained from the data hub using the receiver DID obtained from the receiver terminal, and the receiver public key corresponding to the receiver from the blockchain network and the second using the receiver DID Obtain a recipient virtual asset address or cause the resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and the recipient public key and the second recipient virtual Perform a 2-2 process of verifying the recipient signature value and the first recipient virtual asset address using the asset address, the recipient signature value is verified, the first recipient virtual asset address and the second recipient virtual If the asset addresses match, register the first recipient virtual asset address in the whitelist, and perform a second process of transmitting the virtual asset from the sender virtual asset address to the first recipient virtual asset address A service providing server is provided.

상기에서, 상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 프로세서는, 상기 제2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증할 수 있다.In the above, the recipient VC includes the recipient KYC, an authentication server signature value that signed the recipient KYC with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server, and the processor In process 2, the recipient's signature value is decrypted using the recipient public key to obtain the recipient VC, and the authentication server public of the authentication server from the blockchain network using the authentication server DID included in the recipient VC. Obtain a key or have the resolver server obtain the authentication server public key from the blockchain network using the authentication server DID, and verify the recipient KYC by decrypting the recipient VC using the authentication server public key can do.

상기 프로세서는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득할 수 있다.The processor causes the resolver server to obtain an authentication server DID document corresponding to the authentication server from the blockchain network using the authentication server DID, and to obtain the authentication server public key from the authentication server DID document. I can.

상기 프로세서는, 상기 제1 프로세스에서, 상기 송신자 단말로 논스를 전송하며, (i) 상기 제1-1 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 VC에 상기 논스를 추가하여 상기 수신자 서명값을 생성하도록 하거나, (ii) 상기 제1-2 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 프라이빗 키를 이용하여 상기 논스를 서명한 논스 서명값을 생성하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID와 상기 논스 서명값을 획득하여 상기 가상 자산 서비스 제공 서버로 전송하도록 하며, 상기 제2 프로세스에서, (i) 상기 제2-1 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 논스를 획득하여 상기 수신자 서명값을 검증하거나, (ii) 상기 제2-2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 논스 서명값을 복호화하여 상기 논스 서명값을 검증할 수 있다.The processor, in the first process, transmits a nonce to the sender terminal, and (i) by the 1-1 process, the sender terminal transmits the nonce to the receiver terminal, so that the receiver terminal Add the nonce to the receiver VC to generate the receiver signature value, or (ii) by the 1-2 process, the sender terminal transmits the nonce to the receiver terminal so that the receiver terminal is the receiver private Generates a nonce signature value that signs the nonce using a key, obtains the receiver DID and the nonce signature value from the receiver terminal and transmits it to the virtual asset service providing server, and in the second process, ( i) In the 2-1 process, the recipient's signature value is decrypted using the recipient public key to obtain the nonce to verify the recipient's signature value, or (ii) in the 2-2 process, the recipient The nonce signature value may be verified by decrypting the nonce signature value using a public key.

상기 프로세서는, 상기 제2 프로세스에서, 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 상기 수신자 DID 문서에서 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득할 수 있다.The processor, in the second process, causes the resolver server to obtain a recipient DID document corresponding to the recipient from the blockchain network by using the recipient DID, and the recipient public key and the recipient in the recipient DID document A second recipient virtual asset address may be obtained.

상기 프로세서는, 상기 제1 프로세스 이전에, (III) 상기 송신자 단말로부터 제1 송신자 가상 자산 어드레스에 포함하는 사용자 등록 요청이 획득되면, 상기 송신자 단말로 논스를 포함하는 송신자 KYC 등록을 요청하여, (i) 상기 송신자 단말로 하여금 상기 인증 서버를 통해 송신자 KYC를 인증한 송신자 VC를 획득하도록 하고, 송신자 DID와, 상기 논스와 상기 송신자 VC를 송신자 프라이빗 키로 서명한 송신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제3-1 프로세스를 수행하거나, (ii) 상기 송신자 단말로 하여금 상기 인증 서버를 통해 상기 송신자 KYC를 인증한 상기 송신자 VC를 획득하고, 상기 송신자 VC를 상기 송신자 프라이빗 키로 서명한 상기 송신자 서명값을 상기 데이터 허브에 등록하도록 하고, 상기 송신자 DID와, 상기 논스를 상기 송신자 프라이빗 키로 서명한 논스 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제3-2 프로세스를 수행하는 제3 프로세스, 및 (IV) (i) 상기 제3-1 프로세스에 의해 상기 송신자 단말로부터 획득되는 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자에 대응되는 송신자 퍼블릭 키와 제2 송신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 획득하도록 하며, 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 이용하여 상기 송신자 서명값과 상기 제1 송신자 가상 자산 어드레스를 검증하는 제4-1 프로세스를 수행하거나, (ii) 상기 제3-2 프로세스에 의해 상기 송신자 단말로부터 획득되는 상기 송신자 DID를 이용하여 상기 데이터 허브로부터 상기 송신자 서명값을 획득하고, 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 획득하도록 하며, 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 이용하여 상기 논스 서명값, 상기 송신자 서명값, 및 상기 제1 송신자 가상 자산 어드레스를 검증하는 제4-2 프로세스를 수행하며, 상기 송신자 서명값이 검증되거나 상기 논스 서명값과 상기 송신자 서명값이 검증되며, 상기 제1 송신자 가상 자산 어드레스와 상기 제2 송신자 가상 자산 어드레스가 일치되면, 상기 제1 송신자 가상 자산 어드레스를 상기 송신자 가상 어드레스로 상기 화이트리스트에 등록하는 제4 프로세스를 더 수행할 수 있다.The processor, prior to the first process, (III) when a user registration request included in the first sender virtual asset address is obtained from the sender terminal, requests the sender terminal to register a sender KYC including a nonce, ( i) Make the sender terminal obtain the sender VC that authenticates the sender KYC through the authentication server, and use the sender DID and the sender signature value that signed the nonce and the sender VC with a sender private key to the virtual asset service providing server Or (ii) the sender terminal obtains the sender VC that authenticates the sender KYC through the authentication server, and signs the sender VC with the sender private key. A third process for registering a sender signature value in the data hub and transmitting the sender DID and a nonce signature value signed with the sender private key to the virtual asset service providing server Process, and (IV) (i) a sender public key and a second sender virtual asset address corresponding to the sender from the blockchain network using the sender DID obtained from the sender terminal by the 3-1 process. Obtain or cause the resolver server to obtain the sender public key and the second sender virtual asset address from the blockchain network using the sender DID, and use the sender public key and the second sender virtual asset address. Perform a 4-1 process of verifying the sender signature value and the first sender virtual asset address, or (ii) the data hub using the sender DID obtained from the sender terminal by the 3-2 process Obtaining the sender signature value from and using the sender DID to obtain the sender public key and the second sender virtual asset address from the blockchain network, or Cause the resolver server to obtain the sender public key and the second sender virtual asset address from the blockchain network using the sender DID, and the nonce using the sender public key and the second sender virtual asset address A 4-2 process of verifying the signature value, the sender signature value, and the first sender virtual asset address is performed, the sender signature value is verified or the nonce signature value and the sender signature value are verified, and the second When the first sender virtual asset address and the second sender virtual asset address match, a fourth process of registering the first sender virtual asset address as the sender virtual address in the whitelist may be further performed.

상기에서, 상기 송신자 VC는 상기 송신자 KYC, 상기 송신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 프로세서는, 상기 제4 프로세스에서, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 복호화하여 상기 송신자 VC를 획득하며, 상기 송신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 송신자 VC를 복호화하여 상기 송신자 KYC를 검증함으로써 상기 송신자 서명값을 검증할 수 있다.In the above, the sender VC includes the sender KYC, an authentication server signature value in which the sender KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server, and the processor includes: In process 4, the sender signature value is decrypted using the sender public key to obtain the sender VC, and the authentication server public of the authentication server from the blockchain network using the authentication server DID included in the sender VC. Acquire a key or have the resolver server obtain the authentication server public key from the blockchain network using the authentication server DID, and verify the sender KYC by decrypting the sender VC using the authentication server public key By doing so, the sender's signature value can be verified.

상기 프로세서는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득할 수 있다.The processor causes the resolver server to obtain an authentication server DID document corresponding to the authentication server from the blockchain network using the authentication server DID, and to obtain the authentication server public key from the authentication server DID document. I can.

또한, 본 발명의 일 실시예에 따르면, 탈중앙화 아이디(decentralized identifier, DID) 기반으로 가상 자산 서비스를 제공하는 가상 자산 서비스 제공 서버에 있어서, DID 기반으로 가상 자산 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리; 및 상기 메모리에 저장된 상기 인스트럭션들에 따라 상기 DID 기반으로 상기 가상 자산 서비스를 제공하기 위한 동작을 수행하는 프로세서; 를 포함하되, 상기 프로세서는, (I) 사용자들 각각에 대응되는 KYC(known your customer) 정보의 인증 결과에 따라 상기 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태에서, 송신자 단말 - 상기 송신자 단말은 가상 자산을 전송하고자 하는 송신자가 소유한 단말이며, 상기 송신자에 대응되는 송신자 가상 자산 어드레스는 상기 화이트리스트에 등록된 상태임 - 로부터 상기 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청이 획득되면, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있는지를 확인하며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있을 경우에는, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있지 않을 경우에는, 상기 송신자 단말로 하여금 수신자 단말 - 상기 수신자 단말은 상기 수신자가 소유한 단말임- 로 수신자 KYC 등록을 요청하도록 하며, 상기 수신자 KYC 등록 요청에 대응하여 상기 수신자 단말로부터 수신자 등록 요청이 획득되면, 상기 수신자 단말로 논스를 포함하는 수신자 KYC 요청 정보를 전송하여 (i) 상기 수신자 단말로 하여금 인증 서버를 통해 수신자 KYC를 인증한 수신자 VC를 획득하도록 하고, 수신자 DID와, 상기 수신자 VC와 상기 논스를 수신자 프라이빗 키로 서명한 제1 수신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제5-1 프로세스를 수행하거나, (ii) 상기 수신자 단말로 하여금 상기 인증 서버를 통해 상기 수신자 KYC를 인증한 상기 수신자 VC를 획득하고 상기 수신자 VC를 상기 수신자 프라이빗 키로 서명한 제2 수신자 서명값을 데이터 허브로 등록하고, 상기 수신자 DID와, 상기 논스를 상기 수신자 프라이빗 키로 서명한 논스 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제5-2 프로세스를 수행하는 제5 프로세스, 및 (II) (i) 상기 제5-1 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득하거나 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 제1 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제6-1 프로세스를 수행하거나, (ii) 상기 제5-2 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 상기 데이터 허브로부터 상기 제2 수신자 서명값을 획득하고, 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 논스 서명값, 상기 수신자 서명값 및 상기 제1 수신자 가상 자산 어드레스를 검증하는 제6-2 프로세스를 수행하며, 상기 제1 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하거나, 상기 논스 서명값과 상기 제2 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하면, 상기 제1 수신자 가상 자산 어드레스를 상기 화이트리스트에 등록하며, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주는 제6 프로세스를 수행하는 가상 자산 서비스 제공 서버가 제공된다.In addition, according to an embodiment of the present invention, in a virtual asset service providing server that provides a virtual asset service based on a decentralized identifier (DID), a memory in which instructions for providing a virtual asset service based on DID are stored. ; And a processor that performs an operation for providing the virtual asset service based on the DID according to the instructions stored in the memory. Including, wherein the processor, (I) in a state in which the virtual asset addresses of each of the users are registered and managed in a white list according to the authentication result of KYC (known your customer) information corresponding to each of the users, the sender terminal -The sender terminal is a terminal owned by the sender who wants to transmit the virtual asset, and the sender virtual asset address corresponding to the sender is registered in the whitelist.- The first corresponding to the receiver to receive the virtual asset from When a virtual asset transmission request including a recipient virtual asset address is obtained, it is checked whether the first recipient virtual asset address is registered in the white list, and if the first recipient virtual asset address is registered in the white list The virtual asset is transmitted from the sender virtual asset address to the first recipient virtual asset address, and when the first recipient virtual asset address is not registered in the whitelist, the sender terminal causes the recipient terminal -The recipient terminal is a terminal owned by the recipient-so that a recipient KYC registration request is made, and when a recipient registration request is obtained from the recipient terminal in response to the recipient KYC registration request, the recipient including a nonce to the recipient terminal By transmitting the KYC request information (i) the recipient terminal obtains the recipient VC that authenticates the recipient KYC through an authentication server, and the recipient DID, the recipient VC and the first recipient signature signed with the recipient private key Perform the 5-1 process to transmit a value to the virtual asset service providing server, or (ii) allow the recipient terminal to obtain the recipient VC that authenticated the recipient KYC through the authentication server, and obtain the recipient VC Registering the second recipient signature value signed with the recipient private key as a data hub, and signing the recipient DID and the nonce with the recipient private key A fifth process for performing a 5-2 process to transmit a name value to the virtual asset service providing server, and (II) (i) using the receiver DID obtained from the receiver terminal by the 5-1 process To obtain a recipient public key and a second recipient virtual asset address corresponding to the recipient from the blockchain network, or cause a resolver server to use the recipient DID to obtain the recipient public key and the second recipient virtual asset address from the blockchain network And performing a 6-1 process of verifying the first recipient signature value and the first recipient virtual asset address using the recipient public key and the second recipient virtual asset address, or (ii) the The second receiver's signature value is obtained from the data hub using the receiver DID obtained from the receiver terminal in the 5-2 process, and the receiver public key and the receiver public key from the blockchain network using the receiver DID Obtaining a second recipient virtual asset address or causing the resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and the recipient public key and the second A 6-2 process of verifying the nonce signature value, the recipient signature value, and the first recipient virtual asset address using a recipient virtual asset address is performed, the first recipient signature value is verified, and the first recipient If the virtual asset address and the second recipient virtual asset address match, or the nonce signature value and the second recipient signature value are verified, and the first recipient virtual asset address and the second recipient virtual asset address match, the A sixth for registering a first recipient virtual asset address in the whitelist, and transmitting the virtual asset from the sender virtual asset address to the first recipient virtual asset address A virtual asset service providing server performing the process is provided.

상기에서, 상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 프로세서는, 상기 제6 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 제1 수신자 서명값을 복호화하거나 상기 제2 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증할 수 있다.In the above, the recipient VC includes the recipient KYC, an authentication server signature value that signed the recipient KYC with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server, and the processor In process 6, the first recipient signature value is decrypted using the recipient public key or the second recipient signature value is decrypted to obtain the recipient VC, and the authentication server DID included in the recipient VC is used to obtain the recipient VC. Obtain the authentication server public key of the authentication server from the blockchain network, or allow the resolver server to obtain the authentication server public key from the blockchain network using the authentication server DID, and use the authentication server public key. The receiver VC may be decrypted to verify the receiver KYC.

이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition to this, a computer-readable recording medium for recording a computer program for executing the method of the present invention is further provided.

본 발명에 의하면, 다음과 같은 효과가 있다.According to the present invention, the following effects are obtained.

본 발명은 본 발명은 가상 자산의 거래를 통해 자금을 세탁하는 것을 방지할 수 있게 된다.The present invention makes it possible to prevent laundering of money through the transaction of virtual assets.

본 발명은 가상 자산의 거래를 통해 자금을 세탁하는 사용자를 용이하게 확인할 수 있게 된다.In the present invention, it is possible to easily identify a user laundering money through a transaction of a virtual asset.

본 발명은 가상 자산의 거래를 하는 사용자들의 프라이버시를 해치지 않고 가상 자산의 거래를 하는 사용자들의 정보를 획득 및 보관할 수 있게 된다.According to the present invention, it is possible to acquire and store information of users who trade virtual assets without compromising the privacy of users who trade virtual assets.

도 1은 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 시스템을 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 3은 본 발명의 다른 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 4는 본 발명의 또 다른 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 5는 본 발명의 또 다른 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 6은 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법에서 사용자를 등록하는 과정을 개략적으로 도시한 것이고,
도 7은 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법에서 사용자를 등록하는 다른 과정을 개략적으로 도시한 것이다.
1 schematically shows a system for providing a virtual asset service based on a decentralized ID according to an embodiment of the present invention,
2 schematically illustrates a method of providing a virtual asset service based on a decentralized ID according to an embodiment of the present invention,
3 schematically shows a method of providing a virtual asset service based on a decentralized ID according to another embodiment of the present invention,
4 schematically shows a method of providing a virtual asset service based on a decentralized ID according to another embodiment of the present invention,
5 schematically illustrates a method of providing a virtual asset service based on a decentralized ID according to another embodiment of the present invention,
6 schematically shows a process of registering a user in a method for providing a virtual asset service based on a decentralized ID according to an embodiment of the present invention.
7 schematically shows another process of registering a user in the method for providing a virtual asset service based on a decentralized ID according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION OF THE INVENTION The detailed description of the present invention to be described later refers to the accompanying drawings, which illustrate specific embodiments in which the present invention may be practiced. These embodiments are described in detail sufficient to enable a person skilled in the art to practice the present invention. It is to be understood that the various embodiments of the present invention are different from each other, but need not be mutually exclusive. For example, specific shapes, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the present invention in relation to one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description to be described below is not intended to be taken in a limiting sense, and the scope of the present invention, if properly described, is limited only by the appended claims, along with all scopes equivalent to those claimed by the claims. In the drawings, like reference numerals refer to the same or similar functions over several aspects.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to enable those of ordinary skill in the art to easily implement the present invention.

도 1은 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 시스템을 개략적으로 도시한 것으로, 시스템은 사용자 단말들(100), 가상 자산 서비스 제공 서버(200), 데이터 허브(300), 리졸버 서버(400), 및 블록체인 네트워크(500)를 포함할 수 있다.1 schematically illustrates a system for providing a virtual asset service based on a decentralized ID according to an embodiment of the present invention. The system includes user terminals 100, a virtual asset service providing server 200, and a data hub. 300, a resolver server 400, and a blockchain network 500.

먼저, 사용자 단말들(100)은 가상 자산을 거래하고자 하는 사용자들이 소유한 단말들로, 인증 서버를 통해 인증된 사용자 KYC(know your customer)에 대한 사용자 VC(verifiable credential)을 저장할 수 있으며, 각각의 사용자들에 대응되는 사용자 탈중앙화 아이디(decentralized identifier, DID)들을 블록체인 네트워크에 등록한 상태일 수 있다.First, the user terminals 100 are terminals owned by users who want to trade virtual assets, and can store user VC (verifiable credential) for a user KYC (know your customer) authenticated through an authentication server, respectively. User decentralized identifiers (DIDs) corresponding to users of may be registered in the blockchain network.

다음으로, 가상 자산 서비스 제공 서버(200)는 사용자 단말(100)들이 가상 자산 입금 및 출금, 가상 자산의 전송 등의 가상 자산 서비스를 이용할 수 있도록 가상 자산 서비스를 제공하는 것으로, 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하고, 가상 자산 거래를 하는 사용자들의 정보를 획득하고 보관할 수 있다. 그리고, 가상 자산 서비스 제공 서버(200)는 DID 기반으로 가상 자산 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리와, 메모리에 저장된 인스트럭션들에 따라 DID 기반으로 가상 자산 서비스를 제공하기 위한 동작을 수행하는 프로세서를 포함할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 PC(Personal Computer), 모바일 컴퓨터, PDA/EDA, 휴대 전화, 스마트폰, 태블릿, 서버 등을 포함할 수 있으나, 이에 한정되지 않으며, 유무선 통신 기능을 가진 휴대용 게임기, 디지털 카메라, 개인 내비게이션 등과 같이 컴퓨팅 연산을 수행하는 모든 컴퓨팅 장치를 포함할 수 있다.Next, the virtual asset service providing server 200 provides a virtual asset service so that the user terminals 100 can use virtual asset services such as virtual asset deposit and withdrawal, and virtual asset transmission, corresponding to each of the users. According to the authentication result of the KYC information, each virtual asset address of users can be registered and managed as a whitelist, and information of users who conduct virtual asset transactions can be acquired and stored. In addition, the virtual asset service providing server 200 includes a memory in which instructions for providing a virtual asset service based on DID are stored, and a processor that performs an operation for providing a virtual asset service based on DID according to the instructions stored in the memory. Can include. At this time, the virtual asset service providing server 200 may include a personal computer (PC), a mobile computer, a PDA/EDA, a mobile phone, a smartphone, a tablet, a server, etc., but is not limited thereto, and has a wired/wireless communication function. It may include all computing devices that perform computing operations, such as portable game consoles, digital cameras, and personal navigation.

구체적으로, 가상 자산 서비스 제공 서버(200)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.Specifically, the virtual asset service providing server 200 is typically a computing device (e.g., a computer processor, memory, storage, input device and output device, a device that may include components of other existing computing devices; routers, switches) Electronic communication devices such as; using a combination of electronic information storage systems such as network attached storage (NAS) and storage area networks (SAN)) and computer software (i.e., instructions that make the computing device function in a specific way) To achieve the desired system performance.

이와 같은 컴퓨팅 장치의 통신부는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는 바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.The communication unit of such a computing device is capable of transmitting and receiving requests and responses to and from other computing devices that are interlocked. As an example, such requests and responses may be made by the same TCP session, but are not limited thereto. For example, UDP data It could also be sent and received as grams.

또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.In addition, the processor of the computing device may include a hardware configuration such as a micro processing unit (MPU) or a central processing unit (CPU), a cache memory, and a data bus. In addition, it may further include an operating system and a software configuration of an application that performs a specific purpose.

다음으로, 데이터 허브(300)는 저장된 데이터에 대하여 권한이 있는 사용자만이 접속할 수 있도록 하는 것으로, 사용자의 요청에 따른 데이터를 저장하거나, 사용자의 요청에 따른 데이터를 데이터베이스 등과 같은 타 저장장치에 저장할 수 있다. 이때, 타 저장장치로 데이터베이스 이외에도 블록체인 네트워크 상의 분산원장을 포함할 수 있으나, 이에 한정되지 않으며, 데이터를 저장할 수 있는 모든 저장 장치를 포함할 수 있다.Next, the data hub 300 allows only the authorized user to access the stored data, and stores data according to the user's request or stores data according to the user's request in other storage devices such as a database. I can. In this case, other storage devices may include a distributed ledger on a blockchain network in addition to a database, but the present invention is not limited thereto, and all storage devices capable of storing data may be included.

다음으로, 리졸버 서버(400)는 DID에 대응하여 블록체인 네트워크에 등록된 데이터들을 획득하여 주는 것으로, 블록체인 네트워크에 접속할 수 있는 컴퓨팅 장치이거나 블록체인 네트워크를 구성하는 블록체인 노드일 수 있다. 또한, 리졸버 서버(400)는 가상 자산 서비스 제공 서버(200)와 별개의 서버로 구성되거나 가상 자산 서비스 제공 서버(200)에 통합되어 구성될 수도 있다. 이때, DID는 사용자들뿐만 아니라, 서버 등의 컴퓨팅 장치인 IoT 디바이스 각각에 대하여 발급될 수 있다.Next, the resolver server 400 obtains data registered in the blockchain network in response to the DID, and may be a computing device capable of accessing the blockchain network or a blockchain node constituting the blockchain network. In addition, the resolver server 400 may be configured as a server separate from the virtual asset service providing server 200 or integrated with the virtual asset service providing server 200. In this case, the DID may be issued not only to users, but also to IoT devices, which are computing devices such as servers.

다음으로, 블록체인 네트워크(500)는 다수의 블록체인 노드들에 의해 분산 원장을 공유하며, 사용자 및 컴퓨팅 장치의 요청에 따른 DID를 생성하여 주며 DID에 대응되는 데이터들을 분산 원장에 저장할 수 있다.Next, the blockchain network 500 shares a distributed ledger by a plurality of blockchain nodes, generates a DID according to requests from users and computing devices, and stores data corresponding to the DID in the distributed ledger.

먼저, 이와 같이 구성된 시스템을 통해 본 발명의 일 실시예에 따른 DID 기반의 가상 자산 서비스를 제공하는 방법을 도 2를 참조하여 설명하면 다음과 같다.First, a method of providing a DID-based virtual asset service according to an embodiment of the present invention through a system configured as described above will be described with reference to FIG. 2.

가상 자산을 전송하고자 하는 송신자가 자신이 소유한 사용자 단말인 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청(S101)을 한다.A virtual asset including a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset to the virtual asset service providing server 200 through the sender terminal 100a, which is a user terminal owned by the sender who wants to transmit the virtual asset. Make an asset transfer request (S101).

이때, 가상 자산 서비스 제공 서버(200)는 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태일 수 있으며, 송신자에 대응되는 송신자 가상 자산 어드레스는 화이트리스트에 등록된 상태일 수 있다.At this time, the virtual asset service providing server 200 may be in a state of registering and managing virtual asset addresses of each of the users in a white list according to the authentication result of KYC information corresponding to each of the users, and the sender virtual corresponding to the sender The asset address may be registered in the white list.

그러면, 가상 자산 서비스 제공 서버(200)는 가상 자산의 전송이 요청된 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인(S102)할 수 있다.Then, the virtual asset service providing server 200 may check whether the first recipient virtual asset address for which transmission of the virtual asset is requested is registered in the white list (S102).

이때, 가상 자산 전송 요청 시, 송신자 단말(100a)은 송신자 DID를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 가상 자산 어드레스를 획득하고, 획득된 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다. 또한, 가상 자산 전송 요청 송신자 단말(100a)은 송신자 가상 자산 어드레스를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다.At this time, when requesting a virtual asset transmission, the sender terminal 100a may transmit the sender DID to the virtual asset service providing server 200, and accordingly, the virtual asset service providing server 200 blocks using the sender DID. It is possible to confirm that the sender is a normal user by acquiring the sender virtual asset address from the chain network 500 and checking whether the acquired sender virtual asset address is registered in the white list. In addition, the virtual asset transmission request sender terminal 100a may transmit the sender virtual asset address to the virtual asset service providing server 200, and accordingly, the virtual asset service providing server 200 has a white sender virtual asset address. You can confirm that the sender is a normal user by checking whether it is registered in the list.

그리고, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는 경우에는, 가상 자산 서비스 제공 서버(200)는 수신자가 정상적인 사용자임을 확인하고, 전송 요청된 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송하여 줄 수 있다.And, as a result of checking whether the first recipient virtual asset address is registered in the white list, if the first recipient virtual asset address is registered in the white list, the virtual asset service providing server 200 confirms that the recipient is a normal user. Then, the virtual asset requested to be transmitted may be transmitted from the sender virtual asset address to the first recipient virtual asset address.

한편, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있지 않을 경우에는, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로 수신자 KYC 등록을 요청(S103)을 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 논스를 송신자 단말(100a)로 전송하여 줄 수 있다.On the other hand, as a result of checking whether the first recipient virtual asset address is registered in the white list, if the first recipient virtual asset address is not registered in the white list, the virtual asset service providing server 200 is the sender terminal 100a. It is possible to request the recipient KYC registration (S103). In this case, the virtual asset service providing server 200 may transmit nonce to the sender terminal 100a.

그러면, 송신자 단말(100a)은 수신자가 소유한 단말인 수신자 단말(100b)로 수신자 KYC 등록을 요청(S104)한다. 이때, 송신자 단말(100a)은 가상 자산 서비스 제공 서버(200)로부터 전송된 논스를 수신자 단말(100b)로 전송하여 줄 수 있다.Then, the sender terminal 100a requests (S104) a receiver KYC registration from the receiver terminal 100b, which is a terminal owned by the receiver. At this time, the sender terminal 100a may transmit the nonce transmitted from the virtual asset service providing server 200 to the receiver terminal 100b.

그에 따라, 수신자 단말(100b)은 인증 서버로 수신자 KYC에 대한 인증을 요청하여 인증 서버가 수신자 KYC를 인증하고 인증된 수신자 KYC에 대응되는 수신자 VC를 전송하도록 함으로써 수신자 VC를 획득(S105)할 수 있다. 이때, 수신자 VC는 수신자 KYC, 수신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.Accordingly, the recipient terminal 100b may obtain the recipient VC by requesting authentication for the recipient KYC to the authentication server, so that the authentication server authenticates the recipient KYC and transmits the recipient VC corresponding to the authenticated recipient KYC (S105). have. In this case, the recipient VC may include a recipient KYC, an authentication server signature value in which the recipient KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server.

그리고, 수신자 단말(100b)은 수신자 VC를 수신자 프라이빗 키로 서명한 수신자 서명값을 생성하고, 수신자 DID와 수신자 서명값을 송신자 단말(100a)로 전송(S106)하여 줄 수 있다. 이때, 수신자 단말(100b)은 수신자 VC에 송신자 단말(100a)로부터 전송된 논스를 추가하여 수신자 서명값을 생성할 수 있다.In addition, the receiver terminal 100b may generate a receiver signature value by signing the receiver VC with the receiver private key, and transmit the receiver DID and receiver signature value to the sender terminal 100a (S106). In this case, the receiver terminal 100b may generate a receiver signature value by adding the nonce transmitted from the sender terminal 100a to the receiver VC.

그러면, 송신자 단말(100a)은 수신자 단말(100b)로부터 전송되는 수신자 DID와 수신자 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S107)하여 줄 수 있다.Then, the sender terminal 100a may transmit the receiver DID and the receiver signature value transmitted from the receiver terminal 100b to the virtual asset service providing server 200 (S107).

그리고, 가상 자산 서비스 제공 서버(200)는 수신자 단말(100a)로부터 획득된 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S108, S109)하거나, 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S108, S109)하도록 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 수신자 DID 문서에서 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득할 수 있다.Then, the virtual asset service providing server 200 acquires a recipient public key and a second recipient virtual asset address corresponding to the recipient from the blockchain network 500 by using the recipient DID obtained from the recipient terminal 100a (S108, S109) Alternatively, the resolver server 400 may use the recipient DID to obtain the recipient public key and the second recipient virtual asset address from the blockchain network 500 (S108, S109). At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain a recipient DID document corresponding to the recipient from the blockchain network 500 using the recipient DID, and the recipient public key and the recipient public key in the recipient DID document. A second recipient virtual asset address may be obtained.

이후, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 이용하여 수신자 서명값과 제1 수신자 가상 자산 어드레스를 검증(S110)할 수 있다.Thereafter, the virtual asset service providing server 200 may verify the recipient's signature value and the first recipient virtual asset address using the recipient public key and the second recipient virtual asset address (S110).

즉, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 수신자 서명값을 복호화하여 수신자 VC를 획득하며, 수신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 수신자 VC를 복호화하여 수신자 KYC를 검증할 수 있다.That is, the virtual asset service providing server 200 obtains the recipient VC by decrypting the recipient's signature value using the recipient's public key, and the authentication server from the blockchain network 500 using the authentication server DID included in the recipient VC. Obtain the authentication server public key or allow the resolver server 400 to obtain the authentication server public key from the blockchain network 500 using the authentication server DID, and decrypt the recipient VC using the authentication server public key to decrypt the recipient KYC. Can be verified.

이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain an authentication server DID document corresponding to the authentication server from the blockchain network 500 using the authentication server DID, and from the authentication server DID document. You can obtain the authentication server public key.

또한, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 수신자 서명값을 복호화하여 논스를 획득하여 수신자 서명값을 검증할 수 있다. 즉, 수신자 서명값을 복호화하여 획득한 논스가, 수신자 KYC 등록 요청 시, 송신자 단말(100a)로 전송한 논스와 일치하는지 여부를 확인하여 수신자 서명값을 검증할 수 있다.In addition, the virtual asset service providing server 200 may verify the receiver signature value by decrypting the receiver signature value using the receiver public key to obtain a nonce. That is, the receiver signature value may be verified by checking whether the nonce obtained by decoding the receiver signature value matches the nonce transmitted to the sender terminal 100a when the receiver KYC registration is requested.

이후, 가상 자산 서비스 제공 서버(200)는 수신자 서명값이 검증되며, 제1 수신자 가상 자산 어드레스와 제2 수신자 가상 자산 어드레스가 일치하면, 제1 수신자 가상 자산 어드레스를 화이트리스트에 등록(S111)하며, 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송(S112)하여 줄 수 있다.Thereafter, the virtual asset service providing server 200 verifies the recipient's signature value, and if the first recipient virtual asset address and the second recipient virtual asset address match, register the first recipient virtual asset address in the white list (S111). , The virtual asset may be transmitted from the sender virtual asset address to the first recipient virtual asset address (S112).

이와 같은 방법에 의해, 가상 자산 서비스 제공 서버(200)는 가상 자산 어드레스가 화이트리스트에 등록된 사용자들만이 가상 자산 서비스를 이용할 수 있도록 함으로써 가상 자산을 통해 자금을 세탁하는 것을 방지할 수 있으며, 가상 자산의 거래를 통해 자금을 세탁하는 사용자를 용이하게 확인할 수 있게 된다.In this way, the virtual asset service providing server 200 can prevent laundering of money through the virtual asset by allowing only users whose virtual asset address is whitelisted to use the virtual asset service. It is possible to easily identify users laundering money through asset transactions.

다음으로, 본 발명의 다른 실시예에 따른 DID 기반의 가상 자산 서비스를 제공하는 방법을 도 3을 참조하여 설명하면 다음과 같다. 이하에서는, 도 2를 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.Next, a method of providing a DID-based virtual asset service according to another embodiment of the present invention will be described with reference to FIG. 3 as follows. Hereinafter, detailed descriptions of parts that can be easily understood from the description with reference to FIG. 2 will be omitted.

가상 자산을 전송하고자 하는 송신자가 자신이 소유한 사용자 단말인 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청(S201)을 한다.A virtual asset including a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset to the virtual asset service providing server 200 through the sender terminal 100a, which is a user terminal owned by the sender who wants to transmit the virtual asset. An asset transfer request (S201) is made.

이때, 가상 자산 서비스 제공 서버(200)는 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태일 수 있으며, 송신자에 대응되는 송신자 가상 자산 어드레스는 화이트리스트에 등록된 상태일 수 있다.At this time, the virtual asset service providing server 200 may be in a state of registering and managing virtual asset addresses of each of the users in a white list according to the authentication result of KYC information corresponding to each of the users, and the sender virtual corresponding to the sender The asset address may be registered in the white list.

그러면, 가상 자산 서비스 제공 서버(200)는 가상 자산의 전송이 요청된 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인(S202)할 수 있다.Then, the virtual asset service providing server 200 may check whether the first recipient virtual asset address for which transmission of the virtual asset is requested is registered in the white list (S202).

이때, 가상 자산 전송 요청 시, 송신자 단말(100a)은 송신자 DID를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 가상 자산 어드레스를 획득하고, 획득된 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다. 또한, 가상 자산 전송 요청 송신자 단말(100a)은 송신자 가상 자산 어드레스를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다.At this time, when requesting a virtual asset transmission, the sender terminal 100a may transmit the sender DID to the virtual asset service providing server 200, and accordingly, the virtual asset service providing server 200 blocks using the sender DID. It is possible to confirm that the sender is a normal user by acquiring the sender virtual asset address from the chain network 500 and checking whether the acquired sender virtual asset address is registered in the white list. In addition, the virtual asset transmission request sender terminal 100a may transmit the sender virtual asset address to the virtual asset service providing server 200, and accordingly, the virtual asset service providing server 200 has a white sender virtual asset address. You can confirm that the sender is a normal user by checking whether it is registered in the list.

그리고, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는 경우에는, 가상 자산 서비스 제공 서버(200)는 수신자가 정상적인 사용자임을 확인하고, 전송 요청된 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송하여 줄 수 있다.And, as a result of checking whether the first recipient virtual asset address is registered in the white list, if the first recipient virtual asset address is registered in the white list, the virtual asset service providing server 200 confirms that the recipient is a normal user. Then, the virtual asset requested to be transmitted may be transmitted from the sender virtual asset address to the first recipient virtual asset address.

한편, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있지 않을 경우에는, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로 수신자 KYC 등록을 요청(S203)을 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 논스를 송신자 단말(100a)로 전송하여 줄 수 있다.On the other hand, as a result of checking whether the first recipient virtual asset address is registered in the white list, if the first recipient virtual asset address is not registered in the white list, the virtual asset service providing server 200 is the sender terminal 100a. The recipient KYC registration may be requested (S203). In this case, the virtual asset service providing server 200 may transmit nonce to the sender terminal 100a.

그러면, 송신자 단말(100a)은 수신자가 소유한 단말인 수신자 단말(100b)로 수신자 KYC 등록을 요청(S204)한다. 이때, 송신자 단말(100a)은 가상 자산 서비스 제공 서버(200)로부터 전송된 논스를 수신자 단말(100b)로 전송하여 줄 수 있다.Then, the sender terminal 100a requests (S204) the receiver's KYC registration from the receiver's terminal 100b, which is a terminal owned by the receiver. At this time, the sender terminal 100a may transmit the nonce transmitted from the virtual asset service providing server 200 to the receiver terminal 100b.

그에 따라, 수신자 단말(100b)은 인증 서버로 수신자 KYC에 대한 인증을 요청하여 인증 서버가 수신자 KYC를 인증하고 인증된 수신자 KYC에 대응되는 수신자 VC를 전송하도록 함으로써 수신자 VC를 획득(S205)할 수 있다. 이때, 수신자 VC는 수신자 KYC, 수신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.Accordingly, the recipient terminal 100b may obtain the recipient VC by requesting authentication for the recipient KYC to the authentication server to allow the authentication server to authenticate the recipient KYC and transmit the recipient VC corresponding to the authenticated recipient KYC (S205). have. In this case, the recipient VC may include a recipient KYC, an authentication server signature value in which the recipient KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server.

그리고, 수신자 단말(100b)은 수신자 VC를 수신자 프라이빗 키로 서명한 수신자 서명값을 생성하고, 수신자 서명값을 데이터 허브(300)에 등록(S206)할 수 있다. 이때, 데이터 허브(300)는 수신자 서명값을 수신자 DID에 대응하여 저장하거나 외부의 데이터베이스에 저장할 수 있으며, 데이터 허브(300)에 저장된 수신자 서명값은 제3자에게 공개되지 않으며, 수신자가 권한을 부여, 즉, 수신자 DID 또는 액세스 정보를 가진 특정 사용자 또는 서비스 제공자만 접근할 수 있도록 할 수 있다.Then, the receiver terminal 100b may generate a receiver signature value by signing the receiver VC with the receiver private key, and register the receiver signature value in the data hub 300 (S206). At this time, the data hub 300 may store the recipient's signature value corresponding to the recipient DID or store it in an external database, and the recipient's signature value stored in the data hub 300 is not disclosed to a third party, and the recipient has permission. Grant, that is, it can be made accessible only to specific users or service providers with recipient DID or access information.

이후, 수신자 단말(100b)은 수신자 DIDI를 송신자 단말(100a)로 전송(S207)하여 줄 수 있다. 이때, 수신자 단말(100b)은 수신자 DID에 더하여, 송신자 단말(100a)로부터 전송된 논스를 수신자 프라이빗 키로 서명한 논스 서명값을 송신자 단말(100a)로 전송하여 줄 수 있다.Thereafter, the receiver terminal 100b may transmit the receiver DIDI to the sender terminal 100a (S207). In this case, the recipient terminal 100b may transmit the nonce signature value of the nonce transmitted from the sender terminal 100a with the recipient private key to the sender terminal 100a in addition to the recipient DID.

그리고, 송신자 단말(100a)은 수신자 단말(100b)로부터 전송된 수신자 DID를 가상 자산 서비스 제공 서버(200)로 전송(S208)하여 줄 수 있다. 또한, 송신자 단말(100a)은 수신자 DID에 더하여 송신자 단말(100b)로부터 전송된 논스 서명값을 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있다.Then, the sender terminal 100a may transmit (S208) the receiver DID transmitted from the receiver terminal 100b to the virtual asset service providing server 200 (S208). In addition, the sender terminal 100a may transmit the nonce signature value transmitted from the sender terminal 100b to the virtual asset service providing server 200 in addition to the receiver DID.

그러면, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로부터 획득된 수신자 DID를 이용하여 데이터 허브(300)로부터 수신자 서명값을 획득(S209, S210)하고, 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S211, S212)하거나, 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S211, S212)하도록 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 수신자 DID 문서에서 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득할 수 있다.Then, the virtual asset service providing server 200 acquires the receiver signature value from the data hub 300 using the receiver DID obtained from the sender terminal 100a (S209, S210), and uses the receiver DID to obtain a blockchain network Obtain a recipient public key and a second recipient virtual asset address corresponding to the recipient from 500 (S211, S212), or cause the resolver server 400 to obtain the recipient public key from the blockchain network 500 using the recipient DID. The second recipient virtual asset address may be acquired (S211, S212). At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain a recipient DID document corresponding to the recipient from the blockchain network 500 using the recipient DID, and the recipient public key and the recipient public key in the recipient DID document. A second recipient virtual asset address may be obtained.

이후, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 이용하여 수신자 서명값과 제1 수신자 가상 자산 어드레스를 검증(S213)할 수 있다.Thereafter, the virtual asset service providing server 200 may verify the recipient signature value and the first recipient virtual asset address by using the recipient public key and the second recipient virtual asset address (S213).

즉, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 수신자 서명값을 복호화하여 수신자 VC를 획득하며, 수신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 수신자 VC를 복호화하여 수신자 KYC를 검증할 수 있다.That is, the virtual asset service providing server 200 obtains the recipient VC by decrypting the recipient's signature value using the recipient's public key, and the authentication server from the blockchain network 500 using the authentication server DID included in the recipient VC. Obtain the authentication server public key or allow the resolver server 400 to obtain the authentication server public key from the blockchain network 500 using the authentication server DID, and decrypt the recipient VC using the authentication server public key to decrypt the recipient KYC. Can be verified.

이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain an authentication server DID document corresponding to the authentication server from the blockchain network 500 using the authentication server DID, and from the authentication server DID document. You can obtain the authentication server public key.

또한, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 논스 서명값을 복호화하여 논스를 획득하여 논스 서명값을 검증할 수 있다. 즉, 논스 서명값을 복호화하여 획득한 논스가, 수신자 KYC 등록 요청 시, 송신자 단말(100a)로 전송한 논스와 일치하는지 여부를 확인하여 논스 서명값을 검증할 수 있다.Also, the virtual asset service providing server 200 may verify the nonce signature value by decrypting the nonce signature value using the recipient public key to obtain the nonce. That is, it is possible to verify the nonce signature value by checking whether the nonce obtained by decoding the nonce signature value matches the nonce transmitted to the sender terminal 100a when the receiver KYC registration is requested.

이후, 가상 자산 서비스 제공 서버(200)는 수신자 서명값이 검증되며, 제1 수신자 가상 자산 어드레스와 제2 수신자 가상 자산 어드레스가 일치하면, 제1 수신자 가상 자산 어드레스를 화이트리스트에 등록(S214)하며, 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송(S215)하여 줄 수 있다.Thereafter, the virtual asset service providing server 200 verifies the recipient's signature value, and if the first recipient virtual asset address and the second recipient virtual asset address match, register the first recipient virtual asset address in the white list (S214). , The virtual asset may be transmitted from the sender virtual asset address to the first recipient virtual asset address (S215).

다음으로, 본 발명의 또 다른 실시예에 따른 DID 기반의 가상 자산 서비스를 제공하는 방법을 도 4를 참조하여 설명하면 다음과 같다. 이하에서는 도 2와 도3을 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.Next, a method of providing a DID-based virtual asset service according to another embodiment of the present invention will be described with reference to FIG. 4. Hereinafter, detailed descriptions of parts that can be easily understood from the description with reference to FIGS. 2 and 3 will be omitted.

가상 자산을 전송하고자 하는 송신자가 자신이 소유한 사용자 단말인 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청(S301)을 한다.A virtual asset including a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset to the virtual asset service providing server 200 through the sender terminal 100a, which is a user terminal owned by the sender who wants to transmit the virtual asset. An asset transfer request (S301) is made.

이때, 가상 자산 서비스 제공 서버(200)는 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태일 수 있으며, 송신자에 대응되는 송신자 가상 자산 어드레스는 화이트리스트에 등록된 상태일 수 있다.At this time, the virtual asset service providing server 200 may be in a state of registering and managing virtual asset addresses of each of the users in a white list according to the authentication result of KYC information corresponding to each of the users, and the sender virtual corresponding to the sender The asset address may be registered in the white list.

그러면, 가상 자산 서비스 제공 서버(200)는 가상 자산의 전송이 요청된 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인(S302)할 수 있다.Then, the virtual asset service providing server 200 may check whether the first recipient virtual asset address for which transmission of the virtual asset is requested is registered in the white list (S302).

이때, 가상 자산 전송 요청 시, 송신자 단말(100a)은 송신자 DID를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 가상 자산 어드레스를 획득하고, 획득된 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다. 또한, 가상 자산 전송 요청 송신자 단말(100a)은 송신자 가상 자산 어드레스를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다.At this time, when requesting a virtual asset transmission, the sender terminal 100a may transmit the sender DID to the virtual asset service providing server 200, and accordingly, the virtual asset service providing server 200 blocks using the sender DID. It is possible to confirm that the sender is a normal user by acquiring the sender virtual asset address from the chain network 500 and checking whether the acquired sender virtual asset address is registered in the white list. In addition, the virtual asset transmission request sender terminal 100a may transmit the sender virtual asset address to the virtual asset service providing server 200, and accordingly, the virtual asset service providing server 200 has a white sender virtual asset address. You can confirm that the sender is a normal user by checking whether it is registered in the list.

그리고, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는 경우에는, 가상 자산 서비스 제공 서버(200)는 수신자가 정상적인 사용자임을 확인하고, 전송 요청된 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송하여 줄 수 있다.And, as a result of checking whether the first recipient virtual asset address is registered in the white list, if the first recipient virtual asset address is registered in the white list, the virtual asset service providing server 200 confirms that the recipient is a normal user. Then, the virtual asset requested to be transmitted may be transmitted from the sender virtual asset address to the first recipient virtual asset address.

한편, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있지 않을 경우에는, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로 수신자 KYC 등록을 요청(S303)을 할 수 있다.On the other hand, as a result of checking whether the first recipient virtual asset address is registered in the white list, if the first recipient virtual asset address is not registered in the white list, the virtual asset service providing server 200 is the sender terminal 100a. The recipient can request KYC registration (S303).

그러면, 송신자 단말(100a)은 수신자가 소유한 단말인 수신자 단말(100b)로 수신자 KYC 등록을 요청(S304)한다.Then, the sender terminal 100a requests (S304) the receiver's KYC registration from the receiver's terminal 100b, which is a terminal owned by the receiver.

그리고, 수신자 단말(100b)은 송신자 단말9100a)로부터의 수신자 KYC 등록 요청에 대응하여 가상 자산 서비스 제공 서버(200)로 수신자 등록 요청(S305)한다.Then, the receiver terminal 100b makes a receiver registration request (S305) to the virtual asset service providing server 200 in response to the receiver KYC registration request from the sender terminal 9100a.

이후, 가상 자산 서비스 제공 서버(200)는 수신자 등록 요청에 대응하여 논스를 포함하는 수신자 KYC 요청 정보를 수신자 단말(100b)로 전송(S306)하여 줄 수 있다.Thereafter, the virtual asset service providing server 200 may transmit (S306) the receiver KYC request information including the nonce to the receiver terminal 100b in response to the receiver registration request.

그러면, 수신자 단말(100b)은 인증 서버로 수신자 KYC에 대한 인증을 요청하여 인증 서버가 수신자 KYC를 인증하고 인증된 수신자 KYC에 대응되는 수신자 VC를 전송하도록 함으로써 수신자 VC를 획득(S307)할 수 있다. 이때, 수신자 VC는 수신자 KYC, 수신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.Then, the recipient terminal 100b may obtain the recipient VC by requesting authentication for the recipient KYC to the authentication server, so that the authentication server authenticates the recipient KYC and transmits the recipient VC corresponding to the authenticated recipient KYC (S307). . In this case, the recipient VC may include a recipient KYC, an authentication server signature value in which the recipient KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server.

그리고, 수신자 단말(100b)은 수신자 VC와 논스를 수신자 프라이빗 키로 서명한 제1 수신자 서명값을 생성하고, 수신자 DID와 제1 수신자 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S308)하여 줄 수 있다.Then, the receiver terminal 100b generates a first receiver signature value in which the receiver VC and nonce are signed with the receiver private key, and transmits the receiver DID and the first receiver signature value to the virtual asset service providing server 200 (S308). Can give.

그러면, 가상 자산 서비스 제공 서버(200)는 수신자 단말(100b)로부터 획득된 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S309, S310)하거나, 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S309, S310)하도록 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 수신자 DID 문서에서 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득할 수 있다.Then, the virtual asset service providing server 200 acquires a recipient public key and a second recipient virtual asset address corresponding to the recipient from the blockchain network 500 by using the recipient DID obtained from the recipient terminal 100b (S309, S310) Alternatively, the resolver server 400 may obtain the recipient public key and the second recipient virtual asset address from the blockchain network 500 using the recipient DID (S309 and S310). At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain a recipient DID document corresponding to the recipient from the blockchain network 500 using the recipient DID, and the recipient public key and the recipient public key in the recipient DID document. A second recipient virtual asset address may be obtained.

이후, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 이용하여 제1 수신자 서명값과 제1 수신자 가상 자산 어드레스를 검증(S311)할 수 있다.Thereafter, the virtual asset service providing server 200 may verify the first recipient signature value and the first recipient virtual asset address by using the recipient public key and the second recipient virtual asset address (S311).

즉, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 제1 수신자 서명값을 복호화하여 논스와 수신자 VC를 획득하고, 제1 수신자 서명값으로부터 획득한 논스와 수신자 단말(100b)로 전송한 논스를 비교하여 제1 수신자 서명값을 검증하며, 수신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 수신자 VC를 복호화하여 수신자 KYC를 검증할 수 있다.That is, the virtual asset service providing server 200 decrypts the first recipient signature value using the recipient public key to obtain the nonce and the recipient VC, and transmits the nonce and the recipient terminal 100b obtained from the first recipient's signature value. By comparing one nonce, the first recipient's signature value is verified, and the authentication server public key of the authentication server is obtained from the blockchain network 500 using the authentication server DID included in the recipient VC, or the resolver server 400 authenticates. The server DID is used to obtain an authentication server public key from the blockchain network 500, and the recipient VC can be decrypted using the authentication server public key to verify the recipient KYC.

이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain an authentication server DID document corresponding to the authentication server from the blockchain network 500 using the authentication server DID, and from the authentication server DID document. You can obtain the authentication server public key.

이후, 가상 자산 서비스 제공 서버(200)는 제1 수신자 서명값이 검증되며, 제1 수신자 가상 자산 어드레스와 제2 수신자 가상 자산 어드레스가 일치하면, 제1 수신자 가상 자산 어드레스를 화이트리스트에 등록(S312)하며, 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송(S313)하여 줄 수 있다.Thereafter, the virtual asset service providing server 200 verifies the first recipient's signature value, and if the first recipient virtual asset address and the second recipient virtual asset address match, register the first recipient virtual asset address in the white list (S312). ), the virtual asset may be transmitted from the sender virtual asset address to the first recipient virtual asset address (S313).

다음으로, 본 발명의 또 다른 실시예에 따른 DID 기반의 가상 자산 서비스를 제공하는 방법을 도 5를 참조하여 설명하면 다음과 같다. 이하에서는, 도 2 내지 도 4를 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.Next, a method of providing a DID-based virtual asset service according to another embodiment of the present invention will be described with reference to FIG. 5 as follows. Hereinafter, detailed descriptions of parts that can be easily understood from the description with reference to FIGS. 2 to 4 will be omitted.

가상 자산을 전송하고자 하는 송신자가 자신이 소유한 사용자 단말인 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청(4301)을 한다.A virtual asset including a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset to the virtual asset service providing server 200 through the sender terminal 100a, which is a user terminal owned by the sender who wants to transmit the virtual asset. An asset transfer request 4301 is made.

이때, 가상 자산 서비스 제공 서버(200)는 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태일 수 있으며, 송신자에 대응되는 송신자 가상 자산 어드레스는 화이트리스트에 등록된 상태일 수 있다.At this time, the virtual asset service providing server 200 may be in a state of registering and managing virtual asset addresses of each of the users in a white list according to the authentication result of KYC information corresponding to each of the users, and the sender virtual corresponding to the sender The asset address may be registered in the white list.

그러면, 가상 자산 서비스 제공 서버(200)는 가상 자산의 전송이 요청된 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인(S402)할 수 있다.Then, the virtual asset service providing server 200 may check whether the first recipient virtual asset address for which transmission of the virtual asset is requested is registered in the white list (S402).

이때, 가상 자산 전송 요청 시, 송신자 단말(100a)은 송신자 DID를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 가상 자산 어드레스를 획득하고, 획득된 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다. 또한, 가상 자산 전송 요청 송신자 단말(100a)은 송신자 가상 자산 어드레스를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다.At this time, when requesting a virtual asset transmission, the sender terminal 100a may transmit the sender DID to the virtual asset service providing server 200, and accordingly, the virtual asset service providing server 200 blocks using the sender DID. It is possible to confirm that the sender is a normal user by acquiring the sender virtual asset address from the chain network 500 and checking whether the acquired sender virtual asset address is registered in the white list. In addition, the virtual asset transmission request sender terminal 100a may transmit the sender virtual asset address to the virtual asset service providing server 200, and accordingly, the virtual asset service providing server 200 has a white sender virtual asset address. You can confirm that the sender is a normal user by checking whether it is registered in the list.

그리고, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는 경우에는, 가상 자산 서비스 제공 서버(200)는 수신자가 정상적인 사용자임을 확인하고, 전송 요청된 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송하여 줄 수 있다.And, as a result of checking whether the first recipient virtual asset address is registered in the white list, if the first recipient virtual asset address is registered in the white list, the virtual asset service providing server 200 confirms that the recipient is a normal user. Then, the virtual asset requested to be transmitted may be transmitted from the sender virtual asset address to the first recipient virtual asset address.

한편, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있지 않을 경우에는, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로 수신자 KYC 등록을 요청(S403)을 할 수 있다.On the other hand, as a result of checking whether the first recipient virtual asset address is registered in the white list, if the first recipient virtual asset address is not registered in the white list, the virtual asset service providing server 200 is the sender terminal 100a. The recipient KYC registration can be requested (S403).

그러면, 송신자 단말(100a)은 수신자가 소유한 단말인 수신자 단말(100b)로 수신자 KYC 등록을 요청(S404)한다.Then, the sender terminal 100a requests (S404) the receiver's KYC registration from the receiver's terminal 100b, which is a terminal owned by the receiver.

그리고, 수신자 단말(100b)은 송신자 단말9100a)로부터의 수신자 KYC 등록 요청에 대응하여 가상 자산 서비스 제공 서버(200)로 수신자 등록 요청(S405)한다.Then, the receiver terminal 100b makes a receiver registration request (S405) to the virtual asset service providing server 200 in response to the receiver KYC registration request from the sender terminal 9100a.

이후, 가상 자산 서비스 제공 서버(200)는 수신자 등록 요청에 대응하여 논스를 포함하는 수신자 KYC 요청 정보를 수신자 단말(100b)로 전송(S406)하여 줄 수 있다.Thereafter, the virtual asset service providing server 200 may transmit (S406) the receiver KYC request information including the nonce to the receiver terminal 100b in response to the receiver registration request.

그러면, 수신자 단말(100b)은 인증 서버로 수신자 KYC에 대한 인증을 요청하여 인증 서버가 수신자 KYC를 인증하고 인증된 수신자 KYC에 대응되는 수신자 VC를 전송하도록 함으로써 수신자 VC를 획득(S407)할 수 있다. 이때, 수신자 VC는 수신자 KYC, 수신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.Then, the recipient terminal 100b may obtain the recipient VC by requesting authentication for the recipient KYC to the authentication server, so that the authentication server authenticates the recipient KYC and transmits the recipient VC corresponding to the authenticated recipient KYC (S407). . In this case, the recipient VC may include a recipient KYC, an authentication server signature value in which the recipient KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server.

그리고, 수신자 단말(100b)은 수신자 VC를 수신자 프라이빗 키로 서명한 제2 수신자 서명값을 생성하고, 제2 수신자 서명값을 데이터 허브(300)에 등록(S408)하여 줄 수 있다.In addition, the recipient terminal 100b may generate a second recipient signature value in which the recipient VC is signed with the recipient private key, and register the second recipient signature value in the data hub 300 (S408).

이후, 수신자 단말(100b)은 논스를 수신자 프라이빗 키로 서명한 논스 서명값을 생성하고, 수신자 DID와 논스 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S409)하여 줄 수 있다.Thereafter, the recipient terminal 100b may generate a nonce signature value in which the nonce is signed with the recipient private key, and transmit the recipient DID and the nonce signature value to the virtual asset service providing server 200 (S409).

그러면, 가상 자산 서비스 제공 서버(200)는 수신자 단말9100b)로부터 획득된 수신자 DID를 이용하여 데이터 허브(300)로부터 제2 수신자 서명값을 획득(S410, S411)할 수 있다.Then, the virtual asset service providing server 200 may obtain the second recipient signature value from the data hub 300 by using the recipient DID obtained from the recipient terminal 9100b (S410, S411).

그리고, 가상 자산 서비스 제공 서버(200)는 수신자 단말(100b)로부터 획득된 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S412, S413)하거나, 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S412, S413)하도록 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 수신자 DID 문서에서 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득할 수 있다.Then, the virtual asset service providing server 200 acquires a recipient public key and a second recipient virtual asset address corresponding to the recipient from the blockchain network 500 by using the recipient DID obtained from the recipient terminal 100b (S412, S413) Alternatively, the resolver server 400 may obtain the recipient public key and the second recipient virtual asset address from the blockchain network 500 using the recipient DID (S412, S413). At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain a recipient DID document corresponding to the recipient from the blockchain network 500 using the recipient DID, and the recipient public key and the recipient public key in the recipient DID document. A second recipient virtual asset address may be obtained.

이후, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 이용하여 논스 서명값, 제2 수신자 서명값, 및 제1 수신자 가상 자산 어드레스를 검증(S414)할 수 있다.Thereafter, the virtual asset service providing server 200 may verify the nonce signature value, the second recipient signature value, and the first recipient virtual asset address using the recipient public key and the second recipient virtual asset address (S414).

즉, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 논스 서명값을 복호화하여 논스를 획득하고, 수신자 퍼블릭 키를 이용하여 제2 수신자 서명값을 복호화하여 수신자 VC를 획득한다. 그리고, 논스 서명값으로부터 획득한 논스와 수신자 단말(100b)로 전송한 논스를 비교하여 논스 서명값을 검증하며, 수신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 수신자 VC를 복호화하여 수신자 KYC를 검증할 수 있다.That is, the virtual asset service providing server 200 decrypts the nonce signature value using the recipient public key to obtain the nonce, and decrypts the second recipient signature value using the recipient public key to obtain the recipient VC. Then, the nonce obtained from the nonce signature value is compared with the nonce transmitted to the recipient terminal 100b to verify the nonce signature value, and the authentication server from the blockchain network 500 is used by using the authentication server DID included in the recipient VC. Obtain the authentication server public key or allow the resolver server 400 to obtain the authentication server public key from the blockchain network 500 using the authentication server DID, and decrypt the recipient VC using the authentication server public key to decrypt the recipient KYC. Can be verified.

이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain an authentication server DID document corresponding to the authentication server from the blockchain network 500 using the authentication server DID, and from the authentication server DID document. You can obtain the authentication server public key.

이후, 가상 자산 서비스 제공 서버(200)는 제2 수신자 서명값이 검증되며, 제1 수신자 가상 자산 어드레스와 제2 수신자 가상 자산 어드레스가 일치하면, 제1 수신자 가상 자산 어드레스를 화이트리스트에 등록(S415)하며, 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송(S416)하여 줄 수 있다.Thereafter, the virtual asset service providing server 200 verifies the second recipient's signature value, and if the first recipient virtual asset address and the second recipient virtual asset address match, register the first recipient virtual asset address in the white list (S415 ), and transmits the virtual asset from the sender virtual asset address to the first recipient virtual asset address (S416).

다음으로, 도 6을 참조하여, 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법에서 사용자를 등록하는 과정을 설명하면 다음과 같다. 이하에서는 도 2 내지 도 5를 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다. 그리고, 송신자가 사용자 등록하는 과정을 예시적으로 설명하기로 한다.Next, referring to FIG. 6, a process of registering a user in the method for providing a decentralized ID-based virtual asset service according to an embodiment of the present invention will be described as follows. Hereinafter, detailed descriptions of parts that can be easily understood from the description with reference to FIGS. 2 to 5 will be omitted. In addition, a process in which the sender registers a user will be described as an example.

송신자 단말(100a)의 송신자와 가상 자산 서비스 제공 서버(200)는 블록체인 네트워크(500)를 통해 각각의 DID를 발급받은 상태일 수 있다. 즉, 송신자 단말(100a)과 가상 자산 서비스 제공 서버(200)는 각각, 사용자 또는 서버 관리자에 의해 DID 발급 서버로 DID 생성을 요청하며, 그에 따라, DID 발급 서버는 송신자 단말(100a)과 가상 자산 서비스 제공 서버(200)로부터의 각각의 DID 생성 요청에 대응하여 송신자 단말(100a)과 가상 자산 서비스 제공 서버(200) 각각에 대한 DID를 생성하여 주며, 각각의 DID에 대응하는 정보들을 블록체인 네트워크(500)의 분산 원장에 등록하여 줄 수 있다. 이때, DID에 대응되는 정보는 퍼블릭 키, 송신자 또는 가상 자산 서비스 서버의 KYC 정보에 대한 인증 정보 등을 포함할 수 있으나, 이에 한정되지 않으며, DID와 관련한 다양한 정보를 포함할 수 있다. 그리고, 송신자 단말(100a)과 가상 자산 서비스 제공 서버(200)는 각각, DID와 관련한 KYC 정보를 저장할 수 있다. 이때, KYC 정보는 DID에 대응되는 개인 정보 등을 포함할 수 있으며, KYC 정보는 인증 서버를 통해 인증된 정보일 수 있다.The sender of the sender terminal 100a and the virtual asset service providing server 200 may be in a state in which each DID is issued through the blockchain network 500. That is, the sender terminal 100a and the virtual asset service providing server 200 request DID generation to the DID issuing server by a user or a server administrator, respectively, and accordingly, the DID issuing server provides the sender terminal 100a and the virtual asset. In response to each DID generation request from the service providing server 200, a DID is generated for each of the sender terminal 100a and the virtual asset service providing server 200, and information corresponding to each DID is stored in a blockchain network. It can be registered in the distributed ledger of 500. In this case, the information corresponding to the DID may include a public key, authentication information for KYC information of a sender or a virtual asset service server, but is not limited thereto, and may include various information related to DID. In addition, the sender terminal 100a and the virtual asset service providing server 200 may each store KYC information related to DID. In this case, the KYC information may include personal information corresponding to the DID, and the KYC information may be information authenticated through an authentication server.

이와 같은 상태에서, 송신자는 가상 자산의 거래를 위하여 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 사용자 등록을 요청(S501)할 수 있다.In this state, the sender may request a user registration to the virtual asset service providing server 200 through the sender terminal 100a for transaction of the virtual asset (S501).

그리고, 가상 자산 서비스 제공 서버(200)는 사용자 등록 요청에 대응하여 송신자 단말(100a)로 논스를 포함하는 송신자 KYC 등록 요청 정보를 전송(S502)할 수 있다.In addition, the virtual asset service providing server 200 may transmit the sender KYC registration request information including the nonce to the sender terminal 100a in response to the user registration request (S502).

그러면, 송신자 단말(100a)은 인증 서버를 통해 송신자 KYC를 인증한 송신자 VC를 획득(S503)할 수 있다. 이때, 송신자 VC는 송신자 KYC, 송신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.Then, the sender terminal 100a may obtain the sender VC having authenticated the sender KYC through the authentication server (S503). In this case, the sender VC may include a sender KYC, an authentication server signature value in which the sender KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server.

그리고, 송신자 단말(100a)은 송신자 DID와, 논스와 송신자 VC를 송신자 프라이빗 키로 서명한 송신자 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S504)하여 줄 수 있다.In addition, the sender terminal 100a may transmit the sender DID and the sender signature value of signing the nonce and the sender VC with the sender private key to the virtual asset service providing server 200 (S504).

이후, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로부터 획득되는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자에 대응되는 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득(S505, S506)하거나 리졸버 서버(400)로 하여금 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득(S505, S506)하도록 할 수 있다.Thereafter, the virtual asset service providing server 200 acquires a sender public key and a sender virtual asset address corresponding to the sender from the blockchain network 500 using the sender DID obtained from the sender terminal 100a (S505, S506). Alternatively, the resolver server 400 may use the sender DID to obtain the sender public key and the sender virtual asset address from the blockchain network 500 (S505, S506).

그리고, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 송신자 서명값을 검증(S507)할 수 있다.In addition, the virtual asset service providing server 200 may verify the sender's signature value using the sender's public key (S507).

즉, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 송신자 서명값을 복호화하여 논스와 송신자 VC를 획득하고, 송신자 서명값으로부터 획득한 논스와 송신자 단말(100a)로 전송한 논스를 비교하여 송신자 서명값을 검증하며, 송신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 송신자 VC를 복호화하여 송신자 KYC를 검증할 수 있다.That is, the virtual asset service providing server 200 decrypts the sender's signature value using the sender's public key to obtain the nonce and the sender VC, and compares the nonce obtained from the sender's signature value with the nonce transmitted to the sender terminal 100a. The sender's signature value is verified by using the authentication server DID included in the sender VC to obtain the authentication server public key of the authentication server from the blockchain network 500, or the resolver server 400 to block using the authentication server DID. The authentication server public key is obtained from the chain network 500, and the sender VC may be decrypted using the authentication server public key to verify the sender KYC.

이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain an authentication server DID document corresponding to the authentication server from the blockchain network 500 using the authentication server DID, and from the authentication server DID document. You can obtain the authentication server public key.

이후, 가상 자산 서비스 제공 서버(200)는 송신자 서명값이 검증되면, 송신자 가상 자산 어드레스를 화이트리스트에 등록(S508)함으로써 송신자를 사용자로 등록하여 줄 수 있다.Thereafter, when the sender's signature value is verified, the virtual asset service providing server 200 may register the sender as a user by registering the sender virtual asset address in the white list (S508).

다음으로, 도 7을 참조하여, 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법에서 사용자를 등록하는 다른 과정을 설명하면 다음과 같다. 이하에서는 도 6을 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.Next, referring to FIG. 7, another process of registering a user in the method for providing a decentralized ID-based virtual asset service according to an embodiment of the present invention will be described as follows. Hereinafter, detailed descriptions of parts that can be easily understood from the description with reference to FIG. 6 will be omitted.

송신자는 가상 자산의 거래를 위하여 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 사용자 등록을 요청(S601)할 수 있다.The sender may request user registration to the virtual asset service providing server 200 through the sender terminal 100a for transaction of the virtual asset (S601).

그리고, 가상 자산 서비스 제공 서버(200)는 사용자 등록 요청에 대응하여 송신자 단말(100a)로 논스를 포함하는 송신자 KYC 등록 요청 정보를 전송(S602)할 수 있다.In addition, the virtual asset service providing server 200 may transmit sender KYC registration request information including nonce to the sender terminal 100a in response to the user registration request (S602).

그러면, 송신자 단말(100a)은 인증 서버를 통해 송신자 KYC를 인증한 송신자 VC를 획득(S603)할 수 있다. 이때, 송신자 VC는 송신자 KYC, 송신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.Then, the sender terminal 100a may obtain the sender VC having authenticated the sender KYC through the authentication server (S603). In this case, the sender VC may include a sender KYC, an authentication server signature value in which the sender KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server.

그리고, 송신자 단말(100a)은 송신자 VC를 송신자 프라이빗 키로 서명한 송신자 서명값을 생성하고, 송신자 서명값을 데이터 허브(300)에 등록(S604)할 수 있다.Then, the sender terminal 100a may generate a sender signature value in which the sender VC is signed with the sender private key, and register the sender signature value in the data hub 300 (S604).

이후, 송신자 단말(100a)은 송신자 DID와, 논스를 송신자 프라이빗 키로 서명한 논스 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S605)하여 줄 수 있다.Thereafter, the sender terminal 100a may transmit the sender DID and the nonce signature value in which the nonce is signed with the sender private key to the virtual asset service providing server 200 (S605).

그러면, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로부터 획득되는 송신자 DID를 이용하여 데이터 허브(300)로부터 송신자 서명값을 획득(S606, S607)하며, 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자에 대응되는 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득(S608, S609)하거나 리졸버 서버(400)로 하여금 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득(S608, S609)하도록 할 수 있다.Then, the virtual asset service providing server 200 acquires the sender's signature value from the data hub 300 using the sender DID obtained from the sender terminal 100a (S606, S607), and uses the sender DID to obtain a blockchain network. Obtain the sender public key and sender virtual asset address corresponding to the sender from 500 (S608, S609) or allow the resolver server 400 to use the sender DID from the blockchain network 500 to send the sender public key and sender virtual asset The address can be acquired (S608, S609).

그리고, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 논스 서명값과 송신자 서명값을 검증(S610)할 수 있다.In addition, the virtual asset service providing server 200 may verify the nonce signature value and the sender signature value using the sender public key (S610).

즉, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 논스 서명값을 복화하여 논스를 획득하고, 논스 서명값으로부터 획득된 논스와 송신자 단말(100a)로 전송한 논스를 비교하여 논스 서명값을 검증할 수 있다. 그리고, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 송신자 서명값을 복호화하여 송신자 VC를 획득하고, 송신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 송신자 VC를 복호화하여 송신자 KYC를 검증할 수 있다.That is, the virtual asset service providing server 200 obtains the nonce by decrypting the nonce signature value using the sender public key, and compares the nonce obtained from the nonce signature value with the nonce transmitted to the sender terminal 100a to sign a nonce Value can be verified. In addition, the virtual asset service providing server 200 decrypts the sender's signature value using the sender's public key to obtain the sender VC, and uses the authentication server DID included in the sender VC to access the authentication server from the blockchain network 500. Obtain the authentication server public key or allow the resolver server 400 to obtain the authentication server public key from the blockchain network 500 using the authentication server DID, and decrypt the sender VC using the authentication server public key to send the sender KYC. Can be verified.

이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.At this time, the virtual asset service providing server 200 causes the resolver server 400 to obtain an authentication server DID document corresponding to the authentication server from the blockchain network 500 using the authentication server DID, and from the authentication server DID document. You can obtain the authentication server public key.

이후, 가상 자산 서비스 제공 서버(200)는 논스 서명값과 송신자 서명값이 검증되면, 송신자 가상 자산 어드레스를 화이트리스트에 등록(S611)함으로써 송신자를 사용자로 등록하여 줄 수 있다.Thereafter, when the nonce signature value and the sender signature value are verified, the virtual asset service providing server 200 may register the sender as a user by registering the sender virtual asset address in the white list (S611).

또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Further, the embodiments according to the present invention described above may be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded in the computer-readable recording medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in the computer software field. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magnetic-optical media such as floptical disks. media), and a hardware device specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those produced by a compiler but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.In the above, the present invention has been described by specific matters such as specific elements and limited embodiments and drawings, but this is provided only to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , Anyone with ordinary knowledge in the technical field to which the present invention pertains can make various modifications and variations from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is limited to the above-described embodiments and should not be defined, and all modifications that are equally or equivalent to the claims as well as the claims to be described later fall within the scope of the spirit of the present invention. I would say.

100: 사용자 단말,
200: 가상 자산 서비스 제공 서버,
300: 데이터 허브,
400: 리졸버 서버,
500: 블록체인 네트워크
100: user terminal,
200: virtual asset service providing server,
300: data hub,
400: resolver server,
500: blockchain network

Claims (20)

탈중앙화 아이디(decentralized identifier, DID) 기반으로 가상 자산 서비스를 제공하는 방법에 있어서,
(a) 사용자들 각각에 대응되는 KYC(known your customer) 정보의 인증 결과에 따라 상기 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태에서, 송신자 단말 - 상기 송신자 단말은 가상 자산을 전송하고자 하는 송신자가 소유한 단말이며, 상기 송신자에 대응되는 송신자 가상 자산 어드레스는 상기 화이트리스트에 등록된 상태임 - 로부터 상기 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청이 획득되면, 가상 자산 서비스 제공 서버가, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있는지를 확인하며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있을 경우에는, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있지 않을 경우에는, (i) 상기 송신자 단말로 하여금 수신자 단말 - 상기 수신자 단말은 상기 수신자가 소유한 단말임- 로 수신자 KYC 등록을 요청하여 상기 수신자 단말이 인증 서버를 통해 수신자 KYC를 인증한 수신자 VC(verifiable credential)를 획득하도록 하고, 상기 수신자 단말로부터 수신자 DID와, 상기 수신자 VC를 수신자 프라이빗 키로 서명한 수신자 서명값을 획득하며, 상기 수신자 DID와 상기 수신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제1-1 프로세스를 수행하거나, (ii) 상기 송신자 단말로 하여금 상기 수신자 단말로 상기 수신자 KYC 등록을 요청하여 상기 수신자 단말이 상기 인증 서버를 통해 상기 수신자 KYC를 인증한 상기 수신자 VC를 획득하며, 상기 수신자 VC를 상기 수신자 프라이빗 키로 서명한 상기 수신자 서명값을 데이터 허브에 등록하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID를 획득하며, 상기 수신자 DID를 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제1-2 프로세스를 수행하는 단계; 및
(b) 상기 가상 자산 서비스 제공 서버가, (i) 상기 제1-1 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 블록체인 네트워크로부터 상시 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득하거나 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제2-1 프로세스를 수행하거나, (ii) 상기 제1-2 프로세스에 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 상기 데이터 허브로부터 상기 수신자 서명값을 획득하고, 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제2-2 프로세스를 수행하며, 상기 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하면, 상기 제1 수신자 가상 자산 어드레스를 상기 화이트리스트에 등록하며, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주는 단계;
를 포함하는 방법.
In a method of providing a virtual asset service based on a decentralized identifier (DID),
(a) In a state in which virtual asset addresses of each of the users are registered and managed in a white list according to the authentication result of KYC (known your customer) information corresponding to each of the users, the sender terminal-the sender terminal It is a terminal owned by the sender to be transmitted, and the sender virtual asset address corresponding to the sender is registered in the whitelist-A virtual asset including a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset from When an asset transmission request is obtained, the virtual asset service providing server checks whether the first recipient virtual asset address is registered in the whitelist, and if the first recipient virtual asset address is registered in the whitelist, , The virtual asset is transmitted from the sender virtual asset address to the first recipient virtual asset address, and when the first recipient virtual asset address is not registered in the whitelist, (i) the sender terminal Recipient terminal-The recipient terminal is a terminal owned by the recipient- by requesting a recipient KYC registration so that the recipient terminal obtains a recipient VC (verifiable credential) that authenticates the recipient KYC through an authentication server, and from the recipient terminal Acquire a recipient DID and a recipient signature value signed by the recipient VC with a recipient private key, and perform a 1-1 process of transmitting the recipient DID and the recipient signature value to the virtual asset service providing server, or (ii ) The sender terminal requests the receiver terminal to register the receiver KYC to obtain the receiver VC that authenticates the receiver KYC through the authentication server, and signs the receiver VC with the receiver private key. Register the recipient's signature value in the data hub, obtain the recipient DID from the recipient terminal, and obtain the recipient DID Performing a 1-2 process for transmitting to the virtual asset service providing server; And
(b) the virtual asset service providing server includes: (i) a recipient public key and a second recipient corresponding to the recipient from the blockchain network using the recipient DID obtained from the recipient terminal by the 1-1 process. Obtaining a virtual asset address or causing a resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and the recipient public key and the second recipient virtual asset address Performing a 2-1 process of verifying the recipient signature value and the first recipient virtual asset address using, or (ii) using the recipient DID obtained from the recipient terminal in the 1-2 process The recipient's signature value is obtained from a data hub, and the recipient public key and the second recipient virtual asset address corresponding to the recipient are obtained from the blockchain network using the recipient DID, or the resolver server causes the recipient DID To obtain the recipient public key and the second recipient virtual asset address from the blockchain network, and the recipient signature value and the first recipient virtual asset address using the recipient public key and the second recipient virtual asset address Perform a 2-2 process of verifying the asset address, the recipient signature value is verified, and if the first recipient virtual asset address and the second recipient virtual asset address match, the first recipient virtual asset address Registering in a white list and transmitting the virtual asset from the sender virtual asset address to the first recipient virtual asset address;
How to include.
제1항에 있어서,
상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
상기 (b) 단계에서,
상기 가상 자산 서비스 제공 서버는, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증하는 방법.
The method of claim 1,
The recipient VC includes the recipient KYC, an authentication server signature value that signed the recipient KYC with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server,
In step (b),
The virtual asset service providing server obtains the recipient VC by decrypting the recipient signature value using the recipient public key, and the authentication server from the blockchain network using the authentication server DID included in the recipient VC To obtain the authentication server public key of or have the resolver server obtain the authentication server public key from the blockchain network using the authentication server DID, and decrypt the recipient VC using the authentication server public key How to verify recipient KYC.
제2항에 있어서,
상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득하는 방법.
The method of claim 2,
The virtual asset service providing server causes the resolver server to obtain an authentication server DID document corresponding to the authentication server from the blockchain network using the authentication server DID, and the authentication server public from the authentication server DID document. How to get the key.
제1항에 있어서,
상기 (a) 단계에서,
상기 가상 자산 서비스 제공 서버는, 상기 송신자 단말로 논스를 전송하며, (i) 상기 제1-1 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 VC에 상기 논스를 추가하여 상기 수신자 서명값을 생성하도록 하거나, (ii) 상기 제1-2 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 프라이빗 키를 이용하여 상기 논스를 서명한 논스 서명값을 생성하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID와 상기 논스 서명값을 획득하여 상기 가상 자산 서비스 제공 서버로 전송하도록 하며,
상기 (b) 단계에서,
상기 가상 자산 서비스 제공 서버는, (i) 상기 제2-1 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 논스를 획득하여 상기 수신자 서명값을 검증하거나, (ii) 상기 제2-2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 논스 서명값을 복호화하여 상기 논스 서명값을 검증하는 방법.
The method of claim 1,
In step (a),
The virtual asset service providing server transmits a nonce to the sender terminal, and (i) by the 1-1 process, the sender terminal transmits the nonce to the receiver terminal so that the receiver terminal transmits the nonce to the receiver VC The nonce is added to to generate the receiver signature value, or (ii) by the 1-2 process, the sender terminal transmits the nonce to the receiver terminal so that the receiver terminal receives the receiver private key. To generate a nonce signature value that signs the nonce using, obtain the receiver DID and the nonce signature value from the receiver terminal and transmit it to the virtual asset service providing server,
In step (b),
The virtual asset service providing server, (i) in the 2-1 process, decrypts the recipient's signature value using the recipient's public key to obtain the nonce to verify the recipient's signature value, or (ii) the In process 2-2, a method of verifying the nonce signature value by decrypting the nonce signature value using the recipient public key.
제1항에 있어서,
상기 (b) 단계에서,
상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 상기 수신자 DID 문서에서 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하는 방법.
The method of claim 1,
In step (b),
The virtual asset service providing server causes the resolver server to obtain a recipient DID document corresponding to the recipient from the blockchain network using the recipient DID, and the recipient public key and the second recipient in the recipient DID document How to obtain a recipient virtual asset address.
제1항에 있어서,
상기 (a) 단계 이전에,
(a01) 상기 송신자 단말로부터 사용자 등록 요청이 획득되면, 상기 가상 자산 서비스 제공 서버가, 상기 송신자 단말로 논스를 포함하는 송신자 KYC 등록을 요청하여, (i) 상기 송신자 단말로 하여금 상기 인증 서버를 통해 송신자 KYC를 인증한 송신자 VC를 획득하도록 하고, 송신자 DID와, 상기 논스와 상기 송신자 VC를 송신자 프라이빗 키로 서명한 송신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제3-1 프로세스를 수행하거나, (ii) 상기 송신자 단말로 하여금 상기 인증 서버를 통해 상기 송신자 KYC를 인증한 상기 송신자 VC를 획득하고, 상기 송신자 VC를 상기 송신자 프라이빗 키로 서명한 상기 송신자 서명값을 상기 데이터 허브에 등록하도록 하고, 상기 송신자 DID와, 상기 논스를 상기 송신자 프라이빗 키로 서명한 논스 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제3-2 프로세스를 수행하는 단계; 및
(a02) 상기 가상 자산 서비스 제공 서버가, (i) 상기 제3-1 프로세스에 의해 상기 송신자 단말로부터 획득되는 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자에 대응되는 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 송신자 가상 자산 어드레스를 획득하도록 하며, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 검증하는 제4-1 프로세스를 수행하거나, (ii) 상기 제3-2 프로세스에 의해 상기 송신자 단말로부터 획득되는 상기 송신자 DID를 이용하여 상기 데이터 허브로부터 상기 송신자 서명값을 획득하고, 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 송신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 송신자 가상 자산 어드레스를 획득하도록 하며, 상기 송신자 퍼블릭 키를 이용하여 상기 논스 서명값 및 상기 송신자 서명값을 검증하는 제4-2 프로세스를 수행하며, 상기 송신자 서명값이 검증되거나 상기 논스 서명값과 상기 송신자 서명값이 검증되면, 상기 송신자 가상 어드레스를 상기 화이트리스트에 등록하는 단계;
를 더 포함하는 방법.
The method of claim 1,
Before step (a),
(a01) When a user registration request is obtained from the sender terminal, the virtual asset service providing server requests the sender terminal to register a sender KYC including nonce, and (i) the sender terminal causes the authentication server to Perform a 3-1 process of obtaining a sender VC that authenticates the sender KYC, and transmitting the sender DID and the sender signature value of signing the nonce and the sender VC with the sender private key to the virtual asset service providing server, or , (ii) causing the sender terminal to obtain the sender VC that authenticated the sender KYC through the authentication server, and register the sender signature value, which signed the sender VC with the sender private key, in the data hub, Performing a 3-2 process of transmitting the sender DID and the nonce signature value of signing the nonce with the sender private key to the virtual asset service providing server; And
(a02) The virtual asset service providing server includes: (i) a sender public key corresponding to the sender from the blockchain network and a sender virtual using the sender DID obtained from the sender terminal by the 3-1 process. Obtaining an asset address or causing the resolver server to obtain the sender public key and the sender virtual asset address from the blockchain network using the sender DID, and verify the sender signature value using the sender public key. Perform a 4-1 process, or (ii) obtain the sender signature value from the data hub using the sender DID obtained from the sender terminal by the 3-2 process, and use the sender DID Obtaining the sender public key and the sender virtual asset address from the blockchain network, or causing the resolver server to obtain the sender public key and the sender virtual asset address from the blockchain network using the sender DID, the Performs a 4-2 process of verifying the nonce signature value and the sender signature value using a sender public key, and when the sender signature value is verified or the nonce signature value and the sender signature value are verified, the sender virtual Registering an address in the white list;
How to further include.
제6항에 있어서,
상기 송신자 VC는 상기 송신자 KYC, 상기 송신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
상기 (a02) 단계에서,
상기 가상 자산 서비스 제공 서버는, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 복호화하여 상기 송신자 VC를 획득하며, 상기 송신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 송신자 VC를 복호화하여 상기 송신자 KYC를 검증함으로써 상기 송신자 서명값을 검증하는 방법.
The method of claim 6,
The sender VC includes the sender KYC, an authentication server signature value in which the sender KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server,
In step (a02),
The virtual asset service providing server obtains the sender VC by decrypting the sender signature value using the sender public key, and the authentication server from the blockchain network using the authentication server DID included in the sender VC To obtain the authentication server public key of or have the resolver server obtain the authentication server public key from the blockchain network using the authentication server DID, and decrypt the sender VC using the authentication server public key A method of verifying the sender's signature value by verifying the sender's KYC.
제7항에 있어서,
상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득하는 방법.
The method of claim 7,
The virtual asset service providing server causes the resolver server to obtain an authentication server DID document corresponding to the authentication server from the blockchain network using the authentication server DID, and the authentication server public from the authentication server DID document. How to get the key.
탈중앙화 아이디(decentralized identifier, DID) 기반으로 가상 자산 서비스를 제공하는 방법에 있어서,
(a) 사용자들 각각에 대응되는 KYC(known your customer) 정보의 인증 결과에 따라 상기 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태에서, 송신자 단말 - 상기 송신자 단말은 가상 자산을 전송하고자 하는 송신자가 소유한 단말이며, 상기 송신자에 대응되는 송신자 가상 자산 어드레스는 상기 화이트리스트에 등록된 상태임 - 로부터 상기 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청이 획득되면, 가상 자산 서비스 제공 서버가, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있는지를 확인하며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있을 경우에는, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있지 않을 경우에는, 상기 송신자 단말로 하여금 수신자 단말 - 상기 수신자 단말은 상기 수신자가 소유한 단말임- 로 수신자 KYC 등록을 요청하도록 하며, 상기 수신자 KYC 등록 요청에 대응하여 상기 수신자 단말로부터 수신자 등록 요청이 획득되면, 상기 수신자 단말로 논스를 포함하는 수신자 KYC 요청 정보를 전송하여 (i) 상기 수신자 단말로 하여금 인증 서버를 통해 수신자 KYC를 인증한 수신자 VC를 획득하도록 하고, 수신자 DID와, 상기 수신자 VC와 상기 논스를 수신자 프라이빗 키로 서명한 제1 수신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제5-1 프로세스를 수행하거나, (ii) 상기 수신자 단말로 하여금 상기 인증 서버를 통해 상기 수신자 KYC를 인증한 상기 수신자 VC를 획득하고 상기 수신자 VC를 상기 수신자 프라이빗 키로 서명한 제2 수신자 서명값을 데이터 허브로 등록하고, 상기 수신자 DID와, 상기 논스를 상기 수신자 프라이빗 키로 서명한 논스 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제5-2 프로세스를 수행하는 단계; 및
(b) 상기 가상 자산 서비스 제공 서버가, (i) 상기 제5-1 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득하거나 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 제1 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제6-1 프로세스를 수행하거나, (ii) 상기 제5-2 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 상기 데이터 허브로부터 상기 제2 수신자 서명값을 획득하고, 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 논스 서명값, 상기 수신자 서명값 및 상기 제1 수신자 가상 자산 어드레스를 검증하는 제6-2 프로세스를 수행하며, 상기 제1 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하거나, 상기 논스 서명값과 상기 제2 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하면, 상기 제1 수신자 가상 자산 어드레스를 상기 화이트리스트에 등록하며, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주는 단계;
를 포함하는 방법.
In a method of providing a virtual asset service based on a decentralized identifier (DID),
(a) In a state in which virtual asset addresses of each of the users are registered and managed in a white list according to the authentication result of KYC (known your customer) information corresponding to each of the users, the sender terminal-the sender terminal It is a terminal owned by the sender to be transmitted, and the sender virtual asset address corresponding to the sender is registered in the whitelist-A virtual asset including a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset from When an asset transmission request is obtained, the virtual asset service providing server checks whether the first recipient virtual asset address is registered in the whitelist, and if the first recipient virtual asset address is registered in the whitelist, , The virtual asset is transmitted from the sender virtual asset address to the first recipient virtual asset address, and when the first recipient virtual asset address is not registered in the whitelist, the sender terminal causes the recipient terminal- The recipient terminal is a terminal owned by the recipient- so that a recipient KYC registration request is made, and when a recipient registration request is obtained from the recipient terminal in response to the recipient KYC registration request, the recipient KYC including a nonce to the recipient terminal By transmitting the request information (i) the recipient terminal obtains the recipient VC that authenticates the recipient KYC through an authentication server, and the recipient DID, the recipient VC and the first recipient signature value signed with the recipient private key Perform the 5-1 process to transmit the virtual asset service providing server, or (ii) the recipient terminal obtains the recipient VC that authenticated the recipient KYC through the authentication server, and the recipient VC The second recipient's signature value signed with the recipient's private key is registered as a data hub, and the recipient DID and the nonce are signed with the recipient's private key. Performing a 5-2 process of transmitting a name value to the virtual asset service providing server; And
(b) The virtual asset service providing server includes: (i) a recipient public key corresponding to the recipient from the blockchain network and a second recipient using the recipient DID obtained from the recipient terminal by the 5-1 process. Obtaining a virtual asset address or causing a resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and the recipient public key and the second recipient virtual asset address Perform a 6-1 process of verifying the first receiver signature value and the first receiver virtual asset address using (ii) the receiver DID obtained from the receiver terminal by the 5-2 process To obtain the second recipient signature value from the data hub, and to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, or cause the resolver server to perform the recipient DID To obtain the recipient public key and the second recipient virtual asset address from the blockchain network, and use the recipient public key and the second recipient virtual asset address to use the nonce signature value, the recipient signature value, and Perform a 6-2 process of verifying the first recipient virtual asset address, the first recipient signature value is verified, the first recipient virtual asset address and the second recipient virtual asset address match, or the nonce The signature value and the second recipient's signature value are verified, and when the first recipient virtual asset address and the second recipient virtual asset address match, the first recipient virtual asset address is registered in the whitelist, and the virtual asset Transmitting from the sender virtual asset address to the first recipient virtual asset address;
How to include.
제9항에 있어서,
상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
상기 (b) 단계에서,
상기 가상 자산 서비스 제공 서버는, 상기 수신자 퍼블릭 키를 이용하여 상기 제1 수신자 서명값을 복호화하거나 상기 제2 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증하는 방법.
The method of claim 9,
The recipient VC includes the recipient KYC, an authentication server signature value that signed the recipient KYC with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server,
In step (b),
The virtual asset service providing server obtains the recipient VC by decrypting the first recipient signature value or the second recipient signature value using the recipient public key, and the authentication server DID included in the recipient VC Obtain the authentication server public key of the authentication server from the blockchain network by using or cause the resolver server to obtain the authentication server public key from the blockchain network using the authentication server DID, and the authentication server public A method of verifying the recipient KYC by decrypting the recipient VC using a key.
탈중앙화 아이디(decentralized identifier, DID) 기반으로 가상 자산 서비스를 제공하는 가상 자산 서비스 제공 서버에 있어서,
DID 기반으로 가상 자산 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리; 및
상기 메모리에 저장된 상기 인스트럭션들에 따라 상기 DID 기반으로 상기 가상 자산 서비스를 제공하기 위한 동작을 수행하는 프로세서;
를 포함하되,
상기 프로세서는, (I) 사용자들 각각에 대응되는 KYC(known your customer) 정보의 인증 결과에 따라 상기 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태에서, 송신자 단말 - 상기 송신자 단말은 가상 자산을 전송하고자 하는 송신자가 소유한 단말이며, 상기 송신자에 대응되는 송신자 가상 자산 어드레스는 상기 화이트리스트에 등록된 상태임 - 로부터 상기 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청이 획득되면, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있는지를 확인하며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있을 경우에는, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있지 않을 경우에는, (i) 상기 송신자 단말로 하여금 수신자 단말 - 상기 수신자 단말은 상기 수신자가 소유한 단말임- 로 수신자 KYC 등록을 요청하여 상기 수신자 단말이 인증 서버를 통해 수신자 KYC를 인증한 수신자 VC(verifiable credential)를 획득하도록 하고, 상기 수신자 단말로부터 수신자 DID와, 상기 수신자 VC를 수신자 프라이빗 키로 서명한 수신자 서명값을 획득하며, 상기 수신자 DID와 상기 수신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제1-1 프로세스를 수행하거나, (ii) 상기 송신자 단말로 하여금 상기 수신자 단말로 상기 수신자 KYC 등록을 요청하여 상기 수신자 단말이 상기 인증 서버를 통해 상기 수신자 KYC를 인증한 상기 수신자 VC를 획득하며, 상기 수신자 VC를 상기 수신자 프라이빗 키로 서명한 상기 수신자 서명값을 데이터 허브에 등록하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID를 획득하며, 상기 수신자 DID를 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제1-2 프로세스를 수행하는 제1 프로세스, 및 (II) (i) 상기 제1-1 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 블록체인 네트워크로부터 상시 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득하거나 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제2-1 프로세스를 수행하거나, (ii) 상기 제1-2 프로세스에 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 상기 데이터 허브로부터 상기 수신자 서명값을 획득하고, 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제2-2 프로세스를 수행하며, 상기 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하면, 상기 제1 수신자 가상 자산 어드레스를 상기 화이트리스트에 등록하며, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주는 제2 프로세스를 수행하는 가상 자산 서비스 제공 서버.
In a virtual asset service providing server that provides a virtual asset service based on a decentralized identifier (DID),
A memory storing instructions for providing a virtual asset service based on DID; And
A processor that performs an operation for providing the virtual asset service based on the DID according to the instructions stored in the memory;
Including,
The processor, in a state in which (I) the virtual asset addresses of each of the users are registered and managed in a white list according to the authentication result of KYC (known your customer) information corresponding to each of the users, the sender terminal-the sender terminal Is a terminal owned by a sender who wants to transmit a virtual asset, and a sender virtual asset address corresponding to the sender is registered in the whitelist-a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset from When a virtual asset transmission request including a is obtained, it is checked whether the first recipient virtual asset address is registered in the whitelist, and when the first recipient virtual asset address is registered in the whitelist, the virtual The asset is transmitted from the sender virtual asset address to the first recipient virtual asset address, and when the first recipient virtual asset address is not registered in the whitelist, (i) the sender terminal causes the recipient terminal- The recipient terminal is a terminal owned by the recipient- and requests recipient KYC registration so that the recipient terminal obtains a recipient VC (verifiable credential) that authenticates the recipient KYC through an authentication server, and the recipient DID and the recipient DID from the recipient terminal , Acquiring a recipient signature value signed by the recipient VC with a recipient private key, and performing a 1-1 process of transmitting the recipient DID and the recipient signature value to the virtual asset service providing server, or (ii) the sender The recipient terminal obtains the recipient VC that authenticates the recipient KYC through the authentication server by requesting the recipient terminal to register the recipient KYC from the recipient terminal, and the recipient's signature value signed the recipient VC with the recipient private key To register in a data hub, obtain the receiver DID from the receiver terminal, and set the receiver DID to the virtual Blockchain network using the first process to perform the 1-2 process to be transmitted to the live service providing server, and (II) (i) the receiver DID obtained from the receiver terminal by the 1-1 process Obtain a recipient public key and a second recipient virtual asset address corresponding to the recipient from all times, or cause a resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID. , Performing a 2-1 process of verifying the recipient signature value and the first recipient virtual asset address using the recipient public key and the second recipient virtual asset address, or (ii) in the 1-2 process The receiver's signature value is obtained from the data hub by using the receiver DID obtained from the receiver terminal, and the receiver public key corresponding to the receiver from the blockchain network and the second receiver virtual using the receiver DID Obtaining an asset address or causing the resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and the recipient public key and the second recipient virtual asset address Perform a 2-2 process of verifying the recipient signature value and the first recipient virtual asset address by using, and the recipient signature value is verified, the first recipient virtual asset address and the second recipient virtual asset address If is matched, the first recipient virtual asset address is registered in the whitelist, and a second process is performed for transmitting the virtual asset from the sender virtual asset address to the first recipient virtual asset address server.
제11항에 있어서,
상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
상기 프로세서는,
상기 제2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증하는 가상 자산 서비스 제공 서버.
The method of claim 11,
The recipient VC includes the recipient KYC, an authentication server signature value that signed the recipient KYC with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server,
The processor,
In the second process, the recipient's signature value is decrypted using the recipient's public key to obtain the recipient VC, and authentication of the authentication server from the blockchain network using the authentication server DID included in the recipient VC Obtain a server public key or cause the resolver server to obtain the authentication server public key from the blockchain network using the authentication server DID, and decrypt the recipient VC using the authentication server public key, and the recipient KYC Virtual asset service providing server to verify the.
제12항에 있어서,
상기 프로세서는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득하는 가상 자산 서비스 제공 서버.
The method of claim 12,
The processor causes the resolver server to obtain an authentication server DID document corresponding to the authentication server from the blockchain network using the authentication server DID, and to obtain the authentication server public key from the authentication server DID document. Virtual asset service providing server.
제11항에 있어서,
상기 프로세서는,
상기 제1 프로세스에서, 상기 송신자 단말로 논스를 전송하며, (i) 상기 제1-1 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 VC에 상기 논스를 추가하여 상기 수신자 서명값을 생성하도록 하거나, (ii) 상기 제1-2 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 프라이빗 키를 이용하여 상기 논스를 서명한 논스 서명값을 생성하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID와 상기 논스 서명값을 획득하여 상기 가상 자산 서비스 제공 서버로 전송하도록 하며,
상기 제2 프로세스에서, (i) 상기 제2-1 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 논스를 획득하여 상기 수신자 서명값을 검증하거나, (ii) 상기 제2-2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 논스 서명값을 복호화하여 상기 논스 서명값을 검증하는 가상 자산 서비스 제공 서버.
The method of claim 11,
The processor,
In the first process, a nonce is transmitted to the sender terminal, and (i) by the 1-1 process, the sender terminal transmits the nonce to the receiver terminal, and the receiver terminal transmits the nonce to the receiver VC. Add a nonce to generate the recipient's signature value, or (ii) by the 1-2 process, the sender terminal transmits the nonce to the recipient terminal so that the recipient terminal uses the recipient private key Generate a nonce signature value that signed the nonce, obtain the receiver DID and the nonce signature value from the receiver terminal, and transmit it to the virtual asset service providing server,
In the second process, (i) in the 2-1 process, the receiver signature value is decrypted using the receiver public key to obtain the nonce to verify the receiver signature value, or (ii) the second In process -2, a virtual asset service providing server that decrypts the nonce signature value using the recipient public key to verify the nonce signature value.
제11항에 있어서,
상기 프로세서는,
상기 제2 프로세스에서, 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 상기 수신자 DID 문서에서 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하는 가상 자산 서비스 제공 서버.
The method of claim 11,
The processor,
In the second process, the resolver server obtains a recipient DID document corresponding to the recipient from the blockchain network by using the recipient DID, and the recipient public key and the second recipient virtual in the recipient DID document A virtual asset service providing server that acquires an asset address.
제11항에 있어서,
상기 프로세서는,
상기 제1 프로세스 이전에,
(III) 상기 송신자 단말로부터 제1 송신자 가상 자산 어드레스에 포함하는 사용자 등록 요청이 획득되면, 상기 송신자 단말로 논스를 포함하는 송신자 KYC 등록을 요청하여, (i) 상기 송신자 단말로 하여금 상기 인증 서버를 통해 송신자 KYC를 인증한 송신자 VC를 획득하도록 하고, 송신자 DID와, 상기 논스와 상기 송신자 VC를 송신자 프라이빗 키로 서명한 송신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제3-1 프로세스를 수행하거나, (ii) 상기 송신자 단말로 하여금 상기 인증 서버를 통해 상기 송신자 KYC를 인증한 상기 송신자 VC를 획득하고, 상기 송신자 VC를 상기 송신자 프라이빗 키로 서명한 상기 송신자 서명값을 상기 데이터 허브에 등록하도록 하고, 상기 송신자 DID와, 상기 논스를 상기 송신자 프라이빗 키로 서명한 논스 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제3-2 프로세스를 수행하는 제3 프로세스, 및 (IV) (i) 상기 제3-1 프로세스에 의해 상기 송신자 단말로부터 획득되는 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자에 대응되는 송신자 퍼블릭 키와 제2 송신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 획득하도록 하며, 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 이용하여 상기 송신자 서명값과 상기 제1 송신자 가상 자산 어드레스를 검증하는 제4-1 프로세스를 수행하거나, (ii) 상기 제3-2 프로세스에 의해 상기 송신자 단말로부터 획득되는 상기 송신자 DID를 이용하여 상기 데이터 허브로부터 상기 송신자 서명값을 획득하고, 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 송신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 획득하도록 하며, 상기 송신자 퍼블릭 키와 상기 제2 송신자 가상 자산 어드레스를 이용하여 상기 논스 서명값, 상기 송신자 서명값, 및 상기 제1 송신자 가상 자산 어드레스를 검증하는 제4-2 프로세스를 수행하며, 상기 송신자 서명값이 검증되거나 상기 논스 서명값과 상기 송신자 서명값이 검증되며, 상기 제1 송신자 가상 자산 어드레스와 상기 제2 송신자 가상 자산 어드레스가 일치되면, 상기 제1 송신자 가상 자산 어드레스를 상기 송신자 가상 어드레스로 상기 화이트리스트에 등록하는 제4 프로세스를 더 수행하는 가상 자산 서비스 제공 서버.
The method of claim 11,
The processor,
Before the first process,
(III) When a user registration request included in the first sender virtual asset address is obtained from the sender terminal, a sender KYC registration including nonce is requested to the sender terminal, and (i) the sender terminal requests the authentication server. Perform a 3-1 process of obtaining a sender VC that authenticates the sender KYC through the sender DID and the sender's signature value signed with the sender's private key and the nonce and the sender's VC to the virtual asset service providing server Or (ii) causing the sender terminal to obtain the sender VC that authenticated the sender KYC through the authentication server, and register the sender signature value, which signed the sender VC with the sender private key, in the data hub, and , A third process for performing a 3-2 process for transmitting the sender DID and the nonce signature value signed with the sender private key to the virtual asset service providing server, and (IV) (i) the second Obtaining a sender public key and a second sender virtual asset address corresponding to the sender from the blockchain network by using the sender DID obtained from the sender terminal by a 3-1 process, or by the resolver server to obtain the sender DID. To obtain the sender public key and the second sender virtual asset address from the blockchain network, and the sender signature value and the first sender virtual asset using the sender public key and the second sender virtual asset address Perform a 4-1 process of verifying an address, or (ii) obtain the sender signature value from the data hub using the sender DID obtained from the sender terminal by the 3-2 process, and the sender Obtaining the sender public key and the second sender virtual asset address from the blockchain network using a DID, or causing the resolver server to obtain the sender DID. To obtain the sender public key and the second sender virtual asset address from the blockchain network using the sender public key and the second sender virtual asset address, the nonce signature value, the sender signature value, and Perform a 4-2 process of verifying the first sender virtual asset address, the sender signature value is verified or the nonce signature value and the sender signature value are verified, the first sender virtual asset address and the second When the sender virtual asset addresses match, the virtual asset service providing server further performs a fourth process of registering the first sender virtual asset address as the sender virtual address in the whitelist.
제16항에 있어서,
상기 송신자 VC는 상기 송신자 KYC, 상기 송신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
상기 프로세서는,
상기 제4 프로세스에서, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 복호화하여 상기 송신자 VC를 획득하며, 상기 송신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 송신자 VC를 복호화하여 상기 송신자 KYC를 검증함으로써 상기 송신자 서명값을 검증하는 가상 자산 서비스 제공 서버.
The method of claim 16,
The sender VC includes the sender KYC, an authentication server signature value in which the sender KYC is signed with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server,
The processor,
In the fourth process, the sender signature value is decrypted using the sender public key to obtain the sender VC, and the authentication server is authenticated from the blockchain network using the authentication server DID included in the sender VC. Obtain a server public key or cause the resolver server to obtain the authentication server public key from the blockchain network using the authentication server DID, and decrypt the sender VC using the authentication server public key, and the sender KYC Virtual asset service providing server for verifying the sender signature value by verifying.
제17항에 있어서,
상기 프로세서는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득하는 가상 자산 서비스 제공 서버.
The method of claim 17,
The processor causes the resolver server to obtain an authentication server DID document corresponding to the authentication server from the blockchain network using the authentication server DID, and to obtain the authentication server public key from the authentication server DID document. Virtual asset service providing server.
탈중앙화 아이디(decentralized identifier, DID) 기반으로 가상 자산 서비스를 제공하는 가상 자산 서비스 제공 서버에 있어서,
DID 기반으로 가상 자산 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리; 및
상기 메모리에 저장된 상기 인스트럭션들에 따라 상기 DID 기반으로 상기 가상 자산 서비스를 제공하기 위한 동작을 수행하는 프로세서;
를 포함하되,
상기 프로세서는,
(I) 사용자들 각각에 대응되는 KYC(known your customer) 정보의 인증 결과에 따라 상기 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태에서, 송신자 단말 - 상기 송신자 단말은 가상 자산을 전송하고자 하는 송신자가 소유한 단말이며, 상기 송신자에 대응되는 송신자 가상 자산 어드레스는 상기 화이트리스트에 등록된 상태임 - 로부터 상기 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청이 획득되면, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있는지를 확인하며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있을 경우에는, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주며, 상기 제1 수신자 가상 자산 어드레스가 상기 화이트리스트에 등록되어 있지 않을 경우에는, 상기 송신자 단말로 하여금 수신자 단말 - 상기 수신자 단말은 상기 수신자가 소유한 단말임- 로 수신자 KYC 등록을 요청하도록 하며, 상기 수신자 KYC 등록 요청에 대응하여 상기 수신자 단말로부터 수신자 등록 요청이 획득되면, 상기 수신자 단말로 논스를 포함하는 수신자 KYC 요청 정보를 전송하여 (i) 상기 수신자 단말로 하여금 인증 서버를 통해 수신자 KYC를 인증한 수신자 VC를 획득하도록 하고, 수신자 DID와, 상기 수신자 VC와 상기 논스를 수신자 프라이빗 키로 서명한 제1 수신자 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제5-1 프로세스를 수행하거나, (ii) 상기 수신자 단말로 하여금 상기 인증 서버를 통해 상기 수신자 KYC를 인증한 상기 수신자 VC를 획득하고 상기 수신자 VC를 상기 수신자 프라이빗 키로 서명한 제2 수신자 서명값을 데이터 허브로 등록하고, 상기 수신자 DID와, 상기 논스를 상기 수신자 프라이빗 키로 서명한 논스 서명값을 상기 가상 자산 서비스 제공 서버로 전송하도록 하는 제5-2 프로세스를 수행하는 제5 프로세스, 및 (II) (i) 상기 제5-1 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득하거나 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 제1 수신자 서명값과 상기 제1 수신자 가상 자산 어드레스를 검증하는 제6-1 프로세스를 수행하거나, (ii) 상기 제5-2 프로세스에 의해 상기 수신자 단말로부터 획득되는 상기 수신자 DID를 이용하여 상기 데이터 허브로부터 상기 제2 수신자 서명값을 획득하고, 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하거나 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하도록 하며, 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 이용하여 상기 논스 서명값, 상기 수신자 서명값 및 상기 제1 수신자 가상 자산 어드레스를 검증하는 제6-2 프로세스를 수행하며, 상기 제1 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하거나, 상기 논스 서명값과 상기 제2 수신자 서명값이 검증되며, 상기 제1 수신자 가상 자산 어드레스와 상기 제2 수신자 가상 자산 어드레스가 일치하면, 상기 제1 수신자 가상 자산 어드레스를 상기 화이트리스트에 등록하며, 상기 가상 자산을 상기 송신자 가상 자산 어드레스로부터 상기 제1 수신자 가상 자산 어드레스로 전송하여 주는 제6 프로세스를 수행하는 가상 자산 서비스 제공 서버.
In a virtual asset service providing server that provides a virtual asset service based on a decentralized identifier (DID),
A memory storing instructions for providing a virtual asset service based on DID; And
A processor that performs an operation for providing the virtual asset service based on the DID according to the instructions stored in the memory;
Including,
The processor,
(I) In a state in which virtual asset addresses of each of the users are registered and managed in a white list according to the authentication result of KYC (known your customer) information corresponding to each of the users, the sender terminal-the sender terminal It is a terminal owned by the sender to be transmitted, and the sender virtual asset address corresponding to the sender is registered in the whitelist-A virtual asset including a first recipient virtual asset address corresponding to a recipient who will receive the virtual asset from When an asset transmission request is obtained, it is checked whether the first recipient virtual asset address is registered in the whitelist, and if the first recipient virtual asset address is registered in the whitelist, the virtual asset is transmitted to the sender. It transmits from the virtual asset address to the first recipient virtual asset address, and when the first recipient virtual asset address is not registered in the whitelist, the sender terminal causes the recipient terminal-the recipient terminal It is the owned terminal-so that the recipient's KYC registration request is made, and when the recipient's registration request is obtained from the recipient's terminal in response to the recipient's KYC registration request, it transmits the recipient's KYC request information including nonce to the recipient's terminal (i ) The recipient terminal obtains a recipient VC that authenticates the recipient KYC through an authentication server, and the recipient DID, the recipient VC, and the first recipient signature value signed by the recipient private key with the recipient private key are provided to the virtual asset service providing server Perform the 5-1 process to transmit to, or (ii) the recipient terminal obtains the recipient VC that authenticates the recipient KYC through the authentication server, and signs the recipient VC with the recipient private key. Registering a recipient's signature value as a data hub, and providing the recipient DID and a nonce signature value of signing the nonce with the recipient private key as the virtual asset service A fifth process for performing a 5-2 process to transmit to a public server, and (II) (i) the recipient DID obtained from the recipient terminal by the 5-1 process to be transmitted from the blockchain network. Obtaining a recipient public key and a second recipient virtual asset address corresponding to a recipient, or causing a resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and the Perform a 6-1 process of verifying the first recipient signature value and the first recipient virtual asset address using the recipient public key and the second recipient virtual asset address, or (ii) the 5-2 process By using the receiver DID obtained from the receiver terminal by using the receiver DID to obtain the second receiver signature value from the data hub, the receiver public key and the second receiver virtual asset address from the blockchain network using the receiver DID Or by causing the resolver server to obtain the recipient public key and the second recipient virtual asset address from the blockchain network using the recipient DID, and use the recipient public key and the second recipient virtual asset address A 6-2 process of verifying the nonce signature value, the recipient signature value, and the first recipient virtual asset address, the first recipient signature value is verified, and the first recipient virtual asset address and the first recipient virtual asset address 2 If the recipient virtual asset address matches or the nonce signature value and the second recipient signature value are verified, and the first recipient virtual asset address and the second recipient virtual asset address match, the first recipient virtual asset address A virtual asset that registers in the whitelist and performs a sixth process of transmitting the virtual asset from the sender virtual asset address to the first recipient virtual asset address Service providing server.
제19항에 있어서,
상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
상기 프로세서는,
상기 제6 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 제1 수신자 서명값을 복호화하거나 상기 제2 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증하는 가상 자산 서비스 제공 서버.
The method of claim 19,
The recipient VC includes the recipient KYC, an authentication server signature value that signed the recipient KYC with an authentication server private key of the authentication server, and an authentication server DID corresponding to the authentication server,
The processor,
In the sixth process, the first receiver signature value is decrypted using the receiver public key or the second receiver signature value is decrypted to obtain the receiver VC, and the authentication server DID included in the receiver VC is used. To obtain the authentication server public key of the authentication server from the blockchain network, or cause the resolver server to obtain the authentication server public key from the blockchain network using the authentication server DID, and the authentication server public key A virtual asset service providing server that decrypts the receiver VC using the receiver to verify the receiver KYC.
KR1020200076078A 2019-07-03 2020-06-22 Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them KR102348232B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2020/008635 WO2021002692A1 (en) 2019-07-03 2020-07-02 Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
US16/919,553 US10944574B2 (en) 2019-07-03 2020-07-02 Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
KR1020210062172A KR20210058784A (en) 2019-07-03 2021-05-13 Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190080350 2019-07-03
KR20190080350 2019-07-03

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210062172A Division KR20210058784A (en) 2019-07-03 2021-05-13 Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them

Publications (2)

Publication Number Publication Date
KR20210004842A true KR20210004842A (en) 2021-01-13
KR102348232B1 KR102348232B1 (en) 2022-01-10

Family

ID=74142690

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200076078A KR102348232B1 (en) 2019-07-03 2020-06-22 Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them
KR1020210062172A KR20210058784A (en) 2019-07-03 2021-05-13 Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210062172A KR20210058784A (en) 2019-07-03 2021-05-13 Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them

Country Status (1)

Country Link
KR (2) KR102348232B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230007809A (en) * 2021-07-06 2023-01-13 계명대학교 산학협력단 Decentralized identity system and authentication method using blockchain
WO2023095967A1 (en) * 2021-11-29 2023-06-01 주식회사 블록체인기술연구소 Remote-interaction large document access system in which blockchain-based did service, ipfs-based data sharing technology and private key distributed storage technology are combined

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180079805A (en) * 2017-01-02 2018-07-11 주식회사 코인플러그 Method for authenticating a user without a face-to-face contact by using mobile id based on blockchain, and terminal and server using the same
KR101903620B1 (en) * 2017-06-23 2018-10-02 홍석현 Method for authorizing peer in blockchain based distributed network, and server using the same
KR20180113145A (en) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 Method for processing blockchain based real-time transaction and system thereof
KR101936759B1 (en) * 2018-07-27 2019-01-11 주식회사 미탭스플러스 Apparatus and Method for KYC using KYC blockchain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180079805A (en) * 2017-01-02 2018-07-11 주식회사 코인플러그 Method for authenticating a user without a face-to-face contact by using mobile id based on blockchain, and terminal and server using the same
KR20180113145A (en) * 2017-04-05 2018-10-15 삼성에스디에스 주식회사 Method for processing blockchain based real-time transaction and system thereof
KR101903620B1 (en) * 2017-06-23 2018-10-02 홍석현 Method for authorizing peer in blockchain based distributed network, and server using the same
KR101936759B1 (en) * 2018-07-27 2019-01-11 주식회사 미탭스플러스 Apparatus and Method for KYC using KYC blockchain

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230007809A (en) * 2021-07-06 2023-01-13 계명대학교 산학협력단 Decentralized identity system and authentication method using blockchain
WO2023095967A1 (en) * 2021-11-29 2023-06-01 주식회사 블록체인기술연구소 Remote-interaction large document access system in which blockchain-based did service, ipfs-based data sharing technology and private key distributed storage technology are combined

Also Published As

Publication number Publication date
KR20210058784A (en) 2021-05-24
KR102348232B1 (en) 2022-01-10

Similar Documents

Publication Publication Date Title
US10944574B2 (en) Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
CN110036613B (en) System and method for providing identity authentication for decentralized applications
CN109478298B (en) Method and system for realizing block chain
CN110915183B (en) Block chain authentication via hard/soft token validation
CN110537346B (en) Safe decentralized domain name system
EP3701668B1 (en) Methods for recording and sharing a digital identity of a user using distributed ledgers
KR102254499B1 (en) Method for oauth service through blockchain, and terminal and server using the same
KR101985179B1 (en) Blockchain based id as a service
WO2021169107A1 (en) Internet identity protection method and apparatus, electronic device, and storage medium
CN112789823B (en) Block chain-based competitive election network system and competitive election method
KR102252086B1 (en) Method for oauth service through blockchain, and terminal and server using the same
KR102192370B1 (en) Method for oauth service through blockchain, and terminal and server using the same
KR102227578B1 (en) Method for serving certificate based on zero knowledge proof by using blockchain network, and server and terminal for using them
CN108876593A (en) A kind of online transaction method and apparatus
KR102465467B1 (en) The decentralized user data storage and sharing system based on DID
KR20210058784A (en) Method for providing virtual asset service based on dicentralized identity and virtual asset service providing server using them
CN113474804A (en) Transaction and account verification method, device and storage medium of digital currency
KR20210007844A (en) Method for providing relational decentralized identifier service and blockchain node using them
KR102412852B1 (en) Method for providing virtual asset service based on decentralized identity and virtual asset service providing server using them
KR20200110118A (en) Method and server for managing user identity using blockchain network, and method and terminal for verifying user using user identity based on blockchain network
JP2023540739A (en) A method for secure, traceable, and privacy-preserving digital currency transfers with anonymity revocation on a distributed ledger
KR102245382B1 (en) Method for serving virtual common identifier based on blockchain network, and service providing server for using them
Park et al. Secure device control scheme with blockchain in a smart home
KR20200112770A (en) Method for oauth service through blockchain, and terminal and server using the same
KR20200115399A (en) Method for oauth service through blockchain, and terminal and server using the same

Legal Events

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