IP Library Granted Patent US 12,505,437
Granted Patent B2
US 12,505,437 · App. 17/761,165 · Granted Dec 23, 2025

Divisible tokens

Inventors: Wei Zhang (London, GB); Craig Steven Wright (London, GB)
Assignee: nChain Licensing AG
G06Q20/389G06Q20/3825G06Q20/401G06Q2220/00
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,505,437
App. No.
17/761,165
Granted
Dec 23, 2025
Kind
B2
Abstract

A computer-implemented method of generating a second transaction for a blockchain. The blockchain comprises a first transaction comprising a first token and a first output transferring an amount of a digital asset between a second party and a first party. The first token represents a first amount of a token asset other than the digital asset, the second transaction is for transferring a second token representing a second amount of the token asset from a first party to a third party. The method is performed by the first party and comprises generating the second transaction. The second transaction comprises a first input configured to unlock the first output of the first transaction, and a first output comprising the second token. The second token comprises data representing the second amount of the token asset, the second amount being less than the first amount.

Claims (51)

1 . A computer-implemented method of generating a second transaction for a blockchain, the blockchain comprising a first transaction comprising a first token and a first output transferring an amount of a digital asset between a second party and a first party, wherein the first output of the first transaction comprises a cryptographic hash of the first token, wherein the first output comprises a locking script configured, when executed by a blockchain node, to verify that an input of a later blockchain transaction that references the first output of the first transaction comprises the first token by performing a cryptographic hash function on the first token and comparing a result of the cryptographic hash function with the cryptographic hash of the first token, the first token representing a first amount of a token asset other than the digital asset, the second transaction being for transferring a second token representing a second amount of the token asset from a first party to a third party; the method being performed by the first party and comprising:

extracting the first token from the first transaction;

determining, based on the extracted first token, the first amount of the token asset;

determining a second amount of the token asset to transfer to the third party, the second amount being less than the first amount;

generating a second token comprising data representing the second amount of the token asset;

inputting the second token to a cryptographic hash function and executing the cryptographic hash function to generate a cryptographic hash of the second token;

generating the second transaction comprising a first input configured to unlock the first output of the first transaction when the first input is executed by a blockchain node together with the first output of the first transaction, by performing steps of:

encoding, into the first input of the second transaction, the first token;

encoding, into a first output of the second transaction, the second token, the cryptographic hash of the second token, and a locking script configured, when executed by a blockchain node, to cause the blockchain node to verify that an input of a later blockchain transaction that references the first output of the second transaction comprises the second token by performing a cryptographic hash function on the second token and comparing a result of the cryptographic hash function with the cryptographic hash of the second token; and

transmitting the second transaction over a network to one, some or all of the second party, the third party, and/or the blockchain node.

2 . The method of claim 1 , wherein the data representing the second amount of the token asset comprises one or more values, each value being used to represent a respective sub-amount of the first amount of the token asset.

3 . The method of claim 2 , wherein each value is generated based on an identifier of the first transaction.

4 . The method of claim 2 , wherein each value is generated based on a modulus of a public key of the first party, and wherein the output of the second transaction comprises the modulus.

5 . The method of claim 3 , wherein each value is based on a root node of a binary tree structure, the root node being generated based on the identifier of the first transaction and/or a predetermined modulus, wherein the tree structure comprises a root layer comprising a root node, and a sequence of one or more child layers, each child layer comprising one or more pairs of child nodes, each pair being children of a respective node of a previous layer in the structure, wherein each node represents a respective amount of the token asset, the root node representing the first amount, and wherein each pair of child nodes together represent an amount equal to the amount represented by the respective node of the previous layer.

6 . The method of claim 5 , wherein each value is a respective square root of a respective one of the one or more generated node.

7 . The method of claim 5 , wherein the root node is generated by applying a first cryptographic hash function to at least the identifier of the first transaction.

8 . The method of claim 7 , wherein the root node is generated by applying the first cryptographic hash function to at least the identifier of the first transaction and the modulus.

9 . The method of claim 8 , wherein the first token comprises the modulus.

10 . The method of claim 5 , wherein the first token represents the first amount A, wherein an i th layer of the tree structure comprises 2 i-1 node, and wherein each node in the i th layer represents an amount A*2 1-i .

11 . The method of claim 5 , wherein each pair of child nodes comprises a first child node and a second child node, and wherein each first child node in the i th layer comprises a square root of the respective node of the previous layer, and wherein each second child node in the i th layer comprises a square root of the respective node of the previous layer, and a component generated by applying a second cryptographic hash function to at least the identifier of the first transaction.

12 . The method of claim 11 , wherein the first and second cryptographic hash functions are different cryptographic hash functions.

13 . The method of claim 2 , wherein the respective sub-amount is a different sub-amount of the first amount, each representing a different amount of the token asset.

14 . The method of claim 1 , wherein the first input of the second transaction comprises a first public key of the first party and a digital signature generated based on a first private key corresponding to the first public key.

15 . The method of claim 14 , wherein the first transaction is generated by the second party, and wherein the method comprises:

generating a shared private key based on a private key corresponding to a second public key of the first party and a public key of the second party; and

generating the first public key of the first party based on the shared private key and the second public key of the first party.

16 . The method of claim 4 , comprising:

generating a third public key of the first party, wherein the third public key comprises the modulus; and

transmitting the third public key of the first party to the second party.

17 . Computer equipment, comprising:

memory comprising one or more memory units; and

processing apparatus comprising one or more processing units, wherein the memory stores code arranged to run on the processing apparatus, the code being configured so as when run on the processing apparatus, the processing apparatus performs a to perform the method of generating a second transaction for a blockchain, the blockchain comprising a first transaction comprising a first token and a first output transferring an amount of a digital asset between a second party and a first party, wherein the first output of the first transaction comprises a cryptographic hash of the first token, wherein the first output comprises a locking script configured, when executed by a blockchain node, to verify that an input of later blockchain transaction that references the first output of the first transaction comprises the first token by performing a cryptographic hash function on the first token and comparing a result of the cryptographic hash function with the cryptographic hash of the first token, the first token representing a first amount of a token asset other than the digital asset, the second transaction being for transferring a second token representing a second amount of the token asset from a first party to a third party; the method being performed by the first party and comprising:

extracting the first token from the first transaction;

determining, based on the extracted first token, the first amount of the token asset;

determining a second amount of the token asset to transfer to the third party, the second amount being less than the first amount;

generating a second token representing comprising data representing the second amount of the token asset;

inputting the second token to a cryptographic hash function and executing the cryptographic hash function to generate a cryptographic hash of the second token;

generating the second transaction comprising a first input configured to unlock the first output of the first transaction when the first input is executed by a blockchain node together with the first output of the first transaction, by performing steps of:

encoding, into the first input of the second transaction, the first token;

encoding, into a first output of the second transaction the second token, the cryptographic hash of the second token, and a locking script configured, when executed by a blockchain node, to cause the blockchain node to verify that an input of a later blockchain transaction that references the first output of the second transaction comprises the second token by performing a cryptographic hash function on the second token and comparing a result of the cryptographic hash function with the cryptographic hash of the second token; and

transmitting the second transaction over a network to one, some or all of the first party, a third party, and/or the blockchain node.

18 . A computer program product embodied on a non-transitory computer-readable storage including computer program code configured so as, when run on computer equipment of a first party, the computer equipment performs a method of generating a second transaction for a blockchain, the blockchain comprising a first transaction comprising a first token and a first output transferring an amount of a digital asset between a second party and a first party when executed by a blockchain node together with the first output of the first transaction, wherein the first output of the first transaction comprises a cryptographic hash of the first token, wherein the first output comprises a locking script configured, when executed by a blockchain node, to verify that an input of later blockchain transaction that references the first input of the first transaction comprises the first token by performing a cryptographic hash function on the first token and comparing a result of the cryptographic hash function with the cryptographic hash of the first token, the first token representing a first amount of a token asset other than the digital asset, the second transaction being for transferring a second token representing a second amount of the token asset from a first party to a third party; the method being performed by the first party and comprising:

