11

When a miner finds a hash and is thus able to confirm a block of transactions, that miner will then broadcast the confirmation (block?) to the other Bitcoin nodes so that it can be added to the blockchain. My question is, what is the incentive for other nodes to accept this mined block, even if it is correct and checks out against older blocks? I ask because if the reward for mining blocks decreases over time, other nodes may selfishly not want to accept this miner's effort and prefer to figure it out on their own for a greater reward now than later.

14

The incentive to mine on the currently longest chain is that there is a risk to the dishonest miner that honest, non-mining nodes may have already propagated the first block and hence reject and not propagate the second block found at an equal block height.

As Proof of Work is not reusable this leads the dishonest miner to waste resources.

  • Thanks but I'm not asking about the incentive to mine I'm asking about why the incentive for other non-mining nodes to accept a newly mined block on teh current longest chain. I mean could they theoretically all be a-holes and say, "Hey we don't like you so we're going to reject your block and let someone else mine hte current longest chain." – Dave Dec 31 '17 at 23:04
  • 2
    There is no direct incentive. Nodes could arbitrarily reject blocks, but it's not possible to know their point of origin with any certainty. A node couldn't reliable keep rejecting a single miners blocks. – Matthew Charles Stannard Dec 31 '17 at 23:10
  • There is a lot of risk to rejecting the longest chain. If you decide to reject the most recent block and try to mine your own version of it, there is no guarantee that the network will choose your block over the first one. It is more likely that the first one will be chosen because nodes will only accept the first block they see at a given block height. So there's risk there that you are just wasting energy on a block that won't be accepted and thus you don't get paid. – Andrew Chow Jan 1 '18 at 18:55
  • 1
    @Dave Bitcoin primarily works on a first come first serve basis. Of course there are exceptions to that, but generally the first thing that a node receives is what it accepts as true. In the case of blocks, this is overridden by the most work chain rule, but until that happens, it sticks with the first block it sees. There is no guarantee that that becomes part of the most work chain, and if it does not, then it will switch to the competing block at that height that is part of the most work chain. It is part of the software and has been since Bitcoin's creation. – Andrew Chow Jan 2 '18 at 3:04
  • 1
    I'm curious if there's any game theoretic explanation for this. E.g. would we reach a nash equilibrium if everybody accepts proper blocks mined by other miners. – Bitswazsky Jan 9 '18 at 7:58
3

it would have to be a coordinated effort between over 50% of miners, known colloquially as a 51% attack. then they could reject any blocks not their own. otherwise Matthew Stannard's answer applies.

  • Correct me if I'm wrong, but the 51% attack means that one entity controls 51% of the mining power and could therefore reject an honest mined block until they come up with it on their own. But I'm asking If someone controlled 25% of the mining power and someone else controlled 26%, could those two people get together and decide to reject an honest-mined block on teh current longest chain? – Dave Dec 31 '17 at 23:06
  • 1
    since 25+26=51, yes. – jcomeau_ictx Jan 1 '18 at 0:29
  • 2
    @Dave: It's math. It doesn't care about the difference between people, organizations, and temporary alliances to screw over one miner. They're all mathematically equivalent cases. – Kevin Jan 1 '18 at 0:32
3

The thing to remember here is that a Bitcoin is valid if people think it is valid (i.e. is willing to accept it as payment). When you mine a block, you get coins, no matter where the block is in the blockchain (even if you fork it into a block-tree). However, these coins you just minted are only valuable to people who think they are valuable. Bitcoin has a general rule that one should consider the longest blockchain (or, more precisely, the highest difficulty blockchain) to be the best.

If you tried to fork the blockchain by mining your own block out of the middle of the chain, rather than the end, you would mine coins, but find it hard to actually spend them. Few people (if any) would be willing to accept your coins as payment because there is a much longer blockchain out there (the main block chain), so it is highly unlikely that your coins will be recognized as useful tender.

Added to this, the proof of work for bitcoin does not benefit in any way from partial work. If you are 99.9999999999% of the way to mining a block and someone announces a block before you get there, it is still in your best interest to start mining off of their block immediately, because there's 0 advantage to continuing to mine your old block, and plenty of disadvantages. In fact, you don't even know how close you are to mining a block, due to the randomness of the process.

