Updates & Forks - Discussion

@filip I have a couple questions in regards to hard forks:

  • What happens to the UTXOs form the original chain? They can’t exist on both chains, or they would be getting double spent.
  • Does this mean at the time of the hard fork, all old UTXOs exist still on both forks, but represent different “coins”?
  • Presumably, in the case of BTC, holders would have had UTXOs (coins?) they are able to spend on both forks?
    Thanks in advance,
1 Like

If you are talking about hard forks that result in two different coins as was the case with Bitcoin cash, yes those that had coins on their addresses before the split could later spend these coins on both chains using their respective keys. :slight_smile:

2 Likes

Hi guys … I understand that you would normally have to wait until you have 5 o 6 blocks confirmed after your transcation block got confirmed to know its perpetually on the blockchain … but this would mean that it would take 50 to 60 minutes to know for sure that a transaction is valid and will not ever be dismissed. But normally when Im purchasing or selling bitcoins, the transaction takes about 10 minutes to arrive… is it possible that after that confirmation I got a different confirmation saying that the Tx didnt take place?? because of the “accidental fork” issue?

This is rare, but in case it does happen and your tx is not in both blocks it can go back to the mempool and one can use this and use the UTXO on another tx with higher fee thus ensuring it will get processed first and make your tx fail, not getting the money.
This is though a rare scenario that occurs less than once a year. If you send money on an exchange you will notice they don’t allow trading before it reaches a certain number of confirmations, just in case.

2 Likes

:+1: Thx, itis now understandable

Is there any reason a node doesn’t accept an update that is pushed on to the network? Or do all updates eventually get accepted by all nodes in the network in time?

It depends in wich way the updates are pushed. With a soft or hardfork. There is a lesson wich explains the difference. A softfork is a contraction of the ruleset, so older nodes still see it as valid. So you are not forced to update. In a Hardfork, Everyone needs to update. Those who don’t update will be on a forked (different) blockchain. And this Bitcoin became a different coin (with the same history till the block where the hardfork happened

2 Likes

Amazing stuff thank you

1 Like

Hello @filip, I am sure you have already answered this question…Dare I ask?..But how long do Hard and Soft forks generally take to become propagated through the network to the point where there is a consensus to the updates throughout the whole network?

Thanks…

What triggers the need for a soft or hard fork? Is it relative to the volume of activity ? Why , being a math generated program to begin with is it allowed in the first place.

These forks are usually have determined a specific block height at which they come into effect. At that point the new rules begin to take effect and the nodes that updated (or not) begin to accept them (or reject). :slight_smile:

1 Like

This completely depends on what either fork wants to achieve. But in any case its a software update of some sort like Segwit activation or block size increase.

1 Like

Thank you @Alko89, in the next lessons it was clearer. I appreciate your help. To be clear though, is there a possibility, in theory, where every node rejects the proposed update, and if so is this considered a soft fork, or would it still be a hard fork because of the obvious acceptance of the node that proposed the update?

Nodes don’t propose updates, either they are updated to the version that support the fork or they don’t. If no nodes update, the fork doesn’t occur.

2 Likes

@filip when you speak about waiting for 6 confirmations ( so 6 more blocks added to the same chain to confirm a transaction 100% ) Is this something the network automatically does ? If so why on some transactions performed do they only have 2 or 3 confirmations ?
Example … I send bitcoin to an exchange , I cannot access (Spend/Sell ) my bitcoin until the exchange has 2 confirmations on my transaction … why do they not wait for 6 confirmations, is that because of the 10 minutes per new block hash rate meaning I would then wait 1 hour for my transaction to be 100% confirmed .
So is it enough that they know the transaction is valid enough to be appended to the chain & other blocks to be written subsequently meaning the transaction will go ahead even though there may still be other versions of truth within the network that may alter when my transaction is written in a block and 100% confirmed on the chain ?

6 confirmations is a rule of thumb. You can send a transaction as soon as you receive it, but if its part of a stale chain, all these transactions will get dropped, leaving room for an attacker to double spend the funds.

Transactions are not 100% confirmed, theoretically miners could also mine the next block on both chains again at the same time and again and again… However the probability of this occurring get smaller and smaller with each subsequent block. By the time of 6 confirmations (or 5 blocks after the tx was first confirmed) there is still a chance the blockchain is forked, but the probability of this happen in practice is close to 0. :slight_smile:

2 Likes

Thank you for the explanation. I was curious .

If you created a hard fork in a blockchain but not all of the nodes adopt the new standard, does the block chain ignore them and their new chain?

Usually in case of hard forks like creating a new coin, at specific block height a new magic number (an identifier for a specific blockchain) is defined for the chain. So nodes will start rejecting blocks from the other chain since they would always be considered invalid for them. :slight_smile:

2 Likes

In the case of a hard fork making a previously invalid block valid, does that mean some attempted previously attempted transactions suddenly become valid?

Do they update the entire history of blockchain or is it only possible to go back 6 blocks?