KR20210040078A - 안전한 보관 서비스를 위한 시스템 및 방법 - Google Patents

안전한 보관 서비스를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20210040078A
KR20210040078A KR1020217005288A KR20217005288A KR20210040078A KR 20210040078 A KR20210040078 A KR 20210040078A KR 1020217005288 A KR1020217005288 A KR 1020217005288A KR 20217005288 A KR20217005288 A KR 20217005288A KR 20210040078 A KR20210040078 A KR 20210040078A
Authority
KR
South Korea
Prior art keywords
entity
attribute
distributed ledger
data management
management service
Prior art date
Application number
KR1020217005288A
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 KR20210040078A publication Critical patent/KR20210040078A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Abstract

디지털 자산을 관리하기 위한 안전한 보관 서비스를 제공하기 위한 시스템 및 방법. 상기 방법은 적어도 하나의 속성값을 복호화할 때 사용하기 위한 제1 값을 수신하는 동작; 상기 적어도 하나의 속성값을 암호화된 형태로 수신하는 동작; 및 상기 제1 값과 암호화된 상태의 상기 적어도 하나의 속성값을 적어도 하나의 저장 디바이스 상에 저장하는 동작을 포함하고, 적어도 하나의 속성값은 제2 값과, 보안 하드웨어와 연관된 공개 키를 사용하여 암호화되었고, 상기 제2 값은 상기 제1 값에 대응한다.

Description

안전한 보관 서비스를 위한 시스템 및 방법
관련 출원
본 출원은 미국 가출원 번호 62/702,288(출원일: 2018년 7월 23일, 발명의 명칭: "SYSTEMS AND METHODS FOR CUSTODIAL KEY SERVICE", 대리인 문서 번호: C1494.70003US00)의 35 U.S.C.§119(e) 하의 우선권의 이익을 주장하며, 이 기초출원은 그의 전문이 참조에 의해 본 명세서에 원용된다.
본 출원은, 전체 내용이 전체 내용이 본 명세서에 병합되고 본 명세서에서 '643 출원으로 지칭되는 미국 특허 출원 번호 15/294,643(출원일: 2016년 10월 14일, 발명의 명칭: "SYSTEMS AND METHODS FOR MANAGING DIGITAL IDENTITIES", 대리인 문서 번호: C1494.70000US00; 이 출원 건은 2017년 4월 20일에 미국 특허 공개 번호 2017/0111175 A1로 공개되고, 2017년 5월 30일에 미국 특허 번호 9,667,427로 등록됨)의 것과 연관된 주제를 포함할 수 있으며, 이 선행 출원 또한 그의 전문이 참조에 의해 본 명세서에 원용된다.
또한 본 출원은, 본 명세서에서 '732 출원으로 지칭되는 미국 특허 출원 번호 15/950,732(출원일: 2018년 4월 11일, 발명의 명칭: "SYSTEMS AND METHODS FOR MANAGING DIGITAL IDENTITIES", 대리인 문서 번호: C1494.70002US00; 이 출원 건은 2018년 8월 16일에 미국 특허 공개 번호 2018/0234433 A1로 공개됨)의 것과 관련된 주제를 포함할 수 있으며, 이 선행 출원 또한 그의 전문이 참조에 의해 본 명세서에 원용된다.
정보 보안을 제공하기 위해 다양한 암호 시스템이 사용될 수 있다. 예를 들어, 대칭 암호 시스템과 비대칭 암호 시스템에 기초한 암호화 기술은 기밀성을 제공하는 데 사용될 수 있는 반면, 비대칭 암호 시스템에 기초한 서명 기술뿐만 아니라 해싱 기술은 무결성을 제공하는 데 사용될 수 있다.
일부 실시형태에서, 시스템이 제공된다. 상기 시스템은 적어도 하나의 컴퓨터 프로세서, 적어도 하나의 저장 디바이스, 및 실행될 때 상기 적어도 하나의 컴퓨터 프로세서로 하여금 방법을 수행하게 하는 인코딩된 명령어를 갖는 적어도 하나의 컴퓨터 판독 가능 매체를 포함한다. 상기 방법은, 적어도 하나의 속성값(attribute value)을 복호화할 때 사용하기 위한 제1 값을 수신하는 동작; 상기 적어도 하나의 속성값을 암호화된 형태로 수신하는 동작; 및 상기 제1 값과 암호화된 형태의 상기 적어도 하나의 속성값을 상기 적어도 하나의 저장 디바이스 상에 저장하는 동작을 포함하고, 상기 적어도 하나의 속성값은 제2 값과, 보안 하드웨어와 연관된 공개 키(public key)를 사용하여 암호화되었고, 상기 제2 값은 상기 제1 값에 대응한다.
일부 실시형태에서, 컴퓨터로 구현되는 방법이 제공된다. 상기 컴퓨터로 구현되는 방법은 적어도 하나의 속성값을 복호화할 때 사용하기 위한 제1 값을 수신하는 동작; 상기 적어도 하나의 속성값을 암호화된 형태로 수신하는 동작; 및 상기 제1 값과 암호화된 형태의 상기 적어도 하나의 속성값을 상기 적어도 하나의 저장 디바이스 상에 저장하는 동작을 포함하고, 상기 적어도 하나의 속성값은 제2 값과, 보안 하드웨어와 연관된 공개 키를 사용하여 암호화되었고, 상기 제2 값은 상기 제1 값에 대응한다.
일부 실시형태에서, 인코딩된 복수의 명령어를 갖는 비-일시적인 컴퓨터 판독 가능 매체가 제공된다. 상기 복수의 명령어는, 적어도 하나의 컴퓨터 프로세서에 의해 실행될 때, 적어도 하나의 속성값을 복호화할 때 사용하기 위한 제1 값을 수신하는 동작; 상기 적어도 하나의 속성값을 암호화된 형태로 수신하는 동작; 및 상기 제1 값과 암호화된 형태의 상기 적어도 하나의 속성값을 상기 적어도 하나의 저장 디바이스 상에 저장하는 동작을 포함하는 방법을 수행하고, 상기 적어도 하나의 속성값은 제2 값과, 보안 하드웨어와 연관된 공개 키를 사용하여 암호화되었고, 상기 제2 값은 상기 제1 값에 대응한다.
일부 실시형태에서, 적어도 하나의 컴퓨터 프로세서 및 적어도 하나의 컴퓨터 판독 가능 매체를 포함하는 시스템이 제공된다. 상기 적어도 하나의 컴퓨터 판독 가능 매체는, 실행될 때, 상기 적어도 하나의 컴퓨터 프로세서로 하여금 방법을 수행하게 하는 인코딩된 명령어를 갖는다. 상기 방법은 제1 엔티티(entity)로부터 상기 제1 엔티티와 다른 제2 엔티티의 하나 이상의 속성값, 및 분산 원장(distributed ledger)에서 하나 이상의 속성 증명(attribute attestation)에 대한 포인터(pointer)를 수신하는 동작으로서, 상기 하나 이상의 속성 증명은 상기 제2 엔티티의 하나 이상의 속성값에 각각 대응하는, 상기 수신하는 동작; 상기 포인터를 사용하여 상기 분산 원장으로부터 상기 하나 이상의 속성 증명에 액세스하는 동작; 상기 분산 원장으로부터 액세스된 상기 하나 이상의 속성 증명에 대해 상기 제1 엔티티로부터 수신된 상기 하나 이상의 속성값을 점검(check)하는 동작; 상기 하나 이상의 속성값 중 적어도 하나의 속성값을 사용하여 하나 이상의 양도 제한(transfer restriction)이 위반되었는지 여부를 점검하는 동작; 및 상기 하나 이상의 양도 제한 중 그 어느 것도 위반되지 않는다는 결정에 응답하여, 하나 이상의 디지털 자산의 양도를 승인하는 동작을 포함한다.
일부 실시형태에서, 컴퓨터로 구현되는 방법이 제공된다. 상기 컴퓨터로 구현되는 방법은 제1 엔티티로부터 상기 제1 엔티티와 다른 제2 엔티티의 하나 이상의 속성값, 및 분산 원장에서 하나 이상의 속성 증명에 대한 포인터를 수신하는 동작으로서, 상기 하나 이상의 속성 증명은 상기 제2 엔티티의 하나 이상의 속성값에 각각 대응하는, 상기 수신하는 동작; 상기 포인터를 사용하여 상기 분산 원장으로부터 상기 하나 이상의 속성 증명에 액세스하는 동작; 상기 분산 원장으로부터 액세스된 상기 하나 이상의 속성 증명에 대해 상기 제1 엔티티로부터 수신된 상기 하나 이상의 속성값을 점검하는 동작; 상기 하나 이상의 속성값 중 적어도 하나의 속성값을 사용하여 상기 하나 이상의 양도 제한이 위반되었는지 여부를 점검하는 동작; 및 상기 하나 이상의 양도 제한 중 그 어느 것도 위반되지 않는다는 결정에 응답하여, 하나 이상의 디지털 자산의 양도를 승인하는 동작을 포함한다.
일부 실시형태에서, 인코딩된 복수의 명령어를 갖는 비-일시적인 컴퓨터 판독 가능 매체가 제공된다. 상기 복수의 명령어는, 적어도 하나의 컴퓨터 프로세서에 의해 실행될 때, 제1 엔티티로부터 상기 제1 엔티티와 다른 제2 엔티티의 하나 이상의 속성값, 및 분산 원장에서 하나 이상의 속성 증명에 대한 포인터를 수신하는 동작으로서, 상기 하나 이상의 속성 증명은 상기 제2 엔티티의 하나 이상의 속성값에 각각 대응하는, 상기 수신하는 동작; 상기 포인터를 사용하여 상기 분산 원장으로부터 상기 하나 이상의 속성 증명에 액세스하는 동작; 상기 분산 원장으로부터 액세스된 상기 하나 이상의 속성 증명에 대해 상기 제1 엔티티로부터 수신된 상기 하나 이상의 속성값을 점검하는 동작; 상기 하나 이상의 속성값 중 적어도 하나의 속성값을 사용하여 하나 이상의 양도 제한이 위반되었는지 여부를 점검하는 동작; 및 상기 하나 이상의 양도 제한 중 그 어느 것도 위반되지 않는다는 결정에 응답하여, 하나 이상의 디지털 자산의 양도를 승인하는 동작을 포함하는 방법을 수행한다.
일부 실시형태에서, 적어도 하나의 컴퓨터 프로세서 및 인코딩된 명령어를 갖는 적어도 하나의 컴퓨터 판독 가능 매체를 포함하는 시스템이 제공된다. 상기 명령어는, 실행될 때, 상기 적어도 하나의 컴퓨터 프로세서로 하여금 제1 엔티티에 대해 방법을 수행하게 한다. 상기 방법은 상기 제1 엔티티와 다른 제2 엔티티로부터 상기 제2 엔티티의 하나 이상의 속성값, 및 분산 원장에서 하나 이상의 속성 증명에 대한 포인터를 수신하는 동작으로서, 상기 하나 이상의 속성 증명은 상기 제2 엔티티의 하나 이상의 속성값에 각각 대응하는, 상기 수신하는 동작; 상기 포인터를 사용하여 상기 분산 원장으로부터 상기 하나 이상의 속성 증명에 액세스하는 동작; 상기 분산 원장으로부터 액세스된 상기 하나 이상의 속성 증명에 대해 상기 제2 엔티티로부터 수신된 상기 하나 이상의 속성값을 점검하는 동작; 및 상기 제2 엔티티의 하나 이상의 속성값, 및 상기 하나 이상의 속성 증명에 대한 포인터를 상기 제2 엔티티와 다른 제3 엔티티로 송신하는 동작을 포함한다.
일부 실시형태에서, 제1 엔티티에 대해 컴퓨터로 구현되는 방법이 제공된다. 상기 컴퓨터로 구현되는 방법은 상기 제1 엔티티와 다른 제2 엔티티로부터 상기 제2 엔티티의 하나 이상의 속성값, 및 분산 원장에서 하나 이상의 속성 증명에 대한 포인터를 수신하는 동작으로서, 상기 하나 이상의 속성 증명은 상기 제2 엔티티의 하나 이상의 속성값에 각각 대응하는, 상기 수신하는 동작; 상기 포인터를 사용하여 상기 분산 원장으로부터 상기 하나 이상의 속성 증명에 액세스하는 동작; 상기 분산 원장으로부터 액세스된 상기 하나 이상의 속성 증명에 대해 상기 제2 엔티티로부터 수신된 상기 하나 이상의 속성값을 점검하는 동작; 및 상기 제2 엔티티의 하나 이상의 속성값, 및 상기 하나 이상의 속성 증명에 대한 포인터를 상기 제2 엔티티와 다른 제3 엔티티로 송신하는 동작을 포함한다.
일부 실시형태에서, 인코딩된 복수의 명령어를 갖는 비-일시적인 컴퓨터 판독 가능 매체가 제공된다. 상기 복수의 명령어는, 적어도 하나의 컴퓨터 프로세서에 의해 실행될 때, 제1 엔티티에 대해 방법을 수행하며, 상기 방법은 상기 제1 엔티티와 다른 제2 엔티티로부터 상기 제2 엔티티의 하나 이상의 속성값, 및 분산 원장에서 하나 이상의 속성 증명에 대한 포인터를 수신하는 동작으로서, 상기 하나 이상의 속성 증명은 상기 제2 엔티티의 하나 이상의 속성값에 각각 대응하는, 상기 수신하는 동작; 상기 포인터를 사용하여 상기 분산 원장으로부터 상기 하나 이상의 속성 증명에 액세스하는 동작; 상기 분산 원장으로부터 액세스된 상기 하나 이상의 속성 증명에 대해 상기 제2 엔티티로부터 수신된 상기 하나 이상의 속성값을 점검하는 동작; 및 상기 제2 엔티티의 하나 이상의 속성값, 및 상기 하나 이상의 속성 증명에 대한 포인터를 상기 제2 엔티티와 다른 제3 엔티티로 송신하는 동작을 포함한다.
전술한 개념 및 아래에서 보다 상세히 논의되는 추가 개념의 모든 조합은 (이러한 개념이 상호 일관성이 없지 않는 한) 본 명세서에 개시된 본 발명의 주제의 일부인 것으로 고려되는 것으로 이해된다. 특히, 본 발명의 끝에 나타나는 청구범위의 모든 조합은 본 명세서에 개시된 발명의 주제의 일부인 것으로 고려된다.
도 1a는 일부 실시형태에 따른 예시적인 데이터 관리 시스템(100)을 도시한다.
도 1b는 일부 실시형태에 따른 예시적인 데이터 관리 서비스(110A-B) 및 예시적인 분산 원장 클라이언트(115A-B)를 도시한다.
도 2a는 일부 실시형태에 따라 속성 증명의 상이한 상태들 간의 전이를 설명하는 예시적인 상태 머신(200)을 도시한다.
도 2b는 일부 실시형태에 따라 속성 증명의 상이한 상태들 간의 전이를 설명하는 다른 예시적인 상태 머신(250)을 도시한다.
도 3a는 일부 실시형태에 따라 신뢰받는 당사자(trusted party)에 의한 속성 증명을 위한 예시적인 프로세스(300)를 도시한다.
도 3b는 일부 실시형태에 따라 신뢰받는 당사자에 의한 속성 발행(attribute issuance)을 위한 예시적인 프로세스(350)를 도시한다.
도 4는 일부 실시형태에 따라 상대방 점검(counterparty check)을 위한 예시적인 프로세스(400)를 도시한다.
도 5는 일부 실시형태에 따라 데이터를 안전하게 전송 및/또는 저장하기 위한 예시적인 데이터 관리 시스템(500) 및 예시적인 프로세스(515)를 도시한다.
도 6은 일부 실시형태에 따른 예시적인 데이터 집합(data collection)(600A-C)을 도시한다.
도 7은 일부 실시형태에 따른 예시적인 데이터 관리 서비스(700A-C)를 도시한다.
도 8은 본 발명의 임의의 양태를 구현할 수 있는 예시적인 컴퓨터(1000)를 개략적으로 도시한다.
본 발명의 양태는 디지털 데이터를 관리하기 위한 안전한 보관 서비스(secure custodial service)를 제공하기 위한 시스템 및 방법에 관한 것이다. 개인 식별 정보(personally identifiable information: PII), 디지털 자산에 액세스하기 위한 암호화 키 등을 포함하지만 이들로 제한되지 않는 임의의 적절한 유형의 디지털 데이터를 관리할 수 있다.
위에서 언급한 '643 및 '732 출원은 엔티티가 엔티티를 대신하여 민감한 데이터를 처리하는 데이터 관리 서비스1(주석1: '643 및 '732 출원은 데이터 관리 서비스의 예로서 개인 데이터 서비스(personal data service: PDS)를 설명한다)를 가질 수 있는 데이터 관리 시스템을 설명한다. 서로 다른 엔티티의 데이터 관리 서비스는 서로 통신할 수 있다. 일례로, 사용자의 데이터 관리 서비스는 신뢰받는 당사자의 데이터 관리 서비스에 속성값(예를 들어, 생년월일)을 송신하고, 신뢰받는 당사자가 속성값을 검증하고 증명할 것을 요청할 수 있다. 신뢰받는 당사자는 예를 들어 실제 문서(예를 들어, 사용자의 여권)를 검토하여 임의의 적절한 방식으로 속성값을 검증할 수 있다. 검증이 성공하면 신뢰받는 당사자는 예를 들어 속성값의 암호화 증명(cryptographic proof)을 전자 서명하여 속성값을 증명할 수 있다.
다른 예로서, 사용자의 데이터 관리 서비스는 상대방의 데이터 관리 서비스에 속성값을 송신할 수 있다. 상대방은 속성값이 신뢰받는 당사자에 의해 증명되었는지를 점검할 수 있다. 예를 들어, 상대방은 속성값의 암호화 증명이 신뢰받는 당사자에 의해 전자 서명되었는지 여부를 점검할 수 있다.
본 발명자들은 이러한 데이터 관리 시스템을 제공할 때 다양한 문제를 인식하고 이해하였다. 예를 들어, 하나 이상의 클라우드 서버에서 데이터 관리 서비스를 실행하는 것이 보다 효율적이고/거나 보다 신뢰적일 수 있다. 그러나, 엔티티는 클라우드 컴퓨팅 제공자 또는 심지어 데이터 관리 시스템의 제공자에 민감한 데이터를 노출하기를 원하지 않을 수 있다. 따라서, 민감한 데이터를 암호화된 형태로 저장하고 민감한 데이터를 공유할 때에만 복호화하는 것이 바람직할 수 있다.
따라서, 일부 실시형태에서, 저장할 데이터를 암호화하기 위한 기술이 제공된다. 예를 들어, 데이터는 송신자 엔티티의 클라이언트 디바이스에 의해 암호화될 수 있으며, 암호화된 형태로 데이터 관리 시스템에 송신될 수 있다. 데이터 관리 시스템은 복호화하지 않고 데이터를 저장할 수 있다. 이후, 데이터 관리 시스템은 저장 매체로부터 데이터를 검색하고, 보안 하드웨어를 사용하여 데이터를 복호화할 수 있다. 추가적으로 또는 대안적으로, 데이터는 예를 들어 수령자 엔티티와 연관된 하나 이상의 키를 사용하여 보안 하드웨어를 떠나기 전에 재암호화될 수 있다. 이러한 방식으로, 일반 텍스트 데이터는 보안 하드웨어에 일시적으로만 존재할 수 있다.
일부 실시형태에서, 데이터 관리 시스템은, 데이터를 재암호화하고 송신하기 전에, 송신자 엔티티와 수령자 엔티티가 신뢰 관계에 있는지를 확인할 수 있다. 예를 들어, 송신자 엔티티는 송신자 엔티티가 선택된 데이터를 수령자 엔티티와 공유하기를 원한다는 것을 나타내기 위해 데이터 구조를 분산 원장에 게시(publish)할 수 있다. 데이터 관리 시스템은 분산 원장으로부터 이 데이터 구조에 액세스하고, 송신자 엔티티와 수령자 엔티티가 실제로 신뢰 관계에 있는지를 확인할 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 시스템은 재암호화되고 수령자 엔티티로 송신될 데이터가 수령자 엔티티와 공유할 데이터로서 데이터 구조에 나타나는지를 확인할 수 있다. 예를 들어, 데이터 관리 시스템은 데이터 구조가 재암호화되어 수령자 엔티티로 송신될 속성값의 증명을 포함하는지를 확인할 수 있다.
본 발명자들은 데이터 관리 시스템이 디지털 자산의 암호화 키를 관리하기 위한 보관 키 서비스(custodial key service)를 제공하는 데 사용될 수 있다는 것을 더 인식하고 이해하였다. 일부 실시형태에서, 보관 키 서비스는 디지털 자산의 소유자를 위한 디지털 자산의 암호화 키를 저장할 수 있다. 자산 소유자가 자산 수령자에게 디지털 자산을 양도하기를 원하는 경우 자산 소유자는 보관 키 서비스에 양도 요청을 제출할 수 있다. 양도 요청을 수신하면 보관 키 서비스는 양도 요청을 송신한 엔티티의 신원을 점검하여 이 엔티티가 실제로 자산 소유자인지를 확인할 수 있다. 추가적으로 또는 대안적으로, 보관 키 서비스는 자산 수령자의 신원을 점검할 수 있다. 추가적으로 또는 대안적으로, 보관 키 서비스는 자산을 정산, 보호 및/또는 보고하는 것에 대해 하나 이상의 정부 규정을 준수하는지를 검증할 수 있다. 양도 요청이 점검되면 보관 키 서비스는 디지털 자산의 암호화 키를 사용하여 양도 요청에 서명할 수 있다. 이러한 방식으로, 자산 소유자는 암호화 키를 직접 처리하지 않고 양도를 승인할 수 있다.
일부 실시형태에서, 자산 소유자 및 자산 수령자의 데이터 관리 서비스는 프라이버시 계층(privacy layer)을 형성할 수 있으며, 여기서 민감한 정보(예를 들어, 속성값)는 보안 채널을 통해 공유되어 자산 소유자로부터 자산 수령자로 디지털 자산의 양도를 실행할 수 있다. 데이터 관리 서비스는 민감하지 않은 정보(예를 들어, 속성 증명)가 분산 원장에 게시될 수 있는 신뢰 계층을 형성할 수 있는 연관된 분산 원장 클라이언트를 가질 수 있다. 하나 이상의 보관 키 서비스는 신뢰 계층과 프라이버시 계층 사이에 보관 계층을 제공할 수 있다.
일부 실시형태에서, 자산 소유자와 하나 이상의 보관 키 서비스 간의 상호 작용은 자산 수령자에게 노출되지 않을 수 있다. 예를 들어, 자산 수령자의 관점에서 디지털 자산에 대응하는 암호화 키가 자산 소유자 또는 보관 키 서비스에 의해 관리되는지 여부와 상관없이 디지털 자산의 양도는 동일한 방식으로 진행될 수 있다. 이러한 방식으로, 다른 보관 키 서비스 백엔드 솔루션(예를 들어, 다른 보관자가 제공하는 솔루션, 동일한 보관자가 제공하는 다른 확장 솔루션 등)이 지원될 수 있다.
일부 실시형태에서, 하나 이상의 보관 키 서비스는 신뢰 계층과 프라이버시 계층 사이의 규제 계층으로 동작할 수 있다. 일례로서, 보관 키 서비스는 제재 대상 엔티티의 목록을 저장할 수 있으며, 제재 대상 엔티티를 수반하는 양도 시도를 거부할 수 있다. 다른 예로서, 보관 키 서비스는 선택된 관할 구역 안팎으로의 양도 시도를 거부할 수 있다. 또 다른 예로서, 보관 키 서비스는 암호 화폐 계좌 잔액이 선택된 임계값 이하로 떨어지거나 임계값을 초과하는 양도 시도를 거부할 수 있다.
위에서 소개되고 아래에서 더 상세히 논의되는 기술은 임의의 특정 구현 방식으로 제한되지 않기 때문에, 상기 기술은 임의의 다양한 방식으로 구현될 수 있는 것으로 이해된다. 구현 세부 사항의 예는 단지 설명을 위한 목적으로 여기에 제공된다. 더욱이, 본 발명의 양태는 임의의 특정 기술 또는 기술의 조합을 사용하는 것으로 제한되지 않기 때문에 본 명세서에 개시된 기술은 개별적으로 또는 임의의 적합한 조합으로 사용될 수 있다.
도 1a는 일부 실시형태에 따른 예시적인 데이터 관리 시스템(100)을 도시한다. 이 예에서, 데이터 관리 시스템(100)은 엔티티(A) 및 엔티티(B)와 각각 연관될 수 있는 데이터 집합(100A 및 100B)을 포함한다. 엔티티(A)는 사용자, 조직, 식별 가능한 객체, 물리적 공간 등과 같은 임의의 적절한 유형일 수 있으며, 엔티티(B)에 대해서도 마찬가지이다.
일부 실시형태에서, 엔티티(A)는 데이터 집합(100A)으로부터의 데이터를 엔티티(B)와 선택적으로 공유할 수 있다. 추가적으로 또는 대안적으로, 엔티티(B)는 데이터 집합(100B)으로부터의 데이터를 엔티티(A)와 선택적으로 공유할 수 있다. 예를 들어, 엔티티(A)와 엔티티(B)는 핸드셰이크(handshake)를 수행하고, 데이터를 종단 간 암호화를 사용하여 전송할 수 있는 보안 통신 채널을 수립할 수 있다.
일부 실시형태에서, 엔티티(A)와 엔티티(B) 각각은 분산 원장을 집합적으로 유지하는 노드의 네트워크에서 하나 이상의 노드와 연관될 수 있다. 분산 원장은 네트워크에서 복수의 노드 간에 복제된 디지털 레코드를 포함할 수 있다. 노드는 동기화 프로토콜을 수행할 수 있으며, 이에 의해 노드에서 디지털 레코드의 로컬 사본에 이루어진 변경은 네트워크를 통해 전파될 수 있으며, 다른 노드는 이에 따라 이 디지털 레코드의 각각의 사본을 업데이트할 수 있다.
일부 실시형태에서, 분산 원장은 블록체인을 사용하여 구현될 수 있다. 블록체인은 복수의 블록을 포함할 수 있으며, 각 블록은 복수의 거래를 포함할 수 있다. 일부 실시형태에서, 복수의 거래는 예를 들어 시간 순으로 정렬될 수 있다. 추가적으로 또는 대안적으로, 새로 추가된 각 블록은 최신 이전 블록에 링크될 수 있다. 이러한 구조는 변조(tampering)에 저항할 수 있으므로 주어진 거래가 발생했는지 여부 및/또는 거래가 발생한 시기를 확인하는 데 사용될 수 있다. 예를 들어, 블록체인을 구현하는 네트워크에서 모든 노드(또는 충분한 계산 능력을 가진 노드의 서브세트)가 블록에 동의하는 경우에만 블록이 블록체인에 추가될 수 있다.
일부 실시형태에서, 블록 생성 노드(때때로 채굴자(miner)라고 함)는 계산 능력을 투자하여 최신 이전 블록에 링크된 새로운 블록을 생성할 수 있다. (예를 들어, 특정 개수의 선행 0으로 해시(hash)의 사전 이미지(preimage)를 식별하는) 계산 집약적인 수학적 퍼즐을 풀 수 있는 가장 빠른 노드는 내부 디지털 자산(예를 들어, 비트 코인)으로 보상받을 수 있다. 주어진 시점에서 네트워크에서 이용 가능한 계산 능력에 따라 더 복잡하거나 덜 복잡한 수학적 퍼즐이 사용될 수 있다. 이러한 방식으로, 선택된 시간 창 내에서 블록이 생성될 수 있어서 충돌이 감소될 수 있다.
본 발명의 양태는 분산된 합의를 달성하기 위해 작업 증명 접근 방식(proof-of-work)을 사용하는 것으로 제한되지 않는 것으로 이해된다. 일부 실시형태에서, 지분 증명 접근 방식(proof-of-stake)이 사용될 수 있다. 또한, 이더리움(Ethereum), 하이퍼레저 패브릭(Hyperledger Fabric) 등과 같은 임의의 적절한 블록체인 구현이 사용될 수 있는 것으로 이해된다. 또한, 본 발명의 양태는 분산 원장을 구현하기 위해 블록체인을 사용하는 것으로 제한되지 않는다. 일부 실시형태에서, 하나 이상의 방향성 비순환 그래프(예를 들어, IOTA Tangle), 해시 그래프(예를 들어, Swirld), 해시 트리(예를 들어, Guardtime 키 없는 서명 인프라), 및/또는 글로벌 공유 체인이 없는 분산 원장(예를 들어, R3 Corda)이 하나 이상의 블록체인에 추가하여 또는 이 대신에 사용될 수 있다.
도 1a로 돌아가서, 엔티티(A)는 일부 실시형태에서 분산 원장 상태(105A)를 유지할 수 있다. 엔티티(A)는 분산 원장 상태(105A)의 일부로서 민감하지 않은 데이터를 저장함으로써 분산 원장에 민감하지 않은 데이터(예를 들어, 민감한 데이터의 암호화 증명)를 게시할 수 있다. 마찬가지로, 엔티티(B)는 분산 원장 상태(105B)를 유지할 수 있고, 분산 원장 상태(105B)의 일부로서 민감하지 않은 데이터를 저장함으로써 분산 원장에 민감하지 않은 데이터(예를 들어, 민감한 데이터의 암호화 증명)를 게시할 수 있다.
일부 실시형태에서, 엔티티(A 및 B)와 연관된 네트워크 노드는 분산 원장 동기화 프로토콜에 참여할 수 있으며, 이에 엔티티(A)에 의해 게시된 민감하지 않은 데이터가 엔티티(B)에 의해 유지되는 분산 원장 상태(105B)에서 복제될 수 있고, 엔티티(B)에 의해 게시된 민감하지 않은 데이터는 엔티티(A)에 의해 유지되는 분산 원장 상태(105A)에서 복제될 수 있다.
본 발명의 양태는 분산 원장 상태를 유지하는 임의의 특정 방식으로 제한되지 않는 것으로 이해된다. 예를 들어, 엔티티는 엔티티의 데이터 집합과 별도로 분산 원장 상태를 유지할 수 있고, 이에 민감하지 않은 데이터가 엔티티의 데이터 집합에 뿐만 아니라 분산 원장 상태에 저장될 수 있다. 추가적으로 또는 대안적으로, 엔티티는 (예를 들어, 도 1a에 도시된 바와 같이) 엔티티의 데이터 집합의 일부로서 분산 원장 상태를 유지할 수 있고, 이에 민감하지 않은 데이터가 복제되지 않을 수 있다. 더욱이, 일부 실시형태에서, 엔티티는 분산 원장 상태를 유지하지 않을 수 있고, 분산 원장을 집합적으로 유지하는 노드 네트워크의 노드를 통해 분산 원장에 액세스할 수 있다.
도 1b는 일부 실시형태에 따른 예시적인 데이터 관리 서비스(110A-B) 및 예시적인 분산 원장 클라이언트(115A-B)를 도시한다. 예를 들어, 데이터 관리 서비스(110A-B)는 도 1a의 예에서 예시적인 데이터 집합(100A-B)을 각각 관리할 수 있다. 마찬가지로, 분산 원장 클라이언트(115A-B)는 도 1a의 예에서 예시적인 분산 원장 상태(105A-B)를 각각 관리할 수 있다.
일부 실시형태에서, 데이터 관리 서비스(예를 들어, 데이터 관리 서비스(110A 또는 110B))는 개인 식별 정보(PII), 디지털 자산에 액세스하기 위한 암호화 키, 및/또는 다른 민감한 데이터를 관리하기 위한 소프트웨어 프로그램을 포함할 수 있다. 예를 들어, 데이터 관리 서비스는 소프트웨어 프로그램이 임의의 환경에서 일관되게 실행될 수 있도록 소프트웨어 프로그램을 파일 시스템에 래핑(wrap)하는 가상 컨테이너(virtual container)로서 구현될 수 있다. 파일 시스템은 런타임 시스템, 하나 이상의 시스템 도구, 하나 이상의 시스템 라이브러리 등을 포함할 수 있다. 그러나, 본 발명의 양태는 이들로 제한되지 않는 것으로 이해된다. 일부 실시형태에서, 데이터 관리 서비스는 수반되는 파일 시스템 없이 민감한 데이터를 관리하기 위한 소프트웨어 프로그램을 단순히 포함할 수 있다.
도 1b의 예에서, 데이터 관리 서비스(100A-B)는 (예를 들어, 종단 간 암호화를 사용하여) 보안 채널을 통해 서로 통신하며 데이터 집합(100A-B) 간에 선택적인 데이터 공유를 실행한다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(110A-B)는 애플리케이션 프로그래밍 인터페이스를 하나 이상의 애플리케이션(도시되지 않음)에 각각 제공할 수 있다. 엔티티(A 및 B)는 이러한 애플리케이션을 통해 거래(예를 들어, 계좌 개설, 구매 수행, 데이터 액세스 등)에 참여할 수 있다.
일부 실시형태에서, 데이터 집합(100A-B)은 엔티티(A 및 B)의 속성값(예를 들어, 생년월일, 사회 보장 번호, 암호 화폐 주소와 연관된 개인 키(private key), 고용주 식별 번호, 디바이스 일련 번호, 건물 액세스 코드 등)을 포함할 수 있다. 이러한 속성값의 암호화 증명(예를 들어, 솔트된 해시(salted hash))은 분산 원장 클라이언트(115A-B)에 의해 관리될 수 있는 분산 원장 상태(105A-B)에 저장될 수 있다. 분산 원장 클라이언트(115A-B)는 분산 원장 프로토콜에 참여하여 분산 원장 상태(105A-B)를 분산 원장과 동기화함으로써 분산 원장을 유지하는 노드의 네트워크에 암호화 증명을 게시할 수 있다.
일부 실시형태에서, 암호화 증명은 소유자 엔티티의 속성값으로부터 선택된 방식으로 도출될 수 있고, 지정된 신뢰받는 당사자(예를 들어, 속성값을 발행(issue)하거나 그 진실성을 검증한 엔티티)에 의해 서명될 수 있다. 소유자 엔티티가 속성값을 공유하는 상대방은 암호화 증명이 실제로 선택한 방식으로 속성값으로부터 도출되었는지, 및 암호화 증명이 실제로 지정된 신뢰받는 당사자에 의해 서명되었는지를 쉽게 점검할 수 있다. 그러나, 다른 엔티티가 암호화 증명만으로 속성값을 재구성하는 것은 계산적으로 실행 불가능할 수 있다. 이러한 방식으로, 프라이버시와 투명성의 경쟁 목표를 동시에 달성할 수 있다.
솔트된 해시는 암호화 증명의 예로서 본 명세서에서 설명되지만, 본 발명의 양태는 암호화 증명을 생성하는 데 해시 함수를 사용하는 것으로 제한되지 않는 것으로 이해된다. 일부 실시형태에서, 암호화 증명은 인수 분해, 이산 로그 등에 기초하여 생성될 수 있다. 추가적으로 또는 대안적으로, 암호화 증명은 제로 지식 증명(zero knowledge proof: ZKP)을 포함할 수 있고, 예를 들어, 비대화형 ZKP(예를 들어, zk-SNARK)를 포함할 수 있다.
일부 실시형태에서, 엔티티(A)는 분산 원장에 데이터 구조를 게시함으로써 엔티티(B)와의 신뢰 관계를 명시할 수 있다. 예를 들어, 엔티티(A)는 하나 이상의 속성 증명을 배지(badge)로 조합할 수 있으며, 여기서 속성 증명은 엔티티(A)의 데이터 집합(100A)에 저장된 속성값의 암호화 증명을 포함할 수 있다. 엔티티(A)는 배지가 엔티티(B)와 연관되어 있다는 표시와 함께 분산 원장에 배지를 게시할 수 있다. 이러한 방식으로, 배지는 속성값 자체를 드러내지 않고 엔티티(A)가 엔티티(B)와 하나 이상의 선택된 속성값을 공유했다는 증명으로서 분산 원장으로부터 나중에 액세스될 수 있다.
구현의 일부 세부 사항이 도 1a 내지 도 1b와 관련하여 위에서 설명되었지만, 이러한 세부 사항은 단지 예시의 목적으로 제공되는 것으로 이해된다. 위에서 소개 및/또는 아래에서 상세히 논의되는 기술은 임의의 특정 구현 방식으로 제한되지 않는다. 예를 들어, 예시적인 데이터 관리 서비스(110A) 및 예시적인 분산 원장 클라이언트(115A)는 도 1b에 별도의 구성 요소로서 도시되어 있지만, 이들 구성 요소의 기능은 일부 실시형태에서 단일 구성 요소에 의해 구현될 수 있으며, 예시적인 데이터 관리 서비스(110B) 및 예시적인 분산 원장 클라이언트(115B)에 대해서도 마찬가지이다.
도 2a는 일부 실시형태에 따라 속성 증명의 상이한 상태들 간의 전이를 설명하는 예시적인 상태 머신(200)을 도시한다. 예를 들어, 상태 머신(200)은 배지 소유자에 의해 게시된 속성 증명이 도 1a의 예에서 예시적인 분산 원장 상태(105A-B)로 상태 전이되는 것을 설명할 수 있다.
일부 실시형태에서, 소유자가 속성 증명을 가진 배지를 생성하거나 기존 배지에 속성 증명을 추가할 때, 속성 증명은 보류 상태(PENDING state)로 초기화될 수 있다. 이 상태에서, 속성 증명은 유효 상태이지도 않고 무효 상태이지도 않을 수 있다.
일부 실시형태에서, 배지의 소유자는 배지와 연관된 신뢰받는 당사자가 속성 증명에 대응하는 속성값을 검증할 것을 요청할 수 있다. 신뢰받는 당사자가 속성값을 성공적으로 검증하면 신뢰받는 당사자는 속성 증명을 유효 상태(VALID state)로 만들 수 있다. 신뢰받는 당사자가 속성값을 거부하면 신뢰받는 당사자는 속성 증명을 무효 상태(INVALID state)로 만들 수 있다.
일부 실시형태에서, 속성 증명이 유효 상태, 만료 상태(EXPIRED state) 또는 무효 상태이고, 배지 소유자가 속성이 다른 값을 갖게 하는 경우, 속성 증명은 보류 상태로 돌아갈 수 있다.
일부 실시형태에서, 속성 증명이 유효 상태에 있지만 신뢰받는 당사자에 의해 취소된 경우, 신뢰받는 당사자는 속성 증명을 무효 상태로 만들 수 있다.
일부 실시형태에서, 속성 증명이 유효 상태에 있고 유효 기간이 만료된 경우, 속성 증명은 만료 상태로 이동할 수 있으며, 여기서 속성 증명은 신뢰받는 당사자가 속성의 값을 재검증할 때까지 남아있을 수 있다.
본 발명의 양태는 속성 증명의 상태를 임의의 특정 방식으로 유지하는 것으로 제한되지 않고 이러한 상태를 유지하는 것으로 전혀 제한되지 않기 때문에, 도 2a에 도시된 상태 머신(200)은 단지 예시의 목적으로 위에서 설명된 것으로 이해된다. 일부 실시형태에서, 분산 원장 클라이언트(예를 들어, 도 1b의 예에서 예시적인 분산 원장 클라이언트(115A 또는 115B))는 속성 증명 상태2(주석2: '643 및 '732 출원은 분산 원장 클라이언트의 예로서 디지털 신원 표현(digital identity representation: DIR)을 설명한다)를 유지하도록 프로그래밍될 수 있는 스마트 계약(예를 들어, 이더리움 스마트 계약)을 사용하여 구현될 수 있다. 그러나, 본 발명의 양태는 임의의 특정 유형의 스마트 계약을 사용하는 것으로 제한되지 않고 임의의 스마트 계약을 사용할 수 있는 것으로 이해된다.
도 3a는 일부 실시형태에 따라 신뢰받는 당사자에 의한 속성 증명을 위한 예시적인 프로세스(300)를 도시한다. 예를 들어, 프로세스(300)는 도 1a의 예에서 예시적인 엔티티(A)와 엔티티(B) 간에 수행될 수 있다. 엔티티(A)는 예시적인 데이터 관리 서비스(110A)를 사용하여 속성값을 관리하는 사용자일 수 있다. 엔티티(B)는, 엔티티(A)의 하나 이상의 속성값을 검증하고 예시적인 데이터 관리 서비스(110B)를 사용하여 하나 이상의 속성값을 증명하는 신뢰받는 당사자(예를 들어, 정부 기관, 고용주, 은행 등)일 수 있다. 그러나, 본 명세서에 설명된 기술은 개인 데이터에 추가하여 또는 이 대신에 임의의 적절한 유형의 데이터를 관리하는 데 사용될 수 있는 것으로 이해된다. 예를 들어, 일부 실시형태에서, 프로세스(300)는 조직, 식별 가능한 객체, 물리적 공간 등에 관한 속성값을 증명하는 데 사용될 수 있다.
동작(305)에서, 데이터 관리 서비스(110A)는 하나 이상의 속성 증명을 준비할 수 있다. 예를 들어, 엔티티(A)의 데이터 집합(예를 들어, 도 1a의 예에서 예시적인 데이터 집합(100A))은 생년월일, 여권 번호, 신용 카드 번호, 우편 주소, 연간 소득 등과 같은 속성값을 포함할 수 있다. 데이터 관리 서비스(110A)는 엔티티(B)에 의해 검증될 하나 이상의 속성값을 선택할 수 있고, 선택된 각각의 속성값에 대한 증명을 생성할 수 있다. 예를 들어, 데이터 관리 서비스(110A)는 속성값의 암호화 증명을 생성할 수 있고, 증명에 암호화 증명을 포함할 수 있다. 본 발명의 양태는 이들로 제한되지 않기 때문에, 암호화 증명은 임의의 적절한 방식으로 생성될 수 있다. 예를 들어, 일부 실시형태에서, 랜덤으로 생성된 솔트의 유무에 관계없이 암호화 해시 함수가 속성값에 적용될 수 있다.
일부 실시형태에서, 증명은 증명에서의 암호화 증명을 생성한 방식 및/또는 암호화 증명을 점검하는 방식을 나타내는 메타데이터와 같은 메타데이터의 하나 이상의 항목을 포함할 수 있다. 예를 들어, 증명은 암호화 증명을 생성하는 데 사용되는 암호화 방식(예를 들어, 암호화 해시 함수, 비대칭 암호화 시스템 등)을 식별하는 메타데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, 증명은 증명이 선택된 엔티티(예를 들어, 엔티티(B))에 의해 서명될 것임을 나타내는 메타데이터를 포함할 수 있다. 그러나, 본 발명의 양태는 증명에서 임의의 특정 유형의 메타데이터를 갖는 것으로 제한되지 않고 임의의 메타데이터를 가질 수 있는 것으로 이해된다.
일부 실시형태에서, 데이터 관리 서비스(110A)는 하나 이상의 속성 증명을 배지로 구성할 수 있고, 배지가 선택된 엔티티(예를 들어, 엔티티(A)가 서비스를 요청하는 서비스 제공자)에 제공될 것이라는 표시를 배지에 포함할 수 있다. 그러나, 본 발명의 양태는 속성 증명을 배지로 구성하는 것으로 제한되지 않는 것으로 이해된다.
동작(310)에서, 데이터 관리 서비스(110A)는 하나 이상의 속성 증명이 분산 원장에 개시되도록 할 수 있다. 예를 들어, 일부 실시형태에서, 데이터 관리 서비스(110A)는 도 1b의 예에서 예시적인 분산 원장 클라이언트(115A)가 하나 이상의 속성 증명을 게시할 것을 요청할 수 있다. 이에 응답하여, 분산 원장 클라이언트(115A)는 하나 이상의 속성 증명을 게시할 수 있고, 각각의 이러한 속성 증명의 상태를 보류 상태로 설정할 수 있다.
동작(315)에서, 데이터 관리 서비스(110A)는 하나 이상의 선택된 속성값을 분산 원장의 외부에 있는 보안 채널을 통해 데이터 관리 서비스(110B)에 송신할 수 있다. 데이터 관리 서비스(110A)는 또한 속성값의 암호화 증명을 점검할 때 사용하기 위한 메타데이터와 같은 관련 메타데이터를 포함할 수 있다. 예를 들어, 암호화 증명은 적절한 암호화 방식(예를 들어, 암호화 해시 함수, 비대칭 암호화 시스템 등)을 사용하여 생성되었을 수 있으며, 메타데이터는 암호화 방식에 대한 입력(예를 들어, 암호화 해시 함수에 입력된 랜덤으로 생성된 솔트, 비대칭 암호화 시스템에 입력된 초기화 벡터 등)을 포함할 수 있다. 그러나, 본 발명의 양태는 임의의 특정 방식으로 암호화 증명을 생성하는 것으로 제한되지 않는 것으로 이해된다.
일부 실시형태에서, 데이터 관리 서비스(110A)는 분산 원장으로부터 하나 이상의 속성 증명을 조회하기 위해 데이터 관리 서비스(110B)에 의해 사용될 수 있는 분산 원장 참조를 보안 채널을 통해 데이터 관리 서비스(110B)로 송신할 수 있다. 예를 들어, 분산 원장 클라이언트(115A)는 스마트 계약을 사용하여 구현될 수 있고, 분산 원장 참조는 스마트 계약이 분산 원장에 기록되는, 분산 원장 거래에 대한 참조를 포함할 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 속성 증명은 배지로 구성될 수 있고, 분산 원장 참조는 배지가 분산 원장에 기록되는, 분산 원장 거래에 대한 참조를 포함할 수 있다.
일부 실시형태에서, 엔티티(A)는 분산 원장 주소를 가질 수 있고, 참조된 분산 원장 거래는 분산 원장 주소와 연관된 개인 키를 사용하여 서명될 수 있다. 이 개인 키는 분산 원장 클라이언트(115A)에 의해 관리될 수 있고, 데이터 관리 서비스(110A)는 분산 원장 클라이언트(115A)가 개인 키를 사용하여 데이터 관리 서비스(110B)로 송신되는 속성값에 대한 서명을 생성하게 할 수 있다. 데이터 관리 서비스(110A)는 속성값과 함께 서명을 데이터 관리 서비스(110B)에 송신할 수 있다. 이것은, 데이터 관리 서비스(110B)가 분산 원장 주소를 사용하여 분산 원장으로부터 공개 키를 조회하고, 이 공개 키를 사용하여 속성값과 참조된 분산 원장 거래가 동일한 개인 키를 사용하여 서명되었는지를 점검할 수 있기 때문에, 속성값을 참조된 분산 원장 거래와 결합시킬 수 있다.
동작(320)에서, 데이터 관리 서비스(110B)는, 예를 들어, 문서(예를 들어, 여권, 신용 카드, 공과금 명세서, 지불 명세서 등) 및/또는 생체 특징(예를 들어, 지문, 홍채, 음성 등)을 물리적으로 검사함으로써 수신된 속성값을 직접 검증할 수 있다.
추가적으로 또는 대안적으로, 데이터 관리 서비스(110B)는 예를 들어 참조된 증명에 기초하여 수신된 속성값을 간접 검증할 수 있다. 예를 들어, 일부 실시형태에서, 엔티티는 신뢰 구조를 형성할 수 있으며, 여기서 엔티티는 하나 이상의 다른 엔티티를 신뢰할 수 있고, 하나 이상의 다른 엔티티 중 임의의 것에 의해 서명된 속성 증명에 의존할 수 있다. 이러한 방식으로, 엔티티는 물리적 검증을 수행하지 않고도 속성값을 검증할 수 있다.
따라서, 일부 실시형태에서, 데이터 관리 서비스(110A)는 다른 엔티티에 의해 이전에 서명된 증명에 대한 분산 원장 참조를 데이터 관리 서비스(110B)에 제공할 수 있으며, 이전에 서명된 증명은 데이터 관리 서비스(110B)에 의해 검증되는 동일한 속성값에 대한 것이다. 데이터 관리 서비스(110B)는 분산 원장으로부터 이전에 서명된 증명을 조회할 수 있고, 하나 이상의 점검을 수행할 수 있다. 예를 들어, 데이터 관리 서비스(110B)는 (i) 다른 엔티티가 (예를 들어, 신뢰받는 엔티티의 목록을 조회함으로써) 엔티티(B)에 의해 신뢰받는지, (ii) 이전에 서명된 증명에 표시된 암호화 방식을 사용하여 수신된 속성값으로부터 이전에 서명된 증명에 암호화 증명이 생성되는지, (iii) 이전에 서명된 증명이 유효 상태에 있는지 및/또는 (iv) 이전에 서명된 증명이 다른 엔티티의 개인 키를 사용하여 서명되었는지를 점검할 수 있다. 본 발명의 양태는 이들로 제한되지 않기 때문에 임의의 적절한 전자 서명 방식이 사용될 수 있다.
도 3의 예에서 동작(320)으로 돌아가서, 데이터 관리 서비스(110B)는 동작(315)에서 수신된 분산 원장 참조를 사용하여 데이터 관리 서비스(110B)에 의해 서명될 하나 이상의 속성 증명을 분산 원장으로부터 조회할 수 있다. 일부 실시형태에서, 데이터 관리 서비스(110B)는, 속성 증명에 표시된 암호화 방식을 사용하여, 각각의 이러한 속성 증명에 암호화 증명이 대응하는 수신된 속성값으로부터 생성되는지를 점검할 수 있다.
추가적으로 또는 대안적으로, 데이터 관리 서비스(110B)는 동작(315)에서 수신된 분산 원장 참조를 사용하여 수신된 속성값을 인증할 수 있다. 예를 들어, 데이터 관리 서비스(110B)는 분산 원장 참조와 연관된 분산 원장 주소를 사용하여 분산 원장으로부터 공개 키를 조회할 수 있고, 이 공개 키를 사용하여 수신된 속성값의 서명을 점검할 수 있다. 일부 실시형태에서, 각각의 수신된 속성값이 성공적으로 (직접 또는 간접) 검증되고 인증되고, 대응하는 속성 증명이 성공적으로 점검되면, 데이터 관리 서비스(110B)는 동작(325)에서 엔티티(B)와 연관된 개인 키를 사용하여 속성 증명에 서명할 수 있다. 본 발명의 양태는 이들로 제한되지 않기 때문에 임의의 적절한 전자 서명 방식이 사용될 수 있다. 일부 실시형태에서, 엔티티(B)는 연관된 분산 원장 주소를 가질 수 있고, 이 분산 원장 주소와 연관된 개인 키는 도 1b의 예에서 예시적인 분산 원장 클라이언트(115B)에 의해 관리될 수 있다. 데이터 관리 서비스(110B)는 분산 원장 클라이언트(115B)가 개인 키를 사용하여 속성 증명에 대한 서명을 생성하게 할 수 있다. 이러한 방식으로, 속성 증명을 점검하는 엔티티(예를 들어, 도 4의 예에서 예시적인 엔티티(C))는 엔티티(B)의 분산 원장 주소를 사용하여 분산 원장으로부터 공개 키를 조회할 수 있고, 이 공개 키를 사용하여 속성 증명에 대한 서명을 점검할 수 있다.
추가적으로 또는 대안적으로, 데이터 관리 서비스(110B)는 속성 증명의 상태를 유효 상태로 변경할 수 있다. 예를 들어, 데이터 관리 서비스(110B)는 도 1b의 예에서 예시적인 분산 원장 클라이언트(115B)가 속성 증명의 상태를 유효 상태로 변경할 것을 요청할 수 있다.
구현예의 일부 세부 사항이 도 3a와 관련하여 위에서 설명되었지만, 이러한 세부 사항은 단지 예시의 목적으로 제공된 것으로 이해된다. 본 발명의 양태는 임의의 특정 구현 방식으로 제한되지 않는다. 예를 들어, 일부 실시형태에서, 데이터 관리 서비스(110A)는 분산 원장 클라이언트(115A)가 온-원장 이벤트(on-ledger event)(예를 들어, "검증 요청" 이벤트)를 트리거하여 하나 이상의 속성 증명이 엔티티(B)에 의한 검증을 보류할 것을 분산 원장 클라이언트(115B)에 통지하도록 할 수 있다. 이에 응답하여, 데이터 관리 서비스(110B)는 데이터 관리 서비스(110A)에 하나 이상의 속성값을 질의할 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는 분산 원장 클라이언트(115A)가 하나 이상의 속성값을 분산 원장을 통해 분산 원장 클라이언트(115B)에 송신하게 할 수 있다. 이어서 분산 원장 클라이언트(115B)는 데이터 관리 서비스(110B)에 하나 이상의 속성값을 제공할 수 있다. 하나 이상의 속성값은 예를 들어 분산 원장 클라이언트(115B)와 연관된 공개 키를 사용하여 전송을 위해 암호화될 수 있다.
도 4는 일부 실시형태에 따라 상대방 점검을 위한 예시적인 프로세스(400)를 도시한다. 예를 들어, 프로세스(400)는 도 1a 내지 도 1b의 예에서 예시적인 엔티티(A)와 엔티티(C)(도시되지 않음) 간에 수행될 수 있다. 엔티티(A)는 예시적인 데이터 관리 서비스(110A)를 사용하여 속성값을 관리하는 사용자일 수 있다. 엔티티(C)는, 엔티티(A)로부터 하나 이상의 속성값을 수신하고 데이터 관리 서비스(110C)를 사용하여 하나 이상의 속성값 각각의 증명을 점검하는 상대방일 수 있다. 예를 들어, 엔티티(C)는 서비스 제공자(예를 들어, 은행)일 수 있다. 엔티티(C)가 엔티티(A)에 서비스를 제공하기 (예를 들어, 은행 계좌를 개설하기) 전에, 엔티티(C)는 엔티티(A)가 (예를 들어, 자금 세탁 방지 규정에 따라) 선택된 속성값 세트를 제공할 것을 요청할 수 있다. 그러나, 본 명세서에 설명된 기술은 개인 데이터에 추가하여 또는 이 대신에 임의의 적절한 유형의 데이터의 증명을 점검하는 데 사용될 수 있는 것으로 이해된다. 예를 들어, 일부 실시형태에서, 프로세스(400)는 조직, 식별 가능한 객체, 물리적 공간 등과 관련된 속성값의 증명을 점검하는 데 사용될 수 있다.
일부 실시형태에서, 프로세스(400)는 엔티티(A)가 엔티티(C)와의 상호 작용을 시작할 때 트리거될 수 있다. 예를 들어, 데이터 관리 서비스(110A 및 110C)는 애플리케이션 프로그래밍 인터페이스를 각각의 애플리케이션(도시되지 않음)에 각각 제공할 수 있다. 엔티티(A)의 애플리케이션은 엔티티(C)의 애플리케이션에 서비스 요청을 송신할 수 있다. 이에 응답하여, 엔티티(C)의 애플리케이션은 각각에 대해 증명이 점검되어야 하는 하나 이상의 선택된 속성을 표시할 수 있다. 따라서, 엔티티(A)는 엔티티(C)에 의해 표시된 하나 이상의 속성에 대한 하나 이상의 증명을 준비하고, 하나 이상의 증명을 분산 원장에 게시하고, 신뢰받는 엔티티(예를 들어, 도 1a의 예에서 예시적인 엔티티(B))가 하나 이상의 증명에 서명할 것을 요청할 수 있다. 이것은 예를 들어 도 3a의 예에서 예시적인 프로세스(300)를 통해 수행될 수 있다. 추가적으로 또는 대안적으로, 엔티티(A)는 신뢰받는 엔티티(예를 들어, 도 1a의 예에서 예시적인 엔티티(B))가 엔티티(C)에 의해 표시된 하나 이상의 속성에 대해 하나 이상의 값을 발행하고, 하나 이상의 대응하는 증명을 분산 원장에 게시할 것을 요청할 수 있다. 이것은 예를 들어 도 3b의 예(아래에 설명됨)에서 예시적인 프로세스(350)를 통해 수행될 수 있다.
도 4로 돌아가서, 데이터 관리 서비스(110A)는 동작(405)에서 하나 이상의 선택된 속성의 하나 이상의 값을 분산 원장의 외부에 있는 보안 채널을 통해 데이터 관리 서비스(110C)로 송신할 수 있다. 데이터 관리 서비스(110A)는 또한 하나 이상의 증명을 생성하는 데 사용되는 하나 이상의 입력과 같은 하나 이상의 속성값과 함께 관련 메타데이터를 송신할 수 있다. 그러나, 본 발명의 양태는 임의의 특정 방식으로 증명을 생성하는 것으로 제한되지 않는 것으로 이해된다.
일부 실시형태에서, 데이터 관리 서비스(110A)는 분산 원장으로부터 엔티티(C)에 의해 표시된 하나 이상의 속성에 각각 대응하는 하나 이상의 증명을 조회하기 위해 데이터 관리 서비스(110C)에 의해 사용될 수 있는 분산 원장 참조를 보안 채널을 통해 데이터 관리 서비스(110C)에 송신할 수 있다.
일부 실시형태에서, 엔티티(A)에 의해 사용되는 분산 원장 클라이언트(예를 들어, 도 1b의 예에서 예시적인 분산 원장 클라이언트(115A))는 스마트 계약을 사용하여 구현될 수 있고, 데이터 관리 서비스(110C)로 송신된 분산 원장 참조는 스마트 계약이 분산 원장에 기록되는, 분산 원장 거래에 대한 참조를 포함할 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 증명은 배지로 구성될 수 있고, 분산 원장 참조는 배지가 분산 원장에 기록되는, 분산 원장 거래에 대한 참조를 포함할 수 있다. 그러나, 본 발명의 양태는 분산 원장 클라이언트를 구현하는 임의의 특정 방식으로 제한되지 않고 또는 증명을 구성하는 임의의 특정 방식으로 제한되지 않는 것으로 이해된다.
일부 실시형태에서, 엔티티(A)는 분산 원장 주소를 가질 수 있고, 참조된 분산 원장 거래는 분산 원장 주소와 연관된 개인 키를 사용하여 서명될 수 있다. 이 개인 키는 분산 원장 클라이언트(115A)에 의해 관리될 수 있고, 데이터 관리 서비스(110A)는 분산 원장 클라이언트(115A)가 개인 키를 사용하여 데이터 관리 서비스(110C)로 송신되는 속성값에 대한 서명을 생성하게 할 수 있다. 데이터 관리 서비스(110A)는 속성값과 함께 서명을 데이터 관리 서비스(110C)에 송신할 수 있다. 이것은, 데이터 관리 서비스(110C)가 분산 원장 주소를 사용하여 분산 원장으로부터 공개 키를 조회할 수 있고, 이 공개 키를 사용하여 속성값과 참조된 분산 원장 거래가 동일한 개인 키를 사용하여 서명되었는지를 점검할 수 있기 때문에 속성값을 참조된 분산 원장 거래와 결합시킬 수 있다.
동작(410)에서, 데이터 관리 서비스(110C)는 동작(405)에서 수신된 분산 원장 참조를 사용하여 분산 원장으로부터 하나 이상의 증명을 검색할 수 있다. 예를 들어, 일부 실시형태에서, 엔티티(C)는 분산 원장의 로컬 사본을 포함할 수 있는 분산 원장 상태(105C)를 유지할 수 있다.
일부 실시형태에서, 데이터 관리 서비스(110C)는 검색된 증명에 대해 하나 이상의 점검을 수행할 수 있다. 예를 들어, 데이터 관리 서비스(110C)는,
(i) 증명에 서명한 엔티티(예를 들어, 도 1a의 예에서 예시적인 엔티티(B))가 (예를 들어, 신뢰받는 엔티티의 목록을 조회함으로써) 엔티티(C)에 의해 신뢰받는지;
(ii) 증명에서 암호화 증명은 엔티티(A)로부터 수신된 대응하는 속성값으로부터 생성되고, 증명에 표시된 암호화 방식을 사용하여 생성되는지;
(iii) 증명이 유효 상태에 있는지; 및/또는
(iv) 증명이 신뢰받는 엔티티의 개인 키를 사용하여 서명되는지를 점검할 수 있다.
추가적으로 또는 대안적으로, 데이터 관리 서비스(110C)는 동작(405)에서 수신된 분산 원장 참조를 사용하여 수신된 속성값을 인증할 수 있다. 예를 들어, 데이터 관리 서비스(110C)는 분산 원장 참조와 연관된 분산 원장 주소를 사용하여 분산 원장으로부터 공개 키를 조회할 수 있고, 이 공개 키를 사용하여 수신된 속성값의 서명을 점검할 수 있다.
일부 실시형태에서, 각각의 수신된 속성값이 성공적으로 인증되고, 대응하는 증명이 성공적으로 점검되면, 데이터 관리 서비스(110C)는 동작(415)에서 엔티티(A)에 의해 요청된 서비스에 대한 액세스가 허용되었다는 표시를 데이터 관리 서비스(110A)에 송신할 수 있다. 임의의 증명이 성공적으로 점검되지 않은 경우, 데이터 관리 서비스(110C)는 동작(415)에서 엔티티(A)에 의해 요청된 서비스에 대한 액세스가 거부되었다는 표시를 데이터 관리 서비스(110A)에 송신할 수 있다. 그러나, 본 발명의 양태는 엔티티(A)에 임의의 특정 방식으로 통지하는 것으로 제한되지 않고 전혀 통지하지 않을 수 있는 것으로 이해된다. 일부 실시형태에서, 데이터 관리 서비스(110C)는 엔티티(A)로부터 수신된 하나 이상의 속성값과 함께 엔티티(C)의 애플리케이션(도시되지 않음)에 점검 성공 또는 실패의 표시를 제공할 수 있다. 엔티티(C)의 애플리케이션은 (예를 들어, 자금 세탁 방지 규정에 따라) 하나 이상의 속성값에 대해 추가 점검을 수행할 수 있고, 따라서 엔티티(A)의 애플리케이션(도시되지 않음)에 통지할 수 있다.
구현예의 일부 세부 사항이 도 4와 관련하여 위에서 설명되었지만, 이러한 세부 사항은 단지 예시의 목적으로 제공된 것으로 이해된다. 본 발명의 양태는 임의의 특정 구현 방식으로 제한되지 않는다. 예를 들어, 일부 실시형태에서, 데이터 관리 서비스(110A)는 분산 원장 클라이언트(115A)가 온-원장 이벤트(예를 들어, "증명 점검" 이벤트)를 트리거하여 하나 이상의 속성 증명이 엔티티(C)에 의해 점검할 준비가 된 것을 엔티티(C)의 분산 원장 클라이언트(115C)(도시되지 않음)에 통지하게 할 수 있다. 이에 응답하여, 데이터 관리 서비스(110C)는 데이터 관리 서비스(110A)에 하나 이상의 속성값을 질의할 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는 분산 원장 클라이언트(115A)가 하나 이상의 속성값을 분산 원장을 통해 분산 원장 클라이언트(115C)에 송신하게 할 수 있다. 이어서 분산 원장 클라이언트(115C)는 데이터 관리 서비스(110C)에 하나 이상의 속성값을 제공할 수 있다. 하나 이상의 속성값은 예를 들어 분산 원장 클라이언트(115C)와 연관된 공개 키를 사용하여 전송을 위해 암호화될 수 있다.
일부 실시형태에서, 신뢰받는 당사자(예를 들어, 도 1a의 예에서 예시적인 엔티티(B))는 소유자로부터 수신된 하나 이상의 속성값을 검증하는 것에 추가하여 또는 이 대신에 하나 이상의 속성값을 소유자(예를 들어, 도 1a의 예시에서 예시적인 엔티티(A))에 발행할 수 있다. 신뢰받는 당사자는 이러한 속성값에 대한 증명을 준비하고, 이 증명을 분산 원장에 게시할 수 있다. 신뢰받는 당사자는 속성값을 소유자에게 송신할 수 있으며, 소유자는 속성값을 수락하거나 거부할 수 있다.
도 2b는 일부 실시형태에 따라 속성 증명의 상이한 상태들 간의 전이를 설명하는 다른 예시적인 상태 머신(250)을 도시한다. 예를 들어, 상태 머신(250)은 신뢰받는 당사자에 의해 게시된 속성 증명이 도 1a의 예에서 예시적인 분산 원장 상태(105A-B)로 상태 전이되는 것을 설명할 수 있다.
일부 실시형태에서, 신뢰받는 당사자는 소유자에 속성값을 발행할 수 있다. 일례로, 신뢰받는 당사자는 정부 기관일 수 있으며, 여권 번호, 사회 보장 번호, 운전 면허 번호 등과 같은 속성값을 발행할 수 있다. 다른 예로서, 신뢰받는 당사자는 고용주일 수 있으며, 직위, 연봉, 고용 기간 등과 같은 속성값을 발행할 수 있다. 또 다른 예로서, 신뢰받는 당사자는 은행일 수 있으며, 월별 명세서, 이용 가능한 자금 금액, 이용 가능한 신용 금액 등과 같은 속성값을 발행할 수 있다.
일부 실시형태에서, 신뢰받는 당사자는 속성값에 대한 증명이 있는 배지를 생성하거나, 소유자의 기존 배지에 증명을 추가할 수 있다. 속성 증명은 보류 상태로 초기화될 수 있다. 이 상태에서, 속성 증명은 유효 상태도 아니고 무효 상태도 아닐 수 있다.
일부 실시형태에서, 신뢰받는 당사자는 배지 소유자에 속성값을 송신할 수 있다. 배지 소유자는 속성값이 정확한지 또는 수락 가능한지 여부를 확인할 수 있다. 배지 소유자가 속성값을 수락하면 배지 소유자는 속성 증명을 유효 상태로 만들 수 있다. 배지 소유자가 속성값을 거부하면 배지 소유자는 속성 증명을 무효 상태로 만들 수 있다.
일부 실시형태에서, 속성 증명이 유효 상태, 만료 상태 또는 무효 상태이고, 신뢰받는 당사자가 속성이 다른 값을 갖게 하는 경우, 속성 증명은 보류 상태로 복귀할 수 있다.
일부 실시형태에서, 속성 증명이 유효 상태에 있지만 속성값이 배지 소유자에 의해 수락 가능한 것으로 더 이상 간주되지 않는 경우, 배지 소유자는 속성 증명을 무효 상태로 만들 수 있다.
일부 실시형태에서, 속성 증명이 유효 상태이고 유효 기간이 만료되면, 속성 증명은 만료 상태로 이동할 수 있으며, 여기서 속성 증명은 배지 소유자가 속성값을 재확인할 때까지 남아있을 수 있다.
본 발명의 양태는 속성 증명의 상태를 임의의 특정 방식으로 유지하는 것으로 제한되지 않고 이러한 상태를 유지하는 것으로 전혀 제한되지 않기 때문에, 도 2b에 도시된 상태 머신(250)은 단지 예시의 목적으로 위에서 설명된 것으로 이해된다. 일부 실시형태에서, 분산 원장 클라이언트(예를 들어, 도 1b의 예에서 예시적인 분산 원장 클라이언트(115A 또는 115B))는 속성 증명의 상태를 유지하도록 프로그래밍될 수 있는 스마트 계약(예를 들어, 이더리움 스마트 계약)을 사용하여 구현될 수 있다. 그러나, 본 발명의 양태는 임의의 특정 유형의 스마트 계약을 사용하는 것으로 제한되지 않고 임의의 스마트 계약을 사용할 수 있는 것으로 이해된다.
도 3b는 일부 실시형태에 따라 신뢰받는 당사자에 의한 속성 발행을 위한 예시적인 프로세스(350)를 도시한다. 예를 들어, 프로세스(300)는 도 1a의 예에서 예시적인 엔티티(A)와 엔티티(B) 간에 수행될 수 있다. 엔티티(A)는 예시적인 데이터 관리 서비스(110A)를 사용하여 속성값을 관리하는 사용자일 수 있다. 엔티티(B)는, 엔티티(A)에 하나 이상의 속성값을 발행하고 예시적인 데이터 관리 서비스(110B)를 사용하여 하나 이상의 대응하는 속성 증명을 게시하는 신뢰받는 당사자(예를 들어, 정부 기관, 고용주, 은행 등)일 수 있다. 그러나, 본 명세서에 설명된 기술은 개인 데이터에 추가하여 또는 이 대신에 임의의 적절한 유형의 데이터를 관리하는 데 사용될 수 있는 것으로 이해된다. 예를 들어, 일부 실시형태에서, 프로세스(350)는 조직, 식별 가능한 객체, 물리적 공간 등과 관련된 속성값을 증명하는 데 사용될 수 있다.
동작(355)에서, 데이터 관리 서비스(110A)는 하나 이상의 속성 증명을 분산 원장에 게시하기 위해 데이터 관리 서비스(110B)에 의해 사용될 수 있는 분산 원장 참조를 보안 채널을 통해 데이터 관리 서비스(110B)로 송신할 수 있다. 예를 들어, 도 1b의 예에서 예시적인 분산 원장 클라이언트(115A)는 스마트 계약을 사용하여 구현될 수 있고, 분산 원장 참조는 스마트 계약에 대한 참조를 포함할 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 속성 증명은 배지로 구성될 수 있고, 분산 원장 참조는 배지에 대한 참조를 포함할 수 있다.
일부 실시형태에서, 보안 채널은 분산 원장의 외부에 있을 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는 분산 원장 클라이언트(115A)가 온-원장 이벤트(예를 들어, "속성 요청" 이벤트)를 트리거하여 엔티티(A)가 하나 이상의 선택된 속성의 하나 이상의 값의 발행을 요청할 것을 도 1b의 예에서 예시적인 분산 원장 클라이언트(115B)에 통지하도록 할 수 있다.
동작(360)에서, 데이터 관리 서비스(110B)는 하나 이상의 속성값을 발행할 수 있고, 하나 이상의 대응하는 속성 증명을 준비할 수 있다. 예를 들어, 데이터 관리 서비스(110A-B)는 애플리케이션 프로그래밍 인터페이스를 각각의 애플리케이션(도시되지 않음)에 각각 제공할 수 있다. 엔티티(A)의 애플리케이션은 하나 이상의 선택된 속성(예를 들어, 여권 번호, 연봉, 계좌 잔액 등)에 대한 요청을 엔티티(B)의 애플리케이션에 송신할 수 있다. 이에 응답하여, 엔티티(B)의 애플리케이션은 하나 이상의 요청된 속성에 대한 하나 이상의 값을 생성할 수 있고, 하나 이상의 속성값으로 데이터 관리 서비스(110B)를 호출할 수 있다.
일부 실시형태에서, 데이터 관리 서비스(110B)는 각각의 속성값에 대한 증명을 생성할 수 있다. 예를 들어, 데이터 관리 서비스(110B)는 속성값의 암호화 증명을 생성할 수 있고, 증명에 암호화 증명을 포함할 수 있다. 본 발명의 양태는 이것으로 제한되지 않기 때문에, 암호화 증명은 임의의 적절한 방식으로 생성될 수 있다. 예를 들어, 일부 실시형태에서, 랜덤으로 생성된 솔트의 유무에 관계없이 암호화 해시 함수가 속성값에 적용될 수 있다.
일부 실시형태에서, 증명은 증명에서 암호화 증명을 생성하는 방식 및/또는 암호화 증명을 점검하는 방식을 나타내는 메타데이터와 같은 메타데이터의 하나 이상의 항목을 포함할 수 있다. 예를 들어, 증명은 암호화 증명을 생성하는 데 사용되는 암호화 방식(예를 들어, 암호화 해시 함수, 비대칭 암호화 시스템 등)을 식별하는 메타데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, 증명은 증명이 엔티티(B)에 의해 서명된 것임을 나타내는 메타데이터를 포함할 수 있다. 그러나, 본 발명의 양태는 증명에 임의의 특정 유형의 메타데이터를 갖는 것으로 제한되지 않고 임의의 메타데이터를 가질 수 있는 것으로 이해된다.
일부 실시형태에서, 데이터 관리 서비스(110B)는 예를 들어 엔티티(B)와 연관된 개인 키를 사용하여 증명에 서명할 수 있다. 본 발명의 양태는 이것으로 제한되지 않기 때문에 임의의 적절한 전자 서명 방식이 사용될 수 있다. 일부 실시형태에서, 엔티티(B)는 연관된 분산 원장 주소를 가질 수 있고, 이 분산 원장 주소와 연관된 개인 키는 분산 원장 클라이언트(115B)에 의해 관리될 수 있다. 데이터 관리 서비스(110B)는 분산 원장 클라이언트(115B)가 개인 키를 사용하여 속성 증명에 대한 서명을 생성하게 할 수 있다. 이러한 방식으로, 속성 증명을 점검하는 엔티티(예를 들어, 도 4의 예에서 예시적인 엔티티(C))는 엔티티(B)의 분산 원장 주소를 사용하여 분산 원장으로부터 공개 키를 조회하고, 이 공개 키를 사용하여 속성 증명에 대한 서명을 점검할 수 있다.
동작(365)에서, 데이터 관리 서비스(110B)는 하나 이상의 속성 증명을 분산 원장에 게시할 수 있다. 예를 들어, 일부 실시형태에서, 데이터 관리 서비스(110B)는 분산 원장 클라이언트(115B)가 데이터 관리 서비스(110A)로부터 동작(355)에서 수신된 분산 원장 참조를 사용하여 하나 이상의 속성 증명을 게시할 것을 요청할 수 있다. 이에 응답하여, 분산 원장 클라이언트(115B)는 하나 이상의 속성 증명을 게시할 수 있고, 각각의 이러한 속성 증명의 상태를 보류 상태로 설정할 수 있다.
동작(370)에서, 데이터 관리 서비스(110B)는 하나 이상의 속성값을 분산 원장의 외부에 있는 보안 채널을 통해 데이터 관리 서비스(110A)에 송신할 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(110B)는 분산 원장 클라이언트(115B)가 하나 이상의 속성값을 분산 원장을 통해 분산 원장 클라이언트(115A)에 송신하게 할 수 있다. 이어서 분산 원장 클라이언트(115A)는 데이터 관리 서비스(110A)에 하나 이상의 속성값을 제공할 수 있다. 하나 이상의 속성값은 예를 들어 분산 원장 클라이언트(115A)와 연관된 공개 키를 사용하여 전송을 위해 암호화될 수 있다. 일부 실시형태에서, 이 공개 키는 엔티티(A)와 연관된 분산 원장 주소를 사용하여 분산 원장으로부터 조회될 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 속성값은 엔티티(B)의 분산 원장 주소와 연관된 개인 키를 사용하여 서명될 수 있다.
일부 실시형태에서, 데이터 관리 서비스(110B)는 속성값의 암호화 증명을 점검할 때 사용하기 위한 메타데이터와 같은 관련 메타데이터를 데이터 관리 서비스(110A)에 송신할 수 있다. 예를 들어, 암호화 증명은 적절한 암호화 방식(예를 들어, 암호화 해시 함수, 비대칭 암호화 시스템 등)을 사용하여 생성되었을 수 있고, 메타데이터는 암호화 방식에 대한 입력(예를 들어, 암호화 해시 함수에 입력된 랜덤으로 생성된 솔트, 비대칭 암호화 시스템에 입력된 초기화 벡터 등)을 포함할 수 있다. 그러나, 본 발명의 양태는 임의의 특정 방식으로 암호화 증명을 생성하는 것으로 제한되지 않는 것으로 이해된다.
동작(375)에서, 데이터 관리 서비스(110A)는 수신된 속성값을 확인할 수 있다. 예를 들어, 엔티티(A)는 속성값을 검토할 것을 프롬프트 받을 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는 속성값이 엔티티(A)의 데이터 집합(도 1a의 예에서 예시적인 데이터 집합(100A))에서 하나 이상의 다른 속성값과 일치하는지 여부를 검증할 수 있다.
추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는 동작(355)에서 데이터 관리 서비스(110B)로 송신된 분산 원장 참조를 사용하여 분산 원장으로부터 대응하는 속성 증명을 조회할 수 있고, 하나 이상의 점검을 수행할 수 있다. 예를 들어, 데이터 관리 서비스(110A)는 (i) 속성 증명에 표시된 암호화 방식을 사용하여 수신된 속성값으로부터 속성 증명에 암호화 증명이 생성되었는지 및/또는 (ii) 속성 증명이 엔티티(B)의 개인 키를 사용하여 서명되었는지를 점검할 수 있다.
추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는 하나 이상의 속성값이 엔티티(B)의 개인 키를 사용하여 서명되었는지를 점검함으로써 하나 이상의 속성값을 인증할 수 있다.
일부 실시형태에서, 각각의 수신된 속성값이 성공적으로 확인되고 인증되고, 대응하는 속성 증명이 성공적으로 점검되면, 데이터 관리 서비스(110A)는 동작(380)에서 속성 증명의 상태를 유효 상태로 변경할 수 있다. 예를 들어, 데이터 관리 서비스(110A)는 분산 원장 클라이언트(115A)가 속성 증명의 상태를 유효 상태로 변경할 것을 요청할 수 있다.
구현예의 일부 세부 사항이 도 3b와 관련하여 위에서 설명되었지만, 이러한 세부 사항은 단지 예시의 목적으로 제공된 것으로 이해된다. 본 발명의 양태는 임의의 특정 구현 방식으로 제한되지 않는다. 예를 들어, 일부 실시형태에서, 분산 원장 참조는 데이터 관리 서비스(110A)로부터 데이터 관리 서비스(110B)로 송신되는 것과 반대로 데이터 관리 서비스(110B)로부터 데이터 관리 서비스(110A)로 송신될 수 있다. 분산 원장 참조는 엔티티(A)에 대해 엔티티(B)에 의해 새로이 생성된 배지를 가리킬 수 있다. 그러나, 본 발명의 양태는 배지에 속성 증명을 구성하는 것으로 제한되지 않는 것으로 이해된다.
일부 실시형태에서, 엔티티는 데이터 관리 시스템에서 다수의 역할을 할 수 있다. 예를 들어, 사용자가 은행으로부터 신용 한도를 신청할 때, 은행은 (예를 들어, 도 4의 예에서 예시적인 프로세스(400)를 통해) 신뢰받는 당사자에 의해 서명된 하나 이상의 속성 증명을 점검하는 상대방일 수 있다. 이후에 사용자가 신용 한도에서 인출할 때 은행은 사용자의 거래, 빚진 잔액, 이용 가능한 신용 등을 나열하는 월별 명세서를 발행할 수 있다. 은행은 이러한 명세서 및/또는 이 명세서에 나열된 정보에 대한 증명을 준비할 수 있으며, (예를 들어, 도 3b의 예에서 예시적인 프로세스(350)를 통해) 분산 원장에 증명을 게시할 수 있다.
본 발명자들은 도 3a 내지 도 3b 및 도 4의 예에서 예시적인 데이터 관리 서비스(110A-C)와 같은 데이터 관리 서비스를 제공할 때 다양한 문제를 인식하고 이해하였다. 예를 들어, 클라우드 서버에서 하나 이상의 데이터 관리 서비스를 실행하는 것이 보다 효율적이고/거나 보다 신뢰적일 수 있다. 그러나, 엔티티(A)는 클라우드 컴퓨팅 제공자 또는 데이터 관리 서비스(110A)의 제공자에 민감한 데이터를 노출하기를 원하지 않을 수 있다. 따라서, 속성값을 암호화된 형태로 유지하고, 속성값을 공유할 때에만 복호화하는 것이 바람직할 수 있다.
본 발명자들은 암호화 시스템의 실제 구현에서 보안이 암호화 키의 적절한 처리(예를 들어, 키 생성, 키 저장, 키 사용 등)에 의존할 수 있다는 것을 더 인식하고 이해하였다. 예를 들어, 고도로 안전한 기술(예를 들어, 256 비트 키를 갖는 AES)을 사용하여 민감한 데이터를 암호화할 수 있지만 이러한 암호화는 공격자가 키에 쉽게 액세스할 수 있는 경우 거의 보호를 제공할 수 없다.
도 5는 일부 실시형태에 따른 예시적인 데이터 관리 시스템(500)을 도시한다. 예를 들어, 데이터 관리 시스템(500)은 보안 하드웨어(505)뿐만 아니라, 도 1b의 예에서 예시적인 데이터 관리 서비스(110A)를 포함할 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 시스템(500)은 도 1a의 예에서 예시적인 엔티티(A)에 의해 사용될 수 있는 클라이언트 디바이스(510)와 통신할 수 있다.
일부 실시형태에서, 보안 하드웨어(505)는 암호화 키의 보안 처리를 제공하도록 구성될 수 있다. 예를 들어, 보안 하드웨어(505)는 변조 검출(예를 들어, 변조의 결과로 인한 비가역적 물리적 변화), 변조 저항(예를 들어, 변조 방지 하우징), 변조 응답(예를 들어, 변조 검출 시 암호화 키의 삭제), 및/또는 기타 보안 기능을 제공하도록 구성될 수 있다. 추가적으로 또는 대안적으로, 보안 하드웨어(505)는 암호화, 복호화 및/또는 다른 암호화 동작을 수행하도록 구성될 수 있다.
일부 실시형태에서, 데이터 관리 시스템(500)은 클라이언트 디바이스(510)로부터 민감한 데이터를 수신할 수 있다. 예를 들어, 데이터 관리 서비스(110A)는 클라이언트 디바이스로부터 엔티티(A)의 하나 이상의 속성값을 수신하고, 엔티티(A)를 대신하여 하나 이상의 속성값을 관리할 수 있다. 하나 이상의 속성값은 암호화된 형태로 수신될 수 있고, 데이터 관리 서비스(110A)에 의해 사용되는 저장 매체에 암호화된 상태로 남아있을 수 있다.
도 5는 일부 실시형태에 따라 데이터 관리 시스템(500)과 클라이언트 디바이스(510) 간에 수행될 수 있는 예시적인 프로세스(515)를 도시한다. 프로세스(515)는 엔티티(A)가 데이터 관리 서비스(110A)에 하나 이상의 속성값을 송신하기를 원할 때, 예를 들어, (예를 들어, 도 3a의 예와 관련하여 본 명세서에 설명된 바와 같이) 신뢰받는 당사자에 의해 검증 및/또는 증명되고/되거나 (예를 들어, 도 4의 예와 관련하여 본 명세서에 설명된 바와 같이) 상대방과 공유하기를 원할 때 개시될 수 있다.
동작(520)에서, 클라이언트 디바이스(510)와 데이터 관리 서비스(110A)는 서로를 인증할 수 있다. 임의의 적절한 인증 기술을 사용할 수 있다. 예를 들어, 클라이언트 디바이스(510)는 클라이언트 디바이스(510)가 (예를 들어, 하나 이상의 거래를 게시함으로써) 엔티티(A)의 분산 원장 주소와 연관된 개인 키를 소유하고 있음을 데이터 관리 서비스(110A)에 제시할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(510)는 클라이언트 디바이스(510)가 이전에 수립된 키 쌍(예를 들어, 엔티티(A)가 클라이언트 디바이스(510)를 데이터 관리 서비스(110A)에 등록할 때 수립된 키 쌍)의 개인 키를 소유하고 있음을 데이터 관리 서비스(110A)에 제시할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(510)와 데이터 관리 서비스(110A)는 패스워드, 지문, 물리적으로 복제 불가능한 기능(physical unclonable function: PUF) 등과 같은 하나 이상의 요인에 기초하여 인증 프로토콜에 참여할 수 있다.
일부 실시형태에서, 데이터 관리 서비스(110A)는 데이터 관리 서비스(110A)가 (예를 들어, 하나 이상의 거래를 게시함으로써) 엔티티(A)의 분산 원장 주소와 연관된 개인 키를 소유하고 있음을 클라이언트 디바이스(510)에 제시할 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는 데이터 관리 서비스(110A)가 인증 기관에 의해 서명된 인증서에 포함된 공개 키에 대응하는 개인 키를 소유하고 있음을 클라이언트 디바이스(510)에 제시할 수 있다.
일부 실시형태에서, 클라이언트 디바이스(510)와 데이터 관리 서비스(110A)는 성공적인 인증 시에 보안 통신 채널을 수립할 수 있다. 예를 들어, 이 채널을 통해 전송된 메시지는 각 송신자에 의해 암호화 및/또는 서명될 수 있다. 일부 실시형태에서, 전송 계층 보안(TLS: Transport Layer Security) 프로토콜은 기밀성(예를 들어, 대칭 암호화를 위한 공유 키를 수립함으로써), 무결성(예를 들어, 메시지 인증 코드를 통해), 및/또는 하나 이상의 다른 보안 특성을 제공하는 데 사용될 수 있다.
일부 실시형태에서, 클라이언트 디바이스(510)와 데이터 관리 서비스(110A)는 보안 채널을 사용하여 하나 이상의 키를 전송할 수 있다. 예를 들어, 데이터 관리 서비스(110A)는 보안 하드웨어(505)와 연관된 키 쌍의 공개 키를 클라이언트 디바이스(510)에 송신할 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는 적절한 공개 키 인프라(PKI)로부터 보안 하드웨어(505)의 공개 키를 조회하기 위해 클라이언트 디바이스(510)에 의해 사용될 수 있는 식별자를 클라이언트 디바이스(510)에 송신할 수 있다. 일부 실시형태에서, PKI는 분산 원장을 통해 제공될 수 있고, 식별자는 보안 하드웨어(505)와 연관된 분산 원장 주소일 수 있다.
동작(525)에서, 클라이언트 디바이스(510)는 데이터 관리 서비스(110A)로 송신될 하나 이상의 속성값을 암호화할 수 있다. 일부 실시형태에서, 클라이언트 디바이스(510)는 (예를 들어, 도 4의 예와 관련하여 본 명세서에 설명된 바와 같이) 상대방으로부터의 요청에 기초하여 하나 이상의 속성값을 선택할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(510)는 엔티티(A)로부터의 입력에 기초하여 하나 이상의 속성값을 선택할 수 있다.
하나 이상의 속성값은 임의의 적절한 방식으로 암호화될 수 있다. 예를 들어, 하나 이상의 속성값은 하이브리드 암호화 방식을 사용하여 암호화될 수 있으며, 여기서 비대칭 암호화 시스템은 대칭 암호화 시스템을 사용하여 하나 이상의 속성값을 암호화하는 데 사용될 수 있는 공유 비밀을 수립하는 데 사용될 수 있다. 비대칭 암호 시스템의 예로는 이산 로그(discrete logarithm)(예를 들어, ElGamal)에 기반한 암호 시스템, 결정 합성 수 잉여법(decisional composite residuosity)에 기반한 암호 시스템(예를 들어, Paillier), 인수 분해에 기반한 암호 시스템(예를 들어, RSA) 등을 포함하지만 이들로 제한되지 않는다. 대칭 암호화 시스템의 예로는 고급 암호화 표준(AES), 트리플 데이터 암호화 표준(3DES) 등을 포함하지만 이들로 제한되지 않는다. 그러나, 본 발명의 양태는 임의의 특정 비대칭 또는 대칭 암호화 시스템을 사용하는 것으로 제한되지 않는 것으로 이해된다.
일부 실시형태에서, 이산 로그 통합 암호화 방식(DL-IES) 또는 타원 곡선 통합 암호화 방식(EC-IES)과 같은 통합 암호화 방식이 사용될 수 있다. 통합 암호화 방식은 비대칭 키 합의 프로토콜을 사용하여 메시지를 암호화할 때 사용할 대칭 키를 수립할 수 있다. 예를 들어, 클라이언트 디바이스(510)는 새로운 개인 랜덤 값 및 대응하는 공개 랜덤 값을 생성할 수 있다. 클라이언트 디바이스(510)는, 공개 랜덤 값을 보안 하드웨어(505)의 개인 키와 결합시킴으로써 동일한 공유 비밀을 복구할 수 있는 방식으로, 개인 랜덤 값을 보안 하드웨어(505)의 공개 키와 결합시켜 공유 비밀을 획득할 수 있다. 클라이언트 디바이스(510)는 공유 비밀을 사용하여 대칭 키를 생성할 수 있으며, 이는 하나 이상의 속성값을 암호화하는 데 사용될 수 있다.
일부 실시형태에서, 키 합의 프로토콜은 정수 모듈로 소수(p)의 그룹에 기초할 수 있으며, 여기서 개인 랜덤 값은 (예를 들어, 실제 난수 생성기 및/또는 의사-난수 생성기를 사용하여) 랜덤으로 선택된 값(x)일 수 있고, 공개 랜덤 값은 gx일 수 있고, 여기서 g는 (곱셈으로 작성된) 그룹의 생성기이다. 보안 하드웨어(505)의 개인 키는 (예를 들어, 실제 난수 생성기 및/또는 의사-난수 생성기를 사용하여) 랜덤으로 선택된 값(y)일 수 있고, 보안 하드웨어(505)의 공개 키는 gy일 수 있다. 공유 비밀은 (gx)y =(gy)x일 수 있다.
일부 실시형태에서, 키 합의 프로토콜은 타원 곡선 상의 점의 그룹에 기초할 수 있으며, 여기서 개인 랜덤 값은 (예를 들어, 실제 난수 생성기 및/또는 의사-난수 생성기를 사용하여) 랜덤으로 선택된 값(x)일 수 있고, 공개 랜덤 값은 xG일 수 있으며, 여기서 G는 (덧셈으로 작성된) 그룹의 생성기이다. 보안 하드웨어(505)의 개인 키는 (예를 들어, 실제 난수 생성기 및/또는 의사 난수 생성기를 사용하여) 랜덤으로 선택된 값(y)일 수 있고, 보안 하드웨어(505)의 공개 키는 yG일 수 있다. 공유 비밀은 y(xG) = x(yG)일 수 있다.
동작(530)에서, 클라이언트 디바이스(510)는 하나 이상의 속성값 및/또는 하나 이상의 연관된 공개 랜덤 값을 데이터 관리 서비스(110A)로 송신할 수 있다. 일부 실시형태에서, 하나 이상의 속성값 및/또는 하나 이상의 연관된 공개 랜덤 값은 엔티티(A)의 분산 원장 주소와 연관된 개인 키, 및/또는 클라이언트 디바이스(510)에 대해 이전에 수립된 키 쌍의 개인 키를 사용하여 서명될 수 있다. 하나 이상의 결과 서명이 또한 데이터 관리 서비스(110A)로 송신될 수 있다.
동작(535)에서, 데이터 관리 서비스(110A)는 하나 이상의 속성값 및/또는 하나 이상의 연관된 공개 랜덤 값을 저장할 수 있다. 일부 실시형태에서, 하나 이상의 속성값은 암호화된 형태로 송신될 수 있고, 데이터 관리 서비스(110A)는 하나 이상의 속성값이 암호화된 형태로 저장될 수 있도록 복호화하지 않을 수 있다.
추가적으로 또는 대안적으로, 데이터 관리 서비스(110A)는, 예를 들어, 엔티티(A)의 분산 원장 주소와 연관된 공개 키 및/또는 클라이언트 디바이스(510)에 대해 이전에 수립된 키 쌍의 공개 키를 사용하여 하나 이상의 서명을 점검함으로써, 하나 이상의 속성값 및/또는 하나 이상의 연관된 공개 랜덤 값을 인증할 수 있다.
동작(540)에서, 클라이언트 디바이스(510)는 하나 이상의 속성값을 다른 엔티티와 공유하라는 요청을 데이터 관리 서비스(110A)에 송신할 수 있다. 일례로서, 엔티티(A)는 (예를 들어, 도 3a의 예와 관련하여 본 명세서에 설명된 바와 같이) 신뢰받는 당사자에 의해 검증 및/또는 증명되는 하나 이상의 속성값을 갖기를 원할 수 있다. 다른 예로서, 엔티티(A)는 상대방으로부터 서비스를 획득하기를 원할 수 있고, 상대방은 (예를 들어, 도 4의 예와 관련하여 본 명세서에 설명된 바와 같이) 하나 이상의 속성값을 요청할 수 있다.
동작(545)에서, 데이터 관리 서비스(110A)는 동작(540)에서 수신된 요청에 응답하여 엔티티(A)와 기타 엔티티가 신뢰 관계에 있는지 여부를 확인할 수 있다. 예를 들어, 엔티티(A)는 분산 원장에 데이터 구조를 게시하여 엔티티(A)가 선택한 데이터를 다른 엔티티와 공유하기를 원한다는 것을 나타낼 수 있다. 일부 실시형태에서, 데이터 구조는 공유할 하나 이상의 속성값에 각각 대응할 수 있는 하나 이상의 증명을 저장하는 배지를 포함할 수 있다. 배지는 다른 엔티티가 하나 이상의 속성값을 검증 및/또는 증명할 책임이 있는 신뢰받는 당사자로서 지정되거나 또는 엔티티(A)가 하나 이상의 속성값을 공유하기를 원하는 상대방이라는 표시를 포함할 수 있다. 데이터 관리 서비스(110A)는 분산 원장으로부터 배지에 액세스할 수 있고, 배지의 정보를 사용하여 엔티티(A)와 기타 엔티티가 실제로 신뢰 관계에 있음을 확인할 수 있다.
데이터 관리 서비스(110A)가 동작(545)에서 엔티티(A)와 기타 엔티티가 신뢰 관계에 있음을 확인하면, 데이터 관리 서비스(110A)는 동작(550)으로 진행할 수 있고, 기타 엔티티와 하나 이상의 속성값의 공유를 승인할 수 있다. 예를 들어, 데이터 관리 서비스(110A)는 보안 하드웨어(505)가 저장 매체로부터 여전히 암호화되었을 수 있는, 하나 이상의 속성값 및/또는 하나 이상의 연관된 공개 랜덤 값을 검색하게 할 수 있다.
동작(555)에서, 보안 하드웨어(505)는 하나 이상의 속성값을 복호화할 수 있다. 예를 들어, 보안 하드웨어(505)는 보안 하드웨어(505)의 개인 키 및 하나 이상의 연관된 공개 랜덤 값을 사용하여 공유된 비밀을 복구할 수 있다. 보안 하드웨어는 공유 비밀을 사용하여 하나 이상의 속성값을 복호화할 때 사용할 대칭 키를 생성할 수 있다.
동작(560)에서, 보안 하드웨어(505)는 하나 이상의 속성값을 재 암호화할 수 있다. 예를 들어, 보안 하드웨어(505)는, 클라이언트 디바이스(510)에 의해 사용되지만, 하나 이상의 새로 생성된 공개 및 개인 랜덤 값 쌍을 갖는 동일한 통합 암호화 방식을 사용할 수 있다. 그러나, 임의의 적절한 암호화 방식이 추가적으로 또는 대안적으로 사용될 수 있는 것으로 이해된다.
일부 실시형태에서, 보안 하드웨어(505)는 다른 엔티티와 연관된 하나 이상의 키를 사용하여 하나 이상의 속성값을 재암호화할 수 있다. 예를 들어, 보안 하드웨어(505)는 통합 암호화 방식에서 다른 엔티티의 분산 원장 주소와 연관된 공개 키를 사용할 수 있다. 따라서, 이 공개 키는 분산 원장 거래에 서명하기 위해 다른 엔티티에 의해 사용되는 개인 키에 대응할 수 있다. 그러나, 임의의 적절한 PKI가 사용될 수 있기 때문에, 본 발명의 양태는 PKI를 제공하기 위해 분산 원장을 사용하는 것으로 제한되지 않는 것으로 이해된다.
추가적으로 또는 대안적으로, 보안 하드웨어(505)는 엔티티(A)와 연관된 하나 이상의 키(예를 들어, 분산 원장 거래에 서명하기 위해 엔티티(A)에 의해 사용되는 엔티티(A)의 분산 원장 주소의 개인 키)를 사용하여 하나 이상의 속성값에 서명할 수 있다.
일단 재암호화 및/또는 서명되면, 하나 이상의 속성값이 (예를 들어, 도 3a의 예 또는 도 4의 예에서 설명된 바와 같이) 다른 엔티티로 송신될 수 있다.
구현예의 일부 세부 사항이 도 5와 관련하여 위에서 설명되었지만, 이러한 세부 사항은 단지 예시의 목적으로 제공되는 것으로 이해된다. 본 발명의 양태는 임의의 특정 구현 방식으로 제한되지 않는다. 예를 들어, 보안 하드웨어(505)는 다수의 키 쌍을 유지할 수 있으며, 여기서 각각의 키 쌍은 각각의 엔티티 및/또는 각각의 디바이스에 대응할 수 있다. 따라서 동작(525)에서 사용되는 공개 키는 엔티티(A) 및/또는 클라이언트 디바이스(510)에 대해 보안 하드웨어에 의해 유지되는 공개 키일 수 있다.
일부 실시형태에서, 예시적인 프로세스(515)와 유사한 프로세스는, 엔티티(B)가 (예를 들어, 도 3b의 예에서 동작(360)과 관련하여 전술한 바와 같이) 속성값을 발행할 때, 예시적인 엔티티(B)의 디바이스와 예시적인 데이터 관리 서비스(110B) 간에 수행될 수 있다.
일부 실시형태에서, 데이터 관리 시스템은 디지털 자산의 암호화 키를 관리하기 위한 보관 키 서비스를 제공하는 데 사용될 수 있다. 디지털 자산의 예는 암호 화폐 및 토큰을 포함하지만 이들로 제한되지 않는다. 이러한 디지털 자산은 대응하는 암호화 키(예를 들어, 비대칭 암호 시스템을 위한 키 쌍 중 개인 키)를 사용하여 액세스될 수 있다.
본 발명자들은 암호화 키가 임의의 높은 값을 갖는 디지털 자산에 대응할 수 있으므로 디지털 자산의 암호화 키를 보호하는 것이 바람직할 수 있음을 인식하고 이해하였다. 지폐 분실과 유사하게 (예를 들어, 하드웨어 메모리 장애로 인해) 암호화 키를 분실하면 복구가 불가능할 수 있다. 또한 해커가 암호화 키를 훼손하면, 해커는 대응하는 디지털 자산을 해커가 제어하는 하나 이상의 다른 암호화 키로 양도할 수 있다. 완전히 분산된 시스템에서는 이러한 무단 양도할 의지가 없을 수 있다.
일부 디지털 자산 시스템에서 디지털 자산의 소유자는 암호화 키를 관리하는 일을 부과받을 수 있다. 기술에 정통한 소유자는 하드웨어 및/또는 소프트웨어 지갑을 사용하여 암호화 키를 저장할 수 있다. 이러한 메커니즘은 다양한 보안 수준을 제공할 수 있으며, 더 많은 대중이 채택하기에는 너무 복잡할 수 있다.
일부 경우에, 중앙 집중식 거래소는 암호화 키를 저장하고 이들 간에 디지털 자산을 양도하는 데 사용될 수 있다. 이러한 교환소는 사용자 경험을 향상시킬 수 있지만 이는 덜 바람직한 양태일 수 있다. 예를 들어, 중앙 집중식 거래소의 사용자는 거래소의 운영자가 신뢰할 수 있다고 믿을 수 있다. 또한, 거래소 운영자가 신뢰할 수 있다고 하더라도 거래소가 해킹에 취약할 수 있다. 최악의 경우 해커가 거래소를 해킹하여 거래소에서 처리되는 모든 디지털 자산을 훔칠 수 있다.
일부 거래소는 디지털 자산을 풀링(pooling)함으로써 위험을 완화하려고 시도할 수 있다. 예를 들어, 사용자(A)와 사용자(B)의 디지털 자산을 풀링할 수 있고, 이에 거래소에서 적절한 계좌를 관리하며, 사용자(A)의 디지털 자산을 사용하여 사용자(B)를 대신하여 지불할 수 있고 그 반대도 마찬가지일 수 있다. 이러한 방식으로, 적은 수의 암호화 키만이 한 번에 액세스할 수 있는 반면, 다른 암호화 키는 임의의 네트워크에 연결되지 않은 저장 디바이스(예를 들어, 안전 금고의 저장 디바이스)에 보관될 수 있다.
본 발명자들은 일부 암호화 키를 오프라인으로 유지하면 모든 암호화 키가 손상될 위험을 줄일 수 있지만, 오프라인 암호화 키는 설계 상 제한된 이용 가능성을 가질 수 있음을 인식하고 이해하였다. 따라서, 이러한 솔루션은 특정 키(예를 들어, 각 신원에 대응하고 거래 서명에 사용되는 키)에 준비된 액세스가 바람직할 수 있는 사용 사례에 적합하지 않을 수 있다.
따라서, 일부 실시형태에서, 디지털 자산의 암호화 키를 관리하기 위한 개선된 기술이 제공될 수 있다. 예를 들어, 디지털 자산의 소유자를 위한 디지털 자산의 암호화 키를 저장할 수 있는 보관 키 서비스가 제공될 수 있다. 자산 소유자가 자산 수령자에 디지털 자산을 양도하기를 원하는 경우 자산 소유자는 보관 키 서비스에 양도 요청을 제출할 수 있다.
일부 실시형태에서, 디지털 자산에 관한 양도 요청을 수신하면, 보관 키 서비스는 이 엔티티가 실제로 디지털 자산의 소유자임을 확인하기 위해 양도 요청을 송신한 엔티티의 신원을 점검할 수 있다. 추가적으로 또는 대안적으로, 보관 키 서비스는 양도 요청에 표시된 자산 수령자의 신원을 점검할 수 있다. 양도 요청이 점검되면, 보관 키 서비스는 디지털 자산의 암호화 키를 사용하여 양도 요청에 서명할 수 있다. 이러한 방식으로, 자산 소유자는 암호화 키를 직접 처리하지 않고 양도를 승인할 수 있다.
일부 실시형태에서, 디지털 자산은 다수의 암호화 키와 연관될 수 있다. 예를 들어, 디지털 자산은 M개의 다른 키와 연관될 수 있으며, 여기서 M개의 키 중 적어도 N개(N ≤ M)가 디지털 자산에 액세스하는 데 필요할 수 있다. 따라서, 일부 실시형태에서, 디지털 자산의 M개의 암호화 키 중 하나를 각각 저장하는 다수의 보관 키 서비스가 제공될 수 있다. 일례로서, M개의 보관 키 서비스가 있을 수 있다. 다른 예로서, M-1개의 보관 키 서비스가 있을 수 있고, 반면 디지털 자산의 소유자는 M개의 키 중 하나를 보유할 수 있다. 임계값(N)이 M(즉, N = M)인 것으로 설정된 경우, 소유자의 승인과 M-1개의 보관 키 서비스 모두가 양도를 실행하는 데 요구될 수 있다.
일부 실시형태에서, 자산 소유자가 디지털 자산을 자산 수령자에 양도하기를 원하는 경우, 자산 소유자는 적어도 N개의 보관 키 서비스에 양도 요청을 제출할 수 있다. 양도 요청을 수신하면, 각 보관 키 서비스는 양도 요청을 송신한 엔티티의 신원을 점검하여 이 엔티티가 실제로 자산 소유자인지 확인할 수 있다. 추가적으로 또는 대안적으로, 각 보관 키 서비스는 자산 수령자의 신원을 점검할 수 있다. 양도 요청이 점검되면, 보관 키 서비스는 디지털 자산의 대응하는 암호화 키를 사용하여 양도 요청에 서명할 수 있다.
이러한 방식으로, 해커가 적어도 N개의 보관 키 서비스를 성공적으로 손상시키지 않는 한, 해커는 무단 양도를 수행할 수 없어서, 디지털 자산의 보안을 개선할 수 있다. 또한, M보다 엄격히 더 작은 임계값(N)을 선택함으로써 여분이 제공될 수 있고, 이에 (예를 들어, 네트워크 장애로 인해) 하나 이상의 보관 키 서비스를 이용할 수 없는 경우에도 N개의 서명이 가능할 수 있다. 그러나, 본 발명의 양태는 다수의 보관 키 서비스를 갖는 것으로 제한되지 않고, 임의의 특정 임계값을 갖는 것으로 제한되지 않는다는 것으로 이해된다. 일부 실시형태에서, 단 하나의 보관 키 서비스만이 있을 수 있다. 추가적으로 또는 대안적으로, 임계값(N)은 1로 설정될 수 있고, 이에 단 하나의 보관 키 서비스만이 사용될 수 있다.
본 발명자들은 디지털 자산과 연관된 하나 이상의 양도 제한을 시행하기 위해 보관 키 서비스가 사용될 수 있음을 추가로 인식하고 이해하였다. 예를 들어, 자산 소유자의 신원 및/또는 자산 수령자의 신원을 점검하는 것에 더하여 또는 이 대신에, 보관 키 서비스는 블랙리스트 및/또는 화이트리스트를 점검하여 제안된 양도를 진행하는 것이 허용되는지를 확인할 수 있다. 예를 들어, 블랙리스트(또는 화이트리스트)는 소유자, 수령자 및/또는 양도가 금지된(또는 허용된) 특정 자산을 나타낼 수 있다. 추가적으로 또는 대안적으로, 보관 키 서비스는 제안된 양도가 규정을 준수하는지를 확인하기 위해 하나 이상의 정부 및/또는 기타 규정에 따라 하나 이상의 점검을 수행할 수 있다. 규정의 예로는 자금 세탁 방지(anti-money-laundering: AML) 규정을 포함하지만 이로 제한되지 않는다.
도 6은 일부 실시형태에 따른 예시적인 데이터 집합(600A-C)을 도시한다. 데이터 집합(600A)은 양도될 하나 이상의 디지털 자산을 현재 보유하고 있는 엔티티일 수 있는 자산 소유자와 연관될 수 있다. 데이터 집합(600B)은 하나 이상의 디지털 자산이 양도되는 엔티티일 수 있는 자산 수령자와 연관될 수 있다. 데이터 집합(600C)은 보관 키 서비스를 제공하는 엔티티일 수 있는 보관자와 연관될 수 있다.
일부 실시형태에서, 자산 소유자, 자산 수령자 및/또는 보관자는 분산 원장을 집합적으로 유지하는 노드의 네트워크에서 하나 이상의 노드와 연관될 수 있다. 예를 들어, 데이터 집합(600A-C)은 각각 분산 원장 상태(605A-C)를 포함할 수 있고, 하나 이상의 연관된 네트워크 노드는 분산 원장 상태(605A-C)를 동기화하기 위해 프로토콜에 참여할 수 있다. 이러한 방식으로, 엔티티는 민감하지 않은 데이터를 각각의 분산 원장 상태의 일부로서 저장함으로써 분산 원장에 민감하지 않은 데이터(예를 들어, 민감한 데이터의 해시)를 게시할 수 있다.
본 발명의 양태는 분산 원장 상태를 임의의 특정 방식으로 유지하는 것으로 제한되지 않고 전혀 유지하지 않을 수 있는 것으로 이해된다. 예를 들어, 일부 실시형태에서, 자산 소유자, 자산 수령자 및/또는 보관자는 분산 원장 상태를 유지하지 않고 연관된 네트워크 노드를 통해 분산 원장에 액세스할 수 있다. 추가적으로 또는 대안적으로, 분산 원장 상태는 적절한 방식으로 (예를 들어, 적절한 교차 원장 참조 방식을 사용하여) 링크된 다수의 분산 원장의 상태 정보를 포함할 수 있다.
도 6에 도시되지는 않았지만, 데이터 집합(600A-C)은 일부 실시형태에서 도 1b의 예에서 예시적인 데이터 관리 서비스(110A-B)와 유사한 각각의 데이터 관리 서비스에 의해 관리될 수 있다. 추가적으로 또는 대안적으로, 분산 원장 상태(605A-C)는 도 1b의 예에서 예시적인 분산 원장 클라이언트(115A-B)와 유사한 각각의 분산 원장 클라이언트(도 6에 도시되지 않음)에 의해 관리될 수 있다.
일부 실시형태에서, 자산 소유자와 자산 수령자는 각각의 애플리케이션(도 6에 도시되지 않음)을 통해 거래에 참여할 수 있다. 애플리케이션은 자산 소유자와 자산 수령자의 데이터 관리 서비스에 의해 제공되는 애플리케이션 프로그래밍 인터페이스를 각각 호출할 수 있다. 이어서 데이터 관리 서비스는 (예를 들어, 종단 간 암호화를 사용하여) 보안 채널을 통해 서로 통신하며 데이터 집합(600A-B) 간에 선택적인 데이터 공유를 실현할 수 있다.
일부 실시형태에서, 자산 소유자의 데이터 관리 서비스는 (예를 들어, 종단 간 암호화를 사용하여) 보안 채널을 통해 보관자의 데이터 관리 서비스와 통신하며 데이터 집합(600A 및 600C) 간에 선택적인 데이터 공유를 실행할 수 있다. 예를 들어, 자산 소유자의 데이터 관리 서비스는 하나 이상의 디지털 자산을 자산 수령자에 양도하라는 요청을 개시할 수 있다. 이러한 요청을 수신하면, 보관자의 데이터 관리 서비스는 자산 소유자의 신원 점검, 자산 수령자의 신원 점검, 및/또는 하나 이상의 디지털 자산 양도 제한의 준수 검증과 같은 하나 이상의 점검을 수행할 수 있다. 하나 이상의 점검이 성공하면, 보관자의 데이터 관리 서비스는 하나 이상의 디지털 자산과 연관된 하나 이상의 암호화 키를 사용하여 제안된 양도를 승인할 수 있다.
일부 실시형태에서, 보관자의 데이터 관리 서비스는 자산 수령자의 데이터 관리 서비스와 직접 상호 작용하지 않을 수 있다. 대신에, 보관자의 데이터 관리 서비스는 자산 소유자의 데이터 관리 서비스로부터 수신된 정보에 기초하여 자산 수령자의 신원을 점검할 수 있다.
단 하나의 보관자만이 도 6에 도시되어 있지만, 본 발명의 양태는 이것으로 제한되지 않는 것으로 이해된다. 일부 실시형태에서, M개의 보관자가 있을 수 있으며, 이 중 N개는 하나 이상의 디지털 자산의 양도를 승인할 것을 요청받을 수 있다. 또한 임의의 적절한 엔티티는 보관 키 서비스를 제공할 수 있고, 보관 키 서비스는 하나 이상의 컴퓨터를 사용하여 임의의 적절한 방식으로 구현될 수 있는 것으로 이해된다. 예를 들어, 일부 실시형태에서, 보관 키 서비스는 하나 이상의 디지털 자산 양도 제한을 자동으로 시행하기 위한 프로그램 로직을 포함할 수 있다. 이러한 양도 제한은 프로그램 로직 자체에 하드 코딩될 수 있다. 추가적으로 또는 대안적으로, 프로그램 로직은, 실행될 때, (예를 들어, 제안된 양도의 하나 이상의 특성을 사용하여 양도 제한의 하나 이상의 데이터베이스를 검색함으로써) 적절한 소스로부터 적용 가능한 양도 제한에 액세스할 수 있다.
도 7은 일부 실시형태에 따른 예시적인 데이터 관리 서비스(700A-C)를 도시한다. 데이터 관리 서비스(700A-C)는 자산 소유자, 자산 수령자 및 보관자와 각각 연관될 수 있다. 예를 들어, 데이터 관리 서비스(700A-C)는 도 6의 예에서 예시적인 데이터 집합(600A-C)을 각각 관리할 수 있다. 각각의 데이터 관리 서비스(700A-C)는 예를 들어 '643 출원에서 설명된 바와 같이 및/또는 본 명세서에서 설명된 바와 같이 임의의 적절한 방식으로 구현될 수 있다.
일부 실시형태에서, 데이터 관리 서비스(700A-C)는 예를 들어 도 6과 관련하여 설명된 바와 같이, 자산 소유자로부터 자산 수령자로 하나 이상의 디지털 자산을 양도하기 위한 프로세스에 참여할 수 있다. 이러한 프로세스의 일례가 도 7에 도시되어 있다.
동작(705)에서, 자산 소유자의 데이터 관리 서비스(700A)는 자산 수령자의 하나 이상의 속성 증명을 점검하기 위해 상대방 점검을 개시할 수 있다. 추가적으로 또는 대안적으로, 자산 수령자의 데이터 관리 서비스(700B)는 자산 소유자의 하나 이상의 속성 증명을 점검하기 위해 상대방 점검을 개시할 수 있다.
자산 소유자의 데이터 관리 서비스(700A)는 자산 수령자의 하나 이상의 속성 증명의 임의의 적절한 세트를 점검할 수 있다. 예를 들어, 자산 소유자(도 7에 도시되지 않음)의 애플리케이션은 자산 수령자(도 7에 도시되지 않음)의 애플리케이션과 통신하며 자산 수령자가 적절한 형태의 식별자(예를 들어, 여권, 운전 면허증, 신용 카드 등)를 제공할 것을 요청할 수 있다. 이를 통해 자산 소유자는 하나 이상의 디지털 자산을 자산 수령자에 양도하는 것이 정부 또는 기타 규정(예를 들어, AML 규정)을 위반하지 않는지를 확인할 수 있다.
일부 실시형태에서, 자산 수령자의 애플리케이션은 데이터 관리 서비스(700B)에 의해 제공되는 애플리케이션 프로그래밍 인터페이스를 호출할 수 있고, 이 데이터 관리 서비스(700B)는 이에 응답하여 (예를 들어, 종단 간 암호화를 사용하여) 데이터 관리 서비스(700A)와 보안 통신 채널을 수립할 수 있다. 데이터 관리 서비스(700B)는 보안 통신 채널을 사용하여 하나 이상의 요청된 속성값을 데이터 관리 서비스(700A)에 송신할 수 있다. 예를 들어, 요청된 식별 형태가 여권을 포함하는 경우, 데이터 관리 서비스(700B)는 여권의 사진 페이지의 이미지, 여권에서 읽은 코드(예를 들어, QR 코드, 바코드, 등), 이름, 생년월일, 발행일, 만료일 등과 같은 하나 이상의 정보 항목을 송신할 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(700B)는 하나 이상의 항목이 검색될 수 있는 위치에 대한 하나 이상의 포인터를 송신할 수 있다.
일부 실시형태에서, 데이터 관리 서비스(700B)는 디지털 자산이 송신될 분산 원장 주소를 데이터 관리 서비스(700A)로 송신할 수 있다. 이러한 분산 원장 주소는 독립적인 식별 형태(예를 들어, 여권, 운전 면허증, 신용 카드 등)로부터 하나 이상의 정보 항목에 추가하여 또는 이 대신에 정보 항목으로 송신될 수 있다.
일부 실시형태에서, 데이터 관리 서비스(700B)에 의해 송신된 각 정보 항목은 대응하는 증명과 함께 별도의 속성값으로 처리될 수 있다. 그러나, 본 발명의 양태는 임의의 특정 입도로 속성값을 제공하는 것으로 제한되지 않는 것으로 이해된다. 일부 실시형태에서, 다수의 항목의 세트는 단일 속성값으로 처리될 수 있고, 따라서 단일 증명에 대응할 수 있다.
그런 다음, 상대방 점검은 예를 들어 '643 출원에 설명된 바와 같이 및/또는 도 4의 예와 관련하여 본 명세서에 설명된 바와 같이 임의의 적절한 방식으로 진행될 수 있다. 예를 들어, 일부 실시형태에서, 데이터 관리 서비스(700B)는 분산 원장에 저장된 스마트 계약(예를 들어, '643 출원에 설명된 디지털 신원 표현)에 대한 포인터를 데이터 관리 서비스(700A)에 송신할 수 있다. 스마트 계약은 배지로 구성될 수 있는 하나 이상의 속성 증명을 관리하도록 프로그래밍될 수 있다. 그러나, 본 발명의 양태는 스마트 계약 또는 배지를 사용하는 것으로 제한되지 않는 것으로 이해된다.
일부 실시형태에서, 데이터 관리 서비스(700A)는 데이터 관리 서비스(700B)로부터 수신된 포인터를 사용하여 분산 원장으로부터 (예를 들어, 도 6과 관련하여 위에서 설명된 예시적인 분산 원장 상태(605A)로부터) 하나 이상의 속성 증명에 액세스할 수 있다. 그런 다음 데이터 관리 서비스(700A)는 분산 원장으로부터 액세스된 하나 이상의 각각의 증명에 대해 하나 이상의 수신된 속성값(예를 들어, 여권 사진 페이지, 분산 원장 주소 등)을 점검할 수 있다.
일부 실시형태에서, 데이터 관리 서비스(700B)는 자산 수령자가 하나 이상의 속성 증명을 관리하는 스마트 계약을 제어한다는 증명을 데이터 관리 서비스(700A)에 송신할 수 있다. 예를 들어, 일부 실시형태에서 증명은 스마트 계약을 제어하는 개인 키를 사용하여 서명된 메시지를 포함할 수 있다. 이러한 서명은 분산 원장으로부터 스마트 계약과 연관된 공개 키를 조회하고, 이 공개 키를 사용하여 서명을 점검함으로써 검증될 수 있다.
일부 실시형태에서, 데이터 관리 서비스(700B)는 데이터 관리 서비스(700A)에 의해 수행되는 상대방 점검과 유사한 상대방 점검을 수행할 수 있다. 이를 통해 자산 수령자는 자산 소유자로부터 하나 이상의 디지털 자산을 양도하는 것이 정부 또는 기타 규정(예를 들어, AML 규정)을 위반하지 않는지를 확인할 수 있다. 그러나, 본 발명의 양태는 상대방 점검을 임의의 특정 방식으로 수행하는 것으로 제한되지 않고 임의의 상대방 점검을 수행하는 것으로 전혀 제한되지 않는 것으로 이해된다.
도 7로 돌아가서, 데이터 관리 서비스(700A)에 의해 수행된 상대방 점검이 성공하면, 데이터 관리 서비스(700A)는 동작(710)에서 하나 이상의 보관자에게 양도 요청을 제출할 수 있다. 예를 들어, 데이터 관리 서비스(700A)는 (예를 들어, 종단 간 암호화를 사용하여) 데이터 관리 서비스(700C)와 보안 통신 채널을 수립할 수 있고, 보안 채널을 사용하여 데이터 관리 서비스(700C)에 양도 요청을 송신할 수 있다.
일부 실시형태에서, 양도 요청은 양도될 하나 이상의 디지털 자산이 현재 보유된 분산 원장 주소(예를 들어, FROM 계좌), 양도될 하나 이상의 디지털 자산의 하나 이상의 해당 금액, 및/또는 하나 이상의 디지털 자산이 양도될 분산 원장 주소(예를 들어, TO 계좌)를 나타낼 수 있다.
추가적으로 또는 대안적으로, 양도 요청은 자산 수령자에 관한 정보를 포함할 수 있다. 예를 들어, 일부 실시형태에서, 양도 요청은 자산 수령자의 하나 이상의 속성 증명에 대한 포인터, 하나 이상의 속성 증명을 관리하는 스마트 계약에 대한 포인터, 자산 수령자의 하나 이상의 속성값, 및/또는 하나 이상의 속성값이 페치(fetched)될 수 있는 위치에 대한 하나 이상의 포인터를 포함할 수 있다. 하나 이상의 속성값은 하나 이상의 속성 증명에 각각 대응할 수 있다.
일부 실시형태에서, 자산 수령자에 관한 정보는 동작(705)에서 데이터 관리 서비스(700B)로부터 데이터 관리 서비스(700A)에 의해 수신될 수 있고, 동작(710)에서 데이터 관리 서비스(700A)에 의해 데이터 관리 서비스(700C)로 전달될 수 있다. 동작(720)과 관련하여 아래에서 논의되는 바와 같이, 이 정보에 의해 데이터 관리 서비스(700C)는 데이터 관리 서비스(700B)와 직접 통신하지 않고 자산 수령자의 신원을 점검할 수 있다.
동작(715)에서, 보관자의 데이터 관리 서비스(700C)는 자산 소유자의 하나 이상의 속성 증명을 점검하기 위해 상대방 점검을 개시할 수 있다. 이 상대방 점검은 예를 들어 '643 출원에서 설명된 바와 같이 및/또는 도 4 및/또는 도 7의 동작(705)과 관련하여 본 명세서에서 설명된 바와 같이 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 데이터 관리 서비스(700A)는 자산 소유자의 하나 이상의 속성 증명에 대한 포인터, 하나 이상의 속성 증명을 관리하는 스마트 계약에 대한 포인터, 자산 소유자의 하나 이상의 속성값, 및/또는 하나 이상의 속성값이 페치될 수 있는 위치에 대한 하나 이상의 포인터를 데이터 관리 서비스(700C)에 송신할 수 있다. 하나 이상의 속성값은 하나 이상의 속성 증명에 각각 대응할 수 있다.
추가적으로 또는 대안적으로, 자산 소유자의 데이터 관리 서비스(700A)는 보관자의 하나 이상의 속성 증명을 점검하기 위해 상대방 점검을 개시할 수 있다. 이 상대방 점검은 예를 들어 '643 출원에서 설명된 바와 같이 및/또는 도 4 및/또는 도 7의 동작(705)과 관련하여 본 명세서에서 설명된 바와 같이 임의의 적절한 방식으로 수행될 수 있다. 예를 들어, 데이터 관리 서비스(700C)는 보관자의 하나 이상의 속성 증명에 대한 포인터, 하나 이상의 속성 증명을 관리하는 스마트 계약에 대한 포인터, 보관자의 하나 이상의 속성값, 및/또는 하나 이상의 속성값이 페치될 수 있는 위치에 대한 하나 이상의 포인터를 데이터 관리 서비스(700A)로 송신할 수 있다. 하나 이상의 속성값은 하나 이상의 속성 증명에 각각 대응할 수 있다.
본 발명의 양태는 동작(710)의 양도 요청에 응답하여 동작(715)을 수행하는 것으로 제한되지 않는 것으로 이해된다. 일부 실시형태에서, 자산 소유자의 데이터 관리 서비스(700A)는, 양도를 요청하기 전에, 하나 이상의 디지털 자산을 보관자의 데이터 관리 서비스(700C)에 등록할 수 있다. 등록 프로세스의 일부로서, 보관자의 데이터 관리 서비스(700C)는 자산 소유자의 하나 이상의 속성 증명을 점검할 수 있다. 추가적으로 또는 대안적으로, 자산 소유자의 데이터 관리 서비스(700A)는 보관자의 하나 이상의 속성 증명을 점검할 수 있다.
동작(720)에서, 데이터 관리 서비스(700C)는 자산 수령자의 신원을 점검할 수 있다. 일부 실시형태에서, 이것은 데이터 관리 서비스(700B)와 직접 상호 작용하지 않고 수행될 수 있다. 예를 들어, 데이터 관리 서비스(700C)는 데이터 관리 서비스(700A)로부터 수신된 포인터를 사용하여 분산 원장으로부터 (예를 들어, 도 6과 관련하여 위에서 설명된 예시적인 분산 원장 상태(605C)로부터) 자산 수령자의 하나 이상의 속성 증명에 액세스할 수 있다. 데이터 관리 서비스(700C)는 분산 원장으로부터 액세스된 하나 이상의 증명에 대해 데이터 관리 서비스(700A)에 의해 전달된 하나 이상의 속성값을 점검할 수 있다.
그러나, 본 발명의 양태는 자산 소유자가 자산 수령자에 관한 정보를 보관자에게 송신하게 하는 것으로 제한되지 않는 것으로 이해된다. 일부 실시형태에서, 보관자는 자산 소유자에 추가하여 또는 이 대신 자산 수령자와 상호 작용할 수 있다.
본 발명자들은 자산 소유자가 양도 제한을 받는 엔티티의 분산 원장 주소를 양도 요청에 표시하지만 양도 제한을 받지 않은 엔티티의 정보(예를 들어, 하나 이상의 속성 증명)를 송신함으로써 양도 제한(예를 들어, AML 규정)을 회피하려고 시도할 수 있음을 인식하고 이해하였다. 따라서, 일부 실시형태에서, 데이터 관리 서비스(700C)는 하나 이상의 디지털 자산이 양도될 분산 원장 주소(예를 들어, 동작(710)에서 수신된 양도 요청에 표시된 TO 계좌)가 분산 원장으로부터 액세스된 하나 이상의 속성 증명과 연관된 엔티티에 실제로 속하는지를 점검할 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 속성 증명은 스마트 계약에 저장될 (및/또는 배지로 구성될) 수 있고, 데이터 관리 서비스(700C)는 하나 이상의 디지털 자산이 양도될 분산 원장 주소가 스마트 계약(및/또는 배지)과 연관된 엔티티에 실제로 속하는지를 점검할 수 있다.
예를 들어, 일부 실시형태에서, 데이터 관리 서비스(700C)는, 하나 이상의 속성 증명이 분산 원장 주소 속성에 대한 증명을 포함하는지, 및 대응하는 속성값이 하나 이상의 디지털 자산이 양도될 분산 원장 주소와 일치하는지를 점검할 수 있다.
동작(725)에서, 데이터 관리 서비스(700C)는 하나 이상의 양도 제한을 점검할 수 있다. 일부 실시형태에서, 데이터 관리 서비스(700C)는 블랙리스트 및/또는 화이트리스트를 점검하여 제안된 양도를 진행하는 것이 허용되는지를 확인할 수 있다. 예를 들어 블랙리스트(또는 화이트리스트)는 소유자, 수령자, 및/또는 양도가 금지된(또는 허용된) 특정 자산을 나타낼 수 있다. 추가적으로 또는 대안적으로, 데이터 관리 서비스(700C)는 하나 이상의 정부 및/또는 다른 규정(예를 들어, AML 규정)에 따라 하나 이상의 점검을 수행하여 제안된 양도가 규정을 준수하는지를 확인할 수 있다.
일부 실시형태에서, 데이터 관리 서비스(700C)는 자산 소유자 및/또는 자산 수령자의 하나 이상의 속성값에 기초하여 양도 제한을 시행할 수 있다. 예를 들어, 데이터 관리 서비스(700C)는 동작(715) 또는 동작(720)에서 분산 원장으로부터 액세스된 속성 증명에 대해 이러한 속성값을 점검할 수 있다. 일부 실시형태에서, 이것은 속성 증명을 액세스하는 스마트 계약에 표시된 암호화 해시 함수를 수신된 솔트 및 수신된 속성값에 적용함으로써 수행될 수 있다. 그 결과 솔트된 해시는 속성 증명에서 발견된 암호화 증명과 비교될 수 있다. 그러나, 본 발명의 양태는 임의의 특정 방식으로 암호화 증명을 생성하거나 점검하는 것으로 제한되지 않는 것으로 이해된다.
일부 실시형태에서, 속성값을 점검하면 데이터 관리 서비스(700C)는 하나 이상의 양도 제한 규칙을 속성값에 적용할 수 있다. 일례로서, 속성값은 자산 수령자의 거주 국가 또는 법인일 수 있고, 보관 키 서비스는 제재 대상 국가 또는 개인에 대해 하나 이상의 양도 제한 규칙을 적용할 수 있다.
일부 실시형태에서, 데이터 관리 서비스(700C)에 의해 수행된 하나 이상의 점검 모두가 성공하면, 데이터 관리 서비스(700C)는 동작(730)에서 제안된 양도를 진행할 수 있다. 예를 들어, 데이터 관리 서비스(700C)는 제안된 양도에 관한 정보를 저장하는 데이터 구조에 서명하고, 서명된 데이터 구조를 데이터 관리 서비스(700A)로 반환할 수 있다. 데이터 구조는 양도될 하나 이상의 디지털 자산을 관리하는 분산 원장에 의해 처리하기에 적합한 형식일 수 있고, 데이터 관리 서비스(700C)는 하나 이상의 디지털 자산을 제어하는 암호화 키(예를 들어, M개의 키 중 하나)를 사용하여 데이터 구조에 서명할 수 있다. 데이터 관리 서비스(700A)는 서명된 데이터 구조를 분산 원장에 게시하여 제안된 양도를 실행하게 할 수 있다.
추가적으로 또는 대안적으로, 하나 이상의 디지털 자산은 프로그램 로직(예를 들어, 스마트 계약)과 연관되어, 데이터 관리 서비스(700C)가, 예를 들어 하나 이상의 디지털 자산을 제어하는 암호화 키를 사용하여 하나 이상의 적절한 메시지에 서명함으로써 분산 원장에서 제안된 양도를 직접 실행하게 할 수 있다.
일부 구현예에서, M개의 보관자가 이용 가능할 수 있다. 하나 이상의 디지털 자산은 적어도 N개의 보관자(N ≤ M)가 제안된 양도를 승인할 때까지 자산 소유자에게 남아있거나 에스크로(escrow)로 보유될 수 있다. 예를 들어, 다수 서명 방식을 가진 분산 원장이 사용될 수 있으며, 여기서 각 디지털 자산은 M개의 암호화 키와 연관될 수 있다. M개의 보관자 각각은 대응하는 키를 가질 수 있으며, 디지털 자산을 양도하는 것은 적어도 N개의 보관자가 각자의 키로 서명할 것을 요구할 수 있다. 그러나, 단 하나의 보관자만을 포함하거나 보관자를 전혀 포함하지 않는 경우를 포함하여 임의의 적절한 수의 보관자가 사용될 수 있는 것으로 이해된다. 다수의 보관자가 있는 경우, 이러한 보관자는 서로 독립적으로 동작할 수 있다.
일부 실시형태에서, 디지털 자산과 연관된 프로그램 로직(예를 들어, 스마트 계약)은 적어도 임계 수의 보관자가 서명했는지를 점검할 수 있다. 추가적으로 또는 대안적으로, 프로그램 로직은 하나 이상의 적용 가능한 양도 제한을 시행할 수 있다. 예를 들어, 프로그램 로직은 자산 소유자 및/또는 자산 수령자의 하나 이상의 속성값에 기초하여 양도 제한을 시행할 수 있다. 프로그램 로직은 (예를 들어, 적절한 스마트 계약에서) 분산 원장에 저장된 속성 증명에 대해 이러한 속성값을 점검할 수 있고, 하나 이상의 적용 가능한 양도 제한 중 그 어느 것도 위반되지 않는 경우에만 디지털 자산을 해제할 수 있다. 이러한 방식으로 양도 제한의 시행은 신뢰 계층 내에서 발생할 수 있다.
도 8은 본 발명의 임의의 양태를 구현할 수 있는 예시적인 컴퓨터(1000)를 개략적으로 도시한다. 도 8에 도시된 실시형태에서, 컴퓨터(1000)는 하나 이상의 컴퓨터 하드웨어 프로세서를 갖는 처리 유닛(1001), 및 예를 들어 휘발성 및/또는 비-휘발성 메모리를 포함할 수 있는 비-일시적인 컴퓨터 판독 가능 저장 매체(예를 들어, 시스템 메모리(1002))를 포함하는 하나 이상의 제조 물품을 포함한다. 메모리(1002)는 본 명세서에 설명된 임의의 기능을 수행하도록 처리 유닛(1001)을 프로그래밍하기 위한 하나 이상의 명령어를 저장할 수 있다. 컴퓨터(1000)는 또한 시스템 메모리(1002)에 추가하여 저장 매체(1005)(예를 들어, 하나 이상의 디스크 드라이브)와 같은 다른 유형의 비-일시적인 컴퓨터 판독 가능 매체를 포함할 수 있다. 저장 매체(1005)는 또한 메모리(1002)에 로드될 수 있는 하나 이상의 애플리케이션 프로그램 및/또는 애플리케이션 프로그램(예를 들어, 소프트웨어 라이브러리)에 의해 사용되는 외부 구성 요소를 저장할 수 있다. 본 명세서에 설명된 기능 중 임의의 것을 수행하기 위해, 처리 유닛(1001)은 처리 유닛(1001)에 의해 실행하기 위한 프로세서 실행 가능 명령어를 저장하는 비-일시적인 컴퓨터 판독 가능 저장 매체로서 기능할 수 있는 하나 이상의 비-일시적인 컴퓨터 판독 가능 저장 매체(예를 들어, 메모리(1002), 저장 매체(1005))에 저장된 하나 이상의 프로세서 실행 가능 명령어를 실행할 수 있다.
컴퓨터(1000)는 도 8에 도시된 디바이스(1006 및 1007)와 같은 하나 이상의 입력 디바이스 및/또는 출력 디바이스를 가질 수 있다. 이러한 디바이스는 무엇보다도 특히 사용자 인터페이스를 제공하는 데 사용될 수 있다. 사용자 인터페이스를 제공하는 데 사용될 수 있는 출력 디바이스의 예로는 출력을 시각적으로 표현하기 위한 프린터 또는 디스플레이 화면, 및 출력을 청각적으로 표현하기 위한 스피커 또는 기타 사운드 생성 디바이스를 포함한다. 사용자 인터페이스에 사용될 수 있는 입력 디바이스의 예로는 키보드, 및 마우스, 터치 패드 및 디지털 태블릿과 같은 포인팅 디바이스를 포함한다. 다른 예로서, 입력 디바이스(1007)는 오디오 신호를 캡처하기 위한 마이크로폰을 포함할 수 있고, 출력 디바이스(1006)는 시각적으로 렌더링하기 위한 디스플레이 화면, 및/또는 인식된 텍스트를 청각적으로 렌더링하기 위한 스피커를 포함할 수 있다.
도 8에 도시된 바와 같이, 컴퓨터(1000)는 또한 다양한 네트워크(예를 들어, 네트워크(10020))를 통해 통신하기 위해 하나 이상의 네트워크 인터페이스(예를 들어, 네트워크 인터페이스(10010))를 포함할 수 있다. 네트워크의 예로는 근거리 네트워크 또는 광역 네트워크, 예를 들어, 기업 네트워크 또는 인터넷을 포함한다. 이러한 네트워크는 임의의 적절한 기술에 기초할 수 있고, 임의의 적절한 프로토콜에 따라 동작할 수 있으며, 무선 네트워크, 유선 네트워크 또는 광섬유 네트워크를 포함할 수 있다.
이와 같이 적어도 하나의 실시형태의 여러 양태를 설명하였지만, 다양한 변경, 수정 및 개선이 이 기술 분야에 통상의 지식을 가진 자에게 쉽게 일어날 수 있는 것으로 이해된다. 이러한 변경, 수정 및 개선은 본 발명의 사상 및 범위 내에 있는 것으로 의도된다. 따라서, 전술한 설명 및 도면은 단지 예시일 뿐이다.
전술한 본 발명의 실시형태는 임의의 다양한 방식으로 구현될 수 있다. 예를 들어, 실시형태는 하드웨어, 소프트웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 소프트웨어로 구현될 때, 소프트웨어 코드는 단일 컴퓨터에 제공되든 또는 다수의 컴퓨터에 분산되어 제공되든 상관없이 임의의 적절한 프로세서 또는 프로세서 집합으로 실행될 수 있다.
또한, 본 명세서에 설명된 다양한 방법 또는 프로세스는 다양한 운영 체제 또는 플랫폼 중 임의의 것을 이용하는 하나 이상의 프로세서에서 실행 가능한 소프트웨어로 코딩될 수 있다. 추가적으로, 이러한 소프트웨어는 다수의 적절한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립팅 도구 중 임의의 것을 사용하여 작성될 수 있고, 또한 실행 가능한 기계 언어 코드, 또는 프레임워크 또는 가상 기계에서 실행되는 중간 코드로 컴파일링될 수도 있다.
이와 관련하여, 본 명세서에 개시된 개념은, 하나 이상의 컴퓨터 또는 다른 프로세서에서 실행될 때, 위에서 논의된 본 발명의 다양한 실시형태를 구현하는 방법을 수행하는 인코딩된 하나 이상의 프로그램을 갖는 비-일시적인 컴퓨터 판독 가능 매체(또는 다수의 컴퓨터 판독 가능 매체)(예를 들어, 컴퓨터 메모리, 하나 이상의 플로피 디스크, 컴팩트 디스크, 광학 디스크, 자기 테이프, 플래시 메모리, 전계 프로그래밍 가능 게이트 어레이 또는 기타 반도체 디바이스의 회로 구성, 또는 기타 비-일시적인 유형적인 컴퓨터 저장 매체)로서 구현될 수 있다. 컴퓨터 판독 가능 매체 또는 매체들은 운반 가능할 수 있고, 이로써 매체에 저장된 프로그램 또는 프로그램들이 전술한 바와 같은 본 발명의 다양한 양태를 구현하도록 하나 이상의 상이한 컴퓨터 또는 다른 프로세서에 로딩될 수 있다.
"프로그램" 또는 "소프트웨어"라는 용어는 위에서 논의된 바와 같이 본 발명의 다양한 양태를 구현하기 위해 컴퓨터 또는 다른 프로세서를 프로그래밍하는 데 이용될 수 있는 임의의 유형의 컴퓨터 코드 또는 컴퓨터 실행 가능 명령어 세트를 지칭하기 위해 본 명세서에서 사용된다. 추가적으로, 이 실시형태의 일 양태에 따르면, 실행될 때, 본 발명의 방법을 수행하는 하나 이상의 컴퓨터 프로그램은 단일 컴퓨터 또는 프로세서에 상주할 필요가 없고, 본 발명의 다양한 양태를 구현하도록 다수의 상이한 컴퓨터 또는 프로세서 간에 모듈 방식으로 분산될 수 있는 것으로 이해된다.
컴퓨터 실행 가능 명령어는 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행되는 프로그램 모듈과 같은 다양한 형태일 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 구성 요소, 데이터 구조 등을 포함한다. 일반적으로, 프로그램 모듈의 기능은 다양한 실시형태에서 원하는 대로 결합되거나 분산될 수 있다.
또한, 데이터 구조는 임의의 적절한 형태로 컴퓨터 판독 가능 매체에 저장될 수 있다. 설명을 간단하게 하기 위해, 데이터 구조는 데이터 구조에서 위치를 통해 관련된 필드를 갖는 것으로 제시될 수 있다. 이러한 관계는 마찬가지로 필드들 사이의 관계를 나타내는, 컴퓨터 판독 가능 매체의 위치를 가진 필드를 저장 매체에 할당함으로써 달성될 수 있다. 그러나 데이터 요소 간의 관계를 수립하는 포인터, 태그 또는 기타 메커니즘의 사용을 포함하는 임의의 적합한 메커니즘이 데이터 구조의 필드에서 정보 간의 관계를 수립하는 데 사용될 수 있다.
본 발명의 다양한 특징 및 양태는 단독으로, 둘 이상의 임의의 조합으로, 또는 앞에서 설명된 실시형태에서 구체적으로 논의되지 않은 다양한 배열로 사용될 수 있고, 따라서 상기 설명에 제시되거나 도면에 도시된 구성 요소의 세부 사항 및 배열로 그 적용이 제한되지 않는다. 예를 들어, 일 실시형태에서 설명된 양태는 다른 실시형태에서 설명된 양태와 임의의 방식으로 결합될 수 있다.
또한, 본 명세서에 개시된 개념은 예로서 제시된 방법으로 구현될 수 있다. 방법의 일부로 수행되는 동작은 임의의 적절한 방식으로 정렬될 수 있다. 따라서, 예시적인 실시형태에서 순차적인 동작으로 도시되었지만, 설명된 것과 다른 순서로 동작을 수행하는, 예를 들어, 일부 동작을 동시에 수행하는 것을 포함할 수 있는 실시형태도 구성될 수 있다.
청구범위에서 청구항 요소를 수식하는 "제1", "제2", "제3" 등과 같은 서수 용어의 사용은 그 자체로 하나의 청구항 요소가 다른 요소에 비해 앞서는 우선권, 우선 순위 또는 순서를 의미하는 것도 아니고, 방법 동작을 수행하는 시간적 순서를 의미하는 것도 아니며, 단지 특정 이름을 가진 하나의 청구항 요소를 동일한 이름을 가진 다른 요소와 (그러나 서수 용어의 사용을 통해) 구별하여 청구항 요소 간을 구별하기 위한 표지로만 사용된 것이다.
또한, 본 명세서에 사용된 어법 및 용어는 단지 설명을 위한 것일 뿐, 본 발명을 제한하는 것으로 간주되어서는 안 된다. 본 명세서에서 "구비하는", "포함하는", "갖는", "함유하는", "수반하는"이라는 용어와 이들의 변형어의 사용은 이후에 나열된 항목 및 그 등가물 및 추가 항목을 포함한다는 것을 의미한다.

Claims (25)

  1. 시스템으로서,
    적어도 하나의 컴퓨터 프로세서;
    적어도 하나의 저장 디바이스; 및
    인코딩된 명령어를 갖는 적어도 하나의 컴퓨터 판독 가능 매체를 포함하고, 상기 명령어는, 실행될 때, 상기 적어도 하나의 컴퓨터 프로세서로 하여금,
    적어도 하나의 속성값(attribute value)을 복호화할 때 사용하기 위한 제1 값을 수신하는 동작;
    상기 적어도 하나의 속성값을 암호화된 형태로 수신하는 동작으로서,
    상기 적어도 하나의 속성값은 제2 값과, 보안 하드웨어와 연관된 공개 키를 사용하여 암호화되었고;
    상기 제2 값은 상기 제1 값에 대응하는, 상기 적어도 하나의 속성값을 암호화된 형태로 수신하는 동작; 및
    상기 제1 값을 상기 적어도 하나의 속성값과 연관시키는 방식으로 상기 제1 값과 암호화된 형태의 상기 적어도 하나의 속성값을 상기 적어도 하나의 저장 디바이스 상에 저장하는 동작을 포함하는 방법을 수행하게 하는, 시스템.
  2. 제1항에 있어서,
    상기 적어도 하나의 속성값은 저장되기 전에는 복호화되지 않는, 시스템.
  3. 제1항에 있어서,
    상기 방법은 공개 키 인프라로부터 상기 보안 하드웨어와 연관된 상기 공개 키에 액세스하는 동작을 더 포함하고;
    상기 공개 키 인프라는 분산 원장(distributed ledger)을 사용하여 제공되는, 시스템.
  4. 제1항에 있어서, 상기 방법은 상기 적어도 하나의 속성값을 공유하는 엔티티(entity)와 연관된 공개 키를 사용하여 상기 적어도 하나의 속성값을 상기 보안 하드웨어에 의해 재암호화하는 동작을 더 포함하는, 시스템.
  5. 제4항에 있어서,
    상기 적어도 하나의 속성값은 제1 엔티티와 관련되고;
    상기 적어도 하나의 속성값을 공유하는 엔티티는 제2 엔티티를 포함하고;
    상기 방법은 공개 키 인프라로부터 상기 제2 엔티티와 연관된 상기 공개 키에 액세스하는 동작을 더 포함하고;
    상기 공개 키 인프라는 분산 원장을 사용하여 제공되는, 시스템.
  6. 제5항에 있어서,
    상기 방법은,
    상기 분산 원장을 점검하여 상기 제1 엔티티와 상기 제2 엔티티가 신뢰 관계에 있는지 여부를 확인하는 동작을 더 포함하고;
    상기 제2 엔티티와 연관된 상기 공개 키를 사용하여 상기 적어도 하나의 속성값을 재암호화하는 동작은 상기 제1 엔티티와 상기 제2 엔티티가 신뢰 관계에 있음을 확인한 것에 응답하여 수행되는, 시스템.
  7. 제4항에 있어서, 상기 방법은,
    상기 적어도 하나의 속성값을 재암호화하기 전에, 상기 보안 하드웨어에 의해, 적어도 부분적으로 상기 제1 값을 사용하여 상기 적어도 하나의 속성값을 복호화하는 동작을 더 포함하는, 시스템.
  8. 제7항에 있어서,
    상기 적어도 하나의 속성값은 적어도 부분적으로 상기 보안 하드웨어와 연관된 개인 키를 사용하여 복호화되고, 상기 개인 키는 상기 적어도 하나의 속성값을 암호화하는 데 사용된, 상기 보안 하드웨어와 연관된 상기 공개 키에 대응하는, 시스템.
  9. 제1항 내지 제8항 중 어느 한 항의 방법에 따른 방법.
  10. 실행될 때, 적어도 하나의 컴퓨터 프로세서로 하여금 제1항 내지 제8항 중 어느 한 항에 따른 방법을 수행하게 하는 인코딩된 명령어를 갖는 적어도 하나의 컴퓨터 판독 가능 매체.
  11. 시스템으로서,
    적어도 하나의 컴퓨터 프로세서; 및
    인코딩된 명령어를 갖는 적어도 하나의 컴퓨터 판독 가능 매체를 포함하고, 상기 명령어는, 실행될 때, 상기 적어도 하나의 컴퓨터 프로세서로 하여금,
    제1 엔티티로부터 상기 제1 엔티티와 다른 제2 엔티티의 하나 이상의 속성값, 및 분산 원장에서 하나 이상의 속성 증명(attribute attestation)에 대한 포인터를 수신하는 동작으로서, 상기 하나 이상의 속성 증명은 상기 제2 엔티티의 하나 이상의 속성값에 각각 대응하는, 상기 수신하는 동작;
    상기 포인터를 사용하여 상기 분산 원장으로부터 상기 하나 이상의 속성 증명에 액세스하는 동작;
    상기 분산 원장으로부터 액세스된 상기 하나 이상의 속성 증명에 대해 상기 제1 엔티티로부터 수신된 상기 하나 이상의 속성값을 점검하는 동작;
    상기 하나 이상의 속성값 중 적어도 하나의 속성값을 사용하여 하나 이상의 양도 제한이 위반되었는지 여부를 점검하는 동작; 및
    상기 하나 이상의 양도 제한 중 그 어느 것도 위반되지 않았다는 결정에 응답하여 하나 이상의 디지털 자산의 양도를 승인하는 동작을 포함하는 방법을 수행하게 하는, 시스템.
  12. 제11항에 있어서, 상기 방법은,
    상기 하나 이상의 디지털 자산을 양도하라는 요청을 상기 제1 엔티티로부터 수신하는 동작을 더 포함하고, 상기 제2 엔티티의 하나 이상의 속성값, 및 상기 하나 이상의 속성 증명에 대한 포인터는 상기 하나 이상의 디지털 자산을 양도하라는 요청에 표시되는, 시스템.
  13. 제11항에 있어서, 상기 방법은,
    상기 제1 엔티티로부터 상기 하나 이상의 디지털 자산을 양도하라는 요청을 수신하는 동작을 더 포함하고,
    상기 요청은 상기 하나 이상의 디지털 자산이 분산 원장 주소로 양도될 것을 나타내고;
    상기 하나 이상의 디지털 자산의 양도를 승인하는 것은 상기 하나 이상의 디지털 자산을 상기 분산 원장 주소로 양도하는 것을 승인하는 것을 포함하는, 시스템.
  14. 제13항에 있어서, 상기 방법은,
    상기 하나 이상의 디지털 자산이 양도될 상기 분산 원장 주소가 상기 하나 이상의 속성값 중 상기 제1 엔티티로부터 수신된 속성값과 일치하는지 여부를 결정하는 동작을 더 포함하는, 시스템.
  15. 제11항에 있어서,
    상기 하나 이상의 디지털 자산의 양도를 승인하는 것은 상기 하나 이상의 디지털 자산에 대응하는 암호화 키를 사용하여 상기 양도에 관한 정보를 저장하는 데이터 구조에 서명하는 것을 포함하는, 시스템.
  16. 제15항에 있어서,
    상기 암호화 키는 M개의 임계값 암호화 방식 중 N개의 임계값 암호화 방식의 암호화 키를 포함하는, 시스템.
  17. 제11항 내지 제16항 중 어느 한 항의 방법에 따른 방법.
  18. 실행될 때, 적어도 하나의 컴퓨터 프로세서로 하여금 제11항 내지 제16항 중 어느 한 항에 따른 방법을 수행하게 하는 인코딩된 명령어를 갖는 적어도 하나의 컴퓨터 판독 가능 매체.
  19. 시스템으로서,
    적어도 하나의 컴퓨터 프로세서; 및
    인코딩된 명령어를 갖는 적어도 하나의 컴퓨터 판독 가능 매체를 포함하고, 상기 명령어는, 실행될 때, 상기 적어도 하나의 컴퓨터 프로세서로 하여금 제1 엔티티에 대해 방법을 수행하게 하고, 상기 방법은,
    상기 제1 엔티티와 다른 제2 엔티티로부터 상기 제2 엔티티의 하나 이상의 속성값, 및 분산 원장에서 하나 이상의 속성 증명에 대한 포인터를 수신하는 동작으로서, 상기 하나 이상의 속성 증명은 상기 제2 엔티티의 하나 이상의 속성값에 각각 대응하는, 상기 수신하는 동작;
    상기 포인터를 사용하여 상기 분산 원장으로부터 상기 하나 이상의 속성 증명에 액세스하는 동작;
    상기 분산 원장으로부터 액세스된 상기 하나 이상의 속성 증명에 대해 상기 제2 엔티티로부터 수신된 상기 하나 이상의 속성값을 점검하는 동작; 및
    상기 제2 엔티티의 하나 이상의 속성값, 및 상기 하나 이상의 속성 증명에 대한 포인터를 상기 제2 엔티티와 다른 제3 엔티티로 송신하는 동작을 포함하는, 시스템.
  20. 제19항에 있어서, 상기 방법은,
    하나 이상의 디지털 자산을 양도하라는 요청을 상기 제3 엔티티로 송신하는 동작을 더 포함하고, 상기 제2 엔티티의 하나 이상의 속성값, 및 상기 하나 이상의 속성 증명에 대한 포인터는 상기 하나 이상의 디지털 자산을 양도하라는 요청에 표시되는, 시스템.
  21. 제19항에 있어서, 상기 방법은,
    상기 제3 엔티티로부터 상기 제1 엔티티로부터 상기 제2 엔티티로 하나 이상의 디지털 자산의 양도에 대한 승인을 수신하는 동작을 더 포함하는, 시스템.
  22. 제21항에 있어서,
    상기 제3 엔티티로부터 수신된 승인은 상기 양도에 관한 정보를 저장하는 데이터 구조의 서명을 포함하고;
    상기 서명은 상기 하나 이상의 디지털 자산에 대응하는 암호화 키를 사용하여 생성된, 시스템.
  23. 제22항에 있어서,
    상기 암호화 키는 M개의 임계값 암호화 방식 중 N개의 임계값 암호화 방식의 암호화 키를 포함하는, 시스템.
  24. 제19항 내지 제23항 중 어느 한 항의 방법에 따른 방법.
  25. 실행될 때, 적어도 하나의 컴퓨터 프로세서로 하여금 제19항 내지 제23항 중 어느 한 항에 따른 방법을 수행하게 하는 인코딩된 명령어를 갖는 적어도 하나의 컴퓨터 판독 가능 매체.
