KR20200032086A - Distributed blockchain data structure distribution through secure access restriction management - Google Patents

Distributed blockchain data structure distribution through secure access restriction management 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
Korean (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 KR20200032086A publication Critical patent/KR20200032086A/en

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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Finance (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

암호화된 메시지를 노드들 간에 교환하도록 피어-투-피어 네트워크 내에서 데이터 구조를 분배하기 위한 암호화 플랫폼을 제공하기 위한 시스템이 여기에 개시된다. 이 시스템은 사적이지만 전역 상태 루트를 사용하여 확인할 수 있는 서브스페이스를 포함하는 사적 서브스페이스 블록 체인의 생성 및 관리를 제공한다. 전역 상태 루트는 해당 서브스페이스 내 데이터를 기반으로 역시 생성된 서브스페이스 루트를 기반으로 업데이트된다.Disclosed herein is a system for providing an encryption platform for distributing data structures within a peer-to-peer network to exchange encrypted messages between nodes. The system provides the creation and management of a private subspace blockchain, including subspaces that are private but can be identified using the global state root. The global state route is updated based on the subspace route that is also created based on the data in the corresponding subspace.

Figure P1020207000108
Figure P1020207000108

Description

안전한 액세스 제한 관리를 통해 분산된 블록 체인 데이터 구조 배포Distributed blockchain data structure distribution through secure access restriction management

관련 출원Related applications

본 출원은 2017년 6월 1일에 출원된 미국특허가출원 제62/513,773호에 관한 우선권을 주장하며, 이는 법이 허용하는 한도 내에서 본 명세서에 포함된다.This application claims priority to U.S. Patent Application No. 62 / 513,773 filed on June 1, 2017, which is incorporated herein within the limits permitted by law.

발명의 분야Field of invention

본 발명은 일반적으로 사적 서브스페이스 블록 체인 분산 데이터 구조, 및 이를 관리하기 위한 시스템 및 방법에 관한 것이다. 보다 구체적으로, 본 발명은 다수의 서브스페이스를 갖는 신규한 허가 체인 데이터 구조와, 이러한 체인 데이터 구조 내의 서브스페이스에 대한 허가 및 보안 액세스를 또한 제공하는 통합 검증 메커니즘, 및 그러한 허가 체인 데이터 구조를 관리하기 위한 시스템 및 방법에 관한 것이다.The present invention relates generally to private subspace blockchain distributed data structures and systems and methods for managing them. More specifically, the present invention manages a new authorization chain data structure with multiple subspaces, an integrated verification mechanism that also provides authorization and secure access to subspaces within this chain data structure, and management of such authorization chain data structures. It relates to a system and method for.

분산 데이터베이스는 다수의 상이한 사용자들에 걸쳐 공유 데이터를 분배하기 위한 분산적 수단(decentralized means)을 제공할 수 있으며, 이들 사용자 각각은 서로 원격으로 위치된 상태에서 공유 데이터에 액세스할 필요가 있을 수 있다. 이러한 공유 데이터를 신뢰할 수 있으려면, 분산 데이터베이스에서 데이터의 무결성을 확인하는 방법이 있어야 한다. 분산 데이터베이스의 한 형태는 "블록체인"(또는 "블록 체인")이며, 이는 "블록"이라고 불리는, 시간 순서대로 연결된 일련의 보다 작은 데이터 구조 또는 레코드로 구성되는 일 유형의 데이터 구조이고, 각각의 블록은 체인 내 이전 블록에 대한 링크를 지닌다. 각 블록은 블록 체인에서 이전 블록의 해시 값을 포함하며, 이는 두 블록을 연결하는 수단으로 기능한다. 해시 값을 사용하면 데이터의 검증 가능성을 보장하고 블록 체인 내의 데이터 수정을 방지할 수 있다. 블록 체인의 무결성은, 블록 체인의 중앙에 위치한 "공식" 복사본이 필요하지 않다는 점에서, 그 분산적 특성을 통해 증가한다. 대신에, 블록 체인의 검증가능한 다수의 사본이 상이한 사용자와 함께 저장될 수 있으며, 이에 의해 블록 체인의 무단 수정을 방지할 수 있다.A distributed database can provide decentralized means for distributing shared data across multiple different users, each of which may need to access shared data while remotely located from each other. . To be able to trust this shared data, there must be a way to verify the integrity of the data in a distributed database. A form of distributed database is a "blockchain" (or "blockchain"), which is a type of data structure consisting of a series of smaller data structures or records linked in chronological order, called a "block", each of which is The block has a link to the previous block in the chain. Each block contains the hash value of the previous block in the blockchain, which serves as a means of connecting the two blocks. The use of hash values ensures the verifiability of the data and prevents data modification within the blockchain. The integrity of the blockchain increases through its decentralized nature, in that it does not require a "official" copy located at the center of the blockchain. Instead, multiple verifiable copies of the blockchain can be stored with different users, thereby preventing unauthorized modification of the blockchain.

전통적인 블록 체인과 마찬가지로 이와 같이 분산된 탈중앙적 데이터 구조의 한가지 단점은 이러한 데이터 구조 내에 저장된 데이터가 데이터 구조의 사본의 각 보유자에게 반드시 액세스 가능해야 한다는 점이다. 분산 데이터 구조의 사본의 각 보유자에 대한 데이터의 접근성은 사용자가 저장된 데이터의 무결성을 검증할 수 있도록 하기 위해, 그리고 분산 데이터 구조의 특정 사본 내에 저장된 데이터가 허가없이 변조 및 수정되지 않았음을 보장하기 위해, 필요하다. 결과적으로, 전통적인 블록 체인과 마찬가지로, 이러한 분산 데이터 구조는 사용자가 블록 체인 내에 데이터를 사적으로 저장할 수 없도록 한다. 이러한 분산 데이터 구조를 공유하고 사용하는 기존 시스템은 승인 또는 허가된 액세스가 필요하지 않으며 대신에, 액세스 제어가 없는 이점이 있다. 왜냐하면, 추가 사용자가 있을 경우 분산 데이터 구조의 사본의 수가 통상적으로 증가하고, 따라서, 레코드의 변조 가능성이 감소하기 때문이다. 이러한 측면에서, 이러한 전통적인 시스템은 일반적으로 시스템에서 노드의 신원 및 관련 권한을 검증하는 수단을 갖지 않는다.As with traditional blockchains, one disadvantage of this decentralized decentralized data structure is that the data stored within these data structures must be accessible to each holder of a copy of the data structure. Accessibility of data to each holder of a copy of the distributed data structure is intended to enable users to verify the integrity of the stored data, and to ensure that data stored within a specific copy of the distributed data structure has not been tampered with or modified. For, it is necessary. As a result, like traditional blockchains, this distributed data structure prevents users from privately storing data within the blockchain. Existing systems that share and use this distributed data structure do not require authorized or authorized access, and instead have the advantage of no access control. This is because the number of copies of the distributed data structure typically increases when there are additional users, and thus, the possibility of tampering with records decreases. In this respect, these traditional systems generally do not have a means to verify the identity and associated authority of the nodes in the system.

보안 액세스 제한을 허용할 수 있는 신규 데이터 구조의 생성 및 분산 관리를 위한 시스템 및 방법이 여기에 개시된다. 신규한 데이터 구조 및 관련 기능은, 체인을 함께 형성하는 링크된 블록을 포함하는 분산 데이터베이스라는 점에서, 그리고, 각 블록은 2개의 블록을 함께 링크하는 체인 내 과거 블록의 해시를 포함한다는 점에서, 블록 체인 원리를 기반으로 한다. 그러나 이러한 새로운 데이터 구조는 각 블록의 데이터 세트 내에 사적 데이터 서브스페이스를 허용하는 중요하고 새로운 특징 및 기능을 포함한다는 점에서, 그리고, 이러한 서브스페이스는 이러한 서브스페이스에 액세스할 수 있는 권한이 있는 노드만 액세스할 수 있고, 블록의 사본은 일반적으로 권한 부여된 노드의 서브스페이스들만을 노드가 수용하도록 하는 방식으로 전파된다는 점에서, 종래의 블록체인 구조와 다르다. 용이한 참조를 위해, 본 명세서에 개시된 신규한 데이터 구조는 "사적 서브스페이스 블록 체인"(privately subspaced blockchains)으로 지칭되며, 이들 데이터 구조는 하기에 상세히 기술되는 바와 같이 전통적인 블록 체인과 상당히 다르다는 것을 인식하여야 한다.Disclosed herein are systems and methods for the creation and distribution management of new data structures that can allow for secure access restrictions. The novel data structure and associated functions are distributed databases that contain linked blocks that together form a chain, and in that each block contains a hash of past blocks in the chain that link two blocks together, It is based on the blockchain principle. However, this new data structure includes important new features and functions that allow private data subspaces within each block's data set, and these subspaces are only nodes that are authorized to access these subspaces. It is different from the conventional blockchain structure in that it is accessible and the copy of the block is propagated in such a way that the node generally only accepts the subspaces of the authorized node. For ease of reference, the novel data structures disclosed herein are referred to as “privately subspaced blockchains,” and recognize that these data structures differ significantly from traditional blockchains, as described in detail below. shall.

본 명세서에 개시된 바와 같이, 신규한 데이터 구조 및 그 관리는 다수의 상이한 노드가 데이터 구조의 일부의 사본을 유지하면서 동시에 데이터 분리를 이용한 데이터 공유를 제공하도록, 데이터 페이로드(서브스페이스) 무결성의 분산된 합의 기반 검증의 이점을 제공한다. 특히, 데이터 구조에서의 공통의 기준 데이터는 모든 허가된 노드에 이용 가능하지만, (본 명세서에서 데이터 구조 내의 "사적 서브스페이스"로 지칭되는) 데이터 페이로드의 일부는 충분한 액세스 자격 증명을 갖는 노드에만 이용 가능하다. 본 시스템 및 방법은 또한 충분한 권한을 갖는 노드에 의해 필요에 따라 읽기/쓰기 액세스를 허용하는 데이터가 허가되도록 제공한다. 본 발명의 시스템 및 방법은 노드들 사이에서 이들 데이터 구조의 안전하고 승인된 전송을 위한, 그리고, 이러한 전송을 용이하게 하도록 노드들 간의 상호연결을 프로비저닝하기 위한 신규한 수단을 제공하여, 특정 데이터 구조에 관한 노드들 사이의 통신이 데이터 구조의 다른 사본을 수반하는 다른 노드들 사이의 통신 처리를 위한 시스템 기능 또는 능력에 영향을 미치지 않게 한다. 본 발명의 시스템 및 방법은 격리를 보장하는 데이터 구조에 대한 개선된 합의 메커니즘을 추가로 제공하는데, 이는 한 쌍의 노드 사이의 합의 실패가 다른 쌍의 노드 사이의 연동형 실패로 이어지지 않음을 의미한다. 본 발명의 시스템 및 방법은 연속성을 보장하는 데이터 구조에 대한 개선된 합의 메커니즘을 추가로 제공하는데, 이는 시스템이 계속 적절하게 처리하고 도달할 수 없는 처리 노드의 경우에도 데이터 구조 무결성이 유지됨을 의미한다. 본 발명의 시스템 및 방법은 추가 노드의 배치가 기존 노드에 대한 상당한 업데이트를 요구하지 않도록 노드들 간의 충돌 관리 개선과 확장성 개선을 추가로 제공한다. 또한, 본 발명의 시스템 및 방법은 데이터를 확인할 수 있는 방식으로 외부 데이터베이스와의 개선된 동기화를 추가로 제공한다.As disclosed herein, the novel data structure and its management allows the distribution of data payload (subspace) integrity so that multiple different nodes provide data sharing using data separation while maintaining a copy of a portion of the data structure. Provides the benefits of consensus-based verification. In particular, common reference data in a data structure is available to all authorized nodes, but a portion of the data payload (referred to herein as a “private subspace” in the data structure) is only available to nodes with sufficient access credentials. It is available. The present system and method also provides that data allowing read / write access is allowed as needed by a node having sufficient authority. The systems and methods of the present invention provide novel means for the secure and authorized transmission of these data structures between nodes, and for provisioning interconnections between nodes to facilitate such transmission, thereby providing specific data structures. The communication between nodes does not affect the system function or ability for processing communications between different nodes involving different copies of the data structure. The systems and methods of the present invention further provide an improved consensus mechanism for data structures that ensure isolation, which means that consensus failure between one pair of nodes does not lead to interlocked failure between the other pair of nodes. . The systems and methods of the present invention further provide an improved consensus mechanism for data structures that ensure continuity, which means that the data structure integrity is maintained even in the case of processing nodes that the system continues to properly process and cannot reach. . The system and method of the present invention further provide improved collision management and improved scalability between nodes so that deployment of additional nodes does not require significant updates to existing nodes. In addition, the systems and methods of the present invention further provide improved synchronization with external databases in a way that data can be verified.

본 명세서에서 신규한 사적 서브스페이스 블록 체인 데이터 구조, 및 관련 시스템 및 방법은 상기 특징 및 개선이 유리한 다양한 상황에서 사용될 수 있다. 예를 들어, 새로운 데이터 구조 및 관련 시스템 및 방법은 재고 관리, 부품 추적(예를 들어, 항공기 부품 유지 보수 사이클 추적), 고 가치 상품(예: 다이아몬드)에 대한 출처 검증, 의료 기록, 부동산 및 디지털 자산과 관련된 소유권 이전, 안전한 문서 처리, 및 분산 검증 및 허가된 데이터 저장 및 액세스 기능을 모두 제공하는 데이터 구조의 혜택을 받는 기타 영역 및 응용예에 관한 데이터의 안전한 교환을 구현하는데 사용될 수 있다. 또한, 신규 데이터 구조 및 관련 시스템 및 방법은 신용 디폴트 스왑(CDS), 에쿼티 스왑(equity swap), 및 외환(FX) 거래와 관련된 것을 포함한, 스마트 계약 응용예를 위한 보안 시스템을 구현하는 데 사용될 수 있다.The novel private subspace blockchain data structure and related systems and methods herein can be used in various situations where the above features and improvements are advantageous. For example, new data structures and related systems and methods include inventory management, parts tracking (eg tracking aircraft parts maintenance cycles), source verification for high value goods (eg diamonds), medical records, real estate and digital It can be used to implement secure exchange of data in relation to assets, transfer of ownership, secure document processing, and other areas and applications that benefit from a data structure that provides both distributed verification and authorized data storage and access. In addition, new data structures and related systems and methods can be used to implement security systems for smart contract applications, including those related to credit default swap (CDS), equity swap, and foreign exchange (FX) transactions. have.

본 발명의 일 실시예에 따르면, 피어-투-피어 네트워크 내에 데이터 구조를 분배하기 위한 암호화 플랫폼을 위한 시스템이 제공되며, 상기 시스템은 비 일시적 컴퓨터 판독 가능 저장 매체; 상기 저장 매체에 저장된 코드 형태의 명령어를 포함하는 하나 이상의 소프트웨어 모듈을 실행함으로써 구성된 프로세서를 포함하며, 상기 모듈은, 제 1 피어 노드와 제 2 피어 노드 사이에서 암호화된 데이터를 원격 장치로부터 네트워크를 통해 송신 및 수신하도록 프로세서를 구성하는 통신 모듈과, 상기 제 1 피어 노드와 제 2 피어 노드 사이에서 교환되는 암호화 데이터를 나타내는 상태 루트를 생성하도록 프로세서를 구성하는 코어 모듈 - 상기 코어 모듈은 네트워크 내의 복수의 피어 노드들 사이에서 교환되는 암호화 데이터를 나타내는 전역 상태 루트를 생성하도록 프로세서를 더 구성하고, 상기 코어 모듈은 네트워크와 피어 노드들 간에 교환되는 데이터의 확인가능한 레코드를 제공하는 사적 서브스페이스 블록체인 내에서 권한 부여된 블록을 생성하도록 프로세서를 또한 구성함 - 과, 상기 제 1 피어 노드 및 제 2 피어 노드 사이에서 전파되는 데이터를 저장 매체에 저장하도록 프로세서를 구성하는 데이터베이스 모듈을 포함하며, 상기 데이터베이스 모듈은 상태 루트, 전역 상태 루트, 및 블록을 저장 매체에 저장하도록 프로세서를 더 구성한다. According to one embodiment of the present invention, a system is provided for an encryption platform for distributing data structures within a peer-to-peer network, the system comprising a non-transitory computer readable storage medium; And a processor configured by executing one or more software modules comprising instructions in the form of code stored on the storage medium, the modules transmitting encrypted data between a first peer node and a second peer node from a remote device over a network. A communication module configuring the processor to transmit and receive, and a core module configuring the processor to generate a state route representing encrypted data exchanged between the first peer node and the second peer node, the core module comprising a plurality of The processor is further configured to create a global state route representing cryptographic data exchanged between peer nodes, and the core module is within a private subspace blockchain that provides identifiable records of data exchanged between the network and peer nodes. Authorized Block And a database module configured to configure the processor to store data propagated between the first peer node and the second peer node in a storage medium, wherein the database module includes a state root, global The processor is further configured to store the state route, and blocks, on the storage medium.

다른 실시예에서, 데이터 구조의 분배를 처리하기 위한 컴퓨터 판독 가능 매체 상에 구현되는 컴퓨터 프로그램 제품이 제공되며, 복수의 피어 노드 사이에서 복수의 암호화된 메시지를 송/수신하기 위한 컴퓨터 코드; 및 상기 피어 노드들간에 교환된 상기 암호화된 메시지들에 대한 복수의 상태 루트를 생성하기 위한 컴퓨터 코드; 및 전역 상태 루트 내에 복수의 상태 루트를 저장하기 위한 컴퓨터 코드 - 여기서 각 상태 루트는 데이터의 서브스페이스를 규정함 - 및 복수의 서브스페이스를 포함하는 복수의 전역 상태 루트를 포함하는 사적 서브스페이스 블록 체인을 생성하기 위한 컴퓨터 코드를 포함한다.In another embodiment, a computer program product implemented on a computer readable medium for processing distribution of a data structure is provided, comprising: computer code for transmitting / receiving a plurality of encrypted messages between a plurality of peer nodes; And computer code for generating a plurality of state routes for the encrypted messages exchanged between the peer nodes. And computer code for storing multiple state roots within the global state root, where each state root defines a subspace of data-and a private subspace blockchain comprising a plurality of global state roots comprising a plurality of subspaces It contains computer code to generate.

본 발명의 또 다른 실시예에서, 기초 네트워크 위에 구축된 하나 이상의 네트워크 내의 피어 노드들 사이에 데이터 구조를 분배하기 위한 암호화 시스템이 제공되며, 여기서 데이터 구조는 복수의 전역 상태 루트를 포함하고, 상기 복수의 전역 상태 루트는 복수의 상태 루트를 포함하며, 상기 암호화 시스템은, 사적 서브스페이스 블록 체인 내에 복수의 허가된 블록을 저장하는 메모리; 서브스페이스 내의 복수의 피어 노드들간에 교환된 암호화된 메시지에 기초하여 상태 루트를 생성하는 상태 루트 생성기; 하나 이상의 상태 루트에 기초하여 전역 상태 루트를 생성하는 전역 상태 루트 생성기; 상기 전역 상태 루트 및 상태 루트를 컴파일하는 블록 컴파일러; 및 허가된 블록이 상기 전역 상태 루트 및 하나 이상의 상태 루트를 포함하도록 상기 허가된 블록을 생성하는 허가된 블록 생성기를 포함한다. In another embodiment of the present invention, an encryption system is provided for distributing a data structure among peer nodes in one or more networks built on top of a basic network, wherein the data structure comprises a plurality of global state routes, the plurality of The global state route of includes a plurality of state routes, wherein the encryption system comprises: a memory storing a plurality of authorized blocks in a private subspace blockchain; A state route generator that generates a state route based on encrypted messages exchanged between a plurality of peer nodes in the subspace; A global state route generator that creates a global state route based on one or more state routes; A block compiler that compiles the global state root and state root; And an allowed block generator that generates the allowed block such that the allowed block includes the global state route and one or more state routes.

다른 실시예에서, 피어-투-피어 네트워크 내에 데이터 구조를 분배하기 위한 암호화 플랫폼을 제공하기 위한 시스템이 제공되며, 상기 시스템은 복수의 블록 각각에 대해 복수의 전역 상태 루트를 규정하는 데이터를 포함하는 클라우드 기반 데이터베이스 - 각각의 전역 상태 루트는 복수의 상태 루트를 포함 함 - 와, 복수의 피어 노드에 대해 암호화된 데이터를 송/수신하기 위한 네트워크 가능 장치; 네트워크 가능 디바이스 및 클라우드 기반 데이터베이스에 연결되는 컴퓨터 서버를 포함하며, 상기 컴퓨터 서버는, 제 1 피어 노드와 제 2 피어 노드 사이에서 전송되는 데이터를 암호화하도록 프로그래밍되고, 정보의 서브스페이스를 생성하는 상기 제 1 피어 노드와 제 2 피어 노드 사이에서 전송된 데이터에 대한 상태 루트를 자동으로 생성하도록 프로그래밍되며, 상태 루트의 생성에 응답하여 전역 상태 루트를 자동으로 업데이트하도록 프로그래밍되고, 정보의 서브스페이스와 함께 상기 상태 루트를 포함하는 복수의 상태 루트를 포함하는 업데이트된 전역 상태 루트를 포함하는 블록을 생성하도록 프로그래밍되며, 상기 클라우드 기반 데이터베이스의 사적 서브스페이스 블록 체인 내에 상기 블록을 저장하도록 프로그래밍된다. In another embodiment, a system is provided for providing an encryption platform for distributing data structures within a peer-to-peer network, the system comprising data defining multiple global state routes for each of a plurality of blocks Cloud-based database-each global state route includes a plurality of state routes-and a network capable device for transmitting / receiving encrypted data for a plurality of peer nodes; A network capable device and a computer server connected to a cloud-based database, the computer server being programmed to encrypt data transmitted between a first peer node and a second peer node, the agent generating a subspace of information It is programmed to automatically generate a state route for data transmitted between the 1st peer node and the 2nd peer node, and is programmed to automatically update the global state route in response to the creation of the state route, along with a subspace of information. It is programmed to create a block that includes an updated global state route that includes a plurality of state routes, including a state route, and is programmed to store the block in the private subspace blockchain of the cloud-based database.

또 다른 실시예에서, 사적 스마트 계약에 대응하는 명령어를 저장하고, 사적 서브스페이스 블록 체인 데이터 구조를 사용하여 가상 머신에서 이러한 명령어를 실행하기 위한 시스템 및 방법이 제공된다.In another embodiment, a system and method for storing instructions corresponding to a private smart contract and executing such instructions in a virtual machine using a private subspace blockchain data structure is provided.

이들 및 다른 측면 및 장점은 첨부 도면에 적절한 경우에 다음의 상세한 설명을 읽음으로써 당업자에게 명백해질 것이다. 또한, 상기 요약은 단지 예시적인 것이며 첨부된 청구 범위가 합법적으로 부여되는 등가물의 범위 또는 범위를 어떠한 방식으로도 제한하려는 것이 아님을 이해해야 한다.These and other aspects and advantages will become apparent to those skilled in the art by reading the following detailed description where appropriate in the accompanying drawings. In addition, it should be understood that the above summary is merely exemplary and is not intended in any way to limit the scope or scope of equivalents to which the appended claims are legally granted.

특허 또는 출원 파일은 컬러로 실행된 적어도 하나의 도면을 포함한다. 이 칼라 도면을 가진 본 특허 또는 특허 출원 공보의 사본은 요청시 그리고 해당 요금의 납부시 특허청에 의해 제공될 것이다. 본 발명은 다음의 예시적인 도면과 관련하여 아래에 설명된다.
도 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) 풀을 구현하는 데 있어서 사적 서브스페이스 블록 체인 및 관련 시스템의 사용을 나타내는 도면이다.
The patent or application file contains at least one drawing executed in color. A copy of this patent or patent application publication with this color drawing will be provided by the Office upon request and upon payment of the applicable fee. The invention is described below in connection with the following exemplary drawings.
1 is a diagram illustrating components of a system for the generation and distribution management of a data structure having secure access restrictions according to an embodiment of the present invention.
2 is a diagram illustrating components of a core module and a database module of the system according to an embodiment of the present invention.
3 is a diagram illustrating components of a peer or verification node according to an embodiment of the present invention.
4 is a diagram showing the contents of a block according to an embodiment of the present invention.
5 is a diagram illustrating two nodes exchanging encrypted data according to an embodiment of the present invention.
6 is a diagram illustrating a service node that requests data, checks authority, and verifies data according to an embodiment of the present invention.
7A and 7B are diagrams illustrating a node transmitting information in a subspace accessible to another authorized node according to an embodiment of the present invention.
8 illustrates an accessible subspace of data for three different nodes, according to one embodiment of the present invention.
9 is a diagram illustrating that a message exchanged in a subspace is added to a private subspace blockchain according to an embodiment of the present invention.
10 is a diagram illustrating creation of a state route and a global state route to be included in a block header according to an embodiment of the present invention.
11A to 11D are diagrams illustrating exchange of data including state routes from all subspaces, verification of data, and generation of blocks according to an embodiment of the present invention.
12A-G are diagrams showing a consensus process between nodes according to an embodiment of the present invention.
13 is a diagram illustrating verification of a node in an authorized network according to an embodiment of the present invention.
14 is an example of subspace verification mapping according to an embodiment of the present invention.
15 is a diagram illustrating a corresponding interaction of a component and a subspace of a smart contract to components, according to an embodiment of the present invention.
16A to 16E are diagrams illustrating application of a core module according to an embodiment of the present invention.
17A to 17C are views showing another application of the core module according to an embodiment of the present invention.
18 is a diagram illustrating the application of a system using ongoing rights management with automated physical connection and contract authority, according to one embodiment of the present invention.
19 is a diagram illustrating a relationship between a domain and a subspace for a private subspace blockchain according to an embodiment of the present invention.
20A and 20B are diagrams illustrating the use of a private subspace blockchain and related systems in implementing a mortgage backed security (MBS) pool.

본 발명은 다양한 형태로 구현될 수 있지만, 간략하고 예시적인 목적으로 본 발명의 원리는 그 일부 실시예를 참조하여 부분적으로 설명된다. 그러나, 본 개시는 청구된 주제의 예시로서 간주되어야 하며, 첨부된 청구 범위를 도시된 특정 실시예로 제한하려는 것이 아님을 이해해야 한다. 본 발명이 이들 특정 세부 사항에 제한되지 않고 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우에, 공지된 방법 및 구조는 본 발명을 불필요하게 모호하게 하지 않기 위해 상세히 설명되지 않았다.The invention can be implemented in various forms, but for the sake of simplicity and illustrative purposes, the principles of the invention are partially described with reference to some embodiments thereof. However, it should be understood that the present disclosure should be considered as illustrative of the claimed subject matter, and is not intended to limit the appended claims to the specific embodiments shown. It will be apparent to those skilled in the art that the present invention may be practiced without being limited to these specific details. In other instances, well-known methods and structures have not been described in detail in order not to unnecessarily obscure the present invention.

도 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)일 수 있다. 노드 등록은 공통 서브스페이스에서 실행되는 특정 스크립트(예: 스마트 계약)에서 관리될 수 있다. 등록 데이터 세트에 대한 변경은 공통 서브스페이스의 스크립트로 메시지를 전송함으로써 구현되며, 변경을 요청하는 메시지가 사적 서브스페이스 블록 체인의 블록에서 확인되면 해당 변경이 적용된다.1 shows a system 100 for creating and managing distributed distribution data structures and creating other distributed data structures with secure access restrictions, according to an embodiment of the present invention. The system 100 is built around a distributed network of nodes 112 communicatively connected to each other via a local area network (LAN) or a wide area network (WAN), such as the Internet, or a combination thereof. Each node can be implemented on one or more servers with logic to perform the functions described herein. The components of system 100 (eg, core module 104 and database 106) may reside on separate servers or on one or more servers. The core module 104 provides core functions of each node in the system. Each node with the core module 104 can interact with the database module 106, which can be located on a separate server. In addition to the functionality associated with the core module 104, each node may include functionality associated with the API 102 (as described further below), and hardware key management 108 for security enhancement. The core module 104 includes functions for providing creation, configuration and registration of nodes. After the node is created, the core module 104 initializes the node, connects the node to the integration tool (API) 102, and connects the node to one or more consensus nodes via a peer-to-peer network. The core module 104 configures a node based on the type of node (verification, peer, service) that determines the role of the node in the system 100, as described below. The core module 104 also configures the node by providing the node with information indicating which subspace the node can access based on an identifier that identifies the party or user creating the node. In certain embodiments, the identifier of the party or user can be associated with the node type and can be used to identify the node type. For example, as part of the registration process, the system maintains and distributes a table to each node that associates each party / user's identifier with a particular node type (verification, peer, service). Additionally or alternatively, the system distributes a table to each node that associates the node's unique node identifier with the node type (validity, peer, service). Additionally or alternatively, node registration is maintained using information maintained in a common subspace accessible by all nodes in the system, thus ensuring that registration data is consistent and available to all nodes. The node properties include a list of subspaces to which the node is authorized, and for each subspace, the level of access rights (for example, whether the peer has validator, peer, or service node access rights). In this way, nodes can have different levels of access to different subspaces. For example, one node at the same time may be a "validator" of one subspace and a "peer" of another subspace. Node registration can be managed in a specific script (eg, smart contract) executed in a common subspace. Changes to the registration data set are implemented by sending a message to a script in the common subspace, and the change is applied when the message requesting the change is confirmed in a block in the private subspace blockchain.

