KR20200074909A - 블록체인 네트워크에서의 데이터 격리 - Google Patents

블록체인 네트워크에서의 데이터 격리 Download PDF

Info

Publication number
KR20200074909A
KR20200074909A KR1020197022194A KR20197022194A KR20200074909A KR 20200074909 A KR20200074909 A KR 20200074909A KR 1020197022194 A KR1020197022194 A KR 1020197022194A KR 20197022194 A KR20197022194 A KR 20197022194A KR 20200074909 A KR20200074909 A KR 20200074909A
Authority
KR
South Korea
Prior art keywords
blockchain
merkle tree
node
identity
computer
Prior art date
Application number
KR1020197022194A
Other languages
English (en)
Other versions
KR102258440B1 (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 KR20200074909A publication Critical patent/KR20200074909A/ko
Application granted granted Critical
Publication of KR102258440B1 publication Critical patent/KR102258440B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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/2246Trees, e.g. B+trees
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • 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/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 명세서의 구현예는, 블록체인 네트워크 내의 블록체인 노드에 의해, 블록체인의 특정 블록을 판독(read)하도록 하는 요청을 수신하는 단계 - 요청은 블록체인 네트워크의 경량 노드로부터 수신되고 경량 노드의 신원(identity)을 포함하며, 특정 블록은, 특정 블록과 연관된 원래의 머클 트리(Merkle tree)를 포함함 -; 블록체인 노드에 의해, 경량 노드의 신원과 연관된 권한을 식별하는 단계; 블록체인 노드에 의해, 블록 내에 포함된 원래의 머클 트리에 기초하여 격리된 머클 트리를 생성하는 단계 - 격리된 머클 트리는, 식별된 권한에 기초하여 경량 노드에 의해 액세스가능하다고 결정된 원래의 머클 트리로부터의 트랜잭션만을 포함하고, 격리된 머클 트리는 원래의 머클 트리와 일관적(consistent)임 -; 및 블록체인 노드에 의해, 격리된 머클 트리를 포함하는 응답을 경량 노드에 전송하는 단계를 포함한다.

Description

블록체인 네트워크에서의 데이터 격리
합의 네트워크(consensus network) 및/또는 블록체인 네트워크(blockchain network)로서도 지칭될 수 있는 분산형 원장 시스템(DLS, distributed ledger systems)은, 참여 엔티티가 보안적이고 불변적으로 데이터를 저장할 수 있도록 한다. 임의의 특정 활용 사례(예컨대, 암호화폐)를 언급하지 않는 경우, DLS는 통상적으로 블록체인 네트워크로서 지칭된다. 블록체인 네트워크의 예시 유형은 공개(public) 블록체인 네트워크, 비공개(private) 블록체인 네트워크, 및 컨소시엄(consortium) 블록체인 네트워크를 포함할 수 있다. 공개 블록체인 네트워크는 모든 엔티티가 해당 DLS를 사용하고, 합의 프로세스에 참여할 수 있도록 개방되어 있다. 비공개 블록체인 네트워크는, 판독 및 기입 권한(read and write permissions)을 중심적으로 제어하는 특정 엔티티를 위해 제공된다. 컨소시엄 블록체인 네트워크는, 합의 프로세스를 제어하는 선택된 엔티티 그룹을 위해 제공되며, 액세스 제어 계층을 포함한다.
블록체인 네트워크는 상이한 유형의 노드를 포함할 수 있다. 완전 참여 노드(fully-participating node)(이하 "블록체인 노드"로서 지칭됨)는 블록체인에 추가할 새 트랜잭션 블록을 구성하고 검증하려고 시도함으로써 블록체인 네트워크에 대한 합의 프로세스에 참여한다. 경량 노드(light-weight node)는 블록체인 네트워크에 대한 합의 프로세스에 참여하지 않으며, 블록체인에 대한 자신의 내부 표현을 완전히 동기화하지 않을 수도 있다. 예컨대, 경량 노드는, 블록체인 내의 특정 블록 내의 트랜잭션 데이터 전부가 아니라, 블록 헤더 정보만 동기화할 수 있다.
비공개 또는 컨소시엄 블록체인 네트워크에서, (경량 노드와 같은) 노드는, 예컨대, 해당 경량 노드와 연관된 신원(identity)이 참여한 트랜잭션과 같은, 특정 트랜잭션을 블록체인으로부터 판독할 권한만을 가질 수도 있다. 그러한 경우, 경량 노드는 특정 블록에 대해 블록체인 노드에 질의할 수 있으며, 해당 경량 노드가 액세스를 가지지 않는 트랜잭션이 제거된 상태로 블록의 표현(예컨대, 머클 트리(Merkle tree))이 반환될 수 있다. 이러한 방식으로 구성되는 머클 트리는, 블록 내의 트랜잭션을 표현하는 완전한 머클 트리와 비일관적(inconsistent)일 수 있으며, 이는, 경량 노드가 블록의 정확한 표현을 소유하지 않음으로 인해, 경량 노드에서의 오류를 초래할 수 있다.
본 명세서의 구현예는, 블록체인 네트워크 내의 모든 노드에 블록체인 내의 블록의 일관적(consistent)인 표현을 제공하면서도 블록체인 네트워크에서 데이터 격리를 시행하기 위한 컴퓨터-구현 방법(computer-implemented method)을 포함한다. 더 구체적으로, 본 명세서의 구현예는, 요청 노드가 격리되어 있는 데이터를 포함하지 않으면서도, 요청된 블록을 표현하는 완전한 머클 트리와 일관적인 머클 트리의 생성에 관한 것이다.
일부 구현예에서, 동작은, 블록체인 네트워크 내의 블록체인 노드에 의해, 블록체인의 특정 블록을 판독하도록 하는 요청을 수신하는 동작 - 요청은 블록체인 네트워크의 경량 노드로부터 수신되고 경량 노드의 신원을 포함하며, 특정 블록은, 특정 블록과 연관된 복수의 트랜잭션을 포함하는 원래의 머클 트리를 포함함 -; 블록체인 노드에 의해, 경량 노드의 신원과 연관된 권한을 식별하는 단계; 블록체인 노드에 의해, 블록 내에 포함된 원래의 머클 트리에 기초하여 격리된 머클 트리를 생성하는 단계 - 격리된 머클 트리는, 식별된 권한에 기초하여 경량 노드에 의해 액세스가능하다고 결정된 원래의 머클 트리로부터의 트랜잭션만을 포함하고, 격리된 머클 트리는 원래의 머클 트리와 일관적임 -; 및 블록체인 노드에 의해, 격리된 머클 트리를 포함하는 응답을 경량 노드에 전송하는 단계를 포함한다. 다른 구현예는, 컴퓨터 저장 디바이스 상에 인코딩된 방법의 동작을 수행하도록 구성된 대응 시스템, 장치, 및 컴퓨터 프로그램을 포함한다.
이들 구현예 및 다른 구현예는 다음의 특징 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현예에서, 특정 블록 내에 포함된 원래의 머클 트리에 기초하여 격리된 머클 트리를 생성하는 동작은, 격리된 머클 트리를 생성하기 위해 원래의 머클 트리를 수정하는 동작을 포함할 수 있으며, 원래의 머클 트리를 수정하는 동작은, 경량 노드에 의해 액세스가능하지 않다고 결정된 모든 트랜잭션을 원래의 머클 트리로부터 제거하는 동작; 및 모든 트랜잭션이 제거된 원래의 머클 트리의 브랜치(branch)를 제거하여 브랜치 각각의 루트(root) 해시만을 그대로 남기는 동작을 포함한다.
일부 구현예에서, 권한이, 경량 노드가 한 트랜잭션에 대한 판독 액세스를 가지지 않는다는 것을 나타낸다면, 해당 트랜잭션은 경량 노드에 의해 액세스가능하지 않다고 결정된다.
일부 경우, 복수의 트랜잭션 각각은, 트랜잭션 내의 하나 이상의 참여자와 연관된 하나 이상의 신원을 포함한다.
일부 구현예에서, 신원은 신원 클래스와 연관되어 있고, 권한은 신원 클래스와 연관되어 있고, 블록체인 노드는, 신원 클래스와 연관된 권한을, 신원 클래스와 연관된 신원에 대해 시행하도록 구성된다.
일부 경우, 신원 클래스는 조정자(regulator) 클래스이며, 조정자 클래스와 연관된 권한은, 블록체인 네트워크 내의 모든 트랜잭션이, 조정자 클래스와 연관된 신원에 의해 액세스가능하다는 것을 나타낸다.
일부 구현예에서, 신원 클래스는 일반 클래스이며, 일반 클래스와 연관된 권한은, 해당 신원이 참여자인 블록체인 네트워크 내의 트랜잭션만 해당 신원에 의해 액세스가능하다는 것을 나타낸다.
일부 경우, 경량 노드가, 격리된 머클 트리 내의 해시에 기초하여, 격리된 머클 트리 내의 트랜잭션을 검증할 수 있도록 하기에 충분한 경우에만, 격리된 머클 트리가 원래의 머클 트리와 일관적이다.
본 명세서는, 하나 이상의 프로세서에 커플링되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 본 명세서에 제공된 방법의 구현예에 따른 동작을 수행하게 하는 명령어가 저장되어 있는 하나 이상의 비일시적 컴퓨터-판독가능 저장 매체도 제공한다.
본 명세서는, 본 명세서에 제공된 방법을 구현하기 위한 시스템을 더 제공한다. 시스템은, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 커플링되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 본 명세서에 제공된 방법의 구현예에 따라서 동작을 수행하게 하는 명령어가 저장되어 있는 컴퓨터-판독가능 저장 매체를 포함한다.
본 명세서에 따른 방법은, 본 명세서에 설명된 양상 및 특징의 임의의 조합을 포함할 수 있다는 것이 이해된다. 즉, 본 명세서에 따른 방법은, 본 명세서에 구체적으로 설명된 양상 및 특징의 조합으로 제한되는 것이 아니라, 제공된 양상 및 특징의 임의의 조합도 포함한다.
본 명세서의 하나 이상의 구현예의 세부사항이 첨부 도면 및 아래의 설명에 명시되어 있다. 본 명세서의 다른 특징 및 장점은, 설명 및 도면으로부터, 그리고 청구범위로부터 명백해질 것이다.
도 1은, 본 명세서의 구현예를 실행하기 위해 사용될 수 있는 예시 환경을 도시한다.
도 2는, 본 명세서의 구현예에 따른 예시 개념 아키텍처를 도시한다.
도 3a는, 본 명세서의 구현예에 따른, 블록체인 내의 블록에 대한 예시 머클 트리를 도시한다.
도 3b는, 본 명세서의 구현예에 따른, 격리된 트랜잭션을 포함하는 브랜치를 갖는 도 3a의 예시 머클 트리를 도시한다.
도 3c는, 본 명세서의 구현예에 따른, 도 3a의 머클 트리에 기초하여 생성된 예시 격리된 머클 트리를 도시한다.
도 4는, 본 명세서의 구현예에 따라서 실행될 수 있는 예시 프로세스를 도시한다.
다양한 도면 내의 유사한 참조 기호는 유사한 요소를 나타낸다.
본 명세서의 구현예는, 블록체인 네트워크 내의 모든 노드에 블록체인 내의 블록의 일관적인 표현을 제공하면서도 블록체인 네트워크에서 데이터 격리를 시행하기 위한 컴퓨터-구현 방법을 포함한다. 더 구체적으로, 본 명세서의 구현예는, 요청 노드가 격리되어 있는 데이터를 포함하지 않으면서도, 요청된 블록을 표현하는 완전한 머클 트리와 일관적인 머클 트리의 생성에 관한 것이다.
일부 구현예에서, 동작은, 블록체인 네트워크 내의 블록체인 노드에 의해, 블록체인의 특정 블록을 판독하도록 하는 요청을 수신하는 동작 - 요청은 블록체인 네트워크의 경량 노드로부터 수신되고 경량 노드의 신원을 포함하며, 특정 블록은, 특정 블록과 연관된 복수의 트랜잭션을 포함하는 원래의 머클 트리를 포함함 -; 블록체인 노드에 의해, 경량 노드의 신원과 연관된 권한을 식별하는 단계; 블록체인 노드에 의해, 블록 내에 포함된 원래의 머클 트리에 기초하여 격리된 머클 트리를 생성하는 단계 - 격리된 머클 트리는, 식별된 권한에 기초하여 경량 노드에 의해 액세스가능하다고 결정된 원래의 머클 트리로부터의 트랜잭션만을 포함하고, 격리된 머클 트리는 원래의 머클 트리와 일관적임 -; 및 블록체인 노드에 의해, 격리된 머클 트리를 포함하는 응답을 경량 노드에 전송하는 단계를 포함한다.
본 명세서의 구현예에 대한 추가적인 맥락을 제공하자면, 그리고 위에서 소개한 바와 같이, (예컨대, 피어-투-피어(peer-to-peer) 노드로 이루어진) 합의 네트워크로서도 지칭될 수 있는 분산형 원장 시스템(DLS), 및 블록체인 네트워크는, 참여 엔티티가 보안적이고 불변적으로 트랜잭션을 수행하고 데이터를 저장할 수 있게 한다. 블록체인이라는 용어는 다양한 암호화폐 네트워크와 일반적으로 연관되어 있지만, 임의의 특정 활용 사례에 대한 언급이 없다면, 블록체인은 본 명세서에서 DLS를 일반적으로 지칭하기 위해 사용된다. 위에서 소개한 바와 같이, 블록체인 네트워크는 공개 블록체인 네트워크, 비공개 블록체인 네트워크, 또는 컨소시엄 블록체인 네트워크로서 제공될 수 있다.
공개 블록체인 네트워크에서, 합의 프로세스는 합의 네트워크의 노드에 의해 제어된다. 예컨대, 수백, 수천, 또는 수백만 개의 엔티티까지도 공개 블록체인 네트워크 내에서 협력할 수 있으며, 엔티티 각각은 공개 블록체인 네트워크 내의 적어도 하나의 노드를 운영한다. 따라서, 공개 블록체인 네트워크는 참여 엔티티에 관하여 공개 네트워크로 간주될 수 있다. 일부 예에서, 블록이 유효하려면 그리고 블록이 블록체인 네트워크의 블록체인(분산형 원장)에 추가되려면 대다수의 엔티티(노드)가 모든 블록에 서명해야 한다. 공개 블록체인 네트워크의 예는, 다양한 암호화폐 네트워크를 포함하며, 이들은 피어-투-피어 결제 네트워크이다. 암호화폐 네트워크는, 블록체인으로서 지칭되는 분산형 원장을 활용할 수 있다. 그러나, 위에서 언급한 바와 같이, 임의의 특정 암호화폐 네트워크에 대한 특별한 언급이 없다면, 블록체인이라는 용어는 분산형 원장을 일반적으로 지칭하기 위해 사용된다.
일반적으로, 공개 블록체인 네트워크는 공개 트랜잭션을 지원한다. 공개 트랜잭션은 공개 블록체인 네트워크 내의 모든 노드와 공유되고, 전역적 블록체인 내에 저장된다. 전역적 블록체인은, 모든 노드에 걸쳐서 복제되는 블록체인이다. 즉, 모든 노드는, 전역적 블록체인에 관하여 완벽한 상태 합의(perfect state consensus)가 되어 있다. 합의(예컨대, 블록을 블록체인에 추가하는 것에 대한 동의)를 달성하기 위하여, 공개 블록체인 네트워크 내에 합의 프로토콜이 구현된다. 한 예시 합의 프로토콜은, 암호화폐 네트워크 내에 구현되는 작업증명(POW, proof-of-work)을, 제한 없이 포함한다.
일반적으로, 비공개 블록체인 네트워크는, 판독 및 기입 권한을 중심적으로 제어하는 특정 엔티티를 위해 제공된다. 해당 엔티티는, 어느 노드가 블록체인 네트워크에 참여할 수 있는지를 제어한다. 따라서, 비공개 블록체인 네트워크는, 누가 네트워크에 참여하도록 허용되는지 및 이들의 참여 수준(예컨대, 특정 트랜잭션에만 참여)에 대해 제한을 가하는 허가형 네트워크(permissioned network)로서 일반적으로 지칭된다. 다양한 유형의 액세스 제어 메커니즘이 사용될 수 있다(예컨대, 기존의 참여자가 새 엔티티의 추가에 대해 보팅(voting), 규제 기관이 가입을 제어).
일반적으로, 컨소시엄 블록체인 네트워크는 참여 엔티티 사이에서 비공개이다. 컨소시엄 블록체인 네트워크에서, 합의 프로세스는, 인가된 노드 세트에 의해 제어되며, 하나 이상의 노드가 각 엔티티(예컨대, 금융 기관, 보험사)에 의해 운영된다. 예컨대, 10개의 엔티티(예컨대, 금융 기관, 보험사)로 구성된 컨소시엄이 컨소시엄 블록체인 네트워크를 운영할 수 있으며, 엔티티 각각은 컨소시엄 블록체인 네트워크 내의 적어도 하나의 노드를 운영한다. 따라서, 컨소시엄 블록체인 네트워크는, 참여 엔티티에 관하여 비공개 네트워크로 간주될 수 있다. 일부 예에서, 블록이 유효하려면 그리고 블록이 블록체인에 추가되려면, 각 엔티티(노드)가 모든 블록에 서명해야 한다. 일부 예에서, 블록이 유효하려면 그리고 블록이 블록체인에 추가되려면, 적어도 엔티티들(노드들)의 부분 집합(예컨대, 적어도 7개의 엔티티)이 모든 블록에 서명해야 한다.
여기서는, 블록체인 네트워크의 구성에 기초하여 특정 데이터가 특정 참여 엔티티로부터 격리될 수 있는, 비공개 블록체인 네트워크를 참조하여 본 명세서의 구현예가 더 상세히 설명된다. 그러나, 본 명세서의 구현예는 임의의 적절한 유형의 블록체인 네트워크로 실현될 수 있으리라 예상된다.
여기서는 위의 맥락을 고려하여 본 명세서의 구현예가 더 상세히 설명된다. 더 구체적으로, 그리고 위에서 소개한 바와 같이, 본 명세서의 구현예는, 요청 노드가 격리되어 있는 데이터를 포함하지 않으면서도, 요청된 블록을 표현하는 완전한 머클 트리와 일관적인 머클 트리의 생성에 관한 것이다.
일부 구현예에서, 경량 노드는, 네트워크에 참여하는 블록체인 노드로부터 특정 블록을 요청할 수 있다. 블록체인 노드는, 경량 노드가 블록 내의 특정 트랜잭션을 판독할 권한을 가지지 않는다고 결정할 수 있다. 블록체인 노드는, 요청된 블록을 표현하는 완전한 머클 트리의 사본으로부터 이들 트랜잭션을 제거할 수 있지만, 제거된 트랜잭션만 포함하는 트리의 임의의 브랜치에 대해 루트 해시만을 남길 수 있다. 그렇게 함으로써, 해당 경량 노드가 판독하도록 인가되지 않은 트랜잭션 데이터로부터 해당 경량 노드를 효과적으로 격리시킬 수 있고, 해당 블록에 대한 완전한 머클 트리와 일관적인 블록의 표현이 해당 경량 노드에 제공되도록 할 수도 있다. 이는, 해당 경량 노드가 격리되어 있는 트랜잭션 데이터에 대한 액세스 없이도, 해당 경량 노드가 (머클 트리 내의 해시를 검사함으로써) 블록의 무결성을 검증하게 할 수 있다.
도 1은, 본 명세서의 구현예를 실행하기 위해 사용될 수 있는 예시 환경(100)을 도시한다. 일부 예에서, 예시 환경(100)은 엔티티가 비공개 블록체인 네트워크(102)에 참여할 수 있게 한다. 예시 환경(100)은 컴퓨팅 디바이스(106, 108) 및 네트워크(110)를 포함한다. 일부 예에서, 네트워크(110)는 LAN(local area network), WAN(wide area network), 인터넷, 또는 이들의 조합을 포함하며, 웹 사이트, 사용자 디바이스(예컨대, 컴퓨팅 디바이스), 및 백엔드 시스템을 연결한다. 일부 예에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다.
도시된 예에서, 컴퓨팅 시스템(106, 108)은, 비공개 블록체인 네트워크(102)에 노드로서 참여할 수 있게 하는 임의의 적절한 컴퓨팅 시스템을 각각 포함할 수 있다. 예시 컴퓨팅 디바이스는, 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨팅 디바이스, 및 스마트폰을, 제한 없이 포함한다. 일부 예에서, 컴퓨팅 시스템(106, 108)은, 비공개 블록체인 네트워크(102)와 상호작용하기 위한 하나 이상의 컴퓨터-구현 서비스(computer-implemented service)를 호스팅한다. 예컨대, 컴퓨팅 시스템(106)은, 하나 이상의 다른 엔티티(예컨대, 다른 사용자들)와의 트랜잭션을 관리하기 위해 제1 엔티티(예컨대, 사용자 A)가 사용하는 트랜잭션 관리 시스템과 같은, 제1 엔티티의 컴퓨터-구현 서비스를 호스팅할 수 있다. 컴퓨팅 시스템(108)은, 하나 이상의 다른 엔티티(예컨대, 다른 사용자들)와의 트랜잭션을 관리하기 위해 제2 엔티티(예컨대, 사용자 B)가 사용하는 트랜잭션 관리 시스템과 같은, 제2 엔티티의 컴퓨터-구현 서비스를 호스팅할 수 있다. 도 1의 예에서, 비공개 블록체인 네트워크(102)는, 노드로 구성된 피어-투-피어 네트워크인 것으로 표현되어 있으며, 컴퓨팅 시스템(106, 108)은, 비공개 블록체인 네트워크(102)에 참여하는 제1 엔티티 및 제2 엔티티의 노드를 각각 제공한다.
도 2는, 본 명세서의 구현예에 따른 예시 개념 아키텍처(200)를 도시한다. 예시 개념 아키텍처(200)는, 엔티티 계층(202), 호스팅된 서비스 계층(204), 및 블록체인 네트워크 계층(206)을 포함한다. 도시된 예에서, 엔티티 계층(202)은, Entity_1(E1), Entity_2(E2), 및 Entity_3(E3)이라는 3개의 엔티티를 포함하며, 각 엔티티는 각각의 트랜잭션 관리 시스템(208)을 갖는다.
도시된 예에서, 호스팅된 서비스 계층(204)은 각 트랜잭션 관리 시스템(208)을 위한 인터페이스(210)를 포함한다. 일부 예에서, 각 트랜잭션 관리 시스템(208)은 프로토콜(예컨대, HTTPS(hypertext transfer protocol secure))을 사용하여 네트워크(예컨대, 도 1의 네트워크(110))를 통해 각 인터페이스(210)와 통신한다. 일부 예에서, 각 인터페이스(210)는 각 트랜잭션 관리 시스템(208)과 블록체인 네트워크 계층(206) 사이의 통신 연결을 제공한다. 더 구체적으로, 인터페이스(210)는 해당 블록체인 네트워크 계층(206)의 블록체인 네트워크(212)와 통신한다. 일부 예에서, 인터페이스(210)와 블록체인 네트워크 계층(206) 사이의 통신은, 원격 프로시저 호출(RPC, remote procedure call)을 사용하여 수행된다. 일부 예에서, 인터페이스(210)는 각 트랜잭션 관리 시스템(208)을 위한 블록체인 네트워크 노드를 "호스팅한다". 예컨대, 인터페이스(210)는 블록체인 네트워크(212)에 대한 액세스를 위한 애플리케이션 프로그래밍 인터페이스(API, application programming interface)를 제공한다.
본 명세서에 설명된 바와 같이, 블록체인 네트워크(212)는, 블록체인(216) 내에 불변적으로 정보를 기록하는 복수의 노드(214)를 포함하는 피어-투-피어 네트워크로서 제공된다. 단일 블록체인(216)이 개략적으로 도시되어 있지만, 블록체인(216)의 다수의 사본이 제공되며, 블록체인 네트워크(212) 전체에 걸쳐서 유지된다. 예컨대, 각 노드(214)는 블록체인의 사본을 저장한다. 일부 구현예에서, 블록체인(216)은, 비공개 블록체인 네트워크에 참여하는 2개 이상의 엔티티 사이에서 수행된 트랜잭션과 연관된 정보를 저장한다.
도 3a는, 본 명세서의 구현예에 따른, 블록체인 내의 블록(310)에 대한 예시 머클 트리(300)를 도시한다. 도시된 바와 같이, 머클 트리(300)는, 블록 내의 모든 데이터에 대한 해시 값, 및 임시 값과 블록 체인 내의 이전 블록의 해시를 포함하는 블록 헤더를 포함한다. 블록 헤더는, 루트 해시도 포함하며, 루트 해시는, 머클 트리 내에서 루트 해시 바로 밑에 있는 2개의 해시(325a, 325b)를 연접시킨 것이다.
머클 트리(300)의 리프(leaf) 노드는, 블록 체인의 이 특정 블록(310) 내에 기록된 트랜잭션을 표현하는 트랜잭션(305a 내지 305d)을 포함한다. 머클 트리(300)는 해시(315a 내지 315d)도 포함한다. 해시(315a 내지 315d) 각각은, 트랜잭션(305a 내지 305d)에 대한 트랜잭션 데이터에 기초하여 각각 생성된 해시 값이다. 예컨대, 해시(315a)는, 트랜잭션(305a) 내의 데이터를 SHA 256 해싱 알고리즘에 대한 입력으로서 제공하여 해시 값(315a)을 생성함으로써 생성될 수 있다. 일부 구현예에서, 보장된 고유성을 갖는 임의의 해시 함수가 사용되어 해시(315a 내지 315d)를 생성할 수 있다.
머클 트리(300)는 해시(325a)("해시01") 및 해시(325b)("해시23")도 포함할 수 있다. 해시(325a 내지 325b)는, 머클 트리 내에서 바로 밑에 있는 2개의 해시를 연접시킴으로써 생성된다. 예컨대, 해시(325a)("해시01")는, 해시(315a)("해시0")와 해시(315b)("해시1")를 연접시킴으로써 생성된다. 이와 유사하게, 전술한 바와 같이, 블록 헤더 내의 루트 해시는, 해시(325a)와 해시(325b)를 연접시킴으로써 구성된다.
도 3a에서 회색으로 음영 처리되어 도시된 트랜잭션(305a 내지 305c)은, 블록(310)을 요청하는 엔티티(예컨대, 경량 노드)가 액세스할 권한을 가지지 않는 트랜잭션을 표현한다. 도 3b는, 요청 엔티티가 격리될 트랜잭션만을 포함하는 머클 트리(300)의 브랜치(335a, 335b)가, 해당 브랜치를 둘러싸는 파선 상자에 의해 표시되어 있는, 예시 머클 트리(350)를 도시한다.
도 3c는, 본 명세서의 구현예에 따른, 도 3a의 머클 트리에 기초하여 생성된 예시 격리된 머클 트리(390)를 도시한다. 도시된 바와 같이, 이전의 도 3b에서 식별된 브랜치(335a 및 335b)는, 격리된 머클 트리(390) 내에서 제거되었다.
일부 실시예에서, 예(390)와 같은 격리된 머클 트리는, 도 3a에 도시된 것과 같은 완전한 머클 트리에 소프트웨어 알고리즘을 적용함으로써 생성될 수 있다. 한 예시 알고리즘에서, 블록체인 노드는 특정 블록을 판독하도록 하는 요청을 경량 노드로부터 수신한다. 블록체인 노드는, 요청된 블록 내에서 트랜잭션을 스캐닝하고, 요청에 포함된 신원 속성 및 신원과 연관된 권한에 기초하여 경량 노드가 각 트랜잭션을 판독할 권한을 가지는지의 여부를 결정한다.
예시 알고리즘에서, 블록체인 노드는 블록 내의 트랜잭션을 순차적으로 스캐닝하며, 정의에 의해 이들 트랜잭션은 머클 트리의 리프 노드 내에 저장된다. 각 트랜잭션에 대해, 경량 노드가 해당 트랜잭션을 판독할 권한을 가진다면, 블록체인 노드는 그다음 트랜잭션으로 이동한다. 경량 노드가 판독할 권한을 가지지 않는 트랜잭션 Tx_i를 블록체인 노드가 찾는다면, 블록체인 노드는, 경량 노드가 판독할 권한을 가지는 트랜잭션 Tx_j를 다시 찾을 때까지 계속하여 후속적인 트랜잭션을 스캐닝한다. 이후, 블록체인 노드는 Tx_i에서부터 Tx_(j-1)까지의 트랜잭션 그룹을 제거하며, 경량 노드는 이들 트랜잭션 모두에 대해 판독 권한을 가지지 않는다. 또한, 블록체인 노드는, 이제는 트랜잭션을 포함하지 않는 임의의 브랜치를 머클 트리로부터 제거하고, 해당 특정 브랜치의 루트 해시만 남긴다. 도 3b 및 도 3c에 도시된 바와 같이, 이러한 브랜치 제거 프로세스가 브랜치(335a 및 335b)에 적용된다.
이러한 트랜잭션 스캐닝 및 프로세싱은 머클 트리 내의 마지막 트랜잭션이 프로세싱될 때까지 계속되며, 경량 노드가 판독할 권한을 가지는 트랜잭션을 포함하는 머클 트리가 획득된다. 이러한 격리된 머클 트리가 경량 노드에 반환된다.
도 4는, 본 명세서의 구현예에 따라서 실행될 수 있는 예시 프로세스(400)를 도시한다. 일부 구현예에서, 예시 프로세스(400)는, 하나 이상의 컴퓨팅 디바이스를 사용하여 실행되는 하나 이상의 컴퓨터-실행가능 프로그램을 사용하여 수행될 수 있다.
단계(402)에서, 블록체인 노드는 블록체인의 특정 블록을 판독하도록 하는 요청을 블록체인 네트워크의 경량 노드로부터 수신한다. 요청은 경량 노드의 신원, 및 특정 블록과 연관된 복수의 트랜잭션을 포함하는 원래의 머클 트리를 포함하는 특정 블록을 포함한다. 일부 경우, 복수의 트랜잭션 각각은, 트랜잭션 내의 하나 이상의 참여자와 연관된 하나 이상의 신원을 포함한다. 단계(402)로부터, 방법(400)은 단계(404)로 계속된다.
단계(404)에서, 블록체인 노드는, 경량 노드의 신원과 연관된 권한을 식별한다. 일부 경우, 신원은 신원 클래스와 연관되어 있고, 권한은 신원 클래스와 연관되어 있고, 블록체인 노드는, 신원 클래스와 연관된 권한을, 신원 클래스와 연관된 신원에 대해 시행하도록 구성된다. 일부 구현예에서, 신원 클래스는 조정자 클래스이며, 조정자 클래스와 연관된 권한은, 블록체인 네트워크 내의 모든 트랜잭션이, 조정자 클래스와 연관된 신원에 의해 액세스가능하다는 것을 나타낸다. 일부 경우, 신원 클래스는 일반 클래스이며, 일반 클래스와 연관된 권한은, 해당 신원이 참여자인 블록체인 네트워크 내의 트랜잭션만 해당 신원에 의해 액세스가능하다는 것을 나타낸다. 단계(404)로부터, 방법(400)은 단계(406)로 계속된다.
단계(406)에서, 블록체인 노드는, 특정 블록에 포함된 원래의 머클 트리에 기초하여 격리된 머클 트리를 생성한다. 격리된 머클 트리는, 식별된 권한에 기초하여 경량 노드에 의해 액세스가능하다고 결정된 원래의 머클 트리로부터의 트랜잭션만을 포함한다. 일부 구현예에서, 권한이, 경량 노드가 한 트랜잭션에 대한 판독 액세스를 가지지 않는다는 것을 나타낸다면, 해당 트랜잭션은 경량 노드에 의해 액세스가능하지 않다고 결정된다. 격리된 머클 트리는 원래의 머클 트리와 일관적이다. 일부 구현예에서, 경량 노드가, 격리된 머클 트리 내의 해시에 기초하여 격리된 머클 트리 내의 트랜잭션을 검증할 수 있도록 하기에 충분한 경우에만, 격리된 머클 트리가 원래의 머클 트리와 일관적이다. 일부 경우, 격리된 머클 트리를 생성하는 단계는, 격리된 머클 트리를 생성하기 위해 원래의 머클 트리를 수정하는 단계를 포함하며, 원래의 머클 트리를 수정하는 단계는, 경량 노드에 의해 액세스가능하지 않다고 결정된 모든 트랜잭션을 원래의 머클 트리로부터 제거하는 단계, 및 모든 트랜잭션이 제거된 원래의 머클 트리의 브랜치를 제거하여 브랜치 각각의 루트 해시를 그대로 남기는 단계를 포함한다. 단계(406)로부터, 방법(400)은 단계(408)로 계속된다.
단계(408)에서, 블록체인 노드는, 격리된 머클 트리를 포함하는 응답을 경량 노드에 전송한다. 단계(408)로부터, 방법(400)은 정지한다.
본 명세서에 설명된 주제 및 행동과 동작의 구현예는, 디지털 전자 회로부로, 유형적으로 수록된 컴퓨터 소프트웨어 또는 펌웨어로, 본 명세서에 개시된 구조 및 그 구조적 등가물을 비롯한 컴퓨터 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 설명된 주제의 소프트웨어 구현예는, 하나 이상의 컴퓨터 프로그램으로서, 예컨대, 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 프로그램 캐리어 상에 인코딩된 하나 이상의 컴퓨터 프로그램 명령어 모듈로서 구현될 수 있다. 캐리어는 유형의 비일시적 컴퓨터 저장 매체일 수 있다. 대안적으로, 또는 추가적으로, 캐리어는, 인공적으로 생성되어 전파되는 신호, 예컨대, 데이터 처리 장치에 의한 실행을 위해 적합한 수신기 장치로 송신할 정보를 인코딩하기 위하여 생성된 기계-생성형 전기, 광학, 또는 전자기 신호일 수 있다. 컴퓨터 저장 매체는 기계-판독가능 저장 디바이스, 기계-판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합이거나 그 일부일 수 있다. 컴퓨터 저장 매체는, 전파되는 신호가 아니다.
"데이터 처리 장치"라는 용어는, 예를 들어, 프로그래밍가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 비롯한, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스, 및 기계를 망라한다. 데이터 처리 장치는 특수-목적 논리 회로부, 예컨대, FPGA(field programmable gate array), ASIC (application-specific integrated circuit), 또는 GPU(graphics processing unit)를 포함할 수 있다. 이러한 장치는, 하드웨어에 더하여, 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 더 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 엔진, 스크립트, 또는 코드로도 지칭되거나 설명될 수 있는 컴퓨터 프로그램은, 컴파일러형이나 인터프리터형 언어, 또는 선언형이나 절차형 언어를 비롯한 임의의 형태의 프로그래밍 언어로 작성될 수 있으며; 독립형 프로그램, 또는, 컴퓨팅 환경에서 실행하기에 적합한, 모듈, 컴포넌트, 엔진, 서브루틴, 또는 다른 유닛을 비롯한 임의의 형태로 배치될 수 있으며, 컴퓨팅 환경은, 하나 이상의 위치에서 데이터 통신 네트워크에 의해 상호연결된 하나 이상의 컴퓨터를 포함할 수 있다.
컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있으나, 그러할 필요는 없다. 컴퓨터 프로그램은, 다른 프로그램 또는 데이터를 보유한 파일의 일부, 예컨대, 마크업 언어 문서 내에 저장된 하나 이상의 스크립트에 저장되거나, 해당 프로그램 전용 단일 파일에 저장되거나, 다수의 조정된 파일, 예컨대, 하나 이상의 모듈, 서브프로그램, 또는 코드의 부분들을 저장한 파일들에 저장될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은, 입력 데이터에 대해 연산을 수행하고 출력을 생성함으로써 동작을 수행하기 위한 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은, 특수 목적 논리 회로부, 예컨대, FPGA, ASIC, 또는 GPU나, 특수 목적 논리 회로부 및 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는, 범용 마이크로프로세서나 특수 목적 마이크로프로세서, 또는 둘 다, 또는 임의의 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로, 중앙 처리 장치는 리드-온리 메모리나 랜덤-액세스 메모리, 또는 둘 다로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 요소는, 명령어를 실행하기 위한 중앙 처리 장치, 그리고 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스를 포함할 수 있다. 중앙 처리 장치 및 메모리는 특수 목적 논리 회로부에 의해 보완되거나 특수 목적 논리 회로부에 포함될 수 있다.
일반적으로, 컴퓨터는 적어도 하나의 비일시적 컴퓨터-판독가능 저장 매체(non-transitory computer-readable storage medium)(컴퓨터-판독가능 메모리로서도 지칭됨)에 커플링될 것이다. 컴퓨터에 커플링된 저장 매체는 컴퓨터의 내부 컴포넌트(예컨대, 통합형 하드 드라이브) 또는 외부 컴포넌트(예컨대, USB(universal serial bus) 하드 드라이브 또는 네트워크를 통해 액세스되는 저장 시스템)일 수 있다. 저장 매체의 예는, 예컨대, 자기식, 자기광학식, 또는 광학식 디스크, 솔리드-스테이트 드라이브, 클라우드 저장 시스템과 같은 네트워크 저장 자원, 또는 다른 유형의 저장 매체를 포함할 수 있다. 그러나, 컴퓨터가 그러한 디바이스를 가질 필요는 없다. 또한, 컴퓨터는, 또 다른 디바이스에, 예컨대, 모바일 전화기, PDA(personal digital assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(global positioning system) 수신기, 또는 휴대용 저장 디바이스, 예컨대, USB(universal serial bus) 플래시 드라이브 등에 임베딩될 수 있다.
사용자와의 상호작용이 가능하도록 하기 위하여, 본 명세서에 설명된 주제의 구현예는, 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예컨대, LCD(liquid crystal display) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있도록 하는 입력 디바이스, 예컨대, 키보드 및 포인팅 디바이스, 예컨대, 마우스, 트랙볼, 또는 터치패드를 갖는 컴퓨터 상에 구현되거나 그러한 컴퓨터와 통신하도록 구성될 수 있다. 사용자와의 상호작용이 가능하도록 하기 위하여 다른 종류의 디바이스가 사용될 수도 있으며; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대, 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 촉각 입력을 비롯한 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 사용자에 의해 사용되는 디바이스에 문서를 전송하고 해당 디바이스로부터 문서를 수신함으로써; 예컨대, 웹 브라우저로부터 수신되는 요청에 응답하여, 사용자의 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써, 또는 사용자 디바이스, 예컨대, 스마트폰 또는 전자 태블릿 상에서 실행 중인 앱과 상호작용함으로써, 사용자와 상호작용할 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인용 디바이스, 예컨대 메시징 애플리케이션을 실행 중인 스마트폰에 전송하고, 그에 대한 반응으로, 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호작용할 수 있다.
본 명세서는 시스템, 장치, 및 컴퓨터 프로그램 컴포넌트와 관련하여 "~(하)도록 구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터로 이루어진 시스템이, 특정 동작 또는 행동을 수행하도록 구성된다는 것은, 작동 중에 해당 시스템으로 하여금 동작 또는 행동을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합이 해당 시스템에 설치되어 있다는 것을 의미한다. 하나 이상의 컴퓨터 프로그램이, 특정 동작 또는 행동을 수행하도록 구성된다는 것은, 데이터 처리 장치에 의해 실행될 때 해당 장치로 하여금 동작 또는 행동을 수행하게 하는 명령어를 해당 하나 이상의 프로그램이 포함한다는 것을 의미한다. 특수 목적 논리 회로부가, 특정 동작 또는 행동을 수행하도록 구성된다는 것은, 동작 또는 행동을 수행하는 전자 논리를 해당 회로부가 갖는다는 것을 의미한다.
본 명세서는 여러 특정 구현예 세부사항을 포함하고 있지만, 이들은, 청구범위 자체에 의해 정의되는 청구 대상의 범위에 대한 제한으로서 해석되어서는 안 되며, 오히려, 특정 구현예에 특유할 수 있는 특징의 설명으로서 해석되어야 한다. 분리된 구현예의 맥락에서 본 명세서에 설명된 특정 특징들은 단일 구현예에서 조합되어 실현될 수도 있다. 반대로, 단일 구현예의 맥락에서 설명된 다양한 특징은 다수 구현예에서 분리되어 또는 임의의 적합한 부분조합으로 실현될 수도 있다. 또한, 특징이 특정 조합으로 작동하는 것으로 전술되고 최초에 그와 같이 청구될 수도 있으나, 청구된 조합으로부터의 하나 이상의 특징은, 일부 경우, 조합으로부터 삭제될 수 있고, 해당 청구항은 부분조합 또는 부분조합의 변형예에 관한 것일 수 있다.
이와 유사하게, 동작들이 특정 순서로 도면에 묘사되어 있거나 청구범위에 언급되어 있으나, 이는 바람직한 결과를 달성하기 위하여 그러한 동작들이, 도시된 특정 순서 또는 순차적 순서로 수행될 것, 또는 예시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안 된다. 특정 상황에서, 멀티태스킹 및 병렬 처리가 이로울 수 있다. 또한, 전술한 구현예에서의 다양한 시스템 모듈 및 컴포넌트의 분리는, 모든 구현예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있는 것으로 이해되어야 한다.
지금까지 본 명세서의 주제의 특정 구현예가 설명되었다. 다른 구현예들은 다음의 청구범위 내에 있다. 예컨대, 청구항 내에 언급된 동작은 상이한 순서로 수행되면서도 여전히 바람직한 결과를 달성할 수 있다. 하나의 예를 들면, 첨부 도면 내에 도시된 프로세스는, 바람직한 결과를 달성하기 위해, 도시된 특정 순서 또는 순차적 순서를 필연적으로 요구하지는 않는다. 일부 경우, 멀티태스킹 및 병렬 처리가 이로울 수 있다.

Claims (10)

  1. 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법(computer-implemented method)에 있어서,
    상기 블록체인 네트워크 내의 블록체인 노드에 의해, 상기 블록체인의 특정 블록을 판독(read)하도록 하는 요청을 수신하는 단계 - 상기 요청은 상기 블록체인 네트워크의 경량 노드로부터 수신되고 상기 경량 노드의 신원(identity)을 포함하며, 상기 특정 블록은, 상기 특정 블록과 연관된 복수의 트랜잭션을 포함하는 원래의 머클 트리(Merkle tree)를 포함함 -;
    상기 블록체인 노드에 의해, 상기 경량 노드의 신원과 연관된 권한을 식별하는 단계;
    상기 블록체인 노드에 의해, 상기 특정 블록 내에 포함된 원래의 머클 트리에 기초하여 격리된 머클 트리를 생성하는 단계 - 상기 격리된 머클 트리는, 상기 식별된 권한에 기초하여 상기 경량 노드에 의해 액세스가능하다고 결정된 상기 원래의 머클 트리로부터의 트랜잭션만을 포함하며, 상기 격리된 머클 트리는 상기 원래의 머클 트리와 일관적(consistent)임 -; 및
    상기 블록체인 노드에 의해, 상기 격리된 머클 트리를 포함하는 응답을 상기 경량 노드에 전송하는 단계
    를 포함하는, 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법.
  2. 제1항에 있어서, 상기 특정 블록 내에 포함된 원래의 머클 트리에 기초하여 격리된 머클 트리를 생성하는 단계는,
    상기 격리된 머클 트리를 생성하기 위해 상기 원래의 머클 트리를 수정하는 단계를 포함하며, 상기 원래의 머클 트리를 수정하는 단계는,
    상기 경량 노드에 의해 액세스가능하지 않다고 결정된 모든 트랜잭션을 상기 원래의 머클 트리로부터 제거하는 단계; 및
    모든 트랜잭션이 제거된 상기 원래의 머클 트리의 브랜치를 제거하여 상기 브랜치 각각의 루트 해시만을 그대로 남기는 단계를 포함하는, 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법.
  3. 제2항에 있어서, 상기 권한이, 상기 경량 노드가 한 트랜잭션에 대한 판독 액세스를 가지지 않는다는 것을 나타낸다면, 상기 트랜잭션은 상기 경량 노드에 의해 액세스가능하지 않다고 결정되는, 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법.
  4. 제1항에 있어서, 상기 복수의 트랜잭션 각각은, 상기 트랜잭션 내의 하나 이상의 참여자와 연관된 하나 이상의 신원을 포함하는, 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법.
  5. 제4항에 있어서, 상기 신원은 신원 클래스와 연관되어 있고, 상기 권한은 상기 신원 클래스와 연관되어 있고, 상기 블록체인 노드는, 상기 신원 클래스와 연관된 권한을, 상기 신원 클래스와 연관된 신원에 대해 시행하도록 구성되는, 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법.
  6. 제5항에 있어서, 상기 신원 클래스는 조정자 클래스이며, 상기 조정자 클래스와 연관된 권한은, 상기 블록체인 네트워크 내의 모든 트랜잭션이, 상기 조정자 클래스와 연관된 신원에 의해 액세스가능하다는 것을 나타내는, 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법.
  7. 제5항에 있어서, 상기 신원 클래스는 일반 클래스이며, 상기 일반 클래스와 연관된 권한은, 상기 신원이 참여자인 상기 블록체인 네트워크 내의 트랜잭션만 상기 신원에 의해 액세스가능하다는 것을 나타내는, 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법.
  8. 제1항에 있어서, 상기 경량 노드가 상기 격리된 머클 트리에 기초하여 상기 블록의 무결성을 검증할 수 있도록 하기에 충분한 경우에만, 상기 격리된 머클 트리가 상기 원래의 머클 트리와 일관적인, 블록체인 네트워크에 의해 유지되는 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법.
  9. 하나 이상의 프로세서에 커플링되고, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금, 제1항 내지 제8항 중 어느 한 항의 방법에 따른 동작들을 수행하게 하는 명령어가 저장되어 있는, 비일시적 컴퓨터-판독가능 저장 매체.
  10. 시스템에 있어서,
    컴퓨팅 디바이스; 및
    상기 컴퓨팅 디바이스에 커플링되고, 상기 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금, 제1항 내지 제8항 중 어느 한 항의 방법에 따른 동작들을 수행하게 하는 명령어가 저장되어 있는 컴퓨터-판독가능 저장 디바이스
    를 포함하는, 시스템.
KR1020197022194A 2018-12-13 2018-12-13 블록체인 네트워크에서의 데이터 격리 KR102258440B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/120805 WO2019072293A2 (en) 2018-12-13 2018-12-13 DATA INSULATION IN A BLOCK CHAIN NETWORK

Publications (2)

Publication Number Publication Date
KR20200074909A true KR20200074909A (ko) 2020-06-25
KR102258440B1 KR102258440B1 (ko) 2021-06-02

Family

ID=66100120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197022194A KR102258440B1 (ko) 2018-12-13 2018-12-13 블록체인 네트워크에서의 데이터 격리

Country Status (15)

Country Link
US (2) US11003646B2 (ko)
EP (1) EP3560143B1 (ko)
JP (1) JP6816297B2 (ko)
KR (1) KR102258440B1 (ko)
CN (1) CN109863521A (ko)
AU (1) AU2018348333A1 (ko)
BR (1) BR112019015423A8 (ko)
CA (1) CA3051762A1 (ko)
MX (1) MX2019008898A (ko)
PH (1) PH12019501735A1 (ko)
RU (1) RU2745518C9 (ko)
SG (1) SG11201906846YA (ko)
TW (1) TWI706352B (ko)
WO (1) WO2019072293A2 (ko)
ZA (1) ZA201904928B (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829822B (zh) * 2019-01-28 2020-10-23 杭州复杂美科技有限公司 交易替换方法、交易排队方法、设备和存储介质
EP3893433B1 (en) 2019-03-21 2023-12-27 Advanced New Technologies Co., Ltd. Data isolation in blockchain networks
CN110311782B (zh) * 2019-04-29 2020-04-14 山东工商学院 个人信息的零知识证明方法、系统及存储介质
CN114710329B (zh) * 2019-04-30 2024-03-01 创新先进技术有限公司 用于管理对区块链系统中的账户的访问的方法和设备
CN110365768B (zh) * 2019-07-15 2021-07-06 腾讯科技(深圳)有限公司 分布式系统的数据同步方法、装置、介质、电子设备
US11520904B2 (en) * 2019-08-27 2022-12-06 Accenture Global Solutions Limited AI-based blockchain hybrid consensus
CN111125593B (zh) * 2019-11-14 2024-01-26 深圳源中瑞科技有限公司 基于区块链的家谱信息处理方法、设备及存储介质
EP3776250B1 (en) 2019-12-05 2022-08-24 Alipay (Hangzhou) Information Technology Co., Ltd. Performing map iterations in blockchain-based system
CA3098649A1 (en) 2019-12-05 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Performing map iterations in a blockchain-based system
CN111242617B (zh) * 2020-01-02 2022-05-10 支付宝(杭州)信息技术有限公司 用于执行交易正确性验证的方法及装置
JP7381881B2 (ja) * 2020-02-21 2023-11-16 富士通株式会社 管理プログラム、管理装置および管理方法
CN111343177B (zh) * 2020-02-25 2022-11-29 百度在线网络技术(北京)有限公司 轻量级节点的监管方法、装置、设备和介质
US10887104B1 (en) 2020-04-01 2021-01-05 Onu Technology Inc. Methods and systems for cryptographically secured decentralized testing
US11409907B2 (en) 2020-04-01 2022-08-09 Onu Technology Inc. Methods and systems for cryptographically secured decentralized testing
CN112565435B (zh) * 2020-12-10 2021-08-17 广东投盟科技有限公司 基于事务链的业务处理方法、系统及计算机可读存储介质
CN112799839B (zh) * 2021-01-28 2024-03-15 百果园技术(新加坡)有限公司 请求处理方法、装置、计算机可读存储介质及电子设备
WO2023140828A1 (en) * 2022-01-18 2023-07-27 Hewlett-Packard Development Company, L.P. Method and apparatus for controlling access to data stored on a blockchain

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899412A (zh) * 2017-03-30 2017-06-27 北京链银博科技有限责任公司 一种区块链隐私保护方法、装置及系统
US20180349621A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136728A1 (en) * 2003-08-15 2006-06-22 Gentry Craig B Method and apparatus for authentication of data streams with adaptively controlled losses
US9530010B2 (en) * 2013-11-07 2016-12-27 Fujitsu Limited Energy usage data management
CN104750784B (zh) * 2015-03-06 2018-03-02 西安交通大学 一种基于Merkle树结构的空间查询完整性验证方法
US10089489B2 (en) * 2015-06-02 2018-10-02 ALTR Solutions, Inc. Transparent client application to arbitrate data storage between mutable and immutable data repositories
US20170132621A1 (en) * 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting
EP4369273A2 (en) * 2016-02-23 2024-05-15 nChain Licensing AG A method and system for securing computer software using a distributed hash table and a blockchain
CN106559211B (zh) * 2016-11-22 2019-12-13 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
US20190238550A1 (en) * 2016-12-26 2019-08-01 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Permission control method, apparatus and system for block chain, and node device
US10715331B2 (en) * 2016-12-28 2020-07-14 MasterCard International Incorported Method and system for providing validated, auditable, and immutable inputs to a smart contract
CN111917864B (zh) * 2017-02-22 2023-08-22 创新先进技术有限公司 一种业务校验的方法及装置
CN107733855B (zh) * 2017-08-31 2019-11-05 中国科学院信息工程研究所 一种可同时支持公有链、联盟链及私有链的区块链系统及应用方法
US10783272B2 (en) * 2017-12-08 2020-09-22 Nec Corporation Method and system of preserving privacy for usage of lightweight blockchain clients
CN108664803B (zh) * 2018-04-04 2022-03-22 中国电子科技集团公司第三十研究所 一种基于密码的文档内容细粒度访问控制系统
RU181439U1 (ru) * 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети
KR20210003234A (ko) * 2018-04-27 2021-01-11 엔체인 홀딩스 리미티드 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것
CN108961052B (zh) 2018-06-25 2022-02-22 百度在线网络技术(北京)有限公司 区块链数据的验证方法、存储方法、装置、设备和介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106899412A (zh) * 2017-03-30 2017-06-27 北京链银博科技有限责任公司 一种区块链隐私保护方法、装置及系统
US20180349621A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Merkle Tree, WIKIPEIDA, https://en.wikipedia.org/w/index.php?title=Merkle_tree&oldid=873243067(2018.12.12.) 1부.* *

Also Published As

Publication number Publication date
JP6816297B2 (ja) 2021-01-20
EP3560143A4 (en) 2020-03-11
CA3051762A1 (en) 2019-04-18
MX2019008898A (es) 2019-09-10
ZA201904928B (en) 2021-06-30
JP2020516103A (ja) 2020-05-28
AU2018348333A1 (en) 2020-07-02
WO2019072293A3 (en) 2019-10-10
US20190278758A1 (en) 2019-09-12
TW202022744A (zh) 2020-06-16
BR112019015423A8 (pt) 2023-03-28
RU2019123413A (ru) 2021-01-26
EP3560143A2 (en) 2019-10-30
EP3560143B1 (en) 2021-09-15
US11003646B2 (en) 2021-05-11
KR102258440B1 (ko) 2021-06-02
WO2019072293A2 (en) 2019-04-18
RU2745518C2 (ru) 2021-03-25
CN109863521A (zh) 2019-06-07
SG11201906846YA (en) 2019-08-27
US20210232558A1 (en) 2021-07-29
BR112019015423A2 (pt) 2020-03-31
TWI706352B (zh) 2020-10-01
RU2019123413A3 (ko) 2021-01-26
PH12019501735A1 (en) 2020-03-09
RU2745518C9 (ru) 2021-05-26

Similar Documents

Publication Publication Date Title
KR102258440B1 (ko) 블록체인 네트워크에서의 데이터 격리
TWI705689B (zh) 區塊鏈網路中的資料隔離
KR102227685B1 (ko) 블록 체인 네트워크에서 민감 데이터 요소를 관리하는 방법
EP3893433B1 (en) Data isolation in blockchain networks
CN110520882B (zh) 在区块链网络中并行执行交易
JP7012730B2 (ja) スマートコントラクトホワイトリストに基づくブロックチェーンネットワークにおけるトランザクションの並列実行
WO2019120328A2 (en) Processing and storing blockchain data under a trusted execution environment
JP6858264B2 (ja) スマートコントラクトのホワイトリスト
TW202023224A (zh) 事件驅動的區塊鏈工作流程處理
CN110959282B (zh) 用于智能合约的软件接口

Legal Events

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