deleted 485 characters in body
Source Link
Luca Matteis
  • 5.1k
  • 16
  • 23

DoubleEdit

You could practically open two separate bitcoin clients (such as MultiBit and Bitcoin-spending is a core issue of a decentralized payment networkQT). Unfortunately broadcasting transactions isn't enough to keepPrepare a consensus of the state oftransaction that is using the networksame input. Even if, as you say, transactions reach payees immediately, there's still that tiny amount of timeAs for a dishonest user to broadcast a double-spend and effectively get their money back. A dishonest person could also have a multitude of bitcoin clients and computers in different geographical locations working to propagateoutput one would use the payee's address, while the other client would use your address (you're double-spend spending right after the service was bought?).

This problem is fixed withAt this point you'd just have to send the proof-of-work (aka mining). The state oftransactions at the entire network is kept bysame time and hope your payee has gotten the blockchain where new blockscorrect transaction instead of transactions are added every 10 minutesthe double spend. When blocks are added on top ofI doubt there's a client that automates this procedure.

You could also make this happen with a higher success rate if you send the block where yourvalid transaction was putdirectly to the payee's client, while you send the harder it becomes for someone to double-spend it, as it would require them to redo all the work fromnode of a pool. This would increase the chances that your double spend will actually make it inside a block untilbefore the latest blockother.

So for someoneOf course to actually try a double-spend theydo this would need access to a quite large amount of computational power. And even if they were ablerequire you to find a single block, most payees will wait at least for two confirmationsget your hands wet with lower level bitcoin clients such as (two blocks)sx or more,directly bitcoind. Actually I'm afraid you'd have to program this functionality yourself studying the protocol and making it extremely unlikely for someonesure you know how to accomplish a double-spendbroadcast to specific nodes instead of the entire network.

Double-spending is a core issue of a decentralized payment network. Unfortunately broadcasting transactions isn't enough to keep a consensus of the state of the network. Even if, as you say, transactions reach payees immediately, there's still that tiny amount of time for a dishonest user to broadcast a double-spend and effectively get their money back. A dishonest person could also have a multitude of bitcoin clients and computers in different geographical locations working to propagate the double-spend right after the service was bought.

This problem is fixed with the proof-of-work (aka mining). The state of the entire network is kept by the blockchain where new blocks of transactions are added every 10 minutes. When blocks are added on top of the block where your transaction was put, the harder it becomes for someone to double-spend it, as it would require them to redo all the work from that block until the latest block.

So for someone to actually try a double-spend they would need access to a quite large amount of computational power. And even if they were able to find a single block, most payees will wait at least for two confirmations (two blocks) or more, making it extremely unlikely for someone to accomplish a double-spend.

Edit

You could practically open two separate bitcoin clients (such as MultiBit and Bitcoin-QT). Prepare a transaction that is using the same input. As for output one would use the payee's address, while the other client would use your address (you're double spending right?).

At this point you'd just have to send the transactions at the same time and hope your payee has gotten the correct transaction instead of the double spend. I doubt there's a client that automates this procedure.

You could also make this happen with a higher success rate if you send the valid transaction directly to the payee's client, while you send the double-spend to the node of a pool. This would increase the chances that your double spend will actually make it inside a block before the other.

Of course to do this would require you to get your hands wet with lower level bitcoin clients such as sx or directly bitcoind. Actually I'm afraid you'd have to program this functionality yourself studying the protocol and making sure you know how to broadcast to specific nodes instead of the entire network.

deleted 1 characters in body
Source Link
Luca Matteis
  • 5.1k
  • 16
  • 23

Double-spending is a core issue of a decentralized payment network. Unfortunately broadcasting transactions isn't enough to keep a consensus of the state of the network. Even if, as you say, transactions reach senderspayees immediately, there's still that tiny amount of time for a dishonest user to broadcast a double-spend and effectively get their money back. A dishonest person could also have a multitude of bitcoin clients and computers in different geographical locations working to propagate the double-spend right after the service was bought.

This problem is fixed with the proof-of-work (aka mining). The state of the entire network is kept by the blockchain where new blocks of transactions are added every 10 minutes. When blocks are added on top of the block where your transaction was put, the harder it becomes for someone to double-spend it, as it would require them to redo all the work from that block until the latest block.

So for someone to actually try a double-spend they would need access to a quite large amount of computational power. And even if they were able to find a single block, most payees will wait at least for two confirmations (two blocks) or more, making it extremely unlikely for someone to accomplish a double-spend.

Double-spending is a core issue of a decentralized payment network. Unfortunately broadcasting transactions isn't enough to keep a consensus of the state of the network. Even if, as you say, transactions reach senders immediately, there's still that tiny amount of time for a dishonest user to broadcast a double-spend and effectively get their money back. A dishonest person could also have a multitude of bitcoin clients and computers in different geographical locations working to propagate the double-spend right after the service was bought.

This problem is fixed with the proof-of-work (aka mining). The state of the entire network is kept by the blockchain where new blocks of transactions are added every 10 minutes. When blocks are added on top of the block where your transaction was put, the harder it becomes for someone to double-spend it, as it would require them to redo all the work from that block until the latest block.

So for someone to actually try a double-spend they would need access to a quite large amount of computational power. And even if they were able to find a single block, most payees will wait at least for two confirmations (two blocks) or more, making it extremely unlikely for someone to accomplish a double-spend.

Double-spending is a core issue of a decentralized payment network. Unfortunately broadcasting transactions isn't enough to keep a consensus of the state of the network. Even if, as you say, transactions reach payees immediately, there's still that tiny amount of time for a dishonest user to broadcast a double-spend and effectively get their money back. A dishonest person could also have a multitude of bitcoin clients and computers in different geographical locations working to propagate the double-spend right after the service was bought.

This problem is fixed with the proof-of-work (aka mining). The state of the entire network is kept by the blockchain where new blocks of transactions are added every 10 minutes. When blocks are added on top of the block where your transaction was put, the harder it becomes for someone to double-spend it, as it would require them to redo all the work from that block until the latest block.

So for someone to actually try a double-spend they would need access to a quite large amount of computational power. And even if they were able to find a single block, most payees will wait at least for two confirmations (two blocks) or more, making it extremely unlikely for someone to accomplish a double-spend.

added 317 characters in body
Source Link
Luca Matteis
  • 5.1k
  • 16
  • 23

Double-spending is a core issue of a decentralized payment network. Unfortunately broadcasting transactions isn't enough to keep a consensus of the state of the network. Even if, as you say, transactions reach senders immediately, there's still that tiny amount of time for a dishonest user to broadcast a double-spend and effectively get their money back. A dishonest person could also have a multitude of bitcoin clients and computers in different geographical locations working to propagate the double-spend right after the service was bought.

This problem is fixed with the proof-of-work (aka mining). The state of the entire network is kept by the blockchain where new blocks of transactions are added every 10 minutes. When blocks are added on top of the block where your transaction was put, the harder it becomes for someone to double-spend it, as it would require them to redo all the work from that block until the latest block.

So for someone to actually try a double-spend they would need access to a quite large amount of computational power. And even if they were able to find a single block, most payees will wait at least for two confirmations (two blocks) or more, making it extremely unlikely for someone to accomplish a double-spend.

Double-spending is a core issue of a decentralized payment network. Unfortunately broadcasting transactions isn't enough to keep a consensus of the state of the network. Even if, as you say, transactions reach senders immediately, there's still that tiny amount of time for a dishonest user to broadcast a double-spend and effectively get their money back. A dishonest person could also have a multitude of bitcoin clients and computers in different geographical locations working to propagate the double-spend right after the service was bought.

This problem is fixed with the proof-of-work (aka mining). The state of the entire network is kept by the blockchain where new blocks of transactions are added every 10 minutes. When blocks are added on top of the block where your transaction was put, the harder it becomes for someone to double-spend it, as it would require them to redo all the work from that block until the latest block.

Double-spending is a core issue of a decentralized payment network. Unfortunately broadcasting transactions isn't enough to keep a consensus of the state of the network. Even if, as you say, transactions reach senders immediately, there's still that tiny amount of time for a dishonest user to broadcast a double-spend and effectively get their money back. A dishonest person could also have a multitude of bitcoin clients and computers in different geographical locations working to propagate the double-spend right after the service was bought.

This problem is fixed with the proof-of-work (aka mining). The state of the entire network is kept by the blockchain where new blocks of transactions are added every 10 minutes. When blocks are added on top of the block where your transaction was put, the harder it becomes for someone to double-spend it, as it would require them to redo all the work from that block until the latest block.

So for someone to actually try a double-spend they would need access to a quite large amount of computational power. And even if they were able to find a single block, most payees will wait at least for two confirmations (two blocks) or more, making it extremely unlikely for someone to accomplish a double-spend.

Source Link
Luca Matteis
  • 5.1k
  • 16
  • 23
Loading