Post
Topic
Board Development & Technical Discussion
Re: Blocks are [not] full. What's the plan?
by
DeathAndTaxes
on 20/11/2013, 19:00:43 UTC
  tell people to not send transactions < 0.01 BTC, bitcoin is not ready for micro payments yet

Apparently not many people have figured out that any 0.01 BTC minimum is rather easily circumvented.

Person A wants to send 0.00000001 BTC to Person B.
Person A owns address 11 (with a single 1 BTC output in it) and address 12 (newly created).
Person B owns address 13 (with a single 1 BTC output in it) and address 14 (newly created).

The naive way to pay would be to use 11 as an input of 1 BTC, 12 as an output of 0.99999999 BTC, and 14 as an output of 0.00000001 BTC. (That'd be a non-standard transaction as all outputs have to be at least one Gavin.)

The smart way would be to use 11 as an input of 1 BTC, 13 as an input of 1 BTC, 12 as an output of 0.99999999 BTC, and 14 as an output of 1.00000001 BTC. Person A signs the outputs with address 11. Person B signs the outputs with address 13. (That'd be a standard transaction, and would probably be confirmed in a reasonable amount of time even without any transaction fees if the BTC in address 11 and 13 was old enough.)

It's basically the same concept as CoinJoin, but the only two participants are the buyer and the seller.

Surely I'm not the first one to think of this.

I wouldn't say "easily circumvented" but yes that would work.  No client supports that so it isn't easy but it can be done.  Now you have to ask yourself is the work worth that tiny amount of value (1/1,000th of a penny).  Probably not.  There are also other methods that can be done called probabilistic micro payments (essentially instead of sending 1 satoshi you create a tx that the receiver has a 1/10,00th of a chance of receiving 10,000 satoshis) but they aren't easy either.  Improved code will make these sorts of things "easy" someday.