Pages:
Author

Topic: Someone please tell me this isn't how transactions always work.... (Read 4692 times)

hero member
Activity: 588
Merit: 500


Unfortunately, not solved. The bar has a separate address for the bill and bartender tips, something I do not have control over.



This is a situation the bar created for themselves. When you pay them in cash do you make 2 different payments, like if your bill is 22 dollars and you want to tip them 5 dollars do you hand them the 22 dollars and wait for them to put that in the register then hand them the 5 dollars, NO most people do not, you hand them the 27 dollars and tell them to keep the change they usually put it in a jar which at the end of the night is split between the workers. They are making you do their job. If it were me, (but I am an asshole) I simply would tell them no i will not pay the tip separately, I can either include your tipin this transaction and you document it, or I can just not tip you at all. How much do you want to bet they will say just include the tip in that transaction sir?

I will also bet the two addresses went to the same wallet just farther showing you, they are making you do their job. Its easier to look at the address at the end of the night and see how many tips came into that address and then distribute them that way rather than look and compare each transaction to see what the tip was. there are a lot of ways the bar can make that happen without inconviencing them or the customer, they just choose not to do thier job. BOTTOM LINE.
This situation was not caused by the bar, it was caused by the wallet software the OP was using. It is very well possible for someone to spend an unconfirmed input, it was just the software that was preventing it - the network would/should have accepted a 2nd transaction to the tip address.
legendary
Activity: 1582
Merit: 1019
011110000110110101110010
Why couldn't a mobile app be developed that allowed deposits to it that are confirmed and in the user control? He can send it to any address and it automatically is deducted from his balance and can not be spent again. Doesn't matter about the transaction lag time and confirms. The btc was in a secure wallet. It was confirmed on the deposit. Should be able to spend it instantly.

I am not a cryptocoder but this seems an easy thing to do to me.
newbie
Activity: 62
Merit: 0

Alright, if my recent experience at a bar paying with bitcoin is any indication of how bitcoin transactions work, then mass adoption is very unlikely. Someone please tell me if this is how transactions must work, or it's just a Hive wallet issue.

I was at a bar that accepts bitcoin and wanted to pay my bill with btc. My Hive wallet had about $60 USD worth of coin in it. My bill was $22. The bar has a receiving address for the bill and a separate address for tipping the bartenders. I sent my $22 worth of coin to the first address. Then I went to send a $6 tip to the bartender address and my wallet said that 'Some funds are unavailable. To send this transaction you'll need to wait for your pending transactions to be confirmed'. So I waited. And waited. It took 10 minutes of sitting there (with my friend wondering why in the hell I think paying with bitcoin is so great) before I could tip the bartender and leave.

I contacted Hive and they said it depends on unspent transaction outputs. So if I had an unspent output of $58, it used that to pay the bill and was waiting for the change to come back so there wasn't another available unspent output to pay a $6 tip.

If this is how bitcoin transactions have to work, then I completely overestimated the usability of bitcoin for everyday spending. If I can't pay a bill, then immediately pay a tip, then walk outside and pay a taxi driver because I'm not aware of the unspent output amounts in my wallet then I'll just go back to cash or card.

Someone tell me this isn't how it has to work.
It is how Bitcoin works.  You have pointed out a very real shortcoming though.  I'm not sure how this could be fixed aside from allowing transactions to be created based on unconfirmed funds, which runs a risk of accidental double-spends.
Your words is full of sense. He should get closer to Bitcoin system to understand how it's exactly works
legendary
Activity: 1722
Merit: 1000
Bitcoin = gold

Some alt coin = paper money 

This is my bet.  Fastcoin for eg 12 seconds lol.
legendary
Activity: 3948
Merit: 3191
Leave no FUD unchallenged
Unfortunately, not solved. The bar has a separate address for the bill and bartender tips, something I do not have control over.

It's possible they implemented that setup without realising it would cause problems.  While it's good that companies are rushing to adopt Bitcoin, it's not as great if they rush in so quickly that they set it up in such a way that makes it problematic for the customers to use.  If you end up going back there, just politely explain it to them that two transactions won't work in quick succession (unless the customer has two wallets handy, which many won't) and they'd be better off just having the one address for customers to use and they can divvy up the funds later.
hero member
Activity: 1008
Merit: 502


Unfortunately, not solved. The bar has a separate address for the bill and bartender tips, something I do not have control over.



This is a situation the bar created for themselves. When you pay them in cash do you make 2 different payments, like if your bill is 22 dollars and you want to tip them 5 dollars do you hand them the 22 dollars and wait for them to put that in the register then hand them the 5 dollars, NO most people do not, you hand them the 27 dollars and tell them to keep the change they usually put it in a jar which at the end of the night is split between the workers. They are making you do their job. If it were me, (but I am an asshole) I simply would tell them no i will not pay the tip separately, I can either include your tipin this transaction and you document it, or I can just not tip you at all. How much do you want to bet they will say just include the tip in that transaction sir?

I will also bet the two addresses went to the same wallet just farther showing you, they are making you do their job. Its easier to look at the address at the end of the night and see how many tips came into that address and then distribute them that way rather than look and compare each transaction to see what the tip was. there are a lot of ways the bar can make that happen without inconviencing them or the customer, they just choose not to do thier job. BOTTOM LINE.
legendary
Activity: 1204
Merit: 1002
A possible third party service could be envisioned:
A card, bought on airports and shopping centers, which has a public bitcoin address and a magstripe or chip or whatever is needed for the shop.
If you have to buy a stored value card, Bitcoin just gets in the way.
sr. member
Activity: 476
Merit: 250
Anyway you don't even need to wait for a confirm if your buying food or drinks or whatever under $500  if clerk confirmed miner fee paid and transaction appears on his side then it is most likely paid and your good to go.
As discussed earlier, until the malleability issue is resolved accepting unconfirmed transactions is too risky at present.

I am pretty sure coinbase and bitpay merchants accept smaller unconfirmed transactions so it seems , Coinbase/Bitpay  think the benefit outweighs the risk.

These coffee/beer/food 0-confirmed transactions have been happening for ages. Its just the large transactions people wait 10-30min if need be.
I think they show the payment as being received on the customer's end however would likely not credit the merchants accounts until after "x" confirmations. Also if the TX ends up not confirming they would likely advise the merchant as such and tell them not to deliver the product.
hero member
Activity: 793
Merit: 1026
Yes OP, that's how it works, but that's necessary for it to function.

The main problem is with your wallet.

It should warn you, but still let you, use an unconfirmed output as a new input, so that exactly your situation can be done with quickly.  I'm sure not you nor the place you were paying would care about the risk associated with unconfirmed payments for that amount.   Your wallet should also have let you pay multiple addresses in one tx, so that you could have just done it all at once.  And finally, the establishment should also give you the option of just paying everything to one address, and it keeps track of what's what, although it could still provide separate tipping addresses in addition.
hero member
Activity: 547
Merit: 531
First bits: 12good
Your problem is easily avoided by using coin control. That way, you can choose which coins to spend, how to combine them, and you will not be caught by surprise that you can't spend the change, because you will know exactly how much change there will be in each transaction, and where will it go.

Coin control is a feature, which currently only the original Bitcoin Core wallet has (as far as I know).

Armoury has coin control feature.

blockchain.info too

Anyway OP can alwaways send 22$ for the bill and 6 for tip in one tx, so no need to wait...
OR just spend the uncofrimed change.

For me this is not an issue and can be fixed by the software wallet you are using.
hero member
Activity: 588
Merit: 500
Anyway you don't even need to wait for a confirm if your buying food or drinks or whatever under $500  if clerk confirmed miner fee paid and transaction appears on his side then it is most likely paid and your good to go.
As discussed earlier, until the malleability issue is resolved accepting unconfirmed transactions is too risky at present.
This is not true. The malleability risk is on the sender, not the receiver, and this is only when the TX ID is solely used to determine if you have sent someone funds or not. If you instead rely on something like, say the sending, receiving addresses, the date, and the amount then the risk is not there. If you only send a small number of TXs per day then you could simply remember if you paid someone or not. 
legendary
Activity: 1652
Merit: 1016
Your problem is easily avoided by using coin control. That way, you can choose which coins to spend, how to combine them, and you will not be caught by surprise that you can't spend the change, because you will know exactly how much change there will be in each transaction, and where will it go.

Coin control is a feature, which currently only the original Bitcoin Core wallet has (as far as I know).

Armoury has coin control feature.
full member
Activity: 120
Merit: 100
Your problem is easily avoided by using coin control. That way, you can choose which coins to spend, how to combine them, and you will not be caught by surprise that you can't spend the change, because you will know exactly how much change there will be in each transaction, and where will it go.

Coin control is a feature, which currently only the original Bitcoin Core wallet has (as far as I know).
legendary
Activity: 4256
Merit: 1313
Now I'm confused.

You are confused because you are talking about two completely different things as if they are both the same thing.

Thing number 1: Accepting an unconfirmed transaction that is funded by confirmed outputs.

If someone sends you a transaction, and the transactions that the inputs come from are confirmed, then malleability doesn't affect you.  As long as the transaction is well propagated and includes an appropriate fee, it's a pretty small risk to accept it.  For small value payments, most merchants would consider this an acceptable risk (probably a lower merchant risk than shoplifting, chargebacks, and counterfeit bills).

Thing number 2: Spending the output from an unconfirmed transaction.

If you receive an unconfirmed transaction, and then try to spend those bitcoins that you just received before they have confirmed, you then have a problem with malleability.  The transaction ID of the unconfirmed transaction could change before it confirms, which would then make your transaction invalid.  While it is often reasonably safe to accept unconfirmed transactions, it is never very safe to spend those bitcoins until the transaction has confirmed.

Thank you for your response. I am talking about #2.

There is a nice detailed summary here if you want to read more:

https://bitcointalksearch.org/topic/what-the-average-user-needs-to-know-about-transaction-mutability-460944

As Danny says, #1 and #2 are different beasts. Transaction malleability alone isn't an issue unless you are relying solely on the tx id.  And it only becomes an issue if you combine it with attempting to spend those before they are confirmed.



legendary
Activity: 1652
Merit: 1016
Now I'm confused.

You are confused because you are talking about two completely different things as if they are both the same thing.

Thing number 1: Accepting an unconfirmed transaction that is funded by confirmed outputs.

If someone sends you a transaction, and the transactions that the inputs come from are confirmed, then malleability doesn't affect you.  As long as the transaction is well propagated and includes an appropriate fee, it's a pretty small risk to accept it.  For small value payments, most merchants would consider this an acceptable risk (probably a lower merchant risk than shoplifting, chargebacks, and counterfeit bills).

Thing number 2: Spending the output from an unconfirmed transaction.

If you receive an unconfirmed transaction, and then try to spend those bitcoins that you just received before they have confirmed, you then have a problem with malleability.  The transaction ID of the unconfirmed transaction could change before it confirms, which would then make your transaction invalid.  While it is often reasonably safe to accept unconfirmed transactions, it is never very safe to spend those bitcoins until the transaction has confirmed.

Thank you for your response. I am talking about #2.
legendary
Activity: 3472
Merit: 4801
Now I'm confused.

You are confused because you are talking about two completely different things as if they are both the same thing.

Thing number 1: Accepting an unconfirmed transaction that is funded by confirmed outputs.

If someone sends you a transaction, and the transactions that the inputs come from are confirmed, then malleability doesn't affect you.  As long as the transaction is well propagated and includes an appropriate fee, it's a pretty small risk to accept it.  For small value payments, most merchants would consider this an acceptable risk (probably a lower merchant risk than shoplifting, chargebacks, and counterfeit bills).

Thing number 2: Spending the output from an unconfirmed transaction.

If you receive an unconfirmed transaction, and then try to spend those bitcoins that you just received before they have confirmed, you then have a problem with malleability.  The transaction ID of the unconfirmed transaction could change before it confirms, which would then make your transaction invalid.  While it is often reasonably safe to accept unconfirmed transactions, it is never very safe to spend those bitcoins until the transaction has confirmed.
legendary
Activity: 1652
Merit: 1016
Anyway you don't even need to wait for a confirm if your buying food or drinks or whatever under $500  if clerk confirmed miner fee paid and transaction appears on his side then it is most likely paid and your good to go.
As discussed earlier, until the malleability issue is resolved accepting unconfirmed transactions is too risky at present.

Unconfirmed transactions are not risky due to the malleability issue unless you are relying solely on the tx id. You can safely use unconfirmed transactions as long as you don't use only the tx id to track them pre-confirm.

Oh right, so they are safe. So if the various wallets allowed unconfirmed inputs to be sent without using tx ids, problem solved.

Now I'm confused.

legendary
Activity: 4256
Merit: 1313
Anyway you don't even need to wait for a confirm if your buying food or drinks or whatever under $500  if clerk confirmed miner fee paid and transaction appears on his side then it is most likely paid and your good to go.
As discussed earlier, until the malleability issue is resolved accepting unconfirmed transactions is too risky at present.

Unconfirmed transactions are not risky due to the malleability issue unless you are relying solely on the tx id. You can safely use unconfirmed transactions as long as you don't use only the tx id to track them pre-confirm.

sr. member
Activity: 420
Merit: 250
Anyway you don't even need to wait for a confirm if your buying food or drinks or whatever under $500  if clerk confirmed miner fee paid and transaction appears on his side then it is most likely paid and your good to go.
As discussed earlier, until the malleability issue is resolved accepting unconfirmed transactions is too risky at present.

I am pretty sure coinbase and bitpay merchants accept smaller unconfirmed transactions so it seems , Coinbase/Bitpay  think the benefit outweighs the risk.

These coffee/beer/food 0-confirmed transactions have been happening for ages. Its just the large transactions people wait 10-30min if need be.
legendary
Activity: 1512
Merit: 1005
A possible third party service could be envisioned:

A card, bought on airports and shopping centers, which has a public bitcoin address and a magstripe or chip or whatever is needed for the shop.

The user fills the card with any amount with a regular transaction

The third party, having the secret code and therefore the bitcins, can safely promise to pay to shops using traditional point of sale terminals. Immediate satisfaction for shops.

Third party taking suitable fees for itself

When you leave the area where the card is relevant, you empty the card to your own bitcoin wallet using an agreed code sent to the third party.

System like these (really gift cards denominated in bitcoin) can be created locally, and cards can be anonymous. Simpler than normal gift cards.

Gyft has done it, but without the physical card part, nor with the bitcoin denomination of funds throughout.
Pages:
Jump to: