9

There are multiple definitions of the term "double spending" at play here. First, there is the actual definition of double spending: to spend the same money multiple times. A simple example of this is the coin on a string in a vending machine. You put tie a string to a coin, when you put the coin in the machine, it thinks you paid, you get whatever you want ...


6

Occasionally, minor alternate chains emerge if multiple blocks are found for a given blockheight. Usually, these alternate chains only last for a single blocked, and are quickly dropped once another block has been found, allowing one chain to become longer (and thus have more work). More rarely, these chains might last for a couple of blocks. Block 525890 ...


4

Then the blochain of the "hacker" will have 1 block more than the others, thus it should be, at least for a few minutes, the "valid" blockchain This is incorrect. A block that contains an invalid transaction is invalid, period. The network's rule is that the longest(*) valid chain is the one to be treated as correct. A chain with any invalid blocks in it ...


3

A will be kicked out of the mempool when that block is received, and getrawtransaction will subsequently fail for it.


3

Yes, both scenarios are possible. The validity of a block is determined solely by its contents, not by when it is broadcast or received, so the attacker's longer chain is equally valid whether they broadcast it as they go, or all at once. (There is an exception to this principle on testnet because of the 20-minute rule, but that's not relevant here.)


3

When a transaction is created by your node and relayed to full nodes, they will check to ensure that the transaction is valid (no double spending is one condition amongst them). Full node maintains a set of UTXO list in the chainstate folder and is aggressively cached in memory. If a transaction is valid, the full nodes will remove the UTXOs that are ...


3

Replacing an unconfirmed transaction with another one isn't really double spending, as Chytrik mentioned. Several of the older wallets do support dropping unconfirmed txs, freeing up the inputs another transaction. In my experience, Bitcoin Core and Electrum tend to be the best candidates for such actions. Newer, more consumer facing wallets, such as ...


2

Bitcoin is a gossip network and relays transaction or blocks on a best effort basis. Hence you cannot determine the probability of one transaction being seen by the network versus the other. Now in terms of mining the transactions in a block there are a couple of cases that needs to be considered. For assumption sake let us assume that we are considering a ...


2

That has to be a parsing error from blockchain.com side. It would be indeed a double-spend and therefore block 525891 would have been invalid. If you check other explorers (e.g. blockstream or blockcypher) you'll see how they had only included it in block 525891. Personally I find blockchain.info's explorer not to be too reliable.


2

Everything sent over the Bitcoin network is public so you have nothing to worry if your ISP monitors your connection (only related to bitcoin transactions; your privacy is compromised in other cases). The only thing which is private are your keys, but that is not sent over the network. Now, if your ISP controls everything that moves through its servers, it ...


2

First, a quick overview of what happens when you submit a transaction to the network: Each node that hears about your transaction will check to see if it is valid according to their view of the network. If it is valid, the node may broadcast the transaction to its peers, and may add the transaction to its local mempool. If it is invalid, the transaction ...


2

If two transactions spend the same coin (utxo) only one is allowed in each node's mempool. That may not be the tx that gets actually confirmed by a miner though and inserted into a block. In that case, the confirmed transaction "evicts" the double-spend from the mempool. It is possible that two competing miners each mine different blocks at the same height ...


2

I heard that the recommended waiting confirmation time for a bitcoin transaction is 6 blocks/ 1 hour. This is the recommendation to be extremely sure that a payment is included in the longest valid chain. This question has more information about that recommendation. Note that even in a non-malicious setting, sometimes two miners will find a block at the ...


2

In Bitcoin, it is recommended that big amount of transactions wait for 6 confirmations and smaller amounts wait for 3 confirmations. When a seller uses bitcoins to sell he must never deliver the product with an unconfirmed tx, because since it is in the mempool it can be modified. Once a new confirmation arrives the safer it will be to deliver the product. ...


1

Each node in the Bitcoin network tracks every single piece of bitcoin. This body is called the "Unspent Transaction Output Set" or UTXO Set for short. Every UTXO is uniquely identifiable and can only be spent once. If two transactions try to spend the same UTXO, only one of the two transactions can become part of the best chain. Including both transactions ...


1

A transaction's input parameter has to include the outpoint (txid and vout) of the transaction from which you have got the bitcoins. These outpoints helps nodes verify that the transaction is consuming inputs that have not been spent before. Full nodes maintain a UTXO set of all such outpoints so that they can easily verify the transaction when they get one. ...


1

If a malicious internet service provider completely controls a user's connection, can it launch a double-spend attack against the user? No. The transactions that users create all require a digital signature. Creating a valid digital signature requires the private key for the public key that is specified in the transaction. Because that public key is fixed (...


Only top voted, non community-wiki answers of a minimum length are eligible