What is Proof of Work?

23 Jul 2018

What is Proof of Work (PoW)?

Proof of Work (PoW) is a protocol requiring a certain amount of effort to prevent cyber-attacks launched by bad actors. These attacks by malicious entities typically include sending numerous spam messages or launching distributed denial-of-service attacks (DDoS), which deplete the computing resources of affected users, thus causing their computers to slow down considerably.

Hal Finney introduced the PoW concept to the financial world in 2004 and in 2009, the computer scientist’s idea was adopted when implementing the Bitcoin protocol. Notably, Finney is known to have participated in the first Bitcoin (BTC) transaction along with the cryptocurrency’s creator, Satoshi Nakamoto. Thousands of other cryptocurrencies have emerged, after Bitcoin, and many of them also use PoW.

PoW Applied To Crypto Platforms

To understand the basics of how PoW functions when applied to cryptocurrency platforms, let’s explore how it’s implemented on the Bitcoin blockchain. Simply put, the blockchain is a digital distributed ledger that keeps an immutable record of all transactions that have ever been executed on its network.

We’ll stick to the example of Bitcoin here, although many other crypto platforms use PoW in a similar manner. Bitcoin’s transactions are grouped in a series of “blocks” in order to prevent double-spending, which is when a user might try to spend the same funds on more than one occasion.

The Bitcoin blockchain is public, which means everyone can view the transactions on its ledger. Additionally, these digital transactions are broadcasted to all of Bitcoin’s network participants who are now distributed throughout the world. Essentially, this is how the cryptocurrency, referred to as a “peer-to-peer electronic cash system” in its whitepaper, was envisioned to work - in a decentralized (distributed) manner.    

Generating Hashes To Validate Transactions

If tampered transactions are introduced on the Bitcoin blockchain, they are rejected by its validating nodes. In order to determine whether a transaction is fraudulent or legitimate, Bitcoin’s full-node operators’ computing power is used to generate (or hash) lengthy strings consisting of numbers. This process is part of the protocol known as proof-of-work (PoW) and it works by inputting a particular data set into a hash function (SHA-256 in Bitcoin’s case), which then always produces a unique hash value.

Should there be even a slight modification to a data set, then this will lead to the “avalanche effect” in which a completely different hash is generated. This lets everyone on Bitcoin’s network know that the data was corrupted because its associated hash does not match the one generated by the original data set. Moreover, regardless of the size of a data set, the hash value produced by a particular hashing function will always have the same length.

In mathematical terms, a hash is a one-way function, therefore, a hashed value cannot be used to retrieve its associated data set. So, the hash can only be used to determine whether the data that produced a particular hash value is the same as the original data set. In other words, a hash value verifies the authenticity of a data set.

How “Blocks” Are “Mined”

In order to produce a hash for a group or “block” consisting of bitcoin transactions, “work” is performed by the cryptocurrency’s miners. This “work” has a certain “difficulty” level in terms of the computing resources required to generate a hash. Once a miner generates a hash for a block, the set of bitcoin transactions in that block are validated and a new block on Bitcoin’s blockchain is “mined.” On average, it takes 10 minutes to mine a new block on Bitcoin’s network.

Difficulty levels for hashing can be modified by setting a predetermined target, which can make it easy or hard, in terms of computing power required, to output valid hash values. For example, consider the hash string beginning with a large number of zeros such as 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d for the block 429818, which consists of 2,012 transactions worth about 1,000 bitcoins and header information for the preceding block. Should a user try to alter only one transaction in this block by just 0.0001 bitcoin, then it would result in a completely different hash value from what it should be, thus prompting network participants to reject it.

Moreover, miners usually modify the input value to hash functions used for data sets by appending a nonce (“number used once”) integer to it, so that they can produce hashes below the predetermined target. When a valid hash is discovered on the Bitcoin network, it’s sent out to all of the network’s validating nodes, after which the hash’s associated block is permanently recorded on the blockchain.

Why Crypto Mining Is Competitive

This method for validating transactions makes mining competitive and one lucky miner is able to produce the required proof of work (PoW) every ten minutes. In order to improve their chances of generating valid hashes, and thus being able to mine more blocks, miners collectively form mining pools. Mining blocks is a rewarding (or incentivized) activity because miners are paid fees associated with blocks containing bitcoin transactions, in addition to receiving newly minted bitcoins (at least for now).

In general, PoW makes it almost impossible to modify any part of a blockchain, because all previous blocks would have to be re-mined. This of course would also require vast amounts of computing power and resources, which discourages miners from doing so. Monopolizing a blockchain network’s computing power or mining hash rate is extremely difficult as well because very expensive hardware equipment and large amounts of electricity would be required to do so.         

Comments
CryptoCompare needs a newer browser in order to work.
Please use one of the browsers below: