Hacker News new | ask | show | jobs
by jakopo87 1712 days ago
Transactions are confirmed when they are at least 6 blocks deep to avoid double spending.

https://en.bitcoin.it/wiki/Confirmation

1 comments

Confirmed by who? Coinbase currently requires only 3 confirmations[0]. Binance requires only 1 confirmation for deposits and 2 for withdraw[1].

Actually. Was there a successful double spend in Bitcoin ever?

I mean, this kind of attack can't be done in secret, right? Such attack wold immediately make the news, because the blockchain is public. And to pull it off you need a substantial % of the mining capacity, so only a handful entities in world can coordinate such high hashrate attack.

It just doesn't seem very likely, and specially not if you're just reversing a low value retail purchase. I'd wager the rate of counterfeit money you receive when dealing with cash is way higher.

[0] https://help.coinbase.com/en/coinbase/getting-started/crypto... "Coinbase requires 3 confirmations to consider a bitcoin transaction final."

[1] https://finance.yahoo.com/news/binance-cuts-time-needed-btc-...

It's not about double spend. It's entirely possible two miners successfully mine a block simultaneously but one of the miners didn't include your transaction in the block they mined. Now there's two competing blockchains and every miner chooses which one is the truth... longest blockchain wins, so whichever gets the most participants is likely to be the final blockchain

Now your transaction may not be included until a future block or be lost forever, though I'm not certain what it takes to be dropped from the mempool.

> It's not about double spend.

The wait for confirmation is exactly to avoid double spend (but not only), as the Bitcoin wiki says[0].

> It's entirely possible two miners successfully mine a block simultaneously but one of the miners didn't include your transaction in the block they mined.

The example you make would work with just 1 block of confirmation, just keep try to include the transaction into the next block.

> longest blockchain wins, so whichever gets the most participants is likely to be the final blockchain

It's more about hashrate power rather than number of participants, however the longest blockchain of confirmed blocks wins, unconfirmed blocks may be invalidated and transactions pushed to the next ones or dropped.

> I'm not certain what it takes to be dropped from the mempool.

After 2 weeks[1] the transaction is considered invalid and should get dropped from the mempool (not all nodes use the same software version or they may run a fork with different settings)

[0] https://en.bitcoin.it/wiki/Irreversible_Transactions

[1] https://github.com/bitcoin/bitcoin/pull/9312

EDIT: grammar

You make good points I wasn't considering when I wrote that, and thanks for the mempool expiration info
I quote from the link [1] you posted:

> To be clear, the respective blockchains will confirm blocks as normal and are not controlled by Binance. For the faster service, the exchange is accepting a reduced number of confirmations as sufficient to alter wallet balances within its own systems.

Binance and Coinbase on their own nodes can choose a lower number of blocks for confirmation but the network may reject it later, if that's the case they will have to put the transaction in another block to be mined.