Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: 1QaZxSw2 on February 05, 2012, 09:42:18 PM



Title: Instant BTC confirmation
Post by: 1QaZxSw2 on February 05, 2012, 09:42:18 PM
Before BTC can be used as ubiquitously as cash, there needs to be an instant or near instant (say 5 to 10 second) confirmation of a transaction. Some old timers here may remember ATM and credit card transactions in the 90s took about 30 to 60 seconds. The system would dial a phone number, connect using modem, make the transaction and hang up. While this was a great convenience back in the 90s, people nowadays will stamp their feet in impatience for any wait greater than 10 seconds.

There are many possible approaches to it.

One option is an alternate blockchain with 10sec confirmations who'se value is tightly coupled to BTC. This is similar in principle to many small countries pegging their currency at a fixed rate to the U.S. dollar. However, I personally loathe new block chains popping up every tuesday and pegging their value is next to impossible in a decentralized system.

The next option is an underwriting business that takes a small cut from the total transaction and instantly confirms the transaction. They will take the risk of a bad payment and in general work like insurance underwriting. Payments from accounts which have a good history can be charged minimal fees for example. This sort of builds a credit history like score for any given payment address and your confirm time could drop if your score is very high. The risk here is that we may end up with 4 or 5 big providers just like we have visa/mc/discover/amex oligopoly. To get around this, the protocol/API needs to be standardized and switching among providers made extremely simple. An additional risk is that a vendor has to trust the underwriter. This usually should not a problem since the vendor has to trust visa/mc right now in any case.

The system would work in the following way:

  • Buyer pays seller using the bitcoin network.
  • Seller passes the buyer's payment address to the underwriter
  • The underwriter instantly confirms the payment (based on prior history, which perhaps could be inferred from blockchain)
  • the seller gives the goods to the buyer -- transaction completes

(30 mins later)

TX confirmed, seller sends commission to underwriter or underwriter deducts it from seller's balance.

OR
 
TX failed, underwriter sends payment to seller minus commission.


The great thing about this system is that you dont need to carry your private key around with you on a piece of paper. You only need to give your payment address to the seller. The seller can make you sign a receipt (just like credit card) where you authorize a certain amount to be paid out. The underwriting agency would refund any excess the merchant has charged as well.

Or better yet, you could enter the amount to pay and the sellers address on the underwriter's web site or use their app on your smart phone (using the smartphone camera to read the QR code). The underwriter would send a confirmation to the seller instantly. you pick your goods and off you go.

This is completely anonymous and while your spending habits can be tracked by your bitcoin address, its not really tied to your real life identity (just like any other BTC transaction) and you can always use a special address purely for your prurient interests.




Title: Re: Instant BTC confirmation
Post by: cbeast on February 05, 2012, 11:02:27 PM
Cash can only be delivered by hand. Anything else depends on trust that the transaction will not be charged back, stopped payment, or fraud. Bitcoin has instant transmission, but local physical bitcoin can be issued for instant local use as Casascius has shown. Internet payments that can't wait an hour to avoid fraud should use an escrow service. The trade off of security comes at the expense of trust. If you would rather trust a supernode or escrow service rather than the Bitcoin network, then you will pay a fee.


Title: Re: Instant BTC confirmation
Post by: 1QaZxSw2 on February 06, 2012, 12:17:21 AM
Cash can only be delivered by hand. Anything else depends on trust that the transaction will not be charged back, stopped payment, or fraud. Bitcoin has instant transmission, but local physical bitcoin can be issued for instant local use as Casascius has shown. Internet payments that can't wait an hour to avoid fraud should use an escrow service. The trade off of security comes at the expense of trust. If you would rather trust a supernode or escrow service rather than the Bitcoin network, then you will pay a fee.

Internet payments are fine with BTC. 30m is not an unreasonable wait when you have ordered pizza or that set of widgets from amazon. Cash and cash equivalents such as Casacius are fine as well athough there's always a small risk of someone reading / copying the private key off a paper BTC and spending it.

I'm addressing something else entirely, and that is the ability to do normal stuff without having to carry large amounts of cash. Credit cards and debit cards do it in the fiat world. We need an  equivalent in the bitcoin world.


Title: Re: Instant BTC confirmation
Post by: cbeast on February 06, 2012, 12:38:04 AM
Cash can only be delivered by hand. Anything else depends on trust that the transaction will not be charged back, stopped payment, or fraud. Bitcoin has instant transmission, but local physical bitcoin can be issued for instant local use as Casascius has shown. Internet payments that can't wait an hour to avoid fraud should use an escrow service. The trade off of security comes at the expense of trust. If you would rather trust a supernode or escrow service rather than the Bitcoin network, then you will pay a fee.

Internet payments are fine with BTC. 30m is not an unreasonable wait when you have ordered pizza or that set of widgets from amazon. Cash and cash equivalents such as Casacius are fine as well athough there's always a small risk of someone reading / copying the private key off a paper BTC and spending it.