KR1020217005288A 2018-07-23 2019-07-23 안전한 보관 서비스를 위한 시스템 및 방법 KR20210040078A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862702288P 2018-07-23 2018-07-23
US62/702,288 2018-07-23
PCT/US2019/042951 WO2020023460A1 (en) 2018-07-23 2019-07-23 Systems and methods for secure custodial service

Publications (1)

Publication Number Publication Date
KR20210040078A true KR20210040078A (ko) 2021-04-12

Family

ID=69181928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217005288A KR20210040078A (ko) 2018-07-23 2019-07-23 안전한 보관 서비스를 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US20210218720A1 (ko)
EP (1) EP3821586A4 (ko)
KR (1) KR20210040078A (ko)
SG (1) SG11202100712PA (ko)
WO (1) WO2020023460A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200160288A1 (en) * 2018-11-16 2020-05-21 Coinbase, Inc. Physically settled futures delivery system
CN109685501B (zh) * 2018-12-04 2023-04-07 暨南大学 基于区块链激励机制下可审计的隐私保护深度学习平台建设方法
US20220286303A1 (en) * 2019-08-22 2022-09-08 Quantumciel Pte. Ltd. Device, system and method for providing information security
US11769577B1 (en) 2020-01-15 2023-09-26 Ledgerdomain Inc. Decentralized identity authentication framework for distributed data
US11081219B1 (en) 2020-01-15 2021-08-03 Ledgerdomain Inc. Secure messaging in a machine learning blockchain network
SG11202013145YA (en) * 2020-02-03 2021-01-28 Alipay Hangzhou Inf Tech Co Ltd Blockchain-based trustable guarantees
US11514439B2 (en) * 2020-02-26 2022-11-29 Nice Ltd. System and method using zero knowledge proofs for alert sharing
US11664978B2 (en) * 2020-06-04 2023-05-30 Fidelius, LLC Systems, methods and software for secure access control to digitally stored information
DE102021107512A1 (de) * 2021-03-25 2022-09-29 Mühlbauer Gmbh & Co. Kg Verfahren und Vorrichtung zum Erzeugen, Bereitstellen und Weitergeben eines vertrauenswürdigen elektronischen Datensatzes oder Zertifikates basierend auf einem einen Nutzer betreffenden elektronischen Dokument
US11831638B1 (en) * 2021-04-19 2023-11-28 Amazon Technologies, Inc. Single-packet authorization using proof of work
CN115277094B (zh) * 2022-06-24 2023-07-18 北京天融信网络安全技术有限公司 一种基于区块链的通信方法、终端、系统及存储介质
US11741216B1 (en) 2022-11-07 2023-08-29 Ledgerdomain Inc. Credential revocation leveraging private keys on keystores read by provisioned devices
US11848754B1 (en) * 2022-11-07 2023-12-19 Ledgerdomain Inc. Access delegation leveraging private keys on keystores read by provisioned devices
US11741215B1 (en) 2022-11-07 2023-08-29 Ledgerdomain Inc. Recipient credentialing leveraging private keys on keystores read by provisioned devices
US11736290B1 (en) 2022-11-07 2023-08-22 Ledgerdomain Inc. Management of recipient credentials leveraging private keys on keystores read by provisioned devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160275461A1 (en) * 2015-03-20 2016-09-22 Rivetz Corp. Automated attestation of device integrity using the block chain
US9660803B2 (en) * 2015-09-15 2017-05-23 Global Risk Advisors Device and method for resonant cryptography
EP3234878A1 (en) * 2015-10-14 2017-10-25 Cambridge Blockchain, LLC Systems and methods for managing digital identities
US11900306B2 (en) * 2017-07-05 2024-02-13 United Parcel Service Of America, Inc. Verifiable parcel distributed ledger shipping and tracking system
AU2018341458A1 (en) * 2017-09-27 2020-04-16 Securrency, Inc. Method, apparatus, and computer-readable medium for compliance aware tokenization and control of asset value
US20190340607A1 (en) * 2018-05-01 2019-11-07 Masterworks.io, LLC System for central authority-permissioned transfer of blockchain tokens

