US 11,886,420 B2
System and method for distributing data records using a blockchain
Martin Sewell, London (GB); Daniel Joseph, London (GB); and Craig Steven Wright, London (GB)
Assigned to nChain Licensing AG, Zug (CH)
Appl. No. 16/604,539
Filed by nChain Licensing AG, Zug (CH)
PCT Filed Apr. 10, 2018, PCT No. PCT/IB2018/052488
§ 371(c)(1), (2) Date Oct. 10, 2019,
PCT Pub. No. WO2018/189667, PCT Pub. Date Oct. 18, 2018.
Claims priority of application No. 1705858 (GB), filed on Apr. 11, 2017.
Prior Publication US 2021/0124731 A1, Apr. 29, 2021
Int. Cl. G06F 16/00 (2019.01); G06F 16/23 (2019.01); H04L 9/08 (2006.01); H04L 9/30 (2006.01); G06Q 20/06 (2012.01); G06Q 40/04 (2012.01)
CPC G06F 16/2379 (2019.01) [H04L 9/085 (2013.01); H04L 9/0852 (2013.01); H04L 9/30 (2013.01); G06Q 20/0655 (2013.01); G06Q 40/04 (2013.01); G06Q 2220/00 (2013.01)] 17 Claims
OG exemplary drawing
 
1. A computer-implemented method to transfer a total data record represented by a total value between an input node and an output node using a blockchain, the method comprising:
obtaining, at the input node, public key material associated with the output node, wherein the public key material comprises first and second public keys;
determining, based on the total data record and available data records controlled by the input node, one or more inputs selected from the available data records, wherein a cumulative total of the one or more inputs is equal to or greater than the total data record, pooling inputs from a variety of sources;
determining a number and denomination of a plurality of outputs that will compose a payment to the output node;
dividing and allocating the one or more inputs to the outputs, thereby mixing transactions,
and
each output in the plurality of outputs being for a respective data record characteristic selected from a series of prescribed data record characteristics, and wherein a sum of the plurality of outputs matches the total data record;
for each of the outputs:
selecting a number at random;
generating an output address based on the first and second public keys and the number selected at random;
inserting the output address in a record distribution transaction to be allocated a data record having a respective data record characteristic of that output;
generating a nonce public key from the number selected at random; and
sharing the nonce public key with the output node; and
signing the one or more inputs.