ConceptioArchiveGoogle Patents
Google Patentsopen access

Blockchain object deployment and synchronization across blockchains — Microsoft Technology Licensing, Llc (US10938548B2)

Microsoft Technology Licensing, Llc · Google Patents
Google Patents · Patents · License: Open Access
Open Source ↗
microsofttechnologylicensing
patent, google patents, intellectual property, US10938548B2, Microsoft Technology Licensing, Llc, Marc E. Mercuri, en, 2021

ABSTRACT

Abstract

An event interface system facilitates the creation and deployment of a first blockchain object and a second blockchain object on a first blockchain and a second blockchain respectively. The system also provides an interface between the first blockchain object and the second blockchain object via the event hub. Additionally, the system can allow interaction between blockchain objects on a private blockchain and a participant on the system.

Description

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of priority to U.S. Provisional Application Ser. No. 62/530,081 having the title “Smart Instrument Manager Portal” filed Jul. 7, 2017, the disclosure of which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The technology described herein relates to a computer system that interfaces with a blockchain to store data and interact with blocks on the blockchain.

BACKGROUND

Blockchain systems have been proposed for a variety of application scenarios, including applications in the financial industry, healthcare, emerging markets, and so forth. An early example of a blockchain was a cryptocurrency. The cryptocurrency was generated when new blocks were created on the blockchain to confirm transactions of the cryptocurrency. The new blocks may confirm the transfer of cryptocurrency generated in earlier blocks. The blocks on the blockchain were cryptographically proofed and linked to earlier blocks and served as an immutable record of the events in a trustless decentralized peer-to-peer network. For example, a cryptocurrency (e.g., bitcoin) is represented as a chain of events that transfers ownership from one party to another party on a blockchain without an intermediary. Each event transferring ownership from one party to another is cryptographically proofed by including the public key of the new owner. Also, each event is digitally signed with the current owner's private key.

A new block in a blockchain is filled with cryptographically proofed events until the block reaches a specified size limit. A hash digest of all the event identifiers within the block and the block header of the previous block are added as the first event in the block. Each block of events may be secured by a race between participants on a peer-to-peer network. In order to win the race the participants collect new events to create the new block, validate the events on the new block by verifying the cryptographic proofs of each event to verify the cryptocurrency was not spent earlier, and finally solve a mathematical puzzle based on the hash digest, previous block header and a random number. Blockchain provides a mathematical hierarchy of verifiable events that is immutable and is verified at each stage by the race between the participants. Other consensus protocols may be used to secure the blocks instead of the cryptographic race. Examples of consensus protocols include proof of work, proof of useful work, proof of stake, gossip about gossip and the like.

After blockchain was applied for cryptocurrency, the principles used in the early blockchain were modified to allow execution of smart contracts deployed on the blockchain. Smart Contracts are self-executing machine-readable instructions that can store state information and are stored on the blockchain. When deployed, the smart contract is assigned a unique address to allow communication to and from the smart contract through messages. The smart contract is deployed by storing the smart contract as an event on the blockchain (e.g., Ethereum™ blockchain). Messages to the smart contract may be posted as events on the blockchain. The smart contract may contain machine-readable instructions and data designed to execute on virtual machines. The smart contract may have the ability to read or write to its internal storage storing data, read the storage of a received message, send messages to other smart contracts to trigger execution of the code in other distributed applications. When the smart contract is executed on a virtual machine running on the peers securing the blockchain, the resulting data may be saved in the internal storage of the smart contract. The updated smart contract may be stored as an event on a new block. Thus, the smart contract and changes to data, i.e., state of the smart contract, are represented as a series of events on the blockchain. Similar to the cryptocurrency blockchain, each block in the blockchain by mining the blockchain by peers based on a consensus protocol.

For example, in a smart contract that governs a sale of an electronic asset, the smart contract may include machine-readable instructions to access its internal storage, machine-readable instructions to read the storage of a message sent to the smart contract and machine-readable instructions to process the data in a received message such as a counter-offer from a buyer. When the buyer sends a counter-offer to the smart contract, the smart contract may update its internal storage to include the counter-offer event, such as the identity of the buyer, the counter-offer price etc. The updated smart contract may be recorded as an event (e.g., a transaction) on a new block on the blockchain. In other words, the blockchain stores the changes in state of the smart contract as a series of events (e.g. a transaction). In an example, the blockchain may use a consensus algorithm that incentivizes peers to execute the smart contract in a virtual machine and record the changes to the internal storage in the smart contract, i.e., state of the smart contract to create new blocks.

The smart contract (e.g., a smart contract) may allow the administration and enforcement of some or all of the obligations and liabilities of the participants that may interact with the smart contract. One smart contract may use a second smart contract, called a utility smart contract, to provide a library of functions to other smart contracts. In an example, a utility smart contract may obtain updates on conditions that may affect the obligations and liabilities of the parties to the smart contract such as loan rates. However, smart contracts in a blockchain such as Ethereum™ ran on all peers involved in securing the events on the blockchain, increasing the cost of producing an immutable record of an event on the blockchain. Also, the smart contract in the blockchain may include code and data accessible to everyone by retrieving the blockchain.

Many blockchain implementations have emerged. There are currently over eighty different kinds of blockchains. Support for smart contracts varies in the different blockchains. Even among the blockchain implementations that support smart contracts, the available features vary.

Using smart contracts and the blockchain poses technical challenges for even the savviest participants. For example, the current block in the blockchain contains events that were received by a peer within a certain period. Therefore, the blocks may contain random events, without any other relationship to each other. Similarly, the events (e.g., a transaction) may relate to smart contracts or other smart contracts that are present in previous blocks in the blockchain. For example, the smart contracts may be identified by an identifying address or number, stored in a block of the blockchain. The smart contract may be packed into blocks optimized to meet block size limitations for retrieval. The smart contract stored on the block may be difficult to locate because of the lack of organization of the events recorded in each block. Also, different smart contract versions may be stored in multiple blocks, often on incompatible blockchain implementations (e.g., hard-forks). Similarly, events on the blockchain may be secured with cryptographic keys to interact with the smart contract.

Furthermore, blockchain enterprise applications are difficult to implement because they require knowledge of cryptography, knowledge of peer-to-peer systems, and knowledge of specialized languages used in blockchain smart contracts, which prevents people with enterprise expertise from building applications on the blockchain. Other technical issues associated with blockchains include interfacing an application on the blockchain to already existing technologies, such as reporting services, analytics, databases, data storage, artificial intelligence and the like.

BRIEF DESCRIPTION OF THE DRAWINGS

Features of the present disclosure are illustrated by way of example and not limited in the following Figure(s), in which like numerals indicate like elements, in which:

FIG. 1 illustrates an example of a computing environment for creating, deploying and managing a blockchain object, according to an embodiment of the present disclosure;

FIG. 2 shows an example of cloud system components that may be used to build an event interface system for blockchain objects, according to an embodiment of the present disclosure.

FIG. 3 illustrates a system diagram of an event interface system for creating, deploying and managing a blockchain object, according to an embodiment of the present disclosure;

FIG. 4 illustrates an example of state transitions between different states of a blockchain object, according to an embodiment of the present disclosure;

FIG. 5 shows a context schema, according to an embodiment of the present disclosure;

FIG. 6 shows an example of a blockchain object and a corresponding context schema instance, according to an embodiment of the present disclosure;

FIGS. 7, 8, 9A and 9B show examples of a user interface for interacting with a blockchain object, according to embodiments of the present disclosure; and

FIGS. 10-12 show examples of methods, according to embodiments of the present disclosure.

DETAILED DESCRIPTION

For simplicity and illustrative purposes, the present disclosure is described by referring mainly to examples and embodiments thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent, however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures readily understood by one of ordinary skill in the art have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the terms “a” and “an” are intended to denote at least one of a particular element, the term “includes” means includes but not limited to, the term “including” means including but not limited to, and the term “based on” means based at least in part on.

According to an embodiment of the present disclosure, an event interface system, hereinafter the system, facilitates generation, deployment, and management of a first blockchain object deployed on a first blockchain and a second blockchain object deployed on a second blockchain based on a context schema. The system is shown as system 100 in the figures and is further described below as the system 100 . The system provides an interface between events that may affect the first blockchain object on the first blockchain, and the second blockchain object on the second blockchain. The events may be external to the first blockchain, the second blockchain or both. Additionally, the system can monitor a state of the first blockchain object and/or the second blockchain object. Based on the state of the first blockchain object and/or the second blockchain object, the system may control interactions directed to the first blockchain object, the second blockchain object or both. In an example, the interactions to the first blockchain object, the second blockchain object or both may be by way of messages addressed to the first blockchain object, the second blockchain object or both. The system also provides an interface between a blockchain object and an event that may affect the blockchain object on a cloud service. Also, the system facilitates the ability for the first blockchain object, second blockchain object or both deployed on the first blockchain and second blockchain respectively to request information and events from the system through a messaging mechanism.

A blockchain object may be a smart contract deployed on a blockchain. In an example, the smart contract may be called a smartlet. In another example, the blockchain object may be a cryptlet that may be executed in a secure enclave instead of on all peers on the peer-to-peer network mining the blockchain to arrive at a consensus on the next block of the blockchain. In an example, a cryptlet is an off-chain machine-readable instruction, that executes within a secure, trusted container and communicated with using secure channels to provide additional functionality or information to one or more blockchain objects. The context schema may describe the constraints on interactions of a blockchain object. The blockchain object may be of two types, one with code capable of being executed on a node of a peer-to-peer network mining the blockchain, and one without code.

Examples of constraints may include state, persona, role, action, and parameters of an action associated with the blockchain object and the like. In an example, a blockchain object may be a smartlet that regulates an interaction between two or more participants for a specified objective. A participant may be a participant of the blockchain with a specific objective with respect to a blockchain object on the blockchain. An example of a specific objective may be monitoring of the delivery of goods using Internet of Things (IoT) sensors, compliance with specifications of the goods and the like. The blockchain object may regulate an interaction with and to the blockchain object based on constraints defined in machine-readable instructions. The blockchain object may save an immutable record of the interaction on a new block on the blockchain.

The blockchain object may contain machine-readable instructions (e.g., code) that govern the interactions of the blockchain object. The blockchain object may save its current state on the blockchain. For example, the blockchain object may store its state in the blockchain object itself or outside the blockchain object. The interactions of the blockchain object may be restricted by the machine-readable instructions to serve a specific purpose. For example, the blockchain object may interact with its stored state or interact with other blockchain objects. The blockchain object may be deployed on the blockchain. The blockchain object deployed on the blockchain may be assigned a unique address. The unique address may be used to identify the blockchain object and to interact with the blockchain object.

The blockchain may receive events associated with the blockchain object from an event stack of the system in the form of messages addressed to the blockchain object's unique address. In an example, the system may deploy a message with an event associated with a first blockchain object on the blockchain. The system may deploy the message as a message blockchain object addressed to the first blockchain object at the first blockchain object's unique address in a new block of the blockchain. In an example, the second blockchain object may be a data object. A peer in a peer-to-peer network mining the blockchain to build a consensus may receive the message blockchain object and include the message blockchain object in the new block of the blockchain. In an example, the peer may execute machine-readable instructions on the first blockchain object in response to the message blockchain object addressed to the first blockchain object while evolving a consensus for the new block. The first blockchain object may store its change after execution, i.e., change its state or remain in the same state. The node may store the first blockchain object (which may have a changed state) along with the message blockchain object in a new block before mining the new block to arrive at a consensus. In an example, to prevent the blockchain object from being executed on all peers mining the blockchain, the blockchain object may be a cryptlet executed on the system in a secure enclave. The system may retrieve both the first blockchain object and the message blockchain object and execute the machine-readable instructions in a secure enclave and deploy the resulting blockchain object back to the blockchain.

The blockchain object may include machine-readable instructions that perform actions that are constrained. The machine-readable instructions may record the current state of the blockchain object, the person who deployed the blockchain object, the persons who may interact with the blockchain object and the like. In an example, the system may use the blockchain object machine-readable instructions and/or the current state stored in the blockchain to derive the con

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of priority to U.S. Provisional Application Ser. No. 62/530,081 having the title “Smart Instrument Manager Portal” filed Jul. 7, 2017, the disclosure of which is hereby incorporated by reference in its entirety.

TECHNICAL FIELD

The technology described herein relates to a computer system that interfaces with a blockchain to store data and interact with blocks on the blockchain.

BACKGROUND

Blockchain systems have been proposed for a variety of application scenarios, including applications in the financial industry, healthcare, emerging markets, and so forth. An early example of a blockchain was a cryptocurrency. The cryptocurrency was generated when new blocks were created on the blockchain to confirm transactions of the cryptocurrency. The new blocks may confirm the transfer of cryptocurrency generated in earlier blocks. The blocks on the blockchain were cryptographically proofed and linked to earlier blocks and served as an immutable record of the events in a trustless decentralized peer-to-peer network. For example, a cryptocurrency (e.g., bitcoin) is represented as a chain of events that transfers ownership from one party to another party on a blockchain without an intermediary. Each event transferring ownership from one party to another is cryptographically proofed by including the public key of the new owner. Also, each event is digitally signed with the current owner's private key.

A new block in a blockchain is filled with cryptographically proofed events until the block reaches a specified size limit. A hash digest of all the event identifiers within the block and the block header of the previous block are added as the first event in the block. Each block of events may be secured by a race between participants on a peer-to-peer network. In order to win the race the participants collect new events to create the new block, validate the events on the new block by verifying the cryptographic proofs of each event to verify the cryptocurrency was not spent earlier, and finally solve a mathematical puzzle based on the hash digest, previous block header and a random number. Blockchain provides a mathematical hierarchy of verifiable events that is immutable and is verified at each stage by the race between the participants. Other consensus protocols may be used to secure the blocks instead of the cryptographic race. Examples of consensus protocols include proof of work, proof of useful work, proof of stake, gossip about gossip and the like.

After blockchain was applied for cryptocurrency, the principles used in the early blockchain were modified to allow execution of smart contracts deployed on the blockchain. Smart Contracts are self-executing machine-readable instructions that can store state information and are stored on the blockchain. When deployed, the smart contract is assigned a unique address to allow communication to and from the smart contract through messages. The smart contract is deployed by storing the smart contract as an event on the blockchain (e.g., Ethereum™ blockchain). Messages to the smart contract may be posted as events on the blockchain. The smart contract may contain machine-readable instructions and data designed to execute on virtual machines. The smart contract may have the ability to read or write to its internal storage storing data, read the storage of a received message, send messages to other smart contracts to trigger execution of the code in other distributed applications. When the smart contract is executed on a virtual machine running on the peers securing the blockchain, the resulting data may be saved in the internal storage of the smart contract. The updated smart contract may be stored as an event on a new block. Thus, the smart contract and changes to data, i.e., state of the smart contract, are represented as a series of events on the blockchain. Similar to the cryptocurrency blockchain, each block in the blockchain by mining the blockchain by peers based on a consensus protocol.

For example, in a smart contract that governs a sale of an electronic asset, the smart contract may include machine-readable instructions to access its internal storage, machine-readable instructions to read the storage of a message sent to the smart contract and machine-readable instructions to process the data in a received message such as a counter-offer from a buyer. When the buyer sends a counter-offer to the smart contract, the smart contract may update its internal storage to include the counter-offer event, such as the identity of the buyer, the counter-offer price etc. The updated smart contract may be recorded as an event (e.g., a transaction) on a new block on the blockchain. In other words, the blockchain stores the changes in state of the smart contract as a series of events (e.g. a transaction). In an example, the blockchain may use a consensus algorithm that incentivizes peers to execute the smart contract in a virtual machine and record the changes to the internal storage in the smart contract, i.e., state of the smart contract to create new blocks.

The smart contract (e.g., a smart contract) may allow the administration and enforcement of some or all of the obligations and liabilities of the participants that may interact with the smart contract. One smart contract may use a second smart contract, called a utility smart contract, to provide a library of functions to other smart contracts. In an example, a utility smart contract may obtain updates on conditions that may affect the obligations and liabilities of the parties to the smart contract such as loan rates. However, smart contracts in a blockchain such as Ethereum™ ran on all peers involved in securing the events on the blockchain, increasing the cost of producing an immutable record of an event on the blockchain. Also, the smart contract in the blockchain may include code and data accessible to everyone by retrieving the blockchain.

Many blockchain implementations have emerged. There are currently over eighty different kinds of blockchains. Support for smart contracts varies in the different blockchains. Even among the blockchain implementations that support smart contracts, the available features vary.

Using smart contracts and the blockchain poses technical challenges for even the savviest participants. For example, the current block in the blockchain contains events that were received by a peer within a certain period. Therefore, the blocks may contain random events, without any other relationship to each other. Similarly, the events (e.g., a transaction) may relate to smart contracts or other smart contracts that are present in previous blocks in the blockchain. For example, the smart contracts may be identified by an identifying address or number, stored in a block of the blockchain. The smart contract may be packed into blocks optimized to meet block size limitations for retrieval. The smart contract stored on the block may be difficult to locate because of the lack of organization of the events recorded in each block. Also, different smart contract versions may be stored in multiple blocks, often on incompatible blockchain implementations (e.g., hard-forks). Similarly, events on the blockchain may be secured with cryptographic keys to interact with the smart contract.

Furthermore, blockchain enterprise applications are difficult to implement because they require knowledge of cryptography, knowledge of peer-to-peer systems, and knowledge of specialized languages used in blockchain smart contracts, which prevents people with enterprise expertise from building applications on the blockchain. Other technical issues associated with blockchains include interfacing an application on the blockchain to already existing technologies, such as reporting services, analytics, databases, data storage, artificial intelligence and the like.

BRIEF DESCRIPTION OF THE DRAWINGS

Features of the present disclosure are illustrated by way of example and not limited in the following Figure(s), in which like numerals indicate like elements, in which:

FIG. 1 illustrates an example of a computing environment for creating, deploying and managing a blockchain object, according to an embodiment of the present disclosure;

FIG. 2 shows an example of cloud system components that may be used to build an event interface system for blockchain objects, according to an embodiment of the present disclosure.

FIG. 3 illustrates a system diagram of an event interface system for creating, deploying and managing a blockchain object, according to an embodiment of the present disclosure;

FIG. 4 illustrates an example of state transitions between different states of a blockchain object, according to an embodiment of the present disclosure;

FIG. 5 shows a context schema, according to an embodiment of the present disclosure;

FIG. 6 shows an example of a blockchain object and a corresponding context schema instance, according to an embodiment of the present disclosure;

FIGS. 7, 8, 9A and 9B show examples of a user interface for interacting with a blockchain object, according to embodiments of the present disclosure; and

FIGS. 10-12 show examples of methods, according to embodiments of the present disclosure.

DETAILED DESCRIPTION

For simplicity and illustrative purposes, the present disclosure is described by referring mainly to examples and embodiments thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent, however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures readily understood by one of ordinary skill in the art have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the terms “a” and “an” are intended to denote at least one of a particular element, the term “includes” means includes but not limited to, the term “including” means including but not limited to, and the term “based on” means based at least in part on.

According to an embodiment of the present disclosure, an event interface system, hereinafter the system, facilitates generation, deployment, and management of a first blockchain object deployed on a first blockchain and a second blockchain object deployed on a second blockchain based on a context schema. The system is shown as system 100 in the figures and is further described below as the system 100 . The system provides an interface between events that may affect the first blockchain object on the first blockchain, and the second blockchain object on the second blockchain. The events may be external to the first blockchain, the second blockchain or both. Additionally, the system can monitor a state of the first blockchain object and/or the second blockchain object. Based on the state of the first blockchain object and/or the second blockchain object, the system may control interactions directed to the first blockchain object, the second blockchain object or both. In an example, the interactions to the first blockchain object, the second blockchain object or both may be by way of messages addressed to the first blockchain object, the second blockchain object or both. The system also provides an interface between a blockchain object and an event that may affect the blockchain object on a cloud service. Also, the system facilitates the ability for the first blockchain object, second blockchain object or both deployed on the first blockchain and second blockchain respectively to request information and events from the system through a messaging mechanism.

A blockchain object may be a smart contract deployed on a blockchain. In an example, the smart contract may be called a smartlet. In another example, the blockchain object may be a cryptlet that may be executed in a secure enclave instead of on all peers on the peer-to-peer network mining the blockchain to arrive at a consensus on the next block of the blockchain. In an example, a cryptlet is an off-chain machine-readable instruction, that executes within a secure, trusted container and communicated with using secure channels to provide additional functionality or information to one or more blockchain objects. The context schema may describe the constraints on interactions of a blockchain object. The blockchain object may be of two types, one with code capable of being executed on a node of a peer-to-peer network mining the blockchain, and one without code.

Examples of constraints may include state, persona, role, action, and parameters of an action associated with the blockchain object and the like. In an example, a blockchain object may be a smartlet that regulates an interaction between two or more participants for a specified objective. A participant may be a participant of the blockchain with a specific objective with respect to a blockchain object on the blockchain. An example of a specific objective may be monitoring of the delivery of goods using Internet of Things (IoT) sensors, compliance with specifications of the goods and the like. The blockchain object may regulate an interaction with and to the blockchain object based on constraints defined in machine-readable instructions. The blockchain object may save an immutable record of the interaction on a new block on the blockchain.

The blockchain object may contain machine-readable instructions (e.g., code) that govern the interactions of the blockchain object. The blockchain object may save its current state on the blockchain. For example, the blockchain object may store its state in the blockchain object itself or outside the blockchain object. The interactions of the blockchain object may be restricted by the machine-readable instructions to serve a specific purpose. For example, the blockchain object may interact with its stored state or interact with other blockchain objects. The blockchain object may be deployed on the blockchain. The blockchain object deployed on the blockchain may be assigned a unique address. The unique address may be used to identify the blockchain object and to interact with the blockchain object.

The blockchain may receive events associated with the blockchain object from an event stack of the system in the form of messages addressed to the blockchain object's unique address. In an example, the system may deploy a message with an event associated with a first blockchain object on the blockchain. The system may deploy the message as a message blockchain object addressed to the first blockchain object at the first blockchain object's unique address in a new block of the blockchain. In an example, the second blockchain object may be a data object. A peer in a peer-to-peer network mining the blockchain to build a consensus may receive the message blockchain object and include the message blockchain object in the new block of the blockchain. In an example, the peer may execute machine-readable instructions on the first blockchain object in response to the message blockchain object addressed to the first blockchain object while evolving a consensus for the new block. The first blockchain object may store its change after execution, i.e., change its state or remain in the same state. The node may store the first blockchain object (which may have a changed state) along with the message blockchain object in a new block before mining the new block to arrive at a consensus. In an example, to prevent the blockchain object from being executed on all peers mining the blockchain, the blockchain object may be a cryptlet executed on the system in a secure enclave. The system may retrieve both the first blockchain object and the message blockchain object and execute the machine-readable instructions in a secure enclave and deploy the resulting blockchain object back to the blockchain.

The blockchain object may include machine-readable instructions that perform actions that are constrained. The machine-readable instructions may record the current state of the blockchain object, the person who deployed the blockchain object, the persons who may interact with the blockchain object and the like. In an example, the system may use the blockchain object machine-readable instructions and/or the current state stored in the blockchain to derive the context of the blockchain object.

The event stack of the system provides an interface between events and the blockchain object. For example, the event stack may deliver an event to the blockchain object using one or more services. Events may include external events to the system and internal events generated in the system. For example, an internal service may generate periodic events. An example of an external event may be a message from an IoT device received by the system. The event stack may queue events for processing by one or more system services. Examples of external events may include a weather report, a social media message, a message from an IoT device (e.g., measurements from IoT sensors), etc. In an example, a blockchain object may monitor the state of perishable goods that are on route from a factory to a retail location. The event stack may receive events, such as measurements changes from IoT sensors monitoring the temperature of the perishable goods, and then trigger a change in the state of the blockchain object. Examples of internal events may include an event generated by an internal service in the system. For example, a cryptlet in the system may generate an internal event periodically. In an example, the event may alter the state of the blockchain object. Also, the system may provide an interface for monitoring and managing the state of a blockchain object by monitoring the blockchain updates on the blockchain.

The event stack may allow the system to process events in real-time. The event stack may queue events as the events arrive. The system may treat inputs received from outside the system as events and use the event stack to allow one or more services to process the events. In an example, the system may also treat inputs and outputs of services as events that may be processed by other services. The system may include one or more services that retrieve and process the events. Thus, the system (e.g., services of the system) may access the queued events to retrieve and process the events. For example, the system may allow integration of an enterprise banking system that can perform operations such as money transfers and loan approval processing with a blockchain object without any changes to the enterprise banking system.

The system may utilize a context schema to provide context to the logic (e.g., machine-readable instructions) expressed in the blockchain object (e.g., smart contract) for example to generate an application programming interface. The application programming interface may be used to allow interaction with the blockchain object through a webpage, mobile page or a bot and the like. In an example, the system may generate a user interface that allows a participant to interact with a blockchain object based on a context schema. The context schema may describe the specifications of the blockchain object and constraints for interacting with the blockchain object. For example, a context schema may describe the current status of the blockchain object, the possible state transitions from the current state, the personas who may interact with the blockchain object, and the like. In an example, an instance of the context schema may be saved as a configuration file. Also, the configuration file may include details of the blockchain id the blockchain object is deployed on. For example, the blockchain object may be deployed on an Etherium blockchain. The blockchain id may be different for different blockchains or versions of the same blockchain. The configuration file may be specific to a blockchain object. The configuration file may be stored in the system and/or on the blockchain object.

The user interface generated by the system allows a participant, such as a user or a system, to interact with the blockchain object. For example, the system may generate different graphical user interfaces (GUIs) based on the current state of the blockchain object, the previous states of the blockchain object, future states, possible actions in the current state, possible actions based on the persona of the participant in the interaction, parameters of actions, and the like. The event stack receives events, such as participant interaction from the graphical user interface for processing by the services of the system. In an example, the system may store context schema values in a data repository (e.g., a database) in off-chain storage to store the contextual information. For example, the system may use the context schema to determine a persona type that is authorized to act on the blockchain object in its current state. For example, the persona type may be a user authorized to sell cars in a car dealership. In an example, the context schema may describe a hierarchy of blockchain object, state, action, persona, role, and other contextual data along with the history of the event. In an example, the user interface may be a web browser application to receive interaction from participants of the blockchain. The system may receive the interactions of the participants with the web browser application at the event stack in the form of events.

For example, the system may receive events (from the participants) via the user interface. Examples of events received from the user interface may include a user interaction with a blockchain object in accordance with its context schema, a request to retrieve state information of a blockchain object and parameters of the blockchain object, and instructions or parameters for deploying a blockchain object. For example, to deploy a blockchain object, the system may receive a blockchain identifier indicating where a blockchain object must be deployed from the user interface or may retrieve the blockchain identifier from off-chain storage as an internal event. In an example, a cryptlet may retrieve this information from the off-chain storage. The system may process the received events to determine the interaction between a participant and a blockchain object. In an example, the system may receive a parameter for the blockchain object based on a parameter specification in a context schema. The system may initialize the blockchain object with the received parameter. The system may deploy the initialized blockchain object to the blockchain. The system may also monitor a blockchain object on the blockchain, and store and provide information regarding updates to the blockchain object.

The system according to an example may allow authentication of participants using a simplified login with a username and password. The system may match the off-chain identity of the participant with the blockchain identity of the participant. For example, the blockchain identity of a participant may be a public key, private key pair stored in a key vault. The system may provide services such as a signing service that transparently integrates the off-chain identity of the participant with the blockchain identity of the participant. For example, the system may allow a participant to deploy the blockchain object to the blockchain by automating the signing procedure for blockchain objects before deploying the blockchain object using the appropriate private key pair and public key pair. For example, an organization may authorize only managers to authorize the sale of an asset such as a car. The system may abstract the deployment process for a blockchain object before deployment. For example, the system may present the manager with the details of the blockchain object such as the asset description, price of the asset, owner of the asset and the like in addition to an action list of actions for the manager, such as to approve deployment or disapprove deployment. The system may link the off-chain identity of the participant and retrieve the appropriate keys, initialize the blockchain object with the appropriate parameters, request for missing parameters, sign the blockchain object with the appropriate cryptographic signature and deploy the blockchain object.

Referring to the drawings in general, and initially to FIG. 1 in particular, an operating environment for the event interface system 100 (also referred to as the system 100 ). The operating environment for the system 100 is illustrated generally as computing device 101 . Computing device 101 is but one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the disclosure. Neither should computing device 101 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated. FIG. 3 below describes one example of the computing device 101 . FIG. 3 includes components designed using the cloud architecture described in FIG. 2 .

Components of the system 100 may be described and implemented in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program components, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program components including routines, programs, objects, components, data structures, and the like, refer to code that performs particular tasks, or implement particular abstract data types. Examples of the disclosure may be practiced in a variety of system configurations, including handheld devices, consumer electronics, general-purpose computers, specialty computing devices, etc. Aspects of the disclosure may also be practiced in distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.

With continued reference to FIG. 1 , computing device 101 includes a bus 161 that directly or indirectly couples the following devices: memory 103 , one or more processors 163 , one or more presentation components 164 , input/output (I/O) ports 165 , I/ O components 166 , and an illustrative power supply 167 . Bus 161 represents what may be one or more busses (such as an address bus, data bus, or combination thereof). Although the various blocks of FIG. 1 are shown with lines for the sake of clarity, in reality, delineating various components is not so clear, and metaphorically, the lines would more accurately be grey and fuzzy. For example, one may consider a presentation component such as a display device to be an I/O component. Also, processors have memory. Recognizing that such is the nature of the art, the diagram of FIG. 1 is merely illustrative of an example of a computing device that can be used in connection with one or more examples of the present disclosure. Distinction is not made between such categories as “workstation,” “server,” “laptop,” “handheld device,” etc., as all are contemplated within the scope of FIG. 1 and reference to “computer” or “computing device.”

Computing device 101 typically includes a variety of non-transitory computer readable media. By way of example, and not limitation, computer readable media may comprise Random Access Memory (RAM); Read Only Memory (ROM); Electronically Erasable Programmable Read Only Memory (EEPROM); flash memory or other memory technologies; CDROM, digital versatile disks (DVDs) or other optical or holographic media; magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to encode desired information and be accessed by computing device 101 . Computer storage media does not, however, include propagated signals. Rather, computer storage media excludes propagated signals. Any such computer storage media may be part of computing device 101 .

Memory 103 includes computer storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, non-removable, or a combination thereof. Examples of hardware devices include solid-state memory, hard drives, optical-disc drives, etc. Processors 163 read data from various entities such as memory 103 or I/ O components 166 . Memory 103 stores, among other data, one or more applications. The applications, when executed by the one or more processors, operate to perform functionality on the computing device. The applications may communicate with counterpart applications or services such as web services accessible via a network (not shown). For example, the applications may represent downloaded client-side applications that correspond to server-side services executing in a cloud. In some examples, aspects of the disclosure may distribute an application across a computing system, with server-side services executing in a cloud based on input and/or interaction received at client-side instances of the application. In other examples, application instances may be configured to communicate with data sources and other computing resources in a cloud during runtime, such as communicating with a cluster manager or health manager during a monitored upgrade or may share and/or aggregate data between client-side services and cloud services.

Presentation component(s) 164 present data indications to a participant or other device. Examples of presentation components include a display device, speaker, printing component, vibrating component, etc. I/ O ports 165 allow computing device 101 to be logically coupled to other devices including I/ O components 166 , some of which may be buser interfacelt in. Illustrative components include a microphone, joystick, game pad, satellite dish, scanner, printer, wireless device, etc.

FIG. 2 shows an example of an architecture 200 of a cloud computing environment for one or more components of the system 100 (described in detail in FIG. 3 ). The one or more components of the system 100 may use one or more components shown in FIG. 2 to create one or more services described in further detail in FIG. 3 . The one or more services of the system 100 may generate a blockchain object, deploy a blockchain object, interface with a blockchain object and manage a blockchain object. Architecture 200 should not be interpreted as having any dependency or requirement related to any single component or combination of components illustrated therein. Also, any number of nodes, virtual machines, data centers, role instances, or combinations thereof may be employed to achieve the desired functionality within the scope of embodiments of the present disclosure.

The distributed computing environment of FIG. 2 includes a public network 202 , a private network 204 , and a dedicated network 206 . Public network 202 may be a public cloud, for example. Private network 204 may be a private enterprise network or private cloud, while dedicated network 206 may be a third party network or dedicated cloud. In this example, private network 204 may host a customer data center 210 , and dedicated network 206 may host an internet service provider 212 . Hybrid cloud 208 may include any combination of public network 202 , private network 204 , and dedicated network 206 . For example, dedicated network 206 may be optional, with hybrid cloud 208 comprised of public network 202 and private network 204 .

Public network 202 may include data centers configured to host and support operations, including tasks of a generating, deploying, interfacing, and managing the blockchain object, according to embodiments of the current disclosure. It may be understood and appreciated that data center 214 and data center 216 shown in FIG. 2 an example of one implementation for accommodating one or more applications and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the present disclosure. Neither should data center 214 and data center 216 be interpreted as having any dependency or requester related to any single resource, combination of resources, combination of servers (e.g., server 220 , server 222 , and server 224 ) combination of nodes (e.g., nodes 232 and 234 ), or set of APIs to access the resources, servers, and/or nodes.

Data center 214 illustrates a data center comprising a plurality of servers, such as server 220 , server 222 , and server 224 . A fabric controller 218 is responsible for automatically managing the servers and distributing tasks and other resources within the data center 214 . By way of example, the fabric controller 218 may rely on a service model (e.g., designed by a customer that owns the modular-application) to provide an interface on how, where, and when to configure server 222 and how, where, and when to place application 226 and application 228 thereon. In one embodiment, one or more role instances of a modular-application may be placed on one or more of the servers of data center 214 , where the one or more role instances may represent the portions of software, component programs, or instances of roles that participate in the blockchain object application manager application. In another embodiment, one or more of the role instances may represent stored data that is accessible to the blockchain object application manager.

Data center 216 illustrates a data center comprising a plurality of nodes, such as node 232 and node 234 . One or more virtual machines may run on nodes of data center 216 , such as virtual machine 236 of node 234 for example. Although FIG. 2 depicts a single virtual node on a single node of data center 216 , any number of virtual nodes may be implemented on any number of nodes of the data center in accordance with illustrative embodiments of the disclosure. Generally, virtual machine 236 is allocated to role instances of a modular-application, or service application, based on demands (e.g., amount of processing load) placed on the modular-application. As used herein, the phrase “virtual machine” is not meant to be limiting, and may refer to any software, application, operating system, or program that is executed by a processing unit to underlie the functionality of the role instances allocated thereto. Further, the virtual machine 236 may include processing capacity, storage locations, and other assets within the data center 216 to properly support the allocated role instances.

In operation, the virtual machines are dynamically assigned resources on a first node and second node of the data center, and endpoints (e.g., the role instances) are dynamically placed on the virtual machines to satisfy the current processing load. In one instance, a fabric controller 230 is responsible for automatically managing the virtual machines running on the nodes of the data center 216 and for placing the role instances and other resources (e.g., software components) within the data center 216 . By way of example, the fabric controller 230 may rely on a service model (e.g., designed by a customer that owns the service application) to provide user interface on how, where, and when to configure the virtual machines, such as virtual machine 236 , and how, where, and when to place the role instances thereon.

As discussed above, the virtual machines may be dynamically established and configured within one or more nodes of a data center. As illustrated herein, node 232 and node 234 may be any form of computing devices, such as, for example, a personal computer, a desktop computer, a laptop computer, a mobile device, a consumer electronic device, server(s), and the like. In one instance, the nodes host and support the operations of the virtual machines, while simultaneously hosting other virtual machines carved out for supporting other tenants of the data center 216 , such as internal services 238 and hosted services 240 . Often, the role instances may include endpoints of distinct service applications owned by different customers.

Typically, each of the nodes includes, or is linked to, some form of a computing unit (e.g., a central processing unit, microprocessor, etc.) to support operations of the component(s) running thereon. As utilized herein, the phrase “computing unit” generally refers to a dedicated computing device with processing power and storage memory, which supports operating software that underlies the execution of software, applications, and computer programs thereon. In one instance, the computing unit is configured with tangible hardware elements, or machines, that are integral, or operably coupled, to the nodes to enable each device to perform a variety of processes and operations. In another instance, the computing unit may encompass a processor (not shown) coupled to the computer readable medium (e.g., computer storage media and communication media) accommodated by each of the nodes.

The role instances that reside on the nodes support the operation of service applications and may be interconnected via application programming interfaces (APIs). In one instance, one or more of these interconnections may be established via a network cloud, such as public network 202 . The network cloud serves to interconnect resources, such as the role instances, which may be distributable placed across various physical hosts, such as nodes

232 and 234 . Also, the network cloud facilitates communication over channels connecting the role instances of the service applications running in the data center 216 . By way of example, the network cloud may include, without limitation, one or more local area networks (LANs) and/or wide area networks (WANs). Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the internet. Accordingly, the network is not further described herein.

With reference to FIG. 3 , there is shown the system 100 that may create, deploy and manage a first blockchain object 108 X on a first blockchain 120 X and a second blockchain object 108 Y on a second blockchain 102 Y that are correlated using a correlation id 162 , according to an embodiment. The first blockchain object 108 X and the second blockchain object 108 Y may be collectively called blockchain objects. Similarly, the first blockchain 120 X and the second blockchain 120 Y may be collectively called blockchains. The term blockchains 120 X and/or 120 Y, may refer to either of the blockchains or both. The term blockchain objects 108 X and/or 108 Y may refer to either of the blockchain of the blockchain objects or to both. For example, FIG. 3 shows the first blockchain object 108 X and the second blockchain object 108 Y that may be created by the system 100 and may be deployed on the first blockchain 120 X and the second blockchain 120 Y respectively by the system 100 . In an example, the first blockchain object 108 X, the second blockchain object 108 Y or both may be smartlets. As is further discussed below, the system 100 may also serve as an interface between an event, which may be received and queued for processing in an event stack 104 , and the first blockchain object 108 X, the second blockchain object 108 Y or both. The system 100 may also facilitate and control interactions with the first blockchain object 108 X, the second blockchain object 108 Y or both by a participant or another system attempting to interact with the blockchain object 108 . For example, the blockchain object 108 X may be accessible only to a participant with a persona of a buyer, while the blockchain object 108 Y may be accessible to a participant with a persona of a seller. The <figure-callout id="100" label="system" filenames

CLAIMS

Claims ( 20 )

What is claimed is:

1. A blockchain object event interface system comprising:

a hardware processor; and

a computer readable medium storing machine-readable instructions that when executed by the processor cause the processor to:

receive an initial parameter for a blockchain object based on a parameter specification in a context schema;

create a first blockchain object with the initial parameter to deploy the first blockchain object on a first blockchain, and create a second blockchain object with the initial parameter to deploy the second blockchain object on a second blockchain different than the first blockchain,

wherein to create the first and second blockchain objects, the processor is to:

determine specifications, including a programming language, for each of the first and second blockchains;

generate the first blockchain object, including first machine readable instructions in a first programming language specified in the specifications; and

generate the second blockchain object, including second machine readable instructions in a second programming language specified in the specifications, wherein the second programming language is different than the first programming language;

deploy the first blockchain object to the first blockchain and the second blockchain object to the second blockchain;

generate a correlation id, different than the initial parameter, to link the first blockchain object and the second blockchain object;

generate an interface between the first blockchain object and the second blockchain object via an event stack;

receive a block update from the first blockchain;

determine a plurality of events in the block update;

determine whether an event of the plurality of events affects the first blockchain object or the second blockchain object;

responsive to determining the event affects the first blockchain object or the second blockchain object, identify the second blockchain object based on the correlation id; and

generate a message to deploy to the second blockchain object via the interface based on the event.

2. The system according to claim 1 , wherein the machine-readable instructions are executed by the processor to:

receive another block update from the first blockchain;

determine whether a state of the first blockchain object changed in the another block update;

in response to a determination that the state of the first blockchain object changed, store the state as an event in the event stack;

determine the correlation id associated with the first blockchain object;

generate a second message addressed to the second blockchain object to synchronize a state of the second blockchain object with the state of the first blockchain object; and

deploy the second message to the second blockchain to change the state of the second blockchain via the interface.

3. The system according to claim 1 , wherein the machine-readable instructions to initialize a second blockchain object with the initial parameter are executed by the processor to:

generate a hash of the first blockchain object.

4. The system according to claim 3 , wherein the machine-readable instructions are executed by the processor to:

receive a block update from the second blockchain;

determine whether a message blockchain object addressed to the second blockchain object is deployed on the second blockchain;

in response to a determination that message blockchain object is deployed on the second blockchain, store an event in the event stack;

determine the correlation id associated with the second blockchain object; and

deploy the message blockchain object to the first blockchain addressed to the first blockchain.

5. The system according to claim 4 , wherein the machine-readable instructions are executed by the processor to:

receive another block update from the first blockchain;

determine whether a state of the first blockchain object changed in the another block update in response to the message blockchain object;

in response to a determination that the state of the first blockchain object changed, generate an updated hash of the second blockchain object in its changed state; and

deploy the updated hash to the first blockchain.

6. The system according to claim 1 , wherein the first blockchain object and/or the second blockchain object is a cryptlet that is executed in a secure enclave instead of on all peers on a peer-to-peer network.

7. The system according to claim 1 , wherein the first blockchain is a private blockchain and the second blockchain is a public blockchain.

8. The system according to claim 1 , wherein the first blockchain and the second blockchain are private blockchains.

9. The system according to claim 1 , wherein the first machine-readable instructions in the first blockchain object delay change of state until a message is received confirming the change of state of the second blockchain object is received to synchronize changes to the first blockchain object and the second blockchain object.

10. The system according to claim 1 , wherein the first machine-readable instructions in the first blockchain object act as a master in a transaction, where all changes of state are authenticated by the first blockchain object before a corresponding change to state of the second blockchain object.

11. The system according to claim 1 , wherein the first blockchain object is a smart contract.

12. An event interface system comprising:

a hardware processor; and

a computer readable medium storing machine-readable instructions that when executed by the processor cause the processor to:

determine a specification, including a programming language, for each of a first blockchain and a second blockchain;

generate a first blockchain object, including first machine readable instructions in a first programming language specified in the specification for the first blockchain;

generate a second blockchain object, including second machine readable instructions in a second programming language specified in the specification for the second blockchain, wherein the second programming language is different than the first programming language;

deploy the first blockchain object on the first blockchain;

deploy the second blockchain object on the second blockchain;

store a correlation id to link the first blockchain object and the second blockchain object;

receive a block update from the second blockchain;

determine whether an event in the block update affects the first blockchain object;

responsive to determining the event affects the first blockchain object, identify the first blockchain object based on the correlation id; and

generate a message to deploy to the first blockchain object based on the event.

13. The system according to claim 12 , wherein the machine-readable instructions are executed by the processor to:

generate a hash of the first blockchain object;

deploy the hash of the first blockchain object on the second blockchain;

identify, from the received block update, a message blockchain object addressed to the deployed hash;

determine a context of addressing of the hash by the message blockchain object on the first blockchain;

generate a message addressed to the first blockchain object on the first blockchain based on the determined context; and

deploy the message blockchain object to the first blockchain.

14. The system according to claim 12 , deploy the message to the second blockchain object on the second blockchain to synchronize the first blockchain object and the second blockchain object.

15. The system according to claim 12 , wherein the first blockchain is a private blockchain and the second blockchain is a public blockchain.

16. The system according to claim 12 , wherein the first blockchain object is a cryptlet that is executed in a secure enclave instead of on all peers on a peer-to-peer network.

17. A computer-implemented method for interfacing with blockchains, the method comprising:

storing a context schema for a blockchain object, wherein the context schema comprises:

a state map describing acceptable states of the blockchain object; and

a persona list of acceptable personas of participants that are approved to interact with the blockchain object in different states described in the state map;

determining a specification, including a programming language, for each of a first blockchain and a second blockchain;

generating a first blockchain object, including first machine readable instructions in a first programming language specified in the specification for the first blockchain;

generate a second blockchain object, including second machine readable instructions in a second programming language specified in the specification for the second blockchain, wherein the second programming language is different than the first programming language;

deploying the first blockchain object to the first blockchain;

deploying the second blockchain object to the second blockchain;

receiving a block update from the first blockchain;

determining a state of the first blockchain object has changed based on the block update and the state map;

determining a persona associated with the changed state of the first blockchain object; and

generating a message to deploy to the second blockchain in response to determining that the determined persona is associated with the second blockchain and that the determined persona is an acceptable persona based on the persona list and the changed state of the first blockchain object.

18. The computer-implemented method according to claim 17 , the method comprising:

generating a correlation id to interface the first blockchain object and the second blockchain object.

19. The computer-implemented method according to claim 17 , the method comprising:

deploying the message to the second blockchain to synchronize the state of the second blockchain object with the state of the second blockchain object.

20. The computer-implemented method according to claim 17 , wherein the first blockchain object is a cryptlet that is executed in a secure enclave instead of on all peers on a peer-to-peer network.

US15/987,448

2017-07-07

2018-05-23

Blockchain object deployment and synchronization across blockchains

Active

2038-12-01

US10938548B2

( en )

Priority Applications (5)

Application Number

Priority Date

Filing Date

Title

US15/987,448

US10938548B2

( en )

2017-07-07

2018-05-23

Blockchain object deployment and synchronization across blockchains

PCT/US2018/040096

WO2019010065A1

( en )

2017-07-07

2018-06-28

Blockchain analytics

PCT/US2018/040087

WO2019010064A1

( en )

2017-07-07

2018-06-28

Blockchain object deployment and synchronization across blockchains

PCT/US2018/040108

WO2019010068A1

( en )

2017-07-07

2018-06-28

Internet of things blockchain interface

PCT/US2018/040103

WO2019010067A1

( en )

2017-07-07

2018-06-28

Blockchain proof of custody, proof against tampering, proof of chain of custody

Applications Claiming Priority (2)

Application Number

Priority Date

Filing Date

Title

US201762530081P

2017-07-07

2017-07-07

US15/987,448

US10938548B2

( en )

2017-07-07

2018-05-23

Blockchain object deployment and synchronization across blockchains

Publications (2)

Publication Number

Publication Date

US20190013933A1

US20190013933A1 ( en )

2019-01-10

US10938548B2

true

US10938548B2 ( en )

2021-03-02

Family

ID=64902938

Family Applications (6)

Application Number

Title

Priority Date

Filing Date

US15/957,458

Active

2038-09-29

US10944546B2

( en )

2017-07-07

2018-04-19

Blockchain object interface

US15/987,448

Active

2038-12-01

US10938548B2

( en )

2017-07-07

2018-05-23

Blockchain object deployment and synchronization across blockchains

US15/995,078

Active

2039-01-01

US11012228B2

( en )

2017-07-07

2018-05-31

Internet of things blockchain interface

US15/995,062

Active

2039-01-03

US11121858B2

( en )

2017-07-07

2018-05-31

Blockchain analytics

US15/995,070

Active

2038-11-30

US11139954B2

( en )

2017-07-07

2018-05-31

Blockchain proof of custody, proof against tampering, proof of chain of custody

US17/396,393

Pending

US20210367764A1

( en )

2017-07-07

2021-08-06

Blockchain analytics

Family Applications Before (1)

Application Number

Title

Priority Date

Filing Date

US15/957,458

Active

2038-09-29

US10944546B2

( en )

2017-07-07

2018-04-19

Blockchain object interface

Family Applications After (4)

Application Number

Title

Priority Date

Filing Date

US15/995,078

Active

2039-01-01

US11012228B2

( en )

2017-07-07

2018-05-31

Internet of things blockchain interface

US15/995,062

Active

2039-01-03

US11121858B2

( en )

2017-07-07

2018-05-31

Blockchain analytics

US15/995,070

Active

2038-11-30

US11139954B2

( en )

2017-07-07

2018-05-31

Blockchain proof of custody, proof against tampering, proof of chain of custody

US17/396,393

Pending

US20210367764A1

( en )

2017-07-07

2021-08-06

Blockchain analytics

Country Status (3)

Country

Link

US

( 6 )

US10944546B2

( en )

EP

( 1 )

EP3649570A1

( en )

WO

( 5 )

WO2019010063A1

( en )

Cited By (11)

* Cited by examiner, † Cited by third party

Publication number

Priority date

Publication date

Assignee

Title

US20210124369A1

( en )

*

2018-08-02

2021-04-29

Nvidia Corporation

Method and apparatus for enabling map updates using a blockchain platform

US20210218745A1

( en )

*

2018-05-29

2021-07-15

Siemens Aktiengesellschaft

Method and system for controlling the release of a resource

US11223692B2

( en )

*

2018-11-27

2022-01-11

Advanced New Technologies Co., Ltd.

Service execution methods and apparatuses

US11372849B2

( en )

2020-08-28

2022-06-28

Alipay (Hangzhou) Information Technology Co., Ltd.

Transaction confirmation methods and apparatuses in blockchain network

US11398911B1

( en )

2020-07-12

2022-07-26

Run Interactive, Inc.

System for interacting objects as tokens on a blockchain using a class-based language

US11861609B2

( en )

2018-04-04

2024-01-02

Vijay Madisetti

Method and system for exchange of value or tokens between blockchain networks

US20240012807A1

( en )

*

2021-10-14

2024-01-11

Bank Of America Corporation

Multiuser synchronous conclave blockchain technology

US12452066B2

( en )

2024-01-17

2025-10-21

Bank Of America Corporation

System and method for allocating transfer of data from a data file

US12549376B2

( en )

2021-12-03

2026-02-10

International Business Machines Corporation

Compressible blockchains

US12549196B2

( en )

2024-04-23

2026-02-10

Bank Of America Corporation

Systems and methods for dynamically generating and mapping unicode for cross-distributed network data transmissions

US12609917B2

( en )

2024-01-17

2026-04-21

Bank Of America Corporation

System and method for requesting data transfers in a blockchain network

Families Citing this family (386)

* Cited by examiner, † Cited by third party

Publication number

Priority date

Publication date

Assignee

Title

US8874477B2

( en )

2005-10-04

2014-10-28

Steven Mark Hoffberg

Multifactorial optimization system and method

US11521290B2

( en )

*

2013-05-22

2022-12-06

Patrick Damien O&#39;Brien

Systems and methods for storing contract information on multiple blockchain ledgers

WO2017165909A1

( en )

2016-03-31

2017-10-05

Tbsx3 Pty Ltd

Information system for item verification

EP3465592A1

( en )

*

2016-06-06

2019-04-10

Financial &amp; Risk Organisation Limited

Systems and methods for providing a personal distributed ledger

AU2017277538B2

( en )

*

2016-06-06

2019-11-14

Financial &amp; Risk Organisation Limited

Systems and methods for providing identity scores

US10419225B2

( en )

2017-01-30

2019-09-17

Factom, Inc.

Validating documents via blockchain

US10411897B2

( en )

2017-02-17

2019-09-10

Factom, Inc.

Secret sharing via blockchains

US10817873B2

( en )

2017-03-22

2020-10-27

Factom, Inc.

Auditing of electronic documents

US10270599B2

( en )

2017-04-27

2019-04-23

Factom, Inc.

Data reproducibility using blockchains

US10320574B2

( en )

*

2017-05-05

2019-06-11

International Business Machines Corporation

Blockchain for open scientific research

KR102360386B1

( en )

*

2017-06-02

2022-02-09

로베르토 지저스 수손

A system, method and server computer system for transforming an original entity into a verifiable and verifiable entity in a heterogeneous communication network environment

US10140392B1

( en )

2017-06-29

2018-11-27

Best Apps, Llc

Computer aided systems and methods for creating custom products

US10944546B2

( en )

2017-07-07

2021-03-09

Microsoft Technology Licensing, Llc

Blockchain object interface

US11238164B2

( en )

*

2017-07-10

2022-02-01

Burstiq, Inc.

Secure adaptive data storage platform

US12184781B2

( en )

2017-07-10

2024-12-31

Burstiq, Inc.

Systems and methods for accessing digital assets in a blockchain using owner consent contracts

US10783128B2

( en )

*

2017-07-13

2020-09-22

International Business Machines Corporation

Rule based data processing

EP3435270B1

( en )

*

2017-07-27

2020-09-23

Siemens Aktiengesellschaft

Device and method for cryptographically protected operation of a virtual machine

US11281644B2

( en )

*

2017-07-28

2022-03-22

Hitachi, Ltd.

Blockchain logging of data from multiple systems

US10924466B2

( en )

2017-07-28

2021-02-16

SmartAxiom, Inc.

System and method for IOT security

US10547594B2

( en )

*

2017-08-17

2020-01-28

Domanicom Corporation

Systems and methods for implementing data communication with security tokens

CN117201039A

( en )

*

2017-08-28

2023-12-08

维萨国际服务协会

Layered recording network

US11256799B2

( en )

*

2017-08-29

2022-02-22

Seagate Technology Llc

Device lifecycle distributed ledger

US10873457B1

( en )

2017-09-13

2020-12-22

Inveniam.io, LLC

Data structure having internal self-references suitable for immutably representing and verifying data generated over time

US10560326B2

( en )

*

2017-09-22

2020-02-11

Webroot Inc.

State-based entity behavior analysis

US20190108482A1

( en )

*

2017-10-06

2019-04-11

Sap Se

Enablement of procurement processes with asset traceability using blockchain technology

US11063744B2

( en )

*

2017-10-20

2021-07-13

Sap Se

Document flow tracking using blockchain

US10878248B2

( en )

2017-10-26

2020-12-29

Seagate Technology Llc

Media authentication using distributed ledger

US11699201B2

( en )

*

2017-11-01

2023-07-11

Docusign, Inc.

System and method for blockchain-based network transitioned by a legal contract

CN117150581A

( en )

*

2017-11-03

2023-12-01

维萨国际服务协会

Secure identity and profile management system

US11037227B1

( en )

*

2017-11-22

2021-06-15

Storcentric, Inc.

Blockchain-based decentralized storage system

US10462223B2

( en )

*

2017-12-06

2019-10-29

Bank Of America Corporation

Method and system for data communication

US10476847B1

( en )

2017-12-08

2019-11-12

Symbiont.Io, Inc.

Systems, methods, and devices for implementing a smart contract on a distributed ledger technology platform

US10776892B2

( en )

*

2017-12-19

2020-09-15

Motorola Solutions, Inc.

Device, system and method for screening of personally identifiable information

EP3503012A1

( en )

*

2017-12-20

2019-06-26

Accenture Global Solutions Limited

Analytics engine for multiple blockchain nodes

US10896418B2

( en )

2017-12-29

2021-01-19

Ebay Inc.

Secure management of data files using a blockchain

US10853811B2

( en )

*

2017-12-29

2020-12-01

Paypal, Inc.

Risk determination enabled crypto currency transaction system

SE541581C2

( en )

*

2018-01-05

2019-11-05

Telia Co Ab

Method and a node for storage of data in a network

US10574453B2

( en )

*

2018-01-10

2020-02-25

Ranjit Notani

System and computer program product for certified confidential data collaboration using blockchains

WO2019143850A1

( en )

*

2018-01-17

2019-07-25

Medici Ventures, Inc.

Multi-approval system using m of n keys to generate a transaction address

US11257073B2

( en )

*

2018-01-31

2022-02-22

Salesforce.Com, Inc.

Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment

US20190236559A1

( en )

*

2018-01-31

2019-08-01

Salesforce.Com, Inc.

Systems, methods, and apparatuses for implementing smart flow contracts using distributed ledger technologies in a cloud based computing environment

US10701054B2

( en )

2018-01-31

2020-06-30

Salesforce.Com, Inc.

Systems, methods, and apparatuses for implementing super community and community sidechains with consent management for distributed ledger technologies in a cloud based computing environment

CN108492180B

( en )

2018-02-14

2020-11-24

创新先进技术有限公司

Asset management method and device, electronic equipment

CN108335207B

( en )

2018-02-14

2020-08-04

阿里巴巴集团控股有限公司

Asset management method and device and electronic equipment

CN108389118B

( en )

*

2018-02-14

2020-05-29

阿里巴巴集团控股有限公司

Asset management system, method and device and electronic equipment

CN108335206B

( en )

*

2018-02-14

2020-12-22

创新先进技术有限公司

Asset management method and device, electronic equipment

CN108416675A

( en )

2018-02-14

2018-08-17

阿里巴巴集团控股有限公司

Assets management method and device, electronic equipment

US20190266602A1

( en )

*

2018-02-28

2019-08-29

Intuit Inc.

Method and system for overseeing execution of graph-based contracts using hash chains

US10681020B2

( en )

*

2018-03-12

2020-06-09

The Boeing Company

Blockchain fortified aircraft communications addressing and reporting system (ACARS) communication

US11940958B2

( en )

*

2018-03-15

2024-03-26

International Business Machines Corporation

Artificial intelligence software marketplace

US10536434B2

( en )

2018-04-02

2020-01-14

Fortifid, Inc.

Generating and linking private transaction identifiers to distributed data repositories

US11068978B1

( en )

*

2018-04-02

2021-07-20

Liquid Mortgage Inc.

Decentralized systems and methods for managing loans and securities

CN111787072B

( en )

*

2018-04-03

2023-02-28

创新先进技术有限公司

Cross-block-chain interaction method, device, system and electronic equipment

US11494764B2

( en )

*

2018-04-04

2022-11-08

Vijay Madisetti

Methods and systems for smart contracts for security and filtering

US11615060B2

( en )

*

2018-04-12

2023-03-28

ISARA Corporation

Constructing a multiple entity root of trust

GB201806448D0

( en )

*

2018-04-20

2018-06-06

Nchain Holdings Ltd

Computer-implemented methods and systems

US10897499B2

( en )

*

2018-04-24

2021-01-19

International Business Machines Corporation

Resolving status and synchronization discrepancies in a distributed computing environment using blockchains

US20190333030A1

( en )

*

2018-04-30

2019-10-31

Bank Of America Corporation

Blockchain-based digital token utilization

US11550299B2

( en )

2020-02-03

2023-01-10

Strong Force TX Portfolio 2018, LLC

Automated robotic process selection and configuration

US12412120B2

( en )

2018-05-06

2025-09-09

Strong Force TX Portfolio 2018, LLC

Systems and methods for controlling rights related to digital knowledge

US11544782B2

( en )

2018-05-06

2023-01-03

Strong Force TX Portfolio 2018, LLC

System and method of a smart contract and distributed ledger platform with blockchain custody service

WO2019217323A1

( en )

2018-05-06

2019-11-14

Strong Force TX Portfolio 2018, LLC

Methods and systems for improving machines and systems that automate execution of distributed ledger and other transactions in spot and forward markets for energy, compute, storage and other resources

US11669914B2

( en )

2018-05-06

2023-06-06

Strong Force TX Portfolio 2018, LLC

Adaptive intelligence and shared infrastructure lending transaction enablement platform responsive to crowd sourced information

US11134120B2

( en )

2018-05-18

2021-09-28

Inveniam Capital Partners, Inc.

Load balancing in blockchain environments

US11170366B2

( en )

2018-05-18

2021-11-09

Inveniam Capital Partners, Inc.

Private blockchain services

US10783164B2

( en )

2018-05-18

2020-09-22

Factom, Inc.

Import and export in blockchain environments

KR102288045B1

( en )

*

2018-05-21

2021-08-10

성신여자대학교 연구 산학협력단

Method and apparatus for managing subject data based on blockchain

US11038676B2

( en )

*

2018-05-25

2021-06-15

Incertrust Technologies Corporation

Cryptographic systems and methods using distributed ledgers

US11122052B2

( en )

*

2018-05-30

2021-09-14

International Business Machines Corporation

Sensitive information accessibility in blockchain

JP6614280B1

( en )

*

2018-06-05

2019-12-04

富士通株式会社

Communication apparatus and communication method

CN108805627B

( en )

*

2018-06-19

2021-06-01

腾讯科技(深圳)有限公司

Media resource allocation method, device, system, medium and device

WO2019246399A1

( en )

*

2018-06-20

2019-12-26

Google Llc

Digital ledger for unique item ids with ownership

CN110634069B

( en )

*

2018-06-25

2023-03-31

巍乾全球技术有限责任公司

Method, apparatus, storage medium, and program product for carbon trading

DE102018210318B4

( en )

*

2018-06-25

2022-12-08

Volkswagen Aktiengesellschaft

Method for securing vehicle components and corresponding vehicle component

US11068464B2

( en )

*

2018-06-26

2021-07-20

At&amp;T Intellectual Property I, L.P.

Cyber intelligence system and method

US10764058B2

( en )

*

2018-06-29

2020-09-01

Intel Corporation

Secure aggregation of IoT messages

CN110661610B

( en )

*

2018-06-29

2020-11-03

创新先进技术有限公司

Input acquisition method and device of secure multi-party computing protocol

GB201811263D0

( en )

*

2018-07-10

2018-08-29

Netmaster Solutions Ltd

A method and system for managing digital using a blockchain

US11481509B1

( en )

*

2018-07-10

2022-10-25

United Services Automobile Association (Usaa)

Device management and security through a distributed ledger system

US20200027183A1

( en )

*

2018-07-19

2020-01-23

Uber Technologies, Inc.

Network computer system to determine suitabilities of vehicles using blockchain records

US10887082B2

( en )

*

2018-07-24

2021-01-05

Vmware, Inc.

Internet of things blockchain auditing

US11424910B2

( en )

*

2018-07-31

2022-08-23

EMC IP Holding Company LLC

Enterprise storage of customer transaction data using a blockchain

CN109033405B

( en )

*

2018-08-03

2020-09-08

华为技术有限公司

Method and apparatus, server, and computer-readable storage medium for maintaining blockchain

US10853353B2

( en )

*

2018-08-03

2020-12-01

American Express Travel Related Services Company, Inc.

Blockchain-enabled datasets shared across different database systems

US11348098B2

( en )

*

2018-08-06

2022-05-31

Inveniam Capital Partners, Inc.

Decisional architectures in blockchain environments

US11328290B2

( en )

2018-08-06

2022-05-10

Inveniam Capital Partners, Inc.

Stable cryptocurrency coinage

US11989208B2

( en )

2018-08-06

2024-05-21

Inveniam Capital Partners, Inc.

Transactional sharding of blockchain transactions

WO2020033516A1

( en )

2018-08-07

2020-02-13

Walmart Apollo, Llc

System and method for forecasting deliveries via blockchain smart contracts using hyperspectral computer vision and iot devices

US10831850B2

( en )

*

2018-08-14

2020-11-10

International Business Machines Corporation

Secure URL shortening

US10915521B2

( en )

*

2018-08-21

2021-02-09

Syniverse Technologies, Llc

Blockchain gateway device and associated method of use

CN109272380B

( en )

*

2018-08-30

2023-01-06

腾讯科技(深圳ï

Related documents

Record · ID 607082
Retrieved via Conceptio — every document is proof-bundled with source, license, and retrieval metadata.