| CPC H04L 9/50 (2022.05) [G06F 21/645 (2013.01); G06Q 20/02 (2013.01); G06Q 20/382 (2013.01); G06Q 20/401 (2013.01); G06Q 2220/00 (2013.01)] | 12 Claims |

|
1. A computer-implemented method of encoding a digital contract between a first party of a blockchain network and a second party of the blockchain network, the digital contract being for transferring an amount of a digital asset from the first party to the second party based on a condition of the contract being fulfilled; the method being performed by a trusted third party and comprising:
obtaining a plurality of data elements, each data element representing a different condition of the contract, and wherein at least one of the different conditions is linked to the second party;
generating a hash tree based on the plurality of data elements, wherein the hash tree comprises:
i) a leaf layer comprising a first set of leaf hashes each generated by hashing a respective data element but not a secret value known only to the trusted third party, and a second set of leaf hashes comprising at least one hash key generated by hashing a secret value known only to the trusted third party but not any of the respective data elements; and
ii) one or more internal layers each comprising a respective set of internal hashes, wherein each internal hash of a respective internal layer is generated by hashing a concatenation of at least two hashes from a lower layer; and
iii) a root layer comprising a root hash, the root hash generated by hashing a concatenation of at least two hashes from an uppermost internal layer;
making the root hash available to the first party for inclusion in a transaction of a blockchain;
determining that the condition of the contract linked to the second party has been met; and
in response, transmitting an authentication path to the second party, wherein the authentication path comprises a set of hashes, wherein the set of hashes comprises the hash key and one or more sets of internal hashes, each set of internal hashes belonging to a different internal layer of the hash tree.
|