I'm addressing something else entirely, and that is the ability to do normal stuff without having to carry large amounts of cash. Credit cards and debit cards do it in the fiat world. We need an  equivalent in the bitcoin world.
BIP 16 with multi-signature transactions should address this. https://bitcointalk.org/index.php?topic=61172.msg714489#msg714489 (https://bitcointalk.org/index.php?topic=61172.msg714489#msg714489)


Title: Re: Instant BTC confirmation
Post by: Hunterbunter on February 06, 2012, 01:02:38 AM
Thinking about this, and I agree it is a problem needing a solution.

What you describe sounds feasible on the surface.

The downside is that an alternative blockchain would require alternate hashing, and would be subject to it's own speculation, etc, unless it relied on only a few peers, in which case might be untrustworthy (or pointless). It would essentially be working against itself in many ways.

To try to avoid all these complications, it would be better to rely on the existing BTC network in some way. One possibility is the "trusted insurer" as you suggest, much like an escrow (or even bank), which has an account for the seller and an account for the vendor, and the seller has to pre-populate their account with bitcoins. A trusted seller then requests a purchase from an account, and the escrow moves digits between accounts and the transaction is instant.

This of course can catastrophically fail unless the accounts are protected with some sort of PIN to stop sellers fraudulently making "sales", so an entire electronic system would have to be setup. Looking at the real world, a card with magnetic strip and chip and pins and all that have already been created for this purpose, for the same reasons, and it would make no real difference if they were transacting btc or $$. Why not just do something like that?

I think if it were possible to achieve this via p2p, there is greater benefit to the entire community, rather than just to create the same problems we have with fiat money. The only downside is trust, as you point out, which may in fact prove this to be impossible without beacons - much like Gox is still the biggest exchange by far, even though there are many to choose from. Bitcoins have mistrust built into the system, and it requires a lot of computing power to achieve...banks would have to have a parallel network (but then would face the same problems in their own). It may be an unsolvable problem in this context, meaning advanced trusted 3rd party escrows are the only way to do instant.


Title: Re: Instant BTC confirmation
Post by: 1QaZxSw2 on February 06, 2012, 08:06:03 AM
To try to avoid all these complications, it would be better to rely on the existing BTC network in some way. One possibility is the "trusted insurer" as you suggest, much like an escrow (or even bank), which has an account for the seller and an account for the vendor, and the seller has to pre-populate their account with bitcoins. A trusted seller then requests a purchase from an account, and the escrow moves digits between accounts and the transaction is instant.

<snip>
I think if it were possible to achieve this via p2p, there is greater benefit to the entire community, rather than just to create the same problems we have with fiat money. The only downside is trust, as you point out, which may in fact prove this to be impossible without beacons - much like Gox is still the biggest exchange by far, even though there are many to choose from. Bitcoins have mistrust built into the system, and it requires a lot of computing power to achieve...banks would have to have a parallel network (but then would face the same problems in their own). It may be an unsolvable problem in this context, meaning advanced trusted 3rd party escrows are the only way to do instant.

P2p indeed is the way to go.

As revenue from mining becomes scarce, it may be possible to have a bidding system as part of the bitcoin protocol to instantly guarantee a transaction. miners or anyone else on the network can bid to guarantee the transaction for a fee. This is an addition to the current transaction fee. We could have a sort of reverse auction where the payer could select the lowest bid.

So for example,  I want to pay for my coffee and donut at dunkin donuts with 1.0 BTC with instant confirmation and offer an instant confirmation/guarantee fee of 0.05 BTC. Someone can choose to take it and instantly confirm the transaction. That someone needs to be a party acceptable to both me and dunkin donuts and lets say for the sake of argument it happens to be Mt. Gox. We both agree and the transaction is completed. If later, it turns out my payment was bad, mt. gox has to pay dunkin donuts the proper amount.

Of course, technically instead of Mt Gox, it could be any Bitcoin address and based on that addresses' reputation for handling guarantees, users would accept them as the transactor. So as long as we know Bit coin address 1QaZ234ksk5jjfllsl5yuehdmk3kdKjd is a reputable guarantor, we wouldnt care who it was. In reality, it probably will be a few large entities or many moderately sized entities that folks recognize and accept based on user rating.

This kind of fee could be fairly more attractive way to earn bitcoins than mining. After all, confirming 1000 coffee transactions would net 50BTC, something that a guaranteer could do in hours and if bitcoin is widely accepted a large guaranteer could earn in a minute with very low risk. This would also be a very convenient and necessary feature to enable widespread bitcoin usage.


Title: Re: Instant BTC confirmation
Post by: Hunterbunter on February 06, 2012, 08:58:45 AM
So for example,  I want to pay for my coffee and donut at dunkin donuts with 1.0 BTC with instant confirmation and offer an instant confirmation/guarantee fee of 0.05 BTC. Someone can choose to take it and instantly confirm the transaction. That someone needs to be a party acceptable to both me and dunkin donuts and lets say for the sake of argument it happens to be Mt. Gox. We both agree and the transaction is completed. If later, it turns out my payment was bad, mt. gox has to pay dunkin donuts the proper amount.

Of course, technically instead of Mt Gox, it could be any Bitcoin address and based on that addresses' reputation for handling guarantees, users would accept them as the transactor. So as long as we know Bit coin address 1QaZ234ksk5jjfllsl5yuehdmk3kdKjd is a reputable guarantor, we wouldnt care who it was. In reality, it probably will be a few large entities or many moderately sized entities that folks recognize and accept based on user rating.

This kind of fee could be fairly more attractive way to earn bitcoins than mining. After all, confirming 1000 coffee transactions would net 50BTC, something that a guaranteer could do in hours and if bitcoin is widely accepted a large guaranteer could earn in a minute with very low risk. This would also be a very convenient and necessary feature to enable widespread bitcoin usage.

How would the third parties protect themselves against fraud (buyer/seller collusion) in this scenario?

Also, what sort of interface are you thinking of here? Will the acceptable third party have some of the buyer's btc? If not, they would only really need to interact with the seller - the buyer is irrelevant, and the seller is essentially going to ask the guarantor network: "Who wants to insure this purchase of my coffee and donut for 0.05 out of my 1 btc?" someone accepts (automatically I guess), and if that btc never makes it to my wallet, I make a claim against that guarantor. If it makes it, I make a payment to that guarantor.

I'm sure people would be willing to take that risk of insurance for profit. The only thing stopping them would be the mechanism in which the two parties interact. I wonder if something could be built into the bitcoin client for this.

Does anyone know how long it takes for information to propagate the network?


Title: Re: Instant BTC confirmation
Post by: istar on February 06, 2012, 02:43:13 PM
If you go to a local shop or any well known shop would you not trust them? And thus you would only need zero confirmation?

There was some suggestion of having premade adresses with "change" in them and the keys to the adresses could be given away with no need to wait for confirmation, or something like that.




Title: Re: Instant BTC confirmation
Post by: 1QaZxSw2 on February 06, 2012, 04:04:25 PM
If you go to a local shop or any well known shop would you not trust them? And thus you would only need zero confirmation?

There was some suggestion of having premade adresses with "change" in them and the keys to the adresses could be given away with no need to wait for confirmation, or something like that.




Normally, its not the store the buyer does not trust, its the buyer that the store may not trust. After all, the buyer has the store's goods in hand. The seller has a magic number that the buyer gave them.

But the practical matter I'm talking about is not trust but convenience. If a seller is told he has to make his buyers wait for so many minutes before a payment can be confirmed, there will never be widespread adoption of bitcoin.

So the seller could as others have suggested, offer someone else to take the risk for a small fee in exchange for a guarantee he will be paid and the coffee line can be kept moving.


Title: Re: Instant BTC confirmation
Post by: FreeMoney on February 07, 2012, 12:49:01 AM
If you go to a local shop or any well known shop would you not trust them? And thus you would only need zero confirmation?

There was some suggestion of having premade adresses with "change" in them and the keys to the adresses could be given away with no need to wait for confirmation, or something like that.


Normally, its not the store the buyer does not trust, its the buyer that the store may not trust. After all, the buyer has the store's goods in hand. The seller has a magic number that the buyer gave them.

But the practical matter I'm talking about is not trust but convenience. If a seller is told he has to make his buyers wait for so many minutes before a payment can be confirmed, there will never be widespread adoption of bitcoin.

So the seller could as others have suggested, offer someone else to take the risk for a small fee in exchange for a guarantee he will be paid and the coffee line can be kept moving.

It's not a matter of convenience or time because you can just trust them. Are you worried that this person has mined a block and is just waiting for you to hand his coffee to release the bock and get his 50BTC reward plus his payment for coffee and doughnut back?


Title: Re: Instant BTC confirmation
Post by: 1QaZxSw2 on February 07, 2012, 01:33:01 AM

It's not a matter of convenience or time because you can just trust them. Are you worried that this person has mined a block and is just waiting for you to hand his coffee to release the bock and get his 50BTC reward plus his payment for coffee and doughnut back?

Try to think of it from a non-technical person's viewpoint.

Lets say I print two copies of a BTC address and give one to my friend. My friend buys some pants at Abercrombie and fitch while I buy slacks at GAP at approximately the same time on an uncrowded monday morning at the mall (so we can take it to the counter simultaneously at around the same time, say 9:18AM.

If even one or two incidents like this are reported or are known to be possible, there will be resistance to adoption. Their business is selling clothes, not risk management. Someone else needs to take on the risk in exchange for a fee. If double spend attack risks can be addressed and as a side effect you get instant confirmation, think of the boost to the pace of bitcoin adoption.