Computer implemented method and system
A method is provided by which payments for assets are recorded using blockchain transactions, and verified based on immutable logs associated with the transactions.
1 . A computer-implemented method of recording an asset transfer event involving at least a first user and a second user, the method performed by a processor of a computing resource, the method comprising:
receiving instruction data, the instruction data related to a requested asset transfer event, the instruction data comprising a first set of metadata related to a sender of the asset and a second set of metadata related to at least one recipient of the asset, wherein each of the sender and the recipient are each associated with an account associated with an asset registry;
associating the sender of the asset with a first chain of commitments and associating the recipient of the asset with a second chain of commitments, wherein each chain of commitments associates an event stream with a plurality of blockchain transactions;
processing the first set of metadata and the second set of metadata according to a transfer protocol that defines at least one criterion for enabling the asset transfer event to take place;
determining, based on the processing of the first set of metadata and the second set of metadata according to the transfer protocol, one or more items of correspondence between the respective sets of metadata;
generating a rendezvous blockchain transaction comprising, for each of the sender and recipient, at least one input and at least one output, wherein the at least one output comprises data associated with the first and second set of metadata, wherein the data associated with the first and second set of metadata is based on data relating to a future blockchain transaction, wherein the at least one output includes an output corresponding to the sender that comprises a data payload comprising metadata generated based on the first set of metadata, and wherein the at least one output includes an output corresponding to the receiver that comprises a data payload comprising metadata generated based on the second set of metadata, wherein the metadata comprises one or more metadata elements, a data digest and a state client data digest within a Merkle tree comprising a root and a set of leaf nodes, wherein the root comprises the state client data digest, and the set of leaf nodes comprises the metadata elements, the data digest and a salt, wherein the set of leaf nodes are arranged such that the metadata elements and the data digest are interleaved with the salt;
appending the rendezvous blockchain transaction to the respective first and second chains of commitments; and
associating the rendezvous blockchain transaction with a respective entry in the respective event streams.
2 . The method of claim 1 , wherein the rendezvous blockchain transaction is transmitted to a blockchain.
3 . The method of claim 1 , wherein the data digest is generated based on a hash of the first and second sets of metadata.
4 . The method of claim 3 , wherein the data digest is generated based on a combination of the first and second sets of metadata and the salt.
5 . The method of claim 4 , wherein the combination of the first and second sets of metadata comprises taking a double hash of a combination of the first and second sets of metadata and concatenating the double hash of the combination of the first and second sets of metadata with a double hash of the salt.
6 . The method of claim 1 , wherein the state client data digest is generated based on the data digest and a future transaction.
7 . The method of claim 1 , wherein the state client data digest is further generated based on a previous transaction.
8 . The method of claim 1 , wherein determining one or more items of correspondence between the respective sets of metadata comprises determining correspondence between at least one of;
i) a currency of payment identified in the respective sets of metadata;
ii) an amount of currency being paid from an account corresponding to the sender and the amount of currency requested from an account corresponding to the recipient; and
iii) identifiers of the asset registry associated with the sender and recipient accounts.
9 . The method of claim 1 , wherein the computing resource determines, in accordance with the transfer protocol, that the transfer cannot be made; and generates a further set of metadata to resolve a lack of concordance with the transfer protocol.
10 . The method of claim 9 , wherein the generation of the further set of metadata comprises generating metadata for one asset registry to record a transfer of a given asset to another asset registry.
11 . A system, comprising:
a computing resource including a processor; and
a memory storing computer-readable instructions that, when executed by the processor, cause the system to perform a computer-implemented method of recording an asset transfer event involving at least a first user and a second user, the method implemented by a computing resource, the method comprising:
receiving instruction data, the instruction data related to a requested asset transfer event, the instruction data comprising a first set of metadata related to a sender of the asset and a second set of metadata related to at least one recipient of the asset, wherein each of the sender and the recipient are each associated with an account associated with an asset registry;
associating the sender of the asset with a first chain of commitments and associating the recipient of the asset with a second chain of commitments, wherein each chain of commitments associates an event stream with a plurality of blockchain transactions;
processing the first set of metadata and the second set of metadata according to a transfer protocol that defines at least one criterion for enabling the asset transfer event to take place;
determining, based on the processing of the first set of metadata and the second set of metadata according to the transfer protocol, one or more items of correspondence between the respective sets of metadata;
generating a rendezvous blockchain transaction comprising, for each of the sender and recipient, at least one input and at least one output, wherein the at least one output comprises data associated with the first and second set of metadata, wherein the data associated with the first and second set of metadata is based on data relating to a future blockchain transaction, wherein the at least one output includes an output corresponding to the sender that comprises a data payload comprising metadata generated based on the first set of metadata, and wherein the at least one output includes an output corresponding to the receiver comprises a data payload comprising metadata generated based on the second set of metadata, wherein the metadata comprises one or more metadata elements, a data digest and a state client data digest within a Merkle tree comprising a root and a set of leaf nodes, wherein the root comprises the state client data digest, and the set of leaf nodes comprises the metadata elements, the data digest and a salt, wherein the set of leaf nodes are arranged such that the metadata elements and the data digest are interleaved with the salt; and
appending the rendezvous blockchain transaction to the respective first and second chains of commitments; and
associating the rendezvous blockchain transaction with a respective entry in the respective event streams.