Circuit and method for overcoming memory bottleneck of ASIC-resistant cryptographic algorithms
AssigneeePIC Blockchain Technologies Inc.
InventorToan-Earl Mai
Life of this patent
Estimating the term…
Abstract
An application-specific integrated circuit (ASIC) and method are provided for executing a memory-hard algorithm requiring reading generated data. A processor or state machine executes one or more steps of the memory-hard algorithm and requests the generated data. At least one specialized circuit is provided for generating the generated data on demand in response to a request for the generated data from the processor. Specific embodiments are applied to memory-hard cryptographic algorithms, including Ethash and Equihash.
Claims20
An application-specific integrated circuit (ASIC) for executing an Equihash algorithm, comprising:
- at least one Blake2B core;
- and
- a processor configured to:
- execute one or more steps of the Equihash algorithm;
- and
- send a request to the at least one Blake2B core for generated data comprising one or more of the following:
- Blake2B data, string data, and XOR data;
- the at least one Blake2B core being configured to, in response to receiving the request from the processor:
- process a header and a nonce value by applying a Blake2B hash to generate the Blake2B data;
- process the Blake2B data to generate the string data;
- process the string data by applying XOR operations to generate the XOR data;
- and
- return the generated data to the processor.
A method of executing an Equihash algorithm, comprising:
- using a state machine to:
- execute one or more steps of the Equihash algorithm;
- and
- send a request to at least one Blake2B core for generated data comprising one or more of the following:
- Blake2B data, string data, and XOR data;
- and
- using the at least one Blake2B core to, in response to receiving the request from the processor:
- process a header and a nonce value by applying a Blake2B hash to generate the Blake2B data;
- process the Blake2B data to generate the string data;
- process the string data by applying XOR operations to generate the XOR data;
- and
- return the generated data to the state machine.
Dependencies are inferred from the claim text.