KR20200032086A - 안전한 액세스 제한 관리를 통해 분산된 블록 체인 데이터 구조 배포 - Google Patents

안전한 액세스 제한 관리를 통해 분산된 블록 체인 데이터 구조 배포 Download PDF

Info

Publication number
KR20200032086A
KR20200032086A KR1020207000108A KR20207000108A KR20200032086A KR 20200032086 A KR20200032086 A KR 20200032086A KR 1020207000108 A KR1020207000108 A KR 1020207000108A KR 20207000108 A KR20207000108 A KR 20207000108A KR 20200032086 A KR20200032086 A KR 20200032086A
Authority
KR
South Korea
Prior art keywords
node
subspace
nodes
data
private
Prior art date
Application number
KR1020207000108A
Other languages
English (en)
Inventor
제프리 쉬비
나디 사르
Original Assignee
쉬비, 인크. 디/비/에이 액소니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쉬비, 인크. 디/비/에이 액소니 filed Critical 쉬비, 인크. 디/비/에이 액소니
Publication of KR20200032086A publication Critical patent/KR20200032086A/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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/40User authentication by quorum, i.e. whereby two or more security principals are required
    • 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
    • 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
    • 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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • 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/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • 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
    • 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
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • 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
    • 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/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

암호화된 메시지를 노드들 간에 교환하도록 피어-투-피어 네트워크 내에서 데이터 구조를 분배하기 위한 암호화 플랫폼을 제공하기 위한 시스템이 여기에 개시된다. 이 시스템은 사적이지만 전역 상태 루트를 사용하여 확인할 수 있는 서브스페이스를 포함하는 사적 서브스페이스 블록 체인의 생성 및 관리를 제공한다. 전역 상태 루트는 해당 서브스페이스 내 데이터를 기반으로 역시 생성된 서브스페이스 루트를 기반으로 업데이트된다.

Description

