System and method for controlling asset-related actions via a block chain
Presented herein are one or more embodiments with novel techniques of: defining an asset comprising at least one private cryptographic key, each private cryptographic key being associated with an owner of the asset; generating a registry comprising at least one public cryptographic key; generating a smart contract comprising at least one rule relating to an automated generation of one or more blockchain transactions to enable a transfer to be made in respect of the asset; and using a computing agent to evaluate and/or execute the at least one rule of the smart contract. Thus, one benefit provided by the invention is that it allows the secure distribution of costs and income for an asset registered and maintained on the Blockchain, which, in turn increases the capability of such assets to meet the real-world needs of various entities such as the asset itself and investing parties.
1 . A computer-implemented method of controlling a transfer made via a blockchain in respect of an asset, the method implemented by a processing resource, the method comprising:
defining an asset comprising one or more private cryptographic keys, each private cryptographic key of the asset being associated with an owner of the asset;
generating a registry comprising at least one public cryptographic key, wherein each public key:
corresponds to a private cryptographic key in the one or more private cryptographic keys, and is associated with a redeem script hash that can be identified within an unspent blockchain transaction;
generating a smart contract comprising at least one rule relating to an automated generation of one or more blockchain transactions to enable a transfer of currency to be made in respect of the asset; and
monitoring, at a master computing agent, a blockchain network by:
maintaining an off-chain unspent transaction output (UTXO) list comprising entries identifying unspent blockchain transactions associated with the asset;
monitoring a state of the blockchain to detect transactions associated with the asset; and
updating the UTXO list based on the detected transactions associated with the asset to maintain the entries as reflecting a current ownership state of the asset;
determining current ownership of the asset from the registry and the unspent transaction output list to obtain a set of current owner identifiers;
generating, based on the obtained set of current owner identifiers, authorization data specifying which subordinate computing agents are authorized to execute operations for the smart contract;
transmitting the authorization data and the obtained set of current owner identifiers to one or more subordinate computing agents specified in the authorization data, wherein the master computing agent and the one or more subordinate computing agents form a hierarchy of computing agents;
at the one or more subordinate computing agents, responsive to the authorization from the master computing agent;
evaluating the at least one rule of the smart contract to determine required blockchain transactions;
processing income defined by the smart contract by calculating individual payments across current ownership of the asset based on payment rules defined within the smart contract;
executing smart contract-required cost transactions by calculating individual cost allocations across current ownership of the asset based on payment rules defined within the smart contract;
consolidating smart contract income from multiple payments payment transactions from multiple individual transactions where payment addresses match;
generating and transmitting an alert to an owner of the asset providing notification about an event relating to the asset;
constructing a blockchain transaction according to the at least one rule of the smart contract by incorporating payment instructions or transaction requests, wherein inputs and outputs of the blockchain transaction include a reference to the blockchain addresses associated with the obtained set of current owner identifiers; and
broadcasting the constructed blockchain transaction to the blockchain network.
2 . The method of claim 1 , wherein the at least one rule provided in the smart contract defines a payment schedule associated with the asset.
3 . The method of claim 1 , wherein the smart contract is stored in a Distributed Hash Table, and a hash of the contract is provided within metadata associated with a blockchain transaction.
4 . The method of claim 1 , wherein at least one transaction of the one or more blockchain transactions includes metadata.
5 . The method of claim 4 , wherein the metadata is indicative of:
i) an amount of shares available under the contract;
ii) a quantity of transfer units to be transferred from a sender to at least one recipient; and
iii) a factor for calculating a value for the quantity of transfer units.
6 . The method of claim 1 , wherein metadata for each transaction can be stored as part of a multi-signature pay-to-script-hash (P2SH) transaction.
7 . The method of claim 4 , wherein the metadata stores a hyperlink to a file containing more data or instructions.
8 . The method of claim 7 , wherein the metadata stores both a hyperlink to a hash table containing more data or instructions relating to an action along with a hash of the action that acts as a look-up key for the hash table.
9 . A system comprising:
a non-transitory memory storing machine readable instructions; and
a processor that access the memory and executes the machine readable instructions, the machine readable instructions, when executed cause the processor to execute operations, the operations comprising:
defining an asset comprising one or more private cryptographic keys, each private cryptographic key of the asset being associated with an owner of the asset;
generating a registry comprising at least one public cryptographic key, wherein each public key:
corresponds to a private cryptographic key in the one or more private cryptographic keys, and is associated with a redeem script hash that can be identified within an unspent blockchain transaction;
generating a smart contract comprising at least one rule relating to an automated generation of one or more blockchain transactions to enable a transfer of currency to be made in respect of the asset; and
monitoring, at a master computing agent, a blockchain network by:
maintaining an off-chain unspent transaction output (UTXO) list comprising entries identifying unspent blockchain transactions associated with the asset;
monitoring a state of the blockchain to detect transactions associated with the asset; and
updating the UTXO list based on the detected transactions associated with the asset to maintain the entries as reflecting a current ownership state of the asset;
determining current ownership of the asset from the registry and the unspent transaction output list to obtain a set of current owner identifiers;
generating, based on the obtained set of current owner identifiers, authorization data specifying which subordinate computing agents are authorized to execute operations for the smart contract;
transmitting the authorization data and the obtained set of current owner identifiers to one or more subordinate computing agents specified in the authorization data, wherein the master computing agent and the one or more subordinate computing agents form a hierarchy of computing agents;
at the one or more subordinate computing agents, responsive to the authorization from the master computing agent:
evaluating the at least one rule of the smart contract to determine required blockchain transactions;
processing income defined by the smart contract by calculating individual payments across current ownership of the asset based on payment rules defined within the smart contract;
executing smart contract-required cost transactions by calculating individual cost allocations across current ownership of the asset based on payment rules defined within the smart contract;
consolidating smart contract income from multiple payments payment transactions from multiple individual transactions where payment addresses match;
generating and transmitting an alert to an owner of the asset providing notification about an event relating to the asset;
constructing a blockchain transaction according to the at least one rule of the smart contract by incorporating payment instructions or transaction requests, wherein inputs and outputs of the blockchain transaction include a reference to the blockchain addresses associated with the obtained set of current owner identifiers; and
broadcasting the constructed blockchain transaction to the blockchain network.