When reading about Bitcoin or other blockchain technologies, the phrases Proof-of-Work and Proof-of-Stake are often mentioned. In the case of Bitcoin, Proof-of-Work as one of the reasons for its astronomical energy consumption. These “Proof” algorithms are used by cryptocurrency networks to reach a consensus of the current state of their respective blockchains in a process called mining. Put simply, mining is the process in which a group of unaffiliated, distributed transaction processors validate the transactions that have taken place on the network. Before I get into ATMCash (ATM$) and what its Proof-of-Work Algorithm means and why it’s significant, I will describe what these other “Proof” algorithms mean and how they came to be.
Proof-of-Work (PoW) was first given serious attention in the Bitcoin whitepaper in 2008. The beauty of Proof-of-Work, when it was announced, was that it was the first mechanism that allowed for consensus among distributed parties with no central trust. While nowadays we have several solutions to this problem, at the time a working solution to this foundational problem had never been proposed. Terminology Hash: A hash is a cryptographic function that is meant to be a one-way function. A hashing algorithm should be able to take any amount of data and return a fixed length string that should be completely unique to that particular input. Nonce: A nonce is an arbitrary number that can only be used once. Miner: One of the independent transaction processors in the cryptocurrency network whose goal is to validate transactions. Also sometimes called a Full Node or Node. Generally, PoW as it operates in Bitcoin and many other cryptocurrencies functions in the following way: »A collective difficulty level is set. This usually refers to some characteristic that the resulting “product” or “answer” must posses (e.g. the resulting hash must start with 3 consecutive 0's). »Each miner (or node) starts generating guesses for the answer. They test their guesses by generating a new hash from the current unconfirmed transactions, the hash of the previous block, and a nonce of their choosing. »When a miner finally generates a hash that meets the conditions from step 1, it broadcasts its answer to the rest of the network to verify. If the answer is found to be valid, the miner that generated the answer is said to win the right to mine the block. The power consumption concerns come into play because each “guess” a miner makes takes a set tiny amount of energy for a computer to produce. Currently the hash rate for the entire bitcoin network is ~17,000,000 tera hashes per second, that is 17,000,000,000,000,000,000 guesses per second for the entire network. The energy required to do this kind of computation is roughly the same as the consumption of the country of Hungary.
Proof-of-Work Users: Bitcoin, Litecoin, and damn near everyone else.
Proof-of-Stake was first introduced in 2012 with the introduction of Peercoin. PoS was seen as a solution to the inherent waste occurring in PoW currencies. PoS also solves the problem of distributed consensus, albeit in via a different path. Generally, PoS works by using a randomization algorithm to select a mining node based on its public attributes such as its age, or the amount of the native currency that the node possesses. This makes the mining process, at least computationally, much less expensive than PoW algorithms. Keep in mind this is a very brief overview of PoS, interested readers will find the topic has much more depth and complexity than I give here. While it is considered much “greener” than PoW, there are some drawbacks to consider when looking at PoS systems. The greatest of these being the argument that such networks can quickly become unfairly distributed if too much weight is given too very wealthy or old nodes.
Proof-of-Stake Users: Dash, NEO, Lisk, etc.
Proof-of-Capacity, which has also been referred to as Proof-of-Space, was first proposed in 2013. PoC is not so very different from PoW except for one major differentiator, in PoC, rather than doing a large amount of work in order to verify each block, the work is done up front in the process called “plotting” and the results from this process are used later to verify each block. The basic idea to take away from this is that in PoC the “work” is done once during plotting rather than with each new block, allowing PoC to realize a huge efficiency savings over PoW systems. The amount of “work” a miner will end up doing depends on the amount of free disk space they have available to devote to the plotting process. How Does It Work? If you’d like to avoid the nitty-gritty of how plotting and mining work in ATMCash PoC system, feel free to skip on to the next section. Plotting is the process of generating plot files, which are just files storing a large number of pre-computed hashes. Each plot file contains one of more groups of 8192 hashes, these groups are called nonces. Anonce is exactly 256KiB in size (8192 x 32 bytes per hash). Additionally, each nonce is divided into 4096 pairs of hashes, the pairs are referred to as scoops. Each nonce can also be identified by its index number, ranging from 0 to 2^64.
Proof-of-Capacity Users: Burst, BitCoinore, ATMCASH.
The plotting process takes the miner’s ATMCash address as an input, which ensures that plot files can only be used by a single miner. For an even lower level look at how plot files are generated you can read this. Once the plot files have been generated, the actual mining process can take place. The miner will first fetch the relevant information from the wallet for the current block, this includes a 32 byte hash called the “generation signature” from the previous block, the block height (index of the current block), and something called the “base target” which is calculated based on the last 24 blocks and can be considered as the “difficulty level” of the block. With this information the miner can then generate a new “generation hash” which it will use to determine the which scoop to check in each nonce. With each of the applicable scoops, the miner will then perform an additional hash with the new generation signature before dividing the hash by the the base target, which results in the “deadline” being returned. The deadline represents the number of seconds since the previous block was mined before the miner would be allowed to mine the next block. The miner with the smallest deadline wins the right to mine (also called forge) the next block.
Why Does PoC Matter?
»Proof of Capacity is Efficient. PoC is very efficient when compared to PoW miners that use ASICs to mine. ATMCash transactions on average use 1/550 the energy used per Bitcoin transaction.
»Proof of Capacity is Cheap. You can get started mining ATMCash with an extra laptop and external HDD, compared to the expensive, specialized ASIC rigs or GPUs needed for most PoW mining. Proof of Capacity is Distributed, Because excess storage space is common, hardware is cheap, and competition is less fierce, a more diverse group of people can become involved in PoC mining, meaning a more decentralized network.