Ethereum is an open technology platform that allows developers to create and deploy decentralized applications (DApps) based on smart contract technology. At the core of Ethereum is its native asset, Ether (ETH), which is used to pay for transactions performed on the network. To ensure the security and integrity of the Ethereum network, a consensus mechanism called proof of work (PoW) is employed. Ethash, the specific PoW algorithm used by Ethereum, serves as the foundation for the entire protocol.
When it comes to PoW mining, data from a block header is used as an input and is repeatedly hashed using a cryptographic hashing method. This process generates a fixed-length output, known as a hash value, which reflects the characteristics of the input data. Miners continuously hash different variants of the input data by utilizing a new sequence number, called a nonce, each time they submit data for processing.
What is Ethash?
Ethash is a modified version of its predecessor, Dagger-Hashimoto, and it aims to eliminate the computational cost associated with the previous algorithm. It achieves this by utilizing a large dataset, called a DAG (Directed Acyclic Graph), which is continuously generated and gradually expands over time. The DAG is designed to fit into the VRAM (Video Random Access Memory) of modern GPUs (Graphics Processing Units).
In the case of Ethash, the resulting hash value produced by the mining process must be less than a given threshold, known as the difficulty. The Ethereum network adjusts this difficulty level to control the rate at which blocks are mined. If blocks are being discovered too quickly, the network automatically increases the difficulty, thus lowering the threshold and reducing the number of valid hashes that can be found. Conversely, if block discovery slows down, the network increases the difficulty, allowing for a greater number of valid hash values to be found.
Ethash defines the amount of computing resources a miner should expend to locate the nonce that allows them to propose a new block to be added to the blockchain. On average, the Ethereum network generates one block every 12 seconds.
To achieve higher hash rates when mining Ethash, miners often increase the memory clock frequency of their GPUs. This can lead to significant performance improvements, but it also results in increased heat production. Miners may need to impose power or temperature constraints and sometimes set high fan speeds to counterbalance the heat generated.
In the pursuit of cost-effective mining farms, it is common to see custom-built PCs equipped with six or more high-end GPUs specifically for mining Ethereum, with less emphasis on other components.
When a miner successfully discovers a block that can be added to the blockchain, they are rewarded in several ways:
- A static block reward of three Ether (ETH) is given.
- As part of the proof of work mining process, the miner’s account is assigned the gas cost consumed by the execution of all the transactions within the block.
- An additional 2.625 Ether (ETH) is awarded for adding uncles (stale blocks) to the block.
In summary, Ethash is a memory-hard proof of work algorithm specifically designed to be resistant to specialized hardware (ASIC-resistant) and to promote a more equitable mining process. It is worth noting that proposals are being made to transition Ethereum’s consensus mechanism from proof of work to proof of stake, which would render traditional Ethereum mining obsolete in its current form.