각 노드는 노드의 유형(검증 유효성, 피어 또는 서비스)를 나타내는 유형 정보를 저장하며, 이는 시스템(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)는 또한 제한된 수의 메시지를 수신하고 중계하지만, 공통 서브스페이스에서 모든 메시지를 수신한다.Each node stores type information that indicates the type of node (validation validity, peer or service), the role and behavior of the node in relation to the system 100, and the level of data access of other nodes on the network, such as the node and The main function is determined, as shown in FIG. 2. The verification node 202 can access all subspaces to which the node is authorized. The verification node is included in the consensus process for verifying blocks in the private subspace blockchain, as discussed further below. In particular, the verification node matches other nodes in a particular subspace with respect to valid messages and blocks. The verification node 202 also relays all received messages to the node authorized to receive those messages, and commits the message to blocks on the private subspace blockchain. Like the verification node 202, the peer node 204 can access any subspace to which the node is authorized. However, unlike verification nodes, peer nodes are observers who do not participate in the consensus process. For this reason, the peer node can be referred to as an observer node. In terms of functionality, peer node 204 also relays all messages received to the node authorized to receive those messages, but does not commit the messages and blocks to the private subspace blockchain. In addition, the peer node 204 and the verifier node each provide access to and interact with the external system. The peer node (like other nodes) is configured to maintain the enterprise database 208 as described below. In this regard, the enterprise database includes an expanded data set, and each node stores and aggregates data in the database 208 and database 208, such as the ability to efficiently query the database 208 according to the node type. Includes logic and programming to enable interaction with. In particular, the peer node has logic and programming that allows the node to query the database 208. The verifier node has logic and programming that allows the node to query the database 208 and store and aggregate data in the database 208 through events linked to smart contracts. In addition to the database functionality provided by database 208, API 102 provides an extension that allows system 100 to be integrated with external legacy systems with different data formats. For example, the API 102 may query data, such as for accessing data stored in an external legacy system in a data format different from the blockchain structure described herein, to import data into the enterprise database 208. For integrating such data into the system 100, for converting the data set into a format suitable for use with the blockchain structure described herein, and for converting data from the blockchain structure described herein. Functions and procedures may be included for export in a format suitable for use by an external system. In other embodiments, the verification node can also interact with external systems. The service node 206 can access a limited set of smart contracts within a specific subspace. Service node 206 also receives and relays a limited number of messages, but all messages in a common subspace.

도 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)는 스마트 계약 정보를 저장하고, 노드에 대한 그러한 정보의 빠른 불러오기를 제공한다. 3 provides a representation of a peer node or verification node 300 according to one embodiment of the present system, which illustrates the features and logic associated with each node. Each node has an interface for communicating with other network nodes and components of the system 100 via a LAN or WAN, internal logic for performing the functions listed therein, and internal storage for storing variables and data. While equipped, it may be implemented in one or more servers. Each peer node or verification node includes communication logic 302 for communicating with other nodes via a peer-to-peer (p2p) protocol, as described further herein. In the preferred embodiment, the nodes of system 100 use an extensible versioned binary encoding scheme such as recursive length prefix (RLP) to format messages for communication. Messages sent by the node are signed with a private key to verify the identity of the sending node and prevent spoofing. Each peer node or verification node is a remote procedure call (RPC) protocol that a node can use to send notifications to other nodes and system components, and to invoke the execution of procedures and subroutines on other system components. The API logic 304 for implementing is further included. In the preferred embodiment, the node uses the JSON-RPC protocol. Each peer node or verification node further includes consensus logic 306 used to implement the consensus algorithm used by the system to verify messages and blocks, as discussed further herein. According to one embodiment, the system uses a Raft consensus algorithm, but other consensus algorithms may be implemented by logic 306. In another embodiment, a byzantine fault tolerant (BFT) consensus mechanism is used. In other embodiments, the system verifies messages and blocks using a rotation agreement mechanism or federated signature. The consensus logic 306 also serves to process the message and add the verified message to the block. Each peer node or verification node further includes logic 308 for script execution that can function as a runtime environment for executing the script, including, for example, executing code associated with the smart contract. The logic 308 for script execution may be compatible with the Ethereum Virtual Machine (EVM) implementation. Each peer node or verification node further includes a data store 310 with associated logic for storing, retrieving and querying the data store. The data store 310 functions as a database repository of messages, blocks and related metadata. In particular, data store 310 includes one or more databases for long-term storage of system variables, such as private subspace blockchain data. The data store 310 provides each node with access to data for all subspaces to which the node is authorized. When the private subspace blockchain is associated with a smart contract, the data store 310 stores smart contract information and provides a quick fetch of such information for the node.

서비스 노드(206)는 모든 메시지를 처리하지 않고(예를 들어, 가상 머신에서 모든 메시지를 실행하지 않음) 각각의 서브스페이스에 대한 완전한 상태 트리를 유지하지 않는다는 점에서 피어 및 검증 노드와 다르다. 서비스 노드는 서브스페이스에서 데이터의 서브세트를 수신하거나, 가상 머신에서 메시지를 처리하거나, 스크립트(예: 계약 데이터) 실행 결과로 생성된 데이터를 단순히 수신할 수 있다. 예를 들어, 서비스 노드는 특정 트랜잭션(예: 특정 계약)에 대한 모든 메시지를 받거나 해당 트랜잭션 데이터의 최신 상태를 단지 수신할 뿐, 메시지를 처리할 수 없다. 서비스 노드(206)는 서비스 노드가 허가된 검증기 또는 피어 노드로부터 상태 트리의 임의의 부분을 요청한다. 서비스 노드는 서브스페이스의 모든 메시지 또는 메시지의 서브세트를 수신하도록 권한을 부여받을 수 있다. 서브세트가 유연한 필터링 규칙(예: 계정 전송)으로 정의되므로 이러한 세분화된 액세스 수준이 가능하다.Service node 206 differs from peer and verification nodes in that it does not process all messages (for example, it does not execute all messages in the virtual machine) and does not maintain a complete state tree for each subspace. The service node may receive a subset of data in a subspace, process a message in a virtual machine, or simply receive data generated as a result of executing a script (eg contract data). For example, the service node receives all messages for a specific transaction (eg, a specific contract) or simply receives the latest status of the transaction data and cannot process the message. The service node 206 requests any part of the state tree from the verifier or peer node to which the service node is authorized. The service node may be authorized to receive all messages or a subset of messages in the subspace. This granular level of access is possible because the subset is defined by flexible filtering rules (eg, account transfer).

도 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: '레저'라고도 함) 기능을 호출하는 매칭 플랫폼 일 수 있다.1, the client terminal 114 can access the functionality of the system 100 and the core module 104 through the use of a series of application programming interfaces (APIs), system integration tools 102. These APIs 102 allow the client terminal 114 to manage authorization of the client node, perform remote procedure calls (RPC), establish a connection with the node in the system network, manage client accounts with the system, Includes functional calls to manage the content of a data record (eg, smart contract) in the private subspace blockchain disclosed herein. In particular, these APIs 102 access the functionality of the core module 104 to create, configure and register nodes; Interact with the novel distributed data structures disclosed herein; Includes functionality that can be invoked by client terminal 114, which configures authorization and access to the system network. These APIs 102 are accessed by client terminals 114 that access the functions of database modules 106 to access data stored in database modules 106, manage such data, and perform queries on such data. It further includes functions that can be called. In embodiments where hardware key management is used, these APIs provide functionality that can be called by client terminals 114 that access the functions of the hardware key management module 108 to store and retrieve private keys and sign transactions. It includes more. The API of the integration tool 102 interacts directly with the private subspace blockchain. API commands that create or interact with data records in the private subspace blockchain generate a blockchain message and return a message hash value that can be used to identify the message, which can later be retrieved and viewed by system 100 users To make. The client terminal 114 can take a variety of forms. For example, client terminal 114 provides means for interfacing with API 102 by providing data to the API, calling functions provided by API 102, and displaying prompts and data from API 102. It can be a graphical user interface provided (used by end users). The client terminal 114 may be fully automated software that monitors external events that call functions through the API 102 when external events occur. For example, the client terminal 114 may be a matching platform that calls a ledger (also referred to as a 'leisure') function through the API 102 to match opponents in a trade.

코어 모듈(104)에 의해 생성된 시스템(100)의 각각의 노드는 또한 시스템(100)의 네트워크와 상호 작용하기 위해 노드에 의해 사용되는 특정 정보를 저장한다. 이 정보는 노드의 데이터 디렉토리에, 데이터베이스에 또는 테이블 구조로 저장될 수 있다. 각 노드는 해당 유형(유효성 검증, 피어 또는 서비스)을 저장한다. 시스템(100)의 각 노드는 시스템의 다른 노드와 공유되고 로그 파일로 표시되는 명칭을 더 포함한다. 각 노드는 노드의 전체 인증서인 노드 식별자(또는 노드 ID)를 더 포함한다. 대안으로서, 보안 해시가 노드 ID를 구현하기 위해 사용될 수 있으며, 그에 따라 해시가 고정 길이 값(예를 들어 고정 길이 32 바이트 해시 값)이면 상이한 인증서 유형 및 길이를 사용할 수 있다. 이러한 방식으로, 허가 계약(또는 본 명세서에서 더 논의되는 바와 같이 "체인펌" 스크립트("chainperm" script))은 보안을 손상시키지 않으면서 온-체인 방식으로 효율적으로 관리될 수 있는 고정 길이 값만 저장하면 된다. 따라서, 노드 ID의 경우 노드의 전체 인증서를 사용하거나 시스템의 각 배포에 대한 특정 요구 사항에 따라 인증서의 해시(효율성 향상 및 온-체인 데이터 처리 속도 향상을 위함)를 사용할 수도 있다.Each node of the system 100 created by the core module 104 also stores specific information used by the node to interact with the system 100's network. This information can be stored in a node's data directory, in a database, or in a table structure. Each node stores its type (validation, peer or service). Each node of the system 100 further includes a name shared with other nodes of the system and displayed as a log file. Each node further includes a node identifier (or node ID), which is the full certificate of the node. Alternatively, a secure hash can be used to implement the node ID, so different certificate types and lengths can be used if the hash is a fixed length value (eg a fixed length 32 byte hash value). In this way, the permission agreement (or "chainperm" script as discussed further herein) stores only fixed-length values that can be efficiently managed on-chain without compromising security. You can do it. Therefore, in the case of node ID, the entire certificate of the node can be used, or a hash of the certificate (for improving efficiency and speed of processing on-chain data) may be used according to specific requirements for each distribution of the system.

바람직한 실시예에서, 시스템(100)의 노드는 TLS 인증 절차를 사용하므로, 보안 인증서는 TLS 인증서이다. 이 노드 ID는 노드를 고유하게 식별하며 네트워크에 고유하다. 각 노드는 서명 주소를 더 포함하는데, 이 주소는 노드의 공개 키의 해시이며 사적 서브스페이스 블록 체인에서 메시지와 블록을 서명하는 데 사용된다. 서명 주소 정보는 관찰자 노드(예: 피어 유형 노드)에 존재할 필요가 없다. 각 노드는 또한 노드가 검증기 역할을 하는 도메인 이름 배열과 노드가 관찰자 역할을 하는 도메인 이름 배열을 포함한다. 블록 및 메시지 작성에 참여하기 전에 각 노드에는 자체 보안 인증서(예: TLS 인증서) 및 서명 키가 있어야 하며 이는 노드의 데이터 디렉토리에 저장된다. 이와 관련하여, 각 노드에는 두 개의 개인 키 - TLS 인증 절차를 위한 개인 키 하나와, 본 명세서에서 기술되는 블록 생성 및 투표 프로세스에 따라, 특히, 블록 및 투표에 서명하는 다른 개인 키(예: ECDSA 개인 키) - 가 있다. In the preferred embodiment, the node of the system 100 uses a TLS authentication procedure, so the security certificate is a TLS certificate. This node ID uniquely identifies the node and is unique to the network. Each node further contains a signature address, which is a hash of the node's public key and is used to sign messages and blocks in the private subspace blockchain. The signature address information need not be present at the observer node (eg peer type node). Each node also contains an array of domain names where the node acts as a verifier and an array of domain names where the nodes act as observers. Before participating in the creation of blocks and messages, each node must have its own security certificate (such as a TLS certificate) and a signing key, which is stored in the node's data directory. In this regard, each node has two private keys-one private key for the TLS authentication procedure and other private keys to sign blocks and voting, in particular according to the block creation and voting process described herein, e.g. ECDSA Private key)-

도 1 및 도 2에 도시된 바와 같이, 시스템(100)은 사적 서브스페이스 블록 체인 데이터의 저장을 위한 하나 이상의 데이터베이스(208)를 포함하는 데이터베이스 모듈(106)을 더 포함한다. 데이터베이스 모듈(106)은 사적 서브스페이스 블록 체인으로부터 저장을 위한 공통 데이터베이스 포맷으로 단방향 동기화를 제공한다. 데이터베이스 모듈(106)은 또한 보조 데이터가 사적 서브스페이스 블록 체인 데이터에 추가될 수 있게 한다. 데이터베이스 모듈(106)은 하나 이상의 데이터베이스에 저장된 데이터에 대한 복잡한 데이터 쿼리 및 분석을 추가로 실행한다. 데이터베이스 모듈(106)은 코어 모듈(104)과 동일한 서버에 상주하거나 별개의 서버에 상주할 수 있다.1 and 2, the system 100 further includes a database module 106 that includes one or more databases 208 for storage of private subspace blockchain data. The database module 106 provides one-way synchronization from the private subspace blockchain to a common database format for storage. The database module 106 also allows auxiliary data to be added to the private subspace blockchain data. The database module 106 further performs complex data query and analysis on data stored in one or more databases. The database module 106 may reside on the same server as the core module 104 or may reside on a separate server.

코어 모듈(104)은 로컬 노드와 연관된 계정의 생성을 제공하는 기능을 더 포함한다. 각 계정은 사적 서브스페이스 블록 체인에서 사용자의 신원을 정의한다. 또한, 사적 서브스페이스 블록 체인의 블록 내에 저장된 데이터가 스마트 계약 또는 다른 자체 실행/자체 집행 스크립트와 관련되는 경우, 계정은 스마트 계약 및/또는 스크립트와 관련하여 행위자를 식별하는 데 사용된다. 계정은 메시지 송수신 및 자체 실행 스크립트(예: 스마트 계약)를 위한 고유 식별자이다. 각 계정은 공개 키에 해당하는 주소로 참조된다. 각 계정에는 사적 서브스페이스 블록 체인의 스크립트에 서명하고 상호 작용할 때 사용하는 관련 개인 키도 있다. 계정은 사적 서브스페이스 블록 체인에서 사용자의 각 ID를 추가로 정의한다. 예를 들어 스마트 계약을 구현하기 위해 사적 서브스페이스 블록 체인이 사용되는 경우, 계정은 스마트 계약의 당사자를 식별하는 데 사용된다.The core module 104 further includes a function that provides creation of an account associated with the local node. Each account defines the identity of the user in the private subspace blockchain. In addition, when data stored within a block of a private subspace blockchain is associated with a smart contract or other self-executing / self-executing script, the account is used to identify actors in relation to the smart contract and / or script. The account is a unique identifier for sending and receiving messages and self-executing scripts (eg smart contracts). Each account is referenced by the address corresponding to the public key. Each account also has an associated private key that is used to sign and interact with scripts on the private subspace blockchain. The account further defines each user's ID in the private subspace blockchain. For example, when a private subspace blockchain is used to implement a smart contract, the account is used to identify the parties to the smart contract.

코어 모듈(104)은 메시지를 수신 및 중계하는 능력 및 메시지를 사적 서브스페이스 블록체인에 커밋하는 능력을 포함하여, 다른 네트워크 노드(112a-112d)와 통신하기 위해 필요한 기능을 노드에 제공하는 로직을 더 포함한다. 시스템(100)의 통신 네트워크는 피어-투-피어 네트워크로 설정되며, 네트워크의 각 노드에 대해 알려진 식별이 있다. 여기에 설명된 대로 TLS 인증서를 사용하여 노드 간 연결이 인증되며, 승인된 목록에 포함된 TLS 인증서를 가진 노드들만이 네트워크에 연결할 수 있다. 바람직한 실시예에서, 코어 모듈(104)은 메시지 또는 명령을 발신한 당사자/사용자의 식별자와, 상대방/사용자의 식별자에 기초하여 메시지 또는 명령의 서브스페이스를 결정한다. 예를 들어, 당사자 A가 메시지 또는 명령을 전송하고 메시지 또는 명령에 대한 상대방 B를 당사자 B로 지정하면, 코어 모듈(104)은 메시지 또는 명령이 AB 서브스페이스상에서 전송되어야 한다고 결정한다.The core module 104 provides logic to provide a node with the functionality needed to communicate with other network nodes 112a-112d, including the ability to receive and relay messages and commit the message to a private subspace blockchain. It includes more. The communication network of the system 100 is set up as a peer-to-peer network, and there is a known identification for each node in the network. As described here, connections between nodes are authenticated using TLS certificates, and only nodes with TLS certificates included in the approved list can connect to the network. In a preferred embodiment, the core module 104 determines the subspace of the message or command based on the identity of the party / user that originated the message or command, and the identity of the other party / user. For example, if Party A sends a message or command and designates Party B as Party B for the message or command, the core module 104 determines that the message or command should be sent on the AB subspace.

도 4는 본 발명의 일 실시예에 따른, 사적 서브스페이스 블록 체인에서의 블록(400)의 표현을 제공한다. 각 블록은 데이터의 저장소 역할을 하며 사적 서브스페이스 블록 체인의 이전 블록에 대한 링크를 포함한다. 각 블록(400)은 블록의 내용을 검증하는데 사용되는 상태 정보를 갖는 헤더(402)를 포함한다. 본 명세서에서보다 상세히 설명되는 바와 같이, 헤더는 블록 내의 서브스페이스 및 다른 데이터에 대응하는 하나 이상의 기본 해시 값에 기초한 전역 해시 값을 포함한다. 바람직한 실시예에서, 전역 해시 값은 머클 트리(Merkle tree)와 같은 해시 트리의 상태 루트이고, 트리의 기본 잎은 서브스페이스를 나타낸다. 헤더는 또한 메시지 루트를 포함하는데, 이는 블록에 포함된 모든 메시지의 요약이며, 사적 서브스페이스 블록 체인의 내용에 의해 트리거되는 이벤트에 기초하여 업데이트된다. 각 서브스페이스는 서브스페이스의 상태 루트 외에, 서브스페이스의 메시지 루트, 수신 루트 및 실행에 사용된 "가스"의 양(즉, 트랜잭션 실행을 위한 계산 단계의 수)을 포함한다. 메시지 루트 및 수신 루트는 메시지 및 수신 추가로 트리거된 이벤트를 기반으로 업데이트되는 트리 루트 해시이며, 해당 메시지 및 수신에 포함된 데이터를 기반으로한다. 예를 들어, 메시지 루트 및 수신 루트는 블록이 Merkle 트리 구조의 서브스페이스를 확인하는 모든 메시지(또는 수신 루트의 경우 메시지 수신)를 추가함으로써, 그리고, 루트 값을 얻음으로써, 계산된 Merkle 트리 루트 해시일 수 있다. 헤더는 블록을 검증하는데 사용되는 암호화 서명을 더 포함한다. 각 블록은 하나 이상의 서브스페이스, 예를 들어 서브스페이스 A, B, N으로 분할된 데이터 페이로드를 추가로 포함한다. 이들 서브스페이스는 정의된 서브세트의 사용자 만이 액세스하고 추가할 수 있는 공유 블록 체인에서 분리된 영역이다. 이런 식으로, 서브스페이스는 참가자가 권한이 있는 참가자만 받는 레코드 및 데이터를 저장할 수 있는 개인 영역을 만든다. 서브스페이스에는 해당 서브스페이스에 고유한, 그리고, 보호된다. 해당 서브스페이스에 액세스할 수 있는 권한이 있는 노드에만 액세스할 수 있도록 액세스 권한에 의해 보호되는, 로직(예: 자체 실행 스크립트, 스마트 계약) 및 데이터 세트(예: 메시지 및 영수증과 같은 일련의 데이터 레코드)가 포함된다. 각 서브스페이스는 해당 서브스페이스에 대해 권한이 부여된 노드만 액세스할 수 있으며 단일 당사자, 여러 당사자 또는 네트워크의 모든 당사자를 포함할 수 있다. 이와 관련하여, 본 발명의 사적 서브스페이스 블록 체인은 블록 체인의 유효성 및 무결성을 보장하기 위해 각 블록의 내용에 대한 공개 가시성에 의존하는 전통적인 블록 체인 구현과는 상당히 다르다. 사적 서브스페이스 블록 체인의 서브스페이스는 특정 거래(예를 들어, 두 당사자 간의 신용 디폴트 스왑(CDS))에 기초하여 분리될 수 있거나, 또는 여기에 더 설명된 바와 같이 이러한 서브스페이스에 액세스할 수 있는 당사자에 기초하여 분리될 수 있다. 예를 들어, 각 서브스페이스는 한 그룹의 당사자들 사이에 일련의 트랜잭션을 저장할 수 있으며, 서브스페이스의 메시지 리스트는 그러한 트랜잭션의 완전한 히스토리를 제공한다. 트랜잭션 당사자 만이 해당 트랜잭션에 해당하는 서브스페이스에 액세스할 수 있는 권한을 가지며, 메시지 및 트랜잭션이 시스템에 의해 전파될 때 해당 당사자에 해당하는 노드만이 해당 서브스페이스의 컨텐츠를 수신한다. 이와 관련하여, 이들 서브스페이스에 저장된 데이터는 별도의 데이터베이스에 저장되며, 네트워크의 노드에 의해 개별적으로 동기화될 수 있다.4 provides a representation of block 400 in a private subspace blockchain, according to an embodiment of the present invention. Each block acts as a repository of data and contains links to previous blocks in the private subspace blockchain. Each block 400 includes a header 402 with status information used to verify the contents of the block. As described in more detail herein, the header includes a global hash value based on one or more basic hash values corresponding to subspaces and other data in the block. In a preferred embodiment, the global hash value is the state root of the hash tree, such as the Merkle tree, and the base leaf of the tree represents the subspace. The header also contains the message root, which is a summary of all messages contained in the block, and is updated based on events triggered by the contents of the private subspace blockchain. Each subspace contains, in addition to the status root of the subspace, the message root of the subspace, the receiving root, and the amount of "gas" used for execution (ie, the number of computational steps to execute the transaction). The message route and the reception route are tree root hashes that are updated based on events triggered by the addition of messages and receptions, and are based on data included in the corresponding message and reception. For example, the message root and receive route are calculated Merkle tree root hashes by adding all the messages (or receiving messages in the case of a receive route) that the block identifies a subspace of the Merkle tree structure, and by getting the root value. Can be The header further includes an encrypted signature used to verify the block. Each block further includes a data payload divided into one or more subspaces, for example subspaces A, B, N. These subspaces are separate areas in the shared blockchain that only a defined subset of users can access and add. In this way, the subspace creates a private area where participants can store records and data that only authorized participants receive. A subspace is unique to and protected by the subspace. A set of data records, such as logic (such as self-executing scripts, smart contracts) and data sets (such as messages and receipts), protected by access rights so that only nodes that have permission to access that subspace are accessible ) Is included. Each subspace can only access nodes authorized to that subspace, and can contain a single party, multiple parties, or all parties in the network. In this regard, the private subspace blockchain of the present invention is quite different from traditional blockchain implementations that rely on public visibility of the contents of each block to ensure the validity and integrity of the blockchain. The private subspace blockchain's subspaces can be separated based on specific transactions (e.g., credit default swap (CDS) between two parties), or can access these subspaces as described further herein. It can be separated based on the parties. For example, each subspace can store a series of transactions between a group of parties, and the message list of the subspace provides a complete history of those transactions. Only the transaction party has the authority to access the subspace corresponding to the transaction, and when messages and transactions are propagated by the system, only the node corresponding to the party receives the contents of the corresponding subspace. In this regard, data stored in these subspaces are stored in separate databases and can be individually synchronized by nodes in the network.

일 실시예에서, 서브스페이스의 데이터는 계정에 의해 구성된다. 계정은 주소로 참조되며, 메시지 nonce(무언가를 독자적으로 식별하는데 사용되는 난수 또는 의사-난수, 이 경우에는 메시지 레코드), 스크립팅 코드 또는 "바이트 코드"(예: 스마트 계약 코드), 및 스토리지에 계정을 유지시킬 수 있는 임의의 키-값 쌍을 가진다. 두 가지 유형의 계정이 존재한다: (1) 사용자 계정 및(2) 스크립트/스마트 계약 계정. 사용자 계정은 사용자가 시스템에 메시지를 보내는 데 사용하는 계정이다. 사용자 계정의 주소는 사용자의 공개 키에서 파생된다. 사용자 계정에는 연관된 바이트 코드 또는 키-값 쌍이 없다. 반면 스크립트/스마트 계약 계정에는 스크립팅 코드/바이트 코드가 있으며 데이터를 유지하기 위해 키-값 쌍을 저장할 수 있다. 스크립트/스마트 계약 계정의 주소는 생성 계정의 주소 및 nonce에서 파생되지만 스크립트/스마트 계약 계정의 주소(공개 키)와 일치하는 개인 키는 없다. 이러한 배열에서는 사용자가 발신자 계정으로 스크립트/스마트 계약인 메시지를 보낼 수 없다.In one embodiment, the data of the subspace is organized by account. Accounts are referenced by address, message nonce (a random or pseudo-random number used to uniquely identify something, in this case a message record), scripting code or "byte code" (eg smart contract code), and account on storage Has any key-value pair that can hold. There are two types of accounts: (1) user accounts and (2) script / smart contract accounts. User accounts are accounts that users use to send messages to the system. The user account's address is derived from the user's public key. The user account has no associated byte code or key-value pair. The script / smart contract account, on the other hand, has a scripting code / byte code and can store key-value pairs to hold data. The address of the script / smart contract account is derived from the address and nonce of the generating account, but there is no private key that matches the address of the script / smart contract account (public key). In this arrangement, the user cannot send a script / smart contract message to the sender account.

도 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)에 액세스할 수 있고, 둘 다 해당 도메인에 대한 검증자로서 작용할 것이다. 도메인 내에서, 두 당사자는 해당 도메인의 모든 서브스페이스에 액세스할 수 있다(당사자들의 진정한 사적 서브스페이스는 개인 정보 보호를 위해 별도의, 사적인, 도메인에 위치함). 도메인 내에서, 서로 다른 서브스페이스를 사용하여 별도의 레코드 그룹 또는 별도의 트랜잭션을 지정할 수 있다. 예를 들어, 양방향 도메인에서, 서로 다른 자산 클래스의 거래를 처리하기 위해 다수의 서브스페이스가 생성될 수 있으며, 각 서브스페이스는 상이한 자산 클래스에 대응하여, 당사자들이 이러한 거래를 개별적으로 그리고 독립적으로 처리하고 추적할 수 있게 한다.8 provides another representation of block 800 in a private subspace blockchain showing the arrangement of subspaces in the block's payload, according to one embodiment of the present invention. In addition to the block header 802, as described above, the block 800 includes a plurality of subspaces divided based on the parties accessing the subspace. The subspace includes single-party subspaces 804 to which only a single party is authorized and has access to data, which includes subspace 804a corresponding to Party A, subspace 804b corresponding to Party B, and Party Subspace 80c corresponding to C is included. Records or transactions related to a single party, such as stock purchases on a stock exchange, commodity trading or medical records, can be included in a single party subspace. The subspace of block 800 further includes a bilateral (also referred to as 'quantum') subspace 806 to which the two parties are each authorized and have access to the data. In the illustrated example, these subspaces are quantum subspaces 806ab corresponding to parties A and B, quantum subspaces 806ac corresponding to parties A and C, and quantum subspaces 806bc corresponding to parties B and C. It includes. Quantum subspace 806 may include records or transactions involving two parties, such as credit default swap or equity swap. The common subspace 808 includes reference data, a service node permission list, a node ID of each node of the system 100, and an identity directory (or peer registry) providing types and permissions corresponding to each node, and access by nodes. And other information and scripts for general use by all parties and nodes in the system, required by the node to perform authorization decisions. The transaction manager provides a message scheduling service so that a user can schedule a message to be automatically executed later or when a specific event occurs. This message scheduling service function may be provided by other components. The message scheduling service can be used, for example, to automate payment of coupons for a transaction contract (time trigger instance), or to change the name of a reference entity in the transaction contract when the entity name is updated in the entity registry (event trigger) Instance). The common subspace may further include script / smart contract byte code, application binary interface (ABI), smart contract factory, database configuration information, and other domain or subspace status information. Additional subspaces are possible that include different combinations of one or more parties. For example, as shown in FIG. 19, multiple subspaces may be included in a given domain. For example, a quantum domain can access two parties (eg, Party A and Party B), both of which will act as validators for that domain. Within the domain, both parties can access all subspaces of the domain (the parties' true private subspaces are located in separate, private, domains for privacy). Within a domain, different subspaces can be used to specify separate record groups or separate transactions. For example, in a bi-directional domain, multiple subspaces can be created to process transactions of different asset classes, each subspace corresponding to a different asset class, and the parties handle these transactions individually and independently. And make it traceable.