(At least, this is true assuming all blocks are worth the same. If, for some reason, one individual transaction had some massive transaction fee on it (say, 1000BTC), and someone else just nabbed it, it might be worth trying to finish mining the block yourself and fight them for that block. You would, however, be fighting an uphill battle since they announced it first. But those are edge cases)

  • "If you are 99.9999999999% of the way to mining a block" That's confusing phrasing. Do you mean "You have a hash with 40 bits matching the target"? Given that partial work doesn't count, after each hash you're either done or no closer than you started (well, technically you've eliminated one possibility out of 2^whatever). So there's no such thing as "99.9999999999%" done. – Acccumulation Jan 1 '18 at 17:14
  • 2
    @Acccumulation You're right. I'm not sure if there's a clean way of saying what I wanted to say there. The idea I was going towards was if you had an oracle that could tell the future, and they said you would have to do 40,000,000,000,000 hashes to mine this block (i.e. your 40 trillionth one was the lucky one), and you were at 39,999,999,999,998 when someone else posted their block, it's still more effective to abandon the block you thought you were mining. – Cort Ammon - Reinstate Monica Jan 1 '18 at 17:43
  • @CortAmmon Err, why would it still be more effective to abandon if you know you're only 2 hashes away from posting your own block? What if this Oracle also told you, you would be one of the first few nodes to receive your competitors block? – Ash Aug 14 '18 at 1:11
  • @Ash True. The issue is that, when you receive a block, that's a good indicator that others have received it and are working on the next block in that chain as well. If you had a way to get others to work on your block (such as knowing that your competetor's block was not widely distributed, and you can distribute yours "better"), then there would be a balance between continuing and abandoning, and my extreme numbers would probably be less than ideal. – Cort Ammon - Reinstate Monica Aug 14 '18 at 1:18
3

The (partly social, partly technical) rule is that the longest branch of the blockchain is the one that counts as the Bitcoin blockchain.

If your newly mined block is the highest-numbered valid block in existence, other miners will have an interest in mining on top of that, because that gives them a chance to reach an even higher number, and thus minimizes the risk that the next block they mine will end up being and abandoned branch.

If you and someone else mine a block with the same number before either of you hears of the other's discovery, there's no guarantee about which of them people will try to mine ahead from. (This is your incentive to keep yourself appraised of new blocks being discovered). But as soon as someone finds a block the builds upon either your block or the other guy's, that will now be the longest existing branch and everyone will flock towards that for their further work.

Most of the time mining block n+1 carries exactly the same reward as block n, so there's no reason not to be working from the best known chain head. Just around the time when the reward decreases, there may be some shuffling to get into the last higher-reward block, but as soon as there are a few of the last-higher-reward block number floating around, it becomes a better bet to mine for a higher number (and therefore better chance of staying in the chain).

1

The rule non-miners follow is that the longest chain wins. Miners need their blocks to be accepted by non-miners because it's non-miners (like exchanges and wallet providers) that decide which bitcoins have actual value.

A miner who mines after your block will have the longest chain if he finds a block. A miner who ignores your block has to mine a block just to tie the longest chain and then mine another block to have the longest chain. The odds of him being able to mine two blocks before anyone else finds a block after your block are very, very low unless he controls (or conspires with) a very high proportion of mining power.

So if he wants to get paid if he mines a block, he has a very strong incentive to mine after yours.

  • Hi, you say, "The odds of him being able to mine two blocks before anyone else finds a block after your block are very, very low" but in the comments to Cort's answer, the point is made you don't know how close you are to mining a block, so couldn't someone luck out and just happen to find those nonce's that result in two consecutive blocks being mined? What formula dictatse these odds you speak of? – Dave Jan 2 '18 at 2:51
  • @Dave Someone could luck out in that way, but they have no way to know that they will. So it would make no sense for them to take the risk that they won't. – David Schwartz Jan 2 '18 at 19:13
0

People work on the longest chain because they expect other people to work on the longer chain. If there was a general sentiment of "We should ignore Dave's blocks", then miners would indeed avoid a blockchain with your blocks in it, because they expect others to not validate any blocks they mine on that chain. Otherwise, they would be mining a block that they have no reason to expect would be accepted. And even if there were some anti-Dave conspiracy, this would be counterproductive because the value of bitcoin lies in its perception of security. Gaming the system would decrease the legitimacy of bitcoin and therefore make the bitcoins they just mined less valuable. If a consortium of 51% of the mining power were to take over bitcoin, why would anyone not in that consortium want to buy bitcoin?

As for the decreasing reward, that really only applies to one block per halving, and halving are rare; there's only been two so far.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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