ASIC stands for Application Specific Integrated Circuit
As the name implies, an ASIC miner is a cryptocurrency mining machine built around a circuit designed solely for one specific purpose. The chips on the machine are prototyped and then produced in large numbers only to crank out hashes in large amounts.
For example, Bitcoin ASIC mining machines crank out tens of thousands of billions of hashes per second (terahashes/s)!
An ASIC usually begins life as a prototype in a FPGA development kit. An FPGA is a Field Programmable Gate Array, which is a fancy name for a digital prototyping platform.
Today, integrated circuits contain logic much like a computer program. If something happens on pins 1 through 10, something should happen as a result on pins 11 through 32, just to give a basic example.
After the logic works on the FPGA, the “source code”, which is usually encoded in a hardware description language, is sent to factories for mass production. A prototype board can often be made into a single chip which contains all the logic that was emulated on the larger development kit.
Cryptocurrency ASIC Miners
So, how does this theory relate to cryptocurrency mining?
Early on, every Bitcoin full node was a miner. You’d just run the software and Bitcoin Core would automatically mine Bitcoins for you, using your PC’s central processing unit (CPU).
Some clever hackers noticed that a modern video board, called GPU’s, could achieve much broader parallelism than CPU’s ever hoped to. While a CPU could have 2 to 32 concurrent threads, a GPU could process hundreds, even thousands, of hashes simultaneously with every cycle. This made graphic cards ideal for early Bitcoin mining.
Then came the ultimate development in Bitcoin mining: ASICs designed specifically to produce massive numbers of SHA256 hashes per second.
The development of ASIC’s for Bitcoin rendered both GPU and CPU mining completely obsolete.
Today, a modern Bitcoin mining machine contains around 195 chips on several separate boards. Each chip produces massive amounts of SHA256 hashes for a block in every cycle. A modern machine is able to produce hashes on the order of several x 10^12 (terahashes) per second.
In every cycle the ASIC chips calculate massive amounts of SHA256 hashes which are then tested (in hardware) against a certain difficulty (number of prefix zeroes). This test must be so fast it cannot be implemented in a regular CPU. It is made into a hardware logical test, with zero volts (zero value) being logically tested against the resulting hash. If enough electrical traces maintain zero volts after a logical operation such as OR, the hash is accepted and we have a candidate block. Otherwise the hash is rejected and the machine proceeds to the next attempt.
This process repeats itself thousands of billions of times per second on a typical last generation mining machine. The fast hardware difficulty test and astronomical hashing capability is what makes ASICs so superior to GPU’s for cryptocurrency mining.
Some cryptocurrencies are made to be very difficult, expensive or even impossible to mine on ASIC chips.
For example, is the hash testing routine is made very complex instead of just counting zeroes as happens in Bitcoin, that would become an obstacle to hardware testing. If a CPU or other complex logical device is needed to test hashes against valid values, the machine’s speed is severely reduced.
The hashing algorithms can also be made ASIC resistant by requiring large amounts of memory, for example. Cryptocurrencies like Monero achieve ASIC protection by the hashing algorithm require lots of space and complex logic that is very difficult or too expensive to be implemented in hardware.
SHA256, on the other hand (used by Bitcoin) requires very cheap hardware and its FPGA implementation was already available years ago, allowing early hardware hackers to easily implement ASIC miners.
One of the main goals for several new cryptocurrencies is to either be cryptographically ASIC resistant or use a different consensus system such as PoS.
FPAG ASIC protoype photo courtesy of Wikipedia