Digital currency mining, through SHA-256 for Bitcoin, Scrypt for many other currencies, and a plethora of other algorithms that have been developed, is a growing industry, with Bitcoin mining, and Scrypt mining, machines being created that cost $10,000+.
So, Why Do People Mine Digital Currencies?
Mining is the primary method for transaction processing, recording, and security for most digital currencies, as well as the method in which new coins are created. This is not true for every digital currency, but is central to the vast majority.
We went into a bit of detail on how mining works in the article,”What is Bitcoin?” However, mining differs somewhat between currencies, and these differences give rise to opportunities, as well as offer new paths for the evolution of digital currencies as a whole.
The Digital Currency Mining Process
So, to start understanding what mining is, one must first understand how a block is generated. A block is simply a list of recent transactions that needs to be processed, recorded, and added to the public ledger known as the Block Chain. This is the central goal of a miner. The way this is completed is complex, but the non-technical way to look at it is this: Computers run a program that attempts to guess the solution to a nearly incalculable problem. This is necessary for the security of the network, as it creates a need for work to be done in order for a miner to have a chance of obtaining bitcoins.
Mining difficulty causes the network to accept any answer that is less than a certain value. This difficulty is adjusted, based on the speed that recent blocks were solved, so that the rate at which blocks are solved remains stable. As the processing power of a coin’s network goes up, the maximum value accepted (the target) becomes smaller. If the processing power goes down, the target is increased. The Bitcoin difficulty is currently at a level that dwarfs all other currencies, and is measured on the level of petahashes per second at this point.
Proof-of-work is exactly what it sounds like. It is a method designed to protect the system by requiring miners to prove that work was completed, and is the basis for most digital currencies. The way this is accomplished is through the above-mentioned hashing method.
Digital Currency Mining Algorithms
SHA-256 is a cryptographic algorithm used by Bitcoin, Peercoin, Unobtanium, and a handful of others. It is an advanced algorithm that is incredibly difficult to brute force, and thus provides a high level of security to the systems that use it, and allow for the difficulty to rise to levels that we cannot possibly reach with a traditional processor. Bruce Schneier put this in a way that can effectively get the point across,”These numbers have nothing to do with the technology of the devices; they are the maximums that thermodynamics will allow. And they strongly imply that brute-force attacks against 256-bit keys will be infeasible until computers are built from something other than matter and occupy something other than space. ”
SHA-256 is a very processing heavy, but not memory heavy, algorithm, and thus ASICs (Application Specific Integrated Circuits) for the purpose of mining digital currencies that use SHA-256 were created relatively easily. This quickly lead to GPUs (Graphical Processing Unit, generally in PC Graphics Cards), and FPGAs (Field-Programmable Gate Array) becoming obsolete.
Scrypt is a password-based key derivation function. Litecoin was created by Charles Lee, formerly of Google, and was the first digital currency to use Scrypt. Compared to SHA-256, Scrypt is very memory heavy, and thus it was originally theorized that GPUs, FPGAs, and ASICs would be nearly impossible to utilize for mining. However, that turned out to not be true, and GPU mining programs were quickly created. Today, multiple companies are producing Scrypt ASICs, such as GAW Miners and KNC Miner.
Scrypt-Adaptive-Nfactor(Scrypt-N) is a Scrypt algorithm that has been modified to require larger and larger amounts of memory as time goes on. As a result, Scrypt-N is very ASIC resistant, as ASICs by definition require the function to be hardcoded. While it is possible that an advanced ASIC could be created to handle Scrypt-N, it would also require a large amount of memory, which would severely limit it’s possibly power. Due to this, a Scrypt-N ASIC would be unlikely to mine much faster, or more efficiently, than a high end GPU.
In an attempt to limit the ability of ASIC development, as with Scrypt-N, some of the new digital currencies are implementing rotating algorithms into their mining process. This would require any ASIC to be designed for all of algorithms a specific currency uses, and would defeat the purpose of creating an ASIC to begin with. ASICs are powerful because they are built for a specific application, and lack the ability to do anything else. By adding additional abilities, the ASIC would lose much of that advantage.