Homework on Stale Blocks

  1. What happens in the bitcoin network when two miners solve a block at the same time?
    Both blocks are submitted into chain and this creates a split chain where both blocks get mined. The chain in the split network that gets the next block added is then taken as the preferred chain and the other block get dropped into the mem-pool (orphan block)

  2. What is a stale block?
    A block that is orphaned and resubmitted into the mem-pool

  3. How do stale blocks occur?
    If there is block created at the same time and both are submitted to the chain.

  4. Why is it important to wait for more than one block to be confirmed when sending or receiving a transaction?
    To make sure that there is no orphan/dropped block in the chain.

1 Like
  1. What happens in the bitcoin network when two miners solve a block at the same time?
    When 2 blocks are mined at the same time, the blockchain enters in a temporary state of being “forked” meaning there are currently 2 different versions of the blockchain

  2. What is a stale block?
    A stale block, also referred to as an orphaned block is a block which has not been accepted by the blockchain and therefore dropped. All the transactions within this block are sent to the mempool. The other block with a better Proof of Work will be added to the blockchain instead.

  3. How do stale blocks occur?
    Stale blocks occur when miners by competing and probability are adding blocks to the blockchain almost simultaneously. The blockchain is then forked temporarily because the information is being propagated globally to all different nodes.

  4. Why is it important to wait for more than one block to be confirmed when sending or receiving a transaction?
    Because the network would else run into the same issue and would constantly struggle to keep up with new blocks being added.10 minutes per block and 6 confirmations is therefore considered a rule of thumb as a trade-off between network security and network usability.

1 Like

Hi Felipe

The way I phrased my original answer is confusing. :frowning:
My point is that two different miners (say one in Australia and one in US) append their new blocks to their own local version of the chain. The chains they append to could contain different blocks because propagation across all nodes is not instantaneous (multiple versions of the blockchain exist at any given time).
I hope my revised answer is more clear.

2 Likes

Not exactly. Miners think they are mining on the right chain and continue to do so. More blocks than one can be added to these chains (although the probability of again two miners mining a block on those separate chains is significantly lower). Eventually one chain will win and the second one will be dropped.

So to say the miners with different blocks are competing which chain will become the main chain and which one will be dropped. :slight_smile:

While this is true, the thing that concerns the user is that his transaction is not part of a stale block :slight_smile:

1 Like

Thank you Alko89 for your help!

So, according to you when Miners will realize that the block they are mining is not the right one?

1 Like

They will know when a block with more PoW will eventually propagate to them. At that time they will stop mining on their current chain (their source of truth) and start mining a new block on the winning chain (that will be a new source of truth to them).
Kind of like figuring out they were wrong all this time and instead of stubbornly continuing their work on their current chain, they would accept it and start anew :slight_smile:

2 Likes

I’m not sure what you mean by that. But the reason we wait a few confirmations is because of the possibility of our transaction being part of a stale block. :slight_smile:

  1. both blocks might be added to the blockchain so there are two ends.
  2. The one block that has to be dropped. The transactions are sent to mempool.
  3. In the end only one (that with more added blocks at higher difficulty) will build the chain.The other block will be dropped and is called stale block or Orphand.
  4. If unfortunately the transaction is included in a stale block, the transaction will be unvalidated and sent back to the mempool.
1 Like

How do more confirmations help with this issue?

1 Like

After about 6 confirmations it is very unlikely that the transaction will be dropped and the transaction can be seen as valid. (can be important in business where e.g. goods must not be forwarded before the transaction is validated)

1 Like

That’s it. Great job with the explanation and the provided example. :muscle:

1 Like
  1. Two blocks are added effectively creating two versions of the blockchain that begin to propagate the network. When another miner picks up one of these, that blockchain now becomes the longer chain or chain with most POW which causes the other to be ignored or thrown away.
  2. A block that gets ignored/discarded because a longer/more POW chain was propagated through the network
  3. When a block is confirmed and added to the network but later discarded because a longer/more POW chain has been confirmed
  4. You need several confirmations to know that your tx will live in a block that does not become stale and actually added to the blockchain.
1 Like

When two miners solve a block at the same time, they both get accepted but not confirmed by the nodes nearest to them. The block with the most work will be added to the blockchain while the other one will be rejected and its transactions will be sent to the mempool.

A stale block is a block that successfully guessed the nonce and had all the transactions confirmed but eventually was rejected because a block that also had everything was created at the same time and who’s chain had more proof of work.

Same as above.

It is important to wait for more than one block to be confirmed when sending or receiving a transaction because there may be another block that’s accepted instead of the one your transaction was in.

1 Like
  1. When two miners solve a block at the same time two versions of the blockchain are created. However, only one will ultimately be accepted by the bitcoin network.

  2. A stale block is a block that has been dropped from the blockchain. The transactions it contains will be returned to the mempool.

  3. Stale blocks occur when there are competing versions of the blockchain. The next miner to discover a block will select one of the previous two blocks. The block that is not selected becomes a stale block because the network always chooses the longest version of the blockchain with the most PoW.

  4. It is important to wait for more than one block to be confirmed when sending or receiving a transaction because if two blocks were mined simultaneously then the block containing your transaction might become a stale block. If this happens then your transaction will be returned to the mempool.

1 Like

He updates the chain that he originally got. When 2 miners find the block at the same time, one set of nodes will get one truth and the other one the second truth. Let’s identify them as chain A and chain B. If the new block gets produced by the chain B then that one will be accepted and the last block on the chain A will become stale and vice versa. Just a bit of more details, all in all your answers are pretty good. :muscle:

1 Like

Thank you for clarifying! I was a bit confused on that and your explanation helped.

1 Like
  1. the BC gets split up, there are now 2 fully valid newly generated blocks, but with a different content
    2/3. after a split has happened, it depends on which of the two (or more) valid blocks get linked to the next block first. The resulting longer BC will be the valid one to be continued, while the other one gets abandoned - a “Stale Block” - and the TXs on this block are returned to the mempool.
  2. as splits can happen, better to wait for more confirmations of following blocks to be sure, that yourT X is totally confirmed (by no means be returned to mempool to start a new round) To avoid this to happen too frequently (which might jeopardise security of the BC) the blocktime is set by about 10 Min. It is done by either increasing or decreasing the difficulty for miners, by higher or lower target to be guessed to get the NONCE. It depends on how many miners are active at a time working in the BC, the more miners are out there, the more difficult it becomes…
1 Like

Thanks you, I understand

Answers:

  1. When the miners propagating this block - the situation in which half of the block has one version of truth and half has another version of truth but all have nonces all completely valid.
  2. Stale block is a block for which an ealier confirmation has been found and was accepted, considered invalid.
  3. New block produce too quickly. No longer part of the current best blockchain because they overriden by longer chain.
  4. The miners get the higher fee. Whoever get that transaction get to write the next page more and more blocks added. The confirmation will grow because every set of blocks on top of blocks makes it harder to remove at least 6 blocks to be fully confirmed.
1 Like