CN110870254A - Distributed private subspace blockchain data structure with secure access restriction management - Google Patents
Distributed private subspace blockchain data structure with secure access restriction management Download PDFInfo
- Publication number
- CN110870254A CN110870254A CN201880046433.7A CN201880046433A CN110870254A CN 110870254 A CN110870254 A CN 110870254A CN 201880046433 A CN201880046433 A CN 201880046433A CN 110870254 A CN110870254 A CN 110870254A
- Authority
- CN
- China
- Prior art keywords
- subspace
- node
- nodes
- data
- messages
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/40—User authentication by quorum, i.e. whereby two or more security principals are required
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network 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)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A system for providing a cryptographic platform to distribute data structures within a peer-to-peer network is disclosed herein, wherein encrypted messages are exchanged between nodes. The system provides for creating and managing a private chain of subspaced tiles that includes a private subspace that is verifiable through the use of a global state root. The global state root is updated based on a subspace root, which is in turn generated based on data in the subspace.
Description
RELATED APPLICATIONS
This application claims priority from U.S. provisional patent application serial No.62/513,773, filed on 1/6/2017, which is incorporated herein by reference to the full extent allowed by law.
Technical Field
The present invention relates generally to private subspace blockchain distributed data structures and systems and methods for managing the same. More particularly, the present invention relates to a novel license chain data structure having multiple subspaces, an integrated validation mechanism (which also provides permissions and secure access to subspaces in the chain data structure), and a system and method of managing such license chain data structures.
Background
A distributed database may provide a decentralized means to distribute shared data among a number of different users, each of which may need access to the shared data, but are remote from each other. In order for such shared data to be reliable, there must be a way to verify the integrity of the data in the distributed database. One 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 "blocks," each containing a link to a previous block in the chain. Each block contains the hash value of the previous block in the chain of blocks, which is used as a means to link the two blocks. The use of hash values helps to ensure the verifiability of the data and prevents modification of the data within the blockchain. The integrity of the blockchain is improved by its de-centralization feature, since there is no need for a centrally located "official" blockchain copy. In contrast, multiple verifiable copies of the blockchain may be stored in different users, thereby preventing unauthorized modification of the blockchain.
One drawback of distributed and decentralized data structures like traditional blockchains is that the data stored in such data structures must be accessible by each holder of a copy of the data structure. The accessibility of data to each holder of a copy of the distributed data structure is essential to enable a user to verify the integrity of the data stored therein and to ensure that the data stored in a particular copy of the distributed data structure has not been tampered with and modified without permission. As a result, like traditional blockchains, this distributed data structure does not allow users to privately store data in blockchains. Conventional systems that share and utilize such distributed data structures also do not require authorization or access, but instead benefit from a lack of access control, as the presence of additional users typically increases the number of copies of the distributed data structure, thereby reducing the risk of tampering with the records. In this regard, such conventional systems typically do not have means for verifying the identity and associated permissions of the nodes in the system.
Disclosure of Invention
Systems and methods for creating and distributively managing novel data structures that enable secure access restrictions are disclosed herein. The novel data structure and associated functionality are based on the blockchain principle, i.e. they are distributed databases comprising blocks linked together to form a chain, wherein each block comprises a hash of the previous block in the chain, which links two blocks together. These new data structures differ from conventional blockchain structures in that they include important and novel features and functionality that allow private data subspaces within the data set of each block, where such subspaces are accessible only to nodes having permission to access such subspaces, and where copies of blocks are typically propagated in such a way that nodes receive only those subspaces that the node is permitted to access. For ease of reference, the novel data structures disclosed herein are referred to as "private subspace blockchains," although it will be appreciated that these data structures differ significantly from conventional blockchains, as described in detail below.
As disclosed herein, the novel data structure and its management provide the advantages of distributed, consensus-based data payload (subspace) integrity verification, where multiple different nodes retain partial copies of the data structure while providing data sharing and data isolation. In particular, common reference data in the data structure is available to all permitted nodes, while a portion of the data payload (referred to herein as a "subspace" within the data structure) is only available to nodes having sufficient access credentials. The system and method also provide data permissions to allow nodes with sufficient permissions to have read/write access as needed. The system and method of the present invention further provide novel means for securely and authenticated transfer of these data structures between nodes, and for providing interconnections between nodes to facilitate such transfers, so that communications between nodes involving a particular data structure do not affect the system capacity or ability to handle communications between other nodes involving other copies of the data structure. The system and method of the present invention further provide an improved consensus mechanism for data structures that ensures isolation, meaning that a failed consensus between a pair of nodes does not result in a cascade failure between other pairs of nodes. The system and method of the present invention further provide an improved consensus mechanism for data structures that ensures continuity, meaning that the system continues to process and maintain the integrity of the data structure correctly, even in the case of unreachable processing nodes. The system and method of the present invention further provide improved management of conflicts between nodes, as well as improved extensions, such that deployment of additional nodes does not require significant updates to existing nodes. Additionally, the system and method of the present invention further provide for improved synchronization with external databases in a data verifiable manner.
The novel private subspace blockchain data structure and related systems and methods herein may be employed in a variety of contexts and the above-described features and improvements would be advantageous. For example, the novel data structures and associated systems and methods can be used to enable secure data exchange involving the fields and applications of inventory management, component tracking (e.g., aircraft parts maintenance cycle tracking), source verification of high value goods (e.g., diamonds), medical records, ownership transfer related to real and digital property, security documentation, and other data structures that benefit from providing data storage and access features that simultaneously provide distributed verification and licensing. In addition, the novel data structure and associated systems and methods can be used to implement a secure system for intelligent contract applications, including applications related to credit default interchange (CDS), equity interchange, and foreign exchange (FX) trading.
According to an embodiment of the present invention, there is provided a system for a cryptographic platform to distribute data structures in a peer-to-peer network, the system comprising: a non-transitory computer-readable storage medium; a processor configured by executing one or more software modules comprising instructions in the form of code stored in a storage medium, the modules comprising: a communication module configured to configure the processor to transmit and receive encrypted data from a remote device between a first peer node and a second peer node over a network; a core module configured to configure the processor to create a state root representative of encrypted data exchanged between the first peer node and the second peer node, and wherein the core module is further configured to create a global state root representative of encrypted data exchanged between a plurality of peer nodes within the network, and wherein the core module is further configured to create a licensed block within a private subspace blockchain providing verifiable data records exchanged between peer nodes to the network; a database module configured to configure a processor to store data propagated between the first peer node and a second peer node in a storage medium; and wherein the database module further configures the processor to store the state root, the global state root, and the chunk in the storage medium.
In another embodiment, a computer program product, embodied on a computer-readable medium, for handling distribution of a data structure, is provided, comprising: computer code for transmitting and receiving a plurality of encrypted messages between a plurality of peer nodes; computer code for creating a plurality of state roots for encrypted messages exchanged between the peer nodes; computer code for storing a plurality of state roots in a global state root, wherein each state root defines a data subspace; and computer code for creating a private subspace blockchain comprising a plurality of global state roots having a plurality of subspaces.
In yet another embodiment of the present invention, a cryptographic system for distributing a data structure among peer nodes in one or more networks built on an underlying network, wherein the data structure comprises a plurality of global state roots, and wherein the plurality of global state roots comprises a plurality of state roots, the cryptographic system comprising: a memory storing a plurality of licensed blocks within a private subspace block chain; a state root generator that creates a state root based on encrypted messages exchanged between a plurality of peer nodes within a subspace; a global state root generator that creates a global state root based on one or more state roots; a block compiler which compiles the global state root and the state root; and a license chunk generator that generates the license chunk, wherein a license chunk includes the global state root and one or more state roots.
In another embodiment, a system for providing a cryptographic platform for distributing data structures within a peer-to-peer network is provided, the system comprising: a cloud-based database containing data defining a plurality of global state roots for each of a plurality of tiles, wherein each global state root comprises a plurality of state roots; a network-enabled device for transmitting and receiving encrypted data for a plurality of peer nodes; a computer server coupled to the network-enabled device and the cloud-based database and programmed to: encrypting data transmitted between a first peer node and a second peer node; automatically generating a state root for data transmitted between the first peer node and a second peer node to create subspace information; automatically updating a global state root in response to generating the state root; creating a block containing an updated global state root, the global state root comprising a plurality of state roots, including the state root with subspace information; and storing the tiles within a private chain of subspaced tiles in the cloud-based database.
In another embodiment, a system and method are provided for storing instructions corresponding to a private intelligent contract and executing the instructions in a virtual machine using a private subspace blockchain data structure.
These and other aspects and advantages will become apparent to those of ordinary skill in the art from a reading of the following detailed description, with reference where appropriate to the accompanying drawings. Furthermore, it should be understood that the foregoing summary is illustrative only and is not intended to limit in any way the scope or range of equivalents to which the appended claims are entitled.
Drawings
The patent or application file contains at least one drawing executed in color. Public copies of this patent or patent application with color drawings will be provided by the office upon request and payment of the necessary fee. The invention is described below with reference to the accompanying drawings, in which:
FIG. 1 is a diagram illustrating components of a system for creating and distributively managing a data structure with secure access restrictions, according to an embodiment of the invention;
FIG. 2 is a diagram illustrating components of the core module and database module of the above-described system according to an embodiment of the present invention;
FIG. 3 is a diagram illustrating components of a peer or verification node according to an embodiment of the invention;
FIG. 4 is a diagram illustrating the contents of a tile according to an embodiment of the present invention;
FIG. 5 is a schematic diagram of two nodes exchanging encrypted data, according to an embodiment of the invention;
FIG. 6 is a schematic diagram of a service node requesting data, checking permissions and verifying data according to an embodiment of the present invention;
FIGS. 7A and 7B are diagrams illustrating one node sending information within a subspace accessible to another licensed node according to embodiments of the present invention;
FIG. 8 is a diagram illustrating accessible subspaces of data for three different nodes, according to an embodiment of the invention;
FIG. 9 is a diagram illustrating messages exchanged in subspaces being added to a chain of private subspace blocks, according to an embodiment of the present invention;
FIG. 10 is a diagram illustrating the creation of a state root and a global state root to be included in a tile header according to an embodiment of the present invention;
11A-11D are diagrams illustrating exchanging data, verifying data, and creating a tile containing state roots from all subspaces according to embodiments of the invention;
12A-12G are diagrams illustrating a consensus process between nodes according to embodiments of the invention;
FIG. 13 is a diagram illustrating authentication of a node within a licensed network according to an embodiment of the present invention;
FIG. 14 is a schematic diagram of a subspace validation map according to an embodiment of the present invention;
FIG. 15 is a diagram illustrating components of an intelligent contract and corresponding subspace interactions, according to an embodiment of the present invention;
FIGS. 16A-16E are diagrams illustrating an application of a core module according to an embodiment of the present invention;
17A-17C are diagrams illustrating another application of a core module according to an embodiment of the present invention;
FIG. 18 is a diagram illustrating an application using an ongoing rights management system with automatic physical connections and contractual permissions in accordance with an embodiment of the invention;
FIG. 19 is a diagram illustrating the relationship between domains and subspaces associated with a private subspace blockchain, according to an embodiment of the present invention; and
20A-20B are diagrams illustrating the use of private subspace blockchains and related systems to implement mortgage loan support security (MBS) pools.
Detailed Description
While this invention is susceptible of embodiment in various forms, for purposes of simplicity and illustration, the principles of the invention are described, in part, by reference to several embodiments of the invention. It should be understood, however, that the present disclosure is to be considered as an example of the claimed subject matter and not intended to limit the appended claims to the particular embodiments set forth. It will be apparent to one of ordinary skill in the art that the present invention may be practiced without limitation to these specific details. In other instances, well known methods and structures have not been described in detail so as not to unnecessarily obscure the present invention.
FIG. 1 illustrates a system 100 for creating and distributively managing private subspace blockchains with secure access restrictions and other distributed data structures in accordance with an embodiment of the present invention. The system 100 is built around distributed network nodes 112 that are communicatively linked 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 may be implemented on one or more servers having logic to perform the functions described herein. The components of system 100, such as core module 104 and database 106, may reside on a single server, or may reside on one or more servers. The core module 104 provides the core functionality of each node in the system. Each node with core module 104 may interact with database module 106, and database module 106 may be located on a separate server. In addition to the functionality associated with the core module 104, each node may also include functionality associated with the API102 (as described further below), as well as hardware key management 108 for increased security. The core module 104 includes functionality that provides for creating, configuring and registering nodes. After a node is created, the core module 104 initializes the node, connects the node to an 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 the nodes based on node type (authentication, peer-to-peer, service), which determines the role of the nodes in the system 100, as described further below. The core module 104 also configures the node by providing information to the node indicating which subspaces the node may access based on an identifier identifying the party or user that created the node. In some embodiments, an identifier of the creator or user may be associated with the node type and may be used to identify the node type. For example, as part of the registration process, the system maintains and distributes to each node a table that associates each party/user's identifier with a particular node type (authentication, peer-to-peer, service). Additionally or alternatively, node registrations are maintained by using information maintained in a common subspace accessible to all nodes in the system, thereby ensuring that the registration data is consistent and available to all nodes. The node registration information includes a list of subspaces that the node is permitted to, and a level of access rights for each subspace (e.g., whether a peer has authenticator, peer, or service node access rights). In this way, the nodes may have different access privilege levels for different subspaces. For example, a node may be a "verifier" on one subspace, while being a "peer" on another subspace. Node registrations may be managed in a specific script (e.g., a smart contract) running on a common subspace. Changes to the registration data set may be made by sending a message to a script on the public subspace, and such changes work once the message requesting the change is validated within a tile in the private subspace blockchain.
Each node stores type information indicating the type of node (authentication, peer-to-peer, or service) that determines the role of the node and its behavior, such as the data access level of the node and its primary function, with respect to the system 100 and other nodes on the network, as shown in fig. 2. Verifying that node 202 has access to all subspaces that the node is permitted to. The verification node involves a consensus process for verifying a tile in a private subspace blockchain, as discussed further below. In particular, the verification node agrees with other nodes in a particular subspace regarding valid messages and chunks. The verification node 202 further forwards all messages it receives to nodes that are permitted to receive such messages, as well as submitting the messages to tiles on the private subspace blockchain. Similar to the verification node 202, the peer node 204 has access to all subspaces that the node is permitted to. However, unlike the verification node, the peer node is a watcher that does not participate in the consensus process. Thus, a peer node may be referred to as a watcher node. Functionally, peer node 204 also forwards all messages it receives to nodes that are permitted to receive such messages, but does not submit messages and tiles to the private subspace blockchain. In addition, peer node 204 and the verifier node each provide access to, and interact with, external systems. A peer node (similar to other nodes) is configured to maintain enterprise database 208, as discussed further below. In this regard, the enterprise database contains an extended set of data, and each node includes logic and programming that supports interaction with the database 208, such as the ability to store and aggregate data in the database 208 according to the type of node and efficiently query the database 208. In particular, the peer node has logic and programming that enables the node to query the database 208. The validator node has logic and programming that enables the node to query the database 208 and store and aggregate data in the database 208 by events linked to the smart contracts. In addition to the database functionality provided by database 208, API102 also provides extended functionality that enables system 100 to be integrated with externally existing systems having other data formats. For example, the API102 may include functions and procedures for: for accessing data stored in an externally existing system in a data format different from the block-chaining structure described herein, for importing data into enterprise database 208, for querying such data, for integrating such data into system 100, for converting a data set into a format suitable for use with the block-chaining structure described herein, and for exporting data from the block-chaining structure described herein into a format suitable for use by an external system. In other embodiments, the verification node may also interact with external systems. Service node 206 has access to a limited set of intelligent contracts within certain subspaces. The service node 206 also receives and forwards a limited number of messages, although it receives all messages in a common subspace.
Fig. 3 provides a representation of a peer node or validation node 300 showing the features and logic associated with each node in accordance with embodiments of the present system. Each node may be implemented in one or more servers with interfaces for communicating with other networked nodes and components in the system 100 via a LAN or WAN, internal logic for performing the functions listed herein, and internal memory for storing variables and data. Each peer node or authentication node includes communication logic 302 for communicating with other nodes via a peer-to-peer (p2p) protocol, as further described herein. In a preferred embodiment, nodes in system 100 use an extensible, versioned binary encoding scheme, such as Recursive Length Prefix (RLP), to format messages for communication. Messages sent by a node are signed with a private key to verify the identity of the sending node and prevent spoofing. Each peer node or verification node also contains API logic 304 for implementing a Remote Procedure Call (RPC) protocol, through which API logic 304a node may send notifications to other nodes and system components, as well as invoke execution of procedures and subroutines in other system components. In a preferred embodiment, the nodes use the JSON-RPC protocol. Each peer node or verification node also includes consensus logic 306 for implementing a consensus algorithm used by the system to verify messages and tiles, as discussed further herein. According to one embodiment, the system uses a Raft consensus algorithm, although other consensus logic may be implemented by logic 306. In other embodiments, a Byzantine Fault Tolerant (BFT) consensus mechanism is used. In other embodiments, the system uses a rolling consensus mechanism or joint signature to verify messages and blocks. The consensus logic 306 is also responsible for processing messages and adding authenticated messages to the tiles. Each peer node or verification node also contains logic 308 for script execution, which may serve as a runtime environment for executing scripts that include, for example, executing code associated with a smart contract. The logic for script execution 308 may be compatible with an Etherhouse Virtual Machine (EVM) implementation. Each peer node or validation node also includes a data repository 310 and associated logic for storing, retrieving and querying the data repository. Data repository 310 serves as a database repository for messages, tiles, and associated metadata. In particular, the data repository 310 contains one or more databases for long-term storage of system variables, such as private subspace blockchain data. The data repository 310 provides each node with data access to all subspaces that the node is permitted to. When a private subspace blockchain is associated with an intelligent contract, data repository 310 stores intelligent contract information and provides nodes with a quick retrieval of such information.
With respect to fig. 1, the client terminal 114 is able to access the functionality of the system 100 and the core module 104 by using the system integration tool 102, which is a set of Application Programming Interfaces (APIs). These APIs 102 include function calls by which the client terminal 114 can manage permissions for client nodes, perform Remote Procedure Calls (RPCs) and establish connections with nodes in the system network, manage accounts for clients with the system, and manage the content of data records (e.g., smart contracts) in private subspace blockchains disclosed herein. In particular, these APIs 102 include functions that can be invoked by the client terminals 114 to access the functions of the core module 104 in order to create, configure and register nodes; interact with the novel distributed data structure disclosed herein; and configuring permissions and access to the system network. These APIs 102 also include functionality that may be called by the client terminal 114 to access functions of the database module 106 in order to access data stored in the database module 106, manage such data, and perform queries on such data. In embodiments using hardware key management, these APIs also include functions that may be invoked by the client terminal 114 to access the functionality of the hardware key management module 108 in order to store and retrieve private keys and sign transactions. The API of the integration tool 102 interacts directly with the private subspace blockchain. Any API command that involves creating or interacting with a data record in a private subspace blockchain generates a blockchain message and returns a message hash value that can be used to identify the message so that it can be later retrieved and viewed by a user of the system 100. The client terminal 114 may take various forms. For example, the client terminal 114 may be a graphical user interface (used by an end user) that provides a means to interact with the API102 by providing data to the API, to invoke functions provided by the API102, and to display prompts and data from the API. The client terminal 114 may also be fully automated software that monitors external event call-out functions via an API when an external event occurs. For example, the client terminal 114 may be a matching platform that invokes a ledger function via the API102 to match a trading opponent in a trade.
Each node in the system 100 created by the core module 104 also stores some information used by the node to interact with the network of the system 100. Such information may be stored in a data directory, database or table structure of the node. Each node stores its type (authentication, peer-to-peer, or service). Each node in the system 100 also includes a name that is shared with other nodes in the system and displayed in a log file. Each node also includes a node identifier (or node ID), which is a complete certificate for the node. Alternatively, a secure hash may be used to implement the node ID, thereby allowing different certificate types and lengths to be used, assuming the hash is a fixed length value (such as a 32 byte fixed length hash value). In this manner, the license contract (or "chain link" script, as discussed further herein) need only store a fixed length value that can be effectively managed on the chain, without compromising security. Thus, for a node ID, either the complete certificate of the node may be used, or a hash of the certificate may be used (to increase efficiency and process data faster on the chain), depending on the particular needs of each system deployment.
In a preferred embodiment, the nodes in the system 100 use the TLS authentication procedure, and thus the security certificate is a TLS certificate. The node ID uniquely identifies the node and is also unique to the network. Each node also includes a signature address that is a hash of the node's public key and that is used to sign messages and chunks in the private subspace chunk chain. The signed address information need not be present in a watcher node, such as a peer type node. Each node also includes a domain name array for which the node acts as a verifier, and a domain name array for which the node acts as a watcher. Before participating in the block and message creation, each node must have its own security certificate (such as a TLS certificate) and signing key, which are stored in the node's data directory. In this regard, each node has two private keys: one private key is used for the TLS authentication process and, in addition, another private key (e.g., ECDSA private key) is used to sign the chunk and vote according to the chunk creation and voting process described herein.
Referring to fig. 1 and 2, the system 100 also includes a database module 106, the database module 106 including one or more databases 208 for storing private subspace blockchain data. The database module 106 provides one-way synchronization from the chain of private subspace blocks to the common database format for storage. The database module 106 also allows supplemental data to be added to the private subspace blockchain data. The database module 106 also performs complex data queries and analysis on the data stored in the one or more databases. The database module 106 may reside on the same server as the core module 104 or on a separate server.
The core module 104 also includes functionality for providing for the creation of an account associated with the local node. Each account defines the user's identity on the private subspace blockchain. Further, when data stored within a block of the private subspace block chain relates to a smart contract or other self-executing/self-enforcing script, the account is used to identify an actor associated with the smart contract and/or script. An account is a unique identifier used to send and receive messages and to automatically execute scripts, such as smart contracts. Each account is referenced by an address corresponding to its public key. Each account also has an associated private key that it uses when signing and interacting with scripts in the private subspace blockchain. The account further defines each user identity on the private subspace blockchain. Where a private subspace blockchain is used to implement, for example, an intelligent contract, the account is used to identify the parties to the intelligent contract.
The core module 104 further contains logic that provides the nodes with the functionality needed to communicate with other network nodes 112a-112d, including the ability to receive and forward messages, and the ability to submit messages to the private subspace blockchain. The communication network of system 100 is configured as a peer-to-peer network, with each node in the network having a known identity. As described herein, connections between nodes are authenticated using TLS certificates, only those nodes whose TLS certificates are included in the approval list are allowed to connect to the network. In a preferred embodiment, the core module 104 determines the subspace of a message or command based on the identifier of the party/user originating the message or command, and based on the identifier of the counterparty/user. For example, if party a sends a message or command and specifies for the message or command that party B be party B, core module 104 determines that the message or command should be sent on the AB subspace.
Fig. 4 provides a representation of a tile 400 in a private subspace blockchain in accordance with an embodiment of the present invention. Each chunk serves as a data repository and includes a link to a previous chunk in the private chain of subspaced chunks. Each tile 400 includes a header 402 with state information for verifying the contents of the tile. As described in more detail herein, the header includes a global hash value based on one or more underlying hash values corresponding to the subspace and other data in the chunk. In a preferred embodiment, the global hash value is the state root of a hash tree (such as a Merkle tree), where the bottom leaves of the tree represent subspaces. The header also includes a message root, which is a summary of all messages contained in the tile, and which is updated based on events triggered by the contents of the private subspace blockchain. In addition to the state root of the subspace, each subspace includes the message root, the recipient root, and the "fuel" amount for execution (i.e., the number of computational steps for transaction execution) of the subspace. The message root and the receiving root are tree root hashes that are updated based on events triggered by the addition of messages and receptions, and the tree root hashes are based on data contained in these messages and receptions. For example, the message root and the receiving root may be Merkle tree root hashes computed by adding all messages (or message receptions in the case of a receiving root) whose chunks are identified for subspaces in the Merkle tree structure and obtaining a root value. The header also includes a cryptographic signature for verifying the block. Each tile also includes a data payload that is divided into one or more subspaces, such as from A, B to N subspaces. These subspaces are isolated regions in the shared block chain that are only permitted to be accessed and added to by a defined subset of users. In this way, the subspace creates a private area for the participants to store records and data that only the licensed participants can receive. A subspace contains logic (e.g., self-executing scripts, smart contracts) and data sets (e.g., a series of data records, such as messages and receipts) that are specific to that subspace and is protected by access permissions so that they are accessible only to those nodes that have permission to access the subspace. Each subspace is accessible only to those nodes authorized for that subspace, which may include a single party, multiple parties, or all parties on the network. In this regard, the private subspace blockchain of the present invention differs greatly from conventional blockchain implementations that rely on public visibility of the contents of each block to ensure the validity and integrity of the blockchain. The subspaces of the private subspace blockchain may be partitioned based on a particular transaction (e.g., a credit default interchange (CDS) between two parties), or partitioned based on one or more parties having access to these subspaces, as further described herein. For example, each subspace may store a series of transactions between a set of participants, with the list of messages in the subspace providing a complete history of those transactions. Only the parties to the transaction have permission to access the subspaces corresponding to the transaction, and only the nodes corresponding to these parties can receive the contents of these subspaces as the system propagates messages and transactions. In this regard, the data stored in these subspaces is stored in separate databases and may be synchronized separately by nodes in the network.
In one embodiment, the data of the subspace is organized by account. An account is referenced by an address that has a message nonce (nonce) (a random or pseudo-random number that uniquely identifies something, in this case a message record), script code or "bytecode" (i.e., smart contract code), and any key-value pairs that the account may hold in storage. There are two types of accounts: (1) a user account, and (2) a script/smart contract account. The user account is the account used by the user to send messages into the system. The address of the user account is derived from the public key of the user. The user account does not have any bytecode or key-value pairs associated with it. On the other hand, script/smart contract accounts have script code/byte code and may store key-value pairs to persist data. The address of the script/intelligent contract account is derived from the address of the generating account and the random number, but there is no known private key that matches the address (public key) of the script/intelligent contract account. In this arrangement, the sender account is unable to send messages for the user of the script/smart contract.
Fig. 8 provides another representation of a tile 800 in a private subspace blockchain, illustrating an arrangement of subspaces in a payload of the tile, in accordance with an embodiment of the present invention. In addition to tile header 802 as described above, tile 800 contains a number of subspaces that are partitioned based on the participants that may access the subspaces. The subspaces include a single-party subspace 804 that permits only a single party to have access to data, and includes a subspace 804a corresponding to party a, a subspace 804B corresponding to party B, and a subspace 804C corresponding to party C. The single-party subspace may contain records or transactions involving a single party, such as stock purchases from stock exchanges, commodity transactions, or medical records. The subspaces in tile 800 also include a bilateral subspace 806 in which each of the two parties is permitted access to data. In the illustrated example, these subspaces include a bilateral subspace 806ab corresponding to parties A and B, a bilateral subspace 806ac corresponding to parties A and C, and a bilateral subspace 806bc corresponding to parties B and C. The bilateral subspace 806 may contain records or transactions involving both parties, such as credit default exchanges or equity exchanges, and the like. The common subspace 808 contains reference data, a list of service node permissions, a directory of identities (or peer registrations) that provides the node ID and corresponding type and permission for each node in the system 100, a transaction manager, and other information and scripts that are generally used by all participants and nodes in the system, or are necessary for the node to perform the access and permissions determined by the node. The transaction manager provides a message scheduling service to allow a user to schedule messages to be automatically run at a later point in time or upon the occurrence of some event. This message scheduling service function may also be provided by other components. For example, a coupon for a transaction contract may be automatically paid using a message scheduling service (a time-triggered instance), or the name of a referring entity in a transaction contract may be altered when an entity registry updates the entity name (an event-triggered instance). The common subspace may additionally include script/intelligent contract byte code, Application Binary Interface (ABI), intelligent contract factory, database configuration information, and other domain or subspace state information. Additional subspaces involving other combinations of one or more participants are also possible. Multiple subspaces may also be included in a given domain, for example as shown in FIG. 19. For example, a dual-sided domain may be accessed by both parties (e.g., party A and party B), both of which may act as authenticators for the domain. Within the domain, both parties have access to all subspaces within the domain (to ensure privacy, any true private subspace of either party will be in a single private domain). Within a domain, different subspaces may be used to designate separate groupings of records or separate transactions. For example, multiple subspaces may be created in the bilateral domain to process transactions of different asset classes, each subspace corresponding to a different asset class, thereby allowing parties to process and track such transactions separately.
Similar to the tiles in a traditional blockchain data structure, the data records in each subspace contain data (such as data corresponding to a particular transaction between two parties) and a key based on that data (such as a hash value based on that data), as well as a link to the previous data record in the subspace. By using subspaces, it is possible for nodes to reliably synchronize and validate data while isolating data sets associated with different users. Further, by using subspaces, the system 100 can provide concurrent processing of messages in different subspaces. In a conventional blockchain, messages and transactions must be processed in order to maintain the integrity of the blockchain. Subspaces in the private subspace blockchain allow for processing of messages and transactions in different subspaces simultaneously, only requiring messages in the same subspace to be processed in sequence. To process a message in a virtual machine, a node needs to access all accounts involved in the message call (e.g., smart contracts including byte code and repositories), each in the current state. Therefore, messages on the same subspace must be processed in sequence, as each message may change the state of the transaction, which may affect the outcome of subsequent message executions. That is, allowing a message to make a specific call to some other subspace places additional requirements on data access. For example, the message may invoke the common subspace and other subspaces in the domain.
Each copy of the tile maintained on a participant's node reflects the privacy and access limitations of the subspace creation. In particular, the participant's node includes a copy of the tile that contains only the data in the subspace allowed by the participant and the node. In the example shown in FIG. 8, the copy of the tile 800 maintained on the A-party node contains only data located in the subspace that is licensed and accessible by the A-party, meaning that the A-party node contains a copy of the tile 800 that includes data from only the unilateral subspace 804a, the bilateral subspaces 806ab and 806ac, and the common subspace 808. The A-party node does not have any data from the A-party unlicensed subspace, meaning the A-party node does not have any data from either the unilateral subspace 804b or 804c or the bilateral subspace 806 bc. Similarly, the copy of the tile 800 maintained on the node of party B contains only data located in the subspace that party B is licensed and has access to, and not data from the subspace that party B is not licensed, meaning that the node of party B contains a copy of the tile 800 that includes data from the one-sided subspace 804B, the two-sided subspaces 806ab and 806ac, and the common subspace 808; but does not have any data from the single- sided subspace 804a or 804c or the double-sided subspace 806 ac. Similarly, the copy of the chunk 800 maintained on the C-party node contains only data located in the C-party's licensed and authorized subspace, and not data from the C-party's unlicensed subspace, meaning that the C-party node contains a copy of the chunk 800 that includes data from the unilateral subspace 804C, the bilateral subspaces 806ac and 806bc, and the common subspace 808; but does not have any data from the single- sided subspace 804a or 804b or the double-sided subspace 806 ab. Because a node will not receive data for subspaces that the node has not been granted permission to, the subspaces are still completely private and there is no risk of inadvertently revealing data to parties or nodes that do not have access to the data.
FIG. 9 provides a schematic diagram of creating tiles in a chain of private subspace tiles based on updates to subspaces, according to an embodiment of the present invention. At the outset, nodes from the a-party and B-party in the network exchange messages 912 and 914 relating to transactions between the two parties, resulting in the series of transactions being in the AB2 state. Similarly, party a and party C exchange messages 926 related to the transaction between them, resulting in the transaction between the two parties being in the AC1 state. After the messages are consensus and verified, a new tile 902 is created in the new private subspace blockchain 900 as a secure record of the transactions and related information. The private subspace Block chain 900 and the blocks within it have two bilateral subspaces: a subspace AB908 corresponding to transactions between parties a and B, and a subspace AC 910 corresponding to transactions between parties a and C. Block 902 records messages 912 and 914 in subspace AB908 and message 926 in subspace AC. In a preferred embodiment, each message in a particular subspace is stored in the subspace in the form of a chunk on a chunk chain principle, wherein each chunk in the chain has an associated hash value, and wherein the hash value of the previous chunk is used to calculate the hash value of the current chunk, thereby creating a link between two chunks. For example, the first message 912 is stored as a first block in the block chain corresponding to the subspace AB908, and the second message is recorded as a subsequent message in the block chain. More specifically, messages in a particular subspace are stored in the subspace in the form of a private subspace blockchain as disclosed herein, which can have additional subspaces (also in the form of private subspace blockchains). In addition, state root AB 2908 a is generated based on the messages stored in the AB subspace (now made up of messages 912 and 914). The state root is a state key based on the data in the subspace, which is typically a hash value resulting from performing a hash function on the data in the subspace. For example, the state root of each subspace may be the root of a hash tree (such as a Merkle tree); these state roots may be part of a larger hash tree that includes the state roots of all subspaces, as discussed further herein. Similarly, the state root AC1910a is generated based on the messages stored in the AC subspace (now consisting of messages 926). These state roots are generated by the leader node in a particular subspace for incorporation into the chunk header, as described in detail herein. In this way, the tile includes the most recently committed state information for each subspace. Furthermore, as discussed further below, for each individual message or transaction in a given subspace, a consensus is to be reached between verification nodes before including it into a tile in the private chain of subspaced tiles. Each individual message must undergo consensus processing to ensure that the results are always predictable and reliable. This is due in part to the inability of the verifier node to reliably determine the order of messages it receives.
Generating a new state root for a subspace of a block may also result in an update to the global state root of the block. This is because the state root of the subspace is used as an input to the hash function, and the value of the global state root is obtained. FIG. 10 provides an illustration of how a state root of a subspace affects the value of a global state root of a tile, according to an embodiment of the present invention. Similar to the block in fig. 9, the block 1000 in fig. 10 includes two subspaces: subspace AB 1012 and subspace AC 1014. Each subspace has a state root: an AB state root 1004, and an AC state root 1014. When a particular subspace does not have any additional subspaces (actually "sub-subspaces") within it, the state root for that particular subspace may be the hash value of the newest chunk in the chain. When there are one or more subspaces (i.e., a plurality of sub-subspaces) within a subspace, the state root of the subspace may be the root of a hash tree (such as a Merkle tree) based on the state root values of the one or more sub-subspaces. Thus, each subspace is a recursive data structure element, which may be formed by a hierarchy of block chains, as shown in fig. 10. Within the subspace AB 1012 are a plurality of subspaces 1008, the state roots of which serve as inputs to a hash function that generates the AB state root 1004. Similarly, within the subspace AC 1014 are a plurality of subspaces 1010, the state roots of these sub-subspaces serving as inputs to a hash function that generates the AC state root 1006. The verifier nodes of a subspace have the ability to accept or reject the state root of a sub-subspace.
As shown in the example of fig. 9, subsequent messages 916 and 918 are generated for transactions in the AB subspace, resulting in a new state root AB 4908 b for the AB subspace 908, these messages and the new state root having been verified before being stored in the new chunk 904 in the private subspace blockchain 900. Similarly, subsequent messages 928 are generated for transactions in the AC subspace 910, resulting in a new state root AC 2910 b being generated for the AC subspace. Message 928 and new state root 910b are also verified before being stored in block 904. As further shown in fig. 9, additional messages (920, 922 in the AB subspace 908, and messages 930 and 932 in the AC subspace 910) are generated corresponding to the updated state root (state root AB 6908 c in the AB subspace 908, and state root AC 4910 c in the AC subspace 910), and these additional messages and state roots are verified and added to the new chunk in the chain (e.g., chunk 906). This process continues as additional messages are exchanged in the subspace and additional tiles are added to the private subspace blockchain 900.
In a preferred embodiment, new tiles are created at fixed time intervals based on the most recently committed state information of each subspace. Alternatively, a new tile may be created based on the exchange of messages. For example, a new tile may be created each time a message related to a subspace in a private chain of subspaced tiles is sent. The creation of a new tile for a new or existing chain of tiles may also be triggered based on other events, including events external to system 100.
The initial block in the block chain, the created block, is created from a configuration file that is the same for all nodes on the block chain. The founder blocks are not signed compared to all other blocks, and they may contain any number of messages that are not signed. For example, for a "public" domain that contains a "public" subspace, the foundational block contains the messages that deploy a specialized script or intelligent contract (e.g., a "chain-link" script) for managing permissions, and the initial set of verifier nodes is registered in the specialized script or intelligent contract.
The system deploys a distributed consensus algorithm for the private subspace blockchain. The algorithm designs strong password protection to resist malicious behaviors and uses Byzantine Fault Tolerant (BFT) protection. According to a preferred embodiment, the consensus algorithm functions as follows. First, a node that is permitted to act as a subspace verifying node elects a leader node. The leader node is then used to issue messages and blocks to the remaining verifying nodes in the subspace, which act as follower nodes. The follower node signs the new message and block by responding to the leader with an approval in the form of a cryptographic signature. Once most (over 50%) of the follower nodes have approved, the leader node issues the validity of the new message to the follower nodes, or confirms the new block. Other nodes in the network that do not participate in the consensus process can verify the message or block in an unreliable way, most of the verifying nodes have approved the message or block by verifying the signature on the message or block.
11A-11D provide schematic diagrams of a message propagation and validation process and a subsequent tile creation process for a subspace, in accordance with an embodiment of the present invention. FIG. 11A illustrates the generation and transmission of an initial transaction creation message. In the example shown in FIG. 11A, participant node representations 1104, 1106, and 1108 represent clusters of nodes managed by the party, in this example parties A, B, and C, respectively. Node clusters 1104, 1106, and 1108 and service node 1102 are communicatively coupled via a peer-to-peer communication network. The service node 1102 sends a transaction creation message for a transaction between the a-party and the B-party. The transaction creation message includes transaction terms, which may take the form of a self-executing script or smart contract, and also includes an associated subspace identifier, in this case the AB subspace. Note that since party C is not permitted on the AB subspace, party C does not have access to transaction information on the AB subspace, the service node 1102 does not send a transaction creation message to party C node cluster 1108, nor does the a-party node cluster 1104 and the B-party node cluster 1106 propagate the transaction creation message to party C node cluster 1108, as further described herein. As a result, the C-party node cluster does not receive nor is aware of the transaction creation message.
As described in the examples shown in fig. 11B and 11C, each message is propagated to all validation nodes licensed on the relevant subspace in the network to facilitate the validation and chunk creation processes. First, the service node sends the message to all verification nodes connected to the service node that are permitted to receive the message in the relevant subspace. As shown in fig. 11B, serving nodes 1110 and 1102 are non-verification nodes, which serve as entry points for sending messages. Service node A1110 receives the transaction creation message from service node 1102 and recognizes that the message belongs to the AB subspace. As a result, service node A1110 propagates the message from service node 1102 to all validation nodes of the AB subspace. The identification of the verification node for a particular subspace may be included in a tile on the private subspace blockchain, or may be managed by a script or intelligent contract located on the private subspace blockchain. For example, in one embodiment, a specialized script or smart contract (e.g., a "chain" script) for managing permissions is deployed into a common subspace in a foundational block. To grant a node, a message is sent to the link contract containing the new node's name, a common transport layer security ID (TLS-ID), a common signature address, and a list of domains and subspaces that the node is allowed to access and/or authenticate. Verifier permissions are granted at the domain level, while watcher (non-verifier) access may be granted at the subspace level. It is assumed that all nodes accepting connections from other nodes have access to at least the "common" subspace, so they can access and validate the chain-link contract. Since the data within the blockchain ensures that all nodes on the network are synchronized, all nodes are consistently visible to the link contract and accept/reject node connections accordingly. In the example shown in FIG. 11B, the server node identifies nodes Al (1112a) and A2(1112B) in the A-party node cluster 1104 and nodes B1(1114a) and B2(1114B) in the B-party node cluster 1106 as verification nodes for the subspace. Also, because the C-party nodes are not licensed in the AB subspace, they do not receive the message.
Second, after the server node propagates the message to the permitted connected validating nodes in the relevant subspace, the validating nodes will continue to validate the message through a consensus process, such as the Raft consensus protocol, although other consensus algorithms, such as a round-robin lead mechanism, may also be used. As shown in FIG. 11C, a randomization process is used to elect a leader node for the consensus process, which is node Al (1112 a). The elected leader proposes the messages it receives for voting by all other validating nodes connected to the leader that are permitted on the relevant subspace. In the illustrated example, the leader node A1(1112a) proposes the message received from the serving node 1102 for voting by other verifying nodes in the licensing subspace, i.e., node A2(1112B) in the A-party node cluster 1104 and nodes B1(1114a) and B2(1114B) in the B-party node cluster 1106. At the end of the voting period, which is determined by a particular consensus protocol, or by the passage of a certain amount of time (timeout), or the receipt of votes from all or a sufficient number of vote validation nodes, and assuming a sufficient number of votes are received, the status root is submitted for inclusion in the chunk header.
Once the state root of the subspace has been approved for inclusion in the chunk header, an updated chunk may be created for the network. One of the verifying nodes for the system according to the embodiment is randomly elected as a leader for creating the block. All subspace leaders then submit their respective state roots to the block leader. In the example shown in fig. 11, a node in the C-party node cluster 1108 (e.g., node C1) is randomly elected as the leader for creating the tile. All subspace leaders, such as AB subspace leader A1(1112a), thus submit their respective elected state roots to the block leader (node C1 in C-party node cluster 1108). As a block leader, node C1 combines the state roots from the subspaces and determines a global state root and an updated block header, and requests approval of the updated block header from a follower node in the network. The follower nodes compare the updated block headers from the block leader with their own determined block headers and indicate their approval to the block leader. Upon receiving approval, the chunk leader (node C1 in this example) creates a formal chunk for that point in the private subspace chunk chain, containing the state roots from all subspaces.
Fig. 12A-12G provide more detailed schematic diagrams of the consensus process, according to one embodiment of the invention. As noted above, the overall system typically includes multiple domains and subspaces, as shown in fig. 19. Each domain contains one or more subspaces, each subspaces being contained in only one domain. Each domain has its own private chain of subspaced blocks starting with a founder block. A consensus process is run for the domain. In this sense, a subspace is not directly connected to either a leader node or a follower node, but the domain containing the subspace has both a leader node and a follower node. Each domain has its own set of verifier nodes. A verifier node may verify one or more domains; however, the consensus process is run independently for each domain. This means that the verifier nodes verifying both domains run two independent instances of the consensus process. As a result, a verifier node may "win" leader in one domain, but act as a follower in another domain. In the preferred embodiment, there is only one implementation of the consensus process that is the same for all domains.
In the preferred embodiment as shown, the consensus process used by the system is the Byzantine Fault Tolerant (BFT) Raft consensus process. The process includes an election process and a verification process that determine a leader. 12A-12C illustrate an election process according to one embodiment of the present invention. As shown in this example, there are 5 authentication nodes A-E ( nodes 1202, 1204, 1206, 1208, and 1210) that authenticate messages and transactions for a given subspace. At the start of the process, without the leader node, all nodes are considered followers. Each follower node waits a random amount of time ("timeout") before attempting to start the election and designate itself as a candidate node, requesting confirmation votes from other verification nodes. As shown in fig. 12B, node a (1202) reaches a timeout before the other authentication nodes (or before receiving a confirmation vote request from any other authentication node), so it becomes a candidate node and makes a request to each authentication node that it is connected to that is permitted in the relevant subspace where the candidate node requests a confirmation vote or "vote for". The timeout for each node is randomized over a sufficiently long period of time (depending on network delay conditions) to optimize the likelihood that only one node may be the first candidate. Each node sends a confirmation or "vote for the candidate node it first received the request. In other words, each follower node will vote for the first candidate node to contact the follower node and request the election. Candidates that receive a sufficient number of votes are selected as leaders. Note that elections require voting by most followers to succeed. Furthermore, to ensure the integrity of all validations of the voting process, the votes of the followers are signed by the node generating the votes and the vote signatures of all followers are verified. After the follower's vote is sent, the candidate that obtained a sufficient number of confirmation votes sends a message to the follower, confirming the election result and confirming that it was selected as the leader. With respect to fig. 12C, node a 1202 has timed out and issued its voting request before any other follower nodes, receiving confirmation votes from each of the four follower nodes B (1204), C (1206), D (1208), and E (1210). Node a 1202 verifies the signature in the vote, after verifying the vote, sends a confirmation message to the four follower nodes to confirm the election result and identify node a 1202 as the leader, and then the follower nodes store information that node a is the current leader. If there is no deal, the elected leader will send a periodic heartbeat message to all followers at regular intervals. A node is always a follower as long as it receives a valid periodic message from the elected leader node. If the current leader does not react and does not issue periodic heartbeat messages, a new leader election is performed to obtain a new majority vote.
Once a leader is selected from the validation nodes for a particular block or domain, the nodes may proceed with the transaction validation and block creation processes within the subspace. Fig. 12D-12G illustrate a consensus process according to one embodiment of the invention. After the leader node elects, all follower nodes know which node is the leader node of a particular block or subspace. The leader is responsible for creating blocks at the end of each consensus "tenure", where each consensus tenure may only last for a certain period of time (e.g., between 1 and 3 seconds, preferably 2 seconds), or may only last until a certain event occurs in the system. Within each tenure, the leader is responsible for pre-submitting trades and messages to the subspace data. At the end of the tenure, the pre-submitted transactions and messages are approved by the follower, with the official blocks completed and submitted to the private subspace block chain. As shown in fig. 12D, after election, all follower nodes know that node a 1202 is the verified leader. When a node receives a message, it will propagate it in accordance with peer-to-peer message propagation as described herein. For example, as shown in fig. 12E, node B1204 receives a message representing a particular transaction (Tx 1) and responds by propagating the message to all other nodes in the system (node a (1202), node C (1206), node D (1208), and node E (1210)). These nodes A, C, D and E, in turn, propagate the message to all other verifying nodes in the network, including the elected leader node A12012. Upon receiving the propagated message, the leader node sends the message to all follower nodes requesting approval to pre-submit the message to the subspace. Each follower node examines the message in the approval request from the leader node and then the follower node sends an approval message to the leader node. If the messages meet certain criteria to ensure that they are valid, including the correct signature and the correct random value, the follower node will approve the pre-submission of the message. In a preferred embodiment, the follower node will approve the pre-submission of the message if the message meets the following criteria: (i) messages are correctly formatted (they conform to the message structure defined by the p2p protocol), (ii) messages are signed, and (iii) messages have a random number equal to the expected random number of the sending account. Once most follower nodes send their approval for the pre-submission, the leader pre-submits the message to the subspace. The number corresponding to the majority follower node is determined based on the number of nodes with permission to access the common subspace. As shown in the example in FIG. 12F, leader node A1202, upon receiving the message representing transaction Tx 1, sends a message to all follower nodes requesting approval to pre-submit the message to the relevant subspace. The follower nodes 1204, 1206, 1208, and 1210 determine that the Tx 1 message sent by the leader node A1202 is valid and send their approval, and then the leader node A1202 prepends the Tx 1 message to the subspace.
The leader node continues to receive, approve, and pre-commit messages according to the above process until it is time to end. At the end of its tenure, the leader node creates a formal chunk that includes all pre-submitted messages and sends a copy of the chunk to all follower nodes along with an approval request. Once the leader node receives the approval messages from the majority of the follower nodes, the block is completed and submitted to the private subspace block chain. A new tenure begins immediately after a block is completed and added to the private subspace blockchain. The leader may service multiple tenures, or may elect to generate at the beginning of each tenure. The number of options increases once per election. The block does not end the tenure. Thus, when the leader elects at an option, it can act as a leader for multiple hours/days/weeks as long as the leader continues to make the block. When re-election occurs, the tenure of each round of election is increased until a new leader is elected. The new leader is allowed to be the same as the predecessor leader. As shown in the continuing example in fig. 12G, during the tenure, the leader node has received and (after approval by the follower node) pre-submitted messages corresponding to transactions Tx 1, Tx 2, and Tx 3. At the end of this tenure, leader node A created the formal block and sent it to the follower nodes, node B (1204), node C (1206), node D (1208), and node E (1210), for approval. Once leader A receives the approval messages from most follower nodes, it submits the block to the private subspace Block chain. Thereafter, a new tenure begins and subsequent messages are pre-committed to the new block.
As described elsewhere herein, node permissions are on a subspace-by-subspace basis. In particular, the number of verification nodes per subspace may be different. For example, as shown in fig. 13 and 14, a peer node network according to the present invention may include several authentication nodes corresponding to several parties, but may differ in terms of subspaces that permit the nodes to act as authentication nodes. As shown in fig. 13, the a-party node cluster 1300 includes a verification node AO (1300a), a node a1(1300b), a node a2(1300 c); the node cluster on the B side 1302 comprises a verification node BO (1302a), a node B1(1302B), a node B2(1302 c); and the C-party node cluster 1304 includes a verification node CO (1304a), a node C1(1304b), a node C2(1304C), all of which are authorized to access the system network 1308 and communicate with each other based on their type and permissions. However, as indicated in FIG. 14, although these nodes are all validation nodes, the subspaces that they are permitted to be validation nodes are different. For example, node AO (1300a) is only permitted to be an authentication node in subspaces a 1408, AB 1400, and AC 1402, and does not include the common subspace 1406 (although node AO may be permitted to be a peer node of the common subspace and thus have access to data in that subspace). As another example, node B2(1302c) is permitted only in subspace B1410 and public space 1406 as verification nodes, and does not include AB subspace 1400 or BC subspace 1404 (although node B2 may be permitted as peer nodes to AB and BC subspaces and thus have access to data in these subspaces). However, in either implementation, less than three verification nodes are suboptimal for the subspace, as using only two verification nodes in one subspace carries an unacceptable risk of failure, i.e., the votes of the two verification nodes are not the same during any approval process.
As can be seen from the discussion above regarding adding tiles to a private subspace blockchain, over time, these distributed data structures may become relatively large, and the number of messages and tiles in the private subspace blockchain may also increase. Unlike conventional blockchain structures, the private subspace blockchain disclosed herein may be reduced in size by a novel pruning process as described herein that maintains the integrity of the data in the private subspace blockchain and retains the ability to verify the data and maintain a consensus process. Pruning of the private subspace blockchain allows for a significant reduction in the memory required for the data structure, saving hard disk space and increasing the efficiency associated with data storage. Furthermore, pruning of the private subspace block chain allows parties to comply with data retention and destruction policies that are not possible in conventional block chain structures.
The pruning process described herein is triggered based on predetermined criteria, such as time-based criteria. For example, over a period of time, such as 2 or 3 years after message and tile creation, private subspace blockchains may prune messages and tiles. This period of time may be dictated by a policing policy or one's own data retention policy. The predetermined criteria for initiating the pruning process for deleting messages and tiles may be based on subspaces, meaning that each subspace may have its own pruning policies and criteria. Moreover, different parties may utilize different policies and criteria to prune the private subspace blockchains maintained in their respective party nodes and data repositories. In a preferred embodiment, the policy for pruning and the criteria that trigger the pruning process are both maintained on the private subspace blockchain itself, in different cases, such as in a self-executing script or smart contract embodied in the private subspace blockchain. The core module 104 of the system 100 manages the pruning process. The core module 104 retrieves the pruning policies from each private subspace blockchain and monitors the criteria that trigger the pruning process in accordance with these policies. Once the criteria are met, the core module 104 implements a pruning process, such as including deleting chunks and messages based on a set of criteria, or filters that identify message characteristics that can be pruned, while preserving hashes of chunks and messages (such as state roots of various subspaces in the chunks). For example, the pruning process may clear blocks and messages for a particular contract or set of contracts, and may also clear blocks and messages that exceed a given retention date. Since all hash values are retained during pruning, the consensus process is not affected. However, if an attempt is made to access blocks and messages that have been deleted as a result of the pruning process, an error may result indicating that the data has been removed.
The pruning process provides for the removal of data in the state database (e.g., Merkle tree), which, as previously described, allows for compliance with the data retention policy while saving space. Each data object (e.g., each instantiated smart contract) exists in the state database in the form of an object. When removing an object, the system must ensure that the state root of the tree does not change, due to data retention policies or other reasons, at least because different participants may implement different data retention policies. To maintain consensus among parties with different data retention policies, objects are not allowed to be pruned from the database to change the state root of the tree. To enable removal of data while ensuring that consensus can be maintained, the pruning process described herein ensures that when all neighboring tree nodes are hashed all the way to the root (e.g., Merkle tree hash), the same root hash is computed as if the object were in place. In this regard, to prune objects, the system maintains data object tree nodes, but removes all payloads therefrom. Only the address of the data object and the hash of the tree node are persisted. Further, the data object is marked as "pruned," or has its payload removed. When accessed, this form of data object is identified as "pruned," thereby allowing the system to distinguish between non-existent data objects and pruned data objects. This information (e.g., the address and hash of the data object) remaining in the object after the pruning process does not allow the original data payload to be recovered.
In one embodiment, additional information is embedded in the tree nodes of the data object to prevent recovery of the removed data payload. In some cases, simply deleting the data payload may make the data object susceptible to brute force recovery of the data, such as guessing the removed value until a matching hash is found. For example, if a blockchain is used for only one type of contract, and the only fields in the contract are dates and values, an attacker can generate tree nodes that match the contract bytecode with all reasonable date and value combinations until a matching hash is found. To prevent such attacks, a salt (i.e., random data used as an additional input for hash information) is embedded in each tree node of each private subspace blockchain, which makes attempts to remove data by brute force recovery and random guessing attempts more difficult, even if all non-random data is known.
Fig. 5 provides a schematic illustration of a process of secure communication between nodes in a network of system 100. In a preferred embodiment, the system 100 uses Transport Layer Security (TLS) functionality for authentication and identity management. The secure communication process involves a mutual authentication process in which a node accepting a connection (accepting node) verifies that credentials, such as a security certificate, of the node it is connecting (connecting node) are approved, and the connecting node verifies that the credentials of the accepting node are approved. In the preferred embodiment, the bi-directional process requires the recipient node to verify that the TLS certificate of the connecting node is approved, and that the connecting node verifies that the TLS certificate of the recipient node is approved. The hash value of a node's security certificate (e.g., its TLS certificate) must be registered in the system 100 before the node can successfully authenticate and communicate with other nodes on the network. In one embodiment, the certificates of each node are registered by the core module 104 in the peer-to-peer registries 512, 154, with each node maintaining a copy of the peer-to-peer registry. Such registration requires associating security certificates with the type of node (authentication, peer-to-peer, or service) in order to register each node's TLS certificate as being associated with a certain role. As shown in fig. 5, when establishing a connection with another node in the system network, the first node 502 (i.e., node a) first performs a TLS handshake procedure using the TLS module 504 communicatively coupled to the TLS module 514 of the second node 508 (node B). The initial exchange and validation of TLS certificates is in accordance with the TLS protocol specification. In addition to or instead of the TLS protocol specification procedure, the node B provides its identification in the form of its digital certificate (TLS certificate) as part of the handshake procedure. Node a verifies the node B's TLS certificate by checking whether the node B's TLS certificate is registered in the peer registry 512. Additionally or alternatively, the node may sign itself without using a signing mechanism.
The system 100 implements a second verification step that checks whether the TLS certificate is approved in the peer registry (e.g., a "chain link" script or contract). This is done only after the TLS certificate exchange is completed, but before the connection is used for any blockchain purpose. Referring to FIG. 5, the peer registry 512 corresponds to a proprietary script or smart contract (e.g., a "chain ring" script) for managing permissions. If the TLS certificate returned by node B is registered in the peer registry 512, node a (the connecting node) determines that node B's (the recipient node) TLS certificate is approved, whereupon node a 502 encrypts the data based on the session key and sends the data and its TLS certificate to node B508 via network 510. Node B verifies the TLS certificate for node a by checking, using the TLS module 506, whether the TLS certificate provided by node a is registered in the peer registry 514. If the TLS certificate returned by node a is registered in the peer registry 514, node B (the recipient node) determines that node a (the connecting node)'s TLS certificate is approved, whereupon node B508 decrypts the message to retrieve the data in the message and processes the data accordingly. This secure communication process provides a significant advantage over previous systems because the Transport Layer Security (TLS) functionality is used not only for encryption, but also for authentication in the system.
Through the connection process, the node also determines the type of each node it is connected to. As described above, each node in the system is registered as a particular type (authentication, peer-to-peer, service), and each node may be approved as a different node type for different subspaces and domains. This registration information is maintained in a dedicated peer-to-peer registry (e.g., a "chain ring" script). In particular, the system maintains and distributes a registry of nodes in the network that associates a unique identifier of each node with its type. As previously described, the unique identifier of each node is derived from its TLS certificate. When the connecting node connects to another node in the system, the connecting node obtains the TLS certificate for the other node in the system and, based on the TLS certificate and information maintained in the registry, the connecting node determines an association type for the other node. As a result, each node determines which authentication nodes it is connected to, which peer nodes it is connected to, and which service nodes it is connected to. The type of each node and the type of nodes to which it is connected will affect the way the nodes process messages in the system. Nodes registered as authentication nodes will automatically participate in the block and message authentication process, but will discard any authentication peer messages received from the watcher or serving node. Furthermore, a node that receives messages and blocks that need to agree on a consensus will only send these messages and blocks to nodes that are authenticated as verifying nodes.
As described above, permissions-or actions that a node is allowed to take with respect to other nodes and data in the network-are grouped by subspace, which means that, for example, one node may be a validating node for one subspace, while possibly being a peer node for another subspace. In particular, a node may have a set of subspaces that allow it to verify so that it can participate in consensus voting and block signature processes. In addition, a node may have a set of subspaces that allow it to observe as a peer, so that it can passively participate in importing blocks and messages. A node may have a specific set of subspaces that only allow the node to connect as a service node (or API client) so that it does not participate in consensus nor active or passive activities related to tiles and messages. In this regard, a node is only allowed to initiate blocks and messages that permit it to authenticate, service, or act as a subspace for the service node/API client. According to the present system, the initial blocks in each permitted chain of blocks, referred to as foundational blocks, comprise the initial set of verification nodes for each subspace therein. The startup block may also include a list of peer nodes and serving nodes for each subspace. Thus, the identified set of nodes and their corresponding roles (and permission levels) associated with each subspace are maintained on the chain and used to determine the actions that the nodes are allowed to take with each subspace. The set of identified nodes and their corresponding roles (and permission levels) associated with each subspace may be updated through specific messages.
Fig. 6 provides an example by which a node with limited access and permission (e.g., a service node) can participate in an untrusted authentication process. Service node 602 requests information about data in a particular subspace, e.g., a particular intelligent contract 608. First, after the service node 602 establishes a secure connection with the server node 606 (which may be a peer node or an authentication node) through the TLS gateway 604, a request for data 604 is generated. Server node 606 decrypts the request from service node 602 and processes the request by first checking 616 any level of permissions of service node 602 for the requested subspace. To check permissions 616, the server node 606 retrieves the private subspace blockchain with associated subspaces, and then accesses a particular subspace 608 (e.g., a smart contract) to retrieve a list of nodes with permission levels (peer, authentication, service) associated with that subspace 608. If the service node 602 is listed as a service/API license with a particular subspace, the license is approved 618. In this regard, it should be noted that the permission level is hierarchical, with the validation node having a larger permission than the peer node, and the peer node having a larger permission than the service/API node. As a result, the low-level permission is included in the high-level permission, so that the node having the high-level permission will be approved for a request requiring the low-level permission. For example, if a node is a validation node for a particular subspace, it will be approved for requests that require validation, peering, or service/API permissions. As another example, if a node is a peer node of a particular subspace, it will be approved for requests that require peer-to-peer or service/API permissions. The system may support additional permission levels as needed. After determining that service node 602 has permission to access data in a particular subspace, the server node responds by returning verification data 622, from which verification data 622 service node 602 may determine that the response is valid. For example, this verification data may be a chunk 622 version that contains a full chunk header (including signatures, message roots, and root state from server node 606), but does not include data from any subspaces that the service node is not permitted to, and only contains data (e.g., the requested smart contract), or portions thereof, in the data payload from the relevant subspaces that service node 602 is permitted to, and a hash value or index 610 from the data that is not included. Despite the fact that the service node returns a limited portion of the chunk, the service node can validate the data by evaluating the validation data, e.g., by performing a proof on the hash tree to generate root 612 and comparing it to the state root in the chunk header to confirm that it generated an equivalent value for the state root. If the state root is that of a Merkle tree, the service node 602 will perform Merkle attestation to verify the data returned by the server node 606.
Fig. 15 provides a schematic of various intelligent contracts and corresponding public and private subspaces by which participants in a network can store data and execute logic by using the chain of privately spatialized blocks described above in a manner that certain data and logic is accessible only to those nodes that are permitted to access the subspaces. Subspace 1500 is private to party a and contains a wealth intelligence contract 1506. Intelligent contract 1506 stores private data in the a-party trade contract. The public subspace 1504 contains market data, license registries, and base template contracts. Basic template contract 1520 contains rules and logic related to financial contracts. License registry contracts 1524 maintain a list of licenses for each party in the various private subspace blockchains. Market data contract 1526 provides input for logic that executes intelligent contracts. Bilateral subspace 1502 contains a set of intelligent contracts that record trades between two parties (parties a and B). Trading contracts 1528 store the current state 1522 of the contract, the particular trading terms 1508, the updated set of trades 1512, and the byte code 1518 of the rules/logic used to execute the trading contract. The subspace 1502 also includes registry contracts 1510 for storing all trade contracts, event schedulers 1514 for tracking timestamps in the chunk headers, and payment intelligence contracts 1516 for consolidating payments from trade contracts and calculating net value. The portion of the wealth data in the trade contract terms 1508 is filled by both parties through the wealth contracts 1506 in the respective private subspaces 1500. The trade contract 1528 itself is instantiated using the base template 1520 and populated using the specific terms of the trade 1508. Permissions for parties that may execute the logic of trading contract 1528 are managed by registry contract 1524 in the common subspace.
16A-16E illustrate various lifecycle events for interest rate Interchange (IRS) contracts implemented in private subspace blockchains, according to an embodiment. FIG. 16A illustrates the architecture of an IRS contract. The intelligent contracts used to implement IRS reside in two subspaces: (1) a bilateral subspace 1600 between the two parties, and (2) a common subspace 1602. The IRS data contract 1608 contains trade terms, the registry contract 1606 maintains an IRS instance, and the payment contract 1610 is used to consolidate payments and calculate net amounts. The common subspace 1602 contains three contracts for executing IRS. Base contract 1612 is a template for an IRS contract, with permissions registry contract 1614 managing permissions on subspaces for parties, and reference data contract 1616 maintaining common reference data. FIG. 16B shows the sequence of events during the creation of a new IRS. The matching engine 1620 interacts with the server node 1618 in the bilateral subspace 1600 to initiate recording trades on the private subspace blockchain. The server node accesses the base template contract 1612 from the common subspace to instantiate a new IRS contract 1608. The service provider permissions are verified by accessing registry contracts 1614. After verifying the credentials, the new contract will be stored in the registry 1606 and the prepaid will be sent to the payment contract 1610. A new contract is also added to scheduler 1604 to keep track of the tile header timestamps. FIG. 16C illustrates a sequence of events that result in an IRS contract being updated in the dual-sided subspace 1600. The clearinghouse node 1624 is connected to a server node 1622 in the common subspace 1602. The server node sends a message to reference data contract 1616. The event dispatcher 1604 on the bilateral subspace observes this message and notifies the IRS registry contract 1606. The registry contract then updates the state of the underlying IRS contract 1608. Fig. 16D shows a sequence of events following a time-based trigger. Upon reaching the predefined timestamp, the event scheduler 1604 triggers a time-triggered event by notifying the IRS registry 1606. The registry notifies the underlying IRS contract 1608 that payment in the contract is properly updated in the payment contract 1610. FIG. 16E illustrates the creation of a new bilateral subspace. The clearing node 1624 sends a message to the server node 1622 to create a new bilateral private subspace blockchain. The permission registry contract 1614 verifies the permission and creates a new bilateral subspace, and also sends notifications from the two-way dependent nodes.
17A-17C illustrate creating a stock exchange contract, according to one embodiment. FIG. 17A illustrates a contract that is needed for both a private subspace 1700 and a public subspace 1702. The common subspace contains a base template contract 1712, a license registry 1714, and a market data contract 1716. The bilateral subspace 1700 between the two parties contains a equity interchange contract 1708, a payment contract 1710, a registry contract 1706, and an event scheduler contract 1704. Fig. 17B illustrates the creation of a new stock exchange contract in the bilateral subspace 1700. The marketplace node 1720 interacts with the server node 1718 to initiate creation of a new trading contract. The server node creates a blockchain message to create a swap contract 1708 according to the template defined in the base contract 1712. After the interchange contract is created, registry contract 1706 and scheduler contract 1704 are updated. Fig. 17C shows an updated sequence of events for payment between two parties at the end of the day. Market data provider 1724 is connected to server node 1722 in the common subspace. The server node updates the market data contract 1716 by sending a message. Event scheduler contracts 1704 in the two-sided subspace trigger a market-valued (MTM) event that takes outstanding contracts from the registry 1706. The incomplete trading contracts 1708 query the market data contracts 1716 for the latest interest rate, calculate the MTM and finally send a message to the payment contracts 1710.
Fig. 18 shows how reference data providers 1816, validation service providers 1812 and other nodes interact through a common connectivity network 1822. Buyer companies, distributors, and other service providers maintain different connections to the network. The matching and validation service provider 1812, the reference data provider 1816, and the other service providers 1814 only maintain Software Defined Network (SDN) based connections to the network. These three services have only service level nodes and therefore have limited visibility into the network. These nodes can only access a limited set of contracts in a particular subspace. They also receive all messages in the common subspace. Distributor node 1800 is a complete node, implying that it receives all messages in its licensed subspace and submits the tile to the chain of subspaced tiles. It maintains client and provider connections to the network 1822. The dealer nodes 1802 and 1804 are also complete nodes, maintaining SDN and client connections to the network. The buyer nodes 1806, 1808 and 1810 are service nodes and have access to a limited set of messages in the licensed subspace.
While the invention has been described in terms of several preferred embodiments, it should be understood that there are many alterations, permutations, and equivalents, which fall within the scope of the present invention. It should also be noted that there are alternative ways of implementing both the process and the apparatus of the present invention. For example, the steps need not be performed in the order shown in the figures, but may be rearranged as desired. It is therefore intended that the following appended claims include all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.
The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The invention can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
Method steps of the invention can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps of the invention may also be performed by, and apparatus of the invention may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, microprocessors and any one or more processors of any high-performance digital computing platform. A processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
The use of the terms "a" and "an" and "the" and similar referents in the context of this disclosure (especially in the context of the following claims) is to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by 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 language (e.g., such as, preferably) provided herein, is intended merely to further illuminate the disclosure and does not pose a limitation on the scope of the claims. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.
Various embodiments are described herein, including the best mode known to the inventors for carrying out the claimed invention. Wherein variations of the disclosed embodiments will become apparent to those of ordinary skill in the art upon reading the foregoing disclosure. The inventors expect skilled artisans to employ such variations as appropriate (e.g., variations or combinations of features or embodiments), and the inventors intend for the invention to be practiced otherwise than as specifically described herein.
Accordingly, this invention includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the invention unless otherwise indicated herein or otherwise clearly contradicted by context.
Claims (20)
1. A system for providing a distributed platform to support private and secure exchange of data and to ensure authentication of such data, the system comprising:
a plurality of nodes communicatively coupled to each other via a network, each of the plurality of nodes having logic to receive messages exchanged in a common subspace;
a subset of nodes of the plurality of nodes, the subset of nodes corresponding to a domain and having permission to access messages exchanged within a private subspace within the domain;
a set of validation nodes within the subset of nodes, each validation node having logic to generate a state root based on messages exchanged within the private subspace; and
the nodes within the subset of nodes also have logic to generate a global state root value based on the state root.
2. The system of claim 1, wherein the state root is a hash value resulting from performing a hash function on data in the private subspace, and wherein the global state root is a hash value resulting from performing a hash function on a data set that includes the state root.
3. The system of claim 1, wherein each node in the set of validation nodes has logic to validate messages exchanged within the private subspace based on a consensus voting process involving other nodes in the set of validation nodes.
4. The system of claim 1, wherein license information for each node is maintained in the common subspace, and wherein changes to license information are managed by the plurality of nodes exchanging and validating messages in the common subspace.
5. The system of claim 4, wherein each of the plurality of nodes has logic for forwarding a received message to other nodes permitted to receive such messages based on the permission information.
6. The system of claim 1, wherein each of the plurality of nodes is communicatively coupled to a database, and each of the plurality of nodes stores validated messages and blocks within the database.
7. The system of claim 6, wherein each node further comprises logic to delete messages and tiles according to one or more sets of criteria, wherein a delete message retains the subspace hash values and global hash values.
8. A network node in a distributed platform that supports private and secure exchange of data and ensures authentication of such data, the system comprising:
logic for receiving messages exchanged in a public subspace and for receiving messages exchanged in a private subspace licensed by the nodes, wherein all nodes in the network have permission to access messages in the public subspace;
logic for generating a subspace hash value based on messages exchanged in the private subspace; and
logic for generating a global hash value based on the subspace hash values.
9. The network node of claim 8, further comprising logic to validate messages exchanged within the private subspace based on a consensus voting process involving other nodes in the distributed platform.
10. The network node of claim 8, wherein permission information for each node is maintained in the common subspace, and wherein changes to permission information are managed by the network node exchanging and validating messages in the common subspace.
11. The network node of claim 10, further comprising logic to forward received messages to other nodes permitted to receive such messages based on the permission information.
12. The network node of claim 8, wherein the network node is communicatively coupled to a database, and wherein the network node stores validated messages and blocks within the database.
13. The network node of claim 12, further comprising logic to delete messages and tiles according to one or more sets of criteria, wherein a delete message retains the subspace hash values and global hash values.
14. A distributed data structure implemented in computer memory for securely exchanging private data and ensuring authentication of such data between a plurality of nodes in a distributed network, the data structure comprising:
one or more private subspaces having content accessible only by nodes of the plurality of nodes having sufficient access credentials, each subspace including a state root;
a public subspace accessible to all of the plurality of nodes, the public subspace identifying a validation node for each private subspace; and
a header, comprising: a global state root based on the state roots of the one or more subspaces.
15. The distributed data structure of claim 14, wherein the state root of each private subspace is a hash value resulting from performing a hash function on data in the private subspace.
16. The distributed data structure of claim 14, wherein the global state root is a hash value resulting from performing a hash function on a data set including the state roots of the one or more private subspaces.
17. The distributed data structure of claim 14, wherein the common subspace includes a script for managing permissions of each of the plurality of nodes.
18. The distributed data structure of claim 14, wherein each private subspace contains a policy for deleting chunks and messages within the private subspace by a deletion process that preserves a hash value of the subspace.
19. The distributed data structure of claim 14, wherein the header further comprises one or more cryptographic signatures for verifying the distributed data structure.
20. The distributed data structure of claim 14, wherein the header further comprises a message root, the value of which is a function of all messages contained within the distributed data structure.
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 (2)
Publication Number | Publication Date |
---|---|
CN110870254A true CN110870254A (en) | 2020-03-06 |
CN110870254B CN110870254B (en) | 2023-03-31 |
Family
ID=62716138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880046433.7A Active CN110870254B (en) | 2017-06-01 | 2018-06-01 | Method and system for providing distributed private subspaced data structures |
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 (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111034151A (en) * | 2019-04-30 | 2020-04-17 | 阿里巴巴集团控股有限公司 | Method and apparatus for managing access to accounts in a blockchain system |
CN111416703A (en) * | 2020-03-16 | 2020-07-14 | 北京有链科技有限公司 | Block chain crossing type and jumping type rapid synchronization method and system |
CN112332980A (en) * | 2020-11-13 | 2021-02-05 | 浙江数秦科技有限公司 | Digital certificate signing and verifying method, equipment and storage medium |
CN112417176A (en) * | 2020-12-09 | 2021-02-26 | 交通银行股份有限公司 | Graph feature-based method, device and medium for mining implicit association relation between enterprises |
CN113487400A (en) * | 2021-06-04 | 2021-10-08 | 长春工业大学 | Financial credit consensus method based on honesty bidirectional selection |
WO2022053048A1 (en) * | 2020-09-14 | 2022-03-17 | International Business Machines Corporation | Ensuring secure provisioning of blockchain infrastructure |
CN115114603A (en) * | 2021-03-17 | 2022-09-27 | ***通信集团福建有限公司 | 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 |
Families Citing this family (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200032086A (en) * | 2017-06-01 | 2020-03-25 | 쉬비, 인크. 디/비/에이 액소니 | Distributed blockchain data structure distribution through 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 |
WO2019055290A1 (en) * | 2017-09-12 | 2019-03-21 | Northwestern University | Blockchain distribution network |
US10567320B2 (en) | 2017-10-17 | 2020-02-18 | American Express Travel Related Services Company, Inc. | Messaging balancing and control on blockchain |
US10469248B2 (en) | 2017-10-17 | 2019-11-05 | Amrican Express Travel Related Services Company, Inc. | API request and response balancing and control on blockchain |
US10911219B2 (en) * | 2017-12-01 | 2021-02-02 | International Business Machines Corporation | Hierarchical blockchain consensus optimization scheme |
US10958628B2 (en) * | 2017-12-18 | 2021-03-23 | International Business Machines Corporation | Protecting sensitive data in a distributed ledger system using a blockchain channel hierarchy |
US10958417B2 (en) * | 2017-12-18 | 2021-03-23 | International Business Machines Corporation | Protecting sensitive data in a distributed ledger system using blockchain hierarchies |
US10715323B2 (en) | 2017-12-29 | 2020-07-14 | Ebay Inc. | Traceable key block-chain ledger |
US11544708B2 (en) * | 2017-12-29 | 2023-01-03 | Ebay Inc. | User controlled storage and sharing of personal user information on 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 |
US11227350B1 (en) | 2018-09-06 | 2022-01-18 | Side, Inc. | Single-tier blockchain-based system and method for document transformation and accountability via different node types |
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 |
CN109327528B (en) * | 2018-10-31 | 2020-10-20 | 创新先进技术有限公司 | Node management method and device based on block chain |
RU2723308C1 (en) * | 2018-11-07 | 2020-06-09 | Алибаба Груп Холдинг Лимитед | Control of private transactions in chains of blocks based on processing flow |
US10936741B2 (en) | 2018-11-19 | 2021-03-02 | Bank Of America Corporation | Management of access to data stored on a distributed ledger |
US10778411B1 (en) * | 2018-11-30 | 2020-09-15 | Sprint Communications Compnay L.P. | System for interexchange of state data among disparate block chains |
US20200394183A1 (en) * | 2019-06-12 | 2020-12-17 | Subramanya R. Jois | System and method of executing, confirming and storing a transaction in a serverless decentralized node network |
CN109617964B (en) * | 2018-12-12 | 2021-11-09 | 成都四方伟业软件股份有限公司 | Big data storage method and device based on block chain |
CN110046992A (en) * | 2018-12-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | A kind of transaction Hash acquisition methods and system based on block chain intelligence contract |
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 |
US10979213B2 (en) | 2018-12-19 | 2021-04-13 | Verizon Media Inc. | Blockchain compression using summary and padding blocks |
CN110088793B (en) | 2018-12-19 | 2023-10-20 | 创新先进技术有限公司 | Data isolation in a blockchain network |
US11032064B2 (en) | 2018-12-19 | 2021-06-08 | Verizon Media Inc. | Blockchain ledger growth management |
CN111782668B (en) | 2018-12-20 | 2024-06-28 | 创新先进技术有限公司 | Data structure reading and updating method and device and electronic equipment |
CN110032568B (en) * | 2018-12-20 | 2020-05-12 | 阿里巴巴集团控股有限公司 | Data structure reading and updating method and device, and electronic equipment |
JP7146093B2 (en) * | 2018-12-21 | 2022-10-03 | エスダブリュー エンパイア カンパニー リミテッド | How to share and verify blocks and electronic documents between nodes on 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 |
KR102243754B1 (en) * | 2019-03-21 | 2021-04-26 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | Data isolation in blockchain networks |
CN111066286B (en) | 2019-03-27 | 2023-02-28 | 创新先进技术有限公司 | Retrieving common data for blockchain networks using high availability trusted execution environments |
EP3673617B1 (en) | 2019-03-27 | 2021-11-17 | Advanced New Technologies Co., Ltd. | Retrieving public data for blockchain networks using trusted execution environments |
EP3610450A4 (en) * | 2019-03-28 | 2020-06-10 | Alibaba Group Holding Limited | System and method for parallel-processing blockchain transactions |
KR102274294B1 (en) | 2019-03-29 | 2021-07-08 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | How to retrieve access data to a blockchain network using a highly available trusted execution environment |
AU2020253473A1 (en) | 2019-04-03 | 2021-11-04 | Geoquest Systems B.V. | 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 |
JP7192196B2 (en) * | 2019-04-29 | 2022-12-20 | アドボケイト リミテッド | Network transaction verification method and system based on multiple nodes, and storage medium |
US11106812B2 (en) | 2019-05-09 | 2021-08-31 | At&T Intellectual Property I, L.P. | Controlling access to datasets described in a cryptographically signed record |
US11676143B2 (en) * | 2019-05-16 | 2023-06-13 | Coinbase, Inc. | Systems and methods for blockchain transaction management |
US11621960B2 (en) | 2019-05-28 | 2023-04-04 | Honeywell International Inc. | System and method to update aircraft maintenance records using blockchain technology |
US10778452B2 (en) * | 2019-06-03 | 2020-09-15 | Alibaba Group Holding Limited | Blockchain ledger authentication |
US11249985B2 (en) | 2019-06-15 | 2022-02-15 | Facebook, Inc. | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network |
EP4071649A1 (en) * | 2019-06-15 | 2022-10-12 | Meta Platforms, 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 |
US11126593B2 (en) | 2019-06-15 | 2021-09-21 | Facebook, Inc. | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network |
US11405204B2 (en) | 2019-06-15 | 2022-08-02 | Meta Platforms, Inc | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network |
SG11202001888UA (en) | 2019-06-21 | 2020-03-30 | Alibaba Group Holding Ltd | Methods and systems for automatic blockchain deployment based on cloud platform |
CN112150141A (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 |
SG11202003808PA (en) | 2019-06-28 | 2020-05-28 | Advanced New Technologies Co Ltd | System and method for data processing |
EP3669280B1 (en) * | 2019-07-11 | 2021-09-08 | Advanced New Technologies Co., Ltd. | Shared blockchain data storage |
WO2019179540A2 (en) | 2019-07-11 | 2019-09-26 | Alibaba Group Holding Limited | 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 |
US10795874B2 (en) | 2019-07-29 | 2020-10-06 | Alibaba Group Holding Limited | Creating index in blockchain-type ledger |
CN111352935B (en) * | 2019-07-29 | 2021-05-18 | 创新先进技术有限公司 | Index creating method, device and equipment in block chain type account book |
CN112347184B (en) * | 2019-08-07 | 2024-07-19 | 华为技术有限公司 | Bifurcation processing method and block link point |
CN114222992A (en) * | 2019-08-29 | 2022-03-22 | 松下电器(美国)知识产权公司 | Control method, server, and program |
CN111837117B (en) * | 2019-09-11 | 2024-04-16 | 创新先进技术有限公司 | Error correction coding based shared blockchain data storage in trusted execution environments |
EP4029218A4 (en) * | 2019-09-11 | 2022-09-21 | Visa International Service Association | Blockchain sharding with adjustable quorums |
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 |
CA3152588A1 (en) | 2019-09-27 | 2021-04-01 | 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 |
CA3098935A1 (en) | 2019-11-19 | 2020-02-20 | Alipay (Hangzhou) Information Technology Co., Ltd. | System and method for consensus management |
BR112022010762A2 (en) * | 2019-12-02 | 2022-08-23 | Schvey Inc D/B/A Axoni | CALLS BETWEEN PARTITIONS IN PARTITIONED AND UNVIOLABLE DATA STORAGES |
CN111177259A (en) * | 2019-12-13 | 2020-05-19 | 杭州复杂美科技有限公司 | Parallel chain transaction encryption method, device and storage medium |
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 |
US11416933B2 (en) * | 2020-01-07 | 2022-08-16 | Bank Of America Corporation | Event management and validation platform using a recursive hierarchic blockchain |
US20210250219A1 (en) * | 2020-02-07 | 2021-08-12 | Bank Of America Corporation | System for integration and interoperability between disparate distributed server technologies |
CN111339191B (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 |
CN111538757B (en) * | 2020-04-13 | 2022-02-11 | 支付宝(杭州)信息技术有限公司 | Data storage method, query method, device, server and medium |
US20230198747A1 (en) * | 2020-04-15 | 2023-06-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Policy-aware distributed ledger networks |
KR102356725B1 (en) * | 2020-04-27 | 2022-01-27 | 주식회사 시큐어링크 | Authentication and Policy Management Methods Using Layer Blockchain |
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 |
KR102536958B1 (en) * | 2021-02-26 | 2023-05-26 | 인천대학교 산학협력단 | System for Managing Distributed Security for Internet of Things Network |
EP4064065A1 (en) * | 2021-03-23 | 2022-09-28 | Siemens Aktiengesellschaft | Data retention in a decentralized distributed database |
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 |
CN113904788B (en) * | 2021-08-12 | 2024-07-19 | 云南电网有限责任公司信息中心 | Network frame security verification method based on blockchain 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 |
US20230195722A1 (en) * | 2021-12-21 | 2023-06-22 | Omnibek Ip Holding Llc | Blockchain manager system |
WO2023140828A1 (en) * | 2022-01-18 | 2023-07-27 | Hewlett-Packard Development Company, L.P. | Method and apparatus for controlling access to data stored on a blockchain |
CN115334172B (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 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160028552A1 (en) * | 2014-07-25 | 2016-01-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
CN106157142A (en) * | 2016-06-30 | 2016-11-23 | 惠众商务顾问(北京)有限公司 | A kind of block chain common recognition and synchronous method, system and device |
US20170075941A1 (en) * | 2016-11-28 | 2017-03-16 | Keir Finlow-Bates | Consensus system and method for adding data to a blockchain |
CN106651332A (en) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | Block chain and method for generating new block in block chain |
CN106796685A (en) * | 2016-12-30 | 2017-05-31 | 深圳前海达闼云端智能科技有限公司 | Block chain authority control method and device and node equipment |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9853819B2 (en) * | 2013-08-05 | 2017-12-26 | Guardtime Ip Holdings Ltd. | Blockchain-supported, node ID-augmented digital record signature method |
US9338148B2 (en) * | 2013-11-05 | 2016-05-10 | Verizon Patent And Licensing Inc. | Secure distributed information and password management |
US10454970B2 (en) * | 2014-06-30 | 2019-10-22 | Vescel, Llc | Authorization of access to a data resource in addition to specific actions to be performed on the data resource based on an authorized context enforced by a use policy |
US10396992B2 (en) * | 2014-06-30 | 2019-08-27 | Vescel, Llc | Authentication of a user and/or a device through parallel synchronous update of immutable hash histories |
US10230526B2 (en) * | 2014-12-31 | 2019-03-12 | William Manning | Out-of-band validation of domain name system records |
WO2016120826A2 (en) | 2015-01-30 | 2016-08-04 | 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 |
JP6951329B2 (en) | 2015-10-14 | 2021-10-20 | ケンブリッジ ブロックチェーン,エルエルシー | Systems and methods 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 |
EP3526721A1 (en) * | 2016-10-14 | 2019-08-21 | Nokia Technologies Oy | Method, device and system for validating sensitive user data transactions within trusted circle |
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 |
US10740733B2 (en) * | 2017-05-25 | 2020-08-11 | Oracle International Corporaton | Sharded permissioned distributed ledgers |
KR20200032086A (en) * | 2017-06-01 | 2020-03-25 | 쉬비, 인크. 디/비/에이 액소니 | Distributed blockchain data structure distribution through secure access restriction management |
US20190043025A1 (en) * | 2017-08-02 | 2019-02-07 | Intuit Inc. | Genetic algorithms in blockchain space |
US10938567B2 (en) * | 2017-09-12 | 2021-03-02 | Kadena Llc | Parallel-chain architecture for blockchain systems |
US10460283B2 (en) * | 2017-09-13 | 2019-10-29 | Vijay Madisetti | Smart contract optimization for multiparty service or product ordering system |
US10958418B2 (en) * | 2017-10-10 | 2021-03-23 | Chromata Corporation | System and method for a blockchain network with heterogeneous privacy |
CN111295655B (en) | 2017-10-27 | 2021-08-31 | 数字资产(瑞士)股份有限公司 | 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 |
CN108848119B (en) | 2018-04-03 | 2020-04-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 |
CA3152588A1 (en) * | 2019-09-27 | 2021-04-01 | Schvey, Inc. D/B/A Axoni | Pruning entries in tamper-evident data stores |
-
2018
- 2018-06-01 KR KR1020207000108A patent/KR20200032086A/en not_active Application Discontinuation
- 2018-06-01 WO PCT/US2018/035672 patent/WO2018223042A1/en unknown
- 2018-06-01 EP EP18733990.8A patent/EP3616358B1/en active Active
- 2018-06-01 JP JP2019565855A patent/JP2020522796A/en active Pending
- 2018-06-01 CN CN201880046433.7A patent/CN110870254B/en active Active
- 2018-06-01 CA CA3065319A patent/CA3065319A1/en active Pending
- 2018-06-01 AU AU2018278351A patent/AU2018278351A1/en not_active Abandoned
- 2018-06-01 US US15/996,057 patent/US11030331B2/en active Active
-
2021
- 2021-05-04 US US17/307,952 patent/US11829494B2/en active Active
-
2023
- 2023-10-04 US US18/481,099 patent/US20240119166A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160028552A1 (en) * | 2014-07-25 | 2016-01-28 | Blockchain Technologies Corporation | System and method for creating a multi-branched blockchain with configurable protocol rules |
CN106157142A (en) * | 2016-06-30 | 2016-11-23 | 惠众商务顾问(北京)有限公司 | A kind of block chain common recognition and synchronous method, system and device |
US20170075941A1 (en) * | 2016-11-28 | 2017-03-16 | Keir Finlow-Bates | Consensus system and method for adding data to a blockchain |
CN106651332A (en) * | 2016-12-29 | 2017-05-10 | 先锋支付有限公司 | Block chain and method for generating new block in block chain |
CN106796685A (en) * | 2016-12-30 | 2017-05-31 | 深圳前海达闼云端智能科技有限公司 | Block chain authority control method and device and node equipment |
Non-Patent Citations (4)
Title |
---|
C. NATOLI AND V. GRAMOLI: "The Blockchain Anomaly", 《IEEE》 * |
HTTPS://GITHUB.COM/CONSENSYS/QUORUM-DOCS/BLOB/MASTER/QUORUM%20WH: "Quorum Whitepaper", 《GITHUB》 * |
LOI LUU等: "A Secure Sharding Protocol For Open Blockchains", 《PROCEEDINGS OF THE 2016 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY,2016》 * |
黄征等: "区块链技术及其应用", 《信息安全研究》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111034151B (en) * | 2019-04-30 | 2022-01-28 | 创新先进技术有限公司 | Method and apparatus for managing access to accounts in a blockchain system |
CN111034151A (en) * | 2019-04-30 | 2020-04-17 | 阿里巴巴集团控股有限公司 | Method and apparatus for managing access to accounts in a blockchain system |
CN111416703A (en) * | 2020-03-16 | 2020-07-14 | 北京有链科技有限公司 | Block chain crossing type and jumping type rapid synchronization method and system |
WO2022053048A1 (en) * | 2020-09-14 | 2022-03-17 | International Business Machines Corporation | Ensuring secure provisioning of blockchain infrastructure |
CN112332980B (en) * | 2020-11-13 | 2023-04-14 | 浙江数秦科技有限公司 | Digital certificate signing and verifying method, equipment and storage medium |
CN112332980A (en) * | 2020-11-13 | 2021-02-05 | 浙江数秦科技有限公司 | Digital certificate signing and verifying method, equipment and storage medium |
CN112417176A (en) * | 2020-12-09 | 2021-02-26 | 交通银行股份有限公司 | Graph feature-based method, device and medium for mining implicit association relation between enterprises |
CN112417176B (en) * | 2020-12-09 | 2024-04-02 | 交通银行股份有限公司 | Method, equipment and medium for mining implicit association relation between enterprises based on graph characteristics |
CN115114603A (en) * | 2021-03-17 | 2022-09-27 | ***通信集团福建有限公司 | 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 |
CN115114603B (en) * | 2021-03-17 | 2024-06-11 | ***通信集团福建有限公司 | Base station equipment data management method and device and electronic equipment |
CN113487400A (en) * | 2021-06-04 | 2021-10-08 | 长春工业大学 | Financial credit consensus method based on honesty bidirectional selection |
CN113487400B (en) * | 2021-06-04 | 2022-10-11 | 长春工业大学 | Financial credit consensus method based on honesty bidirectional selection |
Also Published As
Publication number | Publication date |
---|---|
US11030331B2 (en) | 2021-06-08 |
KR20200032086A (en) | 2020-03-25 |
EP3616358A1 (en) | 2020-03-04 |
US20240119166A1 (en) | 2024-04-11 |
US20210350010A1 (en) | 2021-11-11 |
JP2020522796A (en) | 2020-07-30 |
WO2018223042A1 (en) | 2018-12-06 |
CN110870254B (en) | 2023-03-31 |
US20180349621A1 (en) | 2018-12-06 |
AU2018278351A1 (en) | 2020-01-23 |
EP3616358B1 (en) | 2024-07-03 |
US11829494B2 (en) | 2023-11-28 |
CA3065319A1 (en) | 2018-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110870254B (en) | Method and system for providing distributed private subspaced data structures | |
Sharma et al. | Blockchain technology for cloud storage: A systematic literature review | |
US10917246B2 (en) | System and method for blockchain-based cross-entity authentication | |
CN110380858B (en) | Method and system for processing game consensus protocol of block chain | |
US20240048376A1 (en) | Methods and systems implemented in a network architecture with nodes capable of performing message-based transactions | |
CN111144881B (en) | Selective access to asset transfer data | |
US20200067697A1 (en) | Method for operating a blockchain | |
US20200153606A1 (en) | System and method for blockchain-based cross-entity authentication | |
JP7177575B2 (en) | A distributed ledger for generating and validating random sequences | |
US20200145223A1 (en) | System and method for blockchain-based notification | |
CN108429759B (en) | Decentralized storage safety implementation method | |
Baird et al. | Hedera: A public hashgraph network & governing council | |
Baird et al. | Hedera: A governing council & public hashgraph network | |
CN115210741B (en) | Partially ordered blockchain | |
TW202046223A (en) | System and method for providing privacy and security protection in blockchain-based private transactions | |
CN112003858B (en) | Block chain-based platform docking method, electronic device and storage medium | |
JP2021512569A (en) | Blockchain data processing method, management side, client side, converter and medium | |
JP2020517169A (en) | Secure blockchain-based consensus | |
CN111183445A (en) | Method and apparatus for automatic commitment and settlement of digital assets | |
CN113011974A (en) | Transaction information evidence storing method and system based on block chain | |
CN111698198B (en) | Secret generation and share distribution | |
KR20230005353A (en) | Sanctioned Events in a Decentralized Database | |
JP2024509666A (en) | Blockchain data segregation | |
US11632237B2 (en) | Configuration override in a blockchain network | |
US20230229795A1 (en) | Evidence management method, evidence management system, and node |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |