Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: chriswilmer on November 29, 2012, 01:37:14 PM



Title: Micropayment idea --> Actually a really good idea for very large payments
Post by: chriswilmer on November 29, 2012, 01:37:14 PM
Hey, I don't know if I'm posting this to the right place, but I just had an interesting idea about how to make certain Bitcoin transactions incrementally more user friendly.

I heard Mike Hearn describe how, even though no one does it yet, the Bitcoin protocol allows for fast micropayments (think hundreds of microBTC transactions per second). This was from his London Bitcoin 2012 talk. He said it would work more or less like this: You send a single, large transaction (say 1 BTC) to an address (maybe a Wifi provider), and then you follow up the transaction with fast "updates" that dictate what percentage of that 1 BTC actually get transferred. The updates can apparently be very small and frequent, so that the Wifi provider can essentially withdraw 0.0001 BTC for every second you are using their Internet. (Hopefully I've reiterated what Mike Hearn said correctly).

OK, now my idea.

I am constantly nervous about typos/mistakes when it comes to Bitcoin, even though it hasn't happened yet. Every time I move over 100 BTC from Mt. Gox to a private address, my heart races. I have nightmares about my wife or kids distracting me while I type, or a falling object landing on the "enter" button of my keyboard at the wrong moment. Can the existing but non-implemented micropayment channel solve this? Can I send 1000 BTC from address to A to address B (both of which belong to me) as a "micropayment", so that after a confirmation I can subsequently "update" the transaction? The point is, if I accidentally send money to the wrong address, I can "update" the transaction to send 0% of the 1000 BTC (essentially reversing it).

Supposedly this does not require any updates to the Bitcoin protocol, just a repurposing of the micropayment idea.


Title: Re: Micropayment idea --> Actually a really good idea for very large payments
Post by: chriswilmer on November 29, 2012, 01:43:27 PM
Wait wait wait... Bitcoin also allows mediated transactions.

BETTER IDEA!

OK, this is how I think very large transactions (from yourself to yourself) should be handled:

Send 1000+ BTC from address A to address B with a mediator who owns address A. (let's call this an ABA transaction)

The odds of a typo messing up this transaction are smaller, because if you typed the address of A wrong, you don't lose any money, and if you typed the address of B wrong, you can reverse the transaction by mediation.

If there were no typos, then you confirm your transaction as the mediator.

Let the kids throw their toys.


Title: Re: Micropayment idea --> Actually a really good idea for very large payments
Post by: Mike Hearn on November 29, 2012, 01:58:22 PM
Hey, glad you liked the talk.

Bitcoin addresses contain checksums exactly to prevent typos from destroying money. So don't worry about that. The chance of accidentally screwing up an address is tiny, in fact I never heard of it happening despite that Bitcoin is in wide use for a while now.

A bigger risk is sending the wrong amount. The best fix for this isn't on the protocol level. It's for clients to delay payments by a moment or two after you click OK so you can undo the transaction if you suddenly realize you got it wrong. They don't do this currently, but probably we should change that so they do.



Title: Re: Micropayment idea --> Actually a really good idea for very large payments
Post by: J-Norm on November 29, 2012, 10:34:07 PM
People have however copied the wrong real address and sent their money off to the wrong person.

If a transaction was sent in such a way that it could be reversed then that opens up the chance for someone to buy something and then take their money back. Would the receiver be able to spend the coins or would this ability to revoke a transaction prevent that till a point in time.

I don't think I fully understand how this type of transaction works.


Title: Re: Micropayment idea --> Actually a really good idea for very large payments
Post by: MoonShadow on November 29, 2012, 10:42:07 PM
People have however copied the wrong real address and sent their money off to the wrong person.

If a transaction was sent in such a way that it could be reversed then that opens up the chance for someone to buy something and then take their money back. Would the receiver be able to spend the coins or would this ability to revoke a transaction prevent that till a point in time.

I don't think I fully understand how this type of transaction works.

Bitcoin transactions are not reversable, but they can be delayed by use of the 'time-lock' feature.  Basicly, this prevents the transaction from being included into a block prior to a certain block number, so that the sender can first prove that he has the bitcoin to make the deal in such a way that the seller is willing to give him the product.

There are also the possibility of transaction versions, but this feature requires transaction scripting, which is presently not honored or enabled by any miners due to the possiblity that it's dangerous.