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.
Modifications to Ethash
Ethash is modified in order to invalidate specialized ASIC mining hardware
Initial commit to ethereum/ethash github repository
Ethereum contributor xcthulhu makes the initial github commit for Ethash
Ethereum wiki - Dagger Hashimoto
Ethereum wiki - Ethash
Documentaries, videos and podcasts
R&D for Ethereum project
- SHA-256Hashing algorithm
- EthereumEthereum is an open-source, public, distributed blockchain computing platform featuring smart contract (scripting) functionality, which facilitates online contractual agreements.
- Ethereum ClassicThe classic version of Ethereum Blockchain, a distributed computing platform.
- EquihashEquihash is a Proof-of-Work algorithm used by Zcash, Komodo, ZenCash, and numerous other cryptocurrencies.
- Cryptocurrency miningCryptocurrency mining is the process by which transactions are validated and new coins are minted in a decentralized cryptocurrency network.
- Show More