안전한 액세스 제한 관리를 통해 분산된 블록 체인 데이터 구조 배포
관련 출원
본 출원은 2017년 6월 1일에 출원된 미국특허가출원 제62/513,773호에 관한 우선권을 주장하며, 이는 법이 허용하는 한도 내에서 본 명세서에 포함된다.
발명의 분야
본 발명은 일반적으로 사적 서브스페이스 블록 체인 분산 데이터 구조, 및 이를 관리하기 위한 시스템 및 방법에 관한 것이다. 보다 구체적으로, 본 발명은 다수의 서브스페이스를 갖는 신규한 허가 체인 데이터 구조와, 이러한 체인 데이터 구조 내의 서브스페이스에 대한 허가 및 보안 액세스를 또한 제공하는 통합 검증 메커니즘, 및 그러한 허가 체인 데이터 구조를 관리하기 위한 시스템 및 방법에 관한 것이다.
분산 데이터베이스는 다수의 상이한 사용자들에 걸쳐 공유 데이터를 분배하기 위한 분산적 수단(decentralized means)을 제공할 수 있으며, 이들 사용자 각각은 서로 원격으로 위치된 상태에서 공유 데이터에 액세스할 필요가 있을 수 있다. 이러한 공유 데이터를 신뢰할 수 있으려면, 분산 데이터베이스에서 데이터의 무결성을 확인하는 방법이 있어야 한다. 분산 데이터베이스의 한 형태는 "블록체인"(또는 "블록 체인")이며, 이는 "블록"이라고 불리는, 시간 순서대로 연결된 일련의 보다 작은 데이터 구조 또는 레코드로 구성되는 일 유형의 데이터 구조이고, 각각의 블록은 체인 내 이전 블록에 대한 링크를 지닌다. 각 블록은 블록 체인에서 이전 블록의 해시 값을 포함하며, 이는 두 블록을 연결하는 수단으로 기능한다. 해시 값을 사용하면 데이터의 검증 가능성을 보장하고 블록 체인 내의 데이터 수정을 방지할 수 있다. 블록 체인의 무결성은, 블록 체인의 중앙에 위치한 "공식" 복사본이 필요하지 않다는 점에서, 그 분산적 특성을 통해 증가한다. 대신에, 블록 체인의 검증가능한 다수의 사본이 상이한 사용자와 함께 저장될 수 있으며, 이에 의해 블록 체인의 무단 수정을 방지할 수 있다.
전통적인 블록 체인과 마찬가지로 이와 같이 분산된 탈중앙적 데이터 구조의 한가지 단점은 이러한 데이터 구조 내에 저장된 데이터가 데이터 구조의 사본의 각 보유자에게 반드시 액세스 가능해야 한다는 점이다. 분산 데이터 구조의 사본의 각 보유자에 대한 데이터의 접근성은 사용자가 저장된 데이터의 무결성을 검증할 수 있도록 하기 위해, 그리고 분산 데이터 구조의 특정 사본 내에 저장된 데이터가 허가없이 변조 및 수정되지 않았음을 보장하기 위해, 필요하다. 결과적으로, 전통적인 블록 체인과 마찬가지로, 이러한 분산 데이터 구조는 사용자가 블록 체인 내에 데이터를 사적으로 저장할 수 없도록 한다. 이러한 분산 데이터 구조를 공유하고 사용하는 기존 시스템은 승인 또는 허가된 액세스가 필요하지 않으며 대신에, 액세스 제어가 없는 이점이 있다. 왜냐하면, 추가 사용자가 있을 경우 분산 데이터 구조의 사본의 수가 통상적으로 증가하고, 따라서, 레코드의 변조 가능성이 감소하기 때문이다. 이러한 측면에서, 이러한 전통적인 시스템은 일반적으로 시스템에서 노드의 신원 및 관련 권한을 검증하는 수단을 갖지 않는다.
보안 액세스 제한을 허용할 수 있는 신규 데이터 구조의 생성 및 분산 관리를 위한 시스템 및 방법이 여기에 개시된다. 신규한 데이터 구조 및 관련 기능은, 체인을 함께 형성하는 링크된 블록을 포함하는 분산 데이터베이스라는 점에서, 그리고, 각 블록은 2개의 블록을 함께 링크하는 체인 내 과거 블록의 해시를 포함한다는 점에서, 블록 체인 원리를 기반으로 한다. 그러나 이러한 새로운 데이터 구조는 각 블록의 데이터 세트 내에 사적 데이터 서브스페이스를 허용하는 중요하고 새로운 특징 및 기능을 포함한다는 점에서, 그리고, 이러한 서브스페이스는 이러한 서브스페이스에 액세스할 수 있는 권한이 있는 노드만 액세스할 수 있고, 블록의 사본은 일반적으로 권한 부여된 노드의 서브스페이스들만을 노드가 수용하도록 하는 방식으로 전파된다는 점에서, 종래의 블록체인 구조와 다르다. 용이한 참조를 위해, 본 명세서에 개시된 신규한 데이터 구조는 "사적 서브스페이스 블록 체인"(privately subspaced blockchains)으로 지칭되며, 이들 데이터 구조는 하기에 상세히 기술되는 바와 같이 전통적인 블록 체인과 상당히 다르다는 것을 인식하여야 한다.
본 명세서에 개시된 바와 같이, 신규한 데이터 구조 및 그 관리는 다수의 상이한 노드가 데이터 구조의 일부의 사본을 유지하면서 동시에 데이터 분리를 이용한 데이터 공유를 제공하도록, 데이터 페이로드(서브스페이스) 무결성의 분산된 합의 기반 검증의 이점을 제공한다. 특히, 데이터 구조에서의 공통의 기준 데이터는 모든 허가된 노드에 이용 가능하지만, (본 명세서에서 데이터 구조 내의 "사적 서브스페이스"로 지칭되는) 데이터 페이로드의 일부는 충분한 액세스 자격 증명을 갖는 노드에만 이용 가능하다. 본 시스템 및 방법은 또한 충분한 권한을 갖는 노드에 의해 필요에 따라 읽기/쓰기 액세스를 허용하는 데이터가 허가되도록 제공한다. 본 발명의 시스템 및 방법은 노드들 사이에서 이들 데이터 구조의 안전하고 승인된 전송을 위한, 그리고, 이러한 전송을 용이하게 하도록 노드들 간의 상호연결을 프로비저닝하기 위한 신규한 수단을 제공하여, 특정 데이터 구조에 관한 노드들 사이의 통신이 데이터 구조의 다른 사본을 수반하는 다른 노드들 사이의 통신 처리를 위한 시스템 기능 또는 능력에 영향을 미치지 않게 한다. 본 발명의 시스템 및 방법은 격리를 보장하는 데이터 구조에 대한 개선된 합의 메커니즘을 추가로 제공하는데, 이는 한 쌍의 노드 사이의 합의 실패가 다른 쌍의 노드 사이의 연동형 실패로 이어지지 않음을 의미한다. 본 발명의 시스템 및 방법은 연속성을 보장하는 데이터 구조에 대한 개선된 합의 메커니즘을 추가로 제공하는데, 이는 시스템이 계속 적절하게 처리하고 도달할 수 없는 처리 노드의 경우에도 데이터 구조 무결성이 유지됨을 의미한다. 본 발명의 시스템 및 방법은 추가 노드의 배치가 기존 노드에 대한 상당한 업데이트를 요구하지 않도록 노드들 간의 충돌 관리 개선과 확장성 개선을 추가로 제공한다. 또한, 본 발명의 시스템 및 방법은 데이터를 확인할 수 있는 방식으로 외부 데이터베이스와의 개선된 동기화를 추가로 제공한다.
본 명세서에서 신규한 사적 서브스페이스 블록 체인 데이터 구조, 및 관련 시스템 및 방법은 상기 특징 및 개선이 유리한 다양한 상황에서 사용될 수 있다. 예를 들어, 새로운 데이터 구조 및 관련 시스템 및 방법은 재고 관리, 부품 추적(예를 들어, 항공기 부품 유지 보수 사이클 추적), 고 가치 상품(예: 다이아몬드)에 대한 출처 검증, 의료 기록, 부동산 및 디지털 자산과 관련된 소유권 이전, 안전한 문서 처리, 및 분산 검증 및 허가된 데이터 저장 및 액세스 기능을 모두 제공하는 데이터 구조의 혜택을 받는 기타 영역 및 응용예에 관한 데이터의 안전한 교환을 구현하는데 사용될 수 있다. 또한, 신규 데이터 구조 및 관련 시스템 및 방법은 신용 디폴트 스왑(CDS), 에쿼티 스왑(equity swap), 및 외환(FX) 거래와 관련된 것을 포함한, 스마트 계약 응용예를 위한 보안 시스템을 구현하는 데 사용될 수 있다.
본 발명의 일 실시예에 따르면, 피어-투-피어 네트워크 내에 데이터 구조를 분배하기 위한 암호화 플랫폼을 위한 시스템이 제공되며, 상기 시스템은 비 일시적 컴퓨터 판독 가능 저장 매체; 상기 저장 매체에 저장된 코드 형태의 명령어를 포함하는 하나 이상의 소프트웨어 모듈을 실행함으로써 구성된 프로세서를 포함하며, 상기 모듈은, 제 1 피어 노드와 제 2 피어 노드 사이에서 암호화된 데이터를 원격 장치로부터 네트워크를 통해 송신 및 수신하도록 프로세서를 구성하는 통신 모듈과, 상기 제 1 피어 노드와 제 2 피어 노드 사이에서 교환되는 암호화 데이터를 나타내는 상태 루트를 생성하도록 프로세서를 구성하는 코어 모듈 - 상기 코어 모듈은 네트워크 내의 복수의 피어 노드들 사이에서 교환되는 암호화 데이터를 나타내는 전역 상태 루트를 생성하도록 프로세서를 더 구성하고, 상기 코어 모듈은 네트워크와 피어 노드들 간에 교환되는 데이터의 확인가능한 레코드를 제공하는 사적 서브스페이스 블록체인 내에서 권한 부여된 블록을 생성하도록 프로세서를 또한 구성함 - 과, 상기 제 1 피어 노드 및 제 2 피어 노드 사이에서 전파되는 데이터를 저장 매체에 저장하도록 프로세서를 구성하는 데이터베이스 모듈을 포함하며, 상기 데이터베이스 모듈은 상태 루트, 전역 상태 루트, 및 블록을 저장 매체에 저장하도록 프로세서를 더 구성한다.
다른 실시예에서, 데이터 구조의 분배를 처리하기 위한 컴퓨터 판독 가능 매체 상에 구현되는 컴퓨터 프로그램 제품이 제공되며, 복수의 피어 노드 사이에서 복수의 암호화된 메시지를 송/수신하기 위한 컴퓨터 코드; 및 상기 피어 노드들간에 교환된 상기 암호화된 메시지들에 대한 복수의 상태 루트를 생성하기 위한 컴퓨터 코드; 및 전역 상태 루트 내에 복수의 상태 루트를 저장하기 위한 컴퓨터 코드 - 여기서 각 상태 루트는 데이터의 서브스페이스를 규정함 - 및 복수의 서브스페이스를 포함하는 복수의 전역 상태 루트를 포함하는 사적 서브스페이스 블록 체인을 생성하기 위한 컴퓨터 코드를 포함한다.
본 발명의 또 다른 실시예에서, 기초 네트워크 위에 구축된 하나 이상의 네트워크 내의 피어 노드들 사이에 데이터 구조를 분배하기 위한 암호화 시스템이 제공되며, 여기서 데이터 구조는 복수의 전역 상태 루트를 포함하고, 상기 복수의 전역 상태 루트는 복수의 상태 루트를 포함하며, 상기 암호화 시스템은, 사적 서브스페이스 블록 체인 내에 복수의 허가된 블록을 저장하는 메모리; 서브스페이스 내의 복수의 피어 노드들간에 교환된 암호화된 메시지에 기초하여 상태 루트를 생성하는 상태 루트 생성기; 하나 이상의 상태 루트에 기초하여 전역 상태 루트를 생성하는 전역 상태 루트 생성기; 상기 전역 상태 루트 및 상태 루트를 컴파일하는 블록 컴파일러; 및 허가된 블록이 상기 전역 상태 루트 및 하나 이상의 상태 루트를 포함하도록 상기 허가된 블록을 생성하는 허가된 블록 생성기를 포함한다.
다른 실시예에서, 피어-투-피어 네트워크 내에 데이터 구조를 분배하기 위한 암호화 플랫폼을 제공하기 위한 시스템이 제공되며, 상기 시스템은 복수의 블록 각각에 대해 복수의 전역 상태 루트를 규정하는 데이터를 포함하는 클라우드 기반 데이터베이스 - 각각의 전역 상태 루트는 복수의 상태 루트를 포함 함 - 와, 복수의 피어 노드에 대해 암호화된 데이터를 송/수신하기 위한 네트워크 가능 장치; 네트워크 가능 디바이스 및 클라우드 기반 데이터베이스에 연결되는 컴퓨터 서버를 포함하며, 상기 컴퓨터 서버는, 제 1 피어 노드와 제 2 피어 노드 사이에서 전송되는 데이터를 암호화하도록 프로그래밍되고, 정보의 서브스페이스를 생성하는 상기 제 1 피어 노드와 제 2 피어 노드 사이에서 전송된 데이터에 대한 상태 루트를 자동으로 생성하도록 프로그래밍되며, 상태 루트의 생성에 응답하여 전역 상태 루트를 자동으로 업데이트하도록 프로그래밍되고, 정보의 서브스페이스와 함께 상기 상태 루트를 포함하는 복수의 상태 루트를 포함하는 업데이트된 전역 상태 루트를 포함하는 블록을 생성하도록 프로그래밍되며, 상기 클라우드 기반 데이터베이스의 사적 서브스페이스 블록 체인 내에 상기 블록을 저장하도록 프로그래밍된다.
또 다른 실시예에서, 사적 스마트 계약에 대응하는 명령어를 저장하고, 사적 서브스페이스 블록 체인 데이터 구조를 사용하여 가상 머신에서 이러한 명령어를 실행하기 위한 시스템 및 방법이 제공된다.
이들 및 다른 측면 및 장점은 첨부 도면에 적절한 경우에 다음의 상세한 설명을 읽음으로써 당업자에게 명백해질 것이다. 또한, 상기 요약은 단지 예시적인 것이며 첨부된 청구 범위가 합법적으로 부여되는 등가물의 범위 또는 범위를 어떠한 방식으로도 제한하려는 것이 아님을 이해해야 한다.
특허 또는 출원 파일은 컬러로 실행된 적어도 하나의 도면을 포함한다. 이 칼라 도면을 가진 본 특허 또는 특허 출원 공보의 사본은 요청시 그리고 해당 요금의 납부시 특허청에 의해 제공될 것이다. 본 발명은 다음의 예시적인 도면과 관련하여 아래에 설명된다.
도 1은 본 발명의 일 실시예에 따른 보안 액세스 제한을 갖는 데이터 구조의 생성 및 분산 관리를 위한 시스템의 구성요소를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른, 상기 시스템의 코어 모듈 및 데이터베이스 모듈의 구성요소를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 피어(peer) 또는 검증 노드의 구성요소를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 블록의 내용을 도시한 도면.
도 5는 본 발명의 일 실시예에 따른, 암호화된 데이터를 교환하는 2 개의 노드를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따라, 데이터를 요청하고, 권한을 확인하고, 데이터를 검증하는 서비스 노드를 도시한 도면이다.
도 7a 및 7b는 본 발명의 일 실시예에 따라 다른 허가된 노드에 액세스 가능한 서브스페이스 내에서 정보를 전송하는 노드를 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른, 3 개의 상이한 노드에 대한 데이터의 액세스 가능한 서브스페이스를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따라, 서브스페이스에서 교환된 메시지가 사적 서브스페이스 블록 체인에 추가되는 것을 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른, 블록 헤더에 포함될 상태 루트 및 전역 상태 루트의 생성을 도시한 도면이다.
도 11a 내지 도 11d는 본 발명의 일 실시예에 따른, 모든 서브스페이스로부터의 상태 루트를 포함하는 데이터의 교환, 데이터의 검증 및 블록의 생성을 나타내는 도면이다.
도 12A-G는 본 발명의 일 실시예에 따른 노드들 사이의 합의 프로세스를 도시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 허가된 네트워크 내의 노드의 검증을 도시한 도면이다.
도 14는 본 발명의 일 실시예에 따른 서브스페이스 검증 매핑의 예시이다.
도 15는 본 발명의 일 실시예에 따른, 구성요소들에 스마트 계약의 구성요소 및 서브스페이스의 대응하는 상호 작용을 도시한 도면이다.
도 16a 내지 도 16e는 본 발명의 일 실시예에 따른 코어 모듈의 응용을 도시한 도면이다.
도 17a 내지 도 17c는 본 발명의 일 실시예에 따른 코어 모듈의 다른 응용을 도시한 도면이다.
도 18은 본 발명의 일 실시예에 따른, 자동화된 물리적 연결 및 계약 권한을 갖는 진행중인 권리 관리를 사용하는 시스템의 응용을 도시한 도면이다.
도 19는 본 발명의 일 실시예에 따른 사적 서브스페이스 블록 체인에 대한 도메인과 서브스페이스 간의 관계를 나타내는 도면이다.
도 20a 및 도 20b는 MBS(mortgage backed security) 풀을 구현하는 데 있어서 사적 서브스페이스 블록 체인 및 관련 시스템의 사용을 나타내는 도면이다.
본 발명은 다양한 형태로 구현될 수 있지만, 간략하고 예시적인 목적으로 본 발명의 원리는 그 일부 실시예를 참조하여 부분적으로 설명된다. 그러나, 본 개시는 청구된 주제의 예시로서 간주되어야 하며, 첨부된 청구 범위를 도시된 특정 실시예로 제한하려는 것이 아님을 이해해야 한다. 본 발명이 이들 특정 세부 사항에 제한되지 않고 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우에, 공지된 방법 및 구조는 본 발명을 불필요하게 모호하게 하지 않기 위해 상세히 설명되지 않았다.
도 1은 본 발명의 일 실시예에 따라, 사적 서브스페이스 블록체인의 생성 및 분산 관리 및 안전한 액세스 제한을 갖는 다른 분산 데이터 구조를 생성하기 위한 시스템(100)을 도시한다. 시스템(100)은 근거리 통신망(LAN) 또는 광역 통신망(WAN), 가령, 인터넷, 또는, 이들의 조합을 통해 서로 통신 가능하게 연결된 노드(112)들의 분산 네트워크 주위에 구축된다. 각각의 노드는 본 명세서에 기술된 기능을 수행하기 위한 로직을 갖는 하나 이상의 서버 상에서 구현될 수 있다. 시스템(100)의 구성요소들(예컨대, 코어 모듈(104) 및 데이터베이스(106))은 개별 서버에 상주하거나 하나 이상의 서버에 상주할 수 있다. 코어 모듈(104)은 시스템에서 각 노드의 핵심 기능을 제공한다. 코어 모듈(104)을 갖는 각각의 노드는 별도의 서버 상에 위치될 수 있는 데이터베이스 모듈(106)과 상호 작용할 수 있다. 코어 모듈(104)과 관련된 기능에 더하여, 각각의 노드는 (아래에 더 설명되는 바와 같이) API(102)와 관련된 기능, 및 보안 보강을 위한 하드웨어 키 관리(108)를 포함할 수 있다. 코어 모듈(104)은 노드의 생성, 구성 및 등록을 제공하는 기능을 포함한다. 노드가 생성된 후, 코어 모듈(104)은 노드를 초기화하고, 노드를 통합 툴(API)(102)에 연결하며, 피어-투-피어 네트워크를 통해 노드를 하나 이상의 합의 노드에 연결한다. 코어 모듈(104)은 후술하는 바와 같이 시스템(100)에서 노드의 역할을 결정하는 노드의 유형(검증, 피어, 서비스)에 기초하여 노드를 구성한다. 코어 모듈(104)은 또한 노드를 생성하는 당사자 또는 사용자를 식별하는 식별자에 기초하여 노드가 어느 서브스페이스에 액세스할 수 있는지를 나타내는 정보를 노드에 제공함으로써 노드를 구성한다. 특정 실시예에서, 당사자 또는 사용자의 식별자는 노드 유형과 연관될 수 있고 노드 유형을 식별하는데 사용될 수 있다. 예를 들어, 등록 프로세스의 일부로서, 시스템은 각 당사자/사용자의 식별자를 특정 노드 유형(검증, 피어, 서비스)과 연관시키는 테이블을 각 노드에 유지 및 분배한다. 추가적으로 또는 대안으로서, 시스템은 노드의 고유 노드 식별자를 노드 유형(유효성, 피어, 서비스)과 연관시키는 테이블을 각 노드에 분배한다. 추가적으로 또는 대안으로서, 노드 등록은 시스템의 모든 노드가 액세스할 수 있는 공통 서브스페이스에 유지되는 정보를 사용하여 유지되므로, 등록 데이터가 모든 노드에 일관성 있고 이용 가능함을 보장할 수 있다. 노드 등록 정보에는 노드에 권한이 부여된 서브스페이스 리스트와, 각각의 서브스페이스에 대하여, 액세스 권한 수준(예: 피어가 유효성 검증기, 피어, 또는 서비스 노드 액세스 권한이 있는지 여부)이 포함된다. 이러한 방식으로, 노드는 상이한 서브스페이스에 대해 상이한 레벨의 액세스 권한을 가질 수 있다. 예를 들어, 동시에 일 노드가 일 서브스페이스의 "유효성 검증기"(validator)이고 다른 서브스페이스의 "피어"(peer)일 수 있다. 노드 등록은 공통 서브스페이스에서 실행되는 특정 스크립트(예: 스마트 계약)에서 관리될 수 있다. 등록 데이터 세트에 대한 변경은 공통 서브스페이스의 스크립트로 메시지를 전송함으로써 구현되며, 변경을 요청하는 메시지가 사적 서브스페이스 블록 체인의 블록에서 확인되면 해당 변경이 적용된다.
각 노드는 노드의 유형(검증 유효성, 피어 또는 서비스)를 나타내는 유형 정보를 저장하며, 이는 시스템(100)과 관련한 노드의 역할 및 그 거동과, 네트워크 상의 다른 노드, 가령, 노드의 데이터 액세스 레벨 및 그 주요 기능을 결정하며, 이는 도 2에 도시된 바와 같다. 검증 노드(202)는 노드가 허가된 모든 서브스페이스에 액세스할 수 있다. 검증 노드는 아래에서 더 논의되는 바와 같이 사적 서브스페이스 블록 체인에서 블록을 검증하기 위한 합의 프로세스에 포함된다. 특히, 검증 노드는 유효한 메시지 및 블록과 관련하여 특정 서브스페이스의 다른 노드와 일치한다. 검증 노드(202)는 또한 수신한 모든 메시지를 그러한 메시지를 수신하도록 허가된 노드로 중계하고, 사적 서브스페이스 블록 체인상의 블록에 메시지를 커밋(commit)한다. 검증 노드(202)와 같이, 피어 노드(204)는 노드가 허가된 모든 서브스페이스에 액세스할 수 있다. 그러나 검증 노드와 달리 피어 노드는 합의 프로세스에 참여하지 않는 관찰자이다. 이러한 이유로, 피어 노드는 관찰자 노드로 지칭될 수 있다. 기능과 관련하여, 피어 노드(204)는 또한 수신된 모든 메시지를 그러한 메시지를 수신하도록 허가된 노드로 중계하지만, 메시지 및 블록을 사적 서브스페이스 블록 체인에 커밋하지는 않는다. 또한, 피어 노드(204) 및 검증기 노드는 각각 외부 시스템에 대한 액세스를 제공하고 이러한 외부 시스템과 상호 작용한다. 피어 노드(다른 노드와 마찬가지로)는 후술하는 바와 같이 엔터프라이즈 데이터베이스(208)를 유지하도록 구성된다. 이와 관련하여, 엔터프라이즈 데이터베이스는 확장된 데이터 세트를 포함하고, 각 노드는 데이터베이스(208)에 데이터를 저장 및 집계하고 노드 유형에 따라 데이터베이스(208)에 효율적으로 질의하는 능력과 같은, 데이터베이스(208)와의 상호 작용을 가능하게 하는 로직 및 프로그래밍을 포함한다. 특히, 피어 노드는 노드가 데이터베이스(208)에 질의할 수 있게 하는 로직 및 프로그래밍을 갖는다. 검증기 노드는 노드가 데이터베이스(208)에 질의하고 스마트 계약에 연결된 이벤트를 통해 데이터베이스(208)에 데이터를 저장 및 집계할 수 있게 하는 로직 및 프로그래밍을 갖는다. 데이터베이스(208)에 의해 제공되는 데이터베이스 기능과 함께, API(102)는 시스템(100)이 다른 데이터 포맷을 갖는 외부 레거시 시스템과 통합될 수 있게 하는 확장 기능을 제공한다. 예를 들어, API(102)는 본 명세서에 기술된 블록 체인 구조와 다른 데이터 포맷으로 외부 레거시 시스템에 저장된 데이터에 액세스하기 위한, 엔터프라이즈 데이터베이스(208)로 데이터를 가져오기 위한, 그러한 데이터에 질의하기 위한, 그러한 데이터를 시스템(100)에 통합하기 위한, 데이터 세트를 본 명세서에서 설명된 블록 체인 구조와 함께 사용하기에 적합한 포맷으로 변환하기 위한, 그리고, 본 명세서에 설명된 블록 체인 구조로부터 데이터를 외부 시스템에 의해 사용하기에 적합한 포맷으로 내보내기 위한, 기능 및 절차를 포함할 수 있다. 다른 실시예들에서, 검증 노드는 또한 외부 시스템과 상호 작용할 수 있다. 서비스 노드(206)는 특정 서브스페이스 내의 제한된 스마트 계약 세트에 액세스할 수 있다. 서비스 노드(206)는 또한 제한된 수의 메시지를 수신하고 중계하지만, 공통 서브스페이스에서 모든 메시지를 수신한다.
도 3은 본 시스템의 일 실시예에 따른 피어 노드 또는 검증 노드(300)의 표현을 제공하며, 이는 각 노드와 관련된 특징 및 논리를 도시한다. 각각의 노드는 LAN 또는 WAN을 통해 시스템(100)의 다른 네트워크 노드 및 구성요소와 통신하기 위한 인터페이스와, 여기에 열거된 기능을 수행하기 위한 내부 로직과, 변수 및 데이터를 저장하기 위한 내부 스토리지를 구비하면서, 하나 이상의 서버에서 구현될 수 있다. 각각의 피어 노드 또는 검증 노드는 본 명세서에서 더 설명되는 바와 같이 피어-투-피어(p2p) 프로토콜을 통해 다른 노드와 통신하기 위한 통신 로직(302)을 포함한다. 바람직한 실시예에서, 시스템(100)의 노드는 통신을 위해 메시지를 포맷하기 위해 재귀 길이 프리픽스(RLP)와 같은 확장 가능한 버전화된 이진 인코딩 방식을 사용한다. 노드가 보낸 메시지는 개인 키로 서명되어 보내는 노드의 신원을 확인하고 스푸핑을 방지한다. 각각의 피어 노드 또는 검증 노드는 노드가 다른 노드 및 시스템 구성요소에 통지를 전송하는 데, 그리고, 다른 시스템 구성요소에서 절차 및 서브루틴의 실행을 호출하는데, 사용될 수 있는 원격 절차 호출(RPC) 프로토콜을 구현하기 위한 API 로직(304)을 더 포함한다. 바람직한 실시예에서, 노드는 JSON-RPC 프로토콜을 사용한다. 각각의 피어 노드 또는 검증 노드는 본 명세서에서 더 논의되는 바와 같이, 메시지 및 블록을 검증하기 위해 시스템에 의해 사용되는 합의 알고리즘을 구현하는 데 사용되는 합의 로직(306)을 더 포함한다. 일 실시예에 따르면, 시스템은 래프트 합의 알고리즘(Raft consensus algorithm)을 사용하지만, 다른 합의 알고리즘이 로직(306)에 의해 구현될 수 있다. 다른 실시예에서, 비잔틴 결함 허용(BFT: byzantine fault tolerant) 합의 메커니즘이 사용된다. 다른 실시예에서, 시스템은 회전 합의 메커니즘 또는 연합 서명을 사용하여 메시지 및 블록을 검증한다. 합의 로직(306)은 또한 메시지를 처리하고 검증된 메시지를 블록에 추가하는 역할을 한다. 각각의 피어 노드 또는 검증 노드는, 예를 들어 스마트 계약과 관련된 코드를 실행하는 것을 포함하여, 스크립트를 실행하기 위한 런타임 환경으로서 기능할 수 있는 스크립트 실행을 위한 로직(308)을 더 포함한다. 스크립트 실행을 위한 로직(308)은 이더리움 가상 머신(EVM: Ethereum Virtual Machine) 구현과 호환될 수 있다. 각각의 피어 노드 또는 검증 노드는 데이터 저장소(310)를, 데이터 저장소를 저장, 검색 및 질의하기 위한 관련 로직과 함께 더 포함한다. 데이터 저장소(310)는 메시지, 블록 및 관련 메타 데이터의 데이터베이스 보관소로서 기능한다. 특히, 데이터 저장소(310)는 사적 서브스페이스 블록 체인 데이터와 같은 시스템 변수의 장기 저장을 위한 하나 이상의 데이터베이스를 포함한다. 데이터 저장소(310)는 해당 노드가 허가된 모든 서브스페이스에 대한 데이터에 대한 액세스를 각 노드에 제공한다. 사적 서브스페이스 블록 체인이 스마트 계약과 관련되는 경우, 데이터 저장소(310)는 스마트 계약 정보를 저장하고, 노드에 대한 그러한 정보의 빠른 불러오기를 제공한다.
서비스 노드(206)는 모든 메시지를 처리하지 않고(예를 들어, 가상 머신에서 모든 메시지를 실행하지 않음) 각각의 서브스페이스에 대한 완전한 상태 트리를 유지하지 않는다는 점에서 피어 및 검증 노드와 다르다. 서비스 노드는 서브스페이스에서 데이터의 서브세트를 수신하거나, 가상 머신에서 메시지를 처리하거나, 스크립트(예: 계약 데이터) 실행 결과로 생성된 데이터를 단순히 수신할 수 있다. 예를 들어, 서비스 노드는 특정 트랜잭션(예: 특정 계약)에 대한 모든 메시지를 받거나 해당 트랜잭션 데이터의 최신 상태를 단지 수신할 뿐, 메시지를 처리할 수 없다. 서비스 노드(206)는 서비스 노드가 허가된 검증기 또는 피어 노드로부터 상태 트리의 임의의 부분을 요청한다. 서비스 노드는 서브스페이스의 모든 메시지 또는 메시지의 서브세트를 수신하도록 권한을 부여받을 수 있다. 서브세트가 유연한 필터링 규칙(예: 계정 전송)으로 정의되므로 이러한 세분화된 액세스 수준이 가능하다.
도 1과 관련하여, 클라이언트 단말기(114)는 일련의 애플리케이션 프로그래밍 인터페이스(API)인 시스템 통합 툴(102)의 사용을 통해 시스템(100) 및 코어 모듈(104)의 기능에 액세스할 수 있다. 이들 API(102)는 클라이언트 단말(114)이 클라이언트 노드의 허가를 관리하고, 원격 절차 호출(RPC)을 수행하고, 시스템 네트워크에서 노드와의 연결을 구축하고, 시스템과의 클라이언트 계정을 관리하며, 본 명세서에 개시된 사적 서브스페이스 블록 체인에서의 데이터 레코드(예를 들어, 스마트 계약)의 콘텐츠를 관리하는 기능 호출들을 포함한다. 특히, 이들 API(102)는 노드를 생성, 구성 및 등록하기 위해 코어 모듈(104)의 기능에 액세스하고; 본원에 개시된 신규한 분산 데이터 구조와 상호 작용하며; 시스템 네트워크에 대한 권한 및 액세스를 구성하는, 클라이언트 단말기(114)에 의해 호출될 수 있는 기능을 포함한다. 이들 API(102)는 데이터베이스 모듈(106)에 저장된 데이터에 액세스하고, 그러한 데이터를 관리하고, 이러한 데이터에 대한 질의를 수행하기 위해 데이터베이스 모듈(106)의 기능에 액세스하는 클라이언트 단말기(114)에 의해 호출될 수 있는 기능을 더 포함한다. 하드웨어 키 관리가 사용되는 실시예에서, 이들 API는 개인 키를 저장 및 검색하고 거래에 서명하기 위해 하드웨어 키 관리 모듈(108)의 기능에 액세스하는 클라이언트 단말기(114)에 의해 호출될 수 있는 기능을 더 포함한다. 통합 툴(102)의 API는 사적 서브스페이스 블록 체인과 직접 상호 작용한다. 사적 서브스페이스 블록 체인에서 데이터 레코드를 생성하거나 상호 작용하는 API 명령은 블록체인 메시지를 생성하고, 메시지를 식별하는 데 사용할 수 있는 메시지 해시 값을 반환하여, 나중에 시스템(100) 사용자가 검색하고 볼 수 있도록 한다. 클라이언트 단말기(114)는 다양한 형태를 취할 수 있다. 예를 들어, 클라이언트 단말기(114)는 API에 데이터를 제공하고, API(102)에 의해 제공된 기능을 호출하며, API(102)로부터 프롬프트 및 데이터를 디스플레이함으로써 API(102)와 인터페이스하기 위한 수단을 제공하는 그래픽 사용자 인터페이스(최종 사용자에 의해 사용됨) 일 수 있다. 클라이언트 단말기(114)는 외부 이벤트가 발생할 때 API(102)를 통해 기능을 호출하는 외부 이벤트를 모니터링하는 완전 자동화된 소프트웨어 일 수도 있다. 예를 들어, 클라이언트 단말기(114)는 트레이드에서 상대방을 매칭시키기 위해 API(102)를 통해 원장(ledger: '레저'라고도 함) 기능을 호출하는 매칭 플랫폼 일 수 있다.
코어 모듈(104)에 의해 생성된 시스템(100)의 각각의 노드는 또한 시스템(100)의 네트워크와 상호 작용하기 위해 노드에 의해 사용되는 특정 정보를 저장한다. 이 정보는 노드의 데이터 디렉토리에, 데이터베이스에 또는 테이블 구조로 저장될 수 있다. 각 노드는 해당 유형(유효성 검증, 피어 또는 서비스)을 저장한다. 시스템(100)의 각 노드는 시스템의 다른 노드와 공유되고 로그 파일로 표시되는 명칭을 더 포함한다. 각 노드는 노드의 전체 인증서인 노드 식별자(또는 노드 ID)를 더 포함한다. 대안으로서, 보안 해시가 노드 ID를 구현하기 위해 사용될 수 있으며, 그에 따라 해시가 고정 길이 값(예를 들어 고정 길이 32 바이트 해시 값)이면 상이한 인증서 유형 및 길이를 사용할 수 있다. 이러한 방식으로, 허가 계약(또는 본 명세서에서 더 논의되는 바와 같이 "체인펌" 스크립트("chainperm" script))은 보안을 손상시키지 않으면서 온-체인 방식으로 효율적으로 관리될 수 있는 고정 길이 값만 저장하면 된다. 따라서, 노드 ID의 경우 노드의 전체 인증서를 사용하거나 시스템의 각 배포에 대한 특정 요구 사항에 따라 인증서의 해시(효율성 향상 및 온-체인 데이터 처리 속도 향상을 위함)를 사용할 수도 있다.
바람직한 실시예에서, 시스템(100)의 노드는 TLS 인증 절차를 사용하므로, 보안 인증서는 TLS 인증서이다. 이 노드 ID는 노드를 고유하게 식별하며 네트워크에 고유하다. 각 노드는 서명 주소를 더 포함하는데, 이 주소는 노드의 공개 키의 해시이며 사적 서브스페이스 블록 체인에서 메시지와 블록을 서명하는 데 사용된다. 서명 주소 정보는 관찰자 노드(예: 피어 유형 노드)에 존재할 필요가 없다. 각 노드는 또한 노드가 검증기 역할을 하는 도메인 이름 배열과 노드가 관찰자 역할을 하는 도메인 이름 배열을 포함한다. 블록 및 메시지 작성에 참여하기 전에 각 노드에는 자체 보안 인증서(예: TLS 인증서) 및 서명 키가 있어야 하며 이는 노드의 데이터 디렉토리에 저장된다. 이와 관련하여, 각 노드에는 두 개의 개인 키 - TLS 인증 절차를 위한 개인 키 하나와, 본 명세서에서 기술되는 블록 생성 및 투표 프로세스에 따라, 특히, 블록 및 투표에 서명하는 다른 개인 키(예: ECDSA 개인 키) - 가 있다.
도 1 및 도 2에 도시된 바와 같이, 시스템(100)은 사적 서브스페이스 블록 체인 데이터의 저장을 위한 하나 이상의 데이터베이스(208)를 포함하는 데이터베이스 모듈(106)을 더 포함한다. 데이터베이스 모듈(106)은 사적 서브스페이스 블록 체인으로부터 저장을 위한 공통 데이터베이스 포맷으로 단방향 동기화를 제공한다. 데이터베이스 모듈(106)은 또한 보조 데이터가 사적 서브스페이스 블록 체인 데이터에 추가될 수 있게 한다. 데이터베이스 모듈(106)은 하나 이상의 데이터베이스에 저장된 데이터에 대한 복잡한 데이터 쿼리 및 분석을 추가로 실행한다. 데이터베이스 모듈(106)은 코어 모듈(104)과 동일한 서버에 상주하거나 별개의 서버에 상주할 수 있다.
코어 모듈(104)은 로컬 노드와 연관된 계정의 생성을 제공하는 기능을 더 포함한다. 각 계정은 사적 서브스페이스 블록 체인에서 사용자의 신원을 정의한다. 또한, 사적 서브스페이스 블록 체인의 블록 내에 저장된 데이터가 스마트 계약 또는 다른 자체 실행/자체 집행 스크립트와 관련되는 경우, 계정은 스마트 계약 및/또는 스크립트와 관련하여 행위자를 식별하는 데 사용된다. 계정은 메시지 송수신 및 자체 실행 스크립트(예: 스마트 계약)를 위한 고유 식별자이다. 각 계정은 공개 키에 해당하는 주소로 참조된다. 각 계정에는 사적 서브스페이스 블록 체인의 스크립트에 서명하고 상호 작용할 때 사용하는 관련 개인 키도 있다. 계정은 사적 서브스페이스 블록 체인에서 사용자의 각 ID를 추가로 정의한다. 예를 들어 스마트 계약을 구현하기 위해 사적 서브스페이스 블록 체인이 사용되는 경우, 계정은 스마트 계약의 당사자를 식별하는 데 사용된다.
코어 모듈(104)은 메시지를 수신 및 중계하는 능력 및 메시지를 사적 서브스페이스 블록체인에 커밋하는 능력을 포함하여, 다른 네트워크 노드(112a-112d)와 통신하기 위해 필요한 기능을 노드에 제공하는 로직을 더 포함한다. 시스템(100)의 통신 네트워크는 피어-투-피어 네트워크로 설정되며, 네트워크의 각 노드에 대해 알려진 식별이 있다. 여기에 설명된 대로 TLS 인증서를 사용하여 노드 간 연결이 인증되며, 승인된 목록에 포함된 TLS 인증서를 가진 노드들만이 네트워크에 연결할 수 있다. 바람직한 실시예에서, 코어 모듈(104)은 메시지 또는 명령을 발신한 당사자/사용자의 식별자와, 상대방/사용자의 식별자에 기초하여 메시지 또는 명령의 서브스페이스를 결정한다. 예를 들어, 당사자 A가 메시지 또는 명령을 전송하고 메시지 또는 명령에 대한 상대방 B를 당사자 B로 지정하면, 코어 모듈(104)은 메시지 또는 명령이 AB 서브스페이스상에서 전송되어야 한다고 결정한다.
도 4는 본 발명의 일 실시예에 따른, 사적 서브스페이스 블록 체인에서의 블록(400)의 표현을 제공한다. 각 블록은 데이터의 저장소 역할을 하며 사적 서브스페이스 블록 체인의 이전 블록에 대한 링크를 포함한다. 각 블록(400)은 블록의 내용을 검증하는데 사용되는 상태 정보를 갖는 헤더(402)를 포함한다. 본 명세서에서보다 상세히 설명되는 바와 같이, 헤더는 블록 내의 서브스페이스 및 다른 데이터에 대응하는 하나 이상의 기본 해시 값에 기초한 전역 해시 값을 포함한다. 바람직한 실시예에서, 전역 해시 값은 머클 트리(Merkle tree)와 같은 해시 트리의 상태 루트이고, 트리의 기본 잎은 서브스페이스를 나타낸다. 헤더는 또한 메시지 루트를 포함하는데, 이는 블록에 포함된 모든 메시지의 요약이며, 사적 서브스페이스 블록 체인의 내용에 의해 트리거되는 이벤트에 기초하여 업데이트된다. 각 서브스페이스는 서브스페이스의 상태 루트 외에, 서브스페이스의 메시지 루트, 수신 루트 및 실행에 사용된 "가스"의 양(즉, 트랜잭션 실행을 위한 계산 단계의 수)을 포함한다. 메시지 루트 및 수신 루트는 메시지 및 수신 추가로 트리거된 이벤트를 기반으로 업데이트되는 트리 루트 해시이며, 해당 메시지 및 수신에 포함된 데이터를 기반으로한다. 예를 들어, 메시지 루트 및 수신 루트는 블록이 Merkle 트리 구조의 서브스페이스를 확인하는 모든 메시지(또는 수신 루트의 경우 메시지 수신)를 추가함으로써, 그리고, 루트 값을 얻음으로써, 계산된 Merkle 트리 루트 해시일 수 있다. 헤더는 블록을 검증하는데 사용되는 암호화 서명을 더 포함한다. 각 블록은 하나 이상의 서브스페이스, 예를 들어 서브스페이스 A, B, N으로 분할된 데이터 페이로드를 추가로 포함한다. 이들 서브스페이스는 정의된 서브세트의 사용자 만이 액세스하고 추가할 수 있는 공유 블록 체인에서 분리된 영역이다. 이런 식으로, 서브스페이스는 참가자가 권한이 있는 참가자만 받는 레코드 및 데이터를 저장할 수 있는 개인 영역을 만든다. 서브스페이스에는 해당 서브스페이스에 고유한, 그리고, 보호된다. 해당 서브스페이스에 액세스할 수 있는 권한이 있는 노드에만 액세스할 수 있도록 액세스 권한에 의해 보호되는, 로직(예: 자체 실행 스크립트, 스마트 계약) 및 데이터 세트(예: 메시지 및 영수증과 같은 일련의 데이터 레코드)가 포함된다. 각 서브스페이스는 해당 서브스페이스에 대해 권한이 부여된 노드만 액세스할 수 있으며 단일 당사자, 여러 당사자 또는 네트워크의 모든 당사자를 포함할 수 있다. 이와 관련하여, 본 발명의 사적 서브스페이스 블록 체인은 블록 체인의 유효성 및 무결성을 보장하기 위해 각 블록의 내용에 대한 공개 가시성에 의존하는 전통적인 블록 체인 구현과는 상당히 다르다. 사적 서브스페이스 블록 체인의 서브스페이스는 특정 거래(예를 들어, 두 당사자 간의 신용 디폴트 스왑(CDS))에 기초하여 분리될 수 있거나, 또는 여기에 더 설명된 바와 같이 이러한 서브스페이스에 액세스할 수 있는 당사자에 기초하여 분리될 수 있다. 예를 들어, 각 서브스페이스는 한 그룹의 당사자들 사이에 일련의 트랜잭션을 저장할 수 있으며, 서브스페이스의 메시지 리스트는 그러한 트랜잭션의 완전한 히스토리를 제공한다. 트랜잭션 당사자 만이 해당 트랜잭션에 해당하는 서브스페이스에 액세스할 수 있는 권한을 가지며, 메시지 및 트랜잭션이 시스템에 의해 전파될 때 해당 당사자에 해당하는 노드만이 해당 서브스페이스의 컨텐츠를 수신한다. 이와 관련하여, 이들 서브스페이스에 저장된 데이터는 별도의 데이터베이스에 저장되며, 네트워크의 노드에 의해 개별적으로 동기화될 수 있다.
일 실시예에서, 서브스페이스의 데이터는 계정에 의해 구성된다. 계정은 주소로 참조되며, 메시지 nonce(무언가를 독자적으로 식별하는데 사용되는 난수 또는 의사-난수, 이 경우에는 메시지 레코드), 스크립팅 코드 또는 "바이트 코드"(예: 스마트 계약 코드), 및 스토리지에 계정을 유지시킬 수 있는 임의의 키-값 쌍을 가진다. 두 가지 유형의 계정이 존재한다: (1) 사용자 계정 및(2) 스크립트/스마트 계약 계정. 사용자 계정은 사용자가 시스템에 메시지를 보내는 데 사용하는 계정이다. 사용자 계정의 주소는 사용자의 공개 키에서 파생된다. 사용자 계정에는 연관된 바이트 코드 또는 키-값 쌍이 없다. 반면 스크립트/스마트 계약 계정에는 스크립팅 코드/바이트 코드가 있으며 데이터를 유지하기 위해 키-값 쌍을 저장할 수 있다. 스크립트/스마트 계약 계정의 주소는 생성 계정의 주소 및 nonce에서 파생되지만 스크립트/스마트 계약 계정의 주소(공개 키)와 일치하는 개인 키는 없다. 이러한 배열에서는 사용자가 발신자 계정으로 스크립트/스마트 계약인 메시지를 보낼 수 없다.
도 8은 본 발명의 일 실시예에 따른, 블록의 페이로드에서 서브스페이스의 배열을 도시하는 사적 서브스페이스 블록 체인에서의 블록(800)의 다른 표현을 제공한다. 블록 헤더(802) 외에, 전술한 바와 같이, 블록(800)은 그 서브스페이스에 액세스하는 당사자들에 기초하여 분할된 복수의 서브스페이스를 포함한다. 서브스페이스는 단일 당사자 만이 허가되고 데이터에 액세스할 수 있는 단일-당사자 서브스페이스(804)들을 포함하고, 이는 당사자 A에 대응하는 서브스페이스(804a), 당사자 B에 대응하는 서브스페이스(804b) 및 당사자 C에 대응하는 서브스페이스(80c)를 포함한다. 증권 거래소에서의 주식 구매, 상품 거래 또는 의료 기록과 같은 단일 당사자와 관련된 레코드 또는 거래가 단일 당사자 서브스페이스에 포함될 수 있다. 블록(800)의 서브스페이스는 두 당사자가 각각 허가되고 데이터에 액세스할 수 있는 바이래터럴(bilateral, '양자'라고도 함) 서브스페이스(806)를 더 포함한다. 도시된 예에서, 이들 서브스페이스는 당사자 A 및 B에 대응하는 양자 서브스페이스(806ab), 당사자 A 및 C에 대응하는 양자 서브스페이스(806ac) 및 당사자 B 및 C에 대응하는 양자 서브스페이스(806bc)를 포함한다. 양자 서브스페이스(806)는 신용 디폴트 스왑 또는 에쿼티 스왑(equity swap)과 같은, 두 당사자를 포함하는 레코드 또는 거래를 포함할 수 있다. 공통 서브스페이스(808)는 참조 데이터, 서비스 노드 허가리스트, 시스템(100)의 각 노드의 노드 ID 및 각 노드에 대응하는 유형 및 허가를 제공하는 신원 디렉토리(또는 피어 레지스트리), 및 노드에 의한 액세스 및 권한 결정을 수행하기 위해 노드에게 필요한, 시스템 내 모든 당사자 및 노드에 의한 일반적 사용을 위한, 기타 정보 및 스크립트를 포함한다. 트랜잭션 관리자는 메시지 스케줄링 서비스를 제공하여 사용자가 나중에 또는 특정 이벤트가 발생했을 때 자동으로 메시지가 실행되도록 스케줄할 수 있다. 이 메시지 스케줄링 서비스 기능은 다른 구성요소에 의해 제공될 수도 있다. 메시지 스케줄링 서비스는 예를 들어, 거래 계약에 대한 쿠폰의 지불을 자동화하거나(시간 트리거 인스턴스), 엔티티 이름이 엔티티 레지스트리에서 업데이트될 때 거래 계약에서 참조 엔티티의 이름을 변경하는 데 사용될 수 있다(이벤트 트리거 인스턴스). 공통 서브스페이스는 스크립트/스마트 계약 바이트 코드, ABI(Application Binary Interface), 스마트 계약 팩토리, 데이터베이스 구성 정보 및 기타 도메인 또는 서브스페이스 상태 정보를 추가로 포함할 수 있다. 하나 이상의 당사자의 다른 조합을 포함하는 추가 서브스페이스가 가능하다. 예를 들어, 도 19에 도시된 바와 같이, 다수의 서브스페이스가 주어진 도메인에 포함될 수 있다. 예를 들어, 양자 도메인은 두 당사자(예를 들어, 당사자 A 및 당사자 B)에 액세스할 수 있고, 둘 다 해당 도메인에 대한 검증자로서 작용할 것이다. 도메인 내에서, 두 당사자는 해당 도메인의 모든 서브스페이스에 액세스할 수 있다(당사자들의 진정한 사적 서브스페이스는 개인 정보 보호를 위해 별도의, 사적인, 도메인에 위치함). 도메인 내에서, 서로 다른 서브스페이스를 사용하여 별도의 레코드 그룹 또는 별도의 트랜잭션을 지정할 수 있다. 예를 들어, 양방향 도메인에서, 서로 다른 자산 클래스의 거래를 처리하기 위해 다수의 서브스페이스가 생성될 수 있으며, 각 서브스페이스는 상이한 자산 클래스에 대응하여, 당사자들이 이러한 거래를 개별적으로 그리고 독립적으로 처리하고 추적할 수 있게 한다.
전통적인 블록 체인 데이터 구조에서의 블록과 유사하게, 각각의 서브스페이스에서의 데이터 레코드는 (예를 들어, 해시 값과 같은) 데이터에 기초한 키와 함께 (당사자들 간의 특정 거래에 대응하는 데이터와 같은) 데이터와, 서브스페이스의 이전 데이터 레코드에 대한 링크를 포함한다. 서브스페이스를 사용하면 노드가 데이터를 안정적으로 동기화하고 데이터 유효성을 검사하는 동시에 다른 사용자와 관련된 데이터 세트를 격리할 수 있다. 또한, 서브스페이스의 사용을 통해 시스템(100)은 상이한 서브스페이스에서 메시지의 동시 처리를 제공할 수 있다. 전통적인 블록 체인에서는, 블록 체인의 무결성을 유지하기 위해 메시지와 트랜잭션을 순차적으로 처리해야 한다. 사적 서브스페이스 블록 체인의 서브스페이스는 서로 다른 서브스페이스의 메시지와 트랜잭션을 동시에 처리할 수 있게 하며 동일한 서브스페이스의 메시지만 순차적으로 처리하도록 요구한다. 가상 머신에서 메시지를 처리하려면 노드는 각각 최신 상태인 각 메시지와 관련된 모든 계정(예: 바이트 코드 및 스토리지를 포함한 스마트 계약)에 액세스해야 한다. 따라서 각 메시지마다 트랜잭션 상태가 변경될 수 있으므로 동일한 서브스페이스에 있는 메시지를 순차적으로 처리해야 하므로 후속 메시지 실행의 결과에 영향을 미칠 수 있다. 즉, 메시지는 특정 다른 서브스페이스로 특정 호출을 할 수 있으므로 데이터 액세스에 대한 추가 요구 사항이 발생한다. 예를 들어, 메시지는 공통 서브스페이스와 도메인 내의 다른 서브스페이스로 호출을 할 수 있다.
당사자의 노드에서 유지되는 블록의 각 사본은 서브스페이스에 의해 생성된 프라이버시 및 액세스 제한을 반영한다. 특히 당사자의 노드에는 당사자 및 노드가 권한이 부여된 서브스페이스의 데이터만 포함하는 블록 사본이 포함된다. 도 8의 예에 도시된 바와 같이, 당사자 A 노드 상에 유지되는 블록(800)의 사본은 당사자 A가 허가되고 액세스할 수 있는 서브스페이스에 위치한 데이터만을 포함하는데, 이는 당사자 A 노드가 단일 당사자 서브스페이스(804a), 양측 서브스페이스(806ab 및 806ac) 및 공통 서브스페이스(808)로부터의 데이터를 포함하는 블록(800)의 사본을 포함함을 의미한다. 당사자 A 노드는 당사자 A가 허가되지 않은 서브스페이스로부터의 데이터를 갖지 않으므로, 당사자 A 노드는 일측 서브스페이스(804b 또는 804c), 또는 양측 서브스페이스(806bc)으로부터의 임의의 데이터를 갖지 않음을 의미한다. 마찬가지로, 당사자 B 노드에 유지 보수되는 블록 800의 사본에는 당사자 B가 권한이 부여되고 액세스 권한이 있는 서브스페이스에 위치한 데이터만 포함되며, 당사자 B가 권한이 부여되지 않은 서브스페이스의 데이터는 포함하지 않으며, 이는 당사자 B 노드가 단일 당사자 서브스페이스(804b), 양자 서브스페이스(806ab 및 806ac) 및 공통 서브스페이스(808)로부터의 데이터를 포함하는 블록(800)의 사본을 포함하지만; 단측 서브스페이스(804a 또는 804c) 또는 양측 서브스페이스(806ac)으로부터의 데이터는 없음을 의미한다. 마찬가지로, 당사자 C 노드에서 유지 관리되는 블록 800의 사본에는 당사자 C가 권한이 부여되고 액세스 권한이 있는 서브스페이스에 있는 데이터 만 포함되며 당사자 C가 권한이 부여되지 않은 서브스페이스의 데이터는 포함되지 않는다. 이는 당사자 C 노드가 단일 당사자 서브스페이스(804c), 양자 서브스페이스(806ac 및 806bc), 및 공통 서브스페이스(808)로부터의 데이터를 포함하는 블록(800)의 사본을 포함하지만; 단측 서브스페이스(804a 또는 804b) 또는 양측 서브스페이스(806ab)으로부터의 데이터를 갖지 않음을 의미한다. 노드가 권한이 부여되지 않은 서브스페이스에 대한 데이터를 수신하지 않기 때문에 서브스페이스는 완전히 사적 상태로 유지되며 이러한 데이터에 액세스할 수 없는 당사자나 노드에 데이터가 실수로 공개될 위험이 없다.
도 9는 본 발명의 일 실시예에 따른, 서브스페이스에 대한 업데이트에 기초하여 사적 서브스페이스 블록 체인에서 블록의 생성을 도시한 도면이다. 처음에, 당사자 A 및 당사자 B로부터의 네트워크의 노드는 두 당사자 간의 거래와 관련된 메시지(912 및 914)를 교환하여, 일련의 거래에 대해 상태 AB2를 초래한다. 유사하게, 당사자 A와 당사자 C는 그들 사이의 거래에 관한 메시지(926)를 교환하여, 이들 두 당사자 사이의 거래에 대해 상태 AC1을 발생시킨다. 이들 메시지의 합의 및 검증 후에, 새로운 사적 서브스페이스 블록 체인(900)의 새로운 블록(902)이 이들 거래 및 이와 관련된 정보의 보안 레코드로서 생성된다. 사적 서브스페이스 블록 체인(900) 및 그 내부의 블록은 2 개의 쌍방 서브스페이스를 갖는다: 당사자 A와 B 사이의 거래에 해당하는 서브스페이스 AB(908) 및 당사자 A와 C 사이의 거래에 해당하는 서브스페이스 AC(910). 블록(902)은 서브스페이스 AB(908)에 메시지(912, 914)를 레코딩하고, 서브스페이스 AC(910)에 메시지(926)를 레코딩한다. 바람직한 실시예에서, 특정 서브스페이스 내의 각각의 메시지는 블록 체인 원리에 기초하여 블록 형태로 서브스페이스에 저장되며, 여기서 체인의 각 블록은 관련 해시 값을 가지며, 이전 블록의 해시 값을 사용하여 현재 블록의 해시 값을 계산하여 블록 사이에 링크를 만든다. 예를 들어, 제 1 메시지(912)는 서브스페이스 AB(908)에 대응하는 블록 체인에 제 1 블록으로서 저장되며, 제 2 메시지는 그 블록 체인에서 후속으로 기록된다. 보다 구체적으로, 특정 서브스페이스에서의 메시지는 본 명세서에 개시된 바와 같이 사적 서브스페이스 블록 체인 형태로 서브스페이스에 저장되며, 이는 추가적인 서브스페이스를 가질 수 있다(또한 사적 서브스페이스 블록 체인 형태). 또한, 상태 루트 AB2(908a)는 AB 서브스페이스에 저장된 메시지에 기초하여 생성된다(이 시점에서 메시지 912 및 914로 구성됨). 상태 루트는 서브스페이스의 데이터를 기반으로하는 상태 키이며 일반적으로 서브스페이스의 데이터에 대해 수행된 해시 함수의 결과 인 해시 값이다. 예를 들어, 각 서브스페이스에 대한 상태 루트는 머클 트리와 같은 해시 트리의 루트일 수 있고; 이들 상태 루트는 본 명세서에서 더 논의되는 바와 같이 모든 서브스페이스에 대한 상태 루트를 포함하는 더 큰 해시 트리의 일부일 수 있다. 유사하게, 상태 루트 AC1(910a)은 AC 서브스페이스에 저장된 메시지에 기초하여 생성된다(이 시점의 메시지(926)로 구성됨). 이들 상태 루트는 본 명세서에서 더 상세히 설명되는 바와 같이 블록 헤더에 통합하기 위해 특정 서브스페이스 내에서 리더 노드에 의해 생성된다. 이러한 방식으로, 블록은 각 서브스페이스로부터 가장 최근에 제출된 상태 정보를 포함한다. 또한, 그리고 아래에서 더 논의되는 바와 같이, 사적 서브스페이스 블록 체인의 블록에 포함되기 전에, 주어진 서브스페이스 내에서 각각의 개별 메시지 또는 거래에 대한 검증 노드들 사이에서 합의가 이루어진다. 각 개별 메시지는 결과가 항상 예측 가능하고 신뢰할 수 있도록 합의 프로세스를 거쳐야 한다. 이는 유효성 검증기 노드가 받는 메시지의 순서를 안정적으로 결정할 수 없기 때문이다.
블록에서 서브스페이스에 대한 새로운 상태 루트의 생성은 또한 블록에 대한 전역 상태 루트로 업데이트된다. 이는 서브스페이스에 대한 상태 루트가 전역 상태 루트의 값을 초래하는 해시 함수에 대한 입력으로 사용되기 때문이다. 도 10은 서브스페이스의 상태 루트가 블록에 대한 전역 상태 루트의 값에 어떤 영향을 미치는지 보여준다. 도 9의 블록과 유사하게, 도 10의 블록(1000)은 2 개의 서브스페이스, 즉 서브스페이스 AB(1012) 및 서브스페이스 AC(1014)를 포함한다. 이들 서브스페이스 각각은 상태 루트: AB 상태 루트(1004) 및 AC 상태 루트(1014)를 각각 갖는다. 특정 서브스페이스 안에 추가 서브스페이스가 없는 경우(효과적으로 "서브서브스페이스") 특정 서브스페이스의 상태 루트는 체인의 최신 블록에 대한 해시 값일 수 있다. 서브스페이스가 그 안에 하나 이상의 다수의 서브스페이스(즉, 다수의 서브서브스페이스)를 갖는 경우, 서브스페이스에 대한 상태 루트는 하나 이상의 서브서브스페이스의 상태 루트 값에 기초하여 머클 트리와 같은 해시 트리의 루트일 수 있다. 이러한 방식으로, 각 서브스페이스는 재귀 데이터 구조 요소이고, 도 10에 도시된 바와 같이 블록 체인 구조의 계층구조로 구성될 수 있다. 서브스페이스 AB(1012)는 그 안에 다수의 서브스페이스(1008)를 가지며, 이들 서브스페이스의 상태 루트는 AB 상태 루트(1004)를 생성하는 해시 함수로의 입력으로 작용한다. 유사하게, 서브스페이스 AC(1014)는 그 안에 다수의 서브스페이스(1010)를 가지며, 이들 서브-서브스페이스의 상태 루트는 AC 상태 루트(1006)를 생성하는 해시 함수에 대한 입력으로서 작용한다. 서브스페이스의 유효성 검증기 노드는 서브스페이스의 상태 루트를 승인하거나 거부할 수 있다.
도 9의 예에 도시된 바와 같이, 후속 메시지들(916 및 918)은 AB 서브스페이스에서의 트랜잭션들과 관련하여 생성되며, 그 결과 AB 서브스페이스(908)에 대한 새로운 상태 루트 AB4(908b)가 생성되고, 이들 메시지 및 새로운 상태 루트가, 사적 서브스페이스 블록 체인(900)의 새로운 블록(904)에 저장되기 전에 검증된다. 유사하게, 후속 메시지(928)는 AC 서브스페이스(910)의 트랜잭션에 대해 생성되어, AC 서브스페이스용 새 상태 루트 AC2(910b)가 생성된다. 메시지(928) 및 새로운 상태 루트(910b)는 또한 블록(904)에 저장되기 전에 검증된다. 도 9에 더 도시된 바와 같이, 추가 메시지(AB 서브스페이스(908)에서 920, 922, 및 AC 서브스페이스(910)에서 메시지 930 및 932)로서, 대응하여 갱신된 상태 루트(AB 서브스페이스(908)의 상태 루트 AB6(908c) 및 AC 서브스페이스(910)의 상태 루트 AC4(910c))가 생성되고, 이러한 추가 메시지 및 상태 루트는 검증되고 체인의 새로운 블록에 추가된다(예를 들어, 블록 906). 이 프로세스는 계속되고 추가 메시지가 서브스페이스에서 교환됨에 따라 추가 블록이 사적 서브스페이스 블록 체인(900)에 추가된다.
바람직한 실시예에서, 새로운 블록은 각 서브스페이스로부터 가장 최근에 제출된 상태 정보에 기초하여 고정된 시간 간격으로 생성된다. 대안으로서, 메시지 교환에 기초하여 새로운 블록이 생성될 수 있다. 예를 들어, 사적 서브스페이스 블록 체인의 서브스페이스와 관련된 메시지가 전송될 때마다 새로운 블록이 생성될 수 있다. 신규 또는 기존 블록 체인에 대한 새로운 블록의 생성은 또한 시스템(100) 외부의 이벤트를 포함하는 다른 이벤트에 기초하여 트리거될 수 있다.
블록 체인의 초기 블록인 생성 블록은 블록 체인상의 모든 노드에 대해 동일한 구성 파일에 따라 생성된다. 다른 모든 블록과 달리 생성 블록은 서명되지 않으며, 서명되지 않은 임의의 개수의 메시지를 포함할 수 있다. 예를 들어, "공통"서브스페이스가 포함된 "공용" 도메인의 경우, 생성 블록에는 권한 관리를 위한 전용 스크립트 또는 스마트 계약(예: "chainperm"스크립트)을 배포하고 이러한 전용 스크립트 또는 스마트 계약에 검증기 노드의 초기 세트를 등록하는 메시지가 포함된다.
이 시스템은 사적 서브스페이스 블록 체인에 대한 분산 합의 알고리즘을 사용한다. 이 알고리즘은 악의적인 행위자에 대한 강력한 암호화 보호 기능으로 설계되었으며 비잔틴 결함 허용(BFT) 보호 기능을 사용한다. 바람직한 실시예에 따르면, 합의 알고리즘은 다음과 같이 기능한다. 먼저, 서브스페이스에서 유효성 검증 노드로 권한이 부여된 노드가 리더 노드를 선택한다. 그런 다음 리더 노드는 서브스페이스의 나머지 유효성 검증 노드에 메시지 및 블록을 알리는 역할을 하며, 이들은 팔로워 노드로 작용한다. 팔로워 노드는 암호화 서명 형식의 승인을 통해 리더에게 응답하여 새 메시지 및 블록에 사인 오프한다. 팔로워 노드의 상대적 다수(50 % 이상)가 승인하면 리더 노드는 새 메시지의 유효성 또는 새 블록의 확인을 팔로워 노드에 알린다. 합의 프로세스에 참여하지 않는 네트워크의 다른 노드는 메시지 또는 블록에서 서명을 확인하여 메시지 또는 블록이 상대적 다수의 검증 노드에 의해 승인되었음을 신뢰할 수 없는 방식으로 검증할 수 있다.
도 11a 내지 도 11d는 본 발명의 실시예에 따른, 서브스페이스에 대한 메시지 전파 및 검증 프로세스, 및 후속 블록 생성 프로세스의 예시를 제공한다. 도 11a는 초기 트랜잭션 생성 메시지의 생성 및 통신을 도시한다. 도 11a에 도시된 예에서, 당사자 노드 표현(1104, 1106 및 1108)은 당사자, 이 경우 당사자 A, 당사자 B 및 당사자 C에 의해 각각 관리되는 노드들의 클러스터를 나타낸다. 노드들(1104, 1106, 1108) 및 서비스 노드(1102)의 클러스터는 피어-투-피어 통신 네트워크를 통해 통신 가능하게 연결된다. 서비스 노드(1102)는 당사자 A와 당사자 B 사이의 거래에 대한 거래 생성 메시지를 전송한다. 거래 생성 메시지는 거래 조건을 포함하고, 자체 실행 스크립트 또는 스마트 계약의 형태를 취할 수 있으며, 관련 서브스페이스 식별자, 이 경우 AB 서브스페이스를 더 포함한다. 특히, 당사자 C가 AB 서브스페이스에서 허가되지 않아서 AB 서브스페이스상의 트랜잭션 정보에 액세스할 수 없기 때문에, 서비스 노드(1102)는 트랜잭션 생성 메시지를 노드(1108)의 당사자 C 클러스터에 전송하지 않으며, 노드(1104)의 당사자 A 및 노드(1106)의 당사자 B 클러스터는 본 명세서에 추가로 설명된 바와 같이, 트랜잭션 생성 메시지를 노드(1108)의 당사자 C 클러스터에 전파하지 않는다. 결과적으로, 노드의 당사자 C 클러스터는 트랜잭션 생성 메시지를 수신하지 않으며 트랜잭션 생성 메시지를 인식하지 못한다.
도 11b 및 도 11c에 도시된 바와 같이, 각각의 메시지는 검증 및 블록 생성 프로세스를 촉진하기 위해 관련 서브스페이스상에서 허가된 네트워크의 모든 검증 노드에 전파된다. 먼저, 서비스 노드는 메시지의 관련 서브스페이스에서 권한이 부여된 서비스 노드에 연결된 모든 유효성 검증 노드에 메시지를 전송한다. 도 11b에 도시된 바와 같이, 서비스 노드(1110 및 1102)는 메시지를 송신하기 위한 진입 점으로서 사용되는 비-검증 노드이다. 서비스 노드 A(1110)는 서비스 노드(1102)로부터 트랜잭션 생성 메시지를 수신하고, 메시지가 AB 서브스페이스와 관련이 있음을 식별한다. 결과적으로, 서비스 노드 A(1110)는 서비스 노드(1102)로부터 AB 서브스페이스를 갖는 모든 검증 노드로 메시지를 전파한다. 특정 서브스페이스에 대한 검증 노드의 식별은 사적 서브스페이스 블록 체인의 블록 내에 포함되거나 사적 서브스페이스 블록 체인에 위치한 스크립트 또는 스마트 계약에 의해 관리될 수 있다. 예를 들어, 일 실시예에서 권한을 관리하기 위한 전용 스크립트 또는 스마트 계약(예를 들어, "chainperm" 스크립트)이 생성 블록의 공통 서브스페이스에 배치된다. 노드에 권한을 부여하기 위해 새 노드의 이름, TLS-ID(Public Transport Layer Security ID), 공개 서명 주소, 및 노드가 액세스 및/또는 검증할 수 있는 도메인 및 서브스페이스의 리스트와 함께 메시지가 chainperm 계약에 전송된다. 유효성 검증기 권한은 도메인 수준에서 부여되며, 관찰자(비-유효성 검증기) 액세스는 서브스페이스 수준에서 부여될 수 있다. 다른 노드와의 연결을 허용하는 모든 노드는 최소한 "공통"서브스페이스에 액세스할 수 있으므로 체인펌 계약을 액세스하고 확인할 수 있다고 가정한다. 블록 체인 내의 데이터는 네트워크의 모든 노드가 동기화됨을 보장하기 때문에, 모든 노드는 chainperm 계약을 일관된 시각으로 보고 이에 따라 노드 연결을 수락/거부한다. 도 11b에 도시된 예에서, 서버 노드는 노드(1104)의 당사자 A 클러스터에서 노드 Al(1112a) 및 A2(1112b)와, 노드(1106)의 당사자 B 클러스터에서 노드 B1(1114a) 및 B2(1114b)를 서브스페이스에 대한 유효성 검증 노드로 식별한다. 다시, 당사자 C 노드는 AB 서브스페이스에서 권한이 없기 때문에 메시지를 수신하지 않는다.
둘째로, 서버 노드에 의해 메시지가 관련 서브스페이스에서 허가된 연결된 검증 노드로 전파된 후에, 검증 노드는 래프트 합의 프로토콜과 같은 합의 프로세스를 통해 메시지의 검증을 진행하지만, 회전 리더 메커니즘과 같은 다른 합의 알고리즘이 사용될 수도 있다. 도 11c에 도시된 바와 같이, 랜덤화된 프로세스는 합의 프로세스를 위한 리더 노드, 즉 노드 A1(1112a)을 선택하는데 사용된다. 선출된 리더는 해당 서브스페이스에서 권한이 부여된 리더가 연결된 다른 모든 검증 노드에 의한 투표를 위해 수신한 메시지를 제안한다. 도시된 예에서, 리더 노드 A1(1112a)은 허가된 서브스페이스의 다른 검증 노드, 즉 노드(1104)의 당사자 A 클러스터의 노드 A2(1112b) 및 노드(1106)의 당사자 B 클러스터의 노드 B1(1114a) 및 B2(1114b)에 의한 투표를 위해 서비스 노드(1102)로부터 수신된 메시지를 제안한다. (특정 합의 프로토콜에 의해 결정되며 소정 시간의 경과(시간만료)에 의해 결정될 수 있는 또는 모든 또는 충분한 수의 투표 검증 노드로부터 투표 수신에 의해 결정될 수 있는) 투표 기간의 종료시, 그리고 충분한 수의 투표를 수신하였다고 가정하여, 상태 루트가 블록 헤더에 포함되도록 제출된다.
서브스페이스에 대한 상태 루트가 블록 헤더에 포함되도록 승인되면, 네트워크에 대한 업데이트된 블록이 생성될 수 있다. 일 실시예에 따르면, 시스템에 대한 검증 노드 중 하나가 블록의 생성을 위한 리더로서 무작위로 선택된다. 그런 다음 모든 서브스페이스 리더는 각각의 상태 루트를 블록 리더에게 제출한다. 도 11d에 도시된 예에서, 노드(1108)의 당사자 C 클러스터 내의 노드(예를 들어, 노드 C1)는 블록의 생성을 위한 리더로서 무작위로 선택된다. 따라서 AB 서브스페이스 리더 A1(1112a)과 같은 모든 서브스페이스 리더는 각각의 선택된 상태 루트를 블록 리더, 즉, 노드(1108)의 당사자 C 클러스터의 노드 C1에 제출한다. 블록 리더로서 노드 C1은 서브스페이스로부터 상태 루트들을 조합하여, 전역 상태 루트와 업데이트된 블록 헤더를 결정하고, 네트워크의 팔로워 노드로부터 업데이트된 블록 헤더의 승인을 요청한다. 팔로워 노드는 블록 리더의 업데이트된 블록 헤더를, 블록 헤더의 자체 결정과 비교하고, 블록 리더에 대한 승인을 나타낸다. 승인을 받으면 블록 리더(이 예에서는 노드 C1)가 사적 서브스페이스 블록 체인 내 공식 블록을 생성하여, 모든 서브스페이스로부터 상태 루트를 통합한다.
도 12a-g는 본 발명의 일 실시예에 따른 합의 프로세스의 추가의 상세한 예시를 제공한다. 전술한 바와 같이, 전체 시스템은 전형적으로 도 19에 도시된 바와 같이 다수의 도메인 및 서브스페이스를 포함한다. 각 도메인은 하나 이상의 서브스페이스를 포함하고, 각 서브스페이스는 정확히 하나의 도메인에 포함된다. 각 도메인에는 기원 블록(genisis block)에서 시작되는 자체 사적 서브스페이스 블록 체인이 있다. 합의 프로세스는 도메인에 대해 실행된다. 그런 의미에서 서브스페이스는 리더 노드나 팔로워 노드를 직접 가지지 않지만 서브스페이스가 포함된 도메인에는 리더와 팔로워 노드가 있다. 각 도메인에는 고유한 유효성 검증기 노드 세트가 있다. 하나의 유효성 검증기 노드는 하나 이상의 도메인을 유효성 검증할 수 있다. 그러나 합의 프로세스는 각 도메인에 대해 독립적으로 실행된다. 즉, 두 도메인의 유효성을 검사하는 유효성 검증기 노드는 합의 프로세스의 두 개의 개별 인스턴스를 실행한다. 결과적으로 유효성 검증기 노드는 한 도메인에서 리더십을 "승리"할 수 있지만 다른 도메인에서는 팔로워 역할을 할 수 있다. 바람직한 실시예에서, 합의 프로세스의 하나의 구현 만이 있으며, 이는 모든 도메인에 대해 동일하다.
바람직한 실시예에서, 시스템에 의해 사용되는 합의 프로세스는 도시된 바와 같이 비잔틴 결함 허용(BFT) 래프트 합의 프로세스이다. 이 프로세스에는 리더를 결정하기 위한 선출 프로세스와 검증 프로세스가 포함된다. 도 12a-c는 본 발명의 일 실시예에 따른 선출 프로세스를 도시한다. 본 예에 도시된 바와 같이, 주어진 서브스페이스에 대한 메시지 및 트랜잭션을 검증하는 5 개의 검증 노드 A-E(노드 1202, 1204, 1206, 1208 및 1210)가 존재한다. 프로세스 초기에는 리더 노드가 없으며 모든 노드가 팔로워로 간주된다. 각 팔로워 노드는 선거 시작을 시도하고 다른 검증 노드로부터 확인 투표를 요청하는 후보 노드로 자신을 지정하기 전에 임의의 시간("시간 만료")을 기다린다. 도 12b에 도시된 바와 같이, 노드 A(1202)는 다른 검증 노드 이전에(또는 다른 검증 노드로부터 확인 투표에 대한 요청을 수신하기 전에) 시간 만료에 도달하여, 후보 노드가 되어, 요청을 보낸다. 후보 노드가 확인 투표 또는 "예" 투표를 요청하도록 관련 서브스페이스에서 허가된, 연결된 각 검증 노드에 요청을 전송한다. 각 노드의 시간 만료(timeout)는 하나의 노드만 먼저 후보가될 가능성을 최적화하기 위해 (네트워크 대기시간 조건에 따라) 충분히 긴 시간 주기 동안 무작위화된다. 각 노드는 먼저 수신되는 요청을 가진 후보 노드에 대해 확인 투표 또는“예”투표를 보낸다. 다시 말해, 각 팔로워 노드는 어느 후보자가 선출 요청으로 먼저 팔로워 노드에 접촉하는지에 대한 투표를 한다. 충분한 수의 투표를 받은 후보가 리더로 선출된다. 선거에 성공하려면 상대적 다수의 팔로워 투표가 필요하다. 또한 투표 프로세스의 무결성을 보장하기 위해 모든 확인 절차, 팔로워의 투표는 투표를 생성하는 노드에 의해 서명되며, 모든 팔로워 투표 서명의 유효성이 검증된다. 팔로워 투표가 발송된 후, 충분한 수의 확인 투표를 가진 후보는 팔로워에게 메시지를 보내, 선거 결과를 확인하고 리더로 선출되었음을 확인한다. 도 12c와 관련하여, 시간만료되어, 임의의 다른 팔로워 노드에 앞서 투표 요청을 발송한 노드 A(1202)는 4 개의 팔로워 노드 B(1204), C(1206), D(1208), 및 E(1210) 각각으로부터 확인 투표를 수신한다. 노드 A(1202)는 투표에서 서명을 검증하고, 투표를 검증한 후, 선출 결과를 노드 A(1202)를 리더로 식별하는 선출 결과를 확인하는 확인 메시지를 4명의 팔로워 노드에 전송하고, 그에 따라 팔로워 노드는 노드 A가 현재 리더라는 정보를 저장한다. 거래가 없는 경우 선출된 리더는 고정된 간격으로 모든 팔로워에게 정기적인 하트비트 메시지를 보낸다. 선택된 리더 노드로부터 유효한 주기 메시지를 수신하는 한, 노드는 팔로워로 유지된다. 현재 리더가 응답하지 않고 주기적 하트 비트 메시지를 보내지 못하면 새로운 리더 선거가 실시되어 새로운 상대적 다수 투표를 얻는다.
특정 블록 또는 특정 도메인에 대한 검증 노드들 중에서 리더가 선출되면, 노드들은 서브스페이스 내에서 트랜잭션 검증 및 블록 생성 프로세스를 계속할 수 있다. 무화과 도 12d-g는 본 발명의 일 실시예에 따른 합의 프로세스를 도시한다. 리더 노드를 선택한 후 모든 팔로워 노드는 어느 노드가 특정 블록 또는 서브스페이스의 리더 노드인지를 인식한다. 리더는 각각의 합의 "조건"의 끝에 블록을 생성할 책임이 있고, 여기서 각각의 합의 조건은 특정 시간 주기(예: 1 ~ 3 초 사이의 어딘가, 바람직하게는 2 초)동안만 지속되거나 시스템에서 특정 이벤트가 발생할 때까지만 지속될 수 있다. 각 조건 동안 리더는 트랜잭션 및 메시지를 서브스페이스 데이터에 프리-커밋(pre-committing)할 책임이 있다. 조건이 끝날 때, 프리-커밋된 거래 및 메시지는 팔로워에 의해 승인되며, 이때, 공식 블록이 완료되고 사적 서브스페이스 블록 체인에 커밋된다. 도 12d에 도시된 바와 같이, 선거 후 모든 팔로워 노드는 노드 A(1202)가 확인된 선거의 리더임을 인식한다. 메시지가 노드에 의해 수신될 때, 여기에 설명된 피어-투-피어 메시지 전파에 따라 그 노드에 의해 메시지가 전파된다. 예를 들어, 도 12e에 도시된 바와 같이, 노드 B(1204)는 특정 트랜잭션(Tx 1)을 나타내는 메시지를 수신하고 그 메시지를 시스템의 다른 모든 노드(노드 A(1202), 노드 C(1206), 노드 D(1208) 및 노드 E(1210))에 전파함으로써 응답한다. 이 노드 A, C, D 및 E는 선택된 리더 노드 A(12012)를 포함한, 네트워크 내 다른 모든 검증 노드에 메시지를 차례로 전파한다. 전파된 메시지를 수신한 리더 노드는 승인을 요청하는 모든 팔로워 노드에 메시지를 전송하여, 메시지를 사적 서브스페이스에 프리-커밋한다. 각 팔로워 노드는 리더 노드로부터 승인 요청 내 메시지를 검사하고, 팔로워 노드는 승인 메시지를 리더 노드에 보낸다. 메시지는 적절한 서명 및 적절한 nonce 값을 포함한, 메시지가 유효함을 보장하기 위한 소정의 기준을 충족하는 경우 팔로워 노드에 의해 프리-커밋되도록 승인된다. 바람직한 실시예에서, 메시지는(i) 올바르게 포맷되고(p2p 프로토콜에 의해 정의된 메시지 구조를 준수함), (ii) 서명되고, (iii) 발송 계정의 예상 nonce와 같은 nonce 값을 가질 경우, 팔로워 노드에 의해 프리-커미팅되도록 승인된다. 팔로워 노드의 상대적 다수가 프리-커밋에 대한 승인을 보내면 리더는 메시지를 서브스페이스에 프리-커밋한다. 상대적 다수의 팔로워 노드에 해당하는 개수는 공통 서브스페이스에 액세스할 수 있는 권한이 있는 노드 수에 따라 결정된다. 도 12f의 예에 도시된 바와 같이, 트랜잭션 Tx 1을 나타내는 메시지를 수신한 리더 노드 A(1202)는 메시지를 관련 서브스페이스로 프리-커밋하기 위해 승인을 요청하는 모든 팔로워 노드에게 메시지를 전송한다. 팔로워 노드(1204, 1206, 1208 및 1210)는 리더 노드 A(1202)에 의해 전송된 Tx 1 메시지가 유효하다고 결정하고, 리더 노드 A(1202)가 Tx 1 메시지를 서브스페이스에 프리-커밋하도록 승인을 전송한다.
리더 노드는 조건이 종료될 때까지 상기 프로세스에 따라 메시지를 계속 수신, 승인 및 프리-커밋한다. 조건이 끝나면 리더 노드는 프리-커밋된 모든 메시지를 포함하는 공식 블록을 만들고, 모든 팔로워 노드에 승인 요청과 함께 블록 사본을 보낸다. 리더 노드가 상대적 다수의 팔로워 노드로부터 승인 메시지를 수신하면, 블록이 완성되어 사적 서브스페이스 블록 체인에 커밋된다. 블록이 완료되고 사적 서브스페이스 블록 체인에 추가된 직후 새로운 조건이 시작된다. 리더는 여러 조건 동안 서빙할 수도 있고, 또는, 각각의 조건의 시점에서 선출될 수도 있다. 조건 번호는 선거가 있을 때마다 증분된다. 블록은 조건을 종료시키지 않는다. 따라서 리더는 하나의 조건 동안 선출되지만, 계속 블록을 만든다면 다수의 시간/날짜/주 동안 리더로 활동할 수 있다. 재선이 있을 경우, 새로운 리더가 결정될 때까지 각 선거 라운드마다 조건 번호가 증분된다. 새 리더는 이전 리더와 동일할 수 있다. 도 12g의 계속적인 예에서 도시된 바와 같이, 기간 동안 리더 노드는 트랜잭션 Tx 1, Tx 2 및 Tx 3에 대응하는 메시지를 수신하고 프리-커밋했다(팔로워 노드로부터 승인 후). 조건 만료시, 리더 노드 A는 공식 블록을 생성하여, 승인을 위해 팔로워 노드인 노드 B(1204), 노드 C(1206), 노드 D(1208) 및 노드 E(1210)로 발송한다. 리더 A가 상대적 다수의 팔로워 노드로부터 승인 메시지를 수신하면 블록을 사적 서브스페이스 블록 체인에 커밋한다. 그 후, 후속 메시지가 새로운 블록으로 프리-커밋되면서 새로운 조건이 시작된다.
본 명세서의 다른 곳에서 언급된 바와 같이, 노드 허가는 서브스페이스마다이다. 특히, 검증 노드의 수는 서브스페이스마다 상이할 수 있다. 예를 들어, 도 13 및 14에 도시된 바와 같이, 본 발명에 따른 노드의 피어-투-피어 네트워크는 여러 당사자에 대응하는 다수의 검증 노드를 포함할 수 있지만, 노드가 검증 노드로서 허가된 서브스페이스의 관점에서 상이할 수 있다. 도 13에 도시된 바와 같이, 노드(1300)의 당사자 A 클러스터는 검증 노드인 노드 AO(1300a), 노드 A1(1300b), 노드 A2(1300c)를 포함하고; 노드(1302)의 당사자 B 클러스터는 검증 노드인 노드 BO(1302a), 노드 B1(1302b), 노드 B2(1302c)를 포함하고; 노드(1034)의 당사자 C 클러스터는 검증 노드인 노드(CO)(1304a), 노드(C1)(1304b), 노드(C2)(1304c)를 검포함하고, 이들 모두는 시스템 네트워크(1308)에 액세스하고 그들의 유형 및 권한에 기초하여 서로 통신할 수 있다. 그러나, 도 14에 도시된 바와 같이, 노드는 모두 검증 노드이지만, 검증 노드로서 허가된 서브스페이스는 상이하다. 예를 들어, 노드 AO(1300a)는 서브스페이스 A(1408, AB 1400 및 AC 1402)에서만 검증 노드로서 허가되지만 공통 서브스페이스(1406)는 아니다(노드 AO는 공통 서브스페이스에 대한 피어 노드로서 허가될 수 있지만, 따라서 해당 서브스페이스의 데이터에 액세스할 수 있다). 다른 예로서, 노드 B2(1302c)는 B 전용 서브스페이스(1410) 및 공통 서브스페이스(1406)에서 검증 노드로서 허가되지만 AB 서브스페이스(1400) 또는 BC 서브스페이스(1404)는 아니다(노드 B2는 AB 및 BC 서브스페이스에 대한 피어 노드로서 허가될 수 있지만, 따라서, 해당 서브스페이스의 데이터에 액세스할 수 있다). 그러나, 어떤 구현에서도, 서브스페이스에 대해 3 개 미만의 검증 노드는 최적이 아니며, 이는 서브스페이스에서 단지 2 개의 검증 노드를 사용하는 것은 승인 프로세스에서 2 개의 검증 노드가 동일하게 투표하지 않기 때문에 수용할 수 없는 실패 위험을 수반하기 때문이다.
사적 서브스페이스 블록 체인에 블록을 추가하는 것에 관한 상기 논의로부터 알 수 있는 바와 같이, 이러한 분산된 데이터 구조는 시간이 지남에 따라 그리고 사적 서브스페이스 블록 체인의 메시지 및 블록의 수가 증가함에 따라 상대적으로 커질 수 있다. 전통적인 블록 체인 구조와는 달리, 본 명세서에 개시된 사적 서브스페이스 블록 체인은 여기서 개시되는 바와 같이 신규한 프루닝 프로세스(pruning process)를 통해 크기 감소될 수 있고, 이러한 프루닝 프로세스는 사적 서브스페이스 블록 체인의 데이터 무결성을 유지하고, 데이터를 검증하고 합의 프로세스를 유지하는 능력을 보장한다. 사적 서브스페이스 블록 체인을 제거(프루닝)하면 데이터 구조에 필요한 메모리가 크게 줄어들어 하드 디스크 공간이 절약되고 데이터 스토리지와 관련된 효율성이 향상된다. 또한, 사적 서브스페이스 블록 체인을 정리하면 당사자들이 기존의 블록 체인 구조로는 불가능한 데이터 보존 및 폐기 정책을 준수할 수 있다.
본 명세서에 기술된 프루닝 프로세스는 시간 기반 기준과 같은 미리 결정된 기준에 기초하여 트리거된다. 예를 들어, 사적 서브스페이스 블록 체인은 메시지 생성 후 2 년 또는 3 년과 같이 일정 시간이 지나면 메시지 및 블록을 제거할 수 있다. 이 시간은 규제 정책 또는 당사자 자신의 데이터 보존 정책에 따라 결정될 수 있다. 메시지 및 블록을 삭제하기 위해 프루닝 프로세스를 개시하기 위한 미리 결정된 기준은 서브스페이스 단위로 구현될 수 있고, 이는 각각의 서브스페이스가 프루닝에 대한 자체 정책 및 기준을 가질 수 있음을 의미한다. 또한, 다른 당사자는 당사자 노드 및 데이터 저장소에서 유지 관리되는 사적 서브스페이스 블록 체인을 정리하기 위해 다른 정책 및 기준을 활용할 수 있다. 바람직한 실시예에서, 각각의 경우에, 프루닝 정책 및 프루닝 프로세스를 트리거하는 기준은, 예를 들어, 자체 실행 스크립트 또는 사적 서브스페이스 블록 체인에 구현된 스마트 계약에서와 같이 사적 서브스페이스 블록 체인 자체에서 유지된다. 시스템(100)의 코어 모듈(104)은 제거 프로세스를 관리한다. 코어 모듈(104)은 각각의 사적 서브스페이스 블록 체인으로부터 프루닝 정책을 불러들이고 이러한 정책에 따라 프루닝 프로세스를 트리거하는 기준을 모니터링한다. 일단 기준이 충족되면, 코어 모듈(104)은 (블록 내 다양한 서브스페이스의 상태 루트와 같은) 블록 및 메시지의 해시를 보존하면서 이와 동시에 제거(프루닝)될 수 있는 메시지들의 특성을 식별하는 한 세트의 기준 또는 필터에 기초하여 블록 및 메시지를 삭제함으로써, 프루닝 프로세스를 구현한다. 예를 들어, 제거 프로세스는 특정 계약 또는 계약 세트의 블록 및 메시지를 제거하거나 지정된 보존 날짜가 지난 블록 및 메시지를 제거할 수 있다. 정리 프로세스 중에 모든 해시 값이 유지되므로 합의 프로세스에는 영향을 미치지 않는다. 그러나 제거 프로세스로 인해 삭제된 블록 및 메시지에 액세스하려고하면 데이터가 제거되었음을 나타내는 오류가 발생한다.
프루닝 프로세스는 상태 데이터베이스(예를 들어, 머클 트리(Merkle Tree))에서 데이터의 제거를 제공하며, 이는 전술한 바와 같이 데이터 보존 정책 및 공간 절약을 준수할 수 있게 한다. 각 데이터 객체(예: 각 인스턴스화된 스마트 계약)는 해당 상태 데이터베이스에 객체의 형태로 존재한다. 데이터 보유 정책 또는 기타 이유로 객체를 제거할 때 시스템은 최소한 다른 참여자가 다른 데이터 보유 정책을 구현할 수 있는 이유로 트리의 상태 루트가 변경되지 않도록해야 한다. 다른 데이터 보존 정책을 가진 당사자간에 합의를 유지하기 위해, 데이터베이스에서 객체를 제거하여도 트리의 상태 루트를 변경할 수 없다. 합의 유지를 보장하면서 데이터를 제거하기 위해, 본 명세서에 기술된 프루닝 프로세스는 모든 이웃 트리 노드를 루트까지 줄곧 해시할 때(예를 들어, 머클 트리 해싱) 동일한 루트 해시가 마치 객체가 자리에 있었던 것처럼 계산됨을 보장한다. 이와 관련하여, 객체를 제거하기 위해 시스템은 데이터 객체 트리 노드를 유지하지만 객체에서 모든 페이로드를 제거한다. 지속되는 것은 데이터 객체의 주소와 트리 노드의 해시이다. 또한 데이터 객체는 "정리 됨"으로 표시되거나 페이로드가 제거된 것으로 표시된다. 액세스할 때 해당 양식의 데이터 객체는 "제거된" 것으로 식별되므로 시스템이 존재하지 않는 데이터 객체와 제거된 데이터 객체를 구별할 수 있다. 정리 프로세스 후 객체에 보유된 정보(예: 데이터 객체의 주소 및 해시)는 원래 데이터 페이로드의 복구를 허용하지 않는다.
일 실시예에서, 제거된 데이터 페이로드의 복구를 방지하기 위해 데이터 객체의 트리 노드에 추가 정보가 임베딩된다. 특정 상황에서, 단순히 데이터 페이로드를 삭제하면 일치하는 해시가 발견될 때까지 제거된 값을 추측하는 등과 같이, 데이터를 복원하려는 노력을 무력화하려는 시도에 데이터 객체가 빠질 수 있다. 예를 들어 블록 체인이 하나의 계약 유형에만 사용되고 계약의 유일한 필드가 날짜와 값인 경우, 공격자는 매칭 해시가 발견될 때까지 계약 바이트코드를 모든 합리적인 날짜와 값 조합과 매칭시키는 트리 노드를 생성할 수 있다. 이러한 공격으로부터 보호하기 위해, 솔트(즉, 해싱 정보를 위한 추가 입력으로 사용되는 임의의 데이터)가 각각의 사적 서브스페이스 블록 체인의 각 트리 노드에 임베딩되어, 모든 비-무작위 데이터를 알고 있더라도, 무차별 대입 및 무작위 추측 시도를 통해 제거된 데이터를 복구하려는 시도를 더 어렵게 만들 수 있다.
도 5는 시스템(100)의 네트워크에서 노드들 사이의 보안 통신 프로세스의 예시를 제공한다. 바람직한 실시예에서, 시스템(100)은 인증 및 신원 관리를 위해 TLS(Transport Layer Security) 기능을 사용한다. 보안 통신 프로세스에는 양방향 인증 절차가 포함되는데, 연결을 수락하는 노드(수락 노드)는 연결중인 노드(연결 노드)의 자격 증명(예: 보안 인증서)이 승인되었는지 확인하고, 연결 노드는 수락 노드의 자격 증명이 승인되었는지 확인한다. 바람직한 실시예에서, 양방향 프로세스는 수락 노드가 연결 노드의 TLS 인증서가 승인되었음을 확인하고, 연결 노드는 수락 노드의 TLS 인증서가 승인되었는지 확인하는 것을 요구한다. 노드가 성공적으로 인증되고 네트워크상의 다른 노드와 통신하기 전에, 노드의 보안 인증서(예를 들어, TLS 인증서)의 해시 값이 시스템(100)에 등록되어야 한다. 일 실시예에서, 각 노드의 인증서는 피어 레지스트리(512, 514)의 코어 모듈(104)에 의해 등록되며, 각각의 노드는 피어 레지스트리의 사본을 유지한다. 이 등록에는 각 노드의 TLS 인증서가 특정 역할과 연관된 것으로 등록되도록 보안 인증서를 노드 유형(유효성 검증, 피어 또는 서비스)과 연관시켜야 한다. 도 5에 도시된 바와 같이, 시스템 네트워크에서 다른 노드와의 접속을 확립할 때, 제 1 노드(502) 인 노드 A는 먼저 제 2 노드(508)인 노드 B의 TLS 모듈(514)에 통신가능하게 연결된 TLS 모듈(504)의 사용을 통해 TLS 핸드셰이크 절차를 거친다. TLS 인증서의 초기 교환 및 검증은 TLS 프로토콜 사양에 따른다. 핸드셰이크 프로세스의 일부로, TLS 프로토콜 사양 프로세스에 추가로 또는 대안으로, 노드 B는 그 디지털 인증서인, TLS 인증서의 형태로 신원을 제공한다. 노드 A는 TLS 인증서가 피어 레지스트리(512)에 등록되어 있는지 여부를 확인하여 노드 B의 TLS 인증서의 유효성을 검증한다. 추가로 또는 대안으로서, 노드는 서명 기관을 사용하지 않고 자체 서명할 수 있다.
시스템(100)은 TLS 인증서가 피어 레지스트리(예를 들어, "chainperm" 스크립트 또는 계약)에서 승인되는지 여부를 검사하는 2 차 검증 단계를 구현한다. 이는 TLS 인증서 교환이 완료된 후에만 이루어지며 연결이 블록 체인 목적으로 사용되기 전에 수행된다. 도 5를 참조하면, 피어 레지스트리(512)는 권한을 관리하기 위한 전용 스크립트 또는 스마트 계약(예를 들어, "chainperm"스크립트)에 대응한다. 노드 B에 의해 리턴된 TLS 인증서가 피어 레지스트리(512)에 등록되면, 연결 노드인 노드 A는 수락 노드인 노드 B의 TLS 인증서가 승인된 것으로 결정하고, 이에 따라 노드 A(502)는 세션 키에 기초하여 데이터를 암호화하고, 데이터 및 그 TLS 인증서를 네트워크(510)를 통해 노드 B(508)로 전송한다. 노드 B는 TLS 모듈(506)의 사용을 통해, 노드 A에 의해 제공된 TLS 인증서가 피어 레지스트리(514)에 등록외어 있는지 여부를 체크함으로써 노드 A의 TLS 인증서를 검증한다. 노드 A에 의해 되돌아온 TLS 인증서가 피어 레지스트리(514)에 등록되어 있을 경우, 수락 노드인 노드 B는 연결 노드인 노드 A의 TLS 인증서가 승인되었음을 결정하고, 이에 따라 노드 B(508)는 메시지를 해역하여 메시지 내 데이터를 불러들이고 따라서 데이터를 처리한다. 이러한 보안 통신 프로세스는 TLS(Transport Layer Security) 기능이 암호화 뿐만 아니라 시스템의 인증에도 사용되므로 이전 시스템에 비해 상당한 이점을 제공한다.
연결 프로세스를 통해, 노드는 또한 연결된 각 노드의 유형을 결정한다. 위에서 논의한 바와 같이, 각 노드는 시스템에서 특정 유형(유효성, 피어, 서비스)으로 등록되며, 각 노드는 다른 서브스페이스 및 도메인에 대해 다른 노드 유형으로 승인될 수 있다. 이 등록 정보는 전용 피어 레지스트리(예: "chainperm"스크립트)에서 유지된다. 특히, 시스템은 각 노드의 고유 식별자를 유형과 연관시키는 레지스트리를 네트워크의 노드에 유지하고 분배한다. 위에서 설명한 것처럼 각 노드의 고유 식별자는 해당 TLS 인증서에서 파생된다. 연결 노드가 시스템의 다른 노드에 연결될 때, 연결 노드는 시스템에서 다른 노드의 TLS 인증서를 획득하고, TLS 인증서와 레지스트리에 유지된 정보를 기반으로, 연결 노드가 다른 노드의 관련 유형을 결정한다. 결과적으로, 각 노드는 연결된 검증 노드, 연결된 피어 노드 및 연결된 서비스 노드를 결정한다. 각 노드의 유형과, 이에 연결된 노드의 유형은 노드가 시스템에서 메시지를 처리하는 방법에 영향을 미친다. 유효성 검증 노드로 등록된 노드는 자동으로 블록 및 메시지 유효성 검증 프로세스에 참여하지만 관찰자 또는 서비스 노드로부터 받은 유효성 검증 피어-투-피어 메시지는 삭제한다. 또한 합의가 필요한 메시지 및 블록을 수신하는 노드는 유효성 검증 노드로 인증된 노드에만 해당 메시지와 블록을 보낼 것이다.
위에서 언급한 바와 같이, 권한 - 또는 네트워크 내 다른 노드 및 데이터와 관련하여 노드가 취할 수 있는 동작 - 은 서브스페이스로 그룹화되는데, 이는 예를 들어, 일 노드가 일 서브스페이스에 대해 검증 노드일 수 있고 다른 서브스페이스 상에서 피어 노드일 수 있음을 의미한다. 특히, 노드는 합의 투표 및 블록형성 서명 프로세스에 참여하도록 검증할 수 있는 일련의 서브스페이스를 가질 수 있다. 또한, 노드는 블록 및 메시지의 수동적 가져오기에 관여하도록 피어로서 관찰될 수 있는 서브스페이스 세트를 가질 수 있다. 그리고 노드는 노드가 서비스 노드(또는 API 클라이언트)로만 연결되도록 허용되는 특정 서브스페이스 세트를 가질 수 있으며, 따라서 노드는 합의에 참여하거나 블록 및 메시지와 관련하여 능동적 또는 수동적 활동에 관여하지 않는다. 이와 관련하여 노드는 서비스 노드/API 클라이언트로 유효성 검증, 서빙 또는 역할을 수행하도록 허가된 서브스페이스의 블록 및 메시지만을 발원하도록 허가된다. 본 시스템에 따르면, 생성 블록으로 지칭되는 각각의 허가된 블록 체인의 초기 블록은 그 내부의 각 서브스페이스에 대한 초기 검증 노드 세트를 포함한다. 생성 블록은 각 서브스페이스에 대한 피어 노드 및 서비스 노드의 목록을 더 포함할 수 있다. 따라서, 각 서브스페이스에 대한 식별된 노드 세트 및 해당 역할(및 권한 레벨)은 온-체인으로 유지되며 각 서브스페이스에 대해 노드가 수행할 수 있는 조치를 결정하는 데 사용된다. 각 서브스페이스에 대한 식별된 노드 세트 및 해당 역할(및 권한 레벨)은 특정 메시지로 업데이트할 수 있다.
도 6은 서비스 노드와 같은 제한된 액세스 및 권한을 갖는 노드가 신뢰할 수 없는 검증 프로세스에 관여할 수 있는 예시를 제공한다. 서비스 노드(602)는 예를 들어 특정 스마트 계약(608)과 같은 특정 서브스페이스의 데이터에 관한 정보를 요청한다. 먼저, 서비스 노드(602)는 TLS 게이트웨이(604)를 통해 (피어 노드 또는 유혀성 검증 노드일 수 있는) 서버 노드(606)와의 보안 연결을 확립한 후 데이터(604)에 대한 요청을 생성한다. 서버 노드(606)는 서비스 노드(602)로부터의 요청을 해역하고, 먼저 서비스 노드(602)가 요청된 서브스페이스에 대한 임의의 권한 레벨을 가지는 지를 체크(616)함으로써 요청을 처리한다. 권한을 체크하기 위해(616), 서버 노드(606)는 관련 서브스페이스를 갖는 사적 서브스페이스 블록 체인을 불러온 다음, 해당 서브스페이스(608)에 대해 소정의 권한 레벨(피어, 유효성 검증, 서비스)을 가진 노드들의 리스트를 불러들이도록 특정 서브스페이스(608)(가려(예를 들어, 스마트 계약)에 액세스한다. 서비스 노드(602)가 특정 서브스페이스에 대해 서비스/API 권한을 가진 것으로 나열되면, 권한이 승인된다(618). 이와 관련하여, 허가 레벨은 계층구조적임에 주목해야 하며, 유효성 검증 노드는 피어 노드에 비해 더 큰 권한을 가지고, 피어 노드는 서비스/API 노드에 비해 더 큰 권한을 가진다. 그 결과, 더 낮은 레벨의 권한은 더 높은 레벨의 권한에 포함되므로 더 높은 레벨의 권한을 가진 노드는 더 낮은 레벨의 권한이 필요한 요청에 대해 승인된다. 예를 들어, 노드가 특정 서브스페이스에 대한 유효성 검증 노드일 경우, 피어 또는 서비스/API 권한이 필요한 요청에 대해 승인된다. 다른 예로서, 노드가 특정 서브스페이스에 대한 피어 노드 인 경우, 피어 또는 서비스/API 권한이 필요한 요청에 대해 승인된다. 시스템은 필요에 따라 추가 수준의 권한을 지원할 수 있다. 서비스 노드(602)가 특정 서브스페이스의 데이터에 액세스할 수 있는 권한을 가지고 있다고 결정하면, 서버 노드는 서비스 노드(602)가 응답이 유효한 것으로 결정할 수 있는 검증 데이터(622)를 리턴함으로써 응답한다. 예를 들어, 이 검증 데이터는 완전한 블록 헤더(서버 노드(606)로부터의 서명, 메시지 루트 및 상태 루트를 포함함)를 포함하지만 허가되지 않은 서비스 노드에 대한 서브스페이스로부터의 데이터를 배제하며, (가령, 요청된 스마트 계약과 같이) 허가된 서비스 노드(602)에 대한 관련 서브스페이스로부터의 데이터 페이로드 내 데이터와, 그 일부, 그리고 배제된 데이터로부터의 해시 값 또는 인덱스(610)만을 포함한다. 서비스 노드가 블록의 제한된 부분을 반환한다는 사실에도 불구하고, 서비스 노드는 예를 들어, 해시 트리에서 증명을 수행하여 루트(612)를 생성하고 이를 블록 헤더 내 상태 루트에 비교하여 상태 루트에 대한 등가 값을 생성함을 확인함으로써, 검증 데이터를 평가함으로써, 데이터를 검증할 수 있다. 상태 루트가 머클 트리의 루트인 경우, 서비스 노드(602)는 서버 노드(606)에 의해 리턴된 데이터를 확인하기 위해 머클 증명을 수행할 것이다.
도 15는 서브스페이스에 액세스할 수 있는 권한이 있는 노드에만 특정 데이터 및 로직이 액세스할 수 있도록, 상술한 사적 서브스페이스 블록 체인을 사용하여, 네트워크의 참가자가 데이터를 저장하고 로직을 실행할 수 있는 다양한 스마트 계약 및 대응하는 공통 및 사적 서브스페이스의 예시를 제공한다. 서브스페이스(1500)은 당사자 A의 사적이며 보강 스마트 계약(enrichment smart contract)(1506)을 포함한다. 스마트 계약(1506)은 당사자 A의 트레이드 계약으로부터 개인 데이터를 저장한다. 공통 서브스페이스(1504)는 시장 데이터, 권한 레지스트리 및 기본 템플릿 계약을 포함한다. 기본 템플릿 계약(1520)은 금융 계약과 관련된 규칙 및 로직을 포함한다. 권한 레지스트리 계약(1524)은 다양한 사적 서브스페이스 블록 체인에서 당사자의 권한리스트를 유지한다. 시장 데이터 계약(1526)은 스마트 계약의 로직을 실행하기 위한 입력을 제공한다. 양자 서브스페이스(1502)는 양자, 즉, 당사자 A와 당사자 B 사이의 거래를 기록하는 일련의 스마트 계약을 포함한다. 트레이드 계약(1528)은 현재 계약 상태(1522), 특정 거래 조건(1508), 및 이 트레이드에 대한 갱신 세트(1512), 및 트레이드 계약의 규칙/로직 실행을 위한 바이트코드(1518)를 저장한다. 서브스페이스(1502)는 또한 모든 거래 계약을 저장하기 위한 레지스트리 계약(1510), 블록 헤더 내의 타임 스탬프를 추적하기 위한 이벤트 스케줄러(1514), 및 거래 계약으로부터 소유한 지불을 통합하고 네팅된 값을 계산하기 위한 지불 스마트 계약(1516)을 포함한다. 트레이드 계약 조건(1508)의 보강 데이터 부분은 그들 자신의 개인 사적 서브스페이스(1500)에 존재하는 보강 계약(1506)을 통해 양 당사자에 의해 채워진다. 트레이드 계약(1528) 자체는 기본 템플릿(1520)을 사용하여 인스턴스화되고 트레이드(1508)의 특정 조건으로 채워진다. 트레이드 계약(1528)의 로직을 실행할 수 있는 당사자에 대한 권한은 공통 서브스페이스에서 레지스트리 계약(1524)을 통해 관리된다.
도 16a 내지 도 16e는 일 실시예에 따른, 사적 서브스페이스 블록 체인에서 구현된 IRS(Iorate Rate Swap) 계약의 다양한 라이프 사이클 이벤트를 도시한다. 도 16a는 IRS 계약의 구조를 보여준다. IRS를 구현하는 데 사용되는 스마트 계약은 2개의 서브스페이스, 즉, (1) 당사자 사이의 양측 서브스페이스(1600)와, (2) 공통 서브스페이스(1602)에 위치한다. IRS 데이터 계약(1608)은 거래 조건을 포함하고 레지스트리 계약(1606)은 IRS 인스턴스를 유지하며 지불 계약(1610)은 지불 통합 및 네팅(netting)에 사용된다. 공통 서브스페이스(1602)는 IRS의 실행에 사용되는 3 개의 계약을 포함한다. 기본 계약(1612)은 IRS 계약을 위한 템플릿이고, 권한 레지스트리 계약(1614)은 서브스페이스에 걸쳐 당사자의 권한을 관리하고, 참조 데이터 계약(1616)은 공개 참조 데이터를 유지한다. 도 16b는 새로운 IRS를 생성하는 동안 이벤트 시퀀스를 도시한다. 매칭 엔진(1620)은 양측 서브스페이스(1600)에서 서버 노드(1818)와 상호 작용하여, 사적 서브스페이스 블록 체인에 대한 거래의 기록을 개시한다. 서버 노드는 공통 서브스페이스로부터 기본 템플릿 계약(1612)에 액세스하여, 새로운 IRS 계약(1608)을 인스턴스화한다. 서비스 제공자 권한은 레지스트리 계약(1614)에 액세스함으로써 검증된다. 자격 증명을 검증할 때, 새로운 계약은 레지스트리(1606)에 저장되고, 선결제 금액은 지불 계약(1610)으로 전송된다. 새로운 계약은 또한 블록 헤더 타임 스탬프를 추적하기 위해 스케줄러(1604)에 추가된다. 도 16c는 양자 서브스페이스(1600)에서 IRS 계약의 업데이트를 초래하는 이벤트 시퀀스를 도시한다. 클리어링 하우스 노드(1624)는 공통 서브스페이스(1602)의 서버 노드(1622)에 연결된다. 서버 노드는 기준 데이터 접점에 메시지를 전송한다. 양자 서브스페이스 상의 이벤트 스케줄러(1604)는 이 메시지를 관찰하고 IRS 레지스트리 계약(1606)을 통지한다. 그 다음, 레지스트리 계약은 기본 IRS 계약(1608)의 상태를 갱신한다. 도 16d는 시간 기반 트리거 이후의 이벤트 순서를 도시한다. 미리 정의된 타임 스탬프에 도달하면, 이벤트 스케줄러(1604)는 IRS 레지스트리(1606)에 통지함으로써 시간 트리거된 이벤트를 트리거한다. 레지스트리는 기본 IRS 계약(1608)을 통지하고 계약의 지불은 지불 계약(1610)에서 적절하게 업데이트된다. 도 16e는 새로운 양측 서브스페이스의 생성을 보여준다. 클리어링 노드(1624)는 서버 노드(1622)에 메시지를 전송하여 새로운 양자 사적 서브스페이스 블록 체인을 생성한다. 권한 레지스트리 계약(1614)은 권한을 검증하고 새로운 양측 서브스페이스를 생성하며, 또한 양 당사자로부터 관련 노드로 통지를 전송한다.
도 17a 내지 도 17c는 일 실시예에 따른, 에쿼티 스왑 계약(Equity Swap contract)의 생성을 도시한다. 도 17a는 사적 서브스페이스(1700) 및 공통 서브스페이스(1702) 둘 모두에 요구되는 계약을 보여준다. 공통 서브스페이스는 기본 템플릿 계약(1712), 권한 레지스트리(1714) 및 시장 데이터 계약(1716)을 포함한다. 당사자들 간의 양자 서브스페이스(1700)는 에쿼티 스왑 계약(1708), 지불 계약(1710), 레지스트리 계약(1706) 및 이벤트 스케줄러 계약(1704)을 포함한다. 도 17b는 양자 서브스페이스(1700)에서 새로운 에쿼티 스왑 계약을 생성하는 것을 도시한다. 시장 노드(1720)는 서버 노드(1718)와 상호 작용하여 새로운 트레이드 계약의 생성을 개시한다. 서버 노드는 기본 계약(1712)에 정의된 템플릿으로부터 스왑 계약(1708)을 생성하기 위해 블록 체인 메시지를 생성한다. 스왑 계약이 생성되면, 레지스트리 계약(1706) 및 스케줄러 계약(1704)이 업데이트된다. 도 17c는 당사자들 사이의 지불의 일과 후 업데이트 중 이벤트 시퀀스를 도시한다. 시장 데이터 제공자(1724)는 공통 서브스페이스의 서버 노드(1722)에 연결된다. 서버 노드는 메시지를 전송함으로써 시장 데이터 계약(1716)을 업데이트한다. 양자 간 서브스페이스에서의 이벤트 스케줄러 계약(1704)은 레지스트리(1706)로부터 미해결 계약을 페치하는 MTM(Mark to Market) 이벤트를 트리거한다. 미해결 거래 계약(1708)은 시장 데이터 계약(1716)에 최신 금리를 문의하고, MTM을 계산하여, 결국 지불 계약(1710)에 메시지를 전송한다.
도 18은 기준 데이터 제공자(1816), 확인 서비스 제공자(1812) 및 다른 노드가 공통 연결 네트워크(1822)를 통해 상호 작용하는 방법을 도시한다. 구매 측 회사, 딜러 및 다른 서비스 제공자는 네트워크에 대한 상이한 연결을 유지한다. 매칭 및 확인 서비스 제공자(1812), 기준 데이터 제공자(1816) 및 다른 서비스 제공자(1814)는 네트워크에 대한 소프트웨어 정의 네트워킹(SDN) 기반 연결만을 유지한다. 이 세 가지 서비스에는 서비스 레벨 노드들만 있으므로 네트워크에 대한 가시성이 제한적이다. 이러한 노드는 특정 서브스페이스 내에서 제한된 계약 세트에만 액세스할 수 있다. 또한 공통 서브스페이스의 모든 메시지를 수신한다. 딜러 노드(1800)는 허가된 서브스페이스(들)에서 모든 메시지를 수신하고 서브스페이스 블록 체인에 블록을 커밋함을 의미하는 풀 노드(full node)이다. 딜러 노드(1802 및 1804)는 또한 풀 노드이며 네트워크에 대한 SDN 및 클라이언트 연결을 유지한다. 구매 측 노드(1806, 1808 및 1810)는 서비스 노드이며, 허가된 서브스페이스에서 제한된 메시지 세트에 액세스한다.
본 발명은 몇 가지 바람직한 실시예의 관점에서 설명되었지만, 본 발명의 범위에 속하는 많은 변경, 치환 및 등가물이 존재한다는 것을 이해해야 한다. 또한 본 발명의 프로세스 및 장치 모두를 구현하는 대안적인 방법이 있음에 주목해야 한다. 예를 들어, 단계들은 반드시 첨부 도면에 도시된 순서로 일어날 필요는 없으며, 적절하게 재 배열될 수 있다. 따라서, 첨부된 청구 범위는 본 발명의 진정한 사상 및 범위 내에 있는 그러한 모든 변경, 치환 및 등가물을 포함하는 것으로 의도된다.
본 발명은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 본 발명은 컴퓨터 프로그램 제품, 즉 정보 처리 장치, 예를 들어 기계 판독 가능 저장 장치 또는 전파 신호에 유형적으로 구현된 컴퓨터 프로그램으로서, 데이터 처리에 의한 실행 또는 제어를 위한 컴퓨터 프로그램으로서 구현될 수 있다. 장치, 예를 들어, 프로그램 가능 프로세서, 컴퓨터 또는 다수의 컴퓨터. 컴퓨터 프로그램은 컴파일 또는 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 모듈, 구성요소, 서브루틴 또는 기타 장치로 사용하기에 적합한 것을 포함하여 모든 형태로 배포될 수 있다. 컴퓨팅 환경. 컴퓨터 프로그램은 하나의 컴퓨터 또는한 사이트의 여러 컴퓨터에서 실행되거나 여러 사이트에 분산되어 통신 네트워크로 상호 연결되어 배포될 수 있다.
본 발명의 방법 단계는 입력 데이터를 조작하고 출력을 생성함으로써 본 발명의 기능을 수행하기 위해 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 방법 단계들은 또한 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(application specific integrated circuit)과 같은 특수 목적 논리 회로로서 구현될 수 있고, 본 발명의 장치는 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 마이크로 프로세서 및 임의의 고성능 디지털 컴퓨팅 플랫폼의 임의의 하나 이상의 프로세서를 포함한다. 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령을 실행하기 위한 프로세서 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 예를 들어 자기, 자기 광 디스크 또는 광 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치로부터 데이터를 수신하거나 데이터를 전송하기 위해 또는 그 둘 모두로 데이터를 수신하도록 또는 동작 적으로 연결될 것이다. 컴퓨터 프로그램 명령 및 데이터를 구현하기에 적합한 정보 매체는 예를 들어 EPROM, EEPROM, 및 플래시 메모리 장치와 같은 반도체 메모리 장치를 포함하는 모든 형태의 비 휘발성 메모리; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 특수 목적의 논리 회로에 통합될 수 있다.
본 명세서의 맥락에서(특히, 다음의 청구의 맥락에서) 용어 "a"및 "an"및 "the"및 유사한 참조의 사용은 단수 및 복수를 모두 포함하는 것으로 해석되어야 한다. 달리 명시되지 않는 한, 문맥 상 명백히 모순되지 않다. 본원에 기술된 모든 방법은 본원에 달리 지시되거나 문맥 상 명백하게 모순되지 않는한 임의의 적합한 순서로 수행될 수 있다. 본원에 제공된 임의의 및 모든 예 또는 예시적인 언어(예를 들어, 바람직하게는 바람직하게는)의 사용은 단지 본 개시 내용을 추가로 설명하기 위한 것이며 청구 범위의 범주에 제한을 두지 않는다. 본 명세서의 어떤 언어도 본 개시의 실시에 필수적인 것으로 주장되지 않은 요소를 나타내는 것으로 해석되어서는 안된다.
청구된 발명을 실시하기 위해 본 발명자들에게 알려진 최상의 모드를 포함하는 다수의 실시예가 본 명세서에 기술되어있다. 이들 중, 개시된 실시예의 변형은 상기 개시를 읽을 때 당업자에게 명백해질 것이다. 본 발명자들은 당업자가 이러한 변형(예를 들어, 특징 또는 실시예를 변경 또는 결합)을 적절하게 이용할 것을 기대하고, 본 발명은 본 명세서에서 구체적으로 설명된 것과 다르게 실시되도록 의도한다.
따라서, 본 발명은 적용 가능한 법률에 의해 허용되는 바와 같이 여기에 첨부된 청구 범위에 인용된 주제의 모든 수정 및 등가물을 포함한다. 또한, 본 명세서에서 달리 지시되거나 문맥 상 명백하게 모순되지 않는 한, 모든 가능한 변형에서 상기 기재된 요소의 임의의 조합이 본 발명에 포함된다

Claims (20)

  1. 데이터의 사적인 안전한 교환을 가능하게 하고 데이터의 신뢰성을 보장하기 위한 분산 플랫폼을 제공하기 위한 시스템으로서,
    네트워크를 통해 서로 통신 가능하게 연결된 복수의 노드 - 상기 복수의 노드의 각 노드는 공통 서브스페이스에서 교환된 메시지를 수신하기 위한 로직을 가짐;
    복수의 노드 내의 노드들의 서브세트 - 상기 노드들의 서브세트는 도메인에 대응하고, 도메인 내의 사적 서브스페이스 내에서 교환된 메시지에 액세스할 수 있는 권한을 가짐;
    노드들의 서브세트 내의 한 세트의 검증 노드 - 각각의 검증 노드는 상기 사적 서브스페이스 내에서 교환된 메시지에 기초하여 상태 루트를 생성하기 위한 로직을 가짐 - 를 포함하며,
    상기 노드들의 서브세트 내의 노드는 상태 루트에 기초하여 전역 상태 루트 값을 생성하기 위한 추가의 로직을 갖는, 시스템.
  2. 제 1 항에 있어서, 상기 상태 루트는 상기 사적 서브스페이스의 데이터에 대해 수행된 해시 함수의 결과인 해시 값이고, 상기 전역 상태 루트는 상기 상태 루트를 포함하는 한 세트의 데이터에 대해 수행된 해시 함수의 결과인 해시 값인 시스템.
  3. 제 1 항에 있어서, 상기 한 세트의 검증 노드 내의 각 노드는 상기 한 세트의 검증 노드 내의 다른 노드를 수반하는 합의 투표 프로세스에 기초하여 상기 사적 서브스페이스 내에서 교환된 메시지를 검증하기 위한 로직을 갖는 시스템.
  4. 제 1 항에 있어서, 각 노드에 대한 권한 정보는 공통 서브스페이스에서 유지되고, 권한 정보에 대한 변경은 공통 서브스페이스에서 메시지를 교환하고 검증하는 복수의 노드를 통해 관리되는 시스템.
  5. 제 4 항에 있어서, 복수의 노드 내의 각각의 노드는 수신한 메시지를 권한 정보에 기초하여 수신된 메시지에 대해 권한 부여된 다른 노드에 전달하기 위한 로직을 갖는, 시스템.
  6. 제 1 항에 있어서, 복수의 노드 내 각각의 노드는 데이터베이스에 통신 가능하게 연결되고, 복수의 노드 내 각각의 노드는 검증된 데이터베이스 메시지 및 블록 내에 저장되는 시스템.
  7. 제 6 항에 있어서, 각각의 노드는 하나 이상의 기준 세트에 따라 메시지 및 블록을 삭제하기 위한 로직을 더 포함하고, 메시지의 삭제는 서브스페이스 해시 값 및 전역 해시 값을 보존하는, 시스템.
  8. 데이터의 사적인 안전한 교환을 가능하게 하고 데이터의 신뢰성을 보장하기 위한 분산 플랫폼 내의 네트워크 노드로서,
    공통 서브스페이스에서 교환된 메시지를 수신하기 위한 - 네트워크 내 모든 노드는 공통 서브스페이스 내의 메시지에 액세스할 수 있는 권한을 가짐 - , 그리고, 권한 부여된 노드에 관한 사적 서브스페이스에서 교환되는 메시지를 수신하기 위한, 로직;
    사적 서브스페이스 내에서 교환된 메시지에 기초하여 서브스페이스 해시 값을 생성하기 위한 로직; 및
    서브스페이스 해시 값에 기초하여 전역 해시 값을 생성하기 위한 로직을 포함하는 네트워크 노드.
  9. 제 8 항에 있어서, 상기 분산 플랫폼 내의 다른 노드들을 수반하는 합의 투표 프로세스에 기초하여 사적 서브스페이스 내에서 교환된 메시지를 검증하기 위한 로직을 더 포함하는 네트워크 노드.
  10. 제 8 항에 있어서, 상기 분산 플랫폼 내의 각각의 노드에 대한 권한 정보는 상기 공통 서브스페이스에서 유지되고, 상기 권한 정보에 대한 변경은 상기 공통 서브스페이스에서 메시지를 교환 및 검증하는 네트워크 노드를 통해 관리되는 네트워크 노드.
  11. 제 10 항에 있어서, 수신된 메시지를 상기 권한 정보에 기초하여 상기 메시지를 수신하도록 권한 부여된 다른 노드로 전달하기 위한 로직을 더 포함하는 네트워크 노드.
  12. 제 8 항에 있어서, 상기 네트워크 노드는 데이터베이스에 통신 가능하게 연결되며, 상기 네트워크 노드는 검증된 데이터베이스 메시지 및 블록 내에 저장되는 네트워크 노드.
  13. 제 12 항에 있어서, 하나 이상의 기준 세트에 따라 메시지 및 블록을 삭제하기 위한 로직을 더 포함하고, 메시지의 삭제는 상기 서브스페이스 해시 값 및 전역 해시 값을 보존하는 네트워크 노드.
  14. 분산 네트워크 내의 복수의 노드들 사이에서 사적 데이터를 안전하게 교환하고 데이터의 신뢰성을 보장하기 위해, 컴퓨터 메모리에 구현된 분산 데이터 구조에 있어서,
    충분한 액세스 자격 증명을 갖는 복수의 노드 내 노드들에 의해서만 액세스 가능한 콘텐트를 갖는 하나 이상의 사적 서브스페이스 - 각 서브스페이스는 상태 루트를 포함함;
    복수의 노드 내 모든 노드에 액세스 가능한 공통 서브스페이스 - 공통 서브스페이스는 각각의 사적 서브스페이스에 대한 검증 노드를 식별함; 및
    하나 이상의 서브스페이스의 상태 루트에 기초한 전역 상태 루트를 포함하는 헤더를 포함하는, 분산 데이터 구조..
  15. 제 14 항에 있어서, 각각의 사적 서브스페이스의 상태 루트는 사적 서브스페이스의 데이터에 대해 수행된 해시 함수의 결과인 해시 값인, 분산 데이터 구조.
  16. 제 14 항에 있어서, 상기 전역 상태 루트는 하나 이상의 사적 서브스페이스의 상태 루트를 포함하는 한 세트의 데이터에 대해 수행된 해시 함수의 결과인 해시 값인, 분산 데이터 구조.
  17. 제 14 항에 있어서, 상기 공통 서브스페이스는 상기 복수의 노드 내 각 노드의 권한을 관리하기 위한 스크립트를 포함하는, 분산 데이터 구조.
  18. 제 14 항에 있어서, 각각의 사적 서브스페이스는 상기 서브스페이스의 해시 값을 보존하는 삭제 프로세스를 통해 사적 서브스페이스 내의 블록 및 메시지를 삭제하기 위한 정책을 포함하는, 분산 데이터 구조.
  19. 제 14 항에 있어서, 상기 헤더는 상기 분산 데이터 구조를 검증하는데 사용되는 하나 이상의 암호화 서명을 더 포함하는, 분산 데이터 구조.
  20. 제 14 항에 있어서, 상기 헤더는 상기 분산 데이터 구조 내에 포함된 모든 메시지의 함수인 값을 가진 메시지 루트를 더 포함하는 분산 데이터 구조.
KR1020207000108A 2017-06-01 2018-06-01 안전한 액세스 제한 관리를 통해 분산된 블록 체인 데이터 구조 배포 KR20200032086A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762513773P 2017-06-01 2017-06-01
US62/513,773 2017-06-01
PCT/US2018/035672 WO2018223042A1 (en) 2017-06-01 2018-06-01 Distributed privately subspaced blockchain data structures with secure access restriction management

Publications (1)

Publication Number Publication Date
KR20200032086A true KR20200032086A (ko) 2020-03-25

Family

ID=62716138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207000108A KR20200032086A (ko) 2017-06-01 2018-06-01 안전한 액세스 제한 관리를 통해 분산된 블록 체인 데이터 구조 배포

Country Status (8)

Country Link
US (3) US11030331B2 (ko)
EP (1) EP3616358A1 (ko)
JP (1) JP2020522796A (ko)
KR (1) KR20200032086A (ko)
CN (1) CN110870254B (ko)
AU (1) AU2018278351A1 (ko)
CA (1) CA3065319A1 (ko)
WO (1) WO2018223042A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132526A (ko) * 2020-04-27 2021-11-04 주식회사 시큐어링크 계층 블록체인을 이용한 인증 및 정책 관리 방법
KR20220122170A (ko) * 2021-02-26 2022-09-02 인천대학교 산학협력단 IoT 네트워크 분산 보안 관리 시스템

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3065319A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
US10541806B2 (en) * 2017-07-13 2020-01-21 International Business Machines Corporation Authorizing account access via blinded identifiers
US10552556B2 (en) * 2017-08-03 2020-02-04 Liquineq AG System and method for performance testing of scalable distributed network transactional databases
US11461768B2 (en) 2017-08-21 2022-10-04 American Express Travel Related Services Company, Inc. Systems and methods for data file transfer balancing and control on blockchain
US11587050B2 (en) * 2017-09-12 2023-02-21 Northwestern University Blockchain distribution network
US10469248B2 (en) * 2017-10-17 2019-11-05 Amrican Express Travel Related Services Company, Inc. API request and response balancing and control on blockchain
US10567320B2 (en) 2017-10-17 2020-02-18 American Express Travel Related Services Company, Inc. Messaging balancing and control on blockchain
US10911219B2 (en) * 2017-12-01 2021-02-02 International Business Machines Corporation Hierarchical blockchain consensus optimization scheme
US10958628B2 (en) * 2017-12-18 2021-03-23 International Business Machines Corporation Protecting sensitive data in a distributed ledger system using a blockchain channel hierarchy
US10958417B2 (en) * 2017-12-18 2021-03-23 International Business Machines Corporation Protecting sensitive data in a distributed ledger system using blockchain hierarchies
US11544708B2 (en) 2017-12-29 2023-01-03 Ebay Inc. User controlled storage and sharing of personal user information on a blockchain
US10715323B2 (en) 2017-12-29 2020-07-14 Ebay Inc. Traceable key block-chain ledger
US10887254B2 (en) * 2018-02-01 2021-01-05 Red Hat, Inc. Enterprise messaging using blockchain system
GB2572340A (en) * 2018-03-26 2019-10-02 Fetch Ai Ltd Data processing system using directed acyclic graph and method of use thereof
US11263656B1 (en) * 2018-04-17 2022-03-01 Walgreen Co. Coupon clearinghouse with blockchain
US11190338B1 (en) * 2018-06-19 2021-11-30 Facebook, Inc. Selective viewability of data in a blockchain
US11328347B2 (en) * 2018-06-28 2022-05-10 International Business Machines Corporation Rental asset processing for blockchain
GB201810707D0 (en) * 2018-06-29 2018-08-15 Bedrock Capital Ltd Gospel L
CN109063049B (zh) * 2018-07-18 2020-12-08 百度在线网络技术(北京)有限公司 一种区块链网络的账号处理方法、装置、设备及存储介质
US20200042305A1 (en) * 2018-07-31 2020-02-06 Toshiba Tec Kabushiki Kaisha System and method for secure peer deployment of software to networked devices
US20200058055A1 (en) * 2018-08-17 2020-02-20 The George Washington University Blockchain for the common good: digital currency for citizen philanthropy and social entrepreneurship
US10949557B2 (en) * 2018-08-20 2021-03-16 Cisco Technology, Inc. Blockchain-based auditing, instantiation and maintenance of 5G network slices
US11557011B1 (en) 2018-09-06 2023-01-17 Side, Inc. Blockchain-based system and method for document transformation and accountability
CN109167660B (zh) * 2018-09-07 2021-05-14 腾讯科技(深圳)有限公司 选举代表节点设备方法、装置、计算机设备及存储介质
US11861697B1 (en) * 2018-09-14 2024-01-02 United Services Automobile Association (Usaa) Distributed ledger for letter of credit tracking
GB2577751A (en) * 2018-10-05 2020-04-08 Dragon Infosec Ltd A consensus method and framework for a blockchain system
US10608829B1 (en) * 2018-10-08 2020-03-31 International Business Machines Corporation Blockchain timestamp agreement
US11924360B2 (en) 2018-10-08 2024-03-05 Green Market Square Limited Blockchain timestamp agreement
US11301452B2 (en) 2018-10-09 2022-04-12 Ebay, Inc. Storing and verification of derivative work data on blockchain with original work data
US10841213B2 (en) * 2018-10-15 2020-11-17 Moac Blockchain Tech Inc Apparatus and method for communication between chains in a decentralized system
CN112492006B (zh) * 2018-10-31 2023-12-05 创新先进技术有限公司 一种基于区块链的节点管理方法和装置
EP3545664A4 (en) * 2018-11-07 2020-01-01 Alibaba Group Holding Limited MANAGEMENT OF PRIVATE TRANSACTIONS ON BLOCK CHAIN NETWORKS BASED ON WORKFLOWS
US10936741B2 (en) 2018-11-19 2021-03-02 Bank Of America Corporation Management of access to data stored on a distributed ledger
US10778411B1 (en) 2018-11-30 2020-09-15 Sprint Communications Compnay L.P. System for interexchange of state data among disparate block chains
US20200394183A1 (en) * 2019-06-12 2020-12-17 Subramanya R. Jois System and method of executing, confirming and storing a transaction in a serverless decentralized node network
CN109617964B (zh) * 2018-12-12 2021-11-09 成都四方伟业软件股份有限公司 基于区块链的大数据存储方法及装置
CN110046992A (zh) * 2018-12-12 2019-07-23 阿里巴巴集团控股有限公司 一种基于区块链智能合约的交易哈希获取方法及系统
BR112019015423A8 (pt) * 2018-12-13 2023-03-28 Advanced New Technologies Co Ltd Método implementado por computador para proteger dados sensíveis armazenados em um protocolo de confiança mantido por uma rede de protocolo de confiança, meio de armazenamento não transitório, legível por computador e sistema
CN109784882A (zh) * 2018-12-14 2019-05-21 深圳壹账通智能科技有限公司 联盟链信息发布控制方法及终端设备
US11282076B2 (en) * 2018-12-14 2022-03-22 American Express Travel Related Services Company, Inc. Transaction account data maintenance using blockchain
US10979213B2 (en) * 2018-12-19 2021-04-13 Verizon Media Inc. Blockchain compression using summary and padding blocks
US11032064B2 (en) 2018-12-19 2021-06-08 Verizon Media Inc. Blockchain ledger growth management
SG11201906838QA (en) * 2018-12-19 2019-08-27 Alibaba Group Holding Ltd Data isolation in a blockchain network
CN110032568B (zh) * 2018-12-20 2020-05-12 阿里巴巴集团控股有限公司 数据结构的读取及更新方法、装置、电子设备
CN111782668A (zh) * 2018-12-20 2020-10-16 阿里巴巴集团控股有限公司 数据结构的读取及更新方法、装置、电子设备
WO2020130331A1 (ko) * 2018-12-21 2020-06-25 (주)소프트제국 블록체인에서 노드들간 블록 및 전자 문서를 공유 및 검증하는 방법
CN110264187B (zh) 2019-01-23 2021-06-04 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机设备及存储介质
CA3058225C (en) * 2019-03-04 2022-04-12 Alibaba Group Holding Limited Updating blockchain world state merkle patricia trie subtree
CN110008739B (zh) * 2019-03-05 2023-10-03 深圳前海微众银行股份有限公司 一种基于群组的区块链系统、群组管理方法及装置
US11593321B2 (en) * 2019-03-06 2023-02-28 0Chain Corp. Systems and methods of self-administered protocols on a blockchain platform
CN109978347B (zh) * 2019-03-07 2023-04-07 国网冀北电力有限公司技能培训中心 基于区块链技术的含分布式发电的社区能源自治方法
US11503036B2 (en) * 2019-03-13 2022-11-15 Nec Corporation Methods of electing leader nodes in a blockchain network using a role-based consensus protocol
US11568064B2 (en) 2019-03-18 2023-01-31 Jio Platforms Limited Systems and methods for virtual distributed ledger networks
WO2019101246A2 (en) 2019-03-21 2019-05-31 Alibaba Group Holding Limited Data isolation in blockchain networks
AU2019204708B2 (en) 2019-03-27 2020-08-20 Advanced New Technologies Co., Ltd. Retrieving public data for blockchain networks using highly available trusted execution environments
WO2019179541A2 (en) 2019-03-27 2019-09-26 Alibaba Group Holding Limited Improving integrity of communications between blockchain networks and external data sources
CA3055108C (en) * 2019-03-28 2021-10-05 Alibaba Group Holding Limited System and method for parallel-processing blockchain transactions
SG11201908983WA (en) 2019-03-29 2019-10-30 Alibaba Group Holding Ltd Retrieving access data for blockchain networks using highly available trusted execution environments
AU2020253473A1 (en) * 2019-04-03 2021-11-04 Geoquest Systems B.V. Local/hybrid blockchain for oil and gas operations integrity
BE1027181B1 (de) * 2019-04-09 2020-11-09 Phoenix Contact Gmbh & Co Verfahren und System zum sicheren Bereitstellen von Daten eines Gegenstands über dessen gesamten Lebenszyklus
CN113348656A (zh) * 2019-04-29 2021-09-03 互达控股有限公司 基于多个节点的网络交易验证方法及其系统和存储介质
EP3635941A4 (en) * 2019-04-30 2020-04-29 Alibaba Group Holding Limited METHOD AND DEVICES FOR MANAGING ACCESS TO ACCOUNTS IN A BLOCKCHAIN SYSTEM
US11106812B2 (en) 2019-05-09 2021-08-31 At&T Intellectual Property I, L.P. Controlling access to datasets described in a cryptographically signed record
US11676143B2 (en) * 2019-05-16 2023-06-13 Coinbase, Inc. Systems and methods for blockchain transaction management
US11621960B2 (en) 2019-05-28 2023-04-04 Honeywell International Inc. System and method to update aircraft maintenance records using blockchain technology
US10778452B2 (en) * 2019-06-03 2020-09-15 Alibaba Group Holding Limited Blockchain ledger authentication
US11249985B2 (en) 2019-06-15 2022-02-15 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11249947B2 (en) 2019-06-15 2022-02-15 Facebook, Inc. Distributed digital ledger transaction network for flexible, lazy deletion of data stored within an authenticated data structure
US11405204B2 (en) 2019-06-15 2022-08-02 Meta Platforms, Inc Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US11126593B2 (en) 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
EP4071649A1 (en) * 2019-06-15 2022-10-12 Meta Platforms, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
SG11202001888UA (en) 2019-06-21 2020-03-30 Alibaba Group Holding Ltd Methods and systems for automatic blockchain deployment based on cloud platform
CN112150141A (zh) * 2019-06-26 2020-12-29 京东数字科技控股有限公司 一种区块链共识方法、装置和系统
JP7354620B2 (ja) * 2019-06-28 2023-10-03 株式会社リコー サービスシステム、情報登録方法
SG11202003808PA (en) 2019-06-28 2020-05-28 Advanced New Technologies Co Ltd System and method for data processing
SG11202001989WA (en) 2019-07-11 2020-04-29 Alibaba Group Holding Ltd Shared blockchain data storage
CN111108478B (zh) * 2019-07-11 2023-11-21 创新先进技术有限公司 一种用于通信和共享区块链数据的方法、系统、和装置
US11880383B2 (en) * 2019-07-15 2024-01-23 Sap Se Federated data management between partner systems
US11201747B2 (en) * 2019-07-15 2021-12-14 Sap Se Federated data management between partner systems
US10795874B2 (en) * 2019-07-29 2020-10-06 Alibaba Group Holding Limited Creating index in blockchain-type ledger
CN111352935B (zh) * 2019-07-29 2021-05-18 创新先进技术有限公司 一种块链式账本中的索引创建方法、装置及设备
CN112347184A (zh) * 2019-08-07 2021-02-09 华为技术有限公司 分叉处理方法以及区块链节点
JPWO2021039453A1 (ko) * 2019-08-29 2021-03-04
EP4029218A4 (en) * 2019-09-11 2022-09-21 Visa International Service Association BLOCKCHAIN FRAGMENTATION WITH ADJUSTABLE QUORUMS
SG11202002712UA (en) * 2019-09-11 2020-04-29 Alibaba Group Holding Ltd Shared blockchain data storage based on error correction coding in trusted execution environments
US11144537B2 (en) 2019-09-16 2021-10-12 Bank Of America Corporation System for data consensus validation in an electronic distributed server network using a screening node
US11403283B2 (en) * 2019-10-15 2022-08-02 Sony Corporation Distributed ledger based generation of electronic documents
CN111026770B (zh) * 2019-10-29 2023-08-04 京东科技信息技术有限公司 区块链节点的账本处理方法、装置、服务器及存储介质
SG11202010851WA (en) 2019-11-19 2020-11-27 Alipay Hangzhou Inf Tech Co Ltd System and method for consensus management
AU2020395154A1 (en) * 2019-12-02 2022-07-07 Schvey, Inc. D/B/A Axoni Cross-partition calls in partitioned, tamper-evident data stores
CN111177259A (zh) * 2019-12-13 2020-05-19 杭州复杂美科技有限公司 平行链交易加密方法、设备和存储介质
KR20210089041A (ko) 2020-01-07 2021-07-15 삼성전자주식회사 불법 컨텐츠를 차단하는 블록체인 기반 p2p 컨텐츠 공유 장치
CN111209341B (zh) * 2020-01-07 2023-03-14 北京众享比特科技有限公司 区块链的数据存储方法、装置、设备及介质
US11416933B2 (en) * 2020-01-07 2022-08-16 Bank Of America Corporation Event management and validation platform using a recursive hierarchic blockchain
US20210250219A1 (en) * 2020-02-07 2021-08-12 Bank Of America Corporation System for integration and interoperability between disparate distributed server technologies
CN111339191B (zh) * 2020-02-20 2023-05-26 百度在线网络技术(北京)有限公司 一种区块链的数据存储方法、装置、设备和介质
CN111327699B (zh) * 2020-02-26 2021-07-09 吉林大学 双领导者心跳加权溯源共识方法
US11641364B2 (en) * 2020-03-03 2023-05-02 International Business Machines Corporation Cross-domain state synchronization
CN111416703A (zh) * 2020-03-16 2020-07-14 北京有链科技有限公司 一种区块链跨越式和跳跃式快速同步方法及系统
CN111538757B (zh) * 2020-04-13 2022-02-11 支付宝(杭州)信息技术有限公司 数据存储方法、查询方法、装置、服务器及介质
US20230198747A1 (en) * 2020-04-15 2023-06-22 Telefonaktiebolaget Lm Ericsson (Publ) Policy-aware distributed ledger networks
US20220083537A1 (en) * 2020-09-14 2022-03-17 International Business Machines Corporation Ensuring secure provisioning of blockchain infrastructure
US20220109577A1 (en) * 2020-10-05 2022-04-07 Thales DIS CPL USA, Inc Method for verifying the state of a distributed ledger and distributed ledger
JP7163351B2 (ja) * 2020-11-05 2022-10-31 株式会社日立製作所 電子取引システム、電子取引システムのデータ秘匿化方法
CN112332980B (zh) * 2020-11-13 2023-04-14 浙江数秦科技有限公司 一种数字证书签发和验签方法、设备及存储介质
CN112417176B (zh) * 2020-12-09 2024-04-02 交通银行股份有限公司 基于图特征的企业间隐性关联关系挖掘方法、设备及介质
CN115114603A (zh) * 2021-03-17 2022-09-27 中国移动通信集团福建有限公司 一种基站设备数据管理方法、装置及电子设备
EP4064065A1 (en) * 2021-03-23 2022-09-28 Siemens Aktiengesellschaft Data retention in a decentralized distributed database
CN113487400B (zh) * 2021-06-04 2022-10-11 长春工业大学 基于诚实度双向选择的金融授信共识方法
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
US11979484B2 (en) * 2021-07-21 2024-05-07 Bank Of America Corporation System for electronic data encryption and decryption using a consensus draft process
US20230029053A1 (en) * 2021-07-22 2023-01-26 Oracle International Corporation Decentralized identity with user biometrics
CN113904788A (zh) * 2021-08-12 2022-01-07 云南电网有限责任公司信息中心 一种基于区块链的网络帧安全验证方法及sdn交换机
US20230134759A1 (en) * 2021-11-01 2023-05-04 Ic Manage Inc Heliotropic work from home time zone expedition server coordinates Evolving FileTile (EFT) updates among local computation centers (LCC) by selectively relaying indicia As Soon After Commitment (ASAC) into version control to cause inter-center EFT demands to be queued earlier than local application start
US20230195722A1 (en) * 2021-12-21 2023-06-22 Omnibek Ip Holding Llc Blockchain manager system
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
CN115334172B (zh) * 2022-07-20 2024-04-19 新疆丝路智汇信息科技有限公司 一种区块链协议处理系统及其处理方法
CN115941209B (zh) * 2023-02-07 2023-05-05 湖南湘江树图信息科技创新中心有限公司 区块链去中心化可信数据采集方法及系统

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9853819B2 (en) * 2013-08-05 2017-12-26 Guardtime Ip Holdings Ltd. Blockchain-supported, node ID-augmented digital record signature method
US9338148B2 (en) * 2013-11-05 2016-05-10 Verizon Patent And Licensing Inc. Secure distributed information and password management
US10454970B2 (en) * 2014-06-30 2019-10-22 Vescel, Llc Authorization of access to a data resource in addition to specific actions to be performed on the data resource based on an authorized context enforced by a use policy
US10396992B2 (en) * 2014-06-30 2019-08-27 Vescel, Llc Authentication of a user and/or a device through parallel synchronous update of immutable hash histories
US9608829B2 (en) * 2014-07-25 2017-03-28 Blockchain Technologies Corporation System and method for creating a multi-branched blockchain with configurable protocol rules
US10230526B2 (en) * 2014-12-31 2019-03-12 William Manning Out-of-band validation of domain name system records
EP3872666A1 (fr) 2015-01-30 2021-09-01 Enrico Maim Systèmes et procédés pour la gestion d'engagements en réseau d'entités sécurisées
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
US10248678B2 (en) * 2015-08-25 2019-04-02 International Business Machines Corporation Enabling placement control for consistent hashing-based object stores
JP6951329B2 (ja) 2015-10-14 2021-10-20 ケンブリッジ ブロックチェーン,エルエルシー デジタルアイデンティティを管理するためのシステム及び方法
US10404469B2 (en) * 2016-04-08 2019-09-03 Chicago Mercantile Exchange Inc. Bilateral assertion model and ledger implementation thereof
US10764067B2 (en) * 2016-05-23 2020-09-01 Pomian & Corella, Llc Operation of a certificate authority on a distributed ledger
CN106157142A (zh) * 2016-06-30 2016-11-23 惠众商务顾问(北京)有限公司 一种区块链共识及同步方法、系统和装置
EP3526721A1 (en) * 2016-10-14 2019-08-21 Nokia Technologies Oy Method, device and system for validating sensitive user data transactions within trusted circle
US10862959B2 (en) * 2016-11-28 2020-12-08 Keir Finlow-Bates Consensus system and method for adding data to a blockchain
CN106778343A (zh) 2016-12-12 2017-05-31 武汉优聘科技有限公司 一种基于区块链的涉及隐私数据的数据共享方法
CN106796688B (zh) 2016-12-26 2020-12-18 深圳前海达闼云端智能科技有限公司 区块链的权限控制方法、装置、系统及节点设备
CN106651332B (zh) * 2016-12-29 2020-11-06 成都质数斯达克科技有限公司 一种区块链中新区块的生成方法及区块链
CN106796685A (zh) * 2016-12-30 2017-05-31 深圳前海达闼云端智能科技有限公司 区块链权限控制方法、装置及节点设备
US10740733B2 (en) * 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
CA3065319A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
US20190043025A1 (en) * 2017-08-02 2019-02-07 Intuit Inc. Genetic algorithms in blockchain space
US10938567B2 (en) * 2017-09-12 2021-03-02 Kadena Llc Parallel-chain architecture for blockchain systems
US10460283B2 (en) * 2017-09-13 2019-10-29 Vijay Madisetti Smart contract optimization for multiparty service or product ordering system
US10958418B2 (en) * 2017-10-10 2021-03-23 Chromata Corporation System and method for a blockchain network with heterogeneous privacy
CN111295655B (zh) 2017-10-27 2021-08-31 数字资产(瑞士)股份有限公司 用于一个或多个进程的分布式隐私保护共享执行的计算机系统和方法
US10958628B2 (en) * 2017-12-18 2021-03-23 International Business Machines Corporation Protecting sensitive data in a distributed ledger system using a blockchain channel hierarchy
CN108418795B (zh) 2018-01-30 2019-05-28 百度在线网络技术(北京)有限公司 跨区块链的数据访问方法、装置、系统及计算机可读介质
CN111787072B (zh) 2018-04-03 2023-02-28 创新先进技术有限公司 跨区块链的交互方法及装置、系统、电子设备
US11032260B2 (en) * 2018-05-10 2021-06-08 Microsoft Technology Licensing, Llc Front-end user interface for confidential transactions
US10902140B2 (en) * 2018-06-18 2021-01-26 CBRE, Inc. Services platform for managing a verifiable permissioned ledger in a distributed database management system
CN111131345B (zh) * 2018-10-30 2022-04-15 伊姆西Ip控股有限责任公司 多云计算环境中的分散式节点查找器
US10708046B1 (en) * 2018-11-08 2020-07-07 Nxgen Partners Ip, Llc Quantum resistant blockchain with multi-dimensional quantum key distribution
US11283616B2 (en) * 2019-04-03 2022-03-22 Hong Kong Baptist University Method for index-based and integrity-assured search in a blockchain
US11362832B2 (en) * 2019-04-06 2022-06-14 Prasaga, LLC Distributed proof-of-work for sharded or parallel blockchains
US10956444B2 (en) * 2019-07-31 2021-03-23 Advanced New Technologies Co., Ltd. Block chain state data synchronization method, apparatus, and electronic device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132526A (ko) * 2020-04-27 2021-11-04 주식회사 시큐어링크 계층 블록체인을 이용한 인증 및 정책 관리 방법
KR20220122170A (ko) * 2021-02-26 2022-09-02 인천대학교 산학협력단 IoT 네트워크 분산 보안 관리 시스템

Also Published As

Publication number Publication date
US20240119166A1 (en) 2024-04-11
US11829494B2 (en) 2023-11-28
AU2018278351A1 (en) 2020-01-23
CN110870254A (zh) 2020-03-06
US20210350010A1 (en) 2021-11-11
EP3616358A1 (en) 2020-03-04
WO2018223042A1 (en) 2018-12-06
CA3065319A1 (en) 2018-12-06
US20180349621A1 (en) 2018-12-06
JP2020522796A (ja) 2020-07-30
CN110870254B (zh) 2023-03-31
US11030331B2 (en) 2021-06-08

Similar Documents

Publication Publication Date Title
US20240119166A1 (en) Distributed privately subspaced blockchain data structures with secure access restriction management
US11025435B2 (en) System and method for blockchain-based cross-entity authentication
US11533164B2 (en) System and method for blockchain-based cross-entity authentication
US10708060B2 (en) System and method for blockchain-based notification
EP3688929B1 (en) System and method for providing privacy and security protection in blockchain-based private transactions
CN108429759B (zh) 去中心化存储安全实现方法
CN109313763B (zh) 层次型网络系统以及用于层次型网络系统的节点
US20200067697A1 (en) Method for operating a blockchain
Baird et al. Hedera: A governing council & public hashgraph network
WO2021000419A1 (en) System and method for blockchain-based cross-entity authentication
CN112311735B (zh) 可信认证方法,网络设备、系统及存储介质
JP2020523838A (ja) ネットワークの障害時におけるオフ・ブロックチェーン・チャネルに関して生じるセキュリティ関連脆弱性に対処するためのシステム及び方法
JP2021512569A (ja) ブロックチェーンのデータ処理方法、管理側、クライアント側、変換装置及び媒体
KR102012400B1 (ko) 블록체인 기반 IoT 인증 시스템
US11265162B2 (en) System and method for providing privacy and security protection in blockchain-based private transactions
KR20200063034A (ko) 블록체인 기반 IoT 인증 시스템
Gencer On scalability of blockchain technologies
Fathalla et al. Redactable Distributed Ledgers: A Survey
CN117407437A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application