Also Published As

Publication number Publication date
EP3821586A1 (en) 2021-05-19
WO2020023460A1 (en) 2020-01-30
EP3821586A4 (en) 2022-04-13
SG11202100712PA (en) 2021-02-25
US20210218720A1 (en) 2021-07-15

Similar Documents

Publication Publication Date Title
US20210218720A1 (en) Systems and methods for secure custodial service
US10673626B2 (en) Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US11238543B2 (en) Payroll based blockchain identity
RU2747947C2 (ru) Системы и способы персональной идентификации и верификации
EP2956852B1 (en) Data security service
JP2021523650A (ja) 安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末
KR20190075793A (ko) 블록체인을 이용한 일회성 접근 권한 부여 시스템
JP2012518330A (ja) 高信頼なクラウド・コンピューティングおよびクラウド・サービスのフレームワーク
EP3867849B1 (en) Secure digital wallet processing system
JP7114078B2 (ja) 電子認証方法及びプログラム
Bergquist Blockchain technology and smart contracts: privacy-preserving tools
Ghorbel et al. Accountable privacy preserving attribute-based access control for cloud services enforced using blockchain
Alansari A blockchain-based approach for secure, transparent and accountable personal data sharing
Biswas et al. Secure login: a blockchain based web application for identity access management system
Shehu et al. SPIDVerify: A Secure and Privacy-Preserving Decentralised Identity Verification Framework
Verma et al. Applications of Data Security and Blockchain in Smart City Identity Management
Devi et al. Digital Identity Management System Using Blockchain
Kankal et al. An adaptive authentication based on blockchain for bigdata hadoop framework
Shah Use of blockchain as a software component to send messages anonymously for a data trading platform
Mounnan et al. Efficient distributed access control using blockchain for big data in clouds
Hariharasudan et al. A Review on Blockchain Based Identity Management System
Amujo et al. Development of a National Identity Management System using Blockchain Technology
Kjørberg An Overview of Blockchain-Based Identity Management Systems.
US20230360123A1 (en) Cryptocurrency exchange platform
Fiore Providing trust to multi-cloud storage platforms through the blockchain