KR20190046843A - 서로 다른 파티들 사이에서 객체들을 추적하는 기법 - Google Patents

서로 다른 파티들 사이에서 객체들을 추적하는 기법 Download PDF

Info

Publication number
KR20190046843A
KR20190046843A KR1020197006728A KR20197006728A KR20190046843A KR 20190046843 A KR20190046843 A KR 20190046843A KR 1020197006728 A KR1020197006728 A KR 1020197006728A KR 20197006728 A KR20197006728 A KR 20197006728A KR 20190046843 A KR20190046843 A KR 20190046843A
Authority
KR
South Korea
Prior art keywords
rule set
parties
action
record
party
Prior art date
Application number
KR1020197006728A
Other languages
English (en)
Other versions
KR102556741B1 (ko
Inventor
잉 얀
양 첸
토마스 모스시브로다
에릭 창
징레이 렌
리앙 첸
얀지에 가오
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20190046843A publication Critical patent/KR20190046843A/ko
Application granted granted Critical
Publication of KR102556741B1 publication Critical patent/KR102556741B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • 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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • G06Q10/0833Tracking
    • 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
    • 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
    • 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/3242Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • H04L2209/38

Abstract

본 명세서에서 설명되는 청구 대상의 구현예들에 있어서는, 복수의 파티들 사이에서 객체를 제어 및 추적하는 새로운 접근법이 제안된다. 규칙 세트는 복수의 파티의 확인에 의해 이네이블 상태로 될 수 있다. 규칙 세트는 객체와 관련된 동작에 대한 제한을 규정할 수 있다. 객체와 관련된 동작에 대한 요청의 수신시에, 요청된 동작은 복수의 파티가 동의한 규칙 세트에 기초하여 검증될 수 있다. 요청된 동작이 유효하다는 검증에 응답하여, 요청된 동작이 수행될 수 있으며, 동작에 대한 기록이 생성되어 복수의 파티가 액세스할 수 있는 블록체인 데이터베이스에 저장될 수 있다.

Description

서로 다른 파티들 사이에서 객체들을 추적하는 기법
개인, 회사, 단체 또는 그 밖의 엔티티와 같은 서로 다른 파티들은 대개, 파티들간에 자산, 문서, 상품 등과 같은 관심 대상을 기록하기 위한 자체 데이터베이스를 갖는다. 각각의 파티는 자체 기록을 유지하고 기록들이 서로 일관되는지의 여부를 서로 주기적으로 점검한다. 서로 다른 데이터 포맷, 스키마 및 동기화 주파수, 및 심지어 오류 때문에, 모든 경우에 모든 파티가 합의에 이르도록 요구하고 있다. 단체간 활동을 편성하는 다른 방법은 복수의 파티 중에서 모든 기록을 유지할 하나의 파티를 선택하는 것, 또는 모든 기록을 보관할 독립적인 제3자를 찾는 것을 포함한다. 그러나, 이러한 집중형 해법에 있어서는, 중앙 관리 파티로서의 역할을 하는 파티가 공격을 받기 쉽다. 따라서, 서로 다른 파티들 사이에서의 객체들의 흐름 또는 분배를 신뢰할 수 있게 제어 및 추적하는 것이 과제이다.
본 명세서에서 설명되는 청구 대상의 구현예들에 따르면, 서로 다른 파티들 사이에서 객체를 제어 및 추적하는 새로운 접근법이 제안된다. 하나 이상의 이들 파티가 이들 서로 다른 파티들 사이에서의 객체의 흐름을 제어 및 추적할 수 있게 하기 위해, 복수의 파티에 대하여 규칙 세트가 이네이블(enable) 상태로 된다. 규칙 세트는 객체와 관련된 하나 이상의 동작에 대한 제한(들)을 규정한다. 객체와 관련된 동작에 대한 요청을 파티로부터 수신하면, 요청된 동작이 규칙 세트에 기초하여 검증될 수 있다. 요청된 동작이 유효하면, 동작이 수행되고, 규칙 세트에 대하여 특정된 동작에 대한 기록이 생성된다. 이후, 기록은 다수의 파티가 액세스할 수 있는 블록체인 데이터베이스에 저장된다. 블록체인 원장(ledger) 또는 블록체인 분산형 데이터베이스라고 할 수도 있는 블록체인 데이터베이스는 부당 변경(tampering) 및 수정(revision)으로부터 안전한 지속적으로 증가하는 데이트 기록 목록을 유지하는 분산형 데이터베이스이다. 이렇게 해서, 객체의 분배 및 흐름이 서로 다른 파티들 사이에서 효과적으로 및 효율적으로 제어 및 추적될 수 있다.
본 개요는 본 명세서에서 설명되는 청구 대상의 구현예들의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 본 명세서에서 설명되는 청구 대상의 범위를 한정하는 데 이용이 되고자 함도 아님을 이해해야 한다. 본 명세서에서 설명되는 청구 대상의 다른 특징들은 이하의 상세한 설명을 통해 쉽게 이해할 수 있을 것이다.
본 명세서에서 설명되는 청구 대상의 하나 이상의 구현예의 상세는 이하의 첨부 도면 및 상세한 설명에 제시된다. 본 개시의 다른 특징들, 양태들, 및 장점들은 상세한 설명, 도면, 및 청구범위로부터 명백해질 것이다:
도 1은 본 명세서에서 설명되는 청구 대상의 구현예들에 따른 시스템을 예시하는 개략도이고;
도 2는 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 규칙 세트를 설정하는 방법을 예시하는 흐름도이고;
도 3은 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 객체와 관련된 동작을 수행하는 방법을 예시하는 흐름도이고;
도 4는 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 객체와 관련된 동작을 검증하는 방법을 예시하는 흐름도이고;
도 5는 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 객체를 추적하는 방법을 예시하는 흐름도이고;
도 6은 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 동작의 상태를 조회하는 방법을 예시하는 흐름도이고;
도 7은 본 명세서에서 설명되는 청구 대상의 하나 이상의 구현예를 구현하기에 적합한 장치의 블록도이고;
도 8은 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 예시적인 객체 추적의 시각화를 예시하는 개략도이다.
도면 전반에서, 동일 또는 유사한 참조 번호들은 항상 동일 또는 유사한 요소들을 나타낸다.
이제, 본 명세서에서 설명되는 청구 대상의 원리를 일부 예시적인 구현예를 참조하여 설명한다. 이들 구현예는, 본 개시물의 범위에 대하여 어떠한 한정도 제시함이 없이, 당업자가 본 명세서에서 설명되는 청구 대상을 이해 및 구현하는 것을 돕기 위해 예시를 위해서만 설명된다는 점을 이해해야 한다. 본 명세서에서 설명되는 개시내용은 이하에서 설명되는 것 이외의 다양한 방식으로 구현될 수 있다.
본 명세서에서 설명되는 용어 "포함한다" 및 그 변형은 "포함하지만, 이에 한정되는 것은 아님"을 의미하는 개방형 용어로서 해석되어야 한다. 용어 "~에 기초한다"는 "적어도 부분적으로 ~에 기초한다"로서 해석되어야 한다. 단수 표현(부정 관사 "a")은 달리 특정되지 않는 한 "하나 이상"으로 해석되어야 한다. 용어 "일 구현예" 및 "구현예"는 "적어도 하나의 구현예"로 해석되어야 한다. 용어 "다른 구현예"는 "적어도 하나의 다른 구현예"로 해석되어야 한다.
또한, 본 명세서에서 설명되는 청구 대상의 맥락에서, 용어 "제1", "제2", "제3" 등은, 이들 요소의 순서에 대하여 어떠한 한정도 제시함이 없이, 개별 요소 또는 컴포넌트를 나타내기 위해 사용된다는 점을 이해해야 한다. 또한, 달리 지시되지 않는 한, 제1 요소는 제2 요소와 동일할 수도, 또는 아닐 수도 있다. 명시적 및 암시적인 다른 정의들은 아래에 포함될 수 있다.
종래에는, 전술한 바와 같이, 단체, 회사, 개인 등과 같은 파티는, 파티의 객체가 다른 파티에게 전송된 후에 그 밖의 파티들 사이에서 해당 객체가 어떻게 전송되는지를 신뢰할 수 있게 제어 및 추적하지 못할 수도 있다. 본 명세서에서 사용되는 바와 같이, 객체는 문서, 상품, 자산 등을 나타내는 임의의 디지털 정보를 의미할 수 있다. 즉, 객체는 파티의 경계를 벗어난 후에는, 제어가 불가능할 수 있다. 예를 들어, 자선 단체에의 기부자는 기부금이 자선 단체에 기부된 후에 자신의 기부금의 흐름을 제어 및 추적하고 싶어한다. 이렇게, 기부자는 기부금이 실제로 의도된 대로 사용되게 하고 싶어한다. 다른 실시예로서, 소셜 네트워크에서 자신의 사진을 공유하는 사용자는 개인정보 보호의 목적으로, 마찬가지로 사진의 흐름을 제어 및 추적하고 싶어한다. 그러나, 전통적인 데이터베이스 관리 시스템은 일반적으로, 각각의 파티가 자체 데이터베이스 시스템을 유지 및 제어하기 때문에, 파티가 그 객체의 흐름을 신뢰할 수 있게, 그리고 용이하게 제어 및 추적하는 것은 가능하지 않다.
상기 및 다른 잠제적인 문제점들을 적어도 부분적으로 해결하기 위해, 본 명세서에서 설명되는 청구 대상의 구현예들에 따르면, 서로 다른 파티들 사이에서 객체를 제어 및 추적하는 새로운 접근법이 제안된다.
예시적인 시스템
먼저, 본 명세서에서 설명되는 청구 대상의 예시적인 구현예가 구현될 수 있는 환경(100)을 예시하는 개략도를 도시하는 도 1을 참조한다.
도시된 바와 같이, 개인, 단체, 또는 임의의 다른 엔티티와 같은 복수의 파티(101 내지 105)가 존재한다. 비록 5개의 파티(101-105)가 도시되어 있지만, 시스템(100)이 임의의 적절한 수의 파티를 포함할 수 있음을 이해해야 한다. 각각의 파티는 랩톱 컴퓨터, 데스크톱 컴퓨터, 태블릿 컴퓨터, 서버, 모바일 장치, 웨어러블 장치 등과 같은 장치를 구비할 수 있다. 파티(101-105)는 네트워크를 통해 서로 통신 가능하게 연결될 수 있다. 네트워크는 로컬 에어리어 네트워크("LAN"), 메트로폴리탄 에어리어 네트워크("MAN"), 와이드 에어리어 네트워크("WAN") 또는 인터넷, 통신 네트워크, 근거리 통신 연결 또는 이들의 임의의 조합을 예로서 포함할 수 있지만, 이들에 한정되는 것은 아니다.
환경(100)은 또한 블록체인 데이터베이스(110) 및 관리 모듈(120)을 포함한다. 관리 모듈(120)은 파티(101 내지 105)와 통신하며 블록체인 데이터베이스(110)를 제어한다. 즉, 관리 모듈(120)은 데이터베이스 관리 시스템(DBMS)으로 간주될 수 있다. 블록체인 데이터베이스(110) 및 관리 모듈(120)은, 비록 별개의 구성요소로서 도시되어 있지만, 서로 통합될 수 있음을 이해해야 한다. 특히, 일부 구현예에 있어서는, 관리 모듈(120)이 분산형 모듈일 수 있다.
블록체인 데이터베이스(110)에는 파티(101 내지 105)가 액세스할 수 있다. 블록체인 데이터베이스(110)는 부당 변경 및 수정으로부터 안전한 데이트 기록 목록을 유지하는 분산형 데이터베이스일 수 있다. 기록은 데이터 블록들로 구성되며, 각각의 블록은 개개의 기록의 배치(batch)를 유지한다. 예를 들어, 도시된 바와 같이, 기록 1 내지 기록 6은 블록(1301, 1302 및 130N)에 저장된다. 일부 구현예에 있어서, 블록들은 하나씩 암호로 연결될 수 있다. 블록은 서명을 포함할 수 있으며, 하나의 블록의 서명은 선행 블록들의 서명 및 기록에 의존한다. 예를 들어, 하나의 블록의 서명은 선행 블록들의 서명 및 기록의 해시값으로부터 연산될 수 있다. 객체의 모든 동작은 이 데이터베이스 관리 시스템에서 불변이고, 제어 가능하며, 추적 가능하다는 점이 하기의 설명을 통해 이해될 것이다.
전술한 바와 같이, 하나 이상의 객체는 파티들(101 내지 105) 사이에서 전송, 공유, 내지는 전달될 수 있다. 객체는, 전자 문서, 사진, 비디오, 오디오, 자산 등을 예로서 포함하지만, 이들에 한정되는 것은 아니다. 각각의 파티는 전송, 공유, 소비, 삭제 등과 같은 객체에 대한 동작을 수행할 수 있다.
본 명세서에서 설명되는 청구 대상의 구현예들에 따르면, 파티는 관심 대상과 관련되는 하나 이상의 동작에 관한 하나 이상의 제한을 설명하는 규칙 세트(150)를 규정할 수 있다. 논의를 쉽게 하기 위해, 하기의 설명에서는, 용어 "규칙(들)" 및 "규칙 세트"를 상호 교환 가능하게 사용할 수 있다.
일반적으로 말해서, 규칙 세트(150)는 객체의 하나 이상의 동작에 관한 임의의 양태 및/또는 속성과 관련될 수 있다. 예시적인 규칙 세트(150)가 하기의 단락들에서 더 설명될 것이다. 일부 구현예에 있어서, 규칙 세트(150)는, 예를 들어 객체의 소유자에 의해 개시될 수 있다. 물론, 임의의 다른 관련 파티들도 규칙 세트(150)를 제안할 수 있다. 논의를 쉽게 하기 위해, 하기의 논의에 있어서는, 파티(101)가 규칙 세트(150)를 개시한다고 가정한다.
규칙 세트(150)는 임의의 적절한 포맷으로 구현될 수 있다. 예를 들어, 일부 구현예에 있어서, 규칙 세트(150)는 임의의 적절한 프로그래밍 언어 및/또는 스크립트 언어에 의해 작성되는 실행 코드를 포함할 수 있다. 대안으로서, 또는 부가적으로, 규칙 세트(150)는 XML(Extensive Markup Language) 텍스트와 같은 형식화된 텍스트로 또는 일반 텍스트로 설명될 수 있다. 규칙 세트(150)는 관리 모듈(120)에 의해 블록체인 데이터베이스(110)에 또는 임의의 다른 적절한 스토리지에 저장될 수 있다.
관리 모듈(120)은, 파티(101)로부터 규칙 세트(150)를 설정하라는 요청을 수신(160)한 후에, 규칙 세트(150)를 파티들(102 내지 105)에 브로드캐스팅한다. 파티가 규칙 세트(150)를 수용하면, 해당 파티는 관리 모듈(120)에 확인 메시지를 회신할 수 있다. 일부 구현예에 있어서, 시스템 내의 소정의 수의 파티가 규칙 세트(150)를 확인하면, 규칙 세트(150)가 이네이블 상태로 된다. 일부 구현예에 있어서, 관리 모듈(120)은 제안된 규칙 세트(150)가 다른 파티들에 의해 수용되어서 이네이블 상태로 되었는지의 여부에 대한 통지를, 바로 또는 조회시에, 파티(101)에게 송신(165)할 수 있다. 이 양태에서의 예시적인 프로세스는 도 2를 참조하여 아래에서 설명될 것이다.
이어서, 파티는 객체의 동작을 개시하기 위한 요청을 송신할 수 있다. 예를 들면, 도 1에 도시된 실시예에 있어서, 관리 모듈(120)은 파티(102)로부터, 객체를 파티(104)에 전송하기 위한 요청을 수신(170)한다. 관리 모듈(120)은 요청된 동작을 사전에 저장된 규칙 세트(150)에 기초하여 검증(172)한다.
요청된 동작이 유효한 것으로 판정되면, 관리 모듈(120)은 해당 동작이 수행되게 한다. 이 경우, 관리 모듈(120)은 동작에 대한 기록을 생성하고 해당 기록을 블록체인(110)에 저장(174)한다. 이 기록은, 다른 무엇보다도, 규칙 세트(150)에 대하여 특정된 이벤트 식별부호(ID)를 포함할 수 있다. 즉, 규칙 세트(150) 하의 객체에 대하여 파티(101 내지 105)에 의해 수행되는 모든 동작 또는 행위(act)가 동일 이벤트에 속하고, 이 이벤트에 속하는 모든 동작 또는 행위는 동일 이벤트 ID와 함께 블록체인에 기록될 수 있다.
분산형 블록체인 데이터베이스(110)는 복수의 스토리지를 포함한다. 하나의 스토리지 장치에 저장된 기록들은 다른 스토리지들과 동기화된다. 예를 들어, 스토리지는 그 안에 저장되는 기록들이 소정 개수의 이웃 스토리지들에 저장되는 기록들과 동일한지의 여부를 점검한다. 기록들이 동일하지 않으면, 이 스토리지는 그 안에 저장되는 기록들을 이웃 스토리지들에 저장되는 기록들에 따라 수정한다. 이렇게 해서, 객체의 흐름은 추적 가능하며 불변이고, 이는 아래에서 논의된다.
일부 구현예에 있어서, 관리 모듈(120)의 인스턴스들은, 파티들이 관리 모듈(120)의 임의의 인스턴스 또는 모든 인스턴스와 상호 작용할 수 있도록, 분산형 블록체인 데이터베이스(110)에 대하여 구현될 수 있다. 대안으로서, 관리 모듈(120)의 인스턴스들은, 개개의 파티들이 관리 모듈(120)의 각각의 인스턴스들과 상호 작용할 수 있도록, 파티들에 대하여 구현될 수 있다. 따라서, 블록체인 데이터베이스(110)의 복수의 스토리지에 저장되는 기록들이 동기화되어, 객체의 흐름이 제어 및 추적될 수 있다.
일부 구현예에 있어서는, 서로 다른 파티들이 그 객체와 관련된 하나 이상의 동작에 대하여 동일한 제한(들)을 설정할 수 있다. 그 경우, 예를 들어, 전역적으로 제어되고 무작위로 생성되는 번호가 각각의 이벤트 ID를 생성함에 있어서 고려되어 서로 다른 파티들을 구별할 수 있다.
한편, 요청된 동작이 무효하면, 관리 모듈(120)은 해당 요청을 거부할 수 있다. 예를 들어, 관리 모듈(120)은 동작이 수행되었는지의 여부를 통지하기 위해, 바로 또는 조회시에, 노드(102)에 통지를 송신(175)할 수 있다. 예시적인 구현예는 도 3을 참조하여 설명되며, 디지털 콘텐츠 분배의 예시적인 구현예가 하기의 단락들에서 논의된다.
파티(101)와 같은 파티가 서로 다른 파티들 사이에서의 객체의 흐름을 추적하려는 경우에는, 추적 요청을 송신할 수 있다. 관리 모듈(120)은, 해당 요청을 수신(180)하면, 블록체인 데이터베이스(110)로부터 객체와 관련된 동작들에 대한 하나 이상의 기록을 검색(182)한다. 일부 구현예에 있어서, 추적 요청은 이벤트 ID를 포함할 수 있으며, 객체와 관련된 동작들에 대한 기록은 이벤트 ID에 기초하여 검색될 수 있다. 이후, 관리 모듈(120)은 검색된 기록을 파티(101)에 회신(185)한다. 이렇게 해서, 파티(101)는 해당 이벤트에서 객체의 흐름 또는 분배를 통지받을 수 있다. 기록들을 점검하는 것에 의해 임의의 위반이 발견되면, 파티(101)는 그에 따라 반응할 수 있다. 예시적인 구현예가 도 5를 참조하여 설명된다.
예시적인 프로세스
이제, 상기 프로세스의 일부 예시적인 구현예에 대하여 상세하게 논의한다. 도 2는 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 규칙 세트(150)를 설정하는 방법(200)을 예시하는 흐름도이다. 210에서, 관리 모듈(120)은 파티(101)로부터 규칙 세트(150)를 설정하라는 요청을 수신한다. 규칙 세트(150)는 사전에, 예를 들어, 블록체인(110)에 저장될 수 있다.
전술한 바와 같이, 규칙 세트(150)는 객체의 동작들에 관한 임의의 양태 및/또는 속성과 관련될 수 있다. 예를 들어, 규칙 세트(150)는 파티가 객체 또는 해당 객체가 전송 또는 공유될 수 있는 대상을 전송할 수 있는 최대 횟수를 지정할 수 있다. 다른 실시예로서, 규칙 세트(150)는 파티가 객체를 소비하도록 허용되는 조건을 지정할 수 있다. 대안으로서, 또는 부가적으로, 규칙 세트(150)는 객체의 추적을 제어하기 위해 상이한 파티들에 대한 각각의 허가 수준을 지정할 수 있다. 예를 들어, 규칙 세트(150)는 파티(102)가 파티(101)의 객체를 추적하는 것을 방지할 수 있다. 또 다른 구현예에 있어서, 규칙 세트(150)는 객체의 하나 이상의 동작에 관하여 시한을 설정하는 타이머를 지정할 수 있다.
예를 들어, 파티(101)가 파티(102)에 객체를 전송하고, 또한 규칙 세트(150)가 해당 객체에 관하여 시한을 설정하는 타이머를 지정한다고 가정한다. 예를 들어, 객체가 파티에 전송 또는 제공되는 경우, 타이머는 수신 파티가 객체를 사용 또는 소비하도록 허용되는 기간을 지정할 수 있다. 수신 파티가 이 기간 내에 객체를 소비하지 않으면, 객체는 철회 또는 제거될 수 있다. 이 경우, 먼저 객체가 파티(102)에 전송되고, 해당 전송에 대한 기록이 생성 및 저장된다. 파티(102)가 규칙 세트(150)에 의해 설정된 소정의 시간 안에 객체를 파티(104)에 전송하지 않는다는 것을 관리 모듈(120)이 검출하면, 관리 모듈(120)은 객체를 파티(101)에게 회신하도록 동작을 기동하게 된다.
220에서, 관리 모듈(120)은 규칙 세트(150)를 복수의 파티에게 브로드캐스팅하므로, 다른 파티들(102 내지 105)은 각각 파티(101)에 의해 제안된 규칙 세트(150)를 수용할지의 여부에 대하여 결정할 수 있다.
230에서, 파티들(102 내지 105) 중 적어도 하나의 파티로부터 규칙 세트(150)에 대한 확인이 수신되면, 관리 모듈(120)은 해당 규칙 세트(150)를 이네이블 상태로 할 수 있다. 또한, 수신된 확인들 각각에 대하여 기록이 생성 및 저장될 수 있다. 예를 들어, 파티들(102, 103 및 105)이 자신의 확인을 관리 모듈(120)에 송신한다고 가정한다. 해당 확인들은 파티들(102, 103 및 105) 각각의 서명을 포함할 수 있다. 각각의 확인에 대하여, 관리 모듈(120)은, 예를 들어, 규칙 세트(150)에 대하여 지정된 이벤트 ID, 확인에 대한 설명, 및 확인이 송신된 시점을 나타내는 타임스탬프 중 적어도 하나를 포함하는 기록을 생성한다.
일부 구현예에 있어서, 확인 기록은 또한, 규칙 세트(150)에 대한 참조를 포함할 수 있다. 참조는 포인터 또는 URI(uniform resource indicator)로 구현될 수 있다. 대안으로서, 또는 부가적으로, 확인은 각각의 파티의 서명 및 해당 서명을 복호하기 위한 공개 키를 포함할 수 있다. 서명은, 예를 들어, 이벤트 ID, 공개 키 및/또는 규칙 세트(150)에 대한 참조를 개인 키를 사용해서 암호화함으로써 연산될 수 있다.
전술한 바와 같이, 파티(101)와 같은 원래의 파티는 그 객체에 관한 규칙 세트(150)를 개시할 수 있고, 그에 따라 객체가 다른 파티에 전송된 후에 객체가 다른 파티들 사이에서 어떻게 전송되는지를 제어할 수 있다. 예를 들어, 자신의 사진을 소셜 네트워크에 공유한 사용자는 객체가 지정된 특정 네트워크에만 전송될 수 있도록 지정한 규칙 세트(150)를 개시할 수 있다. 그렇지 않으면, 공유 동작은 거부된다. 이렇게 해서, 사진의 분배가 제어될 수 있다.
도 3은 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 객체에 대한 동작을 수행하는 방법(300)을 예시하는 흐름도이다. 310에서, 관리 모듈(120)은 파티(102)와 같은 파티로부터 객체와 관련된 동작에 대한 요청을 수신한다. 예를 들어, 요청된 동작은 객체의 적어도 일부를 파티(104)와 같은 다른 파티에 전송 또는 공유하는 것이다.
요청은 요청된 동작의 설명 또는 ID, 및 객체를 포함할 수 있다. 또한, 일부 구현예에 있어서, 요청은, 파티들(101 내지 105)이 동의한 규칙 세트(150)에 대하여 특정된 이벤트 ID, 규칙 세트(150)에 대한 참조, 파티의 서명, 개시 파티(이 실시예에서는, 파티(102))의 서명을 복호하기 위한 공개 키, 및 요청이 송신된 시점을 나타내는 타임스탬프 중 적어도 하나를 더 포함할 수 있다. 일부 구현예에 있어서, 동작에 대한 ID는 이벤트 ID의 해시값, 동작의 설명, 공개 키 및 규칙 세트(150)에 대한 참조로서 연산될 수 있다.
320에서, 관리 모듈(120)은 요청된 동작을 복수의 파티가 동의한 규칙 세트(150)에 기초하여 검증한다. 이에 관한 예시적인 구현예는 도 4에 도시된다. 관리 모듈(120)은 먼저 블록체인 데이터베이스(110)를 점검해서, 확인에 대한 기록이 존재하는지, 해당 기록이 파티(102)의 서명을 포함하는지의 여부를 판정한다. 이후, 410에서, 관리 모듈(120)은 요청으로부터 규칙 세트(150)에 대한 참조를 추출할 수 있다. 420에서, 관리 모듈(120)은 참조에 기초하여 규칙 세트(150)를 어드레싱 및 검색한다. 430에서, 관리 모듈(120)은 요청된 동작의 설명이 규칙 세트(150)에 합치하는지의 여부를 검사함으로써 요청된 동작을 검증한다. 예를 들어, 규칙 세트(150)가 실행 코드를 포함하는 경우, 관리 모듈(120)은 어떠한 위반이 있는지의 여부를 검사하기 위해 코드가 실행되게 할 수 있다.
선택적으로, 일부 구현예에 있어서는, 440에서, 관리 모듈(120)이 동작과 관련된 통지를 복수의 파티에 브로드캐스팅할 수 있다. 예를 들어, 관리 모듈(120)은 규칙 세트(150)와 동의한 모든 파티(101 내지 105)에게 통지를 브로드캐스팅해서, 동작이 검증 또는 수행되고 있음을 통지할 수 있다. 대안으로서, 관리 모듈(120)은 규칙 세트(150)에서 지정된 하나 이상의 특정 파티에게만 통지를 송신할 수 있다.
계속해서 도 3을 참조하면, 320에서 요청된 동작이 유효하다고 판정되면, 관리 모듈(120)은 330에서 동작이 수행되게 하고 340에서 동작에 대한 기록을 생성한다. 기록은 적어도, 사용된 규칙 세트(150)에 대하여 특정된 이벤트 ID를 포함한다. 또한, 일부 구현예에 있어서, 동작 기록은, 규칙 세트(150)에 대한 참조, 동작에 대한 ID, 동작의 설명, 관련된 파티의 서명, 서명을 복호하기 위한 공개 키, 및 요청이 송신된 시점을 나타내는 타임스탬프 중 하나 이상을 더 포함할 수 있다. 일부 구현예에 있어서, 기록에 포함될 정보의 일부 또는 전부는, 예를 들어 동작 요청으로부터 취득될 수 있다.
이후, 350에서, 생성된 기록이 블록체인 데이터베이스(110)에 저장된다. 이렇게 해서, 객체의 모든 동작이 고유한 이벤트 ID와 함께 기록된다. 후술되는 바와 같이, 나중에, 파티는 각각의 이벤트 ID를 가진 기록에 대하여 블록체인(110)을 검색함으로써 해당 객체의 흐름을 추적할 수 있다.
한편, 320에서, 규칙 세트(150)가 위반되었다고 판정되면, 관리 모듈(120)은 360에서 요청을 거부할 수 있다. 이 경우, 동작에 대하여 어떠한 기록도 생성되지 않는다. 대안으로서, 다른 구현예들에 있어서, 관리 모듈(120)은 여전히 동작에 대한 기록을 생성 및 저장하고, 이 기록에 해당 동작이 거절되었다는 지시자를 할당할 수 있다.
파티(101)와 같은 원래의 파티로부터 객체를 수신하는, 파티(102)와 같은 파티는 규칙 세트(150)에 기초하여 검증된 동작들만을 수행할 수 있기 때문에, 원래의 파티는 객체가 다른 파티에게 전송된 후에 객체가 그 밖의 파티들 사이에서 어떻게 전송되는지를 제어할 수 있다. 예를 들어, 소셜 네트워크에서, 공유된 사진은 사진의 원래의 소유자에 의해 지정된 다른 사용자들과만 후속하여 공유될 수 있다. 다른 실시예로서, 자선 단체에의 기부자는 기부금이 특정 목적으로만 사용될 수 있다고 지정할 수 있다.
도 5는 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 객체를 추적하는 방법(500)을 예시하는 흐름도이다. 510에서, 관리 모듈(120)은 복수의 파티(101 내지 105) 중 어느 파티로부터 객체를 추적하라는 요청을 수신한다. 이에 응답하여, 관리 모듈(120)은, 520에서, 블록체인 데이터베이스(110)로부터 객체와 관련된 동작들에 대한 하나 이상의 기록을 검색한다. 530에서, 관리 모듈(120)은 검색된 기록을 조회 파티에게 제공한다. 전술한 바와 같이, 규칙 세트(150)에 기초하여 검증된 객체의 동작들은 동일한 이벤트 ID를 공유할 수 있다. 즉, 동일한 이벤트에 속하는 동작들에 대한 기록은 이벤트 ID에 의해 검색될 수 있다. 이들 기록에 기초하여, 조회 파티는, 예를 들어, 먼저 객체가 파티(101)로부터 파티(102)로 전송되고 나서, 파티(102)로부터 파티(104)로 전송된다는 등을 알 수 있다. 일부 구현예에 있어서, 검색된 동작들은 객체의 흐름 또는 분배를 명확하게 나타내도록 시각화될 수 있다. 따라서, 파티는 그 객체의 흐름을 신뢰할 수 있고 용이하게 추적할 수 있다. 시각화의 실시예가 도 8을 참조하여 설명된다.
도 6은 본 명세서에서 설명되는 청구 대상의 예시적인 구현예에 따른 동작의 상태를 조회하는 방법(600)을 예시하는 흐름도이다. 610에서, 관리 모듈(120)은 동작의 상태에 대한 조회를 수신한다. 본 명세서에서 사용되는 용어 "상태"는 동작이 성공적으로 수행되었는지의 여부를 나타낸다.
620에서, 관리 모듈(120)은, 조회에 응답하여, 블록체인 데이터베이스(110) 내의 대상 작업에 대한 기록에 첨부된 후속 기록의 수를 결정할 수 있다.
630에서, 관리 모듈(120)은 후속 기록의 수에 기초하여 동작의 상태를 결정한다. 첨부된 후속 기록의 수가 소정의 수를 초과하면, 이는 동작에 대한 기록이 시스템에 수반되는 충분히 많은 수의 파티들에 의해 수용되었음을 의미한다는 것을 블록체인 데이터베이스(110)의 메커니즘으로부터 알 수 있다. 이 경우, 동작은 성공적인 것으로 간주될 수 있다. 그렇지 않으면, 상대적으로 적은 수의 첨부된 기록은 아마도, 동작 기록이, 예를 들어, 통신 지연 및/또는 그 밖의 요인들로 인해 다른 파티들에 의해 인식되지 않음을 나타내게 된다. 결과적으로, 후속 기록의 수는 동작의 상태를 결정하는 데 사용될 수 있다. 일부 구현예에 있어서, 관리 모듈(120)은 그 자체로 동작의 상태를 결정할 수 있다. 대안으로서, 관리 모듈(120)은 기록에 첨부되는 후속 기록들의 블록들을 조회 파티(102)에게 회신할 수 있으므로, 해당 파티(102)가 후속 기록들의 수에 기초하여 동작의 상태를 결정할 수 있다.
결과적으로, 조회 파티는 동작의 현재 상태를 취득할 수 있고, 그 상태에 기초하여 추가적인 동작들을 취할지의 여부를 결정할 수 있다. 예를 들어, 파티(102)가 그 요청된 동작이 거부된 것을 확인하면, 파티(102)는 동작에 대한 다른 요청을 재차 송신할 수 있다.
도 7은 본 명세서에서 설명되는 청구 대상의 하나 이상의 구현예를 구현하기에 적합한 장치(700)의 블록도이다. 예를 들어, 장치(700)는 도 2를 참조하여 전술한 바와 같은 관리 모듈(120)로서 기능할 수 있다. 다양한 구현예가 다양한 범용 또는 특수 목적 컴퓨팅 환경에서 구현될 수 있기 때문에, 장치(700)는 본 명세서에서 설명되는 청구 대상의 사용 범위 또는 기능에 대한 어떠한 한정도 제안하려는 것이 아님을 이해해야 한다.
도시된 바와 같이, 장치(700)는 적어도 하나의 처리 유닛(또는 프로세서)(710) 및 메모리(720)를 포함한다. 처리 유닛(710)은 컴퓨터-실행 가능 명령어를 실행하며, 실제 또는 가상 프로세서일 수 있다. 다중-처리 시스템에 있어서는, 다수의 처리 유닛이 컴퓨터-실행 가능 명령어를 실행해서 처리 능력을 증가시킨다. 메모리(720)는 휘발성 메모리(예컨대, 레지스터, 캐시, RAM), 비-휘발성 메모리(예컨대, ROM, EEPROM, 플래시 메모리), 또는 이들의 일부 조합일 수 있다.
도 7에 도시된 실시예에 있어서, 장치(700)는 스토리지(730), 하나 이상의 입력 장치(740), 하나 이상의 출력 장치(750), 및 하나 이상의 통신 연결부(760)를 더 포함한다. 버스, 컨트롤러, 또는 네트워크와 같은 상호 연결 메커니즘(도시되지 않음)은 장치(700)의 컴포넌트들을 상호 연결한다. 통상, 운영 체제 소프트웨어(도시되지 않음)는 장치(700)에서 실행되는 다른 소프트웨어의 동작 환경을 제공하고 장치(700)의 컴포넌트들의 작동을 조정한다.
스토리지(730)는 착탈식 또는 고정식 스토리지일 수 있으며, 정보를 저장하는 데 사용될 수 있으며 장치(700) 내부에서 액세스될 수 있는 플래시 드라이브, 자기 디스크 또는 임의의 다른 매체와 같은 컴퓨터-판독 가능 스토리지 매체를 포함할 수 있다. 입력 장치(들)(740)는 하나 이상의 다양한 상이한 입력 장치일 수 있다. 예를 들어, 입력 장치(들)(740)는 마우스, 키보드, 트랙볼 등과 같은 사용자 장치를 포함할 수 있다. 입력 장치(들)(740)는 음성 인식 또는 터치와 같은 하나 이상의 자연 사용자 인터페이스 기술 및 스타일러스 인식을 구현할 수 있다. 다른 실시예로서, 입력 장치(들)(740)는 스캐닝 장치; 네트워크 어댑터; 또는 장치(700)에 입력을 제공하는 다른 장치를 포함할 수 있다. 출력 장치(들)(750)는 디스플레이, 프린터, 스피커, 네트워크 어댑터, 또는 장치(700)로부터 출력을 제공하는 다른 장치일 수 있다. 입력 장치(들)(740) 및 출력 장치(들)(750)는 터치 스크린 또는 가상 현실 시스템과 같은 단일 시스템 또는 장치에 통합될 수 있다.
통신 연결부(들)(760)는 통신 매체를 통해 다른 컴퓨팅 엔티티와의 통신을 가능하게 한다. 부가적으로, 장치(700)의 컴포넌트들의 기능은 통신 연결부를 통해 통신할 수 있는 단일의 컴퓨팅 머신 또는 다수의 컴퓨팅 머신에서 구현될 수 있다. 따라서, 장치(700)는 하나 이상의 다른 서버, 네트워크 PC, 또는 다른 공통 네트워크 노드에의 논리적 연결부를 사용해서 네트워킹된 환경(예를 들어, 환경(100))에서 동작할 수 있다. 한정이 아닌 실시예로서, 통신 매체는 유선 또는 무선 네트워킹 기술을 포함한다.
본 명세서에서 설명되는 청구 대상의 구현예들에 따르면, 관리 모듈(120)은 객체에 관한 이벤트와 관련되는 동작들을 제어 및 추적하도록 장치(700) 상에서 실행될 수 있다. 처리 유닛(710)에 의한 실행시에, 관리 모듈(120)의 적어도 일부는 메모리(720)에 로딩되게 된다. 관리 모듈(120)의 다른 부분(있는 경우)은 스토리지(730) 또는 임의의 다른 비-휘발성 스토리지 매체에 저장될 수 있다. 동작에 있어서, 관리 모듈(120)은 전술한 바와 같이 하나 이상의 방법/프로세스를 수행할 수 있다.
예시적인 시나리오
이제, 본 명세서에서 설명되는 청구 대상의 예시적인 구현예들을 디지털 저작권 관리(CRM)의 맥락에서 설명한다. 예를 들어, 파티(예를 들어, 게시자(publisher))는 그 디지털 콘텐츠의 흐름을 용이하고 신뢰할 수 있게 제어 및 추적해서, 디지털 콘텐츠가 지정된 시한 내에 또는 지정된 횟수 동안 의도한 파티(예를 들어, 뷰어(viewer))에 의해 이용되는 것을 보증하고 싶어한다. 디지털 콘텐츠는 비디오, 오디오, 이미지, 리뷰, 또는 임의의 다른 적절한 디지털 콘텐츠를 예로서 포함하지만, 이들에 한정되는 것은 아니다.
이를 위해, 게시자는 디지털 콘텐츠에 대한 규칙 세트(150)를 규정하고 해당 규칙 세트(150)를 관리 모듈(120)을 통해 블록체인(110)에 저장할 수 있다. 예를 들어, 규칙 세트(150)는 게시자로부터의 디지털 콘텐츠를 수신하는 임의의 뷰어가 단 15일 동안만 디지털 콘텐츠를 소비할 수 있다고 지정할 수 있다. 디지털 콘텐츠는 이 기간 동안만 뷰어에 의해 액세스 또는 소비될 수 있다. 규칙 세트(150)는 또한, 뷰어가 디지털 콘텐츠를 10회 이하로 다른 뷰어들과 공유할 수 있다고 지정할 수도 있다.
일 구현예에 있어서, 규칙 세트(150)를 설정 및 검증하는 것은 실행 코드로서 구현될 수 있다. 예시적인 코드 조각(code snippet)은 다음과 같이 도시된다:
Figure pct00001
게시자는 코드를 설정하기 위한 요청을 관리 모듈(120)에 송신한다. 관리 모듈(120)은 다른 파티들의 확인을 위해 해당 코드를 브로드캐스팅한다. 이후, 게시자는 디지털 콘텐츠를 제1 뷰어에게 전송하기 위한 요청을 송신할 수 있다. 관리 모듈(120)은 블록체인 데이터베이스(110)를 점검해서 제1 뷰어가 규칙 세트(150)를 수용하는지의 여부를 판정하게 된다. 수용하면, 관리 모듈(120)은 요청으로부터 코드에 대한 참조를 추출하고, 코드에 액세스하고, 코드를 실행시켜서 어떠한 위반이 있는지의 여부를 점검한다.
요청된 동작이 유효하다고 판정되면, 관리 모듈(120)은 디지털 콘텐츠가 제1 뷰어에게 분배되는 것을 허용한다. 이 분배 동작에 대한 기록이 생성되어 블록체인(110)에 저장된다. 이 기록은 규칙 세트(150)에 대하여 특정된다. 전술한 바와 같이, 규칙 세트(150)하에서 디지털 콘텐츠에 대하여 게시자 및 제1 뷰어에 의해 수행되는 모든 동작 또는 행위는 동일한 이벤트에 속한다. 결과적으로, 블록체인(110) 내의 이들의 기록은 동일한 이벤트 ID를 갖게 된다.
제1 뷰어가 디지털 콘텐츠를 제2 뷰어와 공유하고 싶어한다고 가정한다. 관리 모듈(120)은, 이러한 요청의 수신시에, 요청된 동작을 규칙 세트(150)에 기초하여 검증한다. 보다 구체적으로, 이 실시예에 있어서, 관리 모듈(120)은 코드를 실행함으로써, 제1 뷰어가 디지털 콘텐츠를 이미 다른 뷰어들과 공유한 횟수를 점검할 수 있다. 횟수가 10회이면, 관리 모듈(120)은 디지털 콘텐츠를 공유하기 위한 요청을 거부하게 된다.
부가적으로, 규칙 세트(150)에 의해 규정된 바와 같이, 임의의 뷰어는 디지털 콘텐츠를 단 15일 동안만 소비할 수 있다. 따라서, 디지털 콘텐츠가 제1 뷰어에게 분배되면, 관리 모듈(120)은 제1 뷰어가 디지털 콘텐츠를 소유하는 기간을 모니터링하도록 타이머를 설정할 수 있다. 15일이 지나면, 관리 모듈(120)은 제1 뷰어로부터 디지털 콘텐츠를 제거하는 동작을 기동한다.
또한, 게시자 및/또는 뷰어는 그들이 개시한 동작들의 상태를 점검할 수 있다. 예를 들어, 게시자가 다른 파티들 사이에서의 디지털 콘텐츠의 흐름을 추적하고 싶어하면, 게시자는 이벤트 ID를 포함하는 추적 요청을 송신할 수 있다. 이에 응답하여, 관리 모듈(120)은 블록체인 데이터베이스(110)로부터 해당 이벤트 ID를 포함하는 하나 이상의 기록을 검색하고, 검색된 기록을 게시자에게 회신한다. 일부 구현예에 있어서, 이들 기록은 시각화되어 디지털 콘텐츠의 흐름을 나타낼 수 있다. 예를 들면, 도 8은 디지털 콘텐츠의 흐름을 보여주는 사용자 인터페이스(UI)(800)의 개략도를 도시한다.
UI(800)의 도시된 상태에 있어서, 게시자(810)는 디지털 콘텐츠가 먼저 제1 뷰어(802)에게 전송되는 디지털 콘텐츠의 분배 경로를 명확히 알 수 있다. 파티(802)는 결국 디지털 콘텐츠를 뷰어(803 및 804)와 공유하고, 뷰어(804)는 해당 콘텐츠를 또 다른 뷰어(805)와 더 공유한다. UI(800)는 본 명세서에서 설명되는 청구 대상의 범위에 대한 어떠한 한정도 제안하지 않는 실시예일 뿐임을 이해해야 한다. 임의의 다른 적절한 형태의 UI가 디지털 콘텐츠의 흐름을 최종 사용자에게 나타내는 데 사용될 수 있다.
이렇게 해서, 게시자가 디지털 콘텐츠가 일부 파티(예를 들어, 경쟁자)에게 불법적으로 분배되는 것을 발견하면, 게시자는 그 저작권을 보호하기 위한 조치를 취할 수 있다. 이렇게, 게시자는 그 디지털 콘텐츠의 흐름을 효과적으로 및 효율적으로 제어 및 추적할 수 있다.
본 명세서에서 설명되는 청구 대상의 정신 및 원리를 예시할 목적으로, 그 일부 특정 구현예를 위에서 설명했다. 객체와 관련된 하나 이상의 동작에 대한 하나 이상의 제한을 규정하는 규칙 세트를 설정하고, 해당 객체를 이벤트 ID에 기초하여 추적함으로써, 하나의 파티는 단순하고, 신뢰할 수 있으며, 신용할 수 있는 방식으로 다른 파티들 사이에서 자신이 원래 소유한 객체의 흐름 또는 분배를 제어 및 추적할 수 있게 된다.
일반적으로, 다양한 예시적인 구현예들은 하드웨어 또는 특수 목적 회로, 소프트웨어, 논리 또는 이들의 임의의 조합으로 구현될 수 있다. 일부 양태들은 하드웨어로 구현될 수 있는 반면, 다른 양태들은 컨트롤러, 마이크로프로세서 또는 다른 컴퓨팅 장치에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수 있다. 본 명세서에서 설명되는 청구 대상의 예시적인 구현예들의 다양한 양태들이 블록도로서, 흐름도로서, 또는 일부 다른 그림 표현을 이용해서 예시 및 설명되지만, 본 명세서에서 설명되는 블록, 장치, 시스템, 기술 또는 방법은 비제한적인 실시예로서, 하드웨어, 소프트웨어, 펌웨어, 특수 목적 회로 또는 논리, 범용 하드웨어 또는 컨트롤러 또는 다른 컴퓨팅 장치, 또는 이들의 일부 조합으로 구현될 수 있음을 이해할 것이다.
본 명세서에서 설명되는 청구 대상의 맥락에서, 기계 판독 가능 매체는 명령어 실행 시스템, 장치, 또는 디바이스에 의해 또는 그와 관련하여 사용하기 위한 프로그램을 포함 또는 저장할 수 있는 임의의 유형의(tangible) 매체일 수 있다. 기계 판독 가능 매체는 기계 판독 가능 신호 매체 또는 기계 판독 가능 스토리지 매체일 수 있다. 기계 판독 가능 매체는 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치, 또는 디바이스, 또는 전술한 것들의 임의의 적절한 조합을 포함할 수 있지만, 이들에 한정되는 것은 아니다. 기계 판독 가능 스토리지 매체의 보다 구체적인 실시예들은 하나 이상의 와이어를 갖는 전기 연결부, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 리드-온리 메모리(ROM), 소거 및 프로그램 가능 리드-온리 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 리드-온리 메모리(CD-ROM), 광학 스토리지 장치, 자기 스토리지 장치, 또는 전술한 것들의 임의의 적절한 조합을 포함한다.
본 명세서에서 설명되는 청구 대상의 방법들을 수행하기 위한 컴퓨터 프로그램 코드는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 이들 컴퓨터 프로그램 코드는 범용 컴퓨터, 특수 목적 컴퓨터, 또는 그 밖의 프로그램 가능 데이터 처리 장치의 프로세서에 제공될 수 있고, 프로그램 코드는, 상기 컴퓨터 또는 그 밖의 프로그램 가능 데이터 처리 장치의 프로세서에 의한 실행시에, 흐름도 및/또는 블록도에서 특정되는 기능들 또는 동작들이 구현되게 한다. 프로그램 코드는 전적으로 컴퓨터 상에서, 부분적으로 컴퓨터 상에서, 독립형 소프트웨어 패키지로서, 부분적으로 컴퓨터 상 및 부분적으로 원격 컴퓨터 상에서, 또는 전적으로 원격 컴퓨터 또는 서버 상에서 실행될 수 있다.
또한, 동작들이 특정 순서로 묘사되어 있지만, 이는 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되는 것, 또는 예시된 모든 동작들이 수행되는 것을 필요로 하는 것으로서 이해되지 않아야 한다. 특정 상황에 있어서는, 멀티태스킹 및 병행 처리가 유리할 수 있다. 마찬가지로, 상기의 논의에서는 몇몇 특정 구현예의 상세가 포함되어 있지만, 이들은 임의의 개시 내용의 범위 또는 청구될 수 있는 범위에 대한 한정으로서 해석되지 않아야 하고, 오히려 특정 개시 내용의 특정 구현예에 대하여 특정될 수 있는 특징들의 설명으로서 해석되어야 한다. 본 명세서에 있어서 별도의 구현예들의 맥락에서 설명되는 특정한 특징들은 단일의 구현예에서 조합하여 구현될 수도 있다. 반대로, 단일의 구현예의 맥락에서 설명되는 다양한 특징들은 다수의 구현예에서 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수도 있다.
이제, 단지 예시의 목적으로, 몇몇 예시적인 구현예를 아래에 나열한다.
일부 구현예에 있어서, 본 명세서에서 설명되는 청구 대상은 방법으로서 구체화될 수 있다. 방법은, 복수의 파티 중 제1 파티로부터, 객체와 관련된 동작에 대한 요청을 수신하는 단계; 복수의 파티가 동의한 규칙 세트에 기초하여 요청된 동작을 검증하는 단계― 규칙 세트는 객체와 관련된 하나 이상의 동작에 대한 하나 이상의 제한을 규정함 ―; 및 요청된 동작이 유효하다는 검증에 응답하여, 동작이 수행되게 하고; 동작에 대한 기록을 생성하고― 기록은 규칙 세트에 대하여 특정됨 ―; 또한 복수의 파티가 액세스할 수 있는 블록체인 데이터베이스에 기록을 저장하는 단계를 포함한다.
일부 구현예에 있어서, 방법은, 복수의 파티 중 제2 파티로부터 규칙 세트를 설정하라는 요청을 수신하고; 규칙 세트를 복수의 파티에게 브로드캐스팅하고; 복수의 파티 중 적어도 하나의 파티로부터 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 규칙 세트를 이네이블 상태로 함으로써, 복수의 파티에 대하여 규칙 세트를 설정하는 단계를 더 포함한다.
일부 구현예에 있어서, 규칙 세트를 이네이블 상태로 하는 단계는, 복수의 파티 중 제3 파티로부터 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 확인에 대한 기록을 생성하는 단계― 기록은 제3 파티의 서명을 포함함 ―; 및 확인에 대한 기록을 블록체인 데이터베이스에 저장하는 단계를 포함한다.
일부 구현예에 있어서, 방법은, 복수의 파티 중 제4 파티로부터 객체를 추적하라는 요청을 수신하는 단계; 객체를 추적하라는 요청을 수신하는 것에 응답하여, 객체와 관련된 동작들에 대한 하나 이상의 기록을 블록체인 데이터베이스로부터 검색하는 단계; 및 검색된 기록을 제4 파티에게 제공하는 단계를 더 포함한다.
일부 구현예에 있어서, 요청된 동작을 검증하는 단계는, 동작에 대한 요청을 수신하는 것에 응답하여, 동작과 관련된 통지를 복수의 파티에게 브로드캐스팅하는 단계를 더 포함한다.
일부 구현예에 있어서, 요청된 동작을 검증하는 단계는, 해당 요청으로부터 규칙 세트에 대한 참조를 추출하는 단계; 및 검증을 위한 참조에 기초하여 규칙 세트를 어드레싱하는 단계를 포함한다.
일부 구현예에 있어서, 규칙 세트는 실행 코드를 포함하고, 요청된 동작을 검증하는 단계는 코드를 실행시킴으로써 요청된 동작을 검증하는 단계를 포함한다.
일부 구현예에 있어서, 제1 기록은, 규칙 세트에 대하여 특정된 이벤트 식별부호(ID), 규칙 세트에 대한 참조, 동작에 대한 ID, 동작의 설명, 제1 파티의 서명, 제1 파티의 서명을 복호하기 위한 공개 키, 및 제1 요청이 송신되는 시점을 나타내는 타임스탬프 중 적어도 하나를 더 포함한다.
일부 구현예에 있어서, 방법은, 동작의 상태에 대한 조회를 수신하는 단계― 상태는 동작이 성공적으로 수행되는지의 여부를 나타냄 ―; 조회에 응답하여, 블록체인 데이터베이스에서 동작에 대한 기록에 첨부되는 후속 기록의 수를 결정하는 단계; 및 후속 기록의 수에 기초하여 동작의 상태를 결정하는 단계를 더 포함한다.
일부 구현예에 있어서, 본 명세서에서 설명되는 청구 대상은 장치로서 구체화될 수 있다. 장치는 처리 유닛 및 메모리를 포함한다. 메모리는 처리 유닛에 결합되며, 처리 유닛에 의한 실행을 위한 명령어를 저장한다. 명령어는, 처리 유닛에 의한 실행시에, 장치로 하여금, 복수의 파티 중 제1 파티로부터, 객체와 관련된 동작에 대한 요청을 수신하고; 복수의 파티가 동의한 규칙 세트에 기초하여 요청된 동작을 검증하고― 규칙 세트는 객체와 관련된 하나 이상의 동작에 대한 하나 이상의 제한을 규정함 ―; 요청된 동작이 유효하다는 검증에 응답하여, 동작이 수행되게 하고, 동작에 대한 기록을 생성하고― 기록은 규칙 세트에 대하여 특정됨 ―, 복수의 파티가 액세스할 수 있는 블록체인 데이터베이스에 기록을 저장하게 한다.
일부 구현예에 있어서, 명령어는 또한, 처리 유닛에 의한 실행시에, 장치로 하여금, 복수의 파티 중 제2 파티로부터 규칙 세트를 설정하라는 요청을 수신하고; 규칙 세트를 복수의 파티에게 브로드캐스팅하고; 복수의 파티 중 적어도 일부의 파티로부터 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 규칙 세트를 이네이블 상태로 함으로써, 복수의 파티에 대하여 규칙 세트를 설정하게 한다.
일부 구현예에 있어서, 규칙 세트를 이네이블 상태로 하는 것은, 복수의 파티 중 제3 파티로부터 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 확인에 대한 기록을 생성하는 것― 기록은 제3 파티의 서명을 포함함 ―; 및 확인에 대한 기록을 블록체인 데이터베이스에 저장하는 것을 포함한다.
일부 구현예에 있어서, 명령어는 또한, 처리 유닛에 의한 실행시에, 장치로 하여금, 복수의 파티 중 제4 파티로부터 객체를 추적하라는 요청을 수신하고; 객체를 추적하라는 요청을 수신하는 것에 응답하여, 객체와 관련된 동작들에 대한 하나 이상의 기록을 블록체인 데이터베이스로부터 검색하고; 검색된 기록을 제4 파티에게 제공하게 한다.
일부 구현예에 있어서, 요청된 동작을 검증하는 것은, 동작에 대한 요청을 수신하는 것에 응답하여, 동작과 관련된 통지를 복수의 파티에게 브로드캐스팅하는 것을 더 포함한다.
일부 구현예에 있어서, 요청된 동작을 검증하는 것은, 해당 요청으로부터 규칙 세트에 대한 참조를 추출하는 것; 및 검증을 위한 참조에 기초하여 규칙 세트를 어드레싱하는 것을 포함한다.
일부 구현예에 있어서, 규칙 세트는 실행 코드를 포함하고, 요청된 동작을 검증하는 것은 코드를 실행시킴으로써 요청된 동작을 검증하는 것을 포함한다.
일부 구현예에 있어서, 기록은, 규칙 세트에 대하여 특정된 이벤트 ID, 규칙 세트에 대한 참조, 동작에 대한 ID, 동작의 설명, 제1 파티의 서명, 제1 파티의 서명을 복호하기 위한 공개 키, 및 요청이 송신되는 시점을 나타내는 타임스탬프 중 적어도 하나를 더 포함한다.
일부 구현예에 있어서, 명령어는 또한, 처리 유닛에 의한 실행시에, 장치로 하여금, 동작의 상태에 대한 조회를 수신하고― 상태는 동작이 성공적으로 수행되는지의 여부를 나타냄 ―; 조회에 응답하여, 블록체인 데이터베이스에서 동작에 대한 기록에 첨부되는 후속 기록의 수를 결정하고; 후속 기록의 수에 기초하여 동작의 상태를 결정하게 한다.
일부 구현예에 있어서, 본 명세서에서 설명되는 청구 대상은 컴퓨터 프로그램 제품으로서 구체화될 수 있다. 컴퓨터 프로그램 제품은 비-일시적인 기계-판독 가능 매체 상에 유형으로 저장되고 기계-실행 가능 명령어를 포함한다. 명령어는, 장치 상에서의 실행시에, 장치로 하여금, 복수의 파티 중 제1 파티로부터, 객체와 관련된 동작에 대한 요청을 수신하고; 복수의 파티가 동의한 규칙 세트에 기초하여 요청된 동작을 검증하고― 규칙 세트는 객체와 관련된 하나 이상의 동작에 대한 하나 이상의 제한을 규정함 ―; 요청된 동작이 유효하다는 검증에 응답하여, 동작이 수행되게 하고, 동작에 대한 기록을 생성하고― 기록은 규칙 세트에 대하여 특정됨 ―, 복수의 파티가 액세스할 수 있는 블록체인 데이터베이스에 기록을 저장하게 한다.
일부 구현예에 있어서, 명령어는 또한, 장치 상에서의 실행시에, 장치로 하여금, 복수의 파티 중 제2 파티로부터 규칙 세트를 설정하라는 요청을 수신하고; 규칙 세트를 복수의 파티에게 브로드캐스팅하고; 복수의 파티 중 적어도 일부의 파티로부터 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 규칙 세트를 이네이블 상태로 함으로써, 복수의 파티에 대하여 규칙 세트를 설정하게 한다.
일부 구현예에 있어서, 규칙 세트를 이네이블 상태로 하는 단계는, 복수의 파티 중 제3 파티로부터 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 확인에 대한 기록을 생성하는 단계― 기록은 제3 파티의 서명을 포함함 ―; 및 확인에 대한 기록을 블록체인 데이터베이스에 저장하는 단계를 포함한다.
일부 구현예에 있어서, 명령어는 또한, 장치 상에서의 실행시에, 장치로 하여금, 복수의 파티 중 제4 파티로부터 객체를 추적하라는 요청을 수신하고; 객체를 추적하라는 요청을 수신하는 것에 응답하여, 객체와 관련된 동작들에 대한 하나 이상의 기록을 블록체인 데이터베이스로부터 검색하고; 검색된 기록을 제4 파티에게 제공하게 한다.
일부 구현예에 있어서, 요청된 동작을 검증하는 것은, 동작에 대한 요청을 수신하는 것에 응답하여, 동작과 관련된 통지를 복수의 파티에게 브로드캐스팅하는 것을 더 포함한다.
일부 구현예에 있어서, 요청된 동작을 검증하는 것은, 해당 요청으로부터 규칙 세트에 대한 참조를 추출하는 것; 및 검증을 위한 참조에 기초하여 규칙 세트를 어드레싱하는 것을 포함한다.
일부 구현예에 있어서, 규칙 세트는 실행 코드를 포함하고, 요청된 동작을 검증하는 것은 코드를 실행시킴으로써 요청된 동작을 검증하는 것을 포함한다.
일부 구현예에 있어서, 기록은, 규칙 세트에 대하여 특정된 이벤트 ID, 규칙 세트에 대한 참조, 동작에 대한 ID, 동작의 설명, 제1 파티의 서명, 제1 파티의 서명을 복호하기 위한 공개 키, 및 요청이 송신되는 시점을 나타내는 타임스탬프 중 적어도 하나를 더 포함한다.
일부 구현예에 있어서, 명령어는 또한, 장치 상에서의 실행시에, 장치로 하여금, 동작의 상태에 대한 조회를 수신하고― 상태는 동작이 성공적으로 수행되는지의 여부를 나타냄 ―; 조회에 응답하여, 블록체인 데이터베이스에서 동작에 대한 기록에 첨부되는 후속 기록의 수를 결정하고; 후속 기록의 수에 기초하여 동작의 상태를 결정하게 한다.
첨부 도면과 함께 숙독하면, 본 개시물의 전술한 예시적인 구현예들에 대한 다양한 수정, 변경은 전술한 설명을 고려하여 당업자에게 명백해질 것이다. 임의의 및 모든 수정은 여전히 본 개시물의 비제한적이며 예시적인 구현예들의 범위 내에 있다. 또한, 본 명세서에서 제시된 본 개시물의 다른 구현예들은 전술한 설명 및 도면에 제시된 교시의 이점을 갖는 본 개시물의 이들 구현예가 속하는 분야의 당업자에게 연상될 것이다.
따라서, 본 개시물의 구현예들은 개시된 특정 구현예들에 한정되지 않으며, 수정예들 및 그 밖의 구현예들은 첨부된 청구항들의 범위 내에 포함되도록 의도된 것임을 이해할 것이다. 특정 용어들이 본 명세서에서 사용되지만, 이들 용어는 일반적이고 설명적인 의미로 사용될 뿐, 한정하려는 것은 아니다.

Claims (20)

  1. 복수의 파티 중 제1 파티로부터, 객체와 관련된 동작에 대한 요청을 수신하는 단계;
    상기 복수의 파티가 동의한 규칙 세트에 기초하여 상기 요청된 동작을 검증하는 단계― 상기 규칙 세트는 상기 객체와 관련된 하나 이상의 동작에 대한 하나 이상의 제한을 규정함 ―; 및
    상기 요청된 동작이 유효하다는 검증에 응답하여,
    상기 요청된 동작이 수행되게 하는 단계;
    상기 동작에 대한 기록을 생성하는 단계― 상기 기록은 상기 규칙 세트에 대하여 특정됨 ―;
    상기 복수의 파티가 액세스할 수 있는 블록체인 데이터베이스에 상기 기록을 저장하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 복수의 파티 중 제2 파티로부터 상기 규칙 세트를 설정하라는 요청을 수신하고; 상기 규칙 세트를 상기 복수의 파티에게 브로드캐스팅하고; 상기 복수의 파티 중 적어도 하나의 파티로부터 상기 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 상기 규칙 세트를 이네이블 상태로 함으로써, 상기 복수의 파티에 대하여 상기 규칙 세트를 설정하는 단계를 더 포함하는
    방법.
  3. 제2항에 있어서,
    상기 규칙 세트를 이네이블 상태로 하는 것은,
    상기 복수의 파티 중 제3 파티로부터 상기 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 상기 확인에 대한 기록을 생성하는 것― 상기 기록은 상기 제3 파티의 서명을 포함함 ―; 및
    상기 확인에 대한 기록을 상기 블록체인 데이터베이스에 저장하는 것을 포함하는
    방법.
  4. 제1항에 있어서,
    상기 복수의 파티 중 제4 파티로부터 상기 객체를 추적하라는 요청을 수신하는 단계;
    상기 객체를 추적하라는 요청을 수신하는 것에 응답하여, 상기 객체와 관련된 동작들에 대한 하나 이상의 기록을 상기 블록체인 데이터베이스로부터 검색하는 단계; 및
    상기 검색된 기록을 상기 제4 파티에게 제공하는 단계를 더 포함하는
    방법.
  5. 제1항에 있어서,
    상기 요청된 동작을 검증하는 단계는, 상기 동작에 대한 요청을 수신하는 것에 응답하여, 상기 동작과 관련된 통지를 상기 복수의 파티에게 브로드캐스팅하는 단계를 더 포함하는
    방법.
  6. 제1항에 있어서,
    상기 요청된 동작을 검증하는 단계는,
    상기 요청으로부터 상기 규칙 세트에 대한 참조를 추출하는 단계; 및
    상기 검증을 위해 상기 참조에 기초하여 상기 규칙 세트를 어드레싱하는 단계를 포함하는
    방법.
  7. 제1항에 있어서,
    상기 규칙 세트는 실행 코드를 포함하고, 상기 요청된 동작을 검증하는 단계는 상기 코드를 실행시킴으로써 상기 요청된 동작을 검증하는 단계를 포함하는
    방법.
  8. 제1항에 있어서,
    상기 기록은, 상기 규칙 세트에 대하여 특정된 이벤트 식별부호(ID), 상기 규칙 세트에 대한 참조, 상기 동작에 대한 ID, 상기 동작의 설명, 상기 제1 파티의 서명, 상기 제1 파티의 서명을 복호하기 위한 공개 키, 및 상기 요청이 송신되는 시점을 나타내는 타임스탬프 중 적어도 하나를 더 포함하는
    방법.
  9. 제1항에 있어서,
    상기 동작의 상태에 대한 조회를 수신하는 단계― 상기 상태는 상기 동작이 성공적으로 수행되는지의 여부를 나타냄 ―;
    상기 조회에 응답하여, 상기 블록체인 데이터베이스에서 상기 동작에 대한 기록에 첨부되는 후속 기록의 수를 결정하는 단계; 및
    상기 후속 기록의 수에 기초하여 상기 동작의 상태를 결정하는 단계를 더 포함하는
    방법.
  10. 처리 유닛; 및 상기 처리 유닛에 결합되며 상기 처리 유닛에 의한 실행을 위한 명령어를 저장하는 메모리를 포함하는 장치로서,
    상기 명령어는, 상기 처리 유닛에 의한 실행시에, 상기 장치로 하여금,
    복수의 파티 중 제1 파티로부터, 객체와 관련된 동작에 대한 요청을 수신하는 행위(act);
    상기 복수의 파티가 동의한 규칙 세트에 기초하여 상기 요청된 동작을 검증하는 행위― 상기 규칙 세트는 상기 객체와 관련된 하나 이상의 동작에 대한 하나 이상의 제한을 규정함 ―; 및
    상기 요청된 동작이 유효하다는 검증에 응답하여, 상기 동작이 수행되게 하고, 상기 동작에 대한 기록을 생성하고― 상기 기록은 상기 규칙 세트에 대하여 특정됨 ―, 상기 복수의 파티가 액세스할 수 있는 블록체인 데이터베이스에 기록을 저장하는 행위
    를 포함하는 행위들을 수행하게 하는
    장치.
  11. 제10항에 있어서,
    상기 명령어는, 상기 처리 유닛에 의한 실행시에, 상기 장치로 하여금, 상기 복수의 파티 중 제2 파티로부터 상기 규칙 세트를 설정하라는 요청을 수신하고; 상기 규칙 세트를 상기 복수의 파티에게 브로드캐스팅하고; 상기 복수의 파티 중 적어도 하나의 파티로부터 상기 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 상기 규칙 세트를 이네이블 상태로 함으로써, 상기 복수의 파티에 대하여 상기 규칙 세트를 더 설정하게 하는
    장치.
  12. 제11항에 있어서,
    상기 규칙 세트를 이네이블 상태로 하는 것은,
    상기 복수의 파티 중 제3 파티로부터 상기 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 상기 확인에 대한 기록을 생성하는 것― 상기 기록은 상기 제3 파티의 서명을 포함함 ―; 및
    상기 확인에 대한 기록을 상기 블록체인 데이터베이스에 저장하는 것을 포함하는
    장치.
  13. 제10항에 있어서,
    상기 행위들은,
    상기 복수의 파티 중 제4 파티로부터 상기 객체를 추적하라는 요청을 수신하는 행위;
    상기 객체를 추적하라는 요청을 수신하는 것에 응답하여, 상기 객체와 관련된 동작들에 대한 하나 이상의 기록을 상기 블록체인 데이터베이스로부터 검색하는 행위; 및
    상기 검색된 기록을 상기 제4 파티에게 제공하는 행위를 더 포함하는
    장치.
  14. 제10항에 있어서,
    상기 요청된 동작을 검증하는 행위는, 상기 동작에 대한 요청을 수신하는 것에 응답하여, 상기 동작과 관련된 통지를 상기 복수의 파티에게 브로드캐스팅하는 행위를 더 포함하는
    장치.
  15. 제10항에 있어서,
    상기 요청된 동작을 검증하는 행위는,
    상기 요청으로부터 상기 규칙 세트에 대한 참조를 추출하는 행위; 및
    상기 검증을 위해 상기 참조에 기초하여 상기 규칙 세트를 어드레싱하는 행위를 포함하는
    장치.
  16. 제10항에 있어서,
    상기 규칙 세트는 실행 코드를 포함하고,
    상기 요청된 동작을 검증하는 행위는 상기 코드를 실행시킴으로써 상기 요청된 동작을 검증하는 행위를 포함하는
    장치.
  17. 제10항에 있어서,
    상기 기록은, 상기 규칙 세트에 대하여 특정된 이벤트 ID, 상기 규칙 세트에 대한 참조, 상기 동작에 대한 ID, 상기 동작의 설명, 상기 제1 파티의 서명, 상기 제1 파티의 서명을 복호하기 위한 공개 키, 및 상기 요청이 송신되는 시점을 나타내는 타임스탬프 중 적어도 하나를 더 포함하는
    장치.
  18. 제10항에 있어서,
    상기 행위들은,
    상기 동작의 상태에 대한 조회를 수신하는 행위― 상기 상태는 상기 동작이 성공적으로 수행되는지의 여부를 나타냄 ―;
    상기 조회에 응답하여, 상기 블록체인 데이터베이스에서 상기 동작에 대한 기록에 첨부되는 후속 기록의 수를 결정하는 행위; 및
    상기 후속 기록의 수에 기초하여 상기 동작의 상태를 결정하는 행위를 더 포함하는
    장치.
  19. 비-일시적인 기계-판독 가능 매체 상에 유형으로 저장되고 기계-실행 가능 명령어를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 명령어는, 장치 상에서의 실행시에, 상기 장치로 하여금,
    복수의 파티 중 제1 파티로부터, 객체와 관련된 동작에 대한 요청을 수신하고;
    상기 복수의 파티가 동의한 규칙 세트에 기초하여 상기 요청된 동작을 검증하고― 상기 규칙 세트는 상기 객체와 관련된 하나 이상의 동작에 대한 하나 이상의 제한을 규정함 ―;
    상기 요청된 동작이 유효하다는 검증에 응답하여, 상기 동작이 수행되게 하고, 상기 동작에 대한 기록을 생성하고― 상기 기록은 상기 규칙 세트에 대하여 특정됨 ―, 상기 복수의 파티가 액세스할 수 있는 블록체인 데이터베이스에 상기 기록을 저장하게 하는
    컴퓨터 프로그램 제품.
  20. 제19항에 있어서,
    상기 명령어는, 상기 장치 상에서의 실행시에, 상기 장치로 하여금, 상기 복수의 파티 중 제2 파티로부터 상기 규칙 세트를 설정하라는 요청을 수신하고; 상기 규칙 세트를 상기 복수의 파티에게 브로드캐스팅하고; 상기 복수의 파티 중 적어도 하나의 파티로부터 상기 규칙 세트에 대한 확인을 수신하는 것에 응답하여, 상기 규칙 세트를 이네이블 상태로 함으로써, 상기 복수의 파티에 대하여 상기 규칙 세트를 더 설정하게 하는
    컴퓨터 프로그램 제품.
KR1020197006728A 2016-09-09 2016-09-09 서로 다른 파티들 사이에서 객체들을 추적하는 기법 KR102556741B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/098610 WO2018045574A1 (en) 2016-09-09 2016-09-09 Tracing objects across different parties

Publications (2)

Publication Number Publication Date
KR20190046843A true KR20190046843A (ko) 2019-05-07
KR102556741B1 KR102556741B1 (ko) 2023-07-17

Family

ID=61561624

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197006728A KR102556741B1 (ko) 2016-09-09 2016-09-09 서로 다른 파티들 사이에서 객체들을 추적하는 기법

Country Status (17)

Country Link
US (2) US11210426B2 (ko)
EP (1) EP3479219A4 (ko)
JP (1) JP6839267B2 (ko)
KR (1) KR102556741B1 (ko)
CN (2) CN116910785A (ko)
AU (1) AU2016422515A1 (ko)
BR (1) BR112019002548A2 (ko)
CA (1) CA3033144A1 (ko)
CL (1) CL2019000517A1 (ko)
CO (1) CO2019001989A2 (ko)
MX (1) MX2019002573A (ko)
MY (1) MY196099A (ko)
PH (1) PH12019550020A1 (ko)
RU (1) RU2730899C1 (ko)
SG (1) SG11201901403VA (ko)
WO (1) WO2018045574A1 (ko)
ZA (1) ZA201901666B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11582654B2 (en) 2016-11-04 2023-02-14 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods of handing over a wireless device
EP3379447B1 (de) * 2017-03-22 2022-04-27 Siemens Aktiengesellschaft Verfahren und vorrichtung zum manipulationssicheren speichern von informationen bezüglich objektbezogener massnahmen
CN110709873A (zh) 2017-05-22 2020-01-17 区块链控股有限公司 不可信任的确定性状态机
GB201811263D0 (en) * 2018-07-10 2018-08-29 Netmaster Solutions Ltd A method and system for managing digital using a blockchain
WO2020032937A1 (en) 2018-08-07 2020-02-13 Cisco Technology, Inc. System and method for accessing a data repository
CN109684875A (zh) * 2018-11-30 2019-04-26 深圳灵图慧视科技有限公司 布料检测记录方法、装置、设备及存储介质
KR20200085095A (ko) 2019-01-04 2020-07-14 삼성전자주식회사 블록체인 기반으로 데이터를 관리하는 전자 장치 및 데이터 관리 방법
US11720120B2 (en) 2019-08-08 2023-08-08 Toyota Motor North America, Inc. Tracking of transport transfers
US11488094B2 (en) * 2019-08-08 2022-11-01 Toyota Motor North America, Inc. Tracking of transport transfers
US11494469B2 (en) * 2020-04-29 2022-11-08 International Business Machines Corporation Ownership assignment for a communication system component
CN112104892B (zh) * 2020-09-11 2021-12-10 腾讯科技(深圳)有限公司 一种多媒体信息处理方法、装置、电子设备及存储介质
GB202018919D0 (en) * 2020-12-01 2021-01-13 Smarter Contracts Ltd Consent Management
US20220270079A1 (en) * 2021-02-23 2022-08-25 International Business Machines Corporation Cognation of a digital corollary in a blockchain network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104735164A (zh) * 2015-04-10 2015-06-24 网易(杭州)网络有限公司 一种保存文件信息的方法和装置
CN105573828A (zh) * 2015-12-17 2016-05-11 布比(北京)网络技术有限公司 一种操作处理方法及装置
US20160217436A1 (en) * 2015-01-25 2016-07-28 Dror Samuel Brama Method, System and Program Product for Tracking and Securing Transactions of Authenticated Items over Block Chain Systems.
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2130643C1 (ru) 1998-10-21 1999-05-20 Открытое акционерное общество "Всероссийский научно-исследовательский институт автоматизации управления в непромышленной сфере" Способ обеспечения доступа к данным в системе управления базами данных "линтер-вс"
JP2002539564A (ja) 1999-03-18 2002-11-19 ボレロ インターナショナル リミテッド 取引サポート・システム
US7003470B1 (en) 1999-10-29 2006-02-21 University Healthsystem Consortium Funds flow system for academic health centers
CN100550009C (zh) * 2002-08-01 2009-10-14 甲骨文国际公司 异步信息共享系统
DE10333888B3 (de) 2003-07-22 2005-04-07 Siemens Ag Verfahren zum Steuern eines Datenaustauschs
US7822741B2 (en) * 2004-06-21 2010-10-26 Microsoft Corporation API for programmatic retrieval and replay of database trace
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
US8024241B2 (en) 2007-07-13 2011-09-20 Sas Institute Inc. Computer-implemented systems and methods for cost flow analysis
US8196187B2 (en) * 2008-02-29 2012-06-05 Microsoft Corporation Resource state transition based access control system
US8055559B2 (en) 2008-08-01 2011-11-08 Hantz Group, Inc. Multi-company business accounting system and method for same including account receivable
US8806578B2 (en) * 2010-05-05 2014-08-12 Microsoft Corporation Data driven role based security
US8533022B2 (en) 2011-09-13 2013-09-10 Nandakumar Krishnan Nair Enterprise wide value chain management system (EVCM) for tracking, analyzing and improving organizational value chain performance and disruptions utilizing corrective actions
US20130201193A1 (en) 2012-02-02 2013-08-08 Apptio, Inc. System and method for visualizing trace of costs across a graph of financial allocation rules
US9002890B2 (en) * 2012-03-14 2015-04-07 International Business Machines Corporation Rule-based access control list management
US10885526B2 (en) 2012-10-19 2021-01-05 International Business Machines Corporation Monitoring flows in an evolving transaction network using dynamic rules
US9229787B2 (en) * 2012-12-13 2016-01-05 Software Ag Method and system for propagating modification operations in service-oriented architecture
US9159149B2 (en) 2013-03-14 2015-10-13 Interntional Business Machines Corporation Visualizing data transfers in distributed file system
US20160132889A1 (en) 2014-03-01 2016-05-12 Govindaraj Setlur System and method for payer controlled payment processing system
US9608829B2 (en) 2014-07-25 2017-03-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
WO2016063092A1 (en) * 2014-10-23 2016-04-28 Dele Atanda Intelligent personal information management system
US9965628B2 (en) * 2015-03-02 2018-05-08 Dell Products Lp Device reporting and protection systems and methods using a secure distributed transactional ledger
US10097356B2 (en) 2015-07-02 2018-10-09 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US9298806B1 (en) 2015-07-08 2016-03-29 Coinlab, Inc. System and method for analyzing transactions in a distributed ledger
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US9300678B1 (en) * 2015-08-03 2016-03-29 Truepic Llc Systems and methods for authenticating photographic image data
US10402792B2 (en) * 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US10785033B2 (en) * 2015-09-04 2020-09-22 Nec Corporation Method for storing an object on a plurality of storage nodes
US20170140408A1 (en) * 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
CN105761143B (zh) * 2016-02-01 2019-04-05 上海凭安网络科技有限公司 一种基于区块链的多方共建信用记录的方法
CN105809062B (zh) * 2016-03-01 2019-01-25 布比(北京)网络技术有限公司 一种合约构建、执行方法及装置
US10720232B2 (en) * 2016-04-13 2020-07-21 Accenture Global Solutions Limited Distributed healthcare records management
US10803537B2 (en) * 2016-04-18 2020-10-13 R3 Ltd. System and method for managing transactions in dynamic digital documents
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
US20170345011A1 (en) * 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
US20210211468A1 (en) * 2016-05-27 2021-07-08 Wells Fargo Bank, N.A. Systems and methods for service compliance via blockchain
US10580100B2 (en) * 2016-06-06 2020-03-03 Chicago Mercantile Exchange Inc. Data payment and authentication via a shared data structure
US10097344B2 (en) * 2016-07-15 2018-10-09 Mastercard International Incorporated Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains
WO2018019364A1 (en) * 2016-07-26 2018-02-01 NEC Laboratories Europe GmbH Method for controlling access to a shared resource
US11764950B2 (en) * 2019-05-22 2023-09-19 Salesforce, Inc. System or method to implement right to be forgotten on metadata driven blockchain using shared secrets and consensus on read

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160217436A1 (en) * 2015-01-25 2016-07-28 Dror Samuel Brama Method, System and Program Product for Tracking and Securing Transactions of Authenticated Items over Block Chain Systems.
CN104735164A (zh) * 2015-04-10 2015-06-24 网易(杭州)网络有限公司 一种保存文件信息的方法和装置
CN105573828A (zh) * 2015-12-17 2016-05-11 布比(北京)网络技术有限公司 一种操作处理方法及装置
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法

Also Published As

Publication number Publication date
CO2019001989A2 (es) 2019-03-08
US20220075900A1 (en) 2022-03-10
JP6839267B2 (ja) 2021-03-03
WO2018045574A1 (en) 2018-03-15
PH12019550020A1 (en) 2019-10-28
RU2730899C1 (ru) 2020-08-26
CN109690549B (zh) 2023-08-01
SG11201901403VA (en) 2019-03-28
CN116910785A (zh) 2023-10-20
CA3033144A1 (en) 2018-03-15
EP3479219A1 (en) 2019-05-08
CL2019000517A1 (es) 2019-07-05
JP2019533229A (ja) 2019-11-14
ZA201901666B (en) 2020-10-28
US11210426B2 (en) 2021-12-28
MY196099A (en) 2023-03-14
KR102556741B1 (ko) 2023-07-17
US20210182433A1 (en) 2021-06-17
CN109690549A (zh) 2019-04-26
EP3479219A4 (en) 2020-02-26
MX2019002573A (es) 2019-08-01
AU2016422515A1 (en) 2019-02-21
BR112019002548A2 (pt) 2019-05-21

Similar Documents

Publication Publication Date Title
KR102556741B1 (ko) 서로 다른 파티들 사이에서 객체들을 추적하는 기법
KR102084674B1 (ko) 블록체인 기반 컨텐츠 관리 방법 및 상기 방법을 수행하는 시스템
US11790118B2 (en) Cloud-based system for protecting sensitive information in shared content
US20190044714A1 (en) Secure data distribution protocol using blockchains
US9465877B2 (en) Globally unique identifiers in an online content management system
US9660858B2 (en) Maintaining consistent globally unique identifiers via an asynchronous interface
CN107948152B (zh) 信息存储方法、获取方法、装置及设备
JP2021502023A (ja) データ共有方法、クライアント、サーバ、コンピューティングデバイス、及び記憶媒体
WO2020050943A4 (en) Methods for requesting and authenticating photographic image data
US8204949B1 (en) Email enabled project management applications
CN108429638B (zh) 一种服务器运维方法、装置、系统及电子设备
JP6965972B2 (ja) 改ざん認識方法、装置及び記憶媒体
US20170048271A1 (en) Random identifier generation for offline database
US20140019758A1 (en) System, method and apparatus for securely distributing content
US20220092104A1 (en) System for automatic management and depositing of documents (images) hash in block-chain technology
CN112100178B (zh) 委托授权验证方法和系统
CN101404573B (zh) 一种授权方法、系统及装置
US9961132B2 (en) Placing a user account in escrow
US20240143805A1 (en) Document protection mechanism
US20230418984A1 (en) Artwork managing method, computer, and program
US20240062190A1 (en) Generating and maintaining digital tokens on a blockchain using physical device identifiers
WO2023034527A1 (en) Generating and managing encrypted non-fungible tokenized assets
CN114861198A (zh) 一种访问页面的权限控制方法、设备及介质
KR20140051479A (ko) 문서배포관리 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant