Golden
Ethash

Ethash

Ethash is a proof of work algorithm which is used in a variety of cryptocurrencies including Ethereum.

Ethash is a memory hard (i.e. each GPU miner needs 1+ GB of RAM) proof of work mining algorithm developed for Ethereum 1.0 and currently used by Ethereum, Ethereum Classic, and several other cryptocurrencies. It is a modified version of Dagger Hashimoto, and was designed to be ASIC-resistant and efficiently verifiable by a light client - characteristics which are maintained by Ethash.



The Ethash algorithm is used to dynamically adjust the mining difficulty of the blockchain that implements it. In other words, Ethash determines roughly how much computational resources should be spent in order for a miner to be able to find the nonce that allows them to propose a new block to add to the blockchain.



Ethash is not itself a cryptographic hash function. The hash function used by Ethereum is a variant of the SHA3 hash and is called Keccak-256. The has was developed at the same time as the SHA3 standard and received a late change in the padding of the finalized hash algorithm. Ethereums SHA3-256 and SHA3-512 are not standard SHA3 hashes, and are often referred to as Keccak-256 and Keccak-512.



The Ethash algorithm generally follows a route in which a seed can be computed for each block by scanning through block headers, and which can compute a 16MB pseudorandom cache. Light clients then store the cache, which eventually is generated into a 1GB dataset and is then stored but full clients and miners. The dataset grows linearly over time and verification is done on the dataset until it is updated. The large dataset is updated once every 30,000 blocks.



The parameters for Ethash cache and datasets depend on the block number, as the cache and dataset sizes grow linearly. The highest prime below the linearly growing threshold is taken in order to reduce risk of accidental regularities leading to cyclic behaviors.

Timeline

April 2, 2018

Modifications to Ethash

Ethash is modified in order to invalidate specialized ASIC mining hardware

January 14, 2015

Initial commit to ethereum/ethash github repository

Ethereum contributor xcthulhu makes the initial github commit for Ethash

People

Name
Role
LinkedIn
+ Add new row

Further reading

Title
Author
Link
Type
Date

Ethereum wiki - Dagger Hashimoto

Multiple

Web



Ethereum wiki - Ethash

Multiple

Web



Documentaries, videos and podcasts

Title
Date
Link
+ Add new row

Companies

Company
CEO
Location
Products/Services

Ethereum Foundation

None

Switzerland

R&D for Ethereum project

References