IP Library Granted Patent US 12,198,110
Granted Patent B2
US 12,198,110 · App. 17/761,166 · Granted Jan 14, 2025

Partitioning a request into transactions for a blockchain

Inventors: Craig Steven Wright (London, GB); Owen Vaughan (London, GB); Chloe Ceren Tartan (London, GB); Wei Zhang (London, GB)
Assignee: nChain Licensing AG
G06Q20/10G06Q20/382
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,198,110
App. No.
17/761,166
Granted
Jan 14, 2025
Kind
B2
Abstract

In one aspect, the present disclosure proposes methods, devices and systems for partitioning a request associated with a digital asset into an arbitrary number of transactions. The partitioning is based on knowing or obtaining a maximum number of outputs allowed for a request and an arbitrarily selection of a possible integer partition of an arbitrarily selected integer. The randomly selected integer partition then forms the basis for determining the number of transactions and UTXOs, so that a digital asset value can be arbitrarily split across the determined UTXOs before being stored on a public blockchain. In another aspect, the present disclosure proposes methods, devices and systems for arbitrarily distributing a digital asset value associated with a request across an arbitrarily determined number of transactions. This is based on an arbitrarily selected number of transactions, and a maximum number of outputs allowed for each request. In another respect, the present disclosure proposes methods, devices and systems for generating or determining one or more public addresses associated with a given entity for use in blockchain transactions for the given entity, so that such addresses may be securely and correctly associated with the given entity, while maintaining anonymity of the entity's identity.

Claims (37)

1. A computer implemented method of partitioning a request associated with a digital asset into one or more transactions pertaining to a distributed ledger, each transaction having one or more outputs associated with the request, the method implemented by one or more processors associated with a recipient, the method comprising the steps of:

obtaining a maximum number of outputs (N) possible for a request associated with the recipient;

for each integer k where, 1≤k≤N determining possible integer partitions;

arbitrarily selecting an integer partition from the determined possible integer partitions for the request;

generating one or more (M′) transaction templates Tx′ based on the selected integer partition;

splitting a value associated with the digital asset across output(s) associated with the one or more generated transaction templates Tx′; and

providing for or to a sender, the one or more generated transaction templates Tx′; and

wherein the step of splitting includes the steps of:

obtaining a value L associated with the request, wherein the value is representative of a digital asset;

obtaining a predetermined number of transaction templates M′ associated with the request, wherein the M′ transaction templates Tx′ are associated with a predetermined maximum number of outputs N pertaining the request or the recipient, a given transaction template Tx′ among the M′ transaction templates Tx′ having n outputs, where n≤N;

arbitrarily generating n−1 number of value partitions U (i=1 to(n−1)) of the value L;

sorting the n−1 value partitions in ascending order of value 0<U (1) <U (2) < . . . <U (n−1) <L, where U (0) −0 and where U (n) −L; and

computing a value X (i=1 to M′) for a given transaction template among the predetermined number of transaction templates M′ based on a difference between a respective (i th ) value partition and a previous value partition in the sorted order X i =U (i) −U (i−1) for i=1 to n.

2. The method of claim 1 , further comprising receiving one or more completed transactions Tx based on the one or more generated templates Tx′ from the sender; and submitting the completed transactions to the distributed ledger.

3. The method of claim 1 , wherein the number of transaction templates M′ or the number of transactions M generated is based on the number of integers in the selected integer partition; and/or wherein a number of outputs in a given transaction template Tx′ or transaction Tx generated is based on a value of an integer at a respective position in the selected integer partition that relates to the given transaction Tx or template Tx′; and/or the method further comprising obtaining a maximum number of transaction templates M′ max or a maximum number of transactions M max allowed for the request or the recipient; and/or the method further comprising obtaining a minimum number of transaction templates M′ min or transactions M min , and/or a minimum number of outputs N min for the request or the recipient; and/or wherein each output in a given transaction template Tx′ or Transaction Tx generated is associated with a different public address for the recipient, the public address being specific to respective output.

4. The method of claim 1 , further comprising the steps of:

providing the request to a sender;

receiving one or more completed transactions Tx from the sender, the one or more completed transacted generated by performing the steps of:

responsive to receipt of the request from a recipient, obtaining a maximin number of outputs (N) possible for a request associated with the recipient;

