1

This Android application for Bitcoin wallet, claims offline payment as a feature. It says,

When you're offline, you can still pay via Bluetooth.

A payment is concluded only when the transaction is broadcast to the network and confirmations are made for the transaction in a certain block as mined. So, how does one "pay" via Bluetooth?

3

You can simply send the signed transaction to the other entity (e.g. via Bluetooth) who then can send it to the Bitcoin network. The transaction doesn't need to be sent to the Bitcoin network by you, it just needs to somehow get to a miner to be included in a block. Even if you print it out, send someone a letter via snail mail, they type it in, and send it to the Bitcoin network, it'll still work.

  • So, the transaction can be broadcast either by sender or receiver of a transaction? Is this because receiver can't spoof the transaction as the private keys are secure with the sender? – cogitoergosum Jan 28 '17 at 1:59
  • It can be broadcast by anyone who by any means got hold of it. Some people seem to have the notion that a transaction is something that's secretly transmitted through the network. It's not. Everyone can read it once it's broadcast. A transaction doesn't say: "Here is my password, please send those funds I have access to with this password to those addresses and be so kind to not send them to yourself." That wouldn't work. People would steel your money. Instead – through the magic of cryptography – a transaction only allows with your funds to happen, exactly what you specified in it. – UTF-8 Jan 28 '17 at 2:22
  • I know that, the transaction is not transmitted securely. I was referring to fact that, a transaction can be created by the owner of the private keys only; it is a different matter how the ownership was gained (genuine, malevolent, etc.). – cogitoergosum Jan 28 '17 at 2:36
  • Consider this scenario. Suppose the transaction is persisted on both the sender's and receiver's devices. Once the transaction is sent to the receiver device via Bluetooth, then it is possible that both the sender and receiver come online at different times without the other party's knowledge. I would think that, the later transaction would be rejected because that would mean double spending of UTXO. Correct? – cogitoergosum Jan 28 '17 at 2:40
  • 1
    Every full node typically has several peers. Transactions go around the network and after validating one, a node sends the transaction to its peers it didn't receive the transaction from, except if it already sent this transaction to them in the past. This is necessary because otherwise, a single transaction would clog the entire network as it would multiply until it existed trillions of times. Therefore, if you send one a second time, it's just ignored. – UTF-8 Jan 28 '17 at 14:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.