US 12,452,085 B2
Digital contracts using blockchain transactions
Alexander Mackay, London (GB); and Craig Wright, London (GB)
Assigned to nChain Licensing AG, Zug (CH)
Appl. No. 17/628,510
Filed by nChain Holdings Limited, St. John's (AG)
PCT Filed Jun. 25, 2020, PCT No. PCT/IB2020/055999
§ 371(c)(1), (2) Date Jan. 19, 2022,
PCT Pub. No. WO2021/014233, PCT Pub. Date Jan. 28, 2021.
Claims priority of application No. 1910649 (GB), filed on Jul. 25, 2019.
Prior Publication US 2022/0278859 A1, Sep. 1, 2022
Int. Cl. H04L 9/00 (2022.01); G06F 21/64 (2013.01); G06Q 20/02 (2012.01); G06Q 20/38 (2012.01); G06Q 20/40 (2012.01)
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
OG exemplary drawing
 
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.