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 |
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.
|