KR20210084380A - 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드 - Google Patents

관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드 Download PDF

Info

Publication number
KR20210084380A
KR20210084380A KR1020210084361A KR20210084361A KR20210084380A KR 20210084380 A KR20210084380 A KR 20210084380A KR 1020210084361 A KR1020210084361 A KR 1020210084361A KR 20210084361 A KR20210084361 A KR 20210084361A KR 20210084380 A KR20210084380 A KR 20210084380A
Authority
KR
South Korea
Prior art keywords
entity
information
specific entity
specific
relationship
Prior art date
Application number
KR1020210084361A
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 KR20210084380A publication Critical patent/KR20210084380A/ko

Links

Images

Classifications

    • H04L61/15
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 블록체인 네트워크를 이용하여 엔티티들의 DID를 발급하여 주며, 특정 엔티티 DID와 타 엔티티 DID 사이의 관계정보를 블록체인 네트워크의 분산원장 또는 다른 데이터베이스에 저장하는 관계성 DID 서비스를 제공하는 방법에 관한 것이다.

Description

관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드{METHOD FOR PROVIDING RELATIONAL DECENTRALIZED IDENTIFIER SERVICE AND BLOCKCHAIN NODE USING THEM}
본 발명은 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드에 관한 것으로, 보다 상세하게는, 다른 엔티티와의 상호 관계를 이용하여 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드에 관한 것이다.
일반적으로 아이디는 개인의 고유 정보와 맵핑되는 형태를 가지고 있다.
예를 들어, aaa@gmail.com 이라는 이메일은 구글 아이디이며, 해당 아이디는 사용자의 성명과 전화 번호 등의 개인 정보와 상호 맵핑되어 구글 사용자 데이터베이스에 저장되어 있다.
그러나, 종래의 아이디는 중앙화된 관리체계로 인하여 서버 해킹 등 개인 정보가 유출되는 사례가 지속적으로 발생하고 있으며, 개인 정보를 기업들이 수집 및 이용하지만 이에 대해 사용자에게 보상이 이루어지지 않고 있다.
이러한 종래의 중앙화된 관리체계의 문제점을 해결하기 위한 방안으로, 자기주권 신원정보관리 기술로서 탈중앙화 아이디(decentralized identifier, DID)가 개발되고 있다.
DID의 예를 들면, did:meta:xxx 라는 DID는 개인의 personal information(PI)과 맵핑되어 사용자 단말에 저장되며, 사용자의 PI는 공인인증기관 등과 같은 제3자에 의해 검증된 후에 verifiable credential(VC)의 형태로 DID와 맵핑되어 사용자의 단말 또는 VC repository, 일 예로, identity hub 라는 공용 저장소에 저장된다.
하지만, 이러한 DID를 이용할 경우에도 DID를 사용하는 각각의 엔티티(entity)들은 DID와 VC를 이용하여 자신을 증명할 수 있으나, 다른 엔티티와의 관계를 증명할 수는 없다.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 다른 엔티티와의 상호 관계를 증명할 수 있도록 하는 것을 다른 목적으로 한다.
또한, 본 발명은 다른 엔티티와의 상호 관계를 이용하여 다양한 서비스를 제공할 수 있도록 하는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 관계성 탈중앙화 아이디(decentralized identifier, DID) 서비스를 제공하는 방법에 있어서, (a) 특정 엔티티 단말로부터 특정 엔티티에 대응되는 특정 엔티티 DID와 타 엔티티에 대응되는 타 엔티티 DID 사이의 관계를 설정한 관계정보 - 상기 관계정보는 타 엔티티에 의해 설정되었으며, 상기 특정 엔티티에 의해 확인된 것임 - 에 대한 등록을 요청하는 관계정보 등록 요청 정보가 블록체인 네트워크로 브로드캐스팅되면, 상기 블록체인 네트워크를 구성하는 적어도 하나의 블록체인 노드가, 상기 관계정보 등록 요청 정보를 검증하거나, 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크에 등록된 아이덴티티 컨트랙트로 전송하여 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 등록 요청 정보를 검증하도록 하는 단계; 및 (b) 상기 블록체인 노드가, 상기 관계정보 등록 요청 정보가 유효한 것으로 검증되면, 상기 관계정보를 상기 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 상기 블록체인 네트워크에 등록하여 주거나, 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 등록 요청 정보가 유효한 것으로 검증되면 상기 관계정보를 상기 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 상기 블록체인 네트워크에 등록하도록 하는 단계; 를 포함하는 방법이 제공될 수 있다.
또한 본 발명의 일 실시예에 따르면, (c) 상기 특정 엔티티 단말로부터의 상기 특정 엔티티 DID를 이용한 상기 타 엔티티 DID에 대한 서비스 요청 정보에 대응하여 서비스 제공 서버로부터 상기 관계정보 요청 정보가 획득되거나, 리졸버 서버로부터 상기 서비스 제공 서버로부터의 DID 문서 요청 정보 - 상기 DID 문서 요청 정보는 특정 엔티티 DID 문서 요청 정보와 타 엔티티 DID 문서 요청 정보 중 적어도 하나를 포함함 - 에 대응한 DID 공개정보 - 상기 DID 공개정보는 특정 엔티티 공개 정보와 타 엔티티 공개 정보 중 적어도 하나를 포함하며, 상기 특정 엔티티 공개 정보는 상기 특정 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 포함하고, 상기 타 엔티티 공개 정보는 상기 타 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함함 - 에 대한 DID 공개정보 요청 정보가 획득되면, 상기 블록체인 노드가, (i) 상기 서비스 제공 서버로부터의 상기 관계정보 요청 정보에 대응하여 상기 특정 엔티티 DID 또는 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 관계정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID 또는 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 관계정보를 획득하도록 하여 상기 관계정보를 상기 서비스 제공 서버로 전송하여 주거나, (ii) 상기 리졸버 서버로부터의 상기 DID 공개정보 요청 정보에 대응하여 상기 특정 엔티티 DID와 상기 타 엔티티 DID 중 적어도 하나를 이용하여 상기 블록체인 네트워크로부터 상기 DID 공개 정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID 중 적어도 하나를 이용하여 상기 블록체인 네트워크로부터 상기 DID 공개정보를 획득하도록 하여 상기 DID 공개정보가 상기 리졸버 서버를 통해 상기 DID 문서로 가공되어 상기 서비스 제공 서버로 전송되도록 함으로써, 상기 서비스 제공 서버로 하여금 상기 블록체인 노드로부터 획득되는 상기 관계정보와 상기 DID 문서로부터 획득되는 상기 관계정보 중 어느 하나를 참조하여 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 확인하도록 하며, 상기 관계 정보를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계가 확인되면 상기 타 엔티티 DID에 대응되는 서비스를 상기 특정 엔티티 단말로 제공하여 주도록 하는 단계; 를 더 포함할 수 있다.
상기에서, 상기 특정 엔티티 단말로부터의 상기 서비스 요청 정보에는 상기 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키를 이용하여 상기 서비스 요청 정보를 암호화한 특정 엔티티 서명값이 포함되며, 상기 블록체인 노드는, 상기 서비스 제공 서버로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 요청하기 위한 특정 엔티티 퍼블릭 키 요청 정보가 획득되거나, 상기 리졸버 서버로부터 상기 서비스 제공 서버로부터의 상기 특정 엔티티 DID 문서 요청 정보에 대응한 상기 특정 엔티티 공개정보에 대한 특정 엔티티 공개정보 요청 정보가 획득되면, (i) 상기 서비스 제공 서버로부터의 상기 특정 엔티티 퍼블릭 키 요청 정보에 대응하여 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 상기 특정 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키를 획득하도록 하여 상기 특정 엔티티 퍼블릭 키를 상기 서비스 제공 서버로 전송하거나, (ii) 상기 리졸버 서버로부터의 상기 특정 엔티티 공개정보 요청 정보에 대응하여 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 공개정보를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 공개정보를 획득하도록 하여 상기 특정 엔티티 공개정보가 상기 리졸버 서버를 통해 상기 특정 엔티티 DID 문서로 가공되어 상기 서비스 제공 서버로 전송되도록 함으로써, 상기 서비스 제공 서버로 하여금 상기 블록체인 노드로부터 획득한 상기 특정 엔티티 퍼블릭 키 또는 상기 특정 엔티티 DID 문서로부터 획득한 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 특정 엔티티 서명값을 복호화하여 상기 특정 엔티티 서명값을 검증하도록 하며, 상기 특정 엔티티 서명값이 검증되면 상기 관계정보 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 할 수 있다.
상기에서, 상기 관계정보 등록 요청 정보는 상기 타 엔티티 DID에 대응되는 타 엔티티 단말에서 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 설정한 관계정보 설정 정보와, 상기 특정 엔티티 단말에서 상기 관계정보 설정 정보를 확인한 관계정보 확인 정보를 포함할 수 있다.
상기에서, 상기 관계정보 설정 정보는 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 상기 관계정보를 상기 타 엔티티 DID에 대응되는 타 엔티티 프라이빗 키로 암호화한 타 엔티티 서명값을 포함하고, 상기 관계정보 확인 정보는 상기 관계정보와, 상기 관계정보를 상기 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키로 암호화한 특정 엔티티 서명값을 포함하며, 상기 블록체인 노드는, 상기 특정 엔티티 DID와 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키와 상기 타 엔티티 퍼블릭 키를 획득하도록 하며, 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하고, 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 특정 엔티티 서명값을 복호화하여 상기 관계정보 확인 정보를 검증함으로써 상기 관계정보 등록 요청 정보를 검증하도록 할 수 있다.
상기에서, 상기 블록체인 노드는, 상기 타 엔티티 단말로부터 전송되는 상기 관계정보 설정 정보에 대응한 상기 특정 엔티티 단말로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키에 대한 타 엔티티 퍼블릭 키 요청 정보가 획득되거나, 리졸버 서버로부터 상기 특정 엔티티 단말로부터의 타 엔티티 DID 문서 요청 정보에 대응한 타 엔티티 공개정보 - 상기 타 엔티티 공개정보는 상기 타 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함함 - 에 대한 타 엔티티 공개정보 요청 정보가 획득되면, (i) 상기 특정 엔티티 단말로부터의 상기 타 엔티티 퍼블릭 키 요청 정보에 대응하여 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 상기 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 퍼블릭 키를 획득하도록 하여 상기 타 엔티티 퍼블릭 키를 상기 특정 엔티티 단말로 전송하여 주거나, (ii) 상기 리졸버 서버로부터의 상기 타 엔티티 공개정보 요청 정보에 대응하여 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 공개정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 공개정보를 획득하도록 하여 상기 타 엔티티 공개정보가 상기 리졸버 서버를 통해 상기 타 엔티티 DID 문서로 가공되어 상기 특정 엔티티 단말로 전송되도록 함으로써, 상기 특정 엔티티 단말로 하여금 상기 블록체인 노드로부터 전송된 상기 타 엔티티 퍼블릭 키 또는 상기 타 엔티티 DID 문서로부터 획득한 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하도록 하고, 상기 관계정보 설정 정보가 검증되면 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 하여 상기 관계정보 등록 요청 정보를 획득할 수 있다.
상기에서, 상기 블록체인 노드는, 상기 타 엔티티 단말로부터 상기 관계정보 설정 정보가 상기 블록체인 네트워크로 브로드캐스팅되어 상기 관계정보 설정 정보가 획득되면, 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하거나 상기 아이덴티티 컨트랙트를 통해 상기 관계정보 설정 정보가 상기 특정 엔티티 단말로 전송되도록 함으로써, 상기 특정 엔티티 단말로 하여금 상기 관계정보 설정 정보의 검증 결과에 대응한 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 함으로써 상기 관계정보 등록 요청 정보를 획득할 수 있다.
상기에서, 상기 블록체인 노드는, 상기 타 엔티티 단말로부터 상기 관계정보 설정 정보가 상기 블록체인 네트워크로 브로드캐스팅되면, (i) 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 퍼블릭 키를 획득하도록 하며, 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하고, 상기 관계정보 설정 정보가 검증되면 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하거나 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 설정 정보에 대한 검증 결과를 상기 타 엔티티 단말로 전송하여 상기 타 엔티티 단말이 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하게 하도록 하며, 상기 특정 엔티티 단말로부터 상기 관계정보 확인 정보가 상기 블록체인 네트워크로 브로드캐스팅되면, (i) 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키를 획득하도록 하며, 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 관계정보 확인 정보를 복호화하여 상기 특정 엔티티 서명값을 검증할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 관계성 탈중앙화 아이디(decentralized identifier, DID) 서비스를 제공하는 블록체인 노드에 있어서, 관계성 DID 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리; 및 상기 메모리에 저장된 인스트럭션들에 따라 상기 관계성 DID 서비스를 제공하기 위한 동작을 수행하는 프로세서; 를 포함하되, 상기 프로세서는, (I) 특정 엔티티 단말로부터 특정 엔티티에 대응되는 특정 엔티티 DID와 타 엔티티에 대응되는 타 엔티티 DID 사이의 관계를 설정한 관계정보 - 상기 관계정보는 타 엔티티에 의해 설정되었으며, 상기 특정 엔티티에 의해 확인된 것임 - 에 대한 등록을 요청하는 관계정보 등록 요청 정보가 블록체인 네트워크로 브로드캐스팅되면, 상기 관계정보 등록 요청 정보를 검증하거나, 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크에 등록된 아이덴티티 컨트랙트로 전송하여 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 등록 요청 정보를 검증하도록 하는 프로세스, 및 (II) 상기 관계정보 등록 요청 정보가 유효한 것으로 검증되면, 상기 관계정보를 상기 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 상기 블록체인 네트워크에 등록하여 주거나, 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 등록 요청 정보가 유효한 것으로 검증되면 상기 관계정보를 상기 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 상기 블록체인 네트워크에 등록하도록 하는 프로세스를 수행하는 블록체인 노드가 제공될 수 있다.
상기에서, 상기 프로세서는, (III) 상기 특정 엔티티 단말로부터의 상기 특정 엔티티 DID를 이용한 상기 타 엔티티 DID에 대한 서비스 요청 정보에 대응하여 서비스 제공 서버로부터 상기 관계정보 요청 정보가 획득되거나, 리졸버 서버로부터 상기 서비스 제공 서버로부터의 DID 문서 요청 정보 - 상기 DID 문서 요청 정보는 특정 엔티티 DID 문서 요청 정보와 타 엔티티 DID 문서 요청 정보 중 적어도 하나를 포함함 - 에 대응한 DID 공개정보 - 상기 DID 공개정보는 특정 엔티티 공개 정보와 타 엔티티 공개 정보 중 적어도 하나를 포함하며, 상기 특정 엔티티 공개 정보는 상기 특정 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 포함하고, 상기 타 엔티티 공개 정보는 상기 타 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함함 - 에 대한 DID 공개정보 요청 정보가 획득되면, 상기 블록체인 노드가, (i) 상기 서비스 제공 서버로부터의 상기 관계정보 요청 정보에 대응하여 상기 특정 엔티티 DID 또는 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 관계정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID 또는 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 관계정보를 획득하도록 하여 상기 관계정보를 상기 서비스 제공 서버로 전송하여 주거나, (ii) 상기 리졸버 서버로부터의 상기 DID 공개정보 요청 정보에 대응하여 상기 특정 엔티티 DID와 상기 타 엔티티 DID 중 적어도 하나를 이용하여 상기 블록체인 네트워크로부터 상기 DID 공개 정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID 중 적어도 하나를 이용하여 상기 블록체인 네트워크로부터 상기 DID 공개정보를 획득하도록 하여 상기 DID 공개정보가 상기 리졸버 서버를 통해 상기 DID 문서로 가공되어 상기 서비스 제공 서버로 전송되도록 함으로써, 상기 서비스 제공 서버로 하여금 상기 블록체인 노드로부터 획득되는 상기 관계정보와 상기 DID 문서로부터 획득되는 상기 관계정보 중 어느 하나를 참조하여 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 확인하도록 하며, 상기 관계 정보를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계가 확인되면 상기 타 엔티티 DID에 대응되는 서비스를 상기 특정 엔티티 단말로 제공하여 주도록 하는 프로세스를 더 수행할 수 있다.
상기에서, 상기 특정 엔티티 단말로부터의 상기 서비스 요청 정보에는 상기 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키를 이용하여 상기 서비스 요청 정보를 암호화한 특정 엔티티 서명값이 포함되며, 상기 서비스 제공 서버로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 요청하기 위한 특정 엔티티 퍼블릭 키 요청 정보가 획득되거나, 상기 리졸버 서버로부터 상기 서비스 제공 서버로부터의 상기 특정 엔티티 DID 문서 요청 정보에 대응한 상기 특정 엔티티 공개정보에 대한 특정 엔티티 공개정보 요청 정보가 획득되면, (i) 상기 서비스 제공 서버로부터의 상기 특정 엔티티 퍼블릭 키 요청 정보에 대응하여 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 상기 특정 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키를 획득하도록 하여 상기 특정 엔티티 퍼블릭 키를 상기 서비스 제공 서버로 전송하거나, (ii) 상기 리졸버 서버로부터의 상기 특정 엔티티 공개정보 요청 정보에 대응하여 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 공개정보를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 공개정보를 획득하도록 하여 상기 특정 엔티티 공개정보가 상기 리졸버 서버를 통해 상기 특정 엔티티 DID 문서로 가공되어 상기 서비스 제공 서버로 전송되도록 함으로써, 상기 서비스 제공 서버로 하여금 상기 블록체인 노드로부터 획득한 상기 특정 엔티티 퍼블릭 키 또는 상기 특정 엔티티 DID 문서로부터 획득한 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 특정 엔티티 서명값을 복호화하여 상기 특정 엔티티 서명값을 검증하도록 하며, 상기 특정 엔티티 서명값이 검증되면 상기 관계정보 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 할 수 있다.
상기에서, 상기 관계정보 등록 요청 정보는 상기 타 엔티티 DID에 대응되는 타 엔티티 단말에서 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 설정한 관계정보 설정 정보와, 상기 특정 엔티티 단말에서 상기 관계정보 설정 정보를 확인한 관계정보 확인 정보를 포함할 수 있다.
상기에서, 상기 관계정보 설정 정보는 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 상기 관계정보를 상기 타 엔티티 DID에 대응되는 타 엔티티 프라이빗 키로 암호화한 타 엔티티 서명값을 포함하고, 상기 관계정보 확인 정보는 상기 관계정보와, 상기 관계정보를 상기 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키로 암호화한 특정 엔티티 서명값을 포함하며, 상기 프로세서는, 상기 특정 엔티티 DID와 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키와 상기 타 엔티티 퍼블릭 키를 획득하도록 하며, 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하고, 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 특정 엔티티 서명값을 복호화하여 상기 관계정보 확인 정보를 검증함으로써 상기 관계정보 등록 요청 정보를 검증하도록 할 수 있다.
상기에서, 상기 프로세서는, 상기 타 엔티티 단말로부터 전송되는 상기 관계정보 설정 정보에 대응한 상기 특정 엔티티 단말로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키에 대한 타 엔티티 퍼블릭 키 요청 정보가 획득되거나, 리졸버 서버로부터 상기 특정 엔티티 단말로부터의 타 엔티티 DID 문서 요청 정보에 대응한 타 엔티티 공개정보 - 상기 타 엔티티 공개정보는 상기 타 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함함 - 에 대한 타 엔티티 공개정보 요청 정보가 획득되면, (i) 상기 특정 엔티티 단말로부터의 상기 타 엔티티 퍼블릭 키 요청 정보에 대응하여 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 상기 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 퍼블릭 키를 획득하도록 하여 상기 타 엔티티 퍼블릭 키를 상기 특정 엔티티 단말로 전송하여 주거나, (ii) 상기 리졸버 서버로부터의 상기 타 엔티티 공개정보 요청 정보에 대응하여 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 공개정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 공개정보를 획득하도록 하여 상기 타 엔티티 공개정보가 상기 리졸버 서버를 통해 상기 타 엔티티 DID 문서로 가공되어 상기 특정 엔티티 단말로 전송되도록 함으로써, 상기 특정 엔티티 단말로 하여금 상기 블록체인 노드로부터 전송된 상기 타 엔티티 퍼블릭 키 또는 상기 타 엔티티 DID 문서로부터 획득한 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하도록 하고, 상기 관계정보 설정 정보가 검증되면 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 하여 상기 관계정보 등록 요청 정보를 획득할 수 있다.
상기에서, 상기 프로세서는, 상기 타 엔티티 단말로부터 상기 관계정보 설정 정보가 상기 블록체인 네트워크로 브로드캐스팅되어 상기 관계정보 설정 정보가 획득되면, 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하거나 상기 아이덴티티 컨트랙트를 통해 상기 관계정보 설정 정보가 상기 특정 엔티티 단말로 전송되도록 함으로써, 상기 특정 엔티티 단말로 하여금 상기 관계정보 설정 정보의 검증 결과에 대응한 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 함으로써 상기 관계정보 등록 요청 정보를 획득할 수 있다.
상기에서, 상기 프로세서는, 상기 타 엔티티 단말로부터 상기 관계정보 설정 정보가 상기 블록체인 네트워크로 브로드캐스팅되면, (i) 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 퍼블릭 키를 획득하도록 하며, 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하고, 상기 관계정보 설정 정보가 검증되면 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하거나 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 설정 정보에 대한 검증 결과를 상기 타 엔티티 단말로 전송하여 상기 타 엔티티 단말이 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하게 하도록 하며, 상기 특정 엔티티 단말로부터 상기 관계정보 확인 정보가 상기 블록체인 네트워크로 브로드캐스팅되면, (i) 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키를 획득하도록 하며, 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 관계정보 확인 정보를 복호화하여 상기 특정 엔티티 서명값을 검증할 수 있다.
이 외에도, 본 발명의 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 다음과 같은 효과가 있다.
본 발명은 DID와 관련하여 다른 엔티티와의 상호 관계를 등록함으로써 다른 엔티티와의 상호 관계를 증명할 수 있게 된다.
본 발명은 DID와 관련하여 다른 엔티티와의 상호 관계를 등록할 수 있도록 함으로써 다른 엔티티와의 상호 관계를 이용하여 다양한 서비스를 제공할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 관계성 탈중앙화 아이디 서비스를 제공하기 위한 시스템을 개략적으로 도시한 것이고,
도 2는 본 발명의 일 실시예에 따른 관계성 탈중앙화 아이디 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 3은 본 발명의 다른 실시예에 따른 관계성 탈중앙화 아이디 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 4는 본 발명의 또 다른 실시예에 따른 관계성 탈중앙화 아이디 서비스를 제공하는 방법을 개략적으로 도시한 것이고,
도 5는 본 발명의 또 다른 실시예에 따른 관계성 탈중앙화 아이디 서비스를 제공하는 방법을 개략적으로 도시한 것이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 관계성 탈중앙화 아이디 서비스(decentralized identifier, DID)를 제공하는 시스템을 개략적으로 도시한 것이고, 시스템은 엔티티 단말들(100), 블록체인 네트워크(200), 서비스 제공 서버(300), 및 리졸버 서버(400)를 포함할 수 있다.
먼저, 엔티티 단말들(100)은 관계성 DID 서비스를 이용하고자 하는 각각의 엔티티들에 대응되는 단말들로, 엔티티 단말들(100)은 각각 발급받은 DID와 DID에 매칭되는 personal identity(PI) 또는 PI를 인증 기관에서 인증한 VC(verifiable credential)을 저장할 수 있다. 이때, 엔티티들은 사용자, IoT 등을 포함할 수 있으나, 이에 한정되지 않으며, DID를 식별 정보로 이용할 수 있는 모든 개체를 포함할 수 있다.
다음으로, 블록체인 네트워크(200)는 다수의 블록체인 노드들에 의해 분산 원장을 공유하며, 분산 합의에 의해 블록을 생성하고 생성된 블록들을 체인 형태로 분산 원장에 저장하는 것으로, 사용자 및 컴퓨팅 장치의 요청에 따른 DID를 생성하여 주며 DID에 대응되는 데이터들을 분산 원장에 저장할 수 있다. 그리고, 블록체인 네트워크(200)는 등록된 아이덴티티 컨트랙트를 통해 DID와 관련한 데이터를 처리하도록 할 수 있다.
또한, 블록체인 네트워크(200)는 엔티티 단말들(100) 사이의 관계정보 등록 요청에 대응하여 엔티티들 사이의 관계정보를 등록하여 관계성 DID 서비스를 제공하여 줄 수 있다.
이때, 블록체인 네트워크(200)는 다수의 블록체인 노드로 구성되며, 각각의 블록체인 노드(210)는 관계성 DID 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리와 메모리에 저장된 인스트럭션들에 따라 관계성 DID 서비스를 제공하기 위한 동작을 수행하는 프로세서를 포함할 수 있다. 그리고, 블록체인 노드(210)는 PC(Personal Computer), 모바일 컴퓨터, PDA/EDA, 휴대 전화, 스마트폰, 태블릿, 서버 등을 포함할 수 있으나, 이에 한정되지 않으며, 유무선 통신 기능을 가진 휴대용 게임기, 디지털 카메라, 개인 내비게이션 등과 같이 컴퓨팅 연산을 수행하는 모든 컴퓨팅 장치를 포함할 수 있다.
구체적으로, 블록체인 노드(210)는 전형적으로 컴퓨팅 장치(예컨대, 컴퓨터 프로세서, 메모리, 스토리지, 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS) 및 스토리지 영역 네트워크(SAN)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 인스트럭션들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다.
이와 같은 컴퓨팅 장치의 통신부는 연동되는 타 컴퓨팅 장치와 요청과 응답을 송수신할 수 있는 바, 일 예시로서 그러한 요청과 응답은 동일한 TCP 세션에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP 데이터그램으로서 송수신될 수도 있을 것이다.
또한, 컴퓨팅 장치의 프로세서는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다.
다음으로, 서비스 제공 서버(300)는 엔티티 단말들(100)과의 인터랙션을 통해 엔티티 단말들(100)에서 요청된 서비스를 제공하여 줄 수 있다.
다음으로, 리졸버 서버(400)는 리졸버 서버(400)는 DID에 대응하여 블록체인 네트워크에 등록된 데이터들, 즉 공개정보들을 획득하여 주는 것으로, 블록체인 네트워크에 접속할 수 있는 컴퓨팅 장치이거나 블록체인 네트워크를 구성하는 블록체인 노드일 수 있다.
이와 같이 구성된 시스템을 통해 본 발명의 일 실시예에 따른 관계성 DID 서비스를 제공하는 방법을 도 2를 참조하여 설명하면 다음과 같다.
먼저, 특정 엔티티와 타 엔티티는 각각 특정 엔티티 단말(110)과 타 엔티티 단말(120)을 통해 블록체인 네트워크(200)에 각각 특정 엔티티 DID와 타 엔티티 DID를 등록할 수 있으며, 블록체인 네트워크(200)에는 특정 엔티티 DID에 대응되는 특정 엔티티 공개정보들인 특정 엔티티 퍼블릭 키, 특정 엔티티 가상 자산 어드레스 등이 등록되고, 타 엔티티 DID에 대응되는 타 엔티티 공개정보들인 타 엔티티 퍼블릭 키, 타 엔티티 가상 자산 어드레스 등이 등록될 수 있다. 이때, 블록체인 네트워크(200)는 등록되어 있는 아이덴티티 컨트랙트로 하여금 DID와 관련한 동작을 수행하도록 할 수 있다. 그리고, 아이덴티티 컨트랙트는 DID와 관련한 동작을 수행하는 스마트 컨트랙트로, DID와 관련한 동작을 수행하기 위한 오퍼레이션 코드들로 구성되어 블록체인 네트워크 상에서 동작되도록 한 것일 수 있다. 또한, 아이덴티티 컨트랙트는 DID와 연동하는 타 스마트 컨트랙트와의 인터랙션을 위한 상호관계제어 오퍼레이션 코드들을 포함할 수 있으며, 이를 통해 엔티티가 DID와 연동하는 타 서비스를 요청하는 경우, 타 스마트 컨트랙트와의 인터랙션을 통해 엔티티가 타 서비스를 이용할 수 있도록 할 수 있다.
이와 같은 상태에서, 타 엔티티가 특정 엔티티와의 관계를 설정하기 위하여 타 엔티티 단말(120)을 통해 특정 엔티티와 타 엔티티 사이의 관계를 설정하기 위한 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송(S1)하여 줄 수 있다.
이때, 관계정보 설정 정보는 특정 엔티티에 대응되는 특정 엔티티 DID와 타 엔티티에 대응되는 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 관계정보를 타 엔티티 DID에 대응되는 타 엔티티 프라이빗 키로 암호화한 타 엔티티 서명값을 포함할 수 있다. 그리고, 관계 정보는 특정 엔티티와 타 엔티티 사이의 관계에 관한 정보로, IoT 장비와 소유자, 부모와 자식, 직원과 대표, 학생과 교수 등 다양한 엔티티들 사이의 관계에 관한 정보일 수 있다. 일 예로, 관계정보는 "특정 엔티티 DID는 타 엔티티 DID의 소유자이다"와 같이 설정될 수 있다.
그러면, 특정 엔티티 단말(110)은 타 엔티티 단말(120)로부터 전송된 관계정보 설정 정보를 검증(S4)할 수 있다.
일 예로, 특정 엔티티 단말(110)은 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하기 위하여 블록체인 네트워크(200)로 타 엔티티 퍼블릭 키 요청 정보를 브로드캐스팅(S2)할 수 있다. 그러면, 블록체인 네트워크(200)를 구성하는 적어도 하나의 블록체인 노드(210)는 타 엔티티 퍼블릭 키 요청 정보에 대응하여 블록체인 네트워크(200)로부터 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하고, 블록체인 네트워크(200)로부터 획득된 타 엔티티 퍼블릭 키를 특정 엔티티 단말(110)로 전송(S3)하여 줄 수 있다. 또한, 블록체인 노드(210)는 블록체인 네트워크(200)에 등록된 아이덴티티 컨트랙트를 통해 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 타 엔티티 퍼블릭 키를 획득하도록 하여 타 엔티티 퍼블릭 키를 특정 엔티티 단말(110)로 전송(S3)하여 줄 수 있다. 그리고, 특정 엔티티 단말(110)은 블록체인 노드(210)로부터 전송된 타 엔티티 퍼블릭 키를 이용하여 타 엔티티 서명값을 복호화하여 관계정보 설정 정보를 검증(S4)할 수 있다. 이때, 관계정보 설정 정보의 검증은, 타 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 설정 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있다.
이후, 관계정보 설정 정보가 검증되면, 특정 엔티티 단말(110)은 관계정보 등록 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S5)할 수 있다.
이때, 관계정보 등록 요청 정보는 타 엔티티 단말(120)에서 전송된 관계정보 설정 정보와, 특정 엔티티 단말(110)이 관계정보 설정 정보를 확인한 결과에 대응되어 생성한 관계정보 확인 정보를 포함할 수 있다. 그리고, 관계정보 확인 정보는 관계정보와, 관계정보를 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키로 암호화한 특정 엔티티 서명값을 포함할 수 있다.
그리고, 블록체인 노드(210)는 특정 엔티티 단말(110)로부터 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 등록 요청 정보를 수신하며, 관계정보 등록 요청 정보를 검증(S6)할 수 있다.
일 예로, 블록체인 노드(210)는 특정 엔티티 DID와 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키와 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득할 수 있다. 또한, 블록체인 노드(210)는 아이덴티티 컨트랙트를 통해 특정 엔티티 DID와 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 퍼블릭 키와 타 엔티티 퍼블릭 키를 획득하도록 할 수 있다. 그리고, 블록체인 노드(210)는 타 엔티티 퍼블릭 키를 이용하여 관계정보 설정 정보에 포함된 타 엔티티 서명값을 복호화하여 관계정보 설정 정보를 검증하고, 특정 엔티티 퍼블릭 키를 이용하여 관계정보 확인 정보에 포함된 특정 엔티티 서명값을 복호화하여 관계정보 확인 정보를 검증함으로써 관계정보 등록 요청 정보를 검증할 수 있다. 이때, 관계정보 설정 정보의 검증은, 타 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 설정 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있으며, 관계정보 확인 정보의 검증은, 특정 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 확인 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있다.
한편, 블록체인 노드(210)는 자신이 관계정보 등록 요청 정보를 검증하는 것과는 달리, 관계정보 등록 요청 정보를 아이덴티티 컨트랙트로 전송하여 아이덴티티 컨트랙트가 관계정보 등록 요청 정보를 검증하도록 할 수 있다.
이후, 블록체인 노드(210)는 관계정보 등록 요청 정보가 유효한 것으로 검증되면, 관계정보를 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 블록체인 네트워크(200)에 등록(S7)하여 주거나, 아이덴티티 컨트랙트로 하여금 관계정보 등록 요청 정보가 유효한 것으로 검증되면 관계정보를 특정 엔티티의 DID 및 타 엔티티의 DID에 매칭하여 블록체인 네트워크(200)에 등록(S7)하도록 할 수 있다.
한편, 상기에서는 타 엔티티 단말(120)이 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송하였으나, 이와는 달리, 관계정보 설정 정보가 블록체인 네트워크(200)를 통해 특정 엔티티 단말(110)로 전송되도록 할 수 있다.
즉, 타 엔티티 단말(120)이 관계정보 설정 정보를 블록체인 네트워크(200)로 브로드캐스팅하면, 블록체인 노드(210)가 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 설정 정보를 수신하며, 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송하거나 아이덴티티 컨트랙트를 통해 관계정보 설정 정보가 특정 엔티티 단말(110)로 전송되도록 할 수 있다. 그리고, 특정 엔티티 단말(110)이 관계정보 설정 정보와 관계정보 확인 정보를 포함하는 관계정보 등록 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅하면, 블록체인 노드(210)가 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 등록 요청 정보를 획득할 수 있다.
상기에서와 같은 방법에 의해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보가 블록체인 네트워크(200)에 등록된 상태에서 특정 엔티티가 타 엔티티 DID를 이용하여 서비스를 이용하기 위하여, 특정 엔티티 단말(110)을 이용하여 타 엔티티 DID에 대한 서비스 요청 정보를 서비스 제공 서버(300)로 전송(S8)할 수 있다. 이때, 서비스 요청 정보에는 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키를 이용하여 서비스 요청 정보를 암호화한 특정 엔티티 서명값이 포함될 수 있다.
그러면, 서비스 제공 서버(300)는 특정 엔티티 단말(110)로부터 전송된 타 엔티티 DID에 대한 서비스 요청 정보를 검증(S11)할 수 있다.
일 예로, 서비스 제공 서버(300)는 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 요청하기 위한 특정 엔티티 퍼블릭 키 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S9)할 수 있다. 그러면, 블록체인 노드(210)는 블록체인 네트워크(200)로 브로드캐스팅된 특정 엔티티 퍼블릭 키 요청 정보를 획득하며, 특정 엔티티 퍼블릭 키 요청 정보에 대응하여 블록체인 네트워크(200)로부터 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득하고, 블록체인 네트워크(200)로부터 획득된 특정 엔티티 퍼블릭 키를 서비스 제공 서버(300)로 전송(S10)하여 줄 수 있다. 또한, 블록체인 노드(210)는 블록체인 네트워크(200)에 등록된 아이덴티티 컨트랙트를 통해 특정 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 퍼블릭 키를 획득하도록 하여 특정 엔티티 퍼블릭 키를 서비스 제공 서버(300)로 전송(S10)하여 줄 수 있다. 그리고, 서비스 제공 서버(300)는 블록체인 노드(210)로부터 전송된 특정 엔티티 퍼블릭 키를 이용하여 서비스 요청 정보에 포함된 특정 엔티티 서명값을 복호화하여 서비스 요청 정보를 검증(S11)할 수 있다. 이때, 서비스 요청 정보의 검증은, 특정 엔티티 서명값을 복호화하여 획득한 서비스 요청 정보가 특정 엔티티 단말로부터 전송된 서비스 요청 정보와 일치하는지 여부를 확인함으로써 수행될 수 있다.
이후, 서비스 요청 정보가 검증되면, 서비스 제공 서버(300)는 관계정보 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S12)할 수 있다.
이때, 관계정보 요청 정보는 특정 엔티티 DID 또는 타 엔티티 DID를 포함할 수 있다.
그리고, 블록체인 노드(210)는 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 요청 정보를 수신하며, 관계정보 요청 정보에 대응하여 특정 엔티티 DID 또는 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 DID와 타 엔티티 DID 사이의 관계가 설정되어 있는 관계정보를 획득하거나, 아이덴티티 컨트랙트를 통해 특정 엔티티 DID 또는 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 관계정보를 획득하도록 하고, 관계정보를 서비스 제공 서버(300)로 전송(S13)하여 줄 수 있다.
그리고, 서비스 제공 서버(300)는 블록체인 노드(210)로부터 획득되는 관계정보를 통해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 확인(S14)할 수 있다.
이후, 관계 정보를 통해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계가 확인되면 타 엔티티 DID에 대응되는 서비스를 특정 엔티티 단말(110)로 제공(S15)하여 줄 수 있다. 일 예로, 관계정보가 “특정 엔티티 DID는 타 엔티티 DID의 소유자이다"이며, 서비스 요청에 타 엔티티 DID를 통한 로그온 요청일 경우, 서비스 서버(300)는 관계정보를 통해 특정 엔티티 DID가 타 엔티티 DID의 소유자임을 확인하고, 특정 엔티티 단말(110)에서 타 엔티티 DID로 로그온할 수 있도록 한다.
도 3은 본 발명의 다른 실시예에 따른 관계성 DID 서비스를 제공하는 방법을 개략적으로 도시한 것으로, 도 3을 참조하여 본 발명의 다른 실시예에 따른 관계성 DID 서비스를 제공하는 방법을 설명하면 다음과 같다.
타 엔티티가 특정 엔티티와의 관계를 설정하기 위하여 타 엔티티 단말(120)을 통해 특정 엔티티와 타 엔티티 사이의 관계를 설정하기 위한 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송(S21)하여 줄 수 있다.
이때, 관계정보 설정 정보는 특정 엔티티에 대응되는 특정 엔티티 DID와 타 엔티티에 대응되는 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 관계정보를 타 엔티티 DID에 대응되는 타 엔티티 프라이빗 키로 암호화한 타 엔티티 서명값을 포함할 수 있다. 그리고, 관계 정보는 특정 엔티티와 타 엔티티 사이의 관계에 관한 정보로, IoT 장비와 소유자, 부모와 자식, 직원과 대표, 학생과 교수 등 다양한 엔티티들 사이의 관계에 관한 정보일 수 있다. 일 예로, 관계정보는 "특정 엔티티 DID는 타 엔티티 DID의 소유자이다"와 같이 설정될 수 있다.
그러면, 특정 엔티티 단말(110)은 타 엔티티 단말(120)로부터 전송된 관계정보 설정 정보를 검증(S26)할 수 있다.
일 예로, 특정 엔티티 단말(110)은 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하기 위하여 리졸버 서버(400)로 타 엔티티 DID에 대응되는 타 엔티티 DID 문서 요청 정보를 전송(S22)할 수 있다. 그리고, 리졸버 서버(400)는 특정 엔티티 단말(110)로부터의 타 엔티티 DID 문서 요청 정보에 대응하여 블록체인 네트워크(200)로 타 엔티티 공개정보에 대한 타 엔티티 공개정보 요청 정보를 브로드캐스팅(S23)할 수 있다. 이때, 타 엔티티 공개정보는 타 엔티티 DID와 관련하여 블록체인 네트워크(200)에 등록되어 있는 정보로서, 적어도 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함할 수 있다. 그러면, 블록체인 네트워크(200)를 구성하는 적어도 하나의 블록체인 노드(210)는 타 엔티티 공개정보 요청 정보에 대응하여 블록체인 네트워크(200)로부터 타 엔티티 DID에 대응되는 타 엔티티 공개정보를 획득하고, 블록체인 네트워크(200)로부터 획득된 타 엔티티 공개정보를 리졸버 서버(400)로 전송(S24)하여 줄 수 있다. 또한, 블록체인 노드(210)는 블록체인 네트워크(200)에 등록된 아이덴티티 컨트랙트를 통해 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 타 엔티티 공개정보를 획득하도록 하여 타 엔티티 공개정보를 리졸버 서버(400)로 전송하여 줄 수 있다. 그리고, 리졸버 서버(400)는 블록체인 노드(210)로부터 전송되는 타 엔티티 공개정보를 타 엔티티 DID 문서로 가공하고, 타 엔티티 DID 문서를 특정 엔티티 단말(110)로 전송(S25)하여 줄 수 있다. 그러면, 특정 엔티티 단말(110)은 리졸버 서버(400)로부터 전송된 타 엔티티 DID 문서로부터 타 엔티티 퍼블릭 키를 획득하며, 타 엔티티 퍼블릭 키를 이용하여 타 엔티티 서명값을 복호화하여 관계정보 설정 정보를 검증(S26)할 수 있다. 이때, 관계정보 설정 정보의 검증은, 타 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 설정 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있다.
이후, 관계정보 설정 정보가 검증되면, 특정 엔티티 단말(110)은 관계정보 등록 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S27)할 수 있다.
이때, 관계정보 등록 요청 정보는 타 엔티티 단말(120)에서 전송된 관계정보 설정 정보와, 특정 엔티티 단말(110)이 관계정보 설정 정보를 확인한 결과에 대응되어 생성한 관계정보 확인 정보를 포함할 수 있다. 그리고, 관계정보 확인 정보는 관계정보와, 관계정보를 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키로 암호화한 특정 엔티티 서명값을 포함할 수 있다.
그리고, 블록체인 노드(210)는 특정 엔티티 단말(110)로부터 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 등록 요청 정보를 수신하며, 관계정보 등록 요청 정보를 검증(S28)할 수 있다.
일 예로, 블록체인 노드(210)는 특정 엔티티 DID와 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키와 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득할 수 있다. 또한, 블록체인 노드(210)는 아이덴티티 컨트랙트를 통해 특정 엔티티 DID와 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 퍼블릭 키와 타 엔티티 퍼블릭 키를 획득하도록 할 수 있다. 그리고, 블록체인 노드(210)는 타 엔티티 퍼블릭 키를 이용하여 관계정보 설정 정보에 포함된 타 엔티티 서명값을 복호화하여 관계정보 설정 정보를 검증하고, 특정 엔티티 퍼블릭 키를 이용하여 관계정보 확인 정보에 포함된 특정 엔티티 서명값을 복호화하여 관계정보 확인 정보를 검증함으로써 관계정보 등록 요청 정보를 검증할 수 있다. 이때, 관계정보 설정 정보의 검증은, 타 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 설정 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있으며, 관계정보 확인 정보의 검증은, 특정 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 확인 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있다.
한편, 블록체인 노드(210)는 자신이 관계정보 등록 요청 정보를 검증하는 것과는 달리, 관계정보 등록 요청 정보를 아이덴티티 컨트랙트로 전송하여 아이덴티티 컨트랙트가 관계정보 등록 요청 정보를 검증하도록 할 수 있다.
이후, 블록체인 노드(210)는 관계정보 등록 요청 정보가 유효한 것으로 검증되면, 관계정보를 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 블록체인 네트워크(200)에 등록(S29)하여 주거나, 아이덴티티 컨트랙트로 하여금 관계정보 등록 요청 정보가 유효한 것으로 검증되면 관계정보를 특정 엔티티의 DID 및 타 엔티티의 DID에 매칭하여 블록체인 네트워크(200)에 등록(S29)하도록 할 수 있다.
한편, 상기에서는 타 엔티티 단말(120)이 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송하였으나, 이와는 달리, 관계정보 설정 정보가 블록체인 네트워크(200)를 통해 특정 엔티티 단말(110)로 전송되도록 할 수 있다.
즉, 타 엔티티 단말(120)이 관계정보 설정 정보를 블록체인 네트워크(200)로 브로드캐스팅하면, 블록체인 노드(210)가 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 설정 정보를 수신하며, 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송하거나 아이덴티티 컨트랙트를 통해 관계정보 설정 정보가 특정 엔티티 단말(110)로 전송되도록 할 수 있다.
상기에서와 같은 방법에 의해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보가 블록체인 네트워크(200)에 등록된 상태에서 특정 엔티티가 타 엔티티 DID를 이용하여 서비스를 이용하기 위하여, 특정 엔티티 단말(110)을 이용하여 타 엔티티 DID에 대한 서비스 요청 정보를 서비스 제공 서버(300)로 전송(S30)할 수 있다. 이때, 서비스 요청 정보에는 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키를 이용하여 서비스 요청 정보를 암호화한 특정 엔티티 서명값이 포함될 수 있다.
그러면, 서비스 제공 서버(300)는 특정 엔티티 단말(110)로부터 전송된 타 엔티티 DID에 대한 서비스 요청 정보를 검증(S35)할 수 있다.
일 예로, 서비스 제공 서버(300)는 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득하기 위하여 리졸버 서버(400)로 특정 엔티티 DID에 대응되는 특정 엔티티 DID 문서 요청 정보를 전송(S31)할 수 있다. 그리고, 리졸버 서버(400)는 서비스 제공 서버(300)로부터의 특정 엔티티 DID 문서 요청 정보에 대응하여 블록체인 네트워크(200)로 특정 엔티티 공개정보에 대한 특정 엔티티 공개정보 요청 정보를 브로드캐스팅(S32)할 수 있다. 이때, 특정 엔티티 공개정보는 특정 엔티티 DID와 관련하여 블록체인 네트워크(200)에 등록되어 있는 정보로서, 적어도 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 포함할 수 있다. 그러면, 블록체인 네트워크(200)를 구성하는 적어도 하나의 블록체인 노드(210)는 특정 엔티티 공개정보 요청 정보에 대응하여 블록체인 네트워크(200)로부터 특정 엔티티 DID에 대응되는 특정 엔티티 공개정보를 획득하고, 블록체인 네트워크(200)로부터 획득된 특정 엔티티 공개정보를 리졸버 서버(400)로 전송(S33)하여 줄 수 있다. 또한, 블록체인 노드(210)는 블록체인 네트워크(200)에 등록된 아이덴티티 컨트랙트를 통해 특정 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 공개정보를 획득하도록 하여 특정 엔티티 공개정보를 리졸버 서버(400)로 전송하여 줄 수 있다. 그리고, 리졸버 서버(400)는 블록체인 노드(210)로부터 전송되는 특정 엔티티 공개정보를 특정 엔티티 DID 문서로 가공하고, 특정 엔티티 DID 문서를 서비스 제공 서버(300)로 전송(S34)하여 줄 수 있다. 그러면, 서비스 제공 서버(300)는 리졸버 서버(400)로부터 전송된 특정 엔티티 DID 문서로부터 특정 엔티티 퍼블릭 키를 획득하며, 특정 엔티티 퍼블릭 키를 이용하여 서비스 요청 정보에 포함된 특정 엔티티 서명값을 복호화하여 서비스 요청 정보를 검증(S35)할 수 있다. 이때, 서비스 요청 정보의 검증은, 특정 엔티티 서명값을 복호화하여 획득한 서비스 요청 정보와, 특정 엔티티 단말(110)로부터 전송된 서비스 요청 정보가 일치하는지 여부를 확인함으로써 수행될 수 있다.
이후, 서비스 요청 정보가 검증되면, 서비스 제공 서버(300)는 DID 문서 요청 정보를 리졸버 서버(400)로 전송(S36)하여 줄 수 있다.
이때, DID 문서 요청 정보는 특정 엔티티 DID 문서 요청 정보와 타 엔티티 DID 문서 요청 정보 중 적어도 하나를 포함할 수 있다.
그러면, 리졸버 서버(400)는 서비스 제공 서버(200)로부터의 DID 문서 요청 정보에 대응한 DID 공개정보에 대한 DID 공개정보 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S37)할 수 있다.
이때, DID 공개정보는 특정 엔티티 공개 정보와 타 엔티티 공개 정보 중 적어도 하나를 포함할 수 있다. 그리고, 특정 엔티티 공개 정보는 특정 엔티티 DID와 관련하여 블록체인 네트워크(200)에 등록되어 있는 정보로서, 적어도 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 포함할 수 있으며, 타 엔티티 공개 정보는 타 엔티티 DID와 관련하여 블록체인 네트워크(200)에 등록되어 있는 정보로서, 적어도 특정 엔티티 DID와 타 엔티티 DID 사이의 간계를 설정한 관계정보와, 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함할 수 있다.
그리고, 블록체인 노드(210)는 블록체인 네트워크(200)로 브로드캐스팅된 DID 공개정보 요청 정보를 수신하며, DID 공개정보 요청 정보에 대응하여 특정 엔티티 DID와 타 엔티티 DID 중 적어도 하나를 이용하여 블록체인 네트워크(200)로부터 DID 공개정보를 획득하거나, 아이덴티티 컨트랙트를 통해 특정 엔티티 DID와 타 엔티티 DID 중 적어도 하나를 이용하여 블록체인 네트워크(200)로부터 DID 공개정보를 획득하도록 하고, DID 공개정보를 리졸버 서버(400)로 전송(S38)하여 줄 수 있다.
그러면, 리졸버 서버(400)는 DID 공개정보를 DID 문서로 가공하며, DID 문서를 서비스 제공 서버(300)로 전송(S39)하여 줄 수 있다.
그리고, 서비스 제공 서버(300)는 DID 문서로부터 획득되는 관계정보를 통해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 확인(S40)할 수 있다.
이후, 관계 정보를 통해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계가 확인되면 타 엔티티 DID에 대응되는 서비스를 특정 엔티티 단말(110)로 제공(S41)하여 줄 수 있다. 일 예로, 관계정보가 “특정 엔티티 DID는 타 엔티티 DID의 소유자이다"이며, 서비스 요청에 타 엔티티 DID를 통한 로그온 요청일 경우, 서비스 서버(300)는 관계정보를 통해 특정 엔티티 DID가 타 엔티티 DID의 소유자임을 확인하고, 특정 엔티티 단말(110)에서 타 엔티티 DID로 로그온할 수 있도록 한다.
도 4는 본 발명의 또 다른 실시예에 따른 관계성 DID 서비스를 제공하는 방법을 개략적으로 도시한 것으로, 도 4를 참조하여 본 발명의 또 다른 실시예에 따른 관계성 DID 서비스를 제공하는 방법을 설명하면 다음과 같다. 이하의 설명에서는 도 2와 도3을 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.
티 엔티티가 특정 엔티티와의 관계를 설정하기 위하여 타 엔티티 단말(120)을 통해 특정 엔티티와 타 엔티티 사이의 관계를 설정하기 위한 관계정보 설정 정보를 블록체인 네트워크(200)로 브로드캐스팅(S51)할 수 있다.
이때, 관계정보 설정 정보는 특정 엔티티에 대응되는 특정 엔티티 DID와 타 엔티티에 대응되는 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 관계정보를 타 엔티티 DID에 대응되는 타 엔티티 프라이빗 키로 암호화한 타 엔티티 서명값을 포함할 수 있다. 그리고, 관계 정보는 특정 엔티티와 타 엔티티 사이의 관계에 관한 정보로, IoT 장비와 소유자, 부모와 자식, 직원과 대표, 학생과 교수 등 다양한 엔티티들 사이의 관계에 관한 정보일 수 있다. 일 예로, 관계정보는 "특정 엔티티 DID는 타 엔티티 DID의 소유자이다"와 같이 설정될 수 있다.
그러면, 블록체인 네트워크(200)를 구성하는 블록체인 노드들 중 적어도 하나의 블록체인 노드(210)가 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 설정 정보를 수신하고, 수신된 관계정보 설정 정보를 검증(S52)할 수 있다.
일 예로, 블록체인 노드(210)는 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득할 수 있다. 또한, 블록체인 노드(210)는 아이덴티티 컨트랙트를 통해 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 타 엔티티 퍼블릭 키를 획득하도록 할 수 있다. 그리고, 블록체인 노드(210)는 타 엔티티 퍼블릭 키를 이용하여 관계정보 설정 정보에 포함된 타 엔티티 서명값을 복호화하여 관계정보 설정 정보를 검증할 수 있다. 이때, 관계정보 설정 정보의 검증은, 타 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 설정 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있다. 한편, 블록체인 노드(210)는 자신이 관계정보 설정 정보를 검증하는 것과는 달리, 관계정보 설정 정보를 아이덴티티 컨트랙트로 전송하여 아이덴티티 컨트랙트가 관계정보 설정 정보를 검증하도록 할 수 있다.
이후, 관계정보 설정 정보가 검증되면, 블록체인 노드(210)는 타 엔티티 단말(120)로부터의 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송(S53)하여 줄 수 있다. 또한, 블록체인 노드(210)는 아이덴티티 컨트랙트로 하여금 관계정보 설정 정보에 대한 검증 결과를 타 엔티티 단말(120)로 전송하여 타 엔티티 단말(120)이 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송하도록 할 수 있다.
그리고, 특정 엔티티 단말(110)은 관계정보 설정 정보를 디스플레이하여 특정 엔티티가 확인할 수 있도록 하며, 특정 엔티티가 특정 엔티티 DID와 타 엔티티 DID 사이의 관계정보를 확인한 후 승인하면, 특정 엔티티 단말(110)은 관계정보 등록 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S54)하여 줄 수 있다.
이때, 관계정보 등록 요청 정보는 타 엔티티 단말(120)에서 전송된 관계정보 설정 정보와, 특정 엔티티 단말(110)이 관계정보 설정 정보를 확인한 결과에 대응되어 생성한 관계정보 확인 정보를 포함할 수 있다. 그리고, 관계정보 확인 정보는 관계정보와, 관계정보를 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키로 암호화한 특정 엔티티 서명값을 포함할 수 있다. 이와는 달리, 블록체인 노드(210)가 타 엔티티 단말(120)로부터 전송된 관계정보 설정 정보를 저장하고 있을 경우에는, 관계정보 확인 정보를 관계정보 등록 요청 정보로서 블록체인 네트워크(200)로 브로드캐스팅할 수 있다.
그러면, 블록체인 노드(210)는 특정 엔티티 단말(110)로부터 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 등록 요청 정보를 수신하며, 관계정보 등록 요청 정보를 검증(S55)할 수 있다.
일 예로, 블록체인 노드(210)는 특정 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득할 수 있다. 또한, 블록체인 노드(210)는 아이덴티티 컨트랙트를 통해 특정 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 퍼블릭 키를 획득하도록 할 수 있다. 그리고, 블록체인 노드(210)는 특정 엔티티 퍼블릭 키를 이용하여 관계정보 확인 정보에 포함된 특정 엔티티 서명값을 복호화하여 관계정보 확인 정보를 검증함으로써 관계정보 등록 요청 정보를 검증할 수 있다. 이때, 관계정보 확인 정보의 검증은, 특정 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 확인 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있다.
한편, 블록체인 노드(210)는 자신이 관계정보 등록 요청 정보를 검증하는 것과는 달리, 관계정보 등록 요청 정보를 아이덴티티 컨트랙트로 전송하여 아이덴티티 컨트랙트가 관계정보 등록 요청 정보를 검증하도록 할 수 있다.
이후, 블록체인 노드(210)는 관계정보 등록 요청 정보가 유효한 것으로 검증되면, 관계정보를 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 블록체인 네트워크(200)에 등록(S56)하여 주거나, 아이덴티티 컨트랙트로 하여금 관계정보 등록 요청 정보가 유효한 것으로 검증되면 관계정보를 특정 엔티티의 DID 및 타 엔티티의 DID에 매칭하여 블록체인 네트워크(200)에 등록(S56)하도록 할 수 있다.
상기에서와 같은 방법에 의해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보가 블록체인 네트워크(200)에 등록된 상태에서 특정 엔티티가 타 엔티티 DID를 이용하여 서비스를 이용하기 위하여, 특정 엔티티 단말(110)을 이용하여 타 엔티티 DID에 대한 서비스 요청 정보를 서비스 제공 서버(300)로 전송(S57)할 수 있다. 이때, 서비스 요청 정보에는 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키를 이용하여 서비스 요청 정보를 암호화한 특정 엔티티 서명값이 포함될 수 있다.
그러면, 서비스 제공 서버(300)는 특정 엔티티 단말(110)로부터 전송된 타 엔티티 DID에 대한 서비스 요청 정보를 검증(S60)할 수 있다.
일 예로, 서비스 제공 서버(300)는 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 요청하기 위한 특정 엔티티 퍼블릭 키 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S58)할 수 있다. 그러면, 블록체인 노드(210)는 블록체인 네트워크(200)로 브로드캐스팅된 특정 엔티티 퍼블릭 키 요청 정보를 획득하며, 특정 엔티티 퍼블릭 키 요청 정보에 대응하여 블록체인 네트워크(200)로부터 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득하고, 블록체인 네트워크(200)로부터 획득된 특정 엔티티 퍼블릭 키를 서비스 제공 서버(300)로 전송(S59)하여 줄 수 있다. 또한, 블록체인 노드(210)는 블록체인 네트워크(200)에 등록된 아이덴티티 컨트랙트를 통해 특정 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 퍼블릭 키를 획득하도록 하여 특정 엔티티 퍼블릭 키를 서비스 제공 서버(300)로 전송(S59)하여 줄 수 있다. 그리고, 서비스 제공 서버(300)는 블록체인 노드(210)로부터 전송된 특정 엔티티 퍼블릭 키를 이용하여 서비스 요청 정보에 포함된 특정 엔티티 서명값을 복호화하여 서비스 요청 정보를 검증(S60)할 수 있다. 이때, 서비스 요청 정보의 검증은, 특정 엔티티 서명값을 복호화하여 획득한 서비스 요청 정보가 특정 엔티티 단말로부터 전송된 서비스 요청 정보와 일치하는지 여부를 확인함으로써 수행될 수 있다.
이후, 서비스 요청 정보가 검증되면, 서비스 제공 서버(300)는 관계정보 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S61)할 수 있다.
이때, 관계정보 요청 정보는 특정 엔티티 DID 또는 타 엔티티 DID를 포함할 수 있다.
그리고, 블록체인 노드(210)는 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 요청 정보를 수신하며, 관계정보 요청 정보에 대응하여 특정 엔티티 DID 또는 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 DID와 타 엔티티 DID 사이의 관계가 설정되어 있는 관계정보를 획득하거나, 아이덴티티 컨트랙트를 통해 특정 엔티티 DID 또는 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 관계정보를 획득하도록 하고, 관계정보를 서비스 제공 서버(300)로 전송(S62)하여 줄 수 있다.
그리고, 서비스 제공 서버(300)는 블록체인 노드(210)로부터 획득되는 관계정보를 통해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 확인(S63)할 수 있다.
이후, 관계 정보를 통해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계가 확인되면 타 엔티티 DID에 대응되는 서비스를 특정 엔티티 단말(110)로 제공(S64)하여 줄 수 있다. 일 예로, 관계정보가 “특정 엔티티 DID는 타 엔티티 DID의 소유자이다"이며, 서비스 요청에 타 엔티티 DID를 통한 로그온 요청일 경우, 서비스 서버(300)는 관계정보를 통해 특정 엔티티 DID가 타 엔티티 DID의 소유자임을 확인하고, 특정 엔티티 단말(110)에서 타 엔티티 DID로 로그온할 수 있도록 한다.
도 5는 본 발명의 또 다른 실시예에 따른 관계성 DID 서비스를 제공하는 방법을 개략적으로 도시한 것으로, 도 5를 참조하여 본 발명의 또 다른 실시예에 따른 관계성 DID 서비스를 제공하는 방법을 설명하면 다음과 같다. 이하의 설명에서는 도 2와 도3을 참조한 설명으로부터 용이하게 이해 가능한 부분에 대해서는 상세한 설명을 생략하기로 한다.
티 엔티티가 특정 엔티티와의 관계를 설정하기 위하여 타 엔티티 단말(120)을 통해 특정 엔티티와 타 엔티티 사이의 관계를 설정하기 위한 관계정보 설정 정보를 블록체인 네트워크(200)로 브로드캐스팅(S71)할 수 있다.
이때, 관계정보 설정 정보는 특정 엔티티에 대응되는 특정 엔티티 DID와 타 엔티티에 대응되는 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 관계정보를 타 엔티티 DID에 대응되는 타 엔티티 프라이빗 키로 암호화한 타 엔티티 서명값을 포함할 수 있다. 그리고, 관계 정보는 특정 엔티티와 타 엔티티 사이의 관계에 관한 정보로, IoT 장비와 소유자, 부모와 자식, 직원과 대표, 학생과 교수 등 다양한 엔티티들 사이의 관계에 관한 정보일 수 있다. 일 예로, 관계정보는 "특정 엔티티 DID는 타 엔티티 DID의 소유자이다"와 같이 설정될 수 있다.
그러면, 블록체인 네트워크(200)를 구성하는 블록체인 노드들 중 적어도 하나의 블록체인 노드(210)가 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 설정 정보를 수신하고, 수신된 관계정보 설정 정보를 검증(S72)할 수 있다.
일 예로, 블록체인 노드(210)는 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득할 수 있다. 또한, 블록체인 노드(210)는 아이덴티티 컨트랙트를 통해 타 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 타 엔티티 퍼블릭 키를 획득하도록 할 수 있다. 그리고, 블록체인 노드(210)는 타 엔티티 퍼블릭 키를 이용하여 관계정보 설정 정보에 포함된 타 엔티티 서명값을 복호화하여 관계정보 설정 정보를 검증할 수 있다. 이때, 관계정보 설정 정보의 검증은, 타 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 설정 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있다. 한편, 블록체인 노드(210)는 자신이 관계정보 설정 정보를 검증하는 것과는 달리, 관계정보 설정 정보를 아이덴티티 컨트랙트로 전송하여 아이덴티티 컨트랙트가 관계정보 설정 정보를 검증하도록 할 수 있다.
이후, 관계정보 설정 정보가 검증되면, 블록체인 노드(210)는 타 엔티티 단말(120)로부터의 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송(S73)하여 줄 수 있다. 또한, 블록체인 노드(210)는 아이덴티티 컨트랙트로 하여금 관계정보 설정 정보에 대한 검증 결과를 타 엔티티 단말(120)로 전송하여 타 엔티티 단말(120)이 관계정보 설정 정보를 특정 엔티티 단말(110)로 전송하도록 할 수 있다.
그리고, 특정 엔티티 단말(110)은 관계정보 설정 정보를 디스플레이하여 특정 엔티티가 확인할 수 있도록 하며, 특정 엔티티가 특정 엔티티 DID와 타 엔티티 DID 사이의 관계정보를 확인한 후 승인하면, 특정 엔티티 단말(110)은 관계정보 등록 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S74)하여 줄 수 있다.
이때, 관계정보 등록 요청 정보는 타 엔티티 단말(120)에서 전송된 관계정보 설정 정보와, 특정 엔티티 단말(110)이 관계정보 설정 정보를 확인한 결과에 대응되어 생성한 관계정보 확인 정보를 포함할 수 있다. 그리고, 관계정보 확인 정보는 관계정보와, 관계정보를 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키로 암호화한 특정 엔티티 서명값을 포함할 수 있다. 이와는 달리, 블록체인 노드(210)가 타 엔티티 단말(120)로부터 전송된 관계정보 설정 정보를 저장하고 있을 경우에는, 관계정보 확인 정보를 관계정보 등록 요청 정보로서 블록체인 네트워크(200)로 브로드캐스팅할 수 있다.
그러면, 블록체인 노드(210)는 특정 엔티티 단말(110)로부터 블록체인 네트워크(200)로 브로드캐스팅된 관계정보 등록 요청 정보를 수신하며, 관계정보 등록 요청 정보를 검증(S75)할 수 있다.
일 예로, 블록체인 노드(210)는 특정 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득할 수 있다. 또한, 블록체인 노드(210)는 아이덴티티 컨트랙트를 통해 특정 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 퍼블릭 키를 획득하도록 할 수 있다. 그리고, 블록체인 노드(210)는 특정 엔티티 퍼블릭 키를 이용하여 관계정보 확인 정보에 포함된 특정 엔티티 서명값을 복호화하여 관계정보 확인 정보를 검증함으로써 관계정보 등록 요청 정보를 검증할 수 있다. 이때, 관계정보 확인 정보의 검증은, 특정 엔티티 서명값을 복호화하여 획득한 관계정보와, 관계정보 확인 정보에 포함된 관계정보가 일치하는지 여부를 확인함으로써 수행될 수 있다.
한편, 블록체인 노드(210)는 자신이 관계정보 등록 요청 정보를 검증하는 것과는 달리, 관계정보 등록 요청 정보를 아이덴티티 컨트랙트로 전송하여 아이덴티티 컨트랙트가 관계정보 등록 요청 정보를 검증하도록 할 수 있다.
이후, 블록체인 노드(210)는 관계정보 등록 요청 정보가 유효한 것으로 검증되면, 관계정보를 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 블록체인 네트워크(200)에 등록(S76)하여 주거나, 아이덴티티 컨트랙트로 하여금 관계정보 등록 요청 정보가 유효한 것으로 검증되면 관계정보를 특정 엔티티의 DID 및 타 엔티티의 DID에 매칭하여 블록체인 네트워크(200)에 등록(S76)하도록 할 수 있다.
상기에서와 같은 방법에 의해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보가 블록체인 네트워크(200)에 등록된 상태에서 특정 엔티티가 타 엔티티 DID를 이용하여 서비스를 이용하기 위하여, 특정 엔티티 단말(110)을 이용하여 타 엔티티 DID에 대한 서비스 요청 정보를 서비스 제공 서버(300)로 전송(S77)할 수 있다. 이때, 서비스 요청 정보에는 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키를 이용하여 서비스 요청 정보를 암호화한 특정 엔티티 서명값이 포함될 수 있다.
그러면, 서비스 제공 서버(300)는 특정 엔티티 단말(110)로부터 전송된 타 엔티티 DID에 대한 서비스 요청 정보를 검증(S82)할 수 있다.
일 예로, 서비스 제공 서버(300)는 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득하기 위하여 리졸버 서버(400)로 특정 엔티티 DID에 대응되는 특정 엔티티 DID 문서 요청 정보를 전송(S78)할 수 있다. 그리고, 리졸버 서버(400)는 서비스 제공 서버(300)로부터의 특정 엔티티 DID 문서 요청 정보에 대응하여 블록체인 네트워크(200)로 특정 엔티티 공개정보에 대한 특정 엔티티 공개정보 요청 정보를 브로드캐스팅(S79)할 수 있다. 이때, 특정 엔티티 공개정보는 특정 엔티티 DID와 관련하여 블록체인 네트워크(200)에 등록되어 있는 정보로서, 적어도 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 포함할 수 있다. 그러면, 블록체인 네트워크(200)를 구성하는 적어도 하나의 블록체인 노드(210)는 특정 엔티티 공개정보 요청 정보에 대응하여 블록체인 네트워크(200)로부터 특정 엔티티 DID에 대응되는 특정 엔티티 공개정보를 획득하고, 블록체인 네트워크(200)로부터 획득된 특정 엔티티 공개정보를 리졸버 서버(400)로 전송(S80)하여 줄 수 있다. 또한, 블록체인 노드(210)는 블록체인 네트워크(200)에 등록된 아이덴티티 컨트랙트를 통해 특정 엔티티 DID를 이용하여 블록체인 네트워크(200)로부터 특정 엔티티 공개정보를 획득하도록 하여 특정 엔티티 공개정보를 리졸버 서버(400)로 전송하여 줄 수 있다. 그리고, 리졸버 서버(400)는 블록체인 노드(210)로부터 전송되는 특정 엔티티 공개정보를 특정 엔티티 DID 문서로 가공하고, 특정 엔티티 DID 문서를 서비스 제공 서버(300)로 전송(S81)하여 줄 수 있다. 그러면, 서비스 제공 서버(300)는 리졸버 서버(400)로부터 전송된 특정 엔티티 DID 문서로부터 특정 엔티티 퍼블릭 키를 획득하며, 특정 엔티티 퍼블릭 키를 이용하여 서비스 요청 정보에 포함된 특정 엔티티 서명값을 복호화하여 서비스 요청 정보를 검증(S82)할 수 있다. 이때, 서비스 요청 정보의 검증은, 특정 엔티티 서명값을 복호화하여 획득한 서비스 요청 정보와, 특정 엔티티 단말(110)로부터 전송된 서비스 요청 정보가 일치하는지 여부를 확인함으로써 수행될 수 있다.
이후, 서비스 요청 정보가 검증되면, 서비스 제공 서버(300)는 DID 문서 요청 정보를 리졸버 서버(400)로 전송(S83)하여 줄 수 있다.
이때, DID 문서 요청 정보는 특정 엔티티 DID 문서 요청 정보와 타 엔티티 DID 문서 요청 정보 중 적어도 하나를 포함할 수 있다.
그러면, 리졸버 서버(400)는 서비스 제공 서버(200)로부터의 DID 문서 요청 정보에 대응한 DID 공개정보에 대한 DID 공개정보 요청 정보를 블록체인 네트워크(200)로 브로드캐스팅(S84)할 수 있다.
이때, DID 공개정보는 특정 엔티티 공개 정보와 타 엔티티 공개 정보 중 적어도 하나를 포함할 수 있다. 그리고, 특정 엔티티 공개 정보는 특정 엔티티 DID와 관련하여 블록체인 네트워크(200)에 등록되어 있는 정보로서, 적어도 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 포함할 수 있으며, 타 엔티티 공개 정보는 타 엔티티 DID와 관련하여 블록체인 네트워크(200)에 등록되어 있는 정보로서, 적어도 특정 엔티티 DID와 타 엔티티 DID 사이의 간계를 설정한 관계정보와, 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함할 수 있다.
그리고, 블록체인 노드(210)는 블록체인 네트워크(200)로 브로드캐스팅된 DID 공개정보 요청 정보를 수신하며, DID 공개정보 요청 정보에 대응하여 특정 엔티티 DID와 타 엔티티 DID 중 적어도 하나를 이용하여 블록체인 네트워크(200)로부터 DID 공개정보를 획득하거나, 아이덴티티 컨트랙트를 통해 특정 엔티티 DID와 타 엔티티 DID 중 적어도 하나를 이용하여 블록체인 네트워크(200)로부터 DID 공개정보를 획득하도록 하고, DID 공개정보를 리졸버 서버(400)로 전송(S85)하여 줄 수 있다.
그러면, 리졸버 서버(400)는 DID 공개정보를 DID 문서로 가공하며, DID 문서를 서비스 제공 서버(300)로 전송(S86)하여 줄 수 있다.
그리고, 서비스 제공 서버(300)는 DID 문서로부터 획득되는 관계정보를 통해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계를 확인(S87)할 수 있다.
이후, 관계 정보를 통해 특정 엔티티 DID와 타 엔티티 DID 사이의 관계가 확인되면 타 엔티티 DID에 대응되는 서비스를 특정 엔티티 단말(110)로 제공(S88)하여 줄 수 있다. 일 예로, 관계정보가 “특정 엔티티 DID는 타 엔티티 DID의 소유자이다"이며, 서비스 요청에 타 엔티티 DID를 통한 로그온 요청일 경우, 서비스 서버(300)는 관계정보를 통해 특정 엔티티 DID가 타 엔티티 DID의 소유자임을 확인하고, 특정 엔티티 단말(110)에서 타 엔티티 DID로 로그온할 수 있도록 한다.
또한, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 엔티티 단말들,
200: 블록체인 네트워크,
210: 블록체인 노드,
300: 서비스 제공 서버,
400: 리졸보 서버

