Mining holds the key to Ethereum’s ‘decentralized app store,’ as it ensures that a consensus gets maintained for every change in any of the applications running on the network. The network cannot agree without the computational power to process the changes.
Miners craftily set the computers lose to solve cryptographic puzzles in an attempt to win ether. Sets of permutations and combinations need to be applied and solved to unlock a new batch of the asset. The exciting thing is that mining on major public blockchains tends to require more power over time, as a large number of people start investing in more powerful hardware.
However, decentralized peer-to-peer digital currency systems had failed earlier due to “Byzantine General’s Problem.” If a group of Byzantine generals attacks a city, there will be two specific problems. Firstly, it is difficult to have a combined attack as the general, and armies are far from each other. Secondly, the city may have an army large enough. Thus the only way to win is to attack from all sides.
The armies on the left send a messenger to the right side with a message stating “ ATTACK JOHN.” If the troops on the right are unprepared and say no to the message and send the messenger back, it becomes a problem. In this case, the messenger can be killed, captured or can even be replaced by another messenger.
The messenger could get captured, compromised, killed and replaced with another messenger by the city. Thus, it would lead to information being tampered. This is true in case of Blockchain also. If you were sending someone 5 ether from your wallet., it is difficult to ensure if anyone would not tamper with your information and change it to 15 ether. This problem was solved with Satoshi Nakamoto’s “ Proof of Work” protocol.
If the army on the left sends a message called “ ATTACK JOHN” to the right, it will follow this steps-: A nonce (a random hexadecimal value) will be attached to the original text. The text attached with nonce is hashed, and output is seen.
If the conditions are satisfied, then the messenger with the hash of the message is sent. If the conditions are not satisfied the value will keep changing until the desired output is obtained. This action is painstaking and consumes a lot of computation power.
In case the messenger is caught by the city, and the message is changed, due to hash function properties, the hash again changes. However, no hash function is 100% collision-free, it is possible that the city gets the message, tampers with it and then accordingly changes the nonce until the desired output is obtained.
Instead of only one general on the left sending messages to one general on the right, there are three generals on the left who have to send a message to the ones on the right. To do that, they can make their message and then hash the cumulative message and then attach a nonce to the resulting hash and hash it again.
So, this time instead of one general sending the message three general will need to send the message. The generals can cumulatively hash the message and attach a nonce and then rehash it again. In this scenario, even if the messenger gets caught, the possibility of tampering the cumulative message is infinitesimal.
The process to find the nonce for the hash target should be time-consuming and extremely difficult. Simultaneously, the process of checking the result should be straightforward.
The process behind mining is as follows-:
Choosing the right mining hardware
Specialized computer hardware is required to be dedicated full-time for mining. There are namely two types of mining hardware: CPUs and GPUs.
GPUs bolster a higher hash rate, and so, they can solve puzzles more quickly. GPUs have now become the only option for ether miners. Plenty of advice can be accumulated on the most profitable GPU based on hash rate performance, making settling on a GPU a laborious task. A mining rig can also be set up for dedicated mining. Further, with the aid of mining profitability calculators, the amount of ether that can be earned can be predicted.
Installing mining software
After the selection of mining hardware, it’s time for installing the mining software. Miners need to install a client to connect to the network. Programmers familiar with mining commands can install “geth.” It runs on ethereum node, and is written in the scripting language ‘Go.’ Geth versions for different operating systems are readily available. Once the installation process is over, the miner can connect to other nodes by connecting to the ethereum network. Now, you will act as a node, and in addition to mining, you will also provide an interface for deploying smart contracts and electronic transactions using the command line.
The test ether can be mined at your private network to experiment with smart contracts or decentralized applications. Mining on a test network doesn’t require any fancy hardware, just a computer with ‘geth’ or another client installed.
After downloading a client and becoming a part of the network in the capacity of a node, Ethminer can be downloaded. Once installed, the node will play its role in securing the ethereum network.
Joining a mining pool
Miners should pool together to increase the chances of mining ether in large number. The profits can thus be split proportionally to how much each miner has contributed.
However, each pool might not last forever and also the computational power of each pool changes continually. Thus, many factors need to be kept in mind. Different mining pools have different payout structures. Moreover, mining pools have a signup process, so that miners can connect to the pool and start mining.
However, the tools that are handy today might be rendered obsolete by next year. At the same time, some mining pools might fall while others may emerge. Hence, it pays to be up-to-date with industry trends.
The different types of mining include-:
CPU Mining: CPU mining is the most basic form of mining. Anyone can use their computer to mine. However, this method is not used anymore.
GPU Mining: The GPU is a part of the video rendering system of a computer. The GPUs offer a more robust system for mining than the CPU. ASIC resistant coins like Monero are mined via GPU.
FPGA Mining: FPGA( Field Programmable Gate Array) is a device has a series of gate arrays which create truth tables to calculate inputs from a data stream. FPGA’s will perform excellently at any task which can be carried out in a parallel process, such as a mining hash to create an output resulting in a successful hash.
ASIC Mining: ASIC (Application-Specific Integrated Circuit) was created for the specific purpose of mining Bitcoin and Litecoin. When KNCMiner launched their pre-orders for ASICs, they received $25 million in orders in the first 5 hours, as the idea of this machinery was much ahead of its time. Bitcoin and Litecoin are now exclusively mined through ASICs.