← Back to context

Comment by palata

2 months ago

> I fail to see how withholding is profitable.

Because you keep ignoring the part where it is profitable :-).

> If A finds a second block between minute 1 and 2, then they win, but it would be the same if the didn't withhold their block.

Except that by withholding their block, they got a headstart so they are more likely to find the second block. So it's not the same.

And you keep ignoring the fact that they don't necessarily have to wait until someone else finds a competing block. Maybe a winning strategy is to always withhold the block for 5 seconds. If you slightly increase your likelihood to find the winning block, you increase your profit, and that's the whole point.

With the interesting consequence (and that's the game theory part) where if everybody starts withholding their block for 5 seconds, then it changes the winning strategy.

> Except that by withholding their block, they got a headstart so they are more likely to find the second block. So it's not the same.

Withholding their block (5s or whatever) doesn't make them more likely to find the second block. The probability of finding a block is always the same, given a hashrate.

They are the only ones mining on this particular chain, but that's not an advantage either. How mining on a hidden chain is an advantage?

On the other hand, withholding certainly makes them more likely to lose the reward of the block.

  • > They are the only ones mining on this particular chain, but that's not an advantage either. How mining on a hidden chain is an advantage?

    It's easier to see the argument if you have a head start. Imagine you've somehow created a private chain that's 10 blocks ahead of the public chain. You could publish that now and earn 10 blocks of reward, or you could continue mining until the lead diminishes to 0 blocks, earning the same 10 blocks of reward plus however many blocks you've mined in the meantime.

    If you have 50%+ε of the hash rate on the network, this argument would have you bully other miners out by almost always stranding their blocks, since in expectation you'll mine blocks faster than your competitors.

    The insight is that this same situation can happen probabilistically with a finite but non-majority fraction of the hash rate on the network. With 49% of the hash rate you'll still be able to build a private chain some fraction of the time, so waiting a little bit to see if this occurs might have positive expected value.

    • But to get 10 blocks ahead you have to withhold blocks before knowing you'll be ahead. If you don't get ahead, you'll likely lose the reward of the blocks you withheld.

      So, you have to risk a lot of rewards, and for what potential gain? If you win you get to discard some blocks of others. You don't get more rewards, you just make others earn less (and you push the difficulty down a bit).

      I can see how you get a chance to double spend, though. If you want to double spend a transaction with N confirmations, you've to be N+1 blocks ahead in your hidden chain, publish your first transaction, wait for N confirmations on the public chain, and you publish your chain that's still 1 block ahead (and includes your double spend transaction).

      Indeed, it's not "51% expensive", but it's still very expensive because of the rewards lost during the failed attempts before you get ahead enough. Actually, it might even be more expensive, because with 51% you're guaranteed to get ahead enough at some point, so you don't really risk your rewards (if you can maintain 51%).

      2 replies →

  • > The probability of finding a block is always the same, given a hashrate.

    I think you are missing something very basic here: the longer you compute, the higher the likelihood that you will find the hash before the others.

    The extreme case being that if you can try ALL the possibilities before the others can start, then you are guarantee to find the solution before them.

    • That's only mathematically true. The advantage is way too small to be relevant.

      Your advantage is having exhausted a fraction of the search space. But that fraction is tiny.

      You're trying to find a hash with a value below a certain threshold (simplified said, a hash starting with a certain amount of zeroes). You do this by trying random inputs to the hash function. Every input has the same probability of getting an output that is low enough in value. You are not advancing by having tried other inputs. It's practically equivalent to rolling multiple dices until enough of them show a one. Every roll has the same probability of succeeding regardless of the rolls before.

      4 replies →

  • the key to realize is that this strategy only makes sense if you have a considerable fraction of total hashrate. If you have 10% hashrate, delaying for 1 block period gives you a 10% chance of finding another block on top (that no one else can search for because you haven't published the first one).

    • But by withholding you also increase the risk that your first block will never end up in the main chain (if the remaining 90% find a block while you're withholding).

      And you would sill have 10% chance of mining another block if you don't withhold.

      What advantage does withholding give you?

      5 replies →