Claims (16)

  1. 관계성 탈중앙화 아이디(decentralized identifier, DID) 서비스를 제공하는 방법에 있어서,
    (a) 특정 엔티티 단말로부터 특정 엔티티에 대응되는 특정 엔티티 DID와 타 엔티티에 대응되는 타 엔티티 DID 사이의 관계를 설정한 관계정보 - 상기 관계정보는 타 엔티티에 의해 설정되었으며, 상기 특정 엔티티에 의해 확인된 것임 - 에 대한 등록을 요청하는 관계정보 등록 요청 정보가 블록체인 네트워크로 브로드캐스팅되면, 상기 블록체인 네트워크를 구성하는 적어도 하나의 블록체인 노드가, 상기 관계정보 등록 요청 정보를 검증하거나, 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크에 등록된 아이덴티티 컨트랙트로 전송하여 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 등록 요청 정보를 검증하도록 하는 단계; 및
    (b) 상기 블록체인 노드가, 상기 관계정보 등록 요청 정보가 유효한 것으로 검증되면, 상기 관계정보를 상기 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 상기 블록체인 네트워크에 등록하여 주거나, 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 등록 요청 정보가 유효한 것으로 검증되면 상기 관계정보를 상기 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 상기 블록체인 네트워크에 등록하도록 하는 단계;
    를 포함하는 방법.
  2. 제1항에 있어서,
    (c) 상기 특정 엔티티 단말로부터의 상기 특정 엔티티 DID를 이용한 상기 타 엔티티 DID에 대한 서비스 요청 정보에 대응하여 서비스 제공 서버로부터 상기 관계정보 요청 정보가 획득되거나, 리졸버 서버로부터 상기 서비스 제공 서버로부터의 DID 문서 요청 정보 - 상기 DID 문서 요청 정보는 특정 엔티티 DID 문서 요청 정보와 타 엔티티 DID 문서 요청 정보 중 적어도 하나를 포함함 - 에 대응한 DID 공개정보 - 상기 DID 공개정보는 특정 엔티티 공개 정보와 타 엔티티 공개 정보 중 적어도 하나를 포함하며, 상기 특정 엔티티 공개 정보는 상기 특정 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 포함하고, 상기 타 엔티티 공개 정보는 상기 타 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함함 - 에 대한 DID 공개정보 요청 정보가 획득되면, 상기 블록체인 노드가, (i) 상기 서비스 제공 서버로부터의 상기 관계정보 요청 정보에 대응하여 상기 특정 엔티티 DID 또는 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 관계정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID 또는 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 관계정보를 획득하도록 하여 상기 관계정보를 상기 서비스 제공 서버로 전송하여 주거나, (ii) 상기 리졸버 서버로부터의 상기 DID 공개정보 요청 정보에 대응하여 상기 특정 엔티티 DID와 상기 타 엔티티 DID 중 적어도 하나를 이용하여 상기 블록체인 네트워크로부터 상기 DID 공개 정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID 중 적어도 하나를 이용하여 상기 블록체인 네트워크로부터 상기 DID 공개정보를 획득하도록 하여 상기 DID 공개정보가 상기 리졸버 서버를 통해 상기 DID 문서로 가공되어 상기 서비스 제공 서버로 전송되도록 함으로써, 상기 서비스 제공 서버로 하여금 상기 블록체인 노드로부터 획득되는 상기 관계정보와 상기 DID 문서로부터 획득되는 상기 관계정보 중 어느 하나를 참조하여 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 확인하도록 하며, 상기 관계 정보를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계가 확인되면 상기 타 엔티티 DID에 대응되는 서비스를 상기 특정 엔티티 단말로 제공하여 주도록 하는 단계;
    를 더 포함하는 방법.
  3. 제2항에 있어서,
    상기 특정 엔티티 단말로부터의 상기 서비스 요청 정보에는 상기 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키를 이용하여 상기 서비스 요청 정보를 암호화한 특정 엔티티 서명값이 포함되며,
    상기 블록체인 노드는, 상기 서비스 제공 서버로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 요청하기 위한 특정 엔티티 퍼블릭 키 요청 정보가 획득되거나, 상기 리졸버 서버로부터 상기 서비스 제공 서버로부터의 상기 특정 엔티티 DID 문서 요청 정보에 대응한 상기 특정 엔티티 공개정보에 대한 특정 엔티티 공개정보 요청 정보가 획득되면, (i) 상기 서비스 제공 서버로부터의 상기 특정 엔티티 퍼블릭 키 요청 정보에 대응하여 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 상기 특정 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키를 획득하도록 하여 상기 특정 엔티티 퍼블릭 키를 상기 서비스 제공 서버로 전송하거나, (ii) 상기 리졸버 서버로부터의 상기 특정 엔티티 공개정보 요청 정보에 대응하여 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 공개정보를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 공개정보를 획득하도록 하여 상기 특정 엔티티 공개정보가 상기 리졸버 서버를 통해 상기 특정 엔티티 DID 문서로 가공되어 상기 서비스 제공 서버로 전송되도록 함으로써, 상기 서비스 제공 서버로 하여금 상기 블록체인 노드로부터 획득한 상기 특정 엔티티 퍼블릭 키 또는 상기 특정 엔티티 DID 문서로부터 획득한 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 특정 엔티티 서명값을 복호화하여 상기 특정 엔티티 서명값을 검증하도록 하며, 상기 특정 엔티티 서명값이 검증되면 상기 관계정보 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 하는 방법.
  4. 제1항에 있어서,
    상기 (a) 단계에서,
    상기 관계정보 등록 요청 정보는 상기 타 엔티티 DID에 대응되는 타 엔티티 단말에서 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 설정한 관계정보 설정 정보와, 상기 특정 엔티티 단말에서 상기 관계정보 설정 정보를 확인한 관계정보 확인 정보를 포함하는 방법.
  5. 제4항에 있어서,
    상기 관계정보 설정 정보는 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 상기 관계정보를 상기 타 엔티티 DID에 대응되는 타 엔티티 프라이빗 키로 암호화한 타 엔티티 서명값을 포함하고, 상기 관계정보 확인 정보는 상기 관계정보와, 상기 관계정보를 상기 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키로 암호화한 특정 엔티티 서명값을 포함하며,
    상기 블록체인 노드는, 상기 특정 엔티티 DID와 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키와 상기 타 엔티티 퍼블릭 키를 획득하도록 하며, 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하고, 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 특정 엔티티 서명값을 복호화하여 상기 관계정보 확인 정보를 검증함으로써 상기 관계정보 등록 요청 정보를 검증하도록 하는 방법.
  6. 제5항에 있어서,
    상기 블록체인 노드는, 상기 타 엔티티 단말로부터 전송되는 상기 관계정보 설정 정보에 대응한 상기 특정 엔티티 단말로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키에 대한 타 엔티티 퍼블릭 키 요청 정보가 획득되거나, 리졸버 서버로부터 상기 특정 엔티티 단말로부터의 타 엔티티 DID 문서 요청 정보에 대응한 타 엔티티 공개정보 - 상기 타 엔티티 공개정보는 상기 타 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함함 - 에 대한 타 엔티티 공개정보 요청 정보가 획득되면, (i) 상기 특정 엔티티 단말로부터의 상기 타 엔티티 퍼블릭 키 요청 정보에 대응하여 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 상기 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 퍼블릭 키를 획득하도록 하여 상기 타 엔티티 퍼블릭 키를 상기 특정 엔티티 단말로 전송하여 주거나, (ii) 상기 리졸버 서버로부터의 상기 타 엔티티 공개정보 요청 정보에 대응하여 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 공개정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 공개정보를 획득하도록 하여 상기 타 엔티티 공개정보가 상기 리졸버 서버를 통해 상기 타 엔티티 DID 문서로 가공되어 상기 특정 엔티티 단말로 전송되도록 함으로써, 상기 특정 엔티티 단말로 하여금 상기 블록체인 노드로부터 전송된 상기 타 엔티티 퍼블릭 키 또는 상기 타 엔티티 DID 문서로부터 획득한 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하도록 하고, 상기 관계정보 설정 정보가 검증되면 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 하여 상기 관계정보 등록 요청 정보를 획득하는 방법.
  7. 제5항에 있어서,
    상기 블록체인 노드는,
    상기 타 엔티티 단말로부터 상기 관계정보 설정 정보가 상기 블록체인 네트워크로 브로드캐스팅되어 상기 관계정보 설정 정보가 획득되면, 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하거나 상기 아이덴티티 컨트랙트를 통해 상기 관계정보 설정 정보가 상기 특정 엔티티 단말로 전송되도록 함으로써, 상기 특정 엔티티 단말로 하여금 상기 관계정보 설정 정보의 검증 결과에 대응한 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 함으로써 상기 관계정보 등록 요청 정보를 획득하는 방법.
  8. 제4항에 있어서,
    상기 블록체인 노드는,
    상기 타 엔티티 단말로부터 상기 관계정보 설정 정보가 상기 블록체인 네트워크로 브로드캐스팅되면, (i) 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 퍼블릭 키를 획득하도록 하며, 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하고, 상기 관계정보 설정 정보가 검증되면 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하거나 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 설정 정보에 대한 검증 결과를 상기 타 엔티티 단말로 전송하여 상기 타 엔티티 단말이 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하게 하도록 하며,
    상기 특정 엔티티 단말로부터 상기 관계정보 확인 정보가 상기 블록체인 네트워크로 브로드캐스팅되면, (i) 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키를 획득하도록 하며, 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 관계정보 확인 정보를 복호화하여 상기 특정 엔티티 서명값을 검증하는 방법.
  9. 관계성 탈중앙화 아이디(decentralized identifier, DID) 서비스를 제공하는 블록체인 노드에 있어서,
    관계성 DID 서비스를 제공하기 위한 인스트럭션들이 저장된 메모리; 및
    상기 메모리에 저장된 인스트럭션들에 따라 상기 관계성 DID 서비스를 제공하기 위한 동작을 수행하는 프로세서;
    를 포함하되,
    상기 프로세서는, (I) 특정 엔티티 단말로부터 특정 엔티티에 대응되는 특정 엔티티 DID와 타 엔티티에 대응되는 타 엔티티 DID 사이의 관계를 설정한 관계정보 - 상기 관계정보는 타 엔티티에 의해 설정되었으며, 상기 특정 엔티티에 의해 확인된 것임 - 에 대한 등록을 요청하는 관계정보 등록 요청 정보가 블록체인 네트워크로 브로드캐스팅되면, 상기 관계정보 등록 요청 정보를 검증하거나, 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크에 등록된 아이덴티티 컨트랙트로 전송하여 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 등록 요청 정보를 검증하도록 하는 프로세스, 및 (II) 상기 관계정보 등록 요청 정보가 유효한 것으로 검증되면, 상기 관계정보를 상기 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 상기 블록체인 네트워크에 등록하여 주거나, 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 등록 요청 정보가 유효한 것으로 검증되면 상기 관계정보를 상기 특정 엔티티의 DID 및 상기 타 엔티티의 DID에 매칭하여 상기 블록체인 네트워크에 등록하도록 하는 프로세스를 수행하는 블록체인 노드.
  10. 제9항에 있어서,
    상기 프로세서는, (III) 상기 특정 엔티티 단말로부터의 상기 특정 엔티티 DID를 이용한 상기 타 엔티티 DID에 대한 서비스 요청 정보에 대응하여 서비스 제공 서버로부터 상기 관계정보 요청 정보가 획득되거나, 리졸버 서버로부터 상기 서비스 제공 서버로부터의 DID 문서 요청 정보 - 상기 DID 문서 요청 정보는 특정 엔티티 DID 문서 요청 정보와 타 엔티티 DID 문서 요청 정보 중 적어도 하나를 포함함 - 에 대응한 DID 공개정보 - 상기 DID 공개정보는 특정 엔티티 공개 정보와 타 엔티티 공개 정보 중 적어도 하나를 포함하며, 상기 특정 엔티티 공개 정보는 상기 특정 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 포함하고, 상기 타 엔티티 공개 정보는 상기 타 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함함 - 에 대한 DID 공개정보 요청 정보가 획득되면, 상기 블록체인 노드가, (i) 상기 서비스 제공 서버로부터의 상기 관계정보 요청 정보에 대응하여 상기 특정 엔티티 DID 또는 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 관계정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID 또는 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 관계정보를 획득하도록 하여 상기 관계정보를 상기 서비스 제공 서버로 전송하여 주거나, (ii) 상기 리졸버 서버로부터의 상기 DID 공개정보 요청 정보에 대응하여 상기 특정 엔티티 DID와 상기 타 엔티티 DID 중 적어도 하나를 이용하여 상기 블록체인 네트워크로부터 상기 DID 공개 정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID 중 적어도 하나를 이용하여 상기 블록체인 네트워크로부터 상기 DID 공개정보를 획득하도록 하여 상기 DID 공개정보가 상기 리졸버 서버를 통해 상기 DID 문서로 가공되어 상기 서비스 제공 서버로 전송되도록 함으로써, 상기 서비스 제공 서버로 하여금 상기 블록체인 노드로부터 획득되는 상기 관계정보와 상기 DID 문서로부터 획득되는 상기 관계정보 중 어느 하나를 참조하여 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 확인하도록 하며, 상기 관계 정보를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계가 확인되면 상기 타 엔티티 DID에 대응되는 서비스를 상기 특정 엔티티 단말로 제공하여 주도록 하는 프로세스를 더 수행하는 블록체인 노드.
  11. 제10항에 있어서,
    상기 특정 엔티티 단말로부터의 상기 서비스 요청 정보에는 상기 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키를 이용하여 상기 서비스 요청 정보를 암호화한 특정 엔티티 서명값이 포함되며,
    상기 프로세서는, 상기 서비스 제공 서버로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 요청하기 위한 특정 엔티티 퍼블릭 키 요청 정보가 획득되거나, 상기 리졸버 서버로부터 상기 서비스 제공 서버로부터의 상기 특정 엔티티 DID 문서 요청 정보에 대응한 상기 특정 엔티티 공개정보에 대한 특정 엔티티 공개정보 요청 정보가 획득되면, (i) 상기 서비스 제공 서버로부터의 상기 특정 엔티티 퍼블릭 키 요청 정보에 대응하여 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 상기 특정 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키를 획득하도록 하여 상기 특정 엔티티 퍼블릭 키를 상기 서비스 제공 서버로 전송하거나, (ii) 상기 리졸버 서버로부터의 상기 특정 엔티티 공개정보 요청 정보에 대응하여 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 공개정보를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 공개정보를 획득하도록 하여 상기 특정 엔티티 공개정보가 상기 리졸버 서버를 통해 상기 특정 엔티티 DID 문서로 가공되어 상기 서비스 제공 서버로 전송되도록 함으로써, 상기 서비스 제공 서버로 하여금 상기 블록체인 노드로부터 획득한 상기 특정 엔티티 퍼블릭 키 또는 상기 특정 엔티티 DID 문서로부터 획득한 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 특정 엔티티 서명값을 복호화하여 상기 특정 엔티티 서명값을 검증하도록 하며, 상기 특정 엔티티 서명값이 검증되면 상기 관계정보 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 하는 블록체인 노드.
  12. 제9항에 있어서,
    상기 관계정보 등록 요청 정보는 상기 타 엔티티 DID에 대응되는 타 엔티티 단말에서 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 설정한 관계정보 설정 정보와, 상기 특정 엔티티 단말에서 상기 관계정보 설정 정보를 확인한 관계정보 확인 정보를 포함하는 블록체인 노드.
  13. 제12항에 있어서,
    상기 관계정보 설정 정보는 상기 특정 엔티티 DID와 상기 타 엔티티 DID 사이의 관계를 설정한 관계정보와, 상기 관계정보를 상기 타 엔티티 DID에 대응되는 타 엔티티 프라이빗 키로 암호화한 타 엔티티 서명값을 포함하고, 상기 관계정보 확인 정보는 상기 관계정보와, 상기 관계정보를 상기 특정 엔티티 DID에 대응되는 특정 엔티티 프라이빗 키로 암호화한 특정 엔티티 서명값을 포함하며,
    상기 프로세서는, 상기 특정 엔티티 DID와 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID와 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키와 상기 타 엔티티 퍼블릭 키를 획득하도록 하며, 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하고, 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 특정 엔티티 서명값을 복호화하여 상기 관계정보 확인 정보를 검증함으로써 상기 관계정보 등록 요청 정보를 검증하도록 하는 블록체인 노드.
  14. 제13항에 있어서,
    상기 프로세서는, 상기 타 엔티티 단말로부터 전송되는 상기 관계정보 설정 정보에 대응한 상기 특정 엔티티 단말로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키에 대한 타 엔티티 퍼블릭 키 요청 정보가 획득되거나, 리졸버 서버로부터 상기 특정 엔티티 단말로부터의 타 엔티티 DID 문서 요청 정보에 대응한 타 엔티티 공개정보 - 상기 타 엔티티 공개정보는 상기 타 엔티티 DID와 관련하여 상기 블록체인 네트워크에 등록되어 있는 정보로서, 적어도 상기 관계정보와 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 포함함 - 에 대한 타 엔티티 공개정보 요청 정보가 획득되면, (i) 상기 특정 엔티티 단말로부터의 상기 타 엔티티 퍼블릭 키 요청 정보에 대응하여 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 상기 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 퍼블릭 키를 획득하도록 하여 상기 타 엔티티 퍼블릭 키를 상기 특정 엔티티 단말로 전송하여 주거나, (ii) 상기 리졸버 서버로부터의 상기 타 엔티티 공개정보 요청 정보에 대응하여 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 공개정보를 획득하거나, 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 공개정보를 획득하도록 하여 상기 타 엔티티 공개정보가 상기 리졸버 서버를 통해 상기 타 엔티티 DID 문서로 가공되어 상기 특정 엔티티 단말로 전송되도록 함으로써, 상기 특정 엔티티 단말로 하여금 상기 블록체인 노드로부터 전송된 상기 타 엔티티 퍼블릭 키 또는 상기 타 엔티티 DID 문서로부터 획득한 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하도록 하고, 상기 관계정보 설정 정보가 검증되면 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 하여 상기 관계정보 등록 요청 정보를 획득하는 블록체인 노드.
  15. 제13항에 있어서,
    상기 프로세서는,
    상기 타 엔티티 단말로부터 상기 관계정보 설정 정보가 상기 블록체인 네트워크로 브로드캐스팅되어 상기 관계정보 설정 정보가 획득되면, 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하거나 상기 아이덴티티 컨트랙트를 통해 상기 관계정보 설정 정보가 상기 특정 엔티티 단말로 전송되도록 함으로써, 상기 특정 엔티티 단말로 하여금 상기 관계정보 설정 정보의 검증 결과에 대응한 상기 관계정보 등록 요청 정보를 상기 블록체인 네트워크로 브로드캐스팅하도록 함으로써 상기 관계정보 등록 요청 정보를 획득하는 블록체인 노드.
  16. 제12항에 있어서,
    상기 프로세서는,
    상기 타 엔티티 단말로부터 상기 관계정보 설정 정보가 상기 블록체인 네트워크로 브로드캐스팅되면, (i) 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 DID에 대응되는 타 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 타 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 타 엔티티 퍼블릭 키를 획득하도록 하며, 상기 타 엔티티 퍼블릭 키를 이용하여 상기 타 엔티티 서명값을 복호화하여 상기 관계정보 설정 정보를 검증하고, 상기 관계정보 설정 정보가 검증되면 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하거나 상기 아이덴티티 컨트랙트로 하여금 상기 관계정보 설정 정보에 대한 검증 결과를 상기 타 엔티티 단말로 전송하여 상기 타 엔티티 단말이 상기 관계정보 설정 정보를 상기 특정 엔티티 단말로 전송하게 하도록 하며,
    상기 특정 엔티티 단말로부터 상기 관계정보 확인 정보가 상기 블록체인 네트워크로 브로드캐스팅되면, (i) 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 DID에 대응되는 특정 엔티티 퍼블릭 키를 획득하거나 상기 아이덴티티 컨트랙트를 통해 상기 특정 엔티티 DID를 이용하여 상기 블록체인 네트워크로부터 상기 특정 엔티티 퍼블릭 키를 획득하도록 하며, 상기 특정 엔티티 퍼블릭 키를 이용하여 상기 관계정보 확인 정보를 복호화하여 상기 특정 엔티티 서명값을 검증하는 블록체인 노드.
KR1020210084361A 2019-07-11 2021-06-28 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드 KR20210084380A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020190084088 2019-07-11
KR20190084088 2019-07-11
KR1020200076079A KR102367052B1 (ko) 2019-07-11 2020-06-22 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200076079A Division KR102367052B1 (ko) 2019-07-11 2020-06-22 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드

Publications (1)

Publication Number Publication Date
KR20210084380A true KR20210084380A (ko) 2021-07-07

Family

ID=74304634

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200076079A KR102367052B1 (ko) 2019-07-11 2020-06-22 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드
KR1020210084361A KR20210084380A (ko) 2019-07-11 2021-06-28 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200076079A KR102367052B1 (ko) 2019-07-11 2020-06-22 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드

Country Status (1)

Country Link
KR (2) KR102367052B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102465467B1 (ko) * 2021-02-22 2022-11-09 주식회사 블록체인기술연구소 Did 기반의 탈중앙화된 사용자 데이터 저장 및 공유 시스템
WO2023277556A1 (ko) * 2021-06-30 2023-01-05 주식회사 아티프렌즈 Did를 이용한 개인정보의 인증 및 식별 시스템과 그 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6360935B1 (ja) * 2017-03-22 2018-07-18 本田技研工業株式会社 情報処理装置、プログラム及び情報処理方法
US11868995B2 (en) * 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency

Also Published As

Publication number Publication date
KR102367052B1 (ko) 2022-02-25
KR20210007844A (ko) 2021-01-20

Similar Documents

Publication Publication Date Title
CN111970129B (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN110912707B (zh) 基于区块链的数字证书处理方法、装置、设备及存储介质
US11196573B2 (en) Secure de-centralized domain name system
US20220086154A1 (en) Personal identity system
JP6716745B2 (ja) ブロックチェーン基盤の権限認証方法、端末及びこれを利用したサーバ
JP3761557B2 (ja) 暗号化通信のための鍵配付方法及びシステム
US9185146B2 (en) Service providing system
CN114679293A (zh) 基于零信任安全的访问控制方法、设备及存储介质
US20200076606A1 (en) Blockchain key storage on sim devices
US20200412554A1 (en) Id as service based on blockchain
JP6543743B1 (ja) 管理プログラム
CN111742531B (zh) 简档信息共享
KR102189554B1 (ko) 단말 장치, 서버 장치 및 블록체인을 이용한 fido 범용 인증 방법
KR20170106515A (ko) 다중 팩터 인증 기관
CN112104665A (zh) 基于区块链的身份验证方法、装置、计算机以及存储介质
US20180006823A1 (en) Multi-hop secure content routing based on cryptographic partial blind signatures and embedded terms
JP2018517367A (ja) サービスプロバイダ証明書管理
WO2022193984A1 (zh) 跨链进行数据传输的方法、装置、计算机设备、存储介质和计算机程序产品
KR20210084380A (ko) 관계성 탈중앙화 아이디 서비스를 제공하는 방법 및 이를 이용한 블록체인 노드
CN113474804A (zh) 数字货币的交易和账户验证方法,装置及存储介质
CN113569210A (zh) 分布式身份认证方法、设备访问方法及装置
CN106453349A (zh) 账号登录方法及装置
CN110910110A (zh) 一种数据处理方法、装置及计算机存储介质
WO2014169802A1 (zh) 终端、网络侧设备、终端应用控制方法及系统
TW202018525A (zh) 驗證系統及驗證方法

Legal Events

Date Code Title Description
A107 Divisional application of patent