for each integer k where 1≤k≤N, determining possible integer partitions;

arbitrarily selecting an integer partition from the determined possible integer partitions for the request;

generating one or more transactions Tx based on the selected integer partition; and

splitting a value associated with the digital asset across the output(s) associated with the one or more generated transactions, wherein each output pertains to a public address associated with the recipient; and

submitting the completed transactions to the distributed ledger.

5. A computing device, comprising a processor and memory or a non-transitory storage medium, the memory or the non-transitory storage medium including executable instructions that, as a result of execution by the processor, causes the device to perform a computer implemented method of partitioning a request associated with a digital asset into one or more transactions pertaining to a distributed ledger, each transaction having one or more outputs associated with the request, the method implemented by one or more processors associated with a recipient, the method including the steps of:

obtaining a maximum number of outputs (N) possible for a request associated with the recipient;

for each integer k where, 1≤k≤N determining possible integer partitions;

arbitrarily selecting an integer partition from the determined possible integer partitions for the request;

generating one or more (M′) transaction templates Tx′ based on the selected integer partition;

splitting a value associated with the digital asset across output(s) associated with the one or more generated transaction templates Tx′; and

providing for or to a sender, the one or more generated transaction templates Tx′, the computing device pertaining to the recipient or a digital wallet associated with the recipient; and

wherein the step of splitting includes the steps of:

obtaining a value L associated with the request, wherein the value is representative of a digital asset;

obtaining a predetermined number of transaction templates M′ associated with the request, wherein the M′ transaction templates Tx′ are associated with a predetermined maximum number of outputs N pertaining the request or the recipient, a given transaction template Tx′ among the M′ transaction templates Tx′ having n outputs, where n≤N;

arbitrarily generating n−1 number of value partitions U (i=1 to(n−1)) of the value L;

sorting the n−1 value partitions in ascending order of value 0<U (1) <U (2) < . . . <U (n−1) <L, where U (0) −0 and where U (n) −L; and

computing a value X (i=1 to M′) for a given transaction template among the predetermined number of transaction templates M′ based on a difference between a respective (i th ) value partition and a previous value partition in the sorted order X i =U (i) −U (i−1) for i=1 to n.

Assignments (2)
CHANGE OF NAME Recorded Aug 8, 2022
From: NCHAIN HOLDINGS LIMITED
To: NCHAIN LICENSING AG
Reel/Frame 061118/0671 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2022
From: WRIGHT, CRAIG STEVEN; TARTAN, CHLOE CEREN; ZHANG, WEI; VAUGHAN, OWEN
To: NCHAIN HOLDINGS LIMITED
Reel/Frame 059375/0165 →
Priority Claims (1)
GB 1913667 · Sep 23, 2019 · national
Continuity (1)
Related Publication 20230316241A1 · Oct 5, 2023
References Cited (13)
US 10915895B1 · Fogg · 2021 [cited by examiner]
US 11373152B2 · Wright · 2022 [cited by examiner]
US 11989208B2 · Douglass · 2024 [cited by examiner]
US 20030046226A1 · Iue · 2003 [cited by examiner]
US 20130238491A1 · Bouey · 2013 [cited by examiner]
US 20180349896A1 · Arora · 2018 [cited by examiner]
WO 2019003072 · 2019 [cited by applicant]
WO 2019053583 · 2019 [cited by applicant]
Adreas Antonopoulos, “Mastering Bitcoin”, Dec. 2014, O'Reilly Media, Inc. [cited by examiner]
Bonneau et al., “Mixcoin Anonymity for Bitcoin with accountable mixes”, (Full version), Financial Cryptography and Data Security, 18th International Conference, FC 2014, Mar. 3-7, 2014, Revised Selected Papers, Jan. 1, … [cited by examiner]
Mike Hearn, Merge Avoidance, A note on privacy-enhancing techniques in the Bitcoin protocol, Mike's blog, pp. 1-8, Dec. 11, 2013, https://blog.plan99.net/merge-avoidance-7f95a386692f. [cited by applicant]
PCT/IB2020/058704 International Search Report and Written Opinion dated Feb. 9, 2021. [cited by applicant]
GB1913667.0 Combined Search and Examination Report dated Feb. 26, 2020. [cited by applicant]