KR20210058784A - 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버 - Google Patents

탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버 Download PDF

Info

Publication number
KR20210058784A
KR20210058784A KR1020210062172A KR20210062172A KR20210058784A KR 20210058784 A KR20210058784 A KR 20210058784A KR 1020210062172 A KR1020210062172 A KR 1020210062172A KR 20210062172 A KR20210062172 A KR 20210062172A KR 20210058784 A KR20210058784 A KR 20210058784A
Authority
KR
South Korea
Prior art keywords
recipient
virtual asset
sender
authentication server
signature value
Prior art date
Application number
KR1020210062172A
Other languages
English (en)
Inventor
어준선
송주한
Original Assignee
주식회사 코인플러그
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코인플러그 filed Critical 주식회사 코인플러그
Publication of KR20210058784A publication Critical patent/KR20210058784A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • 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)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 가상 자산 서비스 제공자가 가상 자산을 거래하는 사용자들에 대한 정보를 획득 및 보관하도록 하여 가상 자산 거래를 통해 자금을 세탁하는 것을 방지할 수 있도록 하는 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버에 관한 것이다.

Description

탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버{METHOD FOR PROVIDING VIRTUAL ASSET SERVICE BASED ON DICENTRALIZED IDENTITY AND VIRTUAL ASSET SERVICE PROVIDING SERVER USING THEM}
본 발명은 가상 자산 서비스를 제공하는 방법 및 이를 이용한 가상 자산 서비스 제공 서버에 관한 것으로, 보다 상세하게는, 가상 자산을 이용하여 자금을 세탁하는 것을 방지하기 위한 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법 및 이를 이용한 가상 자산 서비스 제공 서버에 관한 것이다.
암호화폐인 가상 자산(virtual asset)의 일종인 비트코인은 중앙은행에서 발행하는 법정화폐의 정의를 뒤흔들며 시장에서 높은 수요를 나타냈을 뿐만 아니라, 기존의 서비스들에도 블록체인이 적용되는 파급효과를 가져왔다.
비트코인은 블록체인이라고 불리는 분산원장 기술을 통해, 암호화 기술과 네트워크 기술 들을 결합해 비트코인의 발행과 거래 내역을 P2P 분산 네트워크 상에서 다수의 컴퓨터가 동시에 기록하고 검증한다.
비트코인의 블록체인 기술에의 적용 이후, 블록체인 기술을 이용하는 이더리움, 리플 등과 같은 다양한 가상 자산이 발행되었다.
그리고, 특정 가상 자산을 법정화폐 또는 다른 가상 자산과 거래를 할 수 있도록 하기 위한 마켓 플레이스인 가상 자산 거래소가 생성되었으며, 전세계적으로 다양한 가상 자산 거래소를 통해 다양한 가상 자산들이 거래되고 있다.
한편, 블록체인을 이용하는 가상 자산의 특성상 사용자의 가상 자산 어드레스를 이용하여 실제 사용자를 특정하기가 어렵다.
따라서, 이러한 실제 사용자를 특정하기 어렵다는 특성을 이용하여, 가상 자산의 거래를 통해 자금을 세탁하는 문제점이 발생하고 있다. 즉, 불법적 범죄수익을 가상 자산의 거래를 통해 정당한 거래로 인한 수익으로 보이도록 출처나 소유 관계를 은폐하고 있다.
하지만, 가상 자산의 거래를 이용하여 불법적인 자금의 세탁하는 행위를 효과적으로 방지할 수 있는 방법이 없는 것이 사실이다.
따라서, 본 발명자는 가상 자산 거래를 통해 자금을 세탁하는 것을 효과적으로 방지할 수 있도록 하는 방안을 제안하고자 한다.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 가상 자산의 거래를 통해 자금을 세탁하는 것을 방지하도록 하는 것을 다른 목적으로 한다.
또한, 본 발명은 가상 자산의 거래를 통해 자금을 세탁하는 사용자를 용이하게 확인할 수 있도록 하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 가상 자산의 거래를 하는 사용자들의 프라이버시를 해치지 않고 가상 자산의 거래를 하는 사용자들의 정보를 획득 및 보관할 수 있도록 하는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 탈중앙화 아이디(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 수신자 가상 자산 어드레스로 전송하여 주는 단계; 를 포함하는 방법이 제공된다.
상기에서, 상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 (b) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증할 수 있다.
상기에서, 상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득할 수 있다.
상기 (a) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 송신자 단말로 논스를 전송하며, (i) 상기 제1-1 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 VC에 상기 논스를 추가하여 상기 수신자 서명값을 생성하도록 하거나, (ii) 상기 제1-2 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 프라이빗 키를 이용하여 상기 논스를 서명한 논스 서명값을 생성하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID와 상기 논스 서명값을 획득하여 상기 가상 자산 서비스 제공 서버로 전송하도록 하며, 상기 (b) 단계에서, 상기 가상 자산 서비스 제공 서버는, (i) 상기 제2-1 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 논스를 획득하여 상기 수신자 서명값을 검증하거나, (ii) 상기 제2-2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 논스 서명값을 복호화하여 상기 논스 서명값을 검증할 수 있다.
상기 (b) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 상기 수신자 DID 문서에서 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득할 수 있다.
상기 (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 프로세스를 수행하며, 상기 송신자 서명값이 검증되거나 상기 논스 서명값과 상기 송신자 서명값이 검증되면, 상기 송신자 가상 어드레스를 상기 화이트리스트에 등록하는 단계; 를 더 포함할 수 있다.
상기에서, 상기 송신자 VC는 상기 송신자 KYC, 상기 송신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 (a02) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 복호화하여 상기 송신자 VC를 획득하며, 상기 송신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 송신자 VC를 복호화하여 상기 송신자 KYC를 검증함으로써 상기 송신자 서명값을 검증할 수 있다.
상기에서, 상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 탈중앙화 아이디(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 수신자 가상 자산 어드레스로 전송하여 주는 단계; 를 포함하는 방법이 제공된다.
상기에서, 상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 (b) 단계에서, 상기 가상 자산 서비스 제공 서버는, 상기 수신자 퍼블릭 키를 이용하여 상기 제1 수신자 서명값을 복호화하거나 상기 제2 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 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 프로세스를 수행하는 가상 자산 서비스 제공 서버가 제공된다.
상기에서, 상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 프로세서는, 상기 제2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증할 수 있다.
상기 프로세서는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득할 수 있다.
상기 프로세서는, 상기 제1 프로세스에서, 상기 송신자 단말로 논스를 전송하며, (i) 상기 제1-1 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 VC에 상기 논스를 추가하여 상기 수신자 서명값을 생성하도록 하거나, (ii) 상기 제1-2 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 프라이빗 키를 이용하여 상기 논스를 서명한 논스 서명값을 생성하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID와 상기 논스 서명값을 획득하여 상기 가상 자산 서비스 제공 서버로 전송하도록 하며, 상기 제2 프로세스에서, (i) 상기 제2-1 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 논스를 획득하여 상기 수신자 서명값을 검증하거나, (ii) 상기 제2-2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 논스 서명값을 복호화하여 상기 논스 서명값을 검증할 수 있다.
상기 프로세서는, 상기 제2 프로세스에서, 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 상기 수신자 DID 문서에서 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득할 수 있다.
상기 프로세서는, 상기 제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 프로세스를 더 수행할 수 있다.
상기에서, 상기 송신자 VC는 상기 송신자 KYC, 상기 송신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 프로세서는, 상기 제4 프로세스에서, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 복호화하여 상기 송신자 VC를 획득하며, 상기 송신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 송신자 VC를 복호화하여 상기 송신자 KYC를 검증함으로써 상기 송신자 서명값을 검증할 수 있다.
상기 프로세서는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 탈중앙화 아이디(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 프로세스를 수행하는 가상 자산 서비스 제공 서버가 제공된다.
상기에서, 상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며, 상기 프로세서는, 상기 제6 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 제1 수신자 서명값을 복호화하거나 상기 제2 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증할 수 있다.
이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은 본 발명은 가상 자산의 거래를 통해 자금을 세탁하는 것을 방지할 수 있게 된다.
본 발명은 가상 자산의 거래를 통해 자금을 세탁하는 사용자를 용이하게 확인할 수 있게 된다.
본 발명은 가상 자산의 거래를 하는 사용자들의 프라이버시를 해치지 않고 가상 자산의 거래를 하는 사용자들의 정보를 획득 및 보관할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 시스템을 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 3은 본 발명의 다른 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 4는 본 발명의 또 다른 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 5는 본 발명의 또 다른 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 6은 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법에서 사용자를 등록하는 과정을 개략적으로 도시한 것이고,
도 7은 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법에서 사용자를 등록하는 다른 과정을 개략적으로 도시한 것이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 시스템을 개략적으로 도시한 것으로, 시스템은 사용자 단말들(100), 가상 자산 서비스 제공 서버(200), 데이터 허브(300), 리졸버 서버(400), 및 블록체인 네트워크(500)를 포함할 수 있다.
먼저, 사용자 단말들(100)은 가상 자산을 거래하고자 하는 사용자들이 소유한 단말들로, 인증 서버를 통해 인증된 사용자 KYC(know your customer)에 대한 사용자 VC(verifiable credential)을 저장할 수 있으며, 각각의 사용자들에 대응되는 사용자 탈중앙화 아이디(decentralized identifier, DID)들을 블록체인 네트워크에 등록한 상태일 수 있다.
다음으로, 가상 자산 서비스 제공 서버(200)는 사용자 단말(100)들이 가상 자산 입금 및 출금, 가상 자산의 전송 등의 가상 자산 서비스를 이용할 수 있도록 가상 자산 서비스를 제공하는 것으로, 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하고, 가상 자산 거래를 하는 사용자들의 정보를 획득하고 보관할 수 있다. 그리고, 가상 자산 서비스 제공 서버(200)는 DID 기반으로 가상 자산 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리와, 메모리에 저장된 인스트럭션들에 따라 DID 기반으로 가상 자산 서비스를 제공하기 위한 동작을 수행하는 프로세서를 포함할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 PC(Personal Computer), 모바일 컴퓨터, PDA/EDA, 휴대 전화, 스마트폰, 태블릿, 서버 등을 포함할 수 있으나, 이에 한정되지 않으며, 유무선 통신 기능을 가진 휴대용 게임기, 디지털 카메라, 개인 내비게이션 등과 같이 컴퓨팅 연산을 수행하는 모든 컴퓨팅 장치를 포함할 수 있다.
구체적으로, 가상 자산 서비스 제공 서버(200)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
이와 같은 컴퓨팅 장치의 통신부는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는 바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.
또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
다음으로, 데이터 허브(300)는 저장된 데이터에 대하여 권한이 있는 사용자만이 접속할 수 있도록 하는 것으로, 사용자의 요청에 따른 데이터를 저장하거나, 사용자의 요청에 따른 데이터를 데이터베이스 등과 같은 타 저장장치에 저장할 수 있다. 이때, 타 저장장치로 데이터베이스 이외에도 블록체인 네트워크 상의 분산원장을 포함할 수 있으나, 이에 한정되지 않으며, 데이터를 저장할 수 있는 모든 저장 장치를 포함할 수 있다.
다음으로, 리졸버 서버(400)는 DID에 대응하여 블록체인 네트워크에 등록된 데이터들을 획득하여 주는 것으로, 블록체인 네트워크에 접속할 수 있는 컴퓨팅 장치이거나 블록체인 네트워크를 구성하는 블록체인 노드일 수 있다. 또한, 리졸버 서버(400)는 가상 자산 서비스 제공 서버(200)와 별개의 서버로 구성되거나 가상 자산 서비스 제공 서버(200)에 통합되어 구성될 수도 있다. 이때, DID는 사용자들뿐만 아니라, 서버 등의 컴퓨팅 장치인 IoT 디바이스 각각에 대하여 발급될 수 있다.
다음으로, 블록체인 네트워크(500)는 다수의 블록체인 노드들에 의해 분산 원장을 공유하며, 사용자 및 컴퓨팅 장치의 요청에 따른 DID를 생성하여 주며 DID에 대응되는 데이터들을 분산 원장에 저장할 수 있다.
먼저, 이와 같이 구성된 시스템을 통해 본 발명의 일 실시예에 따른 DID 기반의 가상 자산 서비스를 제공하는 방법을 도 2를 참조하여 설명하면 다음과 같다.
가상 자산을 전송하고자 하는 송신자가 자신이 소유한 사용자 단말인 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청(S101)을 한다.
이때, 가상 자산 서비스 제공 서버(200)는 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태일 수 있으며, 송신자에 대응되는 송신자 가상 자산 어드레스는 화이트리스트에 등록된 상태일 수 있다.
그러면, 가상 자산 서비스 제공 서버(200)는 가상 자산의 전송이 요청된 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인(S102)할 수 있다.
이때, 가상 자산 전송 요청 시, 송신자 단말(100a)은 송신자 DID를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 가상 자산 어드레스를 획득하고, 획득된 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다. 또한, 가상 자산 전송 요청 송신자 단말(100a)은 송신자 가상 자산 어드레스를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다.
그리고, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는 경우에는, 가상 자산 서비스 제공 서버(200)는 수신자가 정상적인 사용자임을 확인하고, 전송 요청된 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송하여 줄 수 있다.
한편, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있지 않을 경우에는, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로 수신자 KYC 등록을 요청(S103)을 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 논스를 송신자 단말(100a)로 전송하여 줄 수 있다.
그러면, 송신자 단말(100a)은 수신자가 소유한 단말인 수신자 단말(100b)로 수신자 KYC 등록을 요청(S104)한다. 이때, 송신자 단말(100a)은 가상 자산 서비스 제공 서버(200)로부터 전송된 논스를 수신자 단말(100b)로 전송하여 줄 수 있다.
그에 따라, 수신자 단말(100b)은 인증 서버로 수신자 KYC에 대한 인증을 요청하여 인증 서버가 수신자 KYC를 인증하고 인증된 수신자 KYC에 대응되는 수신자 VC를 전송하도록 함으로써 수신자 VC를 획득(S105)할 수 있다. 이때, 수신자 VC는 수신자 KYC, 수신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.
그리고, 수신자 단말(100b)은 수신자 VC를 수신자 프라이빗 키로 서명한 수신자 서명값을 생성하고, 수신자 DID와 수신자 서명값을 송신자 단말(100a)로 전송(S106)하여 줄 수 있다. 이때, 수신자 단말(100b)은 수신자 VC에 송신자 단말(100a)로부터 전송된 논스를 추가하여 수신자 서명값을 생성할 수 있다.
그러면, 송신자 단말(100a)은 수신자 단말(100b)로부터 전송되는 수신자 DID와 수신자 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S107)하여 줄 수 있다.
그리고, 가상 자산 서비스 제공 서버(200)는 수신자 단말(100a)로부터 획득된 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S108, S109)하거나, 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S108, S109)하도록 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 수신자 DID 문서에서 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 이용하여 수신자 서명값과 제1 수신자 가상 자산 어드레스를 검증(S110)할 수 있다.
즉, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 수신자 서명값을 복호화하여 수신자 VC를 획득하며, 수신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 수신자 VC를 복호화하여 수신자 KYC를 검증할 수 있다.
이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.
또한, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 수신자 서명값을 복호화하여 논스를 획득하여 수신자 서명값을 검증할 수 있다. 즉, 수신자 서명값을 복호화하여 획득한 논스가, 수신자 KYC 등록 요청 시, 송신자 단말(100a)로 전송한 논스와 일치하는지 여부를 확인하여 수신자 서명값을 검증할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 수신자 서명값이 검증되며, 제1 수신자 가상 자산 어드레스와 제2 수신자 가상 자산 어드레스가 일치하면, 제1 수신자 가상 자산 어드레스를 화이트리스트에 등록(S111)하며, 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송(S112)하여 줄 수 있다.
이와 같은 방법에 의해, 가상 자산 서비스 제공 서버(200)는 가상 자산 어드레스가 화이트리스트에 등록된 사용자들만이 가상 자산 서비스를 이용할 수 있도록 함으로써 가상 자산을 통해 자금을 세탁하는 것을 방지할 수 있으며, 가상 자산의 거래를 통해 자금을 세탁하는 사용자를 용이하게 확인할 수 있게 된다.
다음으로, 본 발명의 다른 실시예에 따른 DID 기반의 가상 자산 서비스를 제공하는 방법을 도 3을 참조하여 설명하면 다음과 같다. 이하에서는, 도 2를 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.
가상 자산을 전송하고자 하는 송신자가 자신이 소유한 사용자 단말인 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청(S201)을 한다.
이때, 가상 자산 서비스 제공 서버(200)는 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태일 수 있으며, 송신자에 대응되는 송신자 가상 자산 어드레스는 화이트리스트에 등록된 상태일 수 있다.
그러면, 가상 자산 서비스 제공 서버(200)는 가상 자산의 전송이 요청된 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인(S202)할 수 있다.
이때, 가상 자산 전송 요청 시, 송신자 단말(100a)은 송신자 DID를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 가상 자산 어드레스를 획득하고, 획득된 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다. 또한, 가상 자산 전송 요청 송신자 단말(100a)은 송신자 가상 자산 어드레스를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다.
그리고, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는 경우에는, 가상 자산 서비스 제공 서버(200)는 수신자가 정상적인 사용자임을 확인하고, 전송 요청된 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송하여 줄 수 있다.
한편, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있지 않을 경우에는, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로 수신자 KYC 등록을 요청(S203)을 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 논스를 송신자 단말(100a)로 전송하여 줄 수 있다.
그러면, 송신자 단말(100a)은 수신자가 소유한 단말인 수신자 단말(100b)로 수신자 KYC 등록을 요청(S204)한다. 이때, 송신자 단말(100a)은 가상 자산 서비스 제공 서버(200)로부터 전송된 논스를 수신자 단말(100b)로 전송하여 줄 수 있다.
그에 따라, 수신자 단말(100b)은 인증 서버로 수신자 KYC에 대한 인증을 요청하여 인증 서버가 수신자 KYC를 인증하고 인증된 수신자 KYC에 대응되는 수신자 VC를 전송하도록 함으로써 수신자 VC를 획득(S205)할 수 있다. 이때, 수신자 VC는 수신자 KYC, 수신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.
그리고, 수신자 단말(100b)은 수신자 VC를 수신자 프라이빗 키로 서명한 수신자 서명값을 생성하고, 수신자 서명값을 데이터 허브(300)에 등록(S206)할 수 있다. 이때, 데이터 허브(300)는 수신자 서명값을 수신자 DID에 대응하여 저장하거나 외부의 데이터베이스에 저장할 수 있으며, 데이터 허브(300)에 저장된 수신자 서명값은 제3자에게 공개되지 않으며, 수신자가 권한을 부여, 즉, 수신자 DID 또는 액세스 정보를 가진 특정 사용자 또는 서비스 제공자만 접근할 수 있도록 할 수 있다.
이후, 수신자 단말(100b)은 수신자 DIDI를 송신자 단말(100a)로 전송(S207)하여 줄 수 있다. 이때, 수신자 단말(100b)은 수신자 DID에 더하여, 송신자 단말(100a)로부터 전송된 논스를 수신자 프라이빗 키로 서명한 논스 서명값을 송신자 단말(100a)로 전송하여 줄 수 있다.
그리고, 송신자 단말(100a)은 수신자 단말(100b)로부터 전송된 수신자 DID를 가상 자산 서비스 제공 서버(200)로 전송(S208)하여 줄 수 있다. 또한, 송신자 단말(100a)은 수신자 DID에 더하여 송신자 단말(100b)로부터 전송된 논스 서명값을 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있다.
그러면, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로부터 획득된 수신자 DID를 이용하여 데이터 허브(300)로부터 수신자 서명값을 획득(S209, S210)하고, 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S211, S212)하거나, 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S211, S212)하도록 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 수신자 DID 문서에서 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 이용하여 수신자 서명값과 제1 수신자 가상 자산 어드레스를 검증(S213)할 수 있다.
즉, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 수신자 서명값을 복호화하여 수신자 VC를 획득하며, 수신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 수신자 VC를 복호화하여 수신자 KYC를 검증할 수 있다.
이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.
또한, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 논스 서명값을 복호화하여 논스를 획득하여 논스 서명값을 검증할 수 있다. 즉, 논스 서명값을 복호화하여 획득한 논스가, 수신자 KYC 등록 요청 시, 송신자 단말(100a)로 전송한 논스와 일치하는지 여부를 확인하여 논스 서명값을 검증할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 수신자 서명값이 검증되며, 제1 수신자 가상 자산 어드레스와 제2 수신자 가상 자산 어드레스가 일치하면, 제1 수신자 가상 자산 어드레스를 화이트리스트에 등록(S214)하며, 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송(S215)하여 줄 수 있다.
다음으로, 본 발명의 또 다른 실시예에 따른 DID 기반의 가상 자산 서비스를 제공하는 방법을 도 4를 참조하여 설명하면 다음과 같다. 이하에서는 도 2와 도3을 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.
가상 자산을 전송하고자 하는 송신자가 자신이 소유한 사용자 단말인 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청(S301)을 한다.
이때, 가상 자산 서비스 제공 서버(200)는 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태일 수 있으며, 송신자에 대응되는 송신자 가상 자산 어드레스는 화이트리스트에 등록된 상태일 수 있다.
그러면, 가상 자산 서비스 제공 서버(200)는 가상 자산의 전송이 요청된 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인(S302)할 수 있다.
이때, 가상 자산 전송 요청 시, 송신자 단말(100a)은 송신자 DID를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 가상 자산 어드레스를 획득하고, 획득된 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다. 또한, 가상 자산 전송 요청 송신자 단말(100a)은 송신자 가상 자산 어드레스를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다.
그리고, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는 경우에는, 가상 자산 서비스 제공 서버(200)는 수신자가 정상적인 사용자임을 확인하고, 전송 요청된 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송하여 줄 수 있다.
한편, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있지 않을 경우에는, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로 수신자 KYC 등록을 요청(S303)을 할 수 있다.
그러면, 송신자 단말(100a)은 수신자가 소유한 단말인 수신자 단말(100b)로 수신자 KYC 등록을 요청(S304)한다.
그리고, 수신자 단말(100b)은 송신자 단말9100a)로부터의 수신자 KYC 등록 요청에 대응하여 가상 자산 서비스 제공 서버(200)로 수신자 등록 요청(S305)한다.
이후, 가상 자산 서비스 제공 서버(200)는 수신자 등록 요청에 대응하여 논스를 포함하는 수신자 KYC 요청 정보를 수신자 단말(100b)로 전송(S306)하여 줄 수 있다.
그러면, 수신자 단말(100b)은 인증 서버로 수신자 KYC에 대한 인증을 요청하여 인증 서버가 수신자 KYC를 인증하고 인증된 수신자 KYC에 대응되는 수신자 VC를 전송하도록 함으로써 수신자 VC를 획득(S307)할 수 있다. 이때, 수신자 VC는 수신자 KYC, 수신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.
그리고, 수신자 단말(100b)은 수신자 VC와 논스를 수신자 프라이빗 키로 서명한 제1 수신자 서명값을 생성하고, 수신자 DID와 제1 수신자 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S308)하여 줄 수 있다.
그러면, 가상 자산 서비스 제공 서버(200)는 수신자 단말(100b)로부터 획득된 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S309, S310)하거나, 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S309, S310)하도록 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 수신자 DID 문서에서 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 이용하여 제1 수신자 서명값과 제1 수신자 가상 자산 어드레스를 검증(S311)할 수 있다.
즉, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 제1 수신자 서명값을 복호화하여 논스와 수신자 VC를 획득하고, 제1 수신자 서명값으로부터 획득한 논스와 수신자 단말(100b)로 전송한 논스를 비교하여 제1 수신자 서명값을 검증하며, 수신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 수신자 VC를 복호화하여 수신자 KYC를 검증할 수 있다.
이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 제1 수신자 서명값이 검증되며, 제1 수신자 가상 자산 어드레스와 제2 수신자 가상 자산 어드레스가 일치하면, 제1 수신자 가상 자산 어드레스를 화이트리스트에 등록(S312)하며, 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송(S313)하여 줄 수 있다.
다음으로, 본 발명의 또 다른 실시예에 따른 DID 기반의 가상 자산 서비스를 제공하는 방법을 도 5를 참조하여 설명하면 다음과 같다. 이하에서는, 도 2 내지 도 4를 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.
가상 자산을 전송하고자 하는 송신자가 자신이 소유한 사용자 단말인 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 가상 자산을 수신할 수신자에 대응되는 제1 수신자 가상 자산 어드레스를 포함하는 가상 자산 전송 요청(4301)을 한다.
이때, 가상 자산 서비스 제공 서버(200)는 사용자들 각각에 대응되는 KYC 정보의 인증 결과에 따라 사용자들 각각의 가상 자산 어드레스들을 화이트리스트로 등록하여 관리하는 상태일 수 있으며, 송신자에 대응되는 송신자 가상 자산 어드레스는 화이트리스트에 등록된 상태일 수 있다.
그러면, 가상 자산 서비스 제공 서버(200)는 가상 자산의 전송이 요청된 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인(S402)할 수 있다.
이때, 가상 자산 전송 요청 시, 송신자 단말(100a)은 송신자 DID를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 가상 자산 어드레스를 획득하고, 획득된 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다. 또한, 가상 자산 전송 요청 송신자 단말(100a)은 송신자 가상 자산 어드레스를 가상 자산 서비스 제공 서버(200)로 전송하여 줄 수 있으며, 그에 따라, 가상 자산 서비스 제공 서버(200)는 송신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인하여 송신자가 정상적인 사용자임을 확인할 수 있다.
그리고, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는 경우에는, 가상 자산 서비스 제공 서버(200)는 수신자가 정상적인 사용자임을 확인하고, 전송 요청된 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송하여 줄 수 있다.
한편, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있는지를 확인한 결과, 제1 수신자 가상 자산 어드레스가 화이트리스트에 등록되어 있지 않을 경우에는, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로 수신자 KYC 등록을 요청(S403)을 할 수 있다.
그러면, 송신자 단말(100a)은 수신자가 소유한 단말인 수신자 단말(100b)로 수신자 KYC 등록을 요청(S404)한다.
그리고, 수신자 단말(100b)은 송신자 단말9100a)로부터의 수신자 KYC 등록 요청에 대응하여 가상 자산 서비스 제공 서버(200)로 수신자 등록 요청(S405)한다.
이후, 가상 자산 서비스 제공 서버(200)는 수신자 등록 요청에 대응하여 논스를 포함하는 수신자 KYC 요청 정보를 수신자 단말(100b)로 전송(S406)하여 줄 수 있다.
그러면, 수신자 단말(100b)은 인증 서버로 수신자 KYC에 대한 인증을 요청하여 인증 서버가 수신자 KYC를 인증하고 인증된 수신자 KYC에 대응되는 수신자 VC를 전송하도록 함으로써 수신자 VC를 획득(S407)할 수 있다. 이때, 수신자 VC는 수신자 KYC, 수신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.
그리고, 수신자 단말(100b)은 수신자 VC를 수신자 프라이빗 키로 서명한 제2 수신자 서명값을 생성하고, 제2 수신자 서명값을 데이터 허브(300)에 등록(S408)하여 줄 수 있다.
이후, 수신자 단말(100b)은 논스를 수신자 프라이빗 키로 서명한 논스 서명값을 생성하고, 수신자 DID와 논스 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S409)하여 줄 수 있다.
그러면, 가상 자산 서비스 제공 서버(200)는 수신자 단말9100b)로부터 획득된 수신자 DID를 이용하여 데이터 허브(300)로부터 제2 수신자 서명값을 획득(S410, S411)할 수 있다.
그리고, 가상 자산 서비스 제공 서버(200)는 수신자 단말(100b)로부터 획득된 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S412, S413)하거나, 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득(S412, S413)하도록 할 수 있다. 이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 수신자 DID를 이용하여 블록체인 네트워크(500)로부터 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 수신자 DID 문서에서 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 획득할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키와 제2 수신자 가상 자산 어드레스를 이용하여 논스 서명값, 제2 수신자 서명값, 및 제1 수신자 가상 자산 어드레스를 검증(S414)할 수 있다.
즉, 가상 자산 서비스 제공 서버(200)는 수신자 퍼블릭 키를 이용하여 논스 서명값을 복호화하여 논스를 획득하고, 수신자 퍼블릭 키를 이용하여 제2 수신자 서명값을 복호화하여 수신자 VC를 획득한다. 그리고, 논스 서명값으로부터 획득한 논스와 수신자 단말(100b)로 전송한 논스를 비교하여 논스 서명값을 검증하며, 수신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 수신자 VC를 복호화하여 수신자 KYC를 검증할 수 있다.
이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 제2 수신자 서명값이 검증되며, 제1 수신자 가상 자산 어드레스와 제2 수신자 가상 자산 어드레스가 일치하면, 제1 수신자 가상 자산 어드레스를 화이트리스트에 등록(S415)하며, 가상 자산을 송신자 가상 자산 어드레스로부터 제1 수신자 가상 자산 어드레스로 전송(S416)하여 줄 수 있다.
다음으로, 도 6을 참조하여, 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법에서 사용자를 등록하는 과정을 설명하면 다음과 같다. 이하에서는 도 2 내지 도 5를 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다. 그리고, 송신자가 사용자 등록하는 과정을 예시적으로 설명하기로 한다.
송신자 단말(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 정보는 인증 서버를 통해 인증된 정보일 수 있다.
이와 같은 상태에서, 송신자는 가상 자산의 거래를 위하여 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 사용자 등록을 요청(S501)할 수 있다.
그리고, 가상 자산 서비스 제공 서버(200)는 사용자 등록 요청에 대응하여 송신자 단말(100a)로 논스를 포함하는 송신자 KYC 등록 요청 정보를 전송(S502)할 수 있다.
그러면, 송신자 단말(100a)은 인증 서버를 통해 송신자 KYC를 인증한 송신자 VC를 획득(S503)할 수 있다. 이때, 송신자 VC는 송신자 KYC, 송신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.
그리고, 송신자 단말(100a)은 송신자 DID와, 논스와 송신자 VC를 송신자 프라이빗 키로 서명한 송신자 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S504)하여 줄 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로부터 획득되는 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자에 대응되는 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득(S505, S506)하거나 리졸버 서버(400)로 하여금 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득(S505, S506)하도록 할 수 있다.
그리고, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 송신자 서명값을 검증(S507)할 수 있다.
즉, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 송신자 서명값을 복호화하여 논스와 송신자 VC를 획득하고, 송신자 서명값으로부터 획득한 논스와 송신자 단말(100a)로 전송한 논스를 비교하여 송신자 서명값을 검증하며, 송신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 송신자 VC를 복호화하여 송신자 KYC를 검증할 수 있다.
이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 송신자 서명값이 검증되면, 송신자 가상 자산 어드레스를 화이트리스트에 등록(S508)함으로써 송신자를 사용자로 등록하여 줄 수 있다.
다음으로, 도 7을 참조하여, 본 발명의 일 실시예에 따른 탈중앙화 아이디 기반의 가상 자산 서비스를 제공하는 방법에서 사용자를 등록하는 다른 과정을 설명하면 다음과 같다. 이하에서는 도 6을 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.
송신자는 가상 자산의 거래를 위하여 송신자 단말(100a)을 통해 가상 자산 서비스 제공 서버(200)로 사용자 등록을 요청(S601)할 수 있다.
그리고, 가상 자산 서비스 제공 서버(200)는 사용자 등록 요청에 대응하여 송신자 단말(100a)로 논스를 포함하는 송신자 KYC 등록 요청 정보를 전송(S602)할 수 있다.
그러면, 송신자 단말(100a)은 인증 서버를 통해 송신자 KYC를 인증한 송신자 VC를 획득(S603)할 수 있다. 이때, 송신자 VC는 송신자 KYC, 송신자 KYC를 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 인증 서버에 대응되는 인증 서버 DID를 포함할 수 있다.
그리고, 송신자 단말(100a)은 송신자 VC를 송신자 프라이빗 키로 서명한 송신자 서명값을 생성하고, 송신자 서명값을 데이터 허브(300)에 등록(S604)할 수 있다.
이후, 송신자 단말(100a)은 송신자 DID와, 논스를 송신자 프라이빗 키로 서명한 논스 서명값을 가상 자산 서비스 제공 서버(200)로 전송(S605)하여 줄 수 있다.
그러면, 가상 자산 서비스 제공 서버(200)는 송신자 단말(100a)로부터 획득되는 송신자 DID를 이용하여 데이터 허브(300)로부터 송신자 서명값을 획득(S606, S607)하며, 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자에 대응되는 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득(S608, S609)하거나 리졸버 서버(400)로 하여금 송신자 DID를 이용하여 블록체인 네트워크(500)로부터 송신자 퍼블릭 키와 송신자 가상 자산 어드레스를 획득(S608, S609)하도록 할 수 있다.
그리고, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 논스 서명값과 송신자 서명값을 검증(S610)할 수 있다.
즉, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 논스 서명값을 복화하여 논스를 획득하고, 논스 서명값으로부터 획득된 논스와 송신자 단말(100a)로 전송한 논스를 비교하여 논스 서명값을 검증할 수 있다. 그리고, 가상 자산 서비스 제공 서버(200)는 송신자 퍼블릭 키를 이용하여 송신자 서명값을 복호화하여 송신자 VC를 획득하고, 송신자 VC에 포함된 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버 퍼블릭 키를 획득하도록 하며, 인증 서버 퍼블릭 키를 이용하여 송신자 VC를 복호화하여 송신자 KYC를 검증할 수 있다.
이때, 가상 자산 서비스 제공 서버(200)는 리졸버 서버(400)로 하여금 인증 서버 DID를 이용하여 블록체인 네트워크(500)로부터 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 인증 서버 DID 문서에서 인증 서버 퍼블릭 키를 획득할 수 있다.
이후, 가상 자산 서비스 제공 서버(200)는 논스 서명값과 송신자 서명값이 검증되면, 송신자 가상 자산 어드레스를 화이트리스트에 등록(S611)함으로써 송신자를 사용자로 등록하여 줄 수 있다.
또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 사용자 단말,
200: 가상 자산 서비스 제공 서버,
300: 데이터 허브,
400: 리졸버 서버,
500: 블록체인 네트워크

Claims (20)

  1. 탈중앙화 아이디(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 수신자 가상 자산 어드레스로 전송하여 주는 단계;
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
    상기 (b) 단계에서,
    상기 가상 자산 서비스 제공 서버는, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증하는 방법.
  3. 제2항에 있어서,
    상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득하는 방법.
  4. 제1항에 있어서,
    상기 (a) 단계에서,
    상기 가상 자산 서비스 제공 서버는, 상기 송신자 단말로 논스를 전송하며, (i) 상기 제1-1 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 VC에 상기 논스를 추가하여 상기 수신자 서명값을 생성하도록 하거나, (ii) 상기 제1-2 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 프라이빗 키를 이용하여 상기 논스를 서명한 논스 서명값을 생성하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID와 상기 논스 서명값을 획득하여 상기 가상 자산 서비스 제공 서버로 전송하도록 하며,
    상기 (b) 단계에서,
    상기 가상 자산 서비스 제공 서버는, (i) 상기 제2-1 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 논스를 획득하여 상기 수신자 서명값을 검증하거나, (ii) 상기 제2-2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 논스 서명값을 복호화하여 상기 논스 서명값을 검증하는 방법.
  5. 제1항에 있어서,
    상기 (b) 단계에서,
    상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 상기 수신자 DID 문서에서 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하는 방법.
  6. 제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 프로세스를 수행하며, 상기 송신자 서명값이 검증되거나 상기 논스 서명값과 상기 송신자 서명값이 검증되면, 상기 송신자 가상 어드레스를 상기 화이트리스트에 등록하는 단계;
    를 더 포함하는 방법.
  7. 제6항에 있어서,
    상기 송신자 VC는 상기 송신자 KYC, 상기 송신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
    상기 (a02) 단계에서,
    상기 가상 자산 서비스 제공 서버는, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 복호화하여 상기 송신자 VC를 획득하며, 상기 송신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 송신자 VC를 복호화하여 상기 송신자 KYC를 검증함으로써 상기 송신자 서명값을 검증하는 방법.
  8. 제7항에 있어서,
    상기 가상 자산 서비스 제공 서버는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득하는 방법.
  9. 탈중앙화 아이디(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 수신자 가상 자산 어드레스로 전송하여 주는 단계;
    를 포함하는 방법.
  10. 제9항에 있어서,
    상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
    상기 (b) 단계에서,
    상기 가상 자산 서비스 제공 서버는, 상기 수신자 퍼블릭 키를 이용하여 상기 제1 수신자 서명값을 복호화하거나 상기 제2 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증하는 방법.
  11. 탈중앙화 아이디(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 프로세스를 수행하는 가상 자산 서비스 제공 서버.
  12. 제11항에 있어서,
    상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
    상기 프로세서는,
    상기 제2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증하는 가상 자산 서비스 제공 서버.
  13. 제12항에 있어서,
    상기 프로세서는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득하는 가상 자산 서비스 제공 서버.
  14. 제11항에 있어서,
    상기 프로세서는,
    상기 제1 프로세스에서, 상기 송신자 단말로 논스를 전송하며, (i) 상기 제1-1 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 VC에 상기 논스를 추가하여 상기 수신자 서명값을 생성하도록 하거나, (ii) 상기 제1-2 프로세스에 의해, 상기 송신자 단말로 하여금 상기 논스를 상기 수신자 단말로 전송하여 상기 수신자 단말이 상기 수신자 프라이빗 키를 이용하여 상기 논스를 서명한 논스 서명값을 생성하도록 하고, 상기 수신자 단말로부터 상기 수신자 DID와 상기 논스 서명값을 획득하여 상기 가상 자산 서비스 제공 서버로 전송하도록 하며,
    상기 제2 프로세스에서, (i) 상기 제2-1 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 수신자 서명값을 복호화하여 상기 논스를 획득하여 상기 수신자 서명값을 검증하거나, (ii) 상기 제2-2 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 논스 서명값을 복호화하여 상기 논스 서명값을 검증하는 가상 자산 서비스 제공 서버.
  15. 제11항에 있어서,
    상기 프로세서는,
    상기 제2 프로세스에서, 상기 리졸버 서버로 하여금 상기 수신자 DID를 이용하여 상기 블록체인 네트워크로부터 상기 수신자에 대응되는 수신자 DID 문서를 획득하도록 하며, 상기 수신자 DID 문서에서 상기 수신자 퍼블릭 키와 상기 제2 수신자 가상 자산 어드레스를 획득하는 가상 자산 서비스 제공 서버.
  16. 제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 프로세스를 더 수행하는 가상 자산 서비스 제공 서버.
  17. 제16항에 있어서,
    상기 송신자 VC는 상기 송신자 KYC, 상기 송신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
    상기 프로세서는,
    상기 제4 프로세스에서, 상기 송신자 퍼블릭 키를 이용하여 상기 송신자 서명값을 복호화하여 상기 송신자 VC를 획득하며, 상기 송신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 송신자 VC를 복호화하여 상기 송신자 KYC를 검증함으로써 상기 송신자 서명값을 검증하는 가상 자산 서비스 제공 서버.
  18. 제17항에 있어서,
    상기 프로세서는, 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버에 대응되는 인증 서버 DID 문서를 획득하도록 하며, 상기 인증 서버 DID 문서에서 상기 인증 서버 퍼블릭 키를 획득하는 가상 자산 서비스 제공 서버.
  19. 탈중앙화 아이디(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 프로세스를 수행하는 가상 자산 서비스 제공 서버.
  20. 제19항에 있어서,
    상기 수신자 VC는 상기 수신자 KYC, 상기 수신자 KYC를 상기 인증 서버의 인증 서버 프라이빗 키로 서명한 인증 서버 서명값, 및 상기 인증 서버에 대응되는 인증 서버 DID를 포함하며,
    상기 프로세서는,
    상기 제6 프로세스에서, 상기 수신자 퍼블릭 키를 이용하여 상기 제1 수신자 서명값을 복호화하거나 상기 제2 수신자 서명값을 복호화하여 상기 수신자 VC를 획득하며, 상기 수신자 VC에 포함된 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버의 인증 서버 퍼블릭 키를 획득하거나 상기 리졸버 서버로 하여금 상기 인증 서버 DID를 이용하여 상기 블록체인 네트워크로부터 상기 인증 서버 퍼블릭 키를 획득하도록 하며, 상기 인증 서버 퍼블릭 키를 이용하여 상기 수신자 VC를 복호화하여 상기 수신자 KYC를 검증하는 가상 자산 서비스 제공 서버.
KR1020210062172A 2019-07-03 2021-05-13 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버 KR20210058784A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20190080350 2019-07-03
KR1020190080350 2019-07-03
KR1020200076078A KR102348232B1 (ko) 2019-07-03 2020-06-22 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200076078A Division KR102348232B1 (ko) 2019-07-03 2020-06-22 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버

Publications (1)

Publication Number Publication Date
KR20210058784A true KR20210058784A (ko) 2021-05-24

Family

ID=74142690

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200076078A KR102348232B1 (ko) 2019-07-03 2020-06-22 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버
KR1020210062172A KR20210058784A (ko) 2019-07-03 2021-05-13 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200076078A KR102348232B1 (ko) 2019-07-03 2020-06-22 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버

Country Status (1)

Country Link
KR (2) KR102348232B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102499695B1 (ko) * 2021-07-06 2023-02-14 계명대학교 산학협력단 블록 체인을 사용한 did 시스템 및 인증 방법
WO2023095967A1 (ko) * 2021-11-29 2023-06-01 주식회사 블록체인기술연구소 블록체인 기반의 did 서비스, ipfs 기반의 데이터 공유 기술, 및 개인키 분산 저장 기술이 결합된 비대면 대용량 문서 접근 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101877333B1 (ko) * 2017-01-02 2018-08-09 주식회사 코인플러그 블록체인 기반의 모바일 아이디를 이용하여 사용자를 비대면 인증하는 방법, 단말 및 이를 이용한 서버
KR102384340B1 (ko) * 2017-04-05 2022-04-07 삼성에스디에스 주식회사 블록체인 기반 실시간 거래 처리 방법 및 그 시스템
KR101903620B1 (ko) * 2017-06-23 2018-10-02 홍석현 블록체인 기반 분산 네트워크에서 피어의 신원을 확인하는 방법 및 이를 이용한 서버
KR101936759B1 (ko) * 2018-07-27 2019-01-11 주식회사 미탭스플러스 Kyc 블록체인을 이용한 kyc 수행 장치 및 방법

Also Published As

Publication number Publication date
KR20210004842A (ko) 2021-01-13
KR102348232B1 (ko) 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
JP7436568B2 (ja) ブロックチェーンにより実現される方法及びシステム
WO2020192743A1 (zh) 权限管理方法、权限验证方法和相关装置
CN110036613B (zh) 提供用于去中心化应用的身份认证的系统和方法
KR101964254B1 (ko) 블록체인과 dht를 이용한 p2p 거래 방법 및 장치
KR102254499B1 (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
EP3701668B1 (en) Methods for recording and sharing a digital identity of a user using distributed ledgers
KR101985179B1 (ko) 블록체인 기반의 ID as a Service
CN112789823B (zh) 基于区块链的竞选网络系统及竞选方法
KR102227578B1 (ko) 블록체인 네트워크를 이용한 영지식 증명 기반의 인증서 서비스 방법, 이를 이용한 인증 지원 서버 및 사용자 단말
KR102252086B1 (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN108876593A (zh) 一种在线交易方法和装置
CN113474804A (zh) 数字货币的交易和账户验证方法,装置及存储介质
KR20210058784A (ko) 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버
KR20200125279A (ko) 블록 체인기반의 사용자 인증 방법, 시스템
KR20210007844A (ko) 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드
KR102412852B1 (ko) 탈중앙화 아이디 기반의 가상 자산 서비스 제공 방법 및 이를 이용한 가상 자산 서비스 제공 서버
Sidhu et al. Trust development for blockchain interoperability using self-sovereign identity integration
KR102475434B1 (ko) 암호화폐 보안 방법 및 시스템
KR102245382B1 (ko) 블록체인 네트워크 기반의 가상 공통 아이디 서비스 방법 및 이를 이용한 서비스 제공 서버
Park et al. Secure device control scheme with blockchain in a smart home
KR20200112770A (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
KR20200115399A (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN116862519A (zh) 基于区块链的处理匿名账户资源转移的方法、装置和设备

Legal Events

Date Code Title Description
A107 Divisional application of patent