Glossary

# Mining Algorithm

Easy

An integral component of blockchain, a mining algorithm is the set of rules or instructions that a computer follows to generate a valid block.

## What Is Mining Algorithm?

A variety of mining algorithms have been designed for use and each has its strengths and weaknesses. One of the most popular algorithms is SHA-256, created by NSA.

In the context of cryptocurrency mining, a mining algorithm is the set of rules that miners use to determine how to compile their new blocks.

## Popular Mining Algorithms

### SHA-256

SHA-256 is a 256-bit cryptographic hash function designed by the U.S National Security Agency. SHA stands for “secure hash algorithm”. A cryptographic hash function is a special type of mathematical algorithm that takes an input and outputs data in the form of a "hash" that is longer than the original input.

### Equihash

Equihash is a memory-oriented Proof of Work algorithm that was introduced in 2016 by Alex Biryukov and Dmitry Khovratovich. It was designed to be highly egalitarian, GPU, and ASIC-resistant.
The algorithm relies on random access to a large hash table (2GB per instance) which is built from scratch every time a nonce is found. Several other algorithms rely on this same approach, including Cuckoo Cycle, X11, and Cryptonight.

To make Equihash-based cryptocurrencies ASIC-resistant, the algorithm has been designed to require large amounts of memory and computational power which makes it well suited for the use of GPUs.

### Ethash

Ethereum uses Ethash, which is a Proof-of-Work hashing algorithm. It is similar to other algorithms, such as script or SHA-256, in that it requires a large amount of memory and high computational power to execute. The main idea behind Ethash was to create a mining algorithm that doesn't allow the use of ASICs (Application Specific Integrated Circuits) This was done because the developers of Ethereum wanted to ensure that no one would have more than 51% of the mining power, which could potentially be used to attack the network.

### Scrypt

Scrypt is a password-based key derivation function (PBKDF) that adds a considerable amount of additional security to passwords. It was designed to provide key strengthening in the context of password-based authentication systems. It uses cryptographic hash functions, and it is an iterated hash, which means that it repeatedly applies the underlying hash function to the input value.

Scrypt is used in many cryptocurrencies, such as Litecoin and Dogecoin, for proof-of-work mining and password-based authentication.