[Ethereum] What proof of work function does Ethereum use

consensusfrontierproof-of-work

The Ethereum frontier network currently uses a proof of work (PoW) based consensus algorithm. But which specific PoW function does that algorithm use, and why was it chosen?

Best Answer

The PoW algorithm used in Frontier and Homestead is called Ethash, and it was created specifically for Ethereum.

The primary reason for constructing a new proof of work function instead of using an existing one was to attack the problem of mining centralisation, where a small group of hardware companies or mining operations acquire a disproportionately large amount of power to impact or manipulate the network (should they so choose). The economic forces within existing networks (such as Bitcoin and Litecoin) make centralisation of mining efforts highly profitable, in part due to the possibility for producing ASICs, specialised chips specifically designed to outperform standardised computer hardware by many orders of magnitude in hashing performance. Other factors that promote mining centralisation, such as handling of orphaned blocks, are tackled separately within the Ethereum protocol. By specifically designing an "ASIC-resistant" PoW algorithm, the Ethereum team hopes to reduce economic incentives for mining centralisation in Ethereum, at least until a secure PoS algorithm can be designed and deployed.

The way that Ethash aims to provide a PoW algorithm for which commodity hardware is already highly optimised (and hence creation of an ASIC, which is expensive, will yield very little advantage over simply using the latest commodity hardware) is by emphasising a property called memory hardness. Memory hardness essentially means that your performance is limited by how fast your computer can move data around in memory rather than by how fast it can perform calculating operations. Consumer graphics cards compete very strongly in this area, which means that a potential ASIC designer can't easily do better: if they had a new idea for improving memory bandwidth it would be more profitable to sell that idea to a graphics card company than to design a mining ASIC for it. And in any case the mainstream computer industry has large teams devoted to this problem already.