IP Library Granted Patent US 12,469,014
Granted Patent B2
US 12,469,014 · App. 17/892,614 · Granted Nov 11, 2025

Cryptocurrency miner and job distribution

Inventors: Rony Gutierrez (Pardes Hanna-Karkur, IL); Michael Tal (Yoqneam Illit, IL); Zvi Shteingart (Moscow, RU)
Assignee: CHAIN REACTION LTD.
G06Q20/065H04L9/3236H04L9/50G06Q2220/00H04L2209/56
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,469,014
App. No.
17/892,614
Granted
Nov 11, 2025
Kind
B2
Abstract

Distribution of jobs among compute modules of a cryptocurrency miner is disclosed. A cryptocurrency miner may include a serial bus, compute modules, and a controller. The controller may receive a candidate block, generate jobs based on the candidate block, and distribute the jobs among the plurality of compute modules by issuing a job submit command to the compute modules via the serial bus. The job submit command may comprise block sets that at least partially define the plurality of jobs. The block sets may include a plurality of midstates that correspond to a plurality of message blocks.

Claims (65)

1 . A cryptocurrency miner, comprising:

a serial bus;

a communication interface;

a plurality of compute integrated circuits, wherein each compute integrated circuit comprises a plurality of compute engines; and

a controller coupled to the plurality of compute integrated circuits via the serial bus;

wherein the controller is configured to receive a candidate block for a blockchain via the communication interface, compute one or more midstates for the candidate block, generate one or more jobs for the one more midstates, and issue a job submit command on the serial bus that distributes the one or more jobs including their respective one or more midstates among the plurality of compute integrated circuits;

wherein each compute engine is configured to compute a hash for a job based on its respective midstate of the job submit command; and

wherein each compute integrated circuit in a first group of the plurality of compute integrated circuits is configured to process a job of the one or more jobs in response to determining that a device identifier of the job submit command corresponds to a multicast address associated with each compute integrated circuit in the first group.

2 . A cryptocurrency miner, comprising:

a serial bus;

a communication interface;

a plurality of compute integrated circuits, wherein each compute integrated circuit comprises a plurality of compute engines; and

a controller coupled to the plurality of compute integrated circuits via the serial bus;

wherein the controller is configured to receive a candidate block for a blockchain via the communication interface, compute one or more midstates for the candidate block, generate one or more jobs for the one more midstates, and issue a job submit command on the serial bus that distributes the one or more jobs including their respective one or more midstates among the plurality of compute integrated circuits;

wherein the job submit command comprises a plurality of block sets that at least partially define the one or more jobs;

wherein each block set comprises a plurality of midstates corresponding to a plurality of message blocks;

wherein each compute engine is configured to compute a hash for a job based on its respective midstate of the job submit command; and

wherein a first compute integrated circuit of the plurality of compute integrated circuits is configured to process a block set of the plurality of block sets in response to determining that a block set group identifier of the job submit command corresponds to a block set group identifier associated with the first compute integrated circuit.

3 . A cryptocurrency miner, comprising:

a serial bus;

a communication interface;

a plurality of compute integrated circuits, wherein each compute integrated circuit comprises a plurality of compute engines; and

a controller coupled to the plurality of compute integrated circuits via the serial bus;

wherein the controller is configured to receive a candidate block for a blockchain via the communication interface, compute one or more midstates for the candidate block, generate one or more jobs for the one more midstates, and issue a job submit command on the serial bus that distributes the one or more jobs including their respective one or more midstates among the plurality of compute integrated circuits;

wherein the job submit command comprises a plurality of block sets that at least partially define the one or more jobs;

wherein each block set comprises a plurality of midstates corresponding to a plurality of message blocks;

wherein each compute engine is configured to compute a hash for a job based on its respective midstate of the job submit command; and

wherein a first compute integrated circuit of the plurality of compute integrated circuits is configured to process a block set of the plurality of block sets in response to determining that a message block identifier and a block set group identifier of the job submit command respectively correspond to a message block identifier and a block set group identifier associated with the first compute integrated circuit.

4 . The cryptocurrency miner of claim 3 , wherein the job submit command includes a difficulty field corresponding to a difficulty value of the candidate block and a zeros target field specifying a target value for the one or more jobs that is more lax than the difficulty value of the candidate block.

5 . The cryptocurrency miner of claim 3 , wherein the controller is configured to roll an extra nonce of a transaction to create jobs for the candidate block that differ in a Merkle root tail.

6 . A method distributing jobs to compute integrated circuits of a cryptocurrency miner, the method comprising:

receiving, with a controller of the cryptocurrency miner, a candidate block for a blockchain;

generating, with the controller, jobs based on the candidate block, wherein the jobs include one or more midstates computed by the controller for the candidate block;

issuing, from the controller, a job submit command to the compute integrated circuits, wherein the job submit command comprises a plurality of jobs from the jobs generated based on the candidate block, and wherein the plurality of jobs include their respective one or more midstates;

processing the plurality of jobs with one or more compute integrated circuits, wherein processing a job of the plurality of jobs comprises generating hashes based on a midstate provided by the job submit command; and

processing a job of the plurality of jobs with each compute integrated circuit in a first group of the compute integrated circuits in response to determining that a device identifier of the job submit command corresponds to a multicast address associated with each compute module in the first group.

7 . The method of claim 6 , comprising

generating block sets that at least partially define the plurality of jobs such that each block set comprises a plurality of midstates corresponding to a plurality of message blocks; and

including a plurality of block sets from the generated block sets in the job submit command.

8 . A method distributing jobs to compute integrated circuits of a cryptocurrency miner, the method comprising:

receiving, with a controller of the cryptocurrency miner, a candidate block for a blockchain;

generating, with the controller, jobs based on the candidate block, wherein the jobs include one or more midstates computed by the controller for the candidate block; and

issuing, from the controller, a job submit command to the compute integrated circuits, wherein the job submit command comprises a plurality of jobs from the jobs generated based on the candidate block, and wherein the plurality of jobs include their respective one or more midstates;

generating block sets that at least partially define the plurality of jobs;

including a plurality of block sets from the generated block sets in the job submit command;

processing the plurality of jobs with one or more compute integrated circuits, wherein processing a job of the plurality of jobs comprises generating hashes based on a midstate provided by the job submit command; and

processing a block set of the plurality of block sets with a first compute integrated circuit in response to determining that a block set group identifier of the job submit command corresponds to a block set group identifier associated with the first compute integrated circuit.

9 . A method distributing jobs to compute integrated circuits of a cryptocurrency miner, the method comprising:

receiving, with a controller of the cryptocurrency miner, a candidate block for a blockchain;

generating, with the controller, jobs based on the candidate block, wherein the jobs include one or more midstates computed by the controller for the candidate block; and

issuing, from the controller, a job submit command to the compute integrated circuits, wherein the job submit command comprises a plurality of jobs from the jobs generated based on the candidate block, and wherein the plurality of jobs include their respective one or more midstates;

generating block sets that at least partially define the plurality of jobs; and

including a plurality of block sets from the generated block sets in the job submit command;

processing the plurality of jobs with one or more compute integrated circuits, wherein processing a job of the plurality of jobs comprises generating hashes based on a midstate provided by the job submit command; and

processing a block set of the plurality of block sets with a first compute integrated circuit in response to determining that a message block identifier and a block set group identifier of the job submit command respectively correspond to a message block identifier and a block set group identifier associated with the first compute integrated circuit.

10 . The method of claim 9 , wherein the job submit command includes a difficulty field corresponding to a difficulty value of the candidate block and a zeros target field specifying a target value for the plurality of jobs that is more lax than the difficulty value of the candidate block.

11 . The method of claim 9 , wherein generating the jobs with the controller comprises rolling an extra nonce of a transaction of the candidate block to differ a Merkle root of the generated jobs.

12 . The method of claim 6 , wherein the job submit command includes a difficulty field corresponding to a difficulty value of the candidate block and a zeros target field specifying a target value for the plurality of jobs that is more lax than the difficulty value of the candidate block.

13 . The method of claim 6 , wherein generating the jobs with the controller comprises rolling an extra nonce of a transaction of the candidate block to differ a Merkle root of the generated jobs.

14 . The method of claim 8 , wherein the job submit command includes a difficulty field corresponding to a difficulty value of the candidate block and a zeros target field specifying a target value for the plurality of jobs that is more lax than the difficulty value of the candidate block.

15 . The method of claim 8 , wherein generating the jobs with the controller comprises rolling an extra nonce of a transaction of the candidate block to differ a Merkle root of the generated jobs.

16 . The cryptocurrency miner of claim 1 , wherein the job submit command includes a difficulty field corresponding to a difficulty value of the candidate block and a zeros target field specifying a target value for the one or more jobs that is more lax than the difficulty value of the candidate block.

17 . The cryptocurrency miner of claim 1 , wherein the controller is configured to roll an extra nonce of a transaction to create jobs for the candidate block that differ in a Merkle root tail.

18 . The cryptocurrency miner of claim 2 , wherein the job submit command includes a difficulty field corresponding to a difficulty value of the candidate block and a zeros target field specifying a target value for the one or more jobs that is more lax than the difficulty value of the candidate block.

19 . The cryptocurrency miner of claim 2 , wherein the controller is configured to roll an extra nonce of a transaction to create jobs for the candidate block that differ in a Merkle root tail.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2022
From: GUTIERREZ, RONY; TAL, MICHAEL; AVRAHAM, SHTEINGART ZVI
To: CHAIN REACTION LTD.
Reel/Frame 061186/0915 →
Continuity (1)
Related Publication 20240062170A1 · Feb 22, 2024
References Cited (30)
US 6097811A · Micali · 2000 [cited by examiner]
US 10841372B1 · Ram · 2020 [cited by examiner]
US 11722462B1 · List · 2023 [cited by examiner]
US 20110145137A1 · Driemeyer · 2011 [cited by examiner]
US 20110246774A1 · Phillips, II · 2011 [cited by examiner]
US 20110307659A1 · Hans · 2011 [cited by examiner]
US 20170243176A1 · Hanke · 2017 [cited by examiner]
US 20190303790A1 · Harvilla · 2019 [cited by examiner]
US 20190370793A1 · Zhu · 2019 [cited by examiner]
US 20190392470A1 · Blanton · 2019 [cited by examiner]
US 20200013027A1 · Zhu · 2020 [cited by examiner]
US 20200403984A1 · Minehan · 2020 [cited by applicant]
US 20210084060A1 · Garg · 2021 [cited by examiner]
US 20210194672A1 · Narayanam et al. · 2021 [cited by applicant]
US 20230401169A1 · Tal · 2023 [cited by examiner]
WO 2015077378A1 · 2015 [cited by applicant]
Dos Santos; Candidate Set Formation Policy for Mining Pools; 2020 IEEE; pp. 415-420; 2020. [cited by examiner]
Kilic; Parallel Analysis of Ethereum Blockchain; Springer Verlag; pp. 1885-1898; 2022. [cited by examiner]
Leva; Control-oriented modelling of proof-of-work blockchains; ECC 2019; pp. 2873-2878; 2019. [cited by examiner]
Ning; CapJack_ Capture In-Browser Crypto-jacking; Old Dominion University; pp. 1873-1881; 2020. [cited by examiner]
Kilic B, Ozturan C, Sen A., Parallel analysis of Ethereum blockchain transaction data using cluster computing. Cluster Computing. Jun. 2022;25(3):1885-98. <https://link.springer.com/content/pdf/10.1007/s10586-021-03511-… [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/IB2023/055949, mailed Sep. 27, 2023, 8 pages. [cited by applicant]
“AsicBoost—A Speedup for Bitcoin Mining”, Dr. Timo Hanke, Mar. 31, 2016, 10 pages. [cited by applicant]
“Crypto Mining: Network Difficulty, Share Difficulty and Hash Functions”, Luxor Tech, Feb. 20, 2020, 6 pages. [cited by applicant]
“Mastering Bitcoin”, Andreas M. Antonopoulos, Published by O'Reilly Media, Inc. 2010, 87 pages. [cited by applicant]
Federal Information Processing Standards Publication, Aug. 2015, 36 pages. [cited by applicant]
“Optimising the SHA256 Hashing Algorithm for Faster and More Efficient Bitcoin Mining”, Rahul P. Naik, Department of Computer Science, University College of London, Sep. 2, 2013, 65 pages. [cited by applicant]
BitmainAntminer—Youtube video, https://www.youtube.com/watch?v=_R36wWMM34M. [cited by applicant]
MicroBT Whatsmainer—Youtube video, https://www.youtube.com/watch?v=6vtq1m8w5eQ. [cited by applicant]
SHA-256 The Center of Bitcoin—Andreas M. Antonopoulos—Youtube video, https://www.youtube.com/watch?v=TvqDbLnsSNs. [cited by applicant]