The defining characteristic of Scrypt is that mining it uses a lot of memory, and that it also takes a lot time to perform selection. Scrypt is used when mining cryptocurrency and Scrypt makes it more difficult for ASIC miners to compete in mining a cryptocurrency.
While Bitcoin uses the SHA-256 algorithm, Scrypt is different. Where it is easy to mine Bitcoin with an ASIC mining rig, it’s not the case with Scrypt. Coins such as Bitcoin that can easily be mined using ASICs causes problems in the cryptocurrency community because it puts people with deep pockets and resources at an advantage, essentially implying that an ASIC-minable cryptocurrency is no longer decentralised.
Bitcoin is just one example of a coin that does not use Scrypt. Indeed, coins based on Scrypt is very popular with miners because you can still mine Scrypt-based coins using normal home computers that have a reasonably powerful CPU and GPU.
How does Scrypt algorithm work?
Colin Percival is the person behind the Scrypt mining algorithm – it was started as a cryptography protection for online services which keep a backup copy of operating systems based on UNIX. Scrypt is unique because it makes solving artificially complicated by filling the cryptography mechanism with “noise”. These random numbers mean that working out the Scrypt algorithm takes longer.
When Scrypt is used to check a user key the noise-induced delay won’t be noticed, but if a criminal tries to break into a network using brute force it means that Scrypt makes the brute force process very difficult. Anyone coin based on Scrypt will therefore require a lot of mining participants all of whom do a little bit of work.
Mining a Scrypt-based coin
Before you choose a Scrypt-based coin to mine you should first consider where you will be mining it. Scrypt mining does not require as much resources as SHA-256, so a cryptocurrency using Scrypt can be mined with a lot of different tools. You can choose between a Scrypt mining pool, an ASIC miner built for Scrypt or even a standard CPU, GPU combination. Companies that built ASIC miners are trying to find ways to “crack” the mining algorithm for Scrypt – to be able to implement the Scrypt function.
Anyone who just starts out mining a Scrypt coin will wonder which option is the best for mining Scrypt. As always, the most important factor is the hash rate of the equipment – a way to determine the performance of the mining equipment.
Calculating the hash – in other words, finding the next block in a chain – is best attempted using a GPU, if you’re mining a Scrypt coin. Aside from the fact that a graphic chip has more processing power than a general-purpose CPU, it’s also true that graphics chips are better at a single operation. AMD GPU’s are best-suited to Scrypt because they are cheaper and better performing than their Nvidia counterparts. Note that when mining Scrypt you also need access to a lot of computer memory.
However, ASIC manufacturers are not standing still so you can now find ASIC rigs which can mine Scrypt coins. Either way, if you are mining solo you will need massive resources to mine Scrypt productively. Pooling with other miners in a Scrypt pool is a better option, you can contribute your own mining power to the pool to improve the overall chances of earning a reward. It gives you faster mining results, but the overall reward is lower.
There are different Scrypt mining pools and we suggest you focus on the way the pool is designed. Some pools that mine Scrypt also mine other coins, while some mine just a single Scrypt coin. If you want a stable income it is best to stick to a pool which mines only a single Scrypt coin.
Which coins make use of Scrypt?
The first coin that made use of the Scrypt algorithm is Litecoin. Every fork of Litecoin will also be based on the Scrypt algorithm. Another popular Scrypt-based coin – if not as popular as Litecoin – is Dogecoin. Others include CashCoin, Mooincoin and ProsperCoin.
Scrypt uses a range of a parameters to do its job. Here is a list:
- The passphrase which is the specific string that is going to be hashed
- A string of characters called salt which is used to modify the hash so that it’s protected when someone attempts a Rainbow table-based attack
- The CPU, memory cost parameter N
- A parallelization parameter, p, which is a positive integer that meets a specific condition:
p ≤ (232− 1) * hLen / MFLen
- The derived key’s intended output length specified in octets – dkLen – which needs to satisfy the condition:
dkLen ≤ (232− 1) * hLen
- r which specifies the block size and which can be used to tune memory performance and read size – the most common value for r is 8.
- the hash function’s length in octets is specified by hLen – it’s usually set to 32 when using SHA256
- MFlen which is the length of the output of the mixing function, in octets, see SMix as outlined below. It is defined in RFC7914 – it is r * 128.
Note that Salsa20/8 is in essence the same as Salsa20, but it is the 8-round version.