The random number that the buyer uses could be generated from a root key too.

This would allow them to regenerate all random numbers that they used and recreate their receipts.  The master root would have to be stored on your computer though.

The payment protocol is supposed to do something like this already though.


On Fri, Jan 3, 2014 at 6:00 PM, Nadav Ivgi <nadav@shesek.info> wrote:
I had an idea for a payment scheme that uses key derivation, but instead of the payee deriving the addresses, the payer would do it.

It would work like that:
  1. The payee publishes his master public key
  2. The payer generates a random "receipt number" (say, 25 random bytes)
  3. The payer derives an address from the master public key using the receipt number and pays to it
  4. The payer sends the receipt to the payee
  5. The payee derives a private key with that receipt and adds it to his wallet

Advantages:
  • It increases privacy by avoiding address reuse
  • The process is asynchronous. The payee is completely passive in the payment process and isn't required to provide new addresses before each payment (so no payment server required)
  • Its usable as a replacement for cases where re-used addresses are the most viable solution (like putting an address in a forum signature or as a development fund in a github readme)
  • The receipt also acts as a proof of payment that the payer can provide to the payee
  • Also, if the master is known to belong to someone, this also allows the payer prove to a third-party that the payment was made to that someone. If the output was spent, it also proves that he was aware of the payment and has the receipt.
  • Its a really thin abstraction layer that doesn't require much changes
Disadvantages:
  • Losing the receipt numbers means losing access to your funds, they are random and there's no way to restore them
  • It requires sending the receipt to the payee somehow. Email could work for that, but a better defined channel that also can talk to the Bitcoin client and add the receipt would be much better.
What do you think?

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development