Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: bbc.reporter on May 09, 2023, 04:20:53 AM



Title: A chain fork on block height 788686?
Post by: bbc.reporter on May 09, 2023, 04:20:53 AM
This was shared by @Wublockchain's account on Twitter. It claims of a double spend. Is this fud?

According to ForkMonitor, a chain fork with a length of 2 occurred at block height 788686 of the Bitcoin network. In the longest chain, 13 transactions involving nearly 10 BTC have been double spent.

https://forkmonitor.info/stale/788686


Source https://twitter.com/wublockchain/status/1655457267159027713



In any case, how can we verify if there was really a double spend here? Everything looks okay in mempool.space block explorer and cryptonews media has not reported anything. Did @Wublockchain mean would have been nearly double spent instead of have been double spent?

It appears someone wants bitcoin to dump. The skeptical me thinks this person behind the @Wublockchain account might be short selling hehehehe.


Title: Re: A chain fork on block height 788686?
Post by: pooya87 on May 09, 2023, 05:06:13 AM
Read this topic (https://bitcointalk.org/index.php?topic=5451915.0) it seems to be claiming that there were no double spends but failed attempts at replacing blocks. In other words they were never part of the chain. In other words there was never a fork, chain split or double spend to begin with.

In any case, how can we verify if there was really a double spend here?
If we have the stale block, it would be trivial to check whether there was a double spend and how.
All it takes is to go through all the "inputs" of all the transactions in the stale block(s) and then find each and every one of them in the replacing blocks (in the actual chain) and see if the "outputs" are still the same or are similar.

pseudocode
Code:
int max = staleBlock.TransactionList.Count - 1;
for (int i = 1 to max)
  if (chain.contains(staleBlock.TransactionList[i].TransactionHash)
     is_not_double_spent
  else
    for (int j = 0 to staleBlock.TransactionList[i].Inputs.Count)
        transaction newTx = chain.FindTxContaining(staleBlock.TransactionList[i].Inputs)
        if (newTx.Outputs is similar to staleBlock.TransactionList[i].Outputs
          is_not_double_spent
        else
          is_double_spent