extracting the first token from the first transaction;

determining, based on the extracted first token, the first amount of the token asset;

determining a second amount of the token asset to transfer to the third party, the second amount being less than the first amount;

generating a second token representing comprising data representing the second amount of the token asset;

inputting the second token to a cryptographic hash function and executing the cryptographic hash function to generate a cryptographic hash of the second token;

generating the second transaction comprising a first input configured to unlock the first output of the first transaction, by performing steps of:

encoding, into the first input of the second transaction, the first token;

encoding, into a first output of the second transaction the second token, the cryptographic hash of the second token, and a locking script configured, when executed by a blockchain node, to cause the blockchain node to verify that an input of a later blockchain transaction that references the first output of the second transaction comprises the second token by performing a cryptographic hash function on the second token and comparing a result of the cryptographic hash function with the cryptographic hash of the second token; and

transmitting the second transaction over a network to one, some or all of the first party, a third party, and/or the blockchain node.

Assignments (3)
CHANGE OF NAME Recorded Aug 25, 2025
From: NCHAIN HOLDINGS LIMITED
To: NCHAIN LICENSING AG
Reel/Frame 072531/0591 →
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: ZHANG, WEI; WRIGHT, CRAIG STEVEN
To: NCHAIN HOLDINGS LIMITED
Reel/Frame 059288/0174 →
Priority Claims (1)
GB 1913714 · Sep 24, 2019 · national
Continuity (1)
Related Publication 20230316272A1 · Oct 5, 2023
References Cited (18)
US 8886938B1 · Greenwood · 2014 [cited by examiner]
US 20170033933A1 · Haber · 2017 [cited by examiner]
US 20180151182A1 · Wyss · 2018 [cited by examiner]
US 20210006391A1 · Wei · 2021 [cited by examiner]
US 20210044965A1 · Nambisan · 2021 [cited by examiner]
GB 19133180 · 2021 [cited by applicant]
JP 2019508951A · 2019 [cited by applicant]
WO 2017145004 · 2017 [cited by applicant]
WO WO2017145004A1 · 2017 [cited by examiner]
Antonopolus, Andreas M. Mastering Bitcoin, O'Reilly Media, Inc. Oct. 7, 2014 (Year: 2014). [cited by examiner]
Tatsnaki Okamoto (Universal Electronic Cash) (Year: 1992). [cited by examiner]
Claudio Ferretti, Transferable Anonymous Payments via TumbleBit in Permissioned Blockchains, 2019, p. 8-9 (Year: 2019). [cited by examiner]
Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, www.bitcoin.org, pp. 1-9. [cited by applicant]
Colored Coins, Bitcoin Wiki, 2019, pp. 1-7, https://en.bitcoin.it/wiki/Colored_Coins. [cited by applicant]
Tatsuaki Okamoto et al., Universal Electronic Cash, Advances in Cryptology—Crypto '91, LNCS 576, pp. 324-337, 1992, Springer-Verlag, Berlin Heidelberg. [cited by applicant]
Barker Elaine, Recommendation for Key Management, Part 1: General, NIST Special Publication 800-57 Part 1, Revision 4, pp. 1-160, Jan. 2016, National Institutes of Standards and Technology, Gaithersburg, MD. [cited by applicant]
GB1913714.0 Combined Search and Examination Report dated Mar. 6, 2020. [cited by applicant]
PCT/IB2020/058129 International Search Report and Written Opinion dated Feb. 1, 2021. [cited by applicant]