IP Library Granted Patent US 12,063,291
Granted Patent B2
US 12,063,291 · App. 17/017,027 · Granted Aug 13, 2024

Devices and circuitry for computing hash values

Inventors: Veerbhan Kheterpal (San Francisco, CA); Daniel Firu (San Francisco, CA); Nigel Drego (San Francisco, CA)
Assignee: Coinbase, Inc.
H04L9/0643G06F9/30098H04L9/3242H04L9/50H04L2209/125H04L2209/20H04L2209/24H04L2209/30H04L2209/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,063,291
App. No.
17/017,027
Granted
Aug 13, 2024
Kind
B2
Abstract

Devices and circuitry for computing hash values.

Claims (63)

1. An electronic device for computing SHA-256 values, the electronic device comprising:

communications circuitry;

processing circuitry;

storage circuitry; and

hashing circuitry comprising:

sixty-four sequential rounds of SHA-256 circuitry, wherein each round of the sixty-four sequential rounds of SHA-256 circuitry (i) comprises an A register for storing SHA-256 A values and an E register for storing SHA-256 E values and (ii) does not comprise any other variable registers for storing SHA-256 B, C, D, F, G, or H values, and

logic circuitry that, when activated, controls the hashing circuitry to:

store values in each A register and E register of the sixty-four rounds of SHA-256 circuitry, and

output a final SHA-256 result comprising SHA-256 A, B, C, D, E, F, G and H values by reading each of the SHA-256 A, B, C, D, E, F, G and H values from one of the A or E registers of the sixty-four rounds of SHA-256 circuitry,

wherein the storage circuitry comprises instructions that, when executed by the processing circuitry, control the processing circuitry to:

generate data by using the final SHA-256 result, and

store the generated data at a peer-to-peer network by using the communications circuitry.

2. The electronic device of claim 1 , wherein the SHA-256 A value of the final SHA-256 result is the value stored in the A register of the 64th round of SHA-256 circuitry.

3. The electronic device of claim 2 , wherein the SHA-256 E value of the final SHA-256 result is the value stored in the E register of the 64th round of SHA-256 circuitry.

4. The electronic device of claim 1 , further comprising difficulty comparison circuitry that, when activated, compares the final SHA-256 result to a predetermined difficulty value in accordance with a protocol, wherein the processing circuitry generates the data by using the final SHA-256 result in response to a determination that the final SHA-256 result satisfies the predetermined difficulty value.

5. The electronic device of claim 1 , further comprising:

a plurality of message registers comprising at least one message, each message including a plurality of message words, and

control circuitry that, when activated, selectively routes the plurality of message words from the message registers to the sixty-four rounds of SHA-256 circuitry,

wherein the hashing circuitry further comprises: pipeline registers interposed between one or more rounds of SHA-256 circuitry, and

wherein each of the message registers stores message words for a respective group of rounds of SHA-256 circuitry.

6. The electronic device of claim 5 , further comprising a pointer register comprising at least one pointer array that includes at least one pointer for controlling at least one of the plurality of message registers.

7. The electronic device of claim 6 , wherein at least one pointer array of the pointer register comprises at least one read pointer and at least one write pointer for at least one message register, wherein each read pointer points to a message word stored by the respective message register, and each write pointer points to a message word stored by the respective message register.

8. The electronic device of claim 7 , wherein the control circuitry selectively routes the plurality of message words from the message registers to the sixty-four rounds of SHA-256 circuitry by using the read pointers stored by the pointer register.

9. The electronic device of claim 8 ,

wherein the hashing circuitry comprises pipeline registers interposed between every sixteen rounds SHA-256 circuitry,

wherein the electronic device comprises one message register for each group of sixteen rounds of SHA-256 circuitry, and

wherein each message register comprises one message that includes sixteen message words.

10. The electronic device of claim 9 , wherein the control circuitry is constructed to perform message scheduling for a message by shifting read and write pointers provided for the message register associated with the message.

11. The electronic device of claim 10 , wherein each message is a 512-bit message and each message word is a 32-bit message word.

12. The electronic device of claim 11 , wherein each pipeline register and message register are clocked using a clock signal having a common first frequency.

13. The electronic device of claim 12 , wherein the pointer register is clocked using a clock signal having second frequency that is different from the first frequency.

14. An electronic device comprising:

communications circuitry;

processing circuitry;

storage circuitry; and

hashing circuitry comprising:

sixty-four sequential rounds of SHA-256 circuitry, wherein each round of the sixty-four sequential rounds of SHA-256 circuitry comprises (i) an A register for storing SHA-256 A values and an E register for storing SHA-256 E values and (ii) does not comprise any other variable registers for storing SHA-256 B, C, D, F, G, or H values, and

logic circuitry that, when activated, controls the hashing circuitry to:

store values in each A register and E register of the sixty-four rounds of SHA-256 circuitry, and

output a final SHA-256 result comprising SHA-256 A, B, C, D, E, F, G and H values by reading each of the SHA-256 A, B, C, D, E, F, G and H values from one of the A or E registers of the sixty-four rounds of SHA-256 circuitry, wherein the final SHA-256 result comprises SHA-256 A, B, C, D, E, F, G and H values, wherein the SHA-256 A value of the final SHA-256 result is the value stored in the A register of the 64th round of SHA-256 circuitry, the SHA-256 E value of the final SHA-256 result is the value stored in the E register of the 64th round of SHA-256 circuitry, and the SHA-256 B value of the final SHA-256 result is the value stored in the A register of the 63rd round of SHA-256 circuitry,

wherein the storage circuitry comprises instructions that, when executed by the processing circuitry, control the processing circuitry to:

generate data by using the final SHA-256 result, and

store the data at a peer-to-peer network by using the communications circuitry.

15. The electronic device of claim 14 , wherein the SHA-256 C value of the final SHA-256 result is the value stored in the A register of the 62nd round of SHA-256 circuitry.

16. The electronic device of claim 15 , wherein the SHA-256 D value of the final SHA-256 result is the value stored in the A register of the 61st round of SHA-256 circuitry.

17. The electronic device of claim 16 , wherein the SHA-256 F value of the final SHA-256 result is the value stored in the E register of the 63rd round of SHA-256 circuitry.

18. The electronic device of claim 17 , wherein the SHA-256 G value of the final SHA-256 result is the value stored in the E register of the 62nd round of SHA-256 circuitry.

19. The electronic device of claim 18 , wherein the SHA-256 H value of the final SHA-256 result is the value stored in the E register of the 61st round of SHA-256 circuitry.

20. An electronic device comprising:

communications circuitry;

processing circuitry;

storage circuitry;

hashing circuitry comprising:

sixty-four sequential rounds of SHA-256 circuitry, wherein each round of the sixty-four sequential rounds of SHA-256 circuitry comprises (i) an A register for storing SHA-256 A values and an E register for storing SHA-256 E values and (ii) does not comprise any other variable registers for storing SHA-256 B, C, D, F, G, or H values, and

logic circuitry that, when activated, controls the hashing circuitry to:

store values in each A register and E register of the sixty-four rounds of SHA-256 circuitry, and

output a final SHA-256 result comprising SHA-256 A, B, C, D, E, F, G and H values by reading each of the SHA-256 A, B, C, D, E, F, G and H values from one of the A or E registers of the sixty-four rounds of SHA-256 circuitry,

a plurality of message registers comprising at least one message, each message including a plurality of message words; and

control circuitry that, when activated, selectively routes the plurality of message words from the message registers to the sixty-four rounds of SHA-256 circuitry,

wherein the logic circuitry, when activated, controls the hashing circuitry to store values in each A register and E register of the sixty-four rounds of SHA-256 circuitry based on the plurality of message words routed to the sixty-four rounds of SHA-256 circuitry, and

wherein the storage circuitry comprises instructions that, when executed by the processing circuitry, control the processing circuitry to:

generate data by using the final SHA-256 result, and

store the data at a peer-to-peer network by using the communications circuitry.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2022
From: 21, INC.
To: COINBASE, INC.
Reel/Frame 061781/0049 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 10, 2020
From: KHETERPAL, VEERBHAN; FIRU, DANIEL; DREGO, NIGEL
To: 21, INC.
Reel/Frame 053752/0839 →
Continuity (3)
Continuation 14738659 · Jun 12, 2015
Provisional Application 62065551 · Oct 17, 2014
Related Publication 20200412544A1 · Dec 31, 2020
Cited By (2)
US 12,301,573 US 12,462,312