전통적인 블록 체인 데이터 구조에서의 블록과 유사하게, 각각의 서브스페이스에서의 데이터 레코드는 (예를 들어, 해시 값과 같은) 데이터에 기초한 키와 함께 (당사자들 간의 특정 거래에 대응하는 데이터와 같은) 데이터와, 서브스페이스의 이전 데이터 레코드에 대한 링크를 포함한다. 서브스페이스를 사용하면 노드가 데이터를 안정적으로 동기화하고 데이터 유효성을 검사하는 동시에 다른 사용자와 관련된 데이터 세트를 격리할 수 있다. 또한, 서브스페이스의 사용을 통해 시스템(100)은 상이한 서브스페이스에서 메시지의 동시 처리를 제공할 수 있다. 전통적인 블록 체인에서는, 블록 체인의 무결성을 유지하기 위해 메시지와 트랜잭션을 순차적으로 처리해야 한다. 사적 서브스페이스 블록 체인의 서브스페이스는 서로 다른 서브스페이스의 메시지와 트랜잭션을 동시에 처리할 수 있게 하며 동일한 서브스페이스의 메시지만 순차적으로 처리하도록 요구한다. 가상 머신에서 메시지를 처리하려면 노드는 각각 최신 상태인 각 메시지와 관련된 모든 계정(예: 바이트 코드 및 스토리지를 포함한 스마트 계약)에 액세스해야 한다. 따라서 각 메시지마다 트랜잭션 상태가 변경될 수 있으므로 동일한 서브스페이스에 있는 메시지를 순차적으로 처리해야 하므로 후속 메시지 실행의 결과에 영향을 미칠 수 있다. 즉, 메시지는 특정 다른 서브스페이스로 특정 호출을 할 수 있으므로 데이터 액세스에 대한 추가 요구 사항이 발생한다. 예를 들어, 메시지는 공통 서브스페이스와 도메인 내의 다른 서브스페이스로 호출을 할 수 있다.Similar to blocks in traditional blockchain data structures, data records in each subspace are combined with keys based on data (such as hash values) (such as data corresponding to a particular transaction between the parties). Includes data and links to previous data records in the subspace. Subspaces allow nodes to reliably synchronize data and validate data, while isolating data sets associated with other users. In addition, the use of subspaces allows system 100 to provide simultaneous processing of messages in different subspaces. In a traditional blockchain, messages and transactions must be processed sequentially to maintain the integrity of the blockchain. Subspaces in the private subspace blockchain allow simultaneous processing of messages and transactions in different subspaces, and require that only messages in the same subspace be processed sequentially. In order to process messages in the virtual machine, the node must have access to all accounts associated with each message that are each up-to-date (for example, smart contracts including bytecode and storage). Therefore, because the transaction status can be changed for each message, messages in the same subspace must be processed sequentially, which can affect the result of subsequent message execution. In other words, messages can make specific calls to certain different subspaces, thus creating additional requirements for data access. For example, a message can make calls to a common subspace and other subspaces in the domain.

당사자의 노드에서 유지되는 블록의 각 사본은 서브스페이스에 의해 생성된 프라이버시 및 액세스 제한을 반영한다. 특히 당사자의 노드에는 당사자 및 노드가 권한이 부여된 서브스페이스의 데이터만 포함하는 블록 사본이 포함된다. 도 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)으로부터의 데이터를 갖지 않음을 의미한다. 노드가 권한이 부여되지 않은 서브스페이스에 대한 데이터를 수신하지 않기 때문에 서브스페이스는 완전히 사적 상태로 유지되며 이러한 데이터에 액세스할 수 없는 당사자나 노드에 데이터가 실수로 공개될 위험이 없다.Each copy of the block maintained at the party's node reflects the privacy and access restrictions created by the subspace. In particular, the node of the party includes a copy of the block that contains only the data from the subspace to which the party and node are authorized. As shown in the example of FIG. 8, the copy of block 800 maintained on Party A node contains only data located in a subspace to which Party A is authorized and accessible, where Party A node is a single party sub Means to include a copy of block 800 that contains data from space 804a, both subspaces 806ab and 806ac, and common subspace 808. Party A node means that Party A does not have data from an unauthorized subspace, so Party A node does not have any data from either subspace 804b or 804c, or both subspaces 806bc. . Likewise, the copy of block 800 maintained on the Party B node only contains data in the subspace to which Party B is authorized and has access, and does not include data in the subspace to which Party B is not authorized. , This includes a copy of block 800 where Party B node contains data from single party subspace 804b, quantum subspaces 806ab and 806ac and common subspace 808; This means that there is no data from the single-side subspace 804a or 804c or both-side subspace 806ac. Similarly, the copy of block 800 maintained at the Party C node only contains data in the subspace to which Party C is authorized and has access, and does not include data in the subspace to which Party C is not authorized. This includes a copy of block 800 where Party C node contains data from single party subspace 804c, quantum subspaces 806ac and 806bc, and common subspace 808; This means that it does not have data from either one side subspace 804a or 804b or both side subspace 806ab. Because the node does not receive data for sub-authorized subspaces, the subspace remains completely private and there is no risk of accidental disclosure of data to parties or nodes that cannot access this data.

도 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)로 구성됨). 이들 상태 루트는 본 명세서에서 더 상세히 설명되는 바와 같이 블록 헤더에 통합하기 위해 특정 서브스페이스 내에서 리더 노드에 의해 생성된다. 이러한 방식으로, 블록은 각 서브스페이스로부터 가장 최근에 제출된 상태 정보를 포함한다. 또한, 그리고 아래에서 더 논의되는 바와 같이, 사적 서브스페이스 블록 체인의 블록에 포함되기 전에, 주어진 서브스페이스 내에서 각각의 개별 메시지 또는 거래에 대한 검증 노드들 사이에서 합의가 이루어진다. 각 개별 메시지는 결과가 항상 예측 가능하고 신뢰할 수 있도록 합의 프로세스를 거쳐야 한다. 이는 유효성 검증기 노드가 받는 메시지의 순서를 안정적으로 결정할 수 없기 때문이다.9 is a diagram illustrating the creation of a block in a private subspace block chain based on an update to a subspace, according to an embodiment of the present invention. Initially, nodes in the network from Party A and Party B exchange messages 912 and 914 related to the transaction between the two parties, resulting in status AB2 for a series of transactions. Similarly, Party A and Party C exchange messages 926 regarding transactions between them, generating status AC1 for transactions between these two parties. After consensus and verification of these messages, a new block 902 of the new private subspace blockchain 900 is created as a secure record of these transactions and related information. The private subspace block chain 900 and the blocks therein have two bidirectional subspaces: subspace AB 908 corresponding to transactions between parties A and B, and sub corresponding to transactions between parties A and C. Space AC (910). Block 902 records messages 912 and 914 in subspace AB 908 and message 926 in subspace AC 910. In a preferred embodiment, each message in a particular subspace is stored in a subspace in a block form based on the blockchain principle, where each block in the chain has an associated hash value, and the current block using the hash value of the previous block Create a link between blocks by calculating the hash value of For example, the first message 912 is stored as a first block in the blockchain corresponding to subspace AB 908, and the second message is subsequently recorded in the blockchain. More specifically, messages in a particular subspace are stored in the subspace in the form of a private subspace blockchain, as disclosed herein, which may have additional subspaces (also in the form of a private subspace blockchain). In addition, state route AB2 908a is generated based on the message stored in the AB subspace (consisting of messages 912 and 914 at this point). The state root is a state key based on the data in the subspace, and is usually a hash value that is the result of a hash function performed on the data in the subspace. For example, the state root for each subspace can be the root of a hash tree, such as a Merkle tree; These state roots can be part of a larger hash tree that includes state roots for all subspaces, as discussed further herein. Similarly, state route AC1 910a is generated based on the message stored in the AC subspace (consisting of message 926 at this point). These state routes are created by leader nodes within a specific subspace to incorporate into the block header as described in more detail herein. In this way, the block contains status information most recently submitted from each subspace. Also, and as discussed further below, before being included in a block of a private subspace blockchain, an agreement is reached between verification nodes for each individual message or transaction within a given subspace. Each individual message must go through a consensus process so that the results are always predictable and reliable. This is because the validator node cannot reliably determine the order of messages received.

블록에서 서브스페이스에 대한 새로운 상태 루트의 생성은 또한 블록에 대한 전역 상태 루트로 업데이트된다. 이는 서브스페이스에 대한 상태 루트가 전역 상태 루트의 값을 초래하는 해시 함수에 대한 입력으로 사용되기 때문이다. 도 10은 서브스페이스의 상태 루트가 블록에 대한 전역 상태 루트의 값에 어떤 영향을 미치는지 보여준다. 도 9의 블록과 유사하게, 도 10의 블록(1000)은 2 개의 서브스페이스, 즉 서브스페이스 AB(1012) 및 서브스페이스 AC(1014)를 포함한다. 이들 서브스페이스 각각은 상태 루트: AB 상태 루트(1004) 및 AC 상태 루트(1014)를 각각 갖는다. 특정 서브스페이스 안에 추가 서브스페이스가 없는 경우(효과적으로 "서브서브스페이스") 특정 서브스페이스의 상태 루트는 체인의 최신 블록에 대한 해시 값일 수 있다. 서브스페이스가 그 안에 하나 이상의 다수의 서브스페이스(즉, 다수의 서브서브스페이스)를 갖는 경우, 서브스페이스에 대한 상태 루트는 하나 이상의 서브서브스페이스의 상태 루트 값에 기초하여 머클 트리와 같은 해시 트리의 루트일 수 있다. 이러한 방식으로, 각 서브스페이스는 재귀 데이터 구조 요소이고, 도 10에 도시된 바와 같이 블록 체인 구조의 계층구조로 구성될 수 있다. 서브스페이스 AB(1012)는 그 안에 다수의 서브스페이스(1008)를 가지며, 이들 서브스페이스의 상태 루트는 AB 상태 루트(1004)를 생성하는 해시 함수로의 입력으로 작용한다. 유사하게, 서브스페이스 AC(1014)는 그 안에 다수의 서브스페이스(1010)를 가지며, 이들 서브-서브스페이스의 상태 루트는 AC 상태 루트(1006)를 생성하는 해시 함수에 대한 입력으로서 작용한다. 서브스페이스의 유효성 검증기 노드는 서브스페이스의 상태 루트를 승인하거나 거부할 수 있다.The creation of a new state route for the subspace in the block is also updated with the global state route for the block. This is because the state root for the subspace is used as input to the hash function resulting in the value of the global state root. 10 shows how the state root of a subspace affects the value of the global state root for a block. Similar to the block of FIG. 9, block 1000 of FIG. 10 includes two subspaces, subspace AB 1012 and subspace AC 1014. Each of these subspaces has a state route: AB state route 1004 and AC state route 1014, respectively. If there are no additional subspaces within a particular subspace (effectively, "subsubspaces"), the state root of a particular subspace can be a hash value for the latest block in the chain. If a subspace has one or more subspaces within it (i.e., multiple subsubspaces), the state root for the subspace is based on the hash tree, such as the Merkle tree, based on the value of the state root of the one or more subsubspaces. It can be the root. In this way, each subspace is a recursive data structure element, and may be composed of a hierarchical structure of a blockchain structure as shown in FIG. 10. Subspace AB 1012 has a number of subspaces 1008 therein, and the state roots of these subspaces act as inputs to a hash function that creates AB state route 1004. Similarly, subspace AC 1014 has multiple subspaces 1010 therein, and the state roots of these sub-subspaces act as inputs to the hash function that creates AC state route 1006. The subspace's validator node can either approve or reject the subspace's status root.

도 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)에 추가된다.As shown in the example of FIG. 9, subsequent messages 916 and 918 are generated in relation to transactions in the AB subspace, resulting in a new state root AB4 908b for the AB subspace 908. Created and verified before these messages and new state routes are stored in the new block 904 of the private subspace blockchain 900. Similarly, a subsequent message 928 is generated for the transaction in AC subspace 910, thereby creating a new state root AC2 910b for the AC subspace. Message 928 and the new state route 910b are also verified before being stored in block 904. As further shown in FIG. 9, as additional messages (messages 930 and 932 in AB subspace 908, and 930 and 932 in AC subspace 910), correspondingly updated status routes (AB subspace 908 ) 'S state route AB6 908c and AC subspace 910's state route AC4 910c) are created, and these additional messages and state routes are verified and added to a new block in the chain (e.g., block 906 ). This process continues and additional blocks are added to the private subspace blockchain 900 as additional messages are exchanged in the subspace.

바람직한 실시예에서, 새로운 블록은 각 서브스페이스로부터 가장 최근에 제출된 상태 정보에 기초하여 고정된 시간 간격으로 생성된다. 대안으로서, 메시지 교환에 기초하여 새로운 블록이 생성될 수 있다. 예를 들어, 사적 서브스페이스 블록 체인의 서브스페이스와 관련된 메시지가 전송될 때마다 새로운 블록이 생성될 수 있다. 신규 또는 기존 블록 체인에 대한 새로운 블록의 생성은 또한 시스템(100) 외부의 이벤트를 포함하는 다른 이벤트에 기초하여 트리거될 수 있다.In a preferred embodiment, new blocks are created at fixed time intervals based on the most recently submitted status information from each subspace. As an alternative, a new block can be created based on the message exchange. For example, a new block may be created whenever a message related to a subspace in the private subspace blockchain is transmitted. The creation of a new block for a new or existing blockchain may also be triggered based on other events, including events outside the system 100.

블록 체인의 초기 블록인 생성 블록은 블록 체인상의 모든 노드에 대해 동일한 구성 파일에 따라 생성된다. 다른 모든 블록과 달리 생성 블록은 서명되지 않으며, 서명되지 않은 임의의 개수의 메시지를 포함할 수 있다. 예를 들어, "공통"서브스페이스가 포함된 "공용" 도메인의 경우, 생성 블록에는 권한 관리를 위한 전용 스크립트 또는 스마트 계약(예: "chainperm"스크립트)을 배포하고 이러한 전용 스크립트 또는 스마트 계약에 검증기 노드의 초기 세트를 등록하는 메시지가 포함된다. The creation block, which is the initial block of the blockchain, is generated according to the same configuration file for all nodes on the blockchain. Unlike all other blocks, the generation block is unsigned and can contain any number of unsigned messages. For example, in the case of a “public” domain with a “common” subspace, the creation block deploys a dedicated script or smart contract for permission management (such as a “chainperm” script) and a verifier on that dedicated script or smart contract. Contains a message that registers the initial set of nodes.

이 시스템은 사적 서브스페이스 블록 체인에 대한 분산 합의 알고리즘을 사용한다. 이 알고리즘은 악의적인 행위자에 대한 강력한 암호화 보호 기능으로 설계되었으며 비잔틴 결함 허용(BFT) 보호 기능을 사용한다. 바람직한 실시예에 따르면, 합의 알고리즘은 다음과 같이 기능한다. 먼저, 서브스페이스에서 유효성 검증 노드로 권한이 부여된 노드가 리더 노드를 선택한다. 그런 다음 리더 노드는 서브스페이스의 나머지 유효성 검증 노드에 메시지 및 블록을 알리는 역할을 하며, 이들은 팔로워 노드로 작용한다. 팔로워 노드는 암호화 서명 형식의 승인을 통해 리더에게 응답하여 새 메시지 및 블록에 사인 오프한다. 팔로워 노드의 상대적 다수(50 % 이상)가 승인하면 리더 노드는 새 메시지의 유효성 또는 새 블록의 확인을 팔로워 노드에 알린다. 합의 프로세스에 참여하지 않는 네트워크의 다른 노드는 메시지 또는 블록에서 서명을 확인하여 메시지 또는 블록이 상대적 다수의 검증 노드에 의해 승인되었음을 신뢰할 수 없는 방식으로 검증할 수 있다.The system uses a distributed consensus algorithm for private subspace blockchains. The algorithm is designed with strong cryptographic protection against malicious actors and uses Byzantine Fault Tolerance (BFT) protection. According to a preferred embodiment, the consensus algorithm functions as follows. First, a node that is authorized as a validation node in a subspace selects a leader node. The leader node then serves to inform the remaining validation nodes in the subspace of messages and blocks, which act as follower nodes. The follower node responds to the reader with a cryptographic signature type of approval to sign off new messages and blocks. When the relative majority (more than 50%) of the follower nodes approve, the leader node informs the follower node of the validity of the new message or confirmation of the new block. Other nodes in the network that do not participate in the consensus process can verify the signature in the message or block in an unreliable way that the message or block has been approved by a relatively large number of verification nodes.

도 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 클러스터는 트랜잭션 생성 메시지를 수신하지 않으며 트랜잭션 생성 메시지를 인식하지 못한다.11A-11D provide examples of message propagation and verification processes for subspaces, and subsequent block generation processes, according to embodiments of the present invention. 11A shows the generation and communication of an initial transaction creation message. In the example shown in FIG. 11A, the party node representations 1104, 1106 and 1108 represent a cluster of nodes managed by the party, in this case party A, party B and party C, respectively. The cluster of nodes 1104, 1106, 1108 and service node 1102 are communicatively connected via a peer-to-peer communication network. The service node 1102 transmits a transaction creation message for a transaction between Party A and Party B. The transaction creation message includes a transaction condition, may take the form of a self-executing script or a smart contract, and further includes an associated subspace identifier, in this case AB subspace. In particular, because the party C is not authorized in the AB subspace and therefore cannot access transaction information on the AB subspace, the service node 1102 does not send a transaction creation message to the party C cluster of node 1108, and the node ( Party A of 1104 and Party B clusters of node 1106 do not propagate transaction generation messages to Party C clusters of node 1108, as further described herein. As a result, the party C cluster of the node does not receive the transaction creation message and does not recognize the transaction creation message.

도 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 서브스페이스에서 권한이 없기 때문에 메시지를 수신하지 않는다.11B and 11C, each message is propagated to all verification nodes in the authorized network on the associated subspace to facilitate the verification and block creation process. First, the service node sends a message to all validation nodes connected to the authorized service node in the relevant subspace of the message. 11B, service nodes 1110 and 1102 are non-verifying nodes used as entry points for sending messages. Service node A 1110 receives a transaction creation message from service node 1102, and identifies that the message is related to the AB subspace. Consequently, service node A 1110 propagates the message from service node 1102 to all verification nodes with an AB subspace. The identification of the verification node for a particular subspace can be contained within a block in the private subspace blockchain or managed by a script or smart contract located in the private subspace blockchain. For example, in one embodiment, a dedicated script or smart contract (eg, "chainperm" script) for managing rights is placed in a common subspace of the generation block. To authorize the node, the message chainperm contract with the name of the new node, the Public Transport Layer Security ID (TLS-ID), the public signing address, and a list of domains and subspaces that the node can access and / or verify. Is sent to. Validator permissions are granted at the domain level, and observer (non-validator) access can be granted at the subspace level. Suppose that all nodes that allow connections to other nodes can access and verify the chainfirm contract, at least because they have access to the "common" subspace. Since data in the blockchain ensures that all nodes in the network are synchronized, all nodes view the chainperm contract at a consistent time and accept / deny node connections accordingly. In the example shown in FIG. 11B, the server nodes are nodes Al 1112a and A2 1112b in the Party A cluster of node 1104 and nodes B1 1114a and B2 1114b in the Party B cluster of node 1106. ) As a validation node for the subspace. Again, the Party C node does not receive the message because it is not authorized in the AB subspace.

둘째로, 서버 노드에 의해 메시지가 관련 서브스페이스에서 허가된 연결된 검증 노드로 전파된 후에, 검증 노드는 래프트 합의 프로토콜과 같은 합의 프로세스를 통해 메시지의 검증을 진행하지만, 회전 리더 메커니즘과 같은 다른 합의 알고리즘이 사용될 수도 있다. 도 11c에 도시된 바와 같이, 랜덤화된 프로세스는 합의 프로세스를 위한 리더 노드, 즉 노드 A1(1112a)을 선택하는데 사용된다. 선출된 리더는 해당 서브스페이스에서 권한이 부여된 리더가 연결된 다른 모든 검증 노드에 의한 투표를 위해 수신한 메시지를 제안한다. 도시된 예에서, 리더 노드 A1(1112a)은 허가된 서브스페이스의 다른 검증 노드, 즉 노드(1104)의 당사자 A 클러스터의 노드 A2(1112b) 및 노드(1106)의 당사자 B 클러스터의 노드 B1(1114a) 및 B2(1114b)에 의한 투표를 위해 서비스 노드(1102)로부터 수신된 메시지를 제안한다. (특정 합의 프로토콜에 의해 결정되며 소정 시간의 경과(시간만료)에 의해 결정될 수 있는 또는 모든 또는 충분한 수의 투표 검증 노드로부터 투표 수신에 의해 결정될 수 있는) 투표 기간의 종료시, 그리고 충분한 수의 투표를 수신하였다고 가정하여, 상태 루트가 블록 헤더에 포함되도록 제출된다.Second, after the message is propagated by the server node from the associated subspace to the authorized connected verification node, the verification node proceeds with the verification of the message through a consensus process, such as the Raft Consensus Protocol, but other consensus algorithms, such as rotation leader mechanisms. This can also be used. As shown in FIG. 11C, the randomized process is used to select a leader node, ie node A1 1112a, for the consensus process. The elected leader proposes the message received for voting by all other verification nodes to which the authorized leader is connected in the subspace. In the illustrated example, leader node A1 1112a is another verification node in the authorized subspace, that is, node A2 1112b of party A cluster of node 1104 and node B1 1114a of party B cluster of node 1106. ) And B2 1114b to propose a message received from the service node 1102 for voting. At the end of the voting period (determined by a specific consensus protocol and can be determined by a certain amount of time elapsed (timeout) or by receiving voting from all or a sufficient number of voting verification nodes), and a sufficient number of votes Assuming that it has been received, the status route is submitted to be included in the block header.

서브스페이스에 대한 상태 루트가 블록 헤더에 포함되도록 승인되면, 네트워크에 대한 업데이트된 블록이 생성될 수 있다. 일 실시예에 따르면, 시스템에 대한 검증 노드 중 하나가 블록의 생성을 위한 리더로서 무작위로 선택된다. 그런 다음 모든 서브스페이스 리더는 각각의 상태 루트를 블록 리더에게 제출한다. 도 11d에 도시된 예에서, 노드(1108)의 당사자 C 클러스터 내의 노드(예를 들어, 노드 C1)는 블록의 생성을 위한 리더로서 무작위로 선택된다. 따라서 AB 서브스페이스 리더 A1(1112a)과 같은 모든 서브스페이스 리더는 각각의 선택된 상태 루트를 블록 리더, 즉, 노드(1108)의 당사자 C 클러스터의 노드 C1에 제출한다. 블록 리더로서 노드 C1은 서브스페이스로부터 상태 루트들을 조합하여, 전역 상태 루트와 업데이트된 블록 헤더를 결정하고, 네트워크의 팔로워 노드로부터 업데이트된 블록 헤더의 승인을 요청한다. 팔로워 노드는 블록 리더의 업데이트된 블록 헤더를, 블록 헤더의 자체 결정과 비교하고, 블록 리더에 대한 승인을 나타낸다. 승인을 받으면 블록 리더(이 예에서는 노드 C1)가 사적 서브스페이스 블록 체인 내 공식 블록을 생성하여, 모든 서브스페이스로부터 상태 루트를 통합한다. If the status route for the subspace is approved to be included in the block header, an updated block for the network can be created. According to one embodiment, one of the verification nodes for the system is randomly selected as a leader for the generation of blocks. All subspace leaders then submit their respective state routes to the block leader. In the example shown in FIG. 11D, nodes in a party C cluster of node 1108 (eg, node C1) are randomly selected as a leader for the creation of the block. Thus, all subspace leaders, such as AB subspace leader A1 1112a, submit each selected state route to a block leader, ie node C1 of the party C cluster of node 1108. As a block leader, node C1 combines the state routes from the subspace to determine the global state route and the updated block header, and requests approval of the updated block header from the network's follower node. The follower node compares the updated block header of the block leader with its own determination of the block header, and indicates approval for the block leader. Upon approval, the block leader (node C1 in this example) creates an official block in the private subspace blockchain, consolidating state routes from all subspaces.

도 12a-g는 본 발명의 일 실시예에 따른 합의 프로세스의 추가의 상세한 예시를 제공한다. 전술한 바와 같이, 전체 시스템은 전형적으로 도 19에 도시된 바와 같이 다수의 도메인 및 서브스페이스를 포함한다. 각 도메인은 하나 이상의 서브스페이스를 포함하고, 각 서브스페이스는 정확히 하나의 도메인에 포함된다. 각 도메인에는 기원 블록(genisis block)에서 시작되는 자체 사적 서브스페이스 블록 체인이 있다. 합의 프로세스는 도메인에 대해 실행된다. 그런 의미에서 서브스페이스는 리더 노드나 팔로워 노드를 직접 가지지 않지만 서브스페이스가 포함된 도메인에는 리더와 팔로워 노드가 있다. 각 도메인에는 고유한 유효성 검증기 노드 세트가 있다. 하나의 유효성 검증기 노드는 하나 이상의 도메인을 유효성 검증할 수 있다. 그러나 합의 프로세스는 각 도메인에 대해 독립적으로 실행된다. 즉, 두 도메인의 유효성을 검사하는 유효성 검증기 노드는 합의 프로세스의 두 개의 개별 인스턴스를 실행한다. 결과적으로 유효성 검증기 노드는 한 도메인에서 리더십을 "승리"할 수 있지만 다른 도메인에서는 팔로워 역할을 할 수 있다. 바람직한 실시예에서, 합의 프로세스의 하나의 구현 만이 있으며, 이는 모든 도메인에 대해 동일하다.12A-G provide further detailed examples of the consensus process according to one embodiment of the present invention. As described above, the entire system typically includes multiple domains and subspaces as shown in FIG. 19. Each domain contains one or more subspaces, and each subspace is included in exactly one domain. Each domain has its own private subspace blockchain starting at the genesis block. The consensus process is executed for the domain. In this sense, the subspace does not have a leader node or a follower node directly, but the domain containing the subspace has a leader and follower node. Each domain has its own set of validator nodes. One validator node can validate one or more domains. However, the consensus process runs independently for each domain. In other words, the validator node that validates the two domains runs two separate instances of the consensus process. As a result, the validator node can "win" leadership in one domain, but can act as a follower in another domain. In the preferred embodiment, there is only one implementation of the consensus process, which is the same for all domains.

