Pages:
Author

Topic: [ANNOUNCE] Micro-payment channels implementation now in bitcoinj - page 5. (Read 29464 times)

legendary
Activity: 980
Merit: 1008
T1 redeems an input that is sent to an output requiring both the server's and the client's signature to redeem. But what if, when the exchange is over, and I've gotten what I wanted from the server, I send out a new transaction that redeems the same input redeemed by T1, but with a higher fee to miners, that sends all coins back to myself?

There are a couple of misunderstandings here. The first one is that T1 is broadcast at the start of the negotiation, so it gets confirmed like any normal transaction. The second is the belief that you can replace transactions by sending another one with a higher fee. That's not how Bitcoin works.
Oh, I hadn't caught the first point. So does this mean that the setting up requires T1 to be in the block chain?

With regards to your second point, the answer is that miners can do this, if they want to. The protocol can't enforce this. The Satoshi client can default to ignore subsequent transactions spending the same input, but it can't be enforced in any way, and so it's not wise to build services that rely on this. If this were the case we wouldn't have to worry about double spends in the first place. But if I understand your first point correctly, this isn't what your implementation relies on anyway, so it's not relevant here.

Great job by the way! Smiley Both to Matt and you. This is one of the things that has so many possibilities that it's mind blowing!
legendary
Activity: 1526
Merit: 1129
T1 redeems an input that is sent to an output requiring both the server's and the client's signature to redeem. But what if, when the exchange is over, and I've gotten what I wanted from the server, I send out a new transaction that redeems the same input redeemed by T1, but with a higher fee to miners, that sends all coins back to myself?

There are a couple of misunderstandings here. The first one is that T1 is broadcast at the start of the negotiation, so it gets confirmed like any normal transaction. The second is the belief that you can replace transactions by sending another one with a higher fee. That's not how Bitcoin works.

Re: alt coins. If they're similar enough to Bitcoin then the protocol and code will just work.

Re: integration into clients. It's something that you use to build other apps really. Having it directly exposed to end users in wallets doesn't make a whole lot of sense. However, wallet apps can certainly re-expose the API to other apps that don't want the hassle of actually being a wallet themselves.

SatoshiDice uses micropayments as a form of messaging. This work doesn't have any impact on that, the payment protocol is the solution to what they're doing.
legendary
Activity: 1862
Merit: 1105
WalletScrutiny.com
hero member
Activity: 714
Merit: 510
hero member
Activity: 714
Merit: 510
If anyone intends to build a music streaming service contact me.
I had a dream of creating another internet music stream, but unfortunately I currently have no time to work on it.

And of course basically any service that is billed per minute via phone today, x-rated or otherwise, would be an ideal fit.  Technical support, legal advice, astrological readings, etc.  It enables all those industries to ditch the phone carriers as the billing mechanism and move to Internet-only delivery and payment.  I'd be curious to know what percentages the phone companies skim off the top on their per-minute numbers, if it's a large amount, then this technology becomes a compelling alternative and some bright enterpreneur could probably get funded and build a business disrupting that market.
Payment gateways should implement micropayment channels. Are there any open source Bitcoin payment gateways?

Now, can this be adapted to support altcoins like Litecoin and PPcoin? Then we are really onto something.
legendary
Activity: 1094
Merit: 1006
Pretty awesome work. Now that something is working, will this be added to the regular client at some point? Many people specifically want to do micropayments, so it would be nice if this was standalone and had some wrappers.
legendary
Activity: 1400
Merit: 1009
Using this technique in smart meters, an electric electric company could implement realtime demand pricing and adjust the payment once per minute but only actually transfer Bitcoins on the blockchain twice per month per customer.
legendary
Activity: 1862
Merit: 1105
WalletScrutiny.com
Satoshi dice should use this! They would save tons of fees and reduce spam for all of us.
I'm so excited!

… maybe not possible … hmm …
legendary
Activity: 1862
Merit: 1105
WalletScrutiny.com
So, reading https://en.bitcoin.it/wiki/Contracts#Example_7:_Rapidly-adjusted_.28micro.29payments_to_a_pre-determined_party I don't understand what prevents double spending of the input used to fund T1.

T1 redeems an input that is sent to an output requiring both the server's and the client's signature to redeem. But what if, when the exchange is over, and I've gotten what I wanted from the server, I send out a new transaction that redeems the same input redeemed by T1, but with a higher fee to miners, that sends all coins back to myself?

In other words, what is it, in essence, that makes this any different from just showing the server a transaction that sends coins to an address that belongs to the server? And rapidly updating this transaction?

The time-locking makes it possible for both parties to work trust-free.

So if the session gets initiated with one day time lock, the first transaction sending all the money to the server may not get used as the input to send it all back within this one day, but both parties sign an "all returns" transaction in the beginning. Apparently bitcoin protocol supports a "sequence number", so the highest sequence number wins and both parties are allowed to provide a higher sequence number (signed by both parties) within the time lock. Ingenious Smiley

(So this is not a real micro-payment in the sense of a service collecting satoshis from many clients but the service could collect *increments* of satoshis from many clients each paying some dollars in the end, which is really really great.)
sr. member
Activity: 280
Merit: 257
bluemeanie
This has interesting, and probably negative, implications for the Color Coins project.

great work though!  -bm
newbie
Activity: 15
Merit: 0
Yo that's off the chain!  Cheesy
legendary
Activity: 980
Merit: 1008
So, reading https://en.bitcoin.it/wiki/Contracts#Example_7:_Rapidly-adjusted_.28micro.29payments_to_a_pre-determined_party I don't understand what prevents double spending of the input used to fund T1.

T1 redeems an input that is sent to an output requiring both the server's and the client's signature to redeem. But what if, when the exchange is over, and I've gotten what I wanted from the server, I send out a new transaction that redeems the same input redeemed by T1, but with a higher fee to miners, that sends all coins back to myself?

In other words, what is it, in essence, that makes this any different from just showing the server a transaction that sends coins to an address that belongs to the server? And rapidly updating this transaction?
legendary
Activity: 1304
Merit: 1014
The coolest next step would be a binding to the web, so any website can take advantage of micropayments triggered by JavaScript. This is a project of medium complexity, it's essentially a plumbing and UI job. It's doable in spare time but it'd have to be your main project to design, build, document and support it. I can lay out how it's done if you are serious about implementing it.

Suppose the client for micropayments is written in javascript.  Somehow the javascript needs to bind to the java client, probably via applet or an installed desktop java app to communicate to the micropayment server.

I am wondering if it would be possible to port the java client code to javascript so it can talk directly to the micropayment server, perhaps with websockets.

Nice work.
sr. member
Activity: 310
Merit: 250
Mike and Matt, we are all very excited for this new feature. Great job and thank you for continuing to push things forward.
hero member
Activity: 614
Merit: 500
That's called mental poker and it's an active area of cryptographic research. It turns out to be really hard to do correctly (so nobody can cheat). Especially if you want to avoid people playing against themselves.

Ahh yes, I've heard it called that before. It's nice to see you say that it's an active area of research. I can't wait until it's under development. If that app ever comes out now, there are millions of poker players worldwide who would be scrambling to get bitcoins to play.
newbie
Activity: 3
Merit: 0
This is awesome -- looking forward to seeing where this could fit into my own project (micropayments to satire authors). Thanks for all the hard work!
legendary
Activity: 1526
Merit: 1129
That's called mental poker and it's an active area of cryptographic research. It turns out to be really hard to do correctly (so nobody can cheat). Especially if you want to avoid people playing against themselves.
hero member
Activity: 614
Merit: 500
Here's my "killer app" idea.

Gnu Poker

A poker client that anybody can download and install on any OS. It's decentralized, so no private company takes any rake, and no government can shut it down. Players can sit at a table with X amount of bitcoins, and the bitcoinj shuffles the balance around constantly until one of the players sits up, or when the tournament is finished.

In other words... GLOBAL    UNSTOPPABLE    RAKELESS    INSTANT PAYOUT    POKER

hero member
Activity: 836
Merit: 1021
bits of proof
This is really good!

We have to find business models that are not requiring people to rethink (as they do so very slowly), but create an offer that was not possible before.

Congratulations Matt and Mike.
member
Activity: 74
Merit: 14
This is brilliant.

Until now, my working assumption for how Bitcoin will be adopted has been:

1) Disrupt an existing industry (my bet is/was international remittances) by providing an existing product/service cheaper and/or better

2) Once a foothold has been established, deliver products/services that would have been impossible with other technologies (likely building on contracts/transaction scripting or colored coins).

This announcement could well short-circuit step one.

I'm looking forward to playing with it this weekend.
Pages:
Jump to: