20

I know that proof of work shows that the person has put in some time and power into the processing. I also know that bitcoin mining is adding a transaction into the blockchain and then the miner will need to solve a pow problem.

Why do we need this? What if we eliminated the proof of work step for the miners and what are the consequences of doing so?

2
  • I also know that bitcoin mining is adding a transaction into the blockchain and then the miner will need to solve a pow problem. Mining is constructing a block of transactions, and, with luck, solving the PoW problem for that block before any other miner adds a block, then adding the block to the blockchain.
    – brec
    Dec 24, 2017 at 23:51
  • closely related: bitcoin.stackexchange.com/q/331/5406
    – Murch
    Feb 11, 2018 at 2:03

6 Answers 6

12

Imagine I have 1 bitcoin. And imagine I can form a transaction to send that bitcoin to Alice or I can form a transaction to send that bitcoin to Charlie.

Now, what stops me from forming both transactions? Nothing.

So, if I do that, how will people know which transaction is valid? Clearly, without some reliable way to tell which of those two transactions are valid, the system is doomed.

This is what PoW does. A miner cannot contribute PoW to both transactions at the same time -- he must pick one.

36
  • Ok, I see how PoW is related to double spending, thanks
    – user153882
    Feb 10, 2017 at 0:27
  • "This is what PoW does. A miner cannot contribute PoW to both transactions at the same time -- he must pick one." Can you elaborate on this one? I am sure many users would appreciate this. as your answer stands now I can't see how and why POW is used in bitcoin still
    – user56231
    Jul 27, 2017 at 6:13
  • @user200300 I'm not quite sure what you're unclear about. Do you understand the problem I'm describing? Someone can form two valid transactions and we need some way for everyone to eventually agree on which one to accept. (Maybe it would help to ask your own question about what specifically you don't understand?) Jul 27, 2017 at 7:29
  • 1
    @AbhishekChaudhary How do thousands of people agree on which to receive and which to discard as invalid? That's what PoW does for bitcoin. Dec 30, 2020 at 16:35
  • 1
    @SpaceMonkey The canonical answer is to provide transaction ordering which we need to solve the double spend problem. The secondary answer is to accomplish the initial distribution without a central party. Apr 7, 2021 at 0:00
14

Proof of Work (PoW) basically makes sure that miners don’t cheat.

There is no way to trust that everyone in the network is honest, so there has to be some way to prevent miners from creating new blocks that benefit themselves. The way it works is that you have a bunch of people all trying to guess the answer to the math problem and no one knows who is going to get the correct answer first. Whoever does get the right answer first gets a reward, but only if all the other miners agree to accept that transactional record (If it becomes apparent that a certain miner is creating fraudulent transactions then the other miners can collectively refuse to accept their contributions). This is why the process of creating a new block is designed to be energy intensive, so that there is a cost associated with creating each new block. This prevents miners from simply creating a whole bunch of new fraudulent blocks with the hopes that maybe they’ll get accepted, because the cost of doing so offsets the potential reward. It helps to think about proof of work as a possible solution to email spam. If there was a requirement for each computer to spend a minute on a PoW problem before every piece of mail was sent, then only people with genuine messages would agree to expend the effort. One minute of computer time is a very low cost for an individual, but the guy who is blasting 10 million spam emails couldn’t afford to wait 10 million minutes to do so. So going back to bitcoin, the chance of each individual miner being the one to solve each block is pretty small, and since it takes a lot of effort to solve the blocks they can’t just spam the network with solutions. This means that they are incentivized to only expend the effort if their contribution is going be accepted by the network.

Hope that makes sense.

This is the best breakdown I could find (http://nakamotoinstitute.org/mempool/the-proof-of-work-concept/)

3
  • "This prevents miners from simply creating a whole bunch of new fraudulent blocks with the hopes that maybe they’ll get accepted" But nothing prevents nodes spamming the network with fraudulent transactions, of course eventually all peers will block those nodes after certain amount mishaps, I don't see why wouldn't this work for blocks as well.
    – Calmarius
    Jan 24, 2018 at 16:28
  • @Calmarius, indeed there exists two levels of consensus: Transaction level and Block level. So, spamming fraudulent transactions is quickly detected through consensus voting which handles Byzantine faults. Oct 22, 2019 at 12:08
  • I'm not sure if I get it right, because in my mind, and the way I try to understand it, is that, a PoW is a delaying mechanism . So it forces every body to delay and pause. And once, this mandatory delay is there, kablam, the result is sequential ordering. I'm not sure, if this is the whole point. I just started reading Mastering Bitcoin last week. Please correct me if I'm wrong.
    – daparic
    May 17, 2021 at 10:57
3

The way I understand how proof of work (PoW) works is this: its fundamental goal is to prevent cheating, or creating an inconsistent view of the distributed ledger.

Imagine a double spend scenario - where in participant A has only 1 BC to spend. But, he creates two independent transactions or "spends" each with 1 BC. He then presents each spend transaction to two different parties B and C as valid payments. Since there is no notion of serialization of transactions (as one would have in a centralized database with atomic commits), it is possible that some participants in the network have recorded A's payment to B first, while others have recorded A's payment to C first. At the same time, some will end up rejecting the latter payment (since A has only 1 BC to spend).

In the ideal world, if both transactions can be strictly serialized (as, for example - A's payment to B will be recorded in the distributed ledger before A's duplicate payment to C might be recorded), there will be no need for distributed consensus. In an ideal world, where in the transactions can be time-stamped using a "central" clock visible to every participant, we would have an easy solution.

The PoW process solves this problem algorithmically by forcing a non trivial finite delay for submitting and committing a block a transactions. In the bitcoin scheme, where transactions must be committed in a block level granularity, A's double spend transaction has two possibilities:

  1. Either both transactions are grouped together in the same block,
  2. Or, they are grouped in different blocks.

In the latter case, the inconsistency is easily detected and flagged. In the former case also, it is easy to detect the inconsistency & flag the same - but it is possible to do so only when both transactions (the good one and the bad one) are grouped in the same block. This is not possible if either the block sizes are too small or can be committed by the nodes very quickly. This is where PoW comes handy - it forces enough time to elapse in order compose a new block and have it committed by all participants.

The question that was not clear to me is this: Bitcoin uses a certain variation of computing the pre-image of a SHA-256 hash value. Since the purpose of PoW is only to delay the creation of new blocks by a sufficient time lag, this puzzle to solve could be anything - as for example, solving a 16-queens placement problem on a chess board, or something like that. It is not clear if the puzzle really needs to have a correlation with the actual data in the block being committed.

1
  • 2
    It is important the the puzzle's solution has a deterministic relationship with the blocks contents. This is because a mechanism is required to verify which block a new block was built on top of. It is also provides a way to quickly verify that transactions were included in a block. Lastly, using a function with properties like strong hash functions ensures that once a solution has been found, the contents on the blockchain cannot be changed with out detection. The puzzle needs to provide a tamper prevention mechanism. Jan 7, 2018 at 8:04
2

Without proof of work, anyone can start from the genesis block and the create a long chain of fake transactions. How can one decide which ledger is the correct one?

This is where the proof of work comes into play. The nodes accept the chain which took the most work to create and reject all others. This strongly incentivize the miners to build upon the established chain and also makes it hard to create a fake chain. To create a fake chain an adversary will need to work faster and also needs to catch up to rest of the network to get his fake chain accepted, which is practically impossible for established cryptocurrencies like Bitcoin.

1

short answer :

the proof of work is a protection and a solution for the Byzantine general problem without it miners will cheat easily without losing anything so they set this system POW to enforce the participants to loose money if they cheat (you loose the invested money in the POW process (electricity consumption and useless invested budget in the hardware)) instead you have an incentive if you don't cheat. Besides the POW is used to control the mining time windows (10 min) we could control the difficulty to make the mining easy or hard.

0

It provides a Proof of Consensus among the Bitcoin nodes that establishes the validity of any given block once it has about 6 blocks mined on top of it and it is the longest chain on the network

Since it is computationally expensive to mine blocks, it is unlikely that a single miner would be able to mine multiple blocks in a row. The rest of the mining community would mine the blocks much faster and create a longer chain.

Thus, given block A, to have 6 blocks mined above block A in the longest chain, a large percentage of the miners in the bitcoin mining community must all be working on the chain that includes block A.

The fact that so many miners have been proven to be working on a chain that includes block A implies that the community has come to the consensus that block A is a valid block.

Thus Proof of Consensus has been achieved.

Why is this Proof of Consensus needed? It protects against the block chain from being forked (intentionally or unintentionally). Other answers describe why someone may try to intentionally fork the blockchain (see the Double Spend scenario).

Not the answer you're looking for? Browse other questions tagged or ask your own question.