Subject: Masking the BTC transaction quantity (+anonymity) with 'bills'.
Cost: all users must change the default way they write transactions, recipient must use stealth addresses.
(This is a repost from somewhere....I thought I read about this idea in our forums here, or in the Zerocoin paper, but I couldn't find it and cant remember where it came from and no one seems to be talking about it. It interacts with Stealth addresses to become MUCH more effective).
Simply put, you change default transaction construction in order to exploit Stealth Addresses' ability to provide senders with multiple addresses, by breaking up your payment into addresses of standardized sizes. Probably powers of 2 are the best way to go .
So, if 2^x were the sizes (1,2,4,8,16...), to send 13 BTC to someone you would:
Request an address
prepare to send 8 BTC to that address (13-8=5 left over)
Request address #2
prepare to send 8 to address.1 and 4 to address.2 (5-4=1 left over)
Request address #3
prepare to send 8 to address#1, 4 to address#2, and 1 to address#3
Values below some cutoff ("change") can simply accumulate until they become the first 'bill'.
Of course, this does not itself mask the transaction (as you can still just add up the total amount spent), but it does allow users, if they wish, to construct separate 'masked' transactions, for example 3 payments of 8, 4, and 1, (or 8+1 and 4, or 4+1 and
, separated in time and that will blend into the regular mass of transactions completely at the normal cost of a transaction fee per extra transaction.
This also makes it impossible to determine the change address(es) (as you would request several new addresses from yourself) or the change amount (now logically impossible to determine what it is) and even makes CoinJoin a little easier, as it standardizes the values it requires to coordinate.