바람직한 실시예에서, 시스템에 의해 사용되는 합의 프로세스는 도시된 바와 같이 비잔틴 결함 허용(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가 현재 리더라는 정보를 저장한다. 거래가 없는 경우 선출된 리더는 고정된 간격으로 모든 팔로워에게 정기적인 하트비트 메시지를 보낸다. 선택된 리더 노드로부터 유효한 주기 메시지를 수신하는 한, 노드는 팔로워로 유지된다. 현재 리더가 응답하지 않고 주기적 하트 비트 메시지를 보내지 못하면 새로운 리더 선거가 실시되어 새로운 상대적 다수 투표를 얻는다.In a preferred embodiment, the consensus process used by the system is a Byzantine Fault Tolerance (BFT) raft consensus process as shown. This process includes an election process and a verification process to determine the leader. 12A-C illustrate the election process according to one embodiment of the present invention. As shown in this example, there are five verify nodes A-E (nodes 1202, 1204, 1206, 1208 and 1210) that verify messages and transactions for a given subspace. There are no leader nodes at the beginning of the process, and all nodes are considered followers. Each follower node waits for a random amount of time (“timeout”) before attempting to start an election and designating itself as a candidate node requesting a verification vote from another verification node. As shown in FIG. 12B, node A 1202 reaches the timeout before another verification node (or before receiving a request for a verification vote from another verification node), becomes a candidate node, and sends the request. The candidate node sends a request to each connected verification node that is authorized in the associated subspace to request a confirmation vote or a “yes” vote. The timeout of each node is randomized over a sufficiently long period of time (depending on network latency conditions) to optimize the probability that only one node will be first candidate. Each node sends an acknowledgment vote or a “yes” vote to the candidate node with the request being received first. In other words, each follower node votes which candidate first contacts the follower node as the election request. Candidates with a sufficient number of votes are elected leaders. Election success requires a relatively large number of followers to vote. In addition, to ensure the integrity of the voting process, all verification procedures, followers 'votes are signed by the node generating the vote, and the validity of all followers' vote signatures is verified. After a follower vote is sent, a candidate with a sufficient number of confirmation votes sends a message to the follower, confirming the election results and confirming that he has been elected leader. 12C, node A 1202, which has timed out and has sent a voting request prior to any other follower node, has four follower nodes B 1204, C 1206, D 1208, and E ( 1210) A confirmation vote is received from each. Node A 1202 verifies the signature in the vote, and after verifying the vote, sends a confirmation message to the four followers nodes confirming the election result that identifies Node A 1202 as the leader, and accordingly The follower node stores information that node A is the current leader. If there are no transactions, the elected leader sends a regular heartbeat message to all followers at fixed intervals. As long as a valid periodic message is received from the selected leader node, the node remains a follower. If the current leader does not respond and fails to send a periodic heartbeat message, a new leader election is held to obtain a new relative majority vote.

특정 블록 또는 특정 도메인에 대한 검증 노드들 중에서 리더가 선출되면, 노드들은 서브스페이스 내에서 트랜잭션 검증 및 블록 생성 프로세스를 계속할 수 있다. 무화과 도 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 메시지를 서브스페이스에 프리-커밋하도록 승인을 전송한다.If a leader is elected among the verification nodes for a specific block or a specific domain, the nodes can continue the transaction verification and block generation process within the subspace. Fig. 12d-g illustrates the consensus process according to one embodiment of the present invention. After selecting a leader node, all follower nodes recognize which node is the leader node of a particular block or subspace. The leader is responsible for creating a block at the end of each consensus "condition", where each consensus condition lasts only for a certain period of time (eg somewhere between 1 to 3 seconds, preferably 2 seconds) or in the system. It can only last until a certain event occurs. During each condition, the leader is responsible for pre-committing transactions and messages to subspace data. At the end of the condition, pre-committed transactions and messages are approved by the follower, where the official block is completed and committed to the private subspace blockchain. 12D, after the election, all follower nodes recognize that Node A 1202 is the leader of the confirmed election. When a message is received by a node, the message is propagated by that node according to the peer-to-peer message propagation described herein. For example, as shown in FIG. 12E, Node B 1204 receives a message indicating a particular transaction (Tx 1) and sends the message to all other nodes in the system (Node A 1202, Node C 1206). , By responding to node D 1208 and node E 1210. The nodes A, C, D and E in turn propagate messages to all other verification nodes in the network, including the selected leader node A (12012). Upon receiving the propagated message, the leader node sends a message to all follower nodes requesting approval, pre-committing the message to the private subspace. Each follower node examines the message in the approval request from the leader node, and the follower node sends an approval message to the leader node. The message is authorized to be pre-committed by the follower node if it meets certain criteria to ensure that the message is valid, including the appropriate signature and appropriate nonce value. In the preferred embodiment, if the message is (i) correctly formatted (complies with the message structure defined by the p2p protocol), (ii) signed, and (iii) has a nonce value equal to the expected nonce of the sending account, the follower It is authorized to be pre-committed by the node. When a relative majority of the follower nodes send an acknowledgment for pre-commit, the reader pre-commits the message to the subspace. The number corresponding to a relatively large number of follower nodes is determined by the number of nodes authorized to access the common subspace. As shown in the example of FIG. 12F, reader node A 1202, which has received the message indicative of transaction Tx 1, sends a message to all follower nodes requesting approval to pre-commit the message to the associated subspace. The follower nodes 1204, 1206, 1208, and 1210 determine that the Tx 1 message sent by the leader node A 1202 is valid, and the leader node A 1202 approves to pre-commit the Tx 1 message to the subspace. To send.

리더 노드는 조건이 종료될 때까지 상기 프로세스에 따라 메시지를 계속 수신, 승인 및 프리-커밋한다. 조건이 끝나면 리더 노드는 프리-커밋된 모든 메시지를 포함하는 공식 블록을 만들고, 모든 팔로워 노드에 승인 요청과 함께 블록 사본을 보낸다. 리더 노드가 상대적 다수의 팔로워 노드로부터 승인 메시지를 수신하면, 블록이 완성되어 사적 서브스페이스 블록 체인에 커밋된다. 블록이 완료되고 사적 서브스페이스 블록 체인에 추가된 직후 새로운 조건이 시작된다. 리더는 여러 조건 동안 서빙할 수도 있고, 또는, 각각의 조건의 시점에서 선출될 수도 있다. 조건 번호는 선거가 있을 때마다 증분된다. 블록은 조건을 종료시키지 않는다. 따라서 리더는 하나의 조건 동안 선출되지만, 계속 블록을 만든다면 다수의 시간/날짜/주 동안 리더로 활동할 수 있다. 재선이 있을 경우, 새로운 리더가 결정될 때까지 각 선거 라운드마다 조건 번호가 증분된다. 새 리더는 이전 리더와 동일할 수 있다. 도 12g의 계속적인 예에서 도시된 바와 같이, 기간 동안 리더 노드는 트랜잭션 Tx 1, Tx 2 및 Tx 3에 대응하는 메시지를 수신하고 프리-커밋했다(팔로워 노드로부터 승인 후). 조건 만료시, 리더 노드 A는 공식 블록을 생성하여, 승인을 위해 팔로워 노드인 노드 B(1204), 노드 C(1206), 노드 D(1208) 및 노드 E(1210)로 발송한다. 리더 A가 상대적 다수의 팔로워 노드로부터 승인 메시지를 수신하면 블록을 사적 서브스페이스 블록 체인에 커밋한다. 그 후, 후속 메시지가 새로운 블록으로 프리-커밋되면서 새로운 조건이 시작된다. The leader node continues to receive, acknowledge and pre-commit messages according to the above process until the condition is over. When the condition is over, the leader node creates an official block containing all the pre-committed messages, and sends a copy of the block with an approval request to all follower nodes. When the leader node receives an acknowledgment message from a relatively large number of follower nodes, the block is completed and committed to the private subspace blockchain. A new condition begins immediately after the block is completed and added to the private subspace blockchain. The leader may serve for a number of conditions, or may be elected at the time of each condition. The condition number is incremented with each election. The block does not terminate the condition. Thus, a leader is elected for a single condition, but if you keep making blocks, you can act as a leader for multiple hours / dates / weeks. If there is a re-election, the condition number is incremented for each election round until a new leader is determined. The new leader may be the same as the previous leader. As shown in the continuous example of FIG. 12G, during the period, the leader node has received and pre-committed the messages corresponding to transactions Tx 1, Tx 2 and Tx 3 (after approval from the follower node). Upon expiration of the condition, the leader node A creates a formal block and sends it to the follower nodes Node B 1204, Node C 1206, Node D 1208 and Node E 1210 for approval. When leader A receives an acknowledgment message from a relatively large number of follower nodes, it commits the block to the private subspace blockchain. Then, a new condition is started as the subsequent message is pre-committed to a new block.

본 명세서의 다른 곳에서 언급된 바와 같이, 노드 허가는 서브스페이스마다이다. 특히, 검증 노드의 수는 서브스페이스마다 상이할 수 있다. 예를 들어, 도 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 개의 검증 노드가 동일하게 투표하지 않기 때문에 수용할 수 없는 실패 위험을 수반하기 때문이다.As mentioned elsewhere in this specification, node permissions are per subspace. In particular, the number of verification nodes may be different for each subspace. For example, as shown in Figs. 13 and 14, a node's peer-to-peer network according to the present invention may include a number of verification nodes corresponding to several parties, but a node is authorized to serve as a verification node. It can be different in terms of space. As shown in FIG. 13, the Party A cluster of the node 1300 includes the node AO 1300a, the node A1 1300b, and the node A2 1300c, which are verification nodes; The party B cluster of node 1302 includes node BO 1302a, node B1 1302b, node B2 1302c, which are verification nodes; Party C cluster of node 1034 detects nodes (CO) 1304a, node C1 1304b, node C2 1304c, which are verification nodes, all of which access system network 1308 And communicate with each other based on their type and authority. However, as shown in Fig. 14, the nodes are all verification nodes, but the subspaces permitted as verification nodes are different. For example, node AO 1300a is allowed as a verification node only in subspace A 1408, AB 1400 and AC 1402, but is not a common subspace 1406 (node AO is allowed as a peer node for the common subspace). Can, but thus access the data in that subspace). As another example, node B2 1302c is allowed as a verification node in B-only subspace 1410 and common subspace 1406 but not AB subspace 1400 or BC subspace 1404 (node B2 is AB And as a peer node for the BC subspace, but can thus access data in that subspace). However, in any implementation, less than 3 verification nodes for a subspace are not optimal, which is acceptable because using only 2 verification nodes in a subspace does not equally vote for 2 verification nodes in the approval process. This is because it carries an unprecedented risk of failure.

사적 서브스페이스 블록 체인에 블록을 추가하는 것에 관한 상기 논의로부터 알 수 있는 바와 같이, 이러한 분산된 데이터 구조는 시간이 지남에 따라 그리고 사적 서브스페이스 블록 체인의 메시지 및 블록의 수가 증가함에 따라 상대적으로 커질 수 있다. 전통적인 블록 체인 구조와는 달리, 본 명세서에 개시된 사적 서브스페이스 블록 체인은 여기서 개시되는 바와 같이 신규한 프루닝 프로세스(pruning process)를 통해 크기 감소될 수 있고, 이러한 프루닝 프로세스는 사적 서브스페이스 블록 체인의 데이터 무결성을 유지하고, 데이터를 검증하고 합의 프로세스를 유지하는 능력을 보장한다. 사적 서브스페이스 블록 체인을 제거(프루닝)하면 데이터 구조에 필요한 메모리가 크게 줄어들어 하드 디스크 공간이 절약되고 데이터 스토리지와 관련된 효율성이 향상된다. 또한, 사적 서브스페이스 블록 체인을 정리하면 당사자들이 기존의 블록 체인 구조로는 불가능한 데이터 보존 및 폐기 정책을 준수할 수 있다.As can be seen from the above discussion of adding blocks to the private subspace blockchain, these distributed data structures grow relatively large over time and as the number of messages and blocks in the private subspace blockchain increases. You can. Unlike the traditional blockchain structure, the private subspace blockchain disclosed herein can be reduced in size through a new pruning process as disclosed herein, and this pruning process is a private subspace blockchain Ensures the ability to maintain data integrity, verify data and maintain the consensus process. Eliminating (pruning) the private subspace blockchain significantly reduces the memory required for the data structure, saving hard disk space and improving the efficiency associated with data storage. In addition, organizing private subspace blockchains allows parties to comply with data retention and destruction policies that are not possible with existing blockchain structures.

본 명세서에 기술된 프루닝 프로세스는 시간 기반 기준과 같은 미리 결정된 기준에 기초하여 트리거된다. 예를 들어, 사적 서브스페이스 블록 체인은 메시지 생성 후 2 년 또는 3 년과 같이 일정 시간이 지나면 메시지 및 블록을 제거할 수 있다. 이 시간은 규제 정책 또는 당사자 자신의 데이터 보존 정책에 따라 결정될 수 있다. 메시지 및 블록을 삭제하기 위해 프루닝 프로세스를 개시하기 위한 미리 결정된 기준은 서브스페이스 단위로 구현될 수 있고, 이는 각각의 서브스페이스가 프루닝에 대한 자체 정책 및 기준을 가질 수 있음을 의미한다. 또한, 다른 당사자는 당사자 노드 및 데이터 저장소에서 유지 관리되는 사적 서브스페이스 블록 체인을 정리하기 위해 다른 정책 및 기준을 활용할 수 있다. 바람직한 실시예에서, 각각의 경우에, 프루닝 정책 및 프루닝 프로세스를 트리거하는 기준은, 예를 들어, 자체 실행 스크립트 또는 사적 서브스페이스 블록 체인에 구현된 스마트 계약에서와 같이 사적 서브스페이스 블록 체인 자체에서 유지된다. 시스템(100)의 코어 모듈(104)은 제거 프로세스를 관리한다. 코어 모듈(104)은 각각의 사적 서브스페이스 블록 체인으로부터 프루닝 정책을 불러들이고 이러한 정책에 따라 프루닝 프로세스를 트리거하는 기준을 모니터링한다. 일단 기준이 충족되면, 코어 모듈(104)은 (블록 내 다양한 서브스페이스의 상태 루트와 같은) 블록 및 메시지의 해시를 보존하면서 이와 동시에 제거(프루닝)될 수 있는 메시지들의 특성을 식별하는 한 세트의 기준 또는 필터에 기초하여 블록 및 메시지를 삭제함으로써, 프루닝 프로세스를 구현한다. 예를 들어, 제거 프로세스는 특정 계약 또는 계약 세트의 블록 및 메시지를 제거하거나 지정된 보존 날짜가 지난 블록 및 메시지를 제거할 수 있다. 정리 프로세스 중에 모든 해시 값이 유지되므로 합의 프로세스에는 영향을 미치지 않는다. 그러나 제거 프로세스로 인해 삭제된 블록 및 메시지에 액세스하려고하면 데이터가 제거되었음을 나타내는 오류가 발생한다.The pruning process described herein is triggered based on predetermined criteria, such as time-based criteria. For example, a private subspace blockchain can remove messages and blocks after a certain period of time, such as 2 or 3 years after message creation. This time may be determined according to the regulatory policy or the party's own data retention policy. The predetermined criterion for initiating the pruning process to delete messages and blocks can be implemented in subspace units, which means that each subspace can have its own policy and criteria for pruning. In addition, different parties can utilize different policies and criteria to clean up the private subspace blockchain maintained by the party nodes and data stores. In a preferred embodiment, in each case, the pruning policy and criteria that trigger the pruning process are the private subspace blockchain itself, for example, in a self-executing script or a smart contract implemented in the private subspace blockchain. Is maintained at. The core module 104 of the system 100 manages the removal process. The core module 104 retrieves the pruning policies from each private subspace blockchain and monitors criteria that trigger the pruning process according to these policies. Once the criteria are met, the core module 104 preserves a hash of the blocks and messages (such as the state roots of the various subspaces in the block) while at the same time identifying a set of messages that can be removed (pruned). Pruning process is implemented by deleting blocks and messages based on criteria or filters. For example, the removal process can remove blocks and messages from a specific contract or set of contracts, or blocks and messages past a specified retention date. During the cleanup process, all hash values are maintained, so the consensus process is not affected. However, when I try to access the deleted blocks and messages due to the removal process, I get an error indicating that the data has been removed.

프루닝 프로세스는 상태 데이터베이스(예를 들어, 머클 트리(Merkle Tree))에서 데이터의 제거를 제공하며, 이는 전술한 바와 같이 데이터 보존 정책 및 공간 절약을 준수할 수 있게 한다. 각 데이터 객체(예: 각 인스턴스화된 스마트 계약)는 해당 상태 데이터베이스에 객체의 형태로 존재한다. 데이터 보유 정책 또는 기타 이유로 객체를 제거할 때 시스템은 최소한 다른 참여자가 다른 데이터 보유 정책을 구현할 수 있는 이유로 트리의 상태 루트가 변경되지 않도록해야 한다. 다른 데이터 보존 정책을 가진 당사자간에 합의를 유지하기 위해, 데이터베이스에서 객체를 제거하여도 트리의 상태 루트를 변경할 수 없다. 합의 유지를 보장하면서 데이터를 제거하기 위해, 본 명세서에 기술된 프루닝 프로세스는 모든 이웃 트리 노드를 루트까지 줄곧 해시할 때(예를 들어, 머클 트리 해싱) 동일한 루트 해시가 마치 객체가 자리에 있었던 것처럼 계산됨을 보장한다. 이와 관련하여, 객체를 제거하기 위해 시스템은 데이터 객체 트리 노드를 유지하지만 객체에서 모든 페이로드를 제거한다. 지속되는 것은 데이터 객체의 주소와 트리 노드의 해시이다. 또한 데이터 객체는 "정리 됨"으로 표시되거나 페이로드가 제거된 것으로 표시된다. 액세스할 때 해당 양식의 데이터 객체는 "제거된" 것으로 식별되므로 시스템이 존재하지 않는 데이터 객체와 제거된 데이터 객체를 구별할 수 있다. 정리 프로세스 후 객체에 보유된 정보(예: 데이터 객체의 주소 및 해시)는 원래 데이터 페이로드의 복구를 허용하지 않는다.The pruning process provides for the removal of data from the state database (eg, Merkle Tree), which enables compliance with data retention policies and space savings as described above. Each data object (e.g., each instantiated smart contract) exists as an object in its state database. When removing objects for data retention policies or other reasons, the system should ensure that the state root of the tree does not change, at least for reasons other participants may implement different data retention policies. To maintain agreement between the parties with different data retention policies, removing the object from the database does not change the state root of the tree. In order to remove data while ensuring consensus is maintained, the pruning process described herein is the same root hash as if the object was in place when all neighbor tree nodes hashed all the way to the root (e.g., Merkle tree hashing). It is guaranteed to be calculated as if. In this regard, to remove an object, the system maintains a data object tree node, but removes all payloads from the object. What is persisted is the address of the data object and the hash of the tree node. Also, the data object is marked as "cleaned up" or the payload is removed. When accessed, the data object of the form is identified as "removed", so the system can differentiate between the data object that does not exist and the data object that has been removed. After the cleanup process, the information held in the object (eg, the address and hash of the data object) does not allow recovery of the original data payload.

일 실시예에서, 제거된 데이터 페이로드의 복구를 방지하기 위해 데이터 객체의 트리 노드에 추가 정보가 임베딩된다. 특정 상황에서, 단순히 데이터 페이로드를 삭제하면 일치하는 해시가 발견될 때까지 제거된 값을 추측하는 등과 같이, 데이터를 복원하려는 노력을 무력화하려는 시도에 데이터 객체가 빠질 수 있다. 예를 들어 블록 체인이 하나의 계약 유형에만 사용되고 계약의 유일한 필드가 날짜와 값인 경우, 공격자는 매칭 해시가 발견될 때까지 계약 바이트코드를 모든 합리적인 날짜와 값 조합과 매칭시키는 트리 노드를 생성할 수 있다. 이러한 공격으로부터 보호하기 위해, 솔트(즉, 해싱 정보를 위한 추가 입력으로 사용되는 임의의 데이터)가 각각의 사적 서브스페이스 블록 체인의 각 트리 노드에 임베딩되어, 모든 비-무작위 데이터를 알고 있더라도, 무차별 대입 및 무작위 추측 시도를 통해 제거된 데이터를 복구하려는 시도를 더 어렵게 만들 수 있다. In one embodiment, additional information is embedded in the tree node of the data object to prevent recovery of the removed data payload. In certain situations, simply deleting the data payload can cause the data object to fall into an attempt to neutralize the effort to restore the data, such as guessing the value removed until a matching hash is found. For example, if the blockchain is only used for one contract type and the only field in the contract is a date and value, an attacker could create a tree node that matches the contract bytecode with all reasonable date and value combinations until a matching hash is found. have. To protect against such attacks, salts (i.e., random data used as additional input for hashing information) are embedded in each tree node of each private subspace blockchain, so that even if all non-random data is known, it is indiscriminate Substitutions and random guess attempts can make it more difficult to attempt to recover the removed data.

도 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 인증서의 유효성을 검증한다. 추가로 또는 대안으로서, 노드는 서명 기관을 사용하지 않고 자체 서명할 수 있다.5 provides an example of a secure communication process between nodes in the network of system 100. In a preferred embodiment, system 100 uses Transport Layer Security (TLS) functionality for authentication and identity management. The secure communication process includes a two-way authentication procedure, where the node accepting the connection (accepting node) verifies that the credentials of the connecting node (the connecting node) are approved (e.g., security certificate), and the connecting node is eligible for the accepting node. Verify that the proof has been approved. In the preferred embodiment, the bidirectional process requires that the accepting node confirms that the TLS certificate of the connecting node has been approved, and that the connecting node confirms that the TLS certificate of the accepting node has been approved. Before the node is successfully authenticated and communicates with other nodes on the network, a hash value of the node's security certificate (eg, TLS certificate) must be registered in the system 100. In one embodiment, each node's certificate is registered by the core module 104 of the peer registry 512, 514, with each node maintaining a copy of the peer registry. In this registration, the security certificate must be associated with the node type (validation, peer or service) so that each node's TLS certificate is registered as being associated with a specific role. As shown in FIG. 5, when establishing a connection with another node in the system network, Node A, which is the first node 502, can first communicate with the TLS module 514 of Node B, which is the second node 508. Through the use of the connected TLS module 504, a TLS handshake procedure is performed. The initial exchange and verification of TLS certificates is according to the TLS protocol specification. As part of the handshake process, in addition to or alternative to the TLS protocol specification process, Node B provides an identity in the form of its digital certificate, the TLS certificate. Node A verifies the validity of Node B's TLS certificate by checking whether the TLS certificate is registered in peer registry 512. Additionally or alternatively, the node can self-sign without using a signing authority.

시스템(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) 기능이 암호화 뿐만 아니라 시스템의 인증에도 사용되므로 이전 시스템에 비해 상당한 이점을 제공한다.The system 100 implements a second verification step that checks whether the TLS certificate is approved in the peer registry (eg, "chainperm" script or contract). This is done only after the TLS certificate exchange is completed and before the connection is used for blockchain purposes. Referring to FIG. 5, the peer registry 512 corresponds to a dedicated script or smart contract (eg, "chainperm" script) for managing rights. When the TLS certificate returned by Node B is registered in the peer registry 512, Node A, the connecting node, determines that the TLS certificate of Node B, which is the accepting node, has been approved, and accordingly Node A 502 receives the session key. Based on this, the data is encrypted, and the data and its TLS certificate are transmitted to the Node B 508 via the network 510. Node B verifies Node A's TLS certificate by checking whether the TLS certificate provided by Node A is out of registration in peer registry 514 through the use of TLS module 506. If the TLS certificate returned by Node A is registered in the peer registry 514, Node B, the accepting node, determines that the TLS certificate of Node A, which is the connecting node, has been approved, and accordingly Node B 508 interprets the message. To retrieve the data in the message and process the data accordingly. This secure communication process provides significant advantages over previous systems because the Transport Layer Security (TLS) function is used for authentication of the system as well as encryption.

연결 프로세스를 통해, 노드는 또한 연결된 각 노드의 유형을 결정한다. 위에서 논의한 바와 같이, 각 노드는 시스템에서 특정 유형(유효성, 피어, 서비스)으로 등록되며, 각 노드는 다른 서브스페이스 및 도메인에 대해 다른 노드 유형으로 승인될 수 있다. 이 등록 정보는 전용 피어 레지스트리(예: "chainperm"스크립트)에서 유지된다. 특히, 시스템은 각 노드의 고유 식별자를 유형과 연관시키는 레지스트리를 네트워크의 노드에 유지하고 분배한다. 위에서 설명한 것처럼 각 노드의 고유 식별자는 해당 TLS 인증서에서 파생된다. 연결 노드가 시스템의 다른 노드에 연결될 때, 연결 노드는 시스템에서 다른 노드의 TLS 인증서를 획득하고, TLS 인증서와 레지스트리에 유지된 정보를 기반으로, 연결 노드가 다른 노드의 관련 유형을 결정한다. 결과적으로, 각 노드는 연결된 검증 노드, 연결된 피어 노드 및 연결된 서비스 노드를 결정한다. 각 노드의 유형과, 이에 연결된 노드의 유형은 노드가 시스템에서 메시지를 처리하는 방법에 영향을 미친다. 유효성 검증 노드로 등록된 노드는 자동으로 블록 및 메시지 유효성 검증 프로세스에 참여하지만 관찰자 또는 서비스 노드로부터 받은 유효성 검증 피어-투-피어 메시지는 삭제한다. 또한 합의가 필요한 메시지 및 블록을 수신하는 노드는 유효성 검증 노드로 인증된 노드에만 해당 메시지와 블록을 보낼 것이다.Through the connection process, the node also determines the type of each connected node. As discussed above, each node is registered with a specific type (validity, peer, service) in the system, and each node can be granted different node types for different subspaces and domains. This property is maintained in a dedicated peer registry (eg "chainperm" script). Specifically, the system maintains and distributes a registry that associates each node's unique identifier with a type to a node in the network. As described above, the unique identifier of each node is derived from the corresponding TLS certificate. When a connecting node connects to another node in the system, the connecting node obtains the TLS certificate of the other node in the system, and based on the TLS certificate and information maintained in the registry, the connecting node determines the related type of the other node. As a result, each node determines the connected verification node, connected peer node, and connected service node. The type of each node and the type of node connected to it affects how the node processes messages in the system. Nodes registered as validation nodes automatically participate in the block and message validation process, but delete validation peer-to-peer messages received from observers or service nodes. Also, a node that receives a message and a block that requires consensus will send the message and block only to a node that has been authenticated as a validation node.

위에서 언급한 바와 같이, 권한 - 또는 네트워크 내 다른 노드 및 데이터와 관련하여 노드가 취할 수 있는 동작 - 은 서브스페이스로 그룹화되는데, 이는 예를 들어, 일 노드가 일 서브스페이스에 대해 검증 노드일 수 있고 다른 서브스페이스 상에서 피어 노드일 수 있음을 의미한다. 특히, 노드는 합의 투표 및 블록형성 서명 프로세스에 참여하도록 검증할 수 있는 일련의 서브스페이스를 가질 수 있다. 또한, 노드는 블록 및 메시지의 수동적 가져오기에 관여하도록 피어로서 관찰될 수 있는 서브스페이스 세트를 가질 수 있다. 그리고 노드는 노드가 서비스 노드(또는 API 클라이언트)로만 연결되도록 허용되는 특정 서브스페이스 세트를 가질 수 있으며, 따라서 노드는 합의에 참여하거나 블록 및 메시지와 관련하여 능동적 또는 수동적 활동에 관여하지 않는다. 이와 관련하여 노드는 서비스 노드/API 클라이언트로 유효성 검증, 서빙 또는 역할을 수행하도록 허가된 서브스페이스의 블록 및 메시지만을 발원하도록 허가된다. 본 시스템에 따르면, 생성 블록으로 지칭되는 각각의 허가된 블록 체인의 초기 블록은 그 내부의 각 서브스페이스에 대한 초기 검증 노드 세트를 포함한다. 생성 블록은 각 서브스페이스에 대한 피어 노드 및 서비스 노드의 목록을 더 포함할 수 있다. 따라서, 각 서브스페이스에 대한 식별된 노드 세트 및 해당 역할(및 권한 레벨)은 온-체인으로 유지되며 각 서브스페이스에 대해 노드가 수행할 수 있는 조치를 결정하는 데 사용된다. 각 서브스페이스에 대한 식별된 노드 세트 및 해당 역할(및 권한 레벨)은 특정 메시지로 업데이트할 수 있다.As mentioned above, permissions-or actions that a node can take in relation to other nodes and data in the network-are grouped into subspaces, for example, one node can be a verification node for one subspace This means that it can be a peer node on another subspace. In particular, a node can have a series of subspaces that can verify to participate in the consensus voting and block-forming signature process. In addition, a node can have a set of subspaces that can be viewed as peers to participate in passive fetching of blocks and messages. And the node can have a specific set of subspaces where the node is only allowed to connect to the service node (or API client), so the node does not participate in consensus or engage in active or passive activities with respect to blocks and messages. In this regard, the node is permitted to originate only blocks and messages in subspaces that are authorized to perform validation, serving or role with the service node / API client. According to the system, the initial block of each authorized blockchain, referred to as a generation block, contains a set of initial verification nodes for each subspace within it. The generation block may further include a list of peer nodes and service nodes for each subspace. Thus, the identified node set for each subspace and its role (and permission level) remain on-chain and are used to determine the actions that the node can perform for each subspace. The identified node set and corresponding role (and permission level) for each subspace can be updated with specific messages.

도 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)에 의해 리턴된 데이터를 확인하기 위해 머클 증명을 수행할 것이다.6 provides an example in which a node with limited access and authority, such as a service node, can participate in an untrusted verification process. The service node 602 requests information regarding data in a specific subspace, such as a specific smart contract 608, for example. First, the service node 602 establishes a secure connection with the server node 606 (which may be a peer node or an affinity verification node) through the TLS gateway 604 and then creates a request for the data 604. The server node 606 handles the request by resolving the request from the service node 602 and first checking 616 whether the service node 602 has any level of authority for the requested subspace. To check the authority (616), the server node 606 fetches a private subspace blockchain with the associated subspace, and then a given authority level (peer, validation, service) for that subspace 608 Access a specific subspace 608 (cover (eg, a smart contract)) to retrieve a list of nodes with. If the service node 602 is listed as having service / API privileges for a specific subspace, The authorization is granted 618. In this regard, it should be noted that the permission level is hierarchical, the validation node has greater authority than the peer node, and the peer node has greater authority than the service / API node. As a result, lower-level authorities are included in higher-level privileges, so nodes with higher-level privileges are granted for requests that require lower-level privileges. For example, if a node is a validation node for a particular subspace, it is accepted for requests that require peer or service / API permissions, as another example, if the node is a peer node for a specific subspace, the peer or service / API Authorization is granted for requests that require authorization, the system can support additional levels of authorization as needed, and if the service node 602 determines that it has permission to access data in a particular subspace, the server node will service. Node 602 responds by returning verification data 622 that can determine that the response is valid, for example, this verification data includes a complete block header (signature, message route and status route from server node 606). Includes) but excludes data from subspaces for unauthorized service nodes (e.g., requested) It contains only the data in the data payload from the associated subspace for the authorized service node 602 (such as a mart contract), and a hash value or index 610 from the portion and excluded data. Despite the fact that it returns a limited part of, the service node generates the root 612 by performing proof on the hash tree, for example, and compares it to the state root in the block header to produce an equivalent value for the state root. By confirming, the data can be verified by evaluating the verification data. If the state root is the root of the Merkle tree, the service node 602 will perform Merkle proof to verify the data returned by the server node 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)을 통해 관리된다.FIG. 15 illustrates the various ways in which participants in the network can store data and execute logic, using the private subspace blockchain described above, so that specific data and logic can be accessed only by nodes that are authorized to access the subspace. It provides examples of smart contracts and corresponding common and private subspaces. Subspace 1500 includes Party A's private and enrichment smart contract 1506. The smart contract 1506 stores personal data from Party A's trade contract. The common subspace 1504 includes market data, rights registry and basic template contracts. The basic template contract 1520 includes rules and logic related to the financial contract. The rights registry agreement 1524 maintains a list of parties' rights in various private subspace blockchains. The market data contract 1526 provides input to execute the logic of the smart contract. The quantum subspace 1502 includes a series of smart contracts that record transactions between the parties, namely Party A and Party B. The trade contract 1528 stores the current contract status 1522, the specific transaction terms 1508, and the update set 1512 for this trade, and the bytecode 1518 for rule / logic execution of the trade contract. Subspace 1502 also incorporates registry agreements 1510 to store all transaction agreements, event scheduler 1514 to track time stamps in block headers, and payments owned from transaction agreements and calculates netted values. And a payment smart contract 1516. The reinforcement data portion of the trade agreement terms 1508 is populated by both parties through the reinforcement agreement 1506 present in their own private private subspace 1500. The trade agreement 1528 itself is instantiated using the default template 1520 and filled with the specific conditions of the trade 1508. Authority to the parties that can execute the logic of the trade agreement 1528 is managed through the registry agreement 1524 in a common subspace.

도 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)은 권한을 검증하고 새로운 양측 서브스페이스를 생성하며, 또한 양 당사자로부터 관련 노드로 통지를 전송한다.16A-16E illustrate various life cycle events of an IRS (Iorate Rate Swap) contract implemented in a private subspace blockchain, according to one embodiment. 16A shows the structure of the IRS contract. The smart contract used to implement the IRS is located in two subspaces, (1) both subspaces 1600 between the parties, and (2) a common subspace 1602. The IRS data contract 1608 includes the terms of the transaction, the registry contract 1606 maintains the IRS instance, and the payment contract 1610 is used for payment consolidation and netting. The common subspace 1602 includes three contracts used to implement the IRS. The basic contract 1612 is a template for the IRS contract, the rights registry contract 1614 manages the rights of the parties across the subspace, and the reference data contract 1616 maintains public reference data. 16B shows a sequence of events during the creation of a new IRS. The matching engine 1620 interacts with the server node 1818 in both subspaces 1600 to initiate recording of transactions on the private subspace blockchain. The server node accesses the basic template agreement 1612 from the common subspace, instantiating the new IRS agreement 1608. Service provider rights are verified by accessing registry agreement 1614. Upon verifying the credentials, the new contract is stored in registry 1606, and the upfront payment is sent to payment contract 1610. New contracts are also added to scheduler 1604 to track block header time stamps. 16C shows the sequence of events resulting in the update of the IRS contract in quantum subspace 1600. The clearing house node 1624 is connected to the server node 1622 of the common subspace 1602. The server node sends a message to the reference data contact. The event scheduler 1604 on the quantum subspace observes this message and notifies the IRS registry agreement 1606. Next, the registry agreement updates the status of the basic IRS agreement 1608. 16D shows the sequence of events after a time-based trigger. When a predefined time stamp is reached, event scheduler 1604 triggers a time triggered event by notifying IRS registry 1606. The registry notifies the basic IRS contract 1608 and the payment of the contract is appropriately updated in the payment contract 1610. 16E shows the creation of new two-sided subspaces. The clearing node 1624 sends a message to the server node 1622 to create a new quantum private subspace blockchain. The rights registry agreement 1614 verifies rights and creates new two-sided subspaces, and also sends notifications from both parties to the relevant node.

도 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)에 메시지를 전송한다. 17A-17C illustrate the creation of an equity swap contract, according to one embodiment. 17A shows the contract required for both the private subspace 1700 and the common subspace 1702. The common subspace includes a basic template contract 1712, a rights registry 1714, and a market data contract 1716. Quantum subspace 1700 between the parties includes equity swap contract 1708, payment contract 1710, registry contract 1706 and event scheduler contract 1704. 17B shows creating a new equity swap contract in quantum subspace 1700. Market node 1720 interacts with server node 1718 to initiate the creation of a new trade contract. The server node generates a blockchain message to generate the swap contract 1708 from the template defined in the basic contract 1712. When the swap contract is created, the registry contract 1706 and scheduler contract 1704 are updated. 17C shows a sequence of events during the day and post update of payments between the parties. The market data provider 1724 is connected to a server node 1722 in a common subspace. The server node updates the market data contract 1716 by sending a message. The event scheduler contract 1704 in both subspaces triggers a Mark to Market (MTM) event that fetches outstanding contracts from the registry 1706. The outstanding transaction contract 1708 queries the market data contract 1716 for the latest interest rates, calculates the MTM, and eventually sends a message to the payment contract 1710.

도 18은 기준 데이터 제공자(1816), 확인 서비스 제공자(1812) 및 다른 노드가 공통 연결 네트워크(1822)를 통해 상호 작용하는 방법을 도시한다. 구매 측 회사, 딜러 및 다른 서비스 제공자는 네트워크에 대한 상이한 연결을 유지한다. 매칭 및 확인 서비스 제공자(1812), 기준 데이터 제공자(1816) 및 다른 서비스 제공자(1814)는 네트워크에 대한 소프트웨어 정의 네트워킹(SDN) 기반 연결만을 유지한다. 이 세 가지 서비스에는 서비스 레벨 노드들만 있으므로 네트워크에 대한 가시성이 제한적이다. 이러한 노드는 특정 서브스페이스 내에서 제한된 계약 세트에만 액세스할 수 있다. 또한 공통 서브스페이스의 모든 메시지를 수신한다. 딜러 노드(1800)는 허가된 서브스페이스(들)에서 모든 메시지를 수신하고 서브스페이스 블록 체인에 블록을 커밋함을 의미하는 풀 노드(full node)이다. 딜러 노드(1802 및 1804)는 또한 풀 노드이며 네트워크에 대한 SDN 및 클라이언트 연결을 유지한다. 구매 측 노드(1806, 1808 및 1810)는 서비스 노드이며, 허가된 서브스페이스에서 제한된 메시지 세트에 액세스한다.18 shows how the reference data provider 1816, verification service provider 1812, and other nodes interact through a common connectivity network 1822. Buying companies, dealers and other service providers maintain different connections to the network. Matching and verification service providers 1812, reference data providers 1816, and other service providers 1814 maintain only software-defined networking (SDN) based connections to the network. Because these three services have only service level nodes, visibility to the network is limited. These nodes can only access a limited set of contracts within a particular subspace. It also receives all messages in the common subspace. Dealer node 1800 is a full node, meaning that it receives all messages from the authorized subspace (s) and commits the block to the subspace blockchain. Dealer nodes 1802 and 1804 are also full nodes and maintain SDN and client connections to the network. The purchasing-side nodes 1806, 1808 and 1810 are service nodes and access a limited set of messages in the authorized subspace.

본 발명은 몇 가지 바람직한 실시예의 관점에서 설명되었지만, 본 발명의 범위에 속하는 많은 변경, 치환 및 등가물이 존재한다는 것을 이해해야 한다. 또한 본 발명의 프로세스 및 장치 모두를 구현하는 대안적인 방법이 있음에 주목해야 한다. 예를 들어, 단계들은 반드시 첨부 도면에 도시된 순서로 일어날 필요는 없으며, 적절하게 재 배열될 수 있다. 따라서, 첨부된 청구 범위는 본 발명의 진정한 사상 및 범위 내에 있는 그러한 모든 변경, 치환 및 등가물을 포함하는 것으로 의도된다.Although the invention has been described in terms of several preferred embodiments, it should be understood that there are many variations, substitutions and equivalents that fall within the scope of the invention. It should also be noted that there are alternative methods of implementing both the process and apparatus of the present invention. For example, the steps need not necessarily occur in the order shown in the accompanying drawings, but can be rearranged as appropriate. Accordingly, the appended claims are intended to cover all such modifications, substitutions, and equivalents as fall within the true spirit and scope of the invention.

본 발명은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 본 발명은 컴퓨터 프로그램 제품, 즉 정보 처리 장치, 예를 들어 기계 판독 가능 저장 장치 또는 전파 신호에 유형적으로 구현된 컴퓨터 프로그램으로서, 데이터 처리에 의한 실행 또는 제어를 위한 컴퓨터 프로그램으로서 구현될 수 있다. 장치, 예를 들어, 프로그램 가능 프로세서, 컴퓨터 또는 다수의 컴퓨터. 컴퓨터 프로그램은 컴파일 또는 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 모듈, 구성요소, 서브루틴 또는 기타 장치로 사용하기에 적합한 것을 포함하여 모든 형태로 배포될 수 있다. 컴퓨팅 환경. 컴퓨터 프로그램은 하나의 컴퓨터 또는한 사이트의 여러 컴퓨터에서 실행되거나 여러 사이트에 분산되어 통신 네트워크로 상호 연결되어 배포될 수 있다.The invention may be implemented in digital electronic circuitry, or computer hardware, firmware, software, or a combination thereof. The present invention can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information processing device, for example, a machine-readable storage device or a radio wave signal, for execution or control by data processing. A device, such as a programmable processor, computer or multiple computers. Computer programs may be written in any form of programming language, including compiled or interpreted languages, and distributed in any form, including those suitable for use as standalone programs or modules, components, subroutines, or other devices. . Computing environment. Computer programs may be distributed on one computer or on multiple computers at one site, or distributed over multiple sites and interconnected and distributed over a communication network.

본 발명의 방법 단계는 입력 데이터를 조작하고 출력을 생성함으로써 본 발명의 기능을 수행하기 위해 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 방법 단계들은 또한 FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(application specific integrated circuit)과 같은 특수 목적 논리 회로로서 구현될 수 있고, 본 발명의 장치는 구현될 수 있다.The method steps of the present invention can be performed by one or more programmable processors executing a computer program to perform the functions of the present invention by manipulating input data and generating output. The method steps can also be implemented as a special purpose logic circuit, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC), and the apparatus of the present invention can be implemented.

컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 마이크로 프로세서 및 임의의 고성능 디지털 컴퓨팅 플랫폼의 임의의 하나 이상의 프로세서를 포함한다. 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령을 실행하기 위한 프로세서 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 예를 들어 자기, 자기 광 디스크 또는 광 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치로부터 데이터를 수신하거나 데이터를 전송하기 위해 또는 그 둘 모두로 데이터를 수신하도록 또는 동작 적으로 연결될 것이다. 컴퓨터 프로그램 명령 및 데이터를 구현하기에 적합한 정보 매체는 예를 들어 EPROM, EEPROM, 및 플래시 메모리 장치와 같은 반도체 메모리 장치를 포함하는 모든 형태의 비 휘발성 메모리; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 특수 목적의 논리 회로에 통합될 수 있다.Processors suitable for the execution of a computer program include, for example, microprocessors and any one or more processors of any high performance digital computing platform. The processor will receive instructions and data from read-only memory or random access memory or both. An essential element of a computer is a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer is also operable to receive data from, or to receive data from, one or more mass storage devices for storing data, such as, for example, magnetic, magnetic optical disks or optical disks, or both. Will be connected. Information media suitable for embodying computer program instructions and data include, for example, all types of non-volatile memory including semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; Magnetic disks, for example internal hard disks or removable disks; Magneto-optical disk; And CD ROM and DVD-ROM discs. The processor and memory may be supplemented by special purpose logic circuitry or incorporated into special purpose logic circuitry.

본 명세서의 맥락에서(특히, 다음의 청구의 맥락에서) 용어 "a"및 "an"및 "the"및 유사한 참조의 사용은 단수 및 복수를 모두 포함하는 것으로 해석되어야 한다. 달리 명시되지 않는 한, 문맥 상 명백히 모순되지 않다. 본원에 기술된 모든 방법은 본원에 달리 지시되거나 문맥 상 명백하게 모순되지 않는한 임의의 적합한 순서로 수행될 수 있다. 본원에 제공된 임의의 및 모든 예 또는 예시적인 언어(예를 들어, 바람직하게는 바람직하게는)의 사용은 단지 본 개시 내용을 추가로 설명하기 위한 것이며 청구 범위의 범주에 제한을 두지 않는다. 본 명세서의 어떤 언어도 본 개시의 실시에 필수적인 것으로 주장되지 않은 요소를 나타내는 것으로 해석되어서는 안된다.The use of the terms “a” and “an” and “the” and similar references in the context of this specification (especially in the context of the following claims) should be construed to include both singular and plural. Unless otherwise specified, there is no apparent contradiction in context. All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any and all examples or exemplary languages (eg, preferably preferably) provided herein is only to further illustrate the present disclosure and does not limit the scope of the claims. No language in this specification should be construed as representing elements that are not claimed to be essential to the practice of this disclosure.

청구된 발명을 실시하기 위해 본 발명자들에게 알려진 최상의 모드를 포함하는 다수의 실시예가 본 명세서에 기술되어있다. 이들 중, 개시된 실시예의 변형은 상기 개시를 읽을 때 당업자에게 명백해질 것이다. 본 발명자들은 당업자가 이러한 변형(예를 들어, 특징 또는 실시예를 변경 또는 결합)을 적절하게 이용할 것을 기대하고, 본 발명은 본 명세서에서 구체적으로 설명된 것과 다르게 실시되도록 의도한다.A number of embodiments are described herein that incorporate the best mode known to the inventors for carrying out the claimed invention. Of these, variations of the disclosed embodiments will become apparent to those skilled in the art upon reading the above disclosure. The inventors expect those skilled in the art to appropriately utilize such modifications (eg, alterations or combinations of features or embodiments), and the invention is intended to be practiced differently than specifically described herein.

따라서, 본 발명은 적용 가능한 법률에 의해 허용되는 바와 같이 여기에 첨부된 청구 범위에 인용된 주제의 모든 수정 및 등가물을 포함한다. 또한, 본 명세서에서 달리 지시되거나 문맥 상 명백하게 모순되지 않는 한, 모든 가능한 변형에서 상기 기재된 요소의 임의의 조합이 본 발명에 포함된다Accordingly, the present invention includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. In addition, any combination of the elements described above in all possible variations is included in the present invention, unless otherwise indicated herein or clearly contradicted by context.

Claims (20)

데이터의 사적인 안전한 교환을 가능하게 하고 데이터의 신뢰성을 보장하기 위한 분산 플랫폼을 제공하기 위한 시스템으로서,
네트워크를 통해 서로 통신 가능하게 연결된 복수의 노드 - 상기 복수의 노드의 각 노드는 공통 서브스페이스에서 교환된 메시지를 수신하기 위한 로직을 가짐;
복수의 노드 내의 노드들의 서브세트 - 상기 노드들의 서브세트는 도메인에 대응하고, 도메인 내의 사적 서브스페이스 내에서 교환된 메시지에 액세스할 수 있는 권한을 가짐;
노드들의 서브세트 내의 한 세트의 검증 노드 - 각각의 검증 노드는 상기 사적 서브스페이스 내에서 교환된 메시지에 기초하여 상태 루트를 생성하기 위한 로직을 가짐 - 를 포함하며,
상기 노드들의 서브세트 내의 노드는 상태 루트에 기초하여 전역 상태 루트 값을 생성하기 위한 추가의 로직을 갖는, 시스템.
A system for providing a distributed platform to enable the secure and secure exchange of data and to ensure the reliability of data,
A plurality of nodes communicatively connected to each other via a network-each node of the plurality of nodes has logic to receive messages exchanged in a common subspace;
A subset of nodes in a plurality of nodes-the subset of nodes corresponds to a domain and has authority to access messages exchanged within private subspaces within the domain;
A set of verification nodes in a subset of nodes, each verification node having logic to generate a state route based on messages exchanged within the private subspace,
The node in the subset of nodes has additional logic to generate a global state route value based on the state route.
제 1 항에 있어서, 상기 상태 루트는 상기 사적 서브스페이스의 데이터에 대해 수행된 해시 함수의 결과인 해시 값이고, 상기 전역 상태 루트는 상기 상태 루트를 포함하는 한 세트의 데이터에 대해 수행된 해시 함수의 결과인 해시 값인 시스템. The method of claim 1, wherein the state route is a hash value resulting from a hash function performed on data of the private subspace, and the global state route is a hash function performed on a set of data including the state route. The resulting hash value system. 제 1 항에 있어서, 상기 한 세트의 검증 노드 내의 각 노드는 상기 한 세트의 검증 노드 내의 다른 노드를 수반하는 합의 투표 프로세스에 기초하여 상기 사적 서브스페이스 내에서 교환된 메시지를 검증하기 위한 로직을 갖는 시스템.The method of claim 1, wherein each node in the set of verification nodes has logic to verify messages exchanged within the private subspace based on a consensus voting process involving other nodes in the set of verification nodes. system. 제 1 항에 있어서, 각 노드에 대한 권한 정보는 공통 서브스페이스에서 유지되고, 권한 정보에 대한 변경은 공통 서브스페이스에서 메시지를 교환하고 검증하는 복수의 노드를 통해 관리되는 시스템.The system of claim 1, wherein the authority information for each node is maintained in a common subspace, and changes to the authority information are managed through a plurality of nodes exchanging and verifying messages in the common subspace. 제 4 항에 있어서, 복수의 노드 내의 각각의 노드는 수신한 메시지를 권한 정보에 기초하여 수신된 메시지에 대해 권한 부여된 다른 노드에 전달하기 위한 로직을 갖는, 시스템.5. The system of claim 4, wherein each node in the plurality of nodes has logic to deliver the received message to another node authorized for the received message based on the authorization information. 제 1 항에 있어서, 복수의 노드 내 각각의 노드는 데이터베이스에 통신 가능하게 연결되고, 복수의 노드 내 각각의 노드는 검증된 데이터베이스 메시지 및 블록 내에 저장되는 시스템.The system of claim 1, wherein each node in the plurality of nodes is communicatively coupled to the database, and each node in the plurality of nodes is stored in a validated database message and block. 제 6 항에 있어서, 각각의 노드는 하나 이상의 기준 세트에 따라 메시지 및 블록을 삭제하기 위한 로직을 더 포함하고, 메시지의 삭제는 서브스페이스 해시 값 및 전역 해시 값을 보존하는, 시스템.7. The system of claim 6, wherein each node further includes logic to delete messages and blocks according to one or more sets of criteria, wherein deletion of messages preserves subspace hash values and global hash values. 데이터의 사적인 안전한 교환을 가능하게 하고 데이터의 신뢰성을 보장하기 위한 분산 플랫폼 내의 네트워크 노드로서,
공통 서브스페이스에서 교환된 메시지를 수신하기 위한 - 네트워크 내 모든 노드는 공통 서브스페이스 내의 메시지에 액세스할 수 있는 권한을 가짐 - , 그리고, 권한 부여된 노드에 관한 사적 서브스페이스에서 교환되는 메시지를 수신하기 위한, 로직;
사적 서브스페이스 내에서 교환된 메시지에 기초하여 서브스페이스 해시 값을 생성하기 위한 로직; 및
서브스페이스 해시 값에 기초하여 전역 해시 값을 생성하기 위한 로직을 포함하는 네트워크 노드.
As a network node in a distributed platform to enable private and secure exchange of data and to ensure the reliability of data,
To receive messages exchanged in a common subspace-all nodes in the network have permission to access messages in the common subspace-and receive messages exchanged in private subspaces about authorized nodes For, logic;
Logic to generate a subspace hash value based on the messages exchanged in the private subspace; And
A network node that includes logic to generate a global hash value based on the subspace hash value.
제 8 항에 있어서, 상기 분산 플랫폼 내의 다른 노드들을 수반하는 합의 투표 프로세스에 기초하여 사적 서브스페이스 내에서 교환된 메시지를 검증하기 위한 로직을 더 포함하는 네트워크 노드.10. The network node of claim 8, further comprising logic to verify messages exchanged within a private subspace based on a consensus voting process involving other nodes in the distributed platform. 제 8 항에 있어서, 상기 분산 플랫폼 내의 각각의 노드에 대한 권한 정보는 상기 공통 서브스페이스에서 유지되고, 상기 권한 정보에 대한 변경은 상기 공통 서브스페이스에서 메시지를 교환 및 검증하는 네트워크 노드를 통해 관리되는 네트워크 노드.The authorization information for each node in the distributed platform is maintained in the common subspace, and changes to the authorization information are managed through a network node exchanging and verifying messages in the common subspace. Network node. 제 10 항에 있어서, 수신된 메시지를 상기 권한 정보에 기초하여 상기 메시지를 수신하도록 권한 부여된 다른 노드로 전달하기 위한 로직을 더 포함하는 네트워크 노드.11. The network node of claim 10, further comprising logic for forwarding the received message to another node authorized to receive the message based on the authorization information. 제 8 항에 있어서, 상기 네트워크 노드는 데이터베이스에 통신 가능하게 연결되며, 상기 네트워크 노드는 검증된 데이터베이스 메시지 및 블록 내에 저장되는 네트워크 노드.10. The network node of claim 8, wherein the network node is communicatively coupled to a database, the network node being stored in a validated database message and block. 제 12 항에 있어서, 하나 이상의 기준 세트에 따라 메시지 및 블록을 삭제하기 위한 로직을 더 포함하고, 메시지의 삭제는 상기 서브스페이스 해시 값 및 전역 해시 값을 보존하는 네트워크 노드.13. The network node of claim 12, further comprising logic for deleting messages and blocks according to one or more sets of criteria, wherein deletion of messages preserves the subspace hash value and global hash value. 분산 네트워크 내의 복수의 노드들 사이에서 사적 데이터를 안전하게 교환하고 데이터의 신뢰성을 보장하기 위해, 컴퓨터 메모리에 구현된 분산 데이터 구조에 있어서,
충분한 액세스 자격 증명을 갖는 복수의 노드 내 노드들에 의해서만 액세스 가능한 콘텐트를 갖는 하나 이상의 사적 서브스페이스 - 각 서브스페이스는 상태 루트를 포함함;
복수의 노드 내 모든 노드에 액세스 가능한 공통 서브스페이스 - 공통 서브스페이스는 각각의 사적 서브스페이스에 대한 검증 노드를 식별함; 및
하나 이상의 서브스페이스의 상태 루트에 기초한 전역 상태 루트를 포함하는 헤더를 포함하는, 분산 데이터 구조..
In a distributed data structure implemented in a computer memory, to securely exchange private data between multiple nodes in a distributed network and ensure data reliability,
One or more private subspaces with content accessible only by nodes in a plurality of nodes with sufficient access credentials, each subspace including a state root;
A common subspace accessible to all nodes in the plurality of nodes-the common subspace identifies a verification node for each private subspace; And
A distributed data structure comprising a header containing a global state root based on the state root of one or more subspaces.
제 14 항에 있어서, 각각의 사적 서브스페이스의 상태 루트는 사적 서브스페이스의 데이터에 대해 수행된 해시 함수의 결과인 해시 값인, 분산 데이터 구조.15. The distributed data structure of claim 14, wherein the state root of each private subspace is a hash value resulting from a hash function performed on data in the private subspace. 제 14 항에 있어서, 상기 전역 상태 루트는 하나 이상의 사적 서브스페이스의 상태 루트를 포함하는 한 세트의 데이터에 대해 수행된 해시 함수의 결과인 해시 값인, 분산 데이터 구조.15. The distributed data structure of claim 14, wherein the global state route is a hash value that is the result of a hash function performed on a set of data comprising state routes of one or more private subspaces. 제 14 항에 있어서, 상기 공통 서브스페이스는 상기 복수의 노드 내 각 노드의 권한을 관리하기 위한 스크립트를 포함하는, 분산 데이터 구조.15. The distributed data structure of claim 14, wherein the common subspace includes a script for managing authority of each node in the plurality of nodes. 제 14 항에 있어서, 각각의 사적 서브스페이스는 상기 서브스페이스의 해시 값을 보존하는 삭제 프로세스를 통해 사적 서브스페이스 내의 블록 및 메시지를 삭제하기 위한 정책을 포함하는, 분산 데이터 구조.15. The distributed data structure of claim 14, wherein each private subspace includes a policy for deleting blocks and messages in the private subspace through a deletion process that preserves the hash value of the subspace. 제 14 항에 있어서, 상기 헤더는 상기 분산 데이터 구조를 검증하는데 사용되는 하나 이상의 암호화 서명을 더 포함하는, 분산 데이터 구조.15. The distributed data structure of claim 14, wherein the header further comprises one or more cryptographic signatures used to verify the distributed data structure. 제 14 항에 있어서, 상기 헤더는 상기 분산 데이터 구조 내에 포함된 모든 메시지의 함수인 값을 가진 메시지 루트를 더 포함하는 분산 데이터 구조.15. The distributed data structure of claim 14, wherein the header further comprises a message route having a value that is a function of all messages included in the distributed data structure.
KR1020207000108A 2017-06-01 2018-06-01 Distributed blockchain data structure distribution through secure access restriction management KR20200032086A (en)

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 (en) 2020-03-25

Family

ID=62716138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207000108A KR20200032086A (en) 2017-06-01 2018-06-01 Distributed blockchain data structure distribution through secure access restriction management

Country Status (8)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132526A (en) * 2020-04-27 2021-11-04 주식회사 시큐어링크 Authentication and Policy Management Methods Using Layer Blockchain
KR20220122170A (en) * 2021-02-26 2022-09-02 인천대학교 산학협력단 System for Managing Distributed Security for Internet of Things Network

Families Citing this family (122)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3616358B1 (en) * 2017-06-01 2024-07-03 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
US10929823B2 (en) * 2017-09-12 2021-02-23 Northwestern University Peer auditing in a 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
US10958417B2 (en) * 2017-12-18 2021-03-23 International Business Machines Corporation Protecting sensitive data in a distributed ledger system using blockchain hierarchies
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
US10715323B2 (en) 2017-12-29 2020-07-14 Ebay Inc. Traceable key block-chain ledger
US10896418B2 (en) 2017-12-29 2021-01-19 Ebay Inc. Secure management of data files using a blockchain
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 (en) * 2018-07-18 2020-12-08 百度在线网络技术(北京)有限公司 Account processing method, device, equipment and storage medium of block chain network
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
US11263395B1 (en) 2018-09-06 2022-03-01 Side, Inc. System and method for document transformation and compliance
CN109167660B (en) * 2018-09-07 2021-05-14 腾讯科技(深圳)有限公司 Method and device for electing representative node equipment, computer equipment and storage medium
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
US11924360B2 (en) 2018-10-08 2024-03-05 Green Market Square Limited Blockchain timestamp agreement
US10608829B1 (en) * 2018-10-08 2020-03-31 International Business Machines Corporation 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 (en) * 2018-10-31 2023-12-05 创新先进技术有限公司 Node management method and device based on block chain
CN110226318B (en) * 2018-11-07 2021-05-18 创新先进技术有限公司 Private transactions over a workflow management blockchain based network
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
CN110046992A (en) * 2018-12-12 2019-07-23 阿里巴巴集团控股有限公司 A kind of transaction Hash acquisition methods and system based on block chain intelligence contract
CN109617964B (en) * 2018-12-12 2021-11-09 成都四方伟业软件股份有限公司 Big data storage method and device based on block chain
CA3051762A1 (en) 2018-12-13 2019-04-18 Alibaba Group Holding Limited Data isolation in a blockchain network
US11282076B2 (en) * 2018-12-14 2022-03-22 American Express Travel Related Services Company, Inc. Transaction account data maintenance using blockchain
CN109784882A (en) * 2018-12-14 2019-05-21 深圳壹账通智能科技有限公司 Alliance's chain information distribution control method and terminal device
US11032064B2 (en) 2018-12-19 2021-06-08 Verizon Media Inc. Blockchain ledger growth management
US10979213B2 (en) 2018-12-19 2021-04-13 Verizon Media Inc. Blockchain compression using summary and padding blocks
JP6883110B2 (en) * 2018-12-19 2021-06-09 アドバンスド ニュー テクノロジーズ カンパニー リミテッド Data isolation within the blockchain network
CN110032568B (en) * 2018-12-20 2020-05-12 阿里巴巴集团控股有限公司 Data structure reading and updating method and device, and electronic equipment
CN110032599B (en) * 2018-12-20 2020-05-05 阿里巴巴集团控股有限公司 Data structure reading and updating method and device, and electronic equipment
EP3902227A4 (en) * 2018-12-21 2022-12-14 Swempire Co., Ltd. Method for sharing and verifying blocks and electronic documents between nodes in blockchain
CN110264187B (en) 2019-01-23 2021-06-04 腾讯科技(深圳)有限公司 Data processing method and device, computer equipment and storage medium
KR102250081B1 (en) * 2019-02-22 2021-05-10 데이터얼라이언스 주식회사 Public ledger based autonomous credential management system and method
AU2019203849C1 (en) * 2019-03-04 2021-04-29 Advanced New Technologies Co., Ltd. Updating blockchain world state merkle patricia trie subtree
CN110008739B (en) * 2019-03-05 2023-10-03 深圳前海微众银行股份有限公司 Block chain system based on group, group management method and device
US11593321B2 (en) * 2019-03-06 2023-02-28 0Chain Corp. Systems and methods of self-administered protocols on a blockchain platform
CN109978347B (en) * 2019-03-07 2023-04-07 国网冀北电力有限公司技能培训中心 Community energy autonomous method with distributed power generation based on block chain technology
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
CA3058238C (en) * 2019-03-21 2021-03-02 Alibaba Group Holding Limited Data isolation in blockchain networks
WO2019120318A2 (en) 2019-03-27 2019-06-27 Alibaba Group Holding Limited Retrieving public data for blockchain networks using highly available trusted execution environments
WO2019179543A2 (en) 2019-03-27 2019-09-26 Alibaba Group Holding Limited Retrieving public data for blockchain networks using trusted execution environments
KR102315473B1 (en) * 2019-03-28 2021-10-21 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. Systems and Methods 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
CA3135848A1 (en) 2019-04-03 2020-10-08 Schlumberger Canada Limited Local/hybrid blockchain for oil and gas operations integrity
BE1027181B1 (en) * 2019-04-09 2020-11-09 Phoenix Contact Gmbh & Co Method and system for the secure provision of data on an object over its entire life cycle
WO2020221292A1 (en) * 2019-04-29 2020-11-05 互达控股有限公司 Network transaction verification method based on plurality of nodes, and system therefor and storage medium
SG11202000784SA (en) 2019-04-30 2020-02-27 Alibaba Group Holding Ltd Methods and devices for managing access to account in 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
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
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
EP4071646A1 (en) * 2019-06-15 2022-10-12 Meta Platforms, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
WO2019170170A2 (en) * 2019-06-21 2019-09-12 Alibaba Group Holding Limited Methods and systems for automatic blockchain deployment based on cloud platform
CN112150141A (en) * 2019-06-26 2020-12-29 京东数字科技控股有限公司 Block chain consensus method, device and system
JP7354620B2 (en) * 2019-06-28 2023-10-03 株式会社リコー Service system, information registration method
WO2019170176A2 (en) 2019-06-28 2019-09-12 Alibaba Group Holding Limited System and method for data processing
WO2019179540A2 (en) 2019-07-11 2019-09-26 Alibaba Group Holding Limited Shared blockchain data storage
EP3669280B1 (en) * 2019-07-11 2021-09-08 Advanced New Technologies Co., Ltd. Shared blockchain data storage
US11201747B2 (en) * 2019-07-15 2021-12-14 Sap Se Federated data management between partner systems
US11880383B2 (en) * 2019-07-15 2024-01-23 Sap Se Federated data management between partner systems
CN111352935B (en) * 2019-07-29 2021-05-18 创新先进技术有限公司 Index creating method, device and equipment in block chain type account book
US10795874B2 (en) 2019-07-29 2020-10-06 Alibaba Group Holding Limited Creating index in blockchain-type ledger
CN112347184A (en) * 2019-08-07 2021-02-09 华为技术有限公司 Bifurcation processing method and block link point
WO2021039453A1 (en) * 2019-08-29 2021-03-04 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Control method, server, and program
EP4029218A4 (en) * 2019-09-11 2022-09-21 Visa International Service Association Blockchain sharding with adjustable quorums
CN111837117B (en) * 2019-09-11 2024-04-16 创新先进技术有限公司 Error correction coding based shared blockchain data storage 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
AU2020353683A1 (en) 2019-09-27 2022-04-14 Schvey, Inc. D/B/A Axoni Pruning entries in tamper-evident data stores
US11403283B2 (en) * 2019-10-15 2022-08-02 Sony Corporation Distributed ledger based generation of electronic documents
CN111026770B (en) * 2019-10-29 2023-08-04 京东科技信息技术有限公司 Ledger processing method and device of blockchain node, server and storage medium
CN112513900B (en) 2019-11-19 2024-03-26 支付宝(杭州)信息技术有限公司 System and method for consensus management
EP4070221A1 (en) * 2019-12-02 2022-10-12 Schvey, Inc. D/B/A/ Axoni Cross-partition calls in partitioned, tamper-evident data stores
CN111177259A (en) * 2019-12-13 2020-05-19 杭州复杂美科技有限公司 Parallel chain transaction encryption method, device and storage medium
US11416933B2 (en) * 2020-01-07 2022-08-16 Bank Of America Corporation Event management and validation platform using a recursive hierarchic blockchain
CN111209341B (en) * 2020-01-07 2023-03-14 北京众享比特科技有限公司 Data storage method, device, equipment and medium of block chain
KR20210089041A (en) 2020-01-07 2021-07-15 삼성전자주식회사 Blockchain based peer-to-peer content sharing apparatus for blocking illegal contents
US20210250219A1 (en) * 2020-02-07 2021-08-12 Bank Of America Corporation System for integration and interoperability between disparate distributed server technologies
CN111339191B (en) * 2020-02-20 2023-05-26 百度在线网络技术(北京)有限公司 Data storage method, device, equipment and medium of block chain
CN111327699B (en) * 2020-02-26 2021-07-09 吉林大学 Double-leader heartbeat weighting source tracing consensus method
US11641364B2 (en) * 2020-03-03 2023-05-02 International Business Machines Corporation Cross-domain state synchronization
CN111416703A (en) * 2020-03-16 2020-07-14 北京有链科技有限公司 Block chain crossing type and jumping type rapid synchronization method and system
CN111538757B (en) * 2020-04-13 2022-02-11 支付宝(杭州)信息技术有限公司 Data storage method, query method, device, server and medium
EP4136801A4 (en) * 2020-04-15 2023-06-14 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 (en) * 2020-11-05 2022-10-31 株式会社日立製作所 Electronic trading system, data anonymization method for electronic trading system
CN112332980B (en) * 2020-11-13 2023-04-14 浙江数秦科技有限公司 Digital certificate signing and verifying method, equipment and storage medium
CN112417176B (en) * 2020-12-09 2024-04-02 交通银行股份有限公司 Method, equipment and medium for mining implicit association relation between enterprises based on graph characteristics
CN115114603B (en) * 2021-03-17 2024-06-11 中国移动通信集团福建有限公司 Base station equipment data management method and device and electronic equipment
US12010226B2 (en) 2021-03-17 2024-06-11 International Business Machines Corporation Blockchain data segregation
EP4064065A1 (en) * 2021-03-23 2022-09-28 Siemens Aktiengesellschaft Data retention in a decentralized distributed database
CN113487400B (en) * 2021-06-04 2022-10-11 长春工业大学 Financial credit consensus method based on honesty bidirectional selection
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
US12021978B2 (en) * 2021-07-22 2024-06-25 Oracle International Corporation Blockchain record of user biometrics for access control
CN113904788A (en) * 2021-08-12 2022-01-07 云南电网有限责任公司信息中心 Block chain-based network frame security verification method and SDN switch
EP4142211A1 (en) * 2021-08-26 2023-03-01 BitFlow GmbH Document integrity protection
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
WO2023122684A1 (en) * 2021-12-21 2023-06-29 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 (en) * 2022-07-20 2024-04-19 新疆丝路智汇信息科技有限公司 Block chain protocol processing system and processing method thereof
CN115941209B (en) * 2023-02-07 2023-05-05 湖南湘江树图信息科技创新中心有限公司 Block chain decentralization trusted data acquisition method and system

Family Cites Families (37)

* 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
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
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
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
EP3251046B1 (en) * 2015-01-30 2021-03-24 Enrico Maim Systems and methods for managing networked commitments of secure entities
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
CN108701276B (en) 2015-10-14 2022-04-12 剑桥区块链有限责任公司 System and method for managing digital identities
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 (en) * 2016-06-30 2016-11-23 惠众商务顾问(北京)有限公司 A kind of block chain common recognition and synchronous method, system and device
WO2018069566A1 (en) * 2016-10-14 2018-04-19 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 (en) 2016-12-12 2017-05-31 武汉优聘科技有限公司 It is a kind of that the data sharing method of private data is related to based on block chain
CN106796688B (en) 2016-12-26 2020-12-18 深圳前海达闼云端智能科技有限公司 Permission control method, device and system of block chain and node equipment
CN106651332B (en) * 2016-12-29 2020-11-06 成都质数斯达克科技有限公司 Method for generating new block in block chain and block chain
CN106796685A (en) * 2016-12-30 2017-05-31 深圳前海达闼云端智能科技有限公司 Block chain authority control method and device and node equipment
US10740733B2 (en) * 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
EP3616358B1 (en) * 2017-06-01 2024-07-03 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
EP3529732B1 (en) 2017-10-27 2020-02-19 Digital Asset (Switzerland) Gmbh Computer system and method for distributed privacy-preserving shared execution of one or more processes
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 (en) 2018-01-30 2019-05-28 百度在线网络技术(北京)有限公司 Data access method, device, system and the computer-readable medium of transregional piece of chain
CN111787072B (en) 2018-04-03 2023-02-28 创新先进技术有限公司 Cross-block-chain interaction method, device, system and electronic equipment
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 (en) * 2018-10-30 2022-04-15 伊姆西Ip控股有限责任公司 Distributed node finder in multi-cloud computing environment
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
AU2020353683A1 (en) * 2019-09-27 2022-04-14 Schvey, Inc. D/B/A Axoni Pruning entries in tamper-evident data stores

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132526A (en) * 2020-04-27 2021-11-04 주식회사 시큐어링크 Authentication and Policy Management Methods Using Layer Blockchain
KR20220122170A (en) * 2021-02-26 2022-09-02 인천대학교 산학협력단 System for Managing Distributed Security for Internet of Things Network

Also Published As

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

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 (en) Decentralized storage safety implementation method
CN109313763B (en) Hierarchical network system and node for hierarchical network system
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 (en) Credible authentication method, network equipment, system and storage medium
JP2020523838A (en) System and method for addressing security-related vulnerabilities in off-blockchain channels in the event of network failure
Zhong et al. Distributed blockchain‐based authentication and authorization protocol for smart grid
KR102012400B1 (en) IoT CERTIFICATION SYSTEM BASED ON BLOCK CHAIN
US11265162B2 (en) System and method for providing privacy and security protection in blockchain-based private transactions
JP2024509666A (en) Blockchain data segregation
CN117407437A (en) Block chain-based data processing method, equipment and readable storage medium
KR20200063034A (en) IoT CERTIFICATION SYSTEM BASED ON BLOCK CHAIN
Gencer On scalability of blockchain technologies

Legal Events

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