KR102285798B1 - 공유되는 비밀 기반 블록체인 스토리지 - Google Patents

공유되는 비밀 기반 블록체인 스토리지 Download PDF

Info

Publication number
KR102285798B1
KR102285798B1 KR1020197021904A KR20197021904A KR102285798B1 KR 102285798 B1 KR102285798 B1 KR 102285798B1 KR 1020197021904 A KR1020197021904 A KR 1020197021904A KR 20197021904 A KR20197021904 A KR 20197021904A KR 102285798 B1 KR102285798 B1 KR 102285798B1
Authority
KR
South Korea
Prior art keywords
data
blockchain
data item
stored
partition
Prior art date
Application number
KR1020197021904A
Other languages
English (en)
Other versions
KR20200078419A (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 KR20200078419A publication Critical patent/KR20200078419A/ko
Application granted granted Critical
Publication of KR102285798B1 publication Critical patent/KR102285798B1/ko

Links

Images

Classifications

    • 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
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/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

공유되는 비밀 기반 블록체인 스토리지
본 출원은 공유되는 비밀 기반 블록체인 스토리지에 관한 것이다.
합의 네트워크(consensus network)들로도 지칭될 수 있는 분산형 원장 시스템(distributed ledger system; DLS)들, 및/또는 블록체인 네트워크들은 참여 엔티티(entity)들이 데이터를 안전하고 불변적으로(immutably) 저장할 수 있게 한다. DLS들은 통상적으로 임의의 특정 사용 사례(use case)[예를 들어, 암호화 통화(crypto-currency)들]를 지칭하지 않고 블록체인 네트워크들로 지칭된다. 예시적인 유형들의 블록체인 네트워크들은 공개(public) 블록체인 네트워크들, 개인(private) 블록체인 네트워크들, 및 컨소시엄 블록체인 네트워크들을 포함할 수 있다. 공개 블록체인 네트워크는 모든 엔티티들이 DLS을 사용하고 합의 프로세스에 참여하도록 공개되어 있다. 특정 엔티티에 대해, 판독 및 기록 권한(permission)들을 중앙에서 제어하는 개인 블록체인 네트워크가 제공된다. 선택 그룹의 엔티티들에 대해, 합의 프로세스를 제어하고, 액세스 제어층을 포함하는 컨소시엄 블록체인 네트워크가 제공된다.
일부 상황들에서, 블록체인의 각각의 엔티티는 자신의 데이터를 예를 들어 개인 해시 테이블에 저장하고 제어한다. 그러한 데이터 스토리지 스키마가 데이터 보안성 및 프라이버시를 증가시키지만, 이는 데이터 공유 및 엔티티 협력을 어렵게 한다.
본 출원의 구현예들은 블록체인 상의 분산형 데이터 스토리지에 대한 컴퓨터로 구현되는 방법들을 포함한다. 더 구체적으로, 본 출원의 구현예들은 분산형 해시 테이블 및 다중 파티 계산(multi-party computation)을 사용하여 블록체인 상의 데이터 보안성 및 데이터 공유를 향상시키는 것에 관한 것이다.
일부 구현예들에서, 액션들은, 블록체인 네트워크에 데이터 항목(data item)을 저장하기 위한 요청을 수신하는 액션; 요청을 수신한 것에 응답하여, 데이터 항목을 복수의 데이터 파티션들로 분할하는 액션; 각각의 데이터 파티션을 블록체인 네트워크 내의 상이한 노드에 할당하는 액션 - 각각의 노드는 할당된 데이터 파티션을 사적 유지(privately-maintained) 분산형 해시 테이블에 저장함 - ; 각각의 데이터 파티션과 연관된 정보 - 정보는 각각의 데이터 파티션의 저장 위치를 포함함 - 를 블록체인 네트워크에 의해 유지되는 블록체인에 저장하는 액션; 저장된 데이터 항목을 리트리브(retrieve)하기 위한 요청을 수신하는 액션; 저장된 데이터 항목을 리트리브하기 위한 요청을 수신한 것에 응답하여, 블록체인에 저장된 각각의 데이터 파티션의 위치를 포함하는 정보에 기반하여, 할당된 노드들로부터 각각의 저장된 데이터 파티션을 리트리브하는 액션; 저장된 데이터 파티션들로부터 저장된 데이터 항목을 재구성하는 액션; 및 저장된 데이터 항목을 리트리브하기 위한 요청에 대한 응답 - 응답은 재구성된 데이터 항목을 포함함 - 을 송신하는 액션을 포함한다. 다른 구현예들은, 컴퓨터 저장 디바이스들 상에서 인코딩되는 방법들의 액션들을 수행하도록 구성되는, 대응하는 시스템들, 장치들, 및 컴퓨터 프로그램들을 포함한다.
이들 및 다른 구현예들은 각각 아래의 피처들 중 하나 이상을 선택적으로 포함할 수 있다:
일부 경우들에서, 각각의 데이터 파티션과 연관된 정보를 블록체인에 저장하는 액션은, 각각의 데이터 파티션에의 경로를 블록체인 상에 저장하는 액션을 포함한다.
일부 구현예들에서, 저장된 데이터 파티션들로부터 데이터 항목을 복구하기(restoring) 위한 명령어들이 블록체인에 저장될 수 있다.
일부 경우들에서, 저장된 데이터 항목을 재구성하는 액션은, 데이터 항목의 카피를 생성하기 위해, 리트리브된 데이터 파티션들을 연쇄시키는 액션을 포함한다.
일부 경우들에서, 저장된 데이터 항목을 리트리브하기 위한 요청의 기록이 블록체인에 저장된다.
일부 구현예들에서, 각각의 저장된 데이터 파티션을 리트리브하는 액션, 저장된 데이터 파티션들로부터 저장된 데이터 항목을 재구성하는 액션, 및 리트리브하기 위한 요청에 대한 응답을 송신하는 액션은, 블록체인에 저장되고 블록체인 네트워크 상에서 실행되는 스마트 컨트랙트(smart contract)에 의해 수행된다.
일부 경우들에서, 각각의 분산형 해시 테이블은, 데이터 파티션에의 파일 경로, 데이터 파티션의 값, 및 연관된 노드의 아이덴티티를 저장한다.
일부 구현예들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서가 위에서 설명된 액션들에 따른 동작들을 수행하도록 하는 명령어들이 저장되어 있고 하나 이상의 프로세서에 커플링되는 비일시적 컴퓨터 판독가능 스토리지 매체를 포함할 수 있다.
일부 구현예들은, 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스가 위에서 설명된 액션들에 따른 동작들을 수행하도록 하는 명령어들이 저장되어 있고 컴퓨팅 디바이스에 커플링되는 컴퓨터 판독가능 스토리지 디바이스 및 컴퓨팅 디바이스를 포함하는 시스템을 포함할 수 있다.
본 출원은 또한, 하나 이상의 프로세서에 커플링되고, 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서가 본원에서 제공되는 방법들의 구현예들에 따라 동작들을 수행하도록 하는 내부에 저장된 명령어들을 갖는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 제공한다.
본 출원은 또한 본원에서 제공되는 방법들을 구현하기 위한 시스템을 제공한다. 시스템은, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서가 본원에서 제공되는 방법들의 구현예들에 따라 동작들을 수행하도록 하는 내부에 저장된 명령어들을 갖는 하나 이상의 프로세서에 커플링되는 컴퓨터 판독가능 저장 매체를 포함한다.
본 출원에 따른 방법들이 본원에서 설명되는 양태들 및 피처들의 임의의 조합을 포함할 수 있다는 점이 이해되어야 한다. 즉, 본 출원에 따른 방법들이 본원에서 구체적으로 설명되는 양태들 및 피처들의 조합들에 제한되는 것은 아니지만, 제공되는 양태들 및 피처들의 임의의 조합을 포함한다.
본 출원의 하나 이상의 구현예의 상세사항들이 첨부된 도면들 및 아래의 설명에 제시된다. 본 출원의 다른 피처들 및 이점들은 설명 및 도면들로부터, 또한 청구항들로부터 명백해질 것이다.
도 1은 본 출원의 구현예들을 실행하기 위해 사용될 수 있는 예시적인 환경을 도시한다.
도 2는 본 출원의 구현예들에 따른 예시적인 개념적 아키텍처를 도시한다.
도 3은 블록체인 상에 분산형 데이터 스토리지 스키마를 구현하는 예시적인 시스템을 도시한다.
도 4는 본 출원의 구현예들에 따라 실행될 수 있는 예시적인 프로세스를 도시한다.
다양한 도면들 내의 동일한 참조 심벌들은 동일한 엘리먼트들을 나타낸다.
본 출원의 구현예들은 블록체인 상의 분산형 데이터 스토리지에 대한 컴퓨터로 구현되는 방법들을 포함한다. 더 구체적으로, 본 출원의 구현예들은 분산형 해시 테이블 및 다중 파티 계산을 사용하여 블록체인 상의 데이터 보안성 및 데이터 공유를 향상시키는 것에 관한 것이다. 일부 구현예들에서, 액션들은, 블록체인 네트워크에 데이터 항목을 저장하기 위한 요청을 수신하는 액션; 요청을 수신한 것에 응답하여, 데이터 항목을 복수의 데이터 파티션들로 분할하는 액션; 각각의 데이터 파티션을 블록체인 네트워크 내의 상이한 노드에 할당하는 액션 - 각각의 노드는 할당된 데이터 파티션을 사적 유지 분산형 해시 테이블에 저장함 - ; 각각의 데이터 파티션과 연관된 정보 - 정보는 각각의 데이터 파티션의 저장 위치를 포함함 - 를 블록체인 네트워크에 의해 유지되는 블록체인에 저장하는 액션; 저장된 데이터 항목을 리트리브하기 위한 요청을 수신하는 액션; 저장된 데이터 항목을 리트리브하기 위한 요청을 수신한 것에 응답하여, 블록체인에 저장된 각각의 데이터 파티션의 위치를 포함하는 정보에 기반하여, 할당된 노드들로부터 각각의 저장된 데이터 파티션을 리트리브하는 액션; 저장된 데이터 파티션들로부터 저장된 데이터 항목을 재구성하는 액션; 및 저장된 데이터 항목을 리트리브하기 위한 요청에 대한 응답 - 응답은 재구성된 데이터 항목을 포함함 - 을 송신하는 액션을 포함한다.
본 출원의 구현예들에 대한 추가 컨텍스트를 제공하기 위해, 그리고 위에서 소개된 바와 같이, 합의 네트워크들[예를 들어, 피어 투 피어(peer-to-peer) 노드들로 구성됨]로도 지칭될 수 있는 분산형 원장 시스템(DLS)들, 블록체인 네트워크들은 참여 엔티티들이 트랜잭션들을 안전하게 그리고 불변적으로 수행하고 데이터를 저장할 수 있게 한다. 용어 블록체인이 일반적으로 비트코인 암호화 통화 네트워크와 연관되지만, 블록체인은 임의의 특정 사용 사례에 대한 참조없이 일반적으로 DLS을 지칭하기 위해 본원에서 사용된다. 위에서 소개된 바와 같이, 블록체인 네트워크는 공개 블록체인 네트워크, 개인 블록체인 네트워크, 또는 컨소시엄 블록체인 네트워크로서 제공될 수 있다.
공개 블록체인 네트워크에서, 합의 프로세스는 합의 네트워크의 노드들에 의해 제어된다. 예를 들어, 수백, 수천, 심지어 수만개의 엔티티들이 공개 블록체인 네트워크에서 협력할 수 있고, 이들 각각은 공개 블록체인 네트워크에서 적어도 하나의 노드를 운영한다. 따라서, 공개 블록체인 네트워크는 참여 엔티티들과 관련하여 공개 네트워크로 간주될 수 있다. 일부 예시들에서, 대부분의 엔티티들(노드들)은, 블록이 유효해지고 블록체인 네트워크의 블록체인(분산형 원장)에 추가되도록 모든 블록에 서명(sign)해야 한다. 예시적인 공개 블록체인 네트워크는 피어 투 피어 페이먼트 네트워크인 비트코인 네트워크를 포함한다. 비트코인 네트워크는 블록체인으로 지칭되는 분산형 원장을 활용한다. 위에서 언급된 바와 같이, 용어 블록체인은 그러나, 비트코인 네트워크에 대한 특정 참조없이 일반적으로 분산형 원장들을 지칭하기 위해 사용된다.
일반적으로, 공개 블록체인 네트워크는 공개 트랜잭션들을 지원한다. 공개 트랜잭션은 공개 블록체인 네트워크 내의 모든 노드들과 공유되고, 글로벌 블록체인에 저장된다. 글로벌 블록체인은 모든 노드들에 걸쳐 복제되는 블록체인이다. 즉, 모든 노드들은 글로벌 블록체인과 관련하여 완벽한 합의 상태(perfect state consensus)에 있다. 합의(예를 들어, 블록체인에의 블록의 추가에 대한 동의)를 달성하기 위해, 공개 블록체인 네트워크 내에 합의 프로토콜이 구현된다. 예시적인 합의 프로토콜은, 비제한적으로, 비트코인 네트워크 내에 구현되는 작업 증명(proof-of-work; POW)을 포함한다.
일반적으로, 특정 엔티티에 대해, 판독 및 기록 권한들을 중앙에서 제어하는 개인 블록체인 네트워크가 제공된다. 엔티티는 어떤 노드들이 블록체인 네트워크에 참여할 수 있는지를 제어한다. 결론적으로, 개인 블록체인 네트워크들은 일반적으로, 누가 네트워크에의 참여가 허용되는지, 또한 참여자의 레벨(예를 들어, 특정 트랜잭션들에서만)에 대한 제한들을 두는 권한 네트워크들로 지칭된다. 다양한 유형들의 액세스 제어 메커니즘들이 사용될 수 있다[예를 들어, 기존 참가자들이 새로운 엔티티들을 추가하는 것에 대해 투표하고, 규제 기관(regulatory authority)이 가입(admission)을 제어할 수 있다].
일반적으로, 컨소시엄 블록체인 네트워크는 참여 엔티티들 간에 개인적이다. 컨소시엄 블록체인 네트워크에서, 합의 프로세스는 인가된 세트의 노드들에 의해 제어되고, 하나 이상의 노드는 각각의 엔티티(예를 들어, 금융 기관, 보험 회사)에 의해 운영된다. 예를 들어, 열개의(10) 엔티티들(예를 들어, 금융 기관들, 보험 회사들)의 컨소시엄이 컨소시엄 블록체인 네트워크를 운영할 수 있고, 엔티티들 각각이 컨소시엄 블록체인 네트워크 내의 적어도 하나의 노드를 운영한다. 따라서, 컨소시엄 블록체인 네트워크는 참여 엔티티들과 관련하여 개인 네트워크로 간주될 수 있다. 일부 예시들에서, 각각의 엔티티(노드)는, 블록이 유효해지고 블록체인에 추가되도록 모든 블록에 서명해야 한다. 일부 예시들에서, 적어도 서브세트(sub-set)의 엔티티들(노드들)(예를 들어, 적어도 7개의 엔티티들)은, 블록이 유효해지고 블록체인에 추가되도록 모든 블록에 서명해야 한다.
본 출원의 구현예들이 참여 엔티티들 간에 공개적인 공개 블록체인 네트워크를 참조하여 본원에서 더 상세히 설명된다. 그러나, 본 출원의 구현예들이 임의의 적절한 유형의 블록체인 네트워크에서 실현될 수 있다는 점이 고려되어야 한다.
본 출원의 구현예들은 위에서의 컨텍스트의 관점에서 본원에서 더 상세히 설명된다. 더 구체적으로, 그리고 위에서 소개된 바와 같이, 본 출원의 구현예들은 분산형 해시 테이블들 및 다중 파티 계산을 사용하여 블록체인 상의 데이터 보안성 및 데이터 공유를 향상시키는 것에 관한 것이다.
일부 구현예들에서, 데이터 항목이 상이한 부분들로 분할되고, 각각의 부분은 블록체인 네트워크에 참여한 엔티티의 해시 테이블에 저장된다. 각각의 엔티티 또는 외부 서비스가 데이터를 볼 수 있고 프로그램, 예를 들어 블록체인에 배치된 스마트 컨트랙트를 사용하여 데이터에 대한 동작들을 수행한다. 결과적으로, 단일 엔티티가 전체 데이터에의 액세스를 갖지 않지만, 그럼에도 불구하고 각각의 엔티티가 특정량(certain measurement)의 데이터를 얻을 수 있다.
도 1은 본 출원의 구현예들을 실행하기 위해 사용될 수 있는 예시적인 환경(100)을 도시한다. 일부 예시들에서, 예시적인 환경(100)은 엔티티들이 블록체인 네트워크(102)에 참여할 수 있게 한다. 블록체인 네트워크(102)는 공개 블록체인 네트워크, 개인 블록체인 네트워크, 또는 컨소시엄 블록체인 네트워크일 수 있다. 예시적인 환경(100)은 컴퓨팅 디바이스들(106, 108), 및 네트워크(110)를 포함한다. 일부 예시들에서, 네트워크(110)는 근거리 통신망(local area network; LAN), 광역 통신망(wide area network; WAN), 인터넷, 또는 이들의 조합을 포함하고, 웹사이트들, 사용자 디바이스들(예를 들어, 컴퓨팅 디바이스들), 및 백엔드(back-end) 시스템들을 연결한다. 일부 예시들에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다.
도시된 예시에서, 컴퓨팅 시스템들(106 및 108)은, 블록체인 네트워크(102)에의 노드로서의 참여를 가능하게 하는 임의의 적절한 컴퓨팅 시스템을 각각 포함할 수 있다. 예시적인 컴퓨팅 디바이스들은 비제한적으로, 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨팅 디바이스, 및 스마트폰을 포함한다. 일부 예시들에서, 컴퓨팅 시스템들(106 및 108)은 블록체인 네트워크(102)와의 인터랙션을 위한 하나 이상의 컴퓨터로 구현되는 서비스를 각각 호스팅한다. 예를 들어, 컴퓨팅 시스템(106)은, 제 1 엔티티가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 자신의 트랜잭션들을 관리하기 위해 사용하는 트랜잭션 관리 시스템과 같은, 제 1 엔티티[예를 들어, 사용자(A)]의 컴퓨터로 구현되는 서비스들을 호스팅할 수 있다. 컴퓨팅 시스템(108)은, 제 2 엔티티가 하나 이상의 다른 엔티티(예를 들어, 다른 사용자)와의 자신의 트랜잭션들을 관리하기 위해 사용하는 트랜잭션 관리 시스템과 같은, 제 2 엔티티[예를 들어, 사용자(B)]의 컴퓨터로 구현되는 서비스들을 호스팅할 수 있다. 도 1의 예시에서, 블록체인 네트워크(102)는 노드들의 피어 투 피어 네트워크로서 표현되고, 컴퓨팅 시스템들(106 및 108)은 블록체인 네트워크(102)에 참여하는 제 1 엔티티, 및 제 2 엔티티 노드들을 각각 제공한다.
도 2는 본 출원의 구현예들에 따른 예시적인 개념적 아키텍처(200)를 도시한다. 예시적인 개념적 아키텍처(200)는 엔티티층(202), 호스팅되는 서비스층(204), 및 블록체인 네트워크층(206)을 포함한다. 도시된 예시에서, 엔티티층(202)은 3개의 엔티티들, 엔티티_1(E1), 엔티티_2(E2), 및 엔티티_3(E3)을 포함하고, 각각의 엔티티는 각각의 트랜잭션 관리 시스템(208)을 갖는다.
도시된 예시에서, 호스팅되는 서비스층(204)은 각각의 트랜잭션 관리 시스템(208)에 대한 인터페이스들(210)을 포함한다. 일부 예시들에서, 각각의 트랜잭션 관리 시스템(208)은 프로토콜[예를 들어, 하이퍼텍스트 보안 전송 프로토콜(hypertext transfer protocol secure; HTTPS)]을 사용하여 네트워크[예를 들어, 도 1의 네트워크(110)]를 통해 각각의 인터페이스(210)와 통신한다. 일부 예시들에서, 각각의 인터페이스(210)는 각각의 트랜잭션 관리 시스템(208)과 블록체인 네트워크층(206) 사이의 통신 연결을 제공한다. 더 구체적으로, 인터페이스(210)는 블록체인 네트워크층(206)의 블록체인 네트워크(212)와 통신한다. 일부 예시들에서, 인터페이스(210)와 블록체인 네트워크층(206) 사이의 통신은 원격 절차 호출(remote procedure call; RPC)들을 사용하여 수행된다. 일부 예시들에서, 인터페이스들(210)은 각각의 트랜잭션 관리 시스템들(208)에 대해 블록체인 네트워크 노드들을 “호스팅”한다. 예를 들어, 인터페이스들(210)은 블록체인 네트워크(212)에의 액세스를 위한 응용 프로그래밍 인터페이스(application programming interface; API)를 제공한다.
본원에서 설명되는 바와 같이, 블록체인 네트워크(212)는, 블록체인(216) 내의 정보를 불변적으로 기록하는 복수의 노드들(214)을 포함하는 피어 투 피어 네트워크로서 제공된다. 단일 블록체인(216)이 개략적으로 도시되었지만 블록체인(216)의 다중 카피(multiple copy)들이 제공되며, 블록체인 네트워크(212)에 걸쳐 유지된다. 예를 들어, 각각의 노드(214)는 블록체인의 카피를 저장한다. 일부 구현예들에서, 블록체인(216)은 블록체인 네트워크에 참여하는 2개 이상의 엔티티들 간에 수행되는 트랜잭션들과 연관된 정보를 저장한다.
도 3은 블록체인 네트워크에 분산형 데이터 스토리지 스키마를 구현하는 예시적인 시스템(300)을 도시한다. 시스템(300)은 애플리케이션(308)에 데이터를 제공하기 위한 블록체인 네트워크, 예를 들어 도 2의 블록체인 네트워크(212)를 포함한다. 블록체인 네트워크, 예를 들어 노드들(214a 내지 214c) 내의 각각의 엔티티는 블록체인(216) 상에 공개되지 않은 개인 데이터를 저장하기 위해 분산형 해시 테이블(distributed hash table; DHT)을 유지한다. 예를 들어, 노드(214b)는 DHT(304b)와 연관되고, 노드(214c)는 상이한 DHT(304c)와 연관된다.
일부 구현예들에서, 블록체인 네트워크(212)에 데이터 A(302)를 저장하기를 희망하는 사용자는 먼저 데이터 A(302)를 2개 이상의 피스(piece)들, 예를 들어 A1(302a), A2(302b), 및 A3(302c)으로 파티셔닝(partitioning)한다. 파티셔닝된 데이터 각각은 상이한 노드로 송신되고 노드들의 DHT에 유지된다. 예를 들어, A1(302a)은 노드(214a)와 연관된 DHT(304a)에 저장되고, A2(302b)는 노드(214b)와 연관된 DHT(304b)에 저장되며, A3(302c)은 노드(214c)와 연관된 DHT(304c)에 저장된다. 따라서, 사용자의 데이터는 분권형 방식(decentralized manner)으로 저장되고 개별적인 스토리지 노드들 중 어느 것도 사용자의 데이터에의 전체 액세스를 갖지 않으므로 안전하게 유지된다. 사용자의 데이터는, 아래에서 설명되는 바와 같이 그리고 도 4와 관련하여, 신뢰되는 서비스가 각각의 스토리지 노드들로부터의 개별적인 데이터 파티션들을 요청하고 각각의 스토리지 노드들로부터 개별적인 데이터 파티션들을 수신할 때에만 복구된다.
각각의 노드는 블록체인 상의 저장되고 파티셔닝된 데이터에의 경로를 공개할 수 있다. 예를 들어, 데이터(A)가 파티셔닝되고 블록체인 네트워크(212)에 저장된 후, 블록체인(216)에 저장된 블록체인 트랜잭션은 파티셔닝된 데이터의 각각의 부분의 위치를 기록할 수 있고, 여기서 위치는 데이터뿐만 아니라 노드와 연관된 DHT에서의 내부 파일 경로를 저장하는 노드를 포함한다. 일부 구현예들에서, 파일 경로는 네트워크 상의 데이터 위치를 식별하기 위한 유니폼 리소스 로케이터(Uniform Resource Locator; URL) 또는 다른 스트링(string)들이다. 이 블록체인 트랜잭션은 이어서 블록체인(216)의 최근 블록(latest block)에 포함되어, 블록체인 네트워크(212) 내의 모든 노드들에게 볼 수 있게 한다. 데이터(A)의 저장을 요약한 예시적인 블록체인 트랜잭션이 아래의 표 1에 도시된다:
데이터 노드 파일 경로 DHT값
A 2 경로 1 A1
A 3 경로 2 A2
A 4 경로 3 A3
데이터 A(302)를 사용하기 위해, 서비스(310)는 파티셔닝된 데이터를 블록체인 네트워크(212)로부터 수집하도록 애플리케이션(308)에게 요청한다. 예를 들어, 애플리케이션(308)은 블록체인(216)에 저장되고 블록체인 네트워크(212) 상에서 실행되는 스마트 컨트랙트 프로그램일 수 있다. 애플리케이션(308)은 먼저 파티셔닝된 데이터 각각이 저장된 위치를 찾기 위해 블록체인(216)을 서치할 수 있고, 이어서 데이터 A(302)의 카피를 리트리브(retrieve)하고 생성한다. 일 예시에서, 애플리케이션(308)은 파티셔닝된 데이터[A1(302a), A2(302b), 및 A3(302c)]를 연쇄시켜(concatenate) 데이터 A(302)의 카피를 생성할 수 있다. 다른 예시에서, 애플리케이션(308)은 파티셔닝된 데이터에 대해 요약 동작(summary operation)을 수행하여 데이터 A(302)를 복구할 수 있다. 일부 경우들에서, 서비스(310)가 애플리케이션(308)으로부터 데이터 A(302)의 생성된 카피를 수신했어도, 서비스(310)는 임의의 개별적인 데이터 파티션들에의 액세스를 갖지 않는다. 결과적으로, 이 액세스 스키마는 개별적인 노드들 상의 데이터 보안성 및 데이터 프라이버시를 보호한다. 일 예시에서, 각각의 노드는 특정 뱅크에 사용자의 금융 트랜잭션들을 저장하는 뱅크를 나타낼 수 있다. 서비스는 사용자의 과거 금융 트랜잭션들에 기반하여 사용자에 대한 주택 저당(home mortgage)을 결정하는 것을 시도한다. 서비스가 사용자의 종합적 금융 트랜잭션들, 예를 들어 데이터 A(302)에의 액세스를 가져도, 서비스는 임의의 특정 뱅크에서의 사용자의 금융 트랜잭션들, 예를 들어 파티셔닝된 데이터[A1(302a), A2(302b), 및 A3(302c)]를 보지 못한다.
일부 경우들에서, 데이터(A)의 저장을 요약하는 블록체인 트랜잭션은 데이터의 각각의 부분의 해시를 포함할 수 있다. 파티셔닝된 데이터를 프로세싱하는 애플리케이션(308) 또는 다른 애플리케이션은 각각의 파티션이 처음 저장된 이래로 변경되지 않았음을 검증하기 위해 이 해시들을 사용할 수 있다. 데이터(A)의 저장을 요약하는 블록체인 트랜잭션은 또한, 데이터가 처음으로 파티셔닝되고 저장된 이래로 변경되지 않았음을 검증하기 위해 사용될 수 있는, 모든 파티션들에 조인함으로써 형성된 전체 세트의 데이터의 해시를 포함할 수 있다.
일부 경우들에서, 애플리케이션(308)은 블록체인(216) 상에 동작들을 기록할 수 있다. 예를 들어, 애플리케이션(308)은 데이터를 요청한 서비스(310)의 아이덴티티, 데이터 리트리브 동작의 성공 또는 실패, 동작들의 시간, 또는 동작들에 관한 다른 정보를 기록할 수 있다. 이 정보는 특정 데이터 항목이 리트리브되는 각각의 시간을 기록하기 위한 액세스 로그로서 역할할 수 있다.
일부 구현예들에서, 애플리케이션(308)이 데이터를 리트리브하는 것을 마치고 트랜잭션이 블록체인 네트워크(212)에 의해 검증되면, 저장 노드들 각각은 블록체인 네트워크(212)에 의해 지원되는 특정된 양의 디지털 통화(digital currency)를 보상받을 수 있다. 이 보상은 블록체인 네트워크(212) 내의 노드들이 분산형 데이터 스토리지 스키마에 참여하는 것에 대한 인센티브로서 역할할 수 있다. 보상된 데이터는 이어서 추가 동작들을 위해 서비스(310)에 리턴된다.
일부 경우들에서, 데이터에 대한 요청들은 인증을 거칠 수 있다. 예를 들어, 서비스(310)는 데이터에 대한 자신의 요청과 함께 자신의 아이덴티티 또는 다른 크레덴셜들을 제공하도록 요구될 수 있다. 시스템은 블록체인 네트워크에 저장된 각각의 데이터 항목에 대한 권한들을 포함할 수 있고, 파티셔닝된 피스들로부터 데이터 항목을 재구성하기 전에, 크레덴셜들에 기반하여 서비스(310)가 데이터 항목을 보도록 인가되는지 검증할 수 있다. 일부 구현예들에서, (위에서 표 1에 도시된) 데이터(A)의 저장을 요약하는 블록체인 트랜잭션은 각각의 데이터 파티션에 대한 또는 전체 데이터 항목에 대한 권한 정보를 포함할 수 있다.
일부 경우들에서, 데이터(A)의 저장을 요약하는 블록체인 트랜잭션은, 서비스(310)가 저장된 데이터 항목에 액세스하는 것이 인가됨을 증명하기 위해 정확히 해독해야 하는 데이터 항목에 대한 암호화된 해시값을 포함할 수 있다. 예를 들어, 데이터 항목을 저장한 사용자가 이 데이터 항목에 액세스하는 권한을 갖는 유일한 사용자가 되기를 희망하는 경우, 해시가 사용자의 공개 키로 암호화될 수 있고, 따라서 사용자의 공개 키를 사용해서만 해독될 수 있다. 일부 구현예들에서, 데이터 항목 자체가 파티셔닝되고 블록체인 네트워크에 저장되기 전에 암호화될 수 있고, 이에 의해 파티션들이 재조립되고 리턴되면, 정확한 키를 갖는 엔티티들만이 컨텐츠를 해독하는 것을 가능하게 한다.
도 4는 본 출원의 구현예들에 따라 실행될 수 있는 예시적인 프로세스(400)를 도시한다. 일부 구현예들에서, 프로세스(400)는 하나 이상의 컴퓨팅 디바이스를 사용하여 실행되는 하나 이상의 컴퓨터 실행가능 프로그램을 사용하여 수행될 수 있다. 편의를 위해, 프로세스(400)는 시스템, 예를 들어 도 3의 시스템(300)에 의해 수행되는 것으로서 설명될 것이다.
시스템은 먼저 블록체인 네트워크에 데이터 항목을 저장하기 위한 요청을 수신한다(402). 예를 들어, 사용자는 블록체인 네트워크에의 스토리지를 위해 뱅크 트랜잭션 데이터를 제출할 수 있다. 본원에서 설명되는 기술들을 사용하여 데이터를 저장하는 것은, 데이터가 분권형 방식으로 저장되고 블록체인 네트워크 내의 단일 노드가 전체 데이터를 저장하지 않기 때문에 블록체인 네트워크의 보안성을 향상시킬 수 있다.
요청에 응답하여, 시스템은 데이터 항목을 수신하고 이 데이터 항목을 복수의 데이터 파티션들로 분할한다(404). 예를 들어, 시스템은 데이터를 동일한 사이즈의 청크(chunk)들로 파티셔닝하거나, 또는 데이터를 사용자에 의해 특정된 개수의 청크들로 파티셔닝하기 위해 프로그램을 사용할 수 있다. 일부 경우들에서, 시스템은 데이터가 어떻게 파티셔닝되었는지를 기록할 수 있고 파티셔닝 방법을 개별적인 데이터 파티션과 함께 또는 블록체인 내의 엔트리(entry)에 저장할 수 있다.
시스템은 다음에 각각의 데이터 파티션을 블록체인 네트워크 내의 상이한 노드에 할당하고 각각의 데이터 파티션과 연관된 정보를 블록체인에 저장한다(406). 상이한 노드들은 할당된 데이터를 공유하지 않고, 할당된 데이터를 사적 유지 분산형 해시 테이블(DHT)에 저장한다. 예를 들어, 분산형 해시 테이블은 데이터 파티션에의 파일 경로, 노드의 아이덴티티, 및 데이터 파티션의 값 또는 해시의 값을 저장할 수 있다. 시스템은 이어서 각각의 데이터 파티션과 연관된 정보를 블록체인에 저장한다(408). 예를 들어, 시스템은 각각의 데이터 파티션에의 파일 경로를 블록체인 상에 공개한다. 결과적으로, 데이터 파티션들의 위치가 블록체인과 인터랙션하는 임의의 프로그램들에게 공개되게 된다. 시스템은, 단일 노드가 모든 데이터 파티션들에의 액세스를 가질 수 없음을 보장하기 위해 저장 노드들을 랜덤 방식으로 선택할 수 있다. 일부 구현예들에서, 시스템은, 노드가 데이터의 특정 개수의 파티션들보다 많은 파티션들을 저장하지 않도록 저장 노드들을 선택할 수 있다. 결과적으로, 데이터 항목은 분권형 방식으로 저장되고, 어떤 스토리지 노드들도 모든 데이터 파티션들에의 전체 액세스를 갖지 않으므로, 안전하게 유지된다. 데이터 항목은, 신뢰되는 서비스가 데이터 파티션들을 요청하고 수신했을 때에만 복구된다.
시스템은 이어서, 저장된 데이터 항목을 리트리브하기 위한 요청을 수신한다(410). 예를 들어, 서드파티 서비스(third-party service)는 사용자의 신용도(creditworthiness)를 결정하기 위해 사용자의 뱅킹 트랜잭션들을 보는 것을 요청할 수 있다. 서비스는 시스템에 의해 지원되는 응용 프로그래밍 인터페이스(API)를 사용하여 시스템에 요청을 제출할 수 있다. 예를 들어, 요청은 JSON 파일 포맷일 수 있다. 이 시점에서, 데이터가 파티셔닝되고 블록체인 네트워크에 걸쳐 분산된다.
파티셔닝되고 블록체인 네트워크 내의 상이한 노드들에 저장된 요청된 데이터를 리턴하기 위해, 시스템은 블록체인 네트워크 내의 할당된 노드들로부터 각각의 저장된 데이터 파티션을 리트리브하기 위해 애플리케이션 및 공개된 파일 경로들을 사용한다. 예를 들어, 애플리케이션은 각각의 노드의 분산형 해시 테이블에의 액세스를 부여받은 스마트 컨트랙트일 수 있다. 애플리케이션은 데이터 파티션들로부터 데이터를 재구성하기 위해 특정 명령들을 수행할 수 있다. 일부 경우들에서, 명령들은 데이터가 먼저 파티셔닝되었을 때 블록체인에 기록된다. 시스템은 이어서 저장된 데이터 파티션들로부터 저장된 데이터 항목을 재구성한다. 예를 들어, 시스템은 가령 데이터값들의 해시들을 리턴함으로써 데이터 파티션들을 연쇄시킬 수 있거나, 또는 데이터값들에 가산(addition)을 수행할 수 있다. 다른 예시에서, 시스템은, 각각의 데이터 파티션이 데이터 항목으로부터 데이터의 비연속적인 비트(non-continuous bit)들을 포함할 때, 저장된 데이터 항목을 재구성하기 위해 데이터 파티션들을 인터레이싱(interlacing)할 수 있다. 일부 경우들에서, 시스템은 또한 블록체인에 서비스에 의한 데이터 요청을 기록한다. 이 정보는 데이터 파티션의 사이즈 및 스토리지의 길이에 기반하여 저장 노드를 보상하기(compensate) 위해 사용될 수 있다.
마지막 단계에서, 시스템은 저장된 데이터 항목을 리트리브하기 위한 요청에 대한 응답을 송신하고, 여기서 응답은 재구성된 데이터 항목을 포함한다(416). 예를 들어, 시스템은 애플리케이션(308)에 응답을 송신할 수 있다. 일부 구현예들에서, 시스템은 응답을 송신하기 전에 데이터 파티션들 및 재구성된 데이터 항목을 검사한다(audit). 예를 들어, 시스템은 해시값들을 체크함으로써 데이터 항목 또는 개별적인 데이터 파티션들을 검사할 수 있다.
설명된 피처들은 디지털 전자 회로로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 이들의 조합들로 구현될 수 있다. 장치는 프로그래밍가능 프로세서에 의한 실행을 위해 정보 캐리어 내에(예를 들어, 기계 판독가능 저장 디바이스 내에) 유형으로(tangibly) 구현되는 컴퓨터 프로그램 제품 내에 구현될 수 있고, 방법 단계들은 입력 데이터를 운영하고 출력을 생성함으로써, 설명된 구현예들의 기능들을 수행하도록 명령어들의 프로그램을 실행하는 프로그래밍가능 프로세서에 의해 수행될 수 있다. 설명된 피처들은 바람직하게, 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고, 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스에 데이터 및 명령어들을 전송하도록 커플링되는 적어도 하나의 프로그래밍가능 프로세서를 포함하는 프로그래밍가능 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터 프로그램은 특정 활동을 수행하거나 특정 결과를 가져오도록 컴퓨터에서 직접적으로 또는 간접적으로 사용될 수 있는 한 세트의 명령어들이다. 컴퓨터 프로그램은 컴파일되거나 해석된 언어들을 포함하여, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형(stand-alone) 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서의 사용을 위해 적절한 다른 유닛으로서를 포함하여, 임의의 형태로 배치될 수 있다.
명령어들의 프로그램의 실행을 위한 적절한 프로세서들은, 예시로서, 범용 마이크로프로세서 및 특수 목적 마이크로프로세서 둘 다, 및 임의의 종류의 컴퓨터의 단일 프로세서 또는 다중 프로세서들 중 하나를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 엘리먼트들은 명령어들을 실행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리를 포함할 수 있다. 일반적으로, 컴퓨터는 또한, 데이터 파일들을 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함할 수 있거나, 또는 하나 이상의 대용량 저장 디바이스에 동작가능하게(operatively) 커플링될 수 있고, 그러한 디바이스는 내부 하드 디스크 및 리무버블 디스크들, 광자기(magneto-optical) 디스크들, 및 광학 디스크들과 같은 자기 디스크들을 포함한다. 컴퓨터 프로그램 명령어들 및 데이터를 유형으로 구현하기 위한 적절한 저장 디바이스들은, 예시들로서 EPROM, EEPROM과 같은 반도체 메모리 디바이스들, 플래시 메모리 디바이스들, 내부 하드 디스크들 및 리무버들 디스크들과 같은 자기 디스크들, 광자기 디스크들, 및 CD-ROM 및 DVD-ROM 디스크들을 포함하여, 모든 형태의 비휘발성 메모리를 포함한다. 프로세서 및 메모리는 주문형 집적 회로(application-specific integrated circuit; ASIC)들에 의해 보완되거나 ASIC들 내에 통합될 수 있다.
사용자와의 인터랙션들 제공하기 위해, 피처들은 사용자에게 정보를 디스플레이하기 위한 음극선관(cathode ray tube; CRT) 또는 액정 디스플레이(liquid crystal display; LCD) 모니터와 같은 디스플레이 디바이스, 키보드 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 디바이스를 갖는 컴퓨터에 구현될 수 있다.
피처들은, 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 또는 응용 서버 또는 인터넷 서버와 같은 미들웨어 컴포넌트를 포함하거나, 또는 그래픽 사용자 인터페이스 또는 인터넷 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트, 또는 이들의 임의의 조합을 포함하는 컴퓨터 시스템 내에 구현될 수 있다. 시스템의 컴포넌트들은 통신 네트워크와 같은 임의의 형태 또는 매체의 디지털 데이터 통신에 의해 연결될 수 있다. 통신 네트워크들의 예시들은, 예를 들어 근거리 통신망(LAN), 광역 통신망(WAN), 및 인터넷을 형성하는 컴퓨터들 및 네트워크들을 포함한다.
컴퓨터 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있고, 일반적으로 설명된 것과 같은 네트워크를 통해 인터랙션한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들 상에서 실행되고 서로 클라이언트 서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다.
또한, 도면들에 도시된 논리적 흐름들은 바람직한 결과들을 달성하도록 도시된 특정 순서, 또는 순차적 순서를 요하지 않는다. 또한, 다른 단계들이 제공될 수 있거나, 설명된 흐름으로부터 단계들이 제거될 수 있으며, 다른 컴포넌트들이 설명된 시스템들에 추가되거나 설명된 시스템들로부터 제거될 수 있다. 따라서, 다른 구현예들은 다음의 청구항들의 범위 내에 있다.
본 출원의 다수의 구현예들이 설명되었다. 그럼에도 불구하고, 본 출원의 사상 및 범위로부터 벗어나지 않고 다양한 변형들이 이루어질 수 있다는 점이 이해될 것이다. 따라서, 다른 구현예들은 다음의 청구항들의 범위 내에 있다.

Claims (20)

  1. 블록체인 네트워크 내의 분산형 데이터 스토리지(distributed data storage)를 위한 컴퓨터 구현(computer-implemented) 방법에 있어서,
    상기 블록체인 네트워크에 데이터 항목(data item)을 저장하기 위한 요청을 수신하는 단계;
    상기 요청을 수신한 것에 응답하여,
    상기 데이터 항목을 복수의 데이터 파티션들로 분할하는 단계;
    각각의 데이터 파티션을 상기 블록체인 네트워크 내의 복수의 상이한 노드들에 할당하는 단계 - 상기 복수의 상이한 노드들 각각은 상기 할당된 데이터 파티션을 사적 유지(privately-maintained) 분산형 해시 테이블에 저장하고, 상기 복수의 상이한 노드들은 상기 할당된 데이터 파티션을 공유하지 않음 - ; 및
    각각의 데이터 파티션과 연관된 정보 - 상기 정보는 각각의 데이터 파티션의 저장 위치를 포함함 - 를 상기 블록체인 네트워크에 의해 유지되는 블록체인에 저장하는 단계를 포함하는, 블록체인 네트워크 내의 분산형 데이터 스토리지를 위한 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 저장된 데이터 항목을 리트리브(retrieve)하기 위한 요청을 수신하는 단계;
    상기 저장된 데이터 항목을 리트리브하기 위한 요청을 수신한 것에 응답하여,
    상기 블록체인에 저장된 각각의 데이터 파티션의 위치를 포함하는 정보에 기반하여 상기 할당된 노드들로부터 각각의 저장된 데이터 파티션을 리트리브하는 단계;
    상기 저장된 데이터 파티션들로부터 상기 저장된 데이터 항목을 재구성하는 단계; 및
    상기 저장된 데이터 항목을 리트리브하기 위한 요청에 대한 응답 - 상기 응답은 상기 재구성된 데이터 항목을 포함함 - 을 송신하는 단계를 더 포함하는, 방법.
  3. 제 1 항에 있어서, 상기 저장된 데이터 파티션들로부터 상기 데이터 항목을 복구하기(restoring) 위한 명령어들을 상기 블록체인에 저장하는 단계를 더 포함하는, 방법.
  4. 제 2 항에 있어서, 상기 저장된 데이터 항목을 재구성하는 단계는, 상기 데이터 항목의 카피(copy)를 생성하기 위해 상기 리트리브된 데이터 파티션들을 연쇄시키는(concatenating) 단계를 포함하는 것인, 방법.
  5. 제 2 항에 있어서, 상기 저장된 데이터 항목을 리트리브하기 위한 요청의 기록(record)을 상기 블록체인에 저장하는 단계를 더 포함하는, 방법.
  6. 제 2 항에 있어서, 상기 각각의 저장된 데이터 파티션을 리트리브하는 단계, 상기 저장된 데이터 파티션들로부터 상기 저장된 데이터 항목을 재구성하는 단계, 및 상기 리트리브하기 위한 요청에 대한 응답을 송신하는 단계는, 상기 블록체인에 저장되고 상기 블록체인 네트워크 상에서 실행되는 스마트 컨트랙트(smart contract)에 의해 수행되는 것인, 방법.
  7. 제 1 항에 있어서, 각각의 분산형 해시 테이블은, 상기 데이터 파티션에의 파일 경로, 상기 데이터 파티션의 값, 및 연관된 노드의 아이덴티티를 저장하는 것인, 방법.
  8. 제 1 항에 있어서, 상기 각각의 데이터 파티션과 연관된 정보를 블록체인에 저장하는 단계는, 각각의 데이터 파티션에의 경로를 상기 블록체인 상에 저장하는 단계를 포함하는 것인, 방법.
  9. 하나 이상의 컴퓨터에 커플링되고 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어를 기록한 비일시적 컴퓨터 판독가능 스토리지 매체에 있어서, 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어들은,
    블록체인 네트워크에 데이터 항목을 저장하기 위한 요청을 수신하고;
    상기 요청을 수신한 것에 응답하여,
    상기 데이터 항목을 복수의 데이터 파티션들로 분할하고;
    각각의 데이터 파티션을 상기 블록체인 네트워크 내의 복수의 상이한 노드들에 할당하며 - 상기 복수의 상이한 노드들 각각은 상기 할당된 데이터 파티션을 사적 유지 분산형 해시 테이블에 저장하고, 상기 복수의 상이한 노드들은 상기 할당된 데이터 파티션을 공유하지 않음 - ;
    각각의 데이터 파티션과 연관된 정보 - 상기 정보는 각각의 데이터 파티션의 저장 위치를 포함함 - 를 상기 블록체인 네트워크에 의해 유지되는 블록체인에 저장하기 위한 것인, 비일시적 컴퓨터 판독가능 스토리지 매체.
  10. 제 9 항에 있어서,
    상기 저장된 데이터 항목을 리트리브하기 위한 요청을 수신하고;
    상기 저장된 데이터 항목을 리트리브하기 위한 요청을 수신한 것에 응답하여,
    상기 블록체인에 저장된 각각의 데이터 파티션의 위치를 포함하는 정보에 기반하여 상기 할당된 노드들로부터 각각의 저장된 데이터 파티션을 리트리브하고;
    상기 저장된 데이터 파티션들로부터 상기 저장된 데이터 항목을 재구성하며;
    상기 저장된 데이터 항목을 리트리브하기 위한 요청에 대한 응답 - 상기 응답은 상기 재구성된 데이터 항목을 포함함 - 을 송신하기 위한 명령어를 더 포함하는, 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어를 기록한, 비일시적 컴퓨터 판독가능 스토리지 매체.
  11. 제 9 항에 있어서, 상기 저장된 데이터 파티션들로부터 상기 데이터 항목을 복구하기 위한 명령어들을 상기 블록체인에 저장하기 위한 명령어를 더 포함하는, 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어를 기록한, 비일시적 컴퓨터 판독가능 스토리지 매체.
  12. 제 10 항에 있어서, 상기 저장된 데이터 항목을 재구성하는 것은, 상기 데이터 항목의 카피를 생성하기 위해 상기 리트리브된 데이터 파티션들을 연쇄시키는 것을 포함하는 것인, 비일시적 컴퓨터 판독가능 스토리지 매체.
  13. 제 10 항에 있어서, 상기 저장된 데이터 항목을 리트리브하기 위한 요청의 기록을 상기 블록체인에 저장하기 위한 명령어를 더 포함하는, 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어를 기록한, 비일시적 컴퓨터 판독가능 스토리지 매체.
  14. 제 10 항에 있어서, 상기 각각의 저장된 데이터 파티션을 리트리브하는 것, 상기 저장된 데이터 파티션들로부터 상기 저장된 데이터 항목을 재구성하는 것, 및 상기 리트리브하기 위한 요청에 대한 응답을 송신하는 것은, 상기 블록체인에 저장되고 상기 블록체인 네트워크 상에서 실행되는 스마트 컨트랙트에 의해 수행되는 것인, 비일시적 컴퓨터 판독가능 스토리지 매체.
  15. 제 9 항에 있어서, 각각의 분산형 해시 테이블은, 상기 데이터 파티션에의 파일 경로, 상기 데이터 파티션의 값, 및 연관된 노드의 아이덴티티를 저장하는 것인, 비일시적 컴퓨터 판독가능 스토리지 매체.
  16. 제 9 항에 있어서, 상기 각각의 데이터 파티션과 연관된 정보를 블록체인에 저장하는 것은, 각각의 데이터 파티션에의 경로를 상기 블록체인 상에 저장하는 것을 포함하는 것인, 비일시적 컴퓨터 판독가능 스토리지 매체.
  17. 시스템에 있어서,
    하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터에 커플링되고 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어를 기록한 하나 이상의 컴퓨터 판독가능 메모리를 포함하고, 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어들은,
    블록체인 네트워크에 데이터 항목을 저장하기 위한 요청을 수신하고;
    상기 요청을 수신한 것에 응답하여,
    상기 데이터 항목을 복수의 데이터 파티션들로 분할하고;
    각각의 데이터 파티션을 상기 블록체인 네트워크 내의 복수의 상이한 노드들에 할당하며 - 상기 복수의 상이한 노드들 각각은 상기 할당된 데이터 파티션을 사적 유지 분산형 해시 테이블에 저장하고, 상기 복수의 상이한 노드들은 상기 할당된 데이터 파티션을 공유하지 않음 - ;
    각각의 데이터 파티션과 연관된 정보 - 상기 정보는 각각의 데이터 파티션의 저장 위치를 포함함 - 를 상기 블록체인 네트워크에 의해 유지되는 블록체인에 저장하기 위한 것인, 시스템.
  18. 제 17 항에 있어서, 상기 하나 이상의 컴퓨터 판독가능 메모리는,
    상기 저장된 데이터 항목을 리트리브하기 위한 요청을 수신하고;
    상기 저장된 데이터 항목을 리트리브하기 위한 요청을 수신한 것에 응답하여,
    상기 블록체인에 저장된 각각의 데이터 파티션의 위치를 포함하는 정보에 기반하여 상기 할당된 노드들로부터 각각의 저장된 데이터 파티션을 리트리브하고;
    상기 저장된 데이터 파티션들로부터 상기 저장된 데이터 항목을 재구성하며;
    상기 저장된 데이터 항목을 리트리브하기 위한 요청에 대한 응답 - 상기 응답은 상기 재구성된 데이터 항목을 포함함 - 을 송신하기 위한 명령어를 더 포함하는, 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어가 기록된 것인, 시스템.
  19. 제 17 항에 있어서, 상기 하나 이상의 컴퓨터 판독가능 메모리는, 상기 저장된 데이터 파티션들로부터 상기 데이터 항목을 복구하기 위한 명령어들을 상기 블록체인에 저장하기 위한 명령어를 더 포함하는, 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어가 기록된 것인, 시스템.
  20. 제 18 항에 있어서, 상기 저장된 데이터 항목을 재구성하는 것은, 상기 데이터 항목의 카피를 생성하기 위해 상기 리트리브된 데이터 파티션들을 연쇄시키는 것을 포함하는 것인, 시스템.
KR1020197021904A 2018-12-19 2018-12-19 공유되는 비밀 기반 블록체인 스토리지 KR102285798B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/122145 WO2019072298A2 (en) 2018-12-19 2018-12-19 STORING BLOCK CHAIN ON THE BASIS OF A SHARED SECRET

Publications (2)

Publication Number Publication Date
KR20200078419A KR20200078419A (ko) 2020-07-01
KR102285798B1 true KR102285798B1 (ko) 2021-08-05

Family

ID=66100131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021904A KR102285798B1 (ko) 2018-12-19 2018-12-19 공유되는 비밀 기반 블록체인 스토리지

Country Status (9)

Country Link
EP (1) EP3574630B1 (ko)
JP (1) JP7005639B2 (ko)
KR (1) KR102285798B1 (ko)
CN (1) CN110720204B (ko)
ES (1) ES2863573T3 (ko)
PH (1) PH12019501730A1 (ko)
PL (1) PL3574630T3 (ko)
SG (1) SG11201906827XA (ko)
WO (1) WO2019072298A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110417889B (zh) * 2019-07-30 2022-02-01 中国联合网络通信集团有限公司 一种基于ipfs的数据传输方法及装置
CN112632569A (zh) * 2019-10-09 2021-04-09 华控清交信息科技(北京)有限公司 数据处理方法、系统、装置、电子设备及可读存储介质
CN111914029A (zh) * 2020-08-06 2020-11-10 平安科技(深圳)有限公司 基于区块链的医疗数据调用方法、装置、电子设备及介质
CN112163036A (zh) * 2020-09-11 2021-01-01 泰康保险集团股份有限公司 区块链信息的构建和查询方法及相关装置
CN112328565A (zh) * 2020-11-06 2021-02-05 中国银联股份有限公司 一种基于区块链的资源共享的方法及装置
CN112416875B (zh) * 2020-11-24 2024-04-09 平安消费金融有限公司 日志管理方法、装置、计算机设备及存储介质
CN112733194A (zh) * 2021-01-26 2021-04-30 长威信息科技发展股份有限公司 一种区块链数据可信流通方法及系统
CN112800450B (zh) * 2021-02-05 2022-02-18 北京众享比特科技有限公司 数据存储方法、系统、装置、设备和存储介质
CN113238996A (zh) * 2021-05-18 2021-08-10 中国信息通信研究院 基于dht的区块链数据归档方法、电子设备及存储介质
CN114157670A (zh) * 2021-11-05 2022-03-08 支付宝(杭州)信息技术有限公司 消息传输方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107809484A (zh) * 2017-10-30 2018-03-16 中国联合网络通信集团有限公司 区块链交易信息处理方法及区块链节点
US20180101684A1 (en) * 2016-10-06 2018-04-12 Mastercard International Incorporated Method and system for identity and credential protection and verification via blockchain

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6441160B2 (ja) * 2015-04-27 2018-12-19 株式会社東芝 秘匿化装置、復号装置、秘匿化方法および復号方法
CA3002034A1 (en) * 2015-10-14 2017-04-20 Cambridge Blockchain, LLC Systems and methods for managing digital identities
CN106372533B (zh) * 2016-09-14 2020-04-21 中国银联股份有限公司 基于区块链技术的内容存储方法
JP7018557B2 (ja) * 2016-12-28 2022-02-14 高歩 中村 Bcn(ブロックチェーンネットワーク)を使用したデータ利用方法、システムおよびそのプログラム
JP6414269B1 (ja) 2017-04-19 2018-10-31 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US10560270B2 (en) * 2017-05-03 2020-02-11 International Business Machines Corporation Optimal data storage configuration in a blockchain
JP2018190227A (ja) 2017-05-09 2018-11-29 野田 真一 ネットワーク分散型重複排除ファイルストレージシステム
CA3063310A1 (en) 2017-05-19 2018-11-22 Sita Information Networking Computing Uk Limited System, device and method for providing passenger or user information
CN107748850A (zh) * 2017-10-30 2018-03-02 北京计算机技术及应用研究所 一种利用区块链保存设备维修作业数据的方法和系统
JP6326173B1 (ja) 2017-10-31 2018-05-16 株式会社インフォマート データ送受信システム及びデータ送受信方法
JP2019101719A (ja) 2017-12-01 2019-06-24 株式会社bitFlyer ブロックチェーン・ネットワークにおいてスマートコントラクトを実行可能にするための方法及び当該ネットワークを構成するためのノード
CN108062202A (zh) * 2017-12-15 2018-05-22 中链科技有限公司 一种文件分块存储方法及系统
CN108959563B (zh) * 2018-07-04 2020-05-15 东北大学 一种容量可扩展区块链查询方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180101684A1 (en) * 2016-10-06 2018-04-12 Mastercard International Incorporated Method and system for identity and credential protection and verification via blockchain
CN107809484A (zh) * 2017-10-30 2018-03-16 中国联合网络通信集团有限公司 区块链交易信息处理方法及区块链节点

Also Published As

Publication number Publication date
SG11201906827XA (en) 2019-08-27
JP7005639B2 (ja) 2022-01-21
ES2863573T3 (es) 2021-10-11
KR20200078419A (ko) 2020-07-01
PL3574630T3 (pl) 2021-08-02
EP3574630A4 (en) 2020-01-01
CN110720204A (zh) 2020-01-21
CN110720204B (zh) 2022-06-03
JP2020511808A (ja) 2020-04-16
EP3574630B1 (en) 2021-02-03
WO2019072298A3 (en) 2019-10-10
WO2019072298A2 (en) 2019-04-18
EP3574630A2 (en) 2019-12-04
PH12019501730A1 (en) 2020-03-09

Similar Documents

Publication Publication Date Title
KR102285798B1 (ko) 공유되는 비밀 기반 블록체인 스토리지
US20190278765A1 (en) Shared secret-based blockchain storage
US11899817B2 (en) Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information
US11886421B2 (en) Systems, methods, and apparatuses for distributing a metadata driven application to customers and non-customers of a host organization using distributed ledger technology (DLT)
US11803537B2 (en) Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT)
US11783024B2 (en) Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and IPFS integration
US8321688B2 (en) Secure and private backup storage and processing for trusted computing and data services
KR102151895B1 (ko) 블록체인 네트워크 내에서 스마트 에셋의 원자적 전송을 위한 플랫폼
US10902140B2 (en) Services platform for managing a verifiable permissioned ledger in a distributed database management system
US20100318782A1 (en) Secure and private backup storage and processing for trusted computing and data services
KR102151896B1 (ko) 블록체인 네트워크 내에서 스마트 에셋의 원자적 전송을 위한 플랫폼
US11314885B2 (en) Cryptographic data entry blockchain data structure
JP2020078081A (ja) ブロックチェーン機密トランザクションの管理
US20220027319A1 (en) Data deduplication in blockchain platforms
US20220303121A1 (en) Blockchain data segregation
US20220399988A1 (en) Linking blockchain operations
US20230308276A1 (en) Creating non-fungible token shards
US20230179424A1 (en) Compressible blockchains
Ramesh et al. Public auditing for shared data with efficient user revocation in the cloud
US20230412403A1 (en) Secret smart operations in blockchain
US20220067028A1 (en) Trustless operations for blockchain networks
Logapriya et al. Data Storage in Cloud Computing
Arpitha et al. Data Storage, Security And Techniques In Cloud Computing
CN115151934A (zh) 平台服务验证

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant