Hacker News new | ask | show | jobs
by josephpoon 3623 days ago
For the HN crowd passing by, here's why this stuff could be interesting to you.

It's not possible to do extremely small micropayments on bitcoin directly as people use it today. Bitcoin's made a lot of promises around micropayments, but doing it in an economical way has tradeoffs, especially if you're talking about millions to billions of transactions per second. In fact it's not possible to extremely small micropayments on ANY platform. Try sending $0.001 to someone once. It's not possible. The closest you're probably going to get is sending someone an item on Steam (and there's no easy way to price the items). The reason for this is underwriting costs, it's too expensive for Visa to process it since they're assuming some liability. Even Paypal, who ostensibly should be doing this, charges $0.30 for payments for goods and services.

Lightning allows for micropayments to actually happen because custody is still pushed to the edges, so you don't have the same kinds of underwriting risk.

This means that something as simple as paying someone $0.001 over the internet one time will become viable this year. The amount of possible business models and use cases could dramatically shift. Users may not know they're using Bitcoin (your application could hide it and abstract it away), but people are getting paid in a way they could not before (even centralized systems did not exist, let alone decentralized ones). Pay-per-click webpages, massive decentralized CDNs, creating API services without a username/password to make onboarding seamless (you paid? you're done!).

We're working on code here: http://github.com/lightningnetwork/lnd It's MIT licenced and will soon have some pretty simple APIs to use. Of course, since this stuff will be in testing for a little while, make sure you only use small amounts/micropayments initially when it's released.

5 comments

You can send someone one Linden in Second Life (the virtual world), i.e. over the Internet. One Linden works out to about 0.004 US dollars. (It depends on the exchange rate, which is determined by an open market.)

This has been possible for many years.

Ah yeah, that's a good point, I totally forgot about them, thanks!

I think the big difference here is that obviously decentralization is nice, but the real issue is that Linden could do it because they simply didn't become big enough to be a target. There were some attacks at the edges, but if you wanted to do what Linden did at Visa-scale, they would quickly put a stop to it with chargebacks.

Adversarial problems are far easier at smaller scale, but it is a good point, thanks for the correction! It may be more accurate to say nobody's done it where it could be conceptually feasible at high-scale/volume with dedicated adversaries (many of the Linden exchanges solved this with high exchange rates to buy in, e.g. Virwox).

Bitcoin doesn't offer chargebacks though, and nor do any of the exchanges. I think GP's point is that Linden money is equivalent to BTC, just centralized. And they can send small amounts of money.

If you mean Linden would have issues with chargebacks for people exchanging real money -- why wouldn't any BTC exchange have the same problem? It seems unlikely you'll be able to buy $0.01 of BTC.

In fact, any centralize system that throws out chargebacks should have zero problems scaling. A few years ago VISA said their target was around 50K tx/sec peak (though their daily peak is only a few thousand). It'd be slightly odd for a centralized system to not be able to easily scale to that volume.

Forgive me if I'm misunderstanding the thread.

The presumption would be the underwriting risk is batched and pushed to one point (the exchange point). It's economically feasible to underwrite a single transaction for hundreds of dollars to buy Bitcoin (exchanges doing AML/KYC). It's much more uneconomical to underwrite a $0.001 payment -- as a result building a real marketplace for this becomes difficult even if there would be a lot of users.
I don´t get this answer. Linden needs not underwrite any micropayment inside it´s silo?

The only utility in LN is hopefully retaining decentralized properties of bitcoin. PokerStars, Linden & WoW have supported micropayments for a long time?

Im not sure why any of these services could not grow 10x and still function internally? They are already servicing tens of millions.

I think you're missing the point. You can't scale Linden's micropayment worldwide without there being counterparty risk. It's much more useful to build these on top of decentralized systems with a strong bedrock without fearing the company being targeted by hackers or governments. Can you use Linden in China?
Question for you.

Say I want to pay Bob $0.001. That's too small for a bitcoin transaction since the fee is higher than that. So from what I understand I would "load" say $10 into the lightning network then create a transaction over the network to Bob for $0.001. Say tons of other people do this and now Bob is sitting on $10. How does he turn that into actual Bitcoin? Like get it out of the lightning network. Doesn't he have to close off all those thousands of channels?

The fun part of the Lightning Network is that you're actually exchanging bitcoin transactions. You're just keeping a local cache and electing when to broadcast it. It's flipping the double-spend problem on its head (and using it as a feature) and securing it via time-bonded proofs using programmed Bitcoin scripts native to the blockchain itself.

At any time either party can close out the channel unilaterally by broadcasting the most recent state. The person that broadcasted it gets refunded after a delay (assuming the uncooperative case where the other party in the channel goes off the Antarctica or something -- in a cooperative case, both parties close out immediately with the current balance).

Leaving coins in LN is fully backed on-chain, of course, since these are real bitcoin transactions passed around. The added benefit is you can transact instantly in high volume, so coins in LN will probably have more use than coins off LN when it comes to payments.

Sorry I think you'll have to dumb it down for me.

Say Bob says I want my $10 to stick on OKCoin now. He broadcasts that he wants to close the channels for all those thousands of people now? Doesn't that mean the transactions go through on the actual network costing him ~$0.05 for each $0.01? Or am I understanding settlement completely wrong?

Let's say you're Alice. You have a channel open with Bob. Bob is connected to Carol (OKPay).

You update your channel to tell Bob, I will pay you conditional upon a proof that you paid Carol. Bob pays Carol and provides proof. If Bob didn't provide proof after an agreed timeframe, this gets cancelled. There can be an arbitrary number of people between you and Bob (7-degrees of Kevin Bacon, but probably don't go too high!).

This is done completely off-blockchain. At any time this can be moved on-blockchain, but since the blockchain will enforce the payment as part of its transaction scripting language, you both elect to do it off-blockchain. Think of this with the system intent/design where it represents an enforcible caching layer where invalid cache can be corrected on-blockchain.

You can do thousands, even millions of these transactions off-blockchain. Only the final balance is net-settled on the blockchain. So you finalize your balance between Alice and Bob if you want to close out the channel. Note that the channel between Bob and Carol could still be left open and everything still works fine!

Since it's scalable in a routed graph (think switches instead of hubs), you could potentially do millions to billions of transaactions which route value, much like routing packets on the internet.

Bitcoin works based on incentives. There is no reason to go off-chain if you're not getting paid. And OKPay is not an end-node in any system. What you "really" want is to be able to send all assets in the system integrating banks. So the supernodes will be banks, i.e. large liquidity providers with a legal framework. LN is technically interesting, but there is no plausible scenario to make it work IMO. And if, you'd be way better off with redesigning Bitcoin and getting rid of some major drawbacks there.
Miners can run LN nodes too and profit off it as can anyone with bitcoin. The point is avoid the need or having to rely on "supernodes." You have other altcoins going other routes trying to fit as many of these small transactions on the blockchain... Good luck verify all that or keeping that decentralized.
Thanks for taking the time. I think I understand it now though I'll spend some more time having a read through the site when I have a bit more time.
Cheers! :D

If you have any questions, do send me an email. I'm working on making the explanation better so feedback is always appreciated.

The site talks about billions of transactions per second. So presumably multiple tx/sec/person on earth. Can you give me some examples of how this is useful? For instance, why would a CDN want to handle and record a financial transaction for e.g. every HTTP load or something?

I'm also suspicious of pay-per-whatever extending to end-users. People hate that kind of billing, even when it's cheaper (I learned this the hard way). And between companies, again, what's the benefit of having thousands of transactions when a couple would do?

No need for username/passwords. The flow would literally be you paid? You're done. No more per-website API tokens.

Pay per website you visit, you visit a lot of different websites.

The notion is that you make each payment to be the smallest atomic component, so you need high-volume for that (since one large purchase gets split into many small purchases).

End-users don't like being scammed. If it's sufficiently low value with sufficiently high service level, you will get adoption. Appstore payments of $0.99 don't even register for a lot of people (with the exception of egregious Pay-to-Win games), if the payment was $0.001 and you only end up spending $0.10 in a day nobody would care. If you're getting billed per-hour on AWS, people prefer that to per-month.

The benefit between companies isn't for persistent relationships. It's the notion that you're reducing information cost (instead of paying a large payment with signon, you don't care who your counteparty is -- if they don't deliver who cares you're only out $0.001). In the longer-term, this is about reframing how you discover business relationships in the first place due to information/transaction costs.

You're on the right track: machine-to-machine payments. Check out https://21.co/ for more info.
>Can you give me some examples of how this is useful?

Marketing.

Machine to Machine payments. Payable endpoints 402 payments? They're tech guys not marketing. I'm not sure if the LN guys even have marketing people?
> Even Paypal, who ostensibly should be doing this, charges $0.30 for payments for goods and services.

PayPal is doing this. At least, via their subsidiary Venmo. The first thing I thought of when you said "try sending $.001 to someone once" was "huh, I do that all the time on Venmo. Couldn't be simpler."

I thought their minimum was $0.01 last I checked, I stand corrected!

Venmo also explicitly discourages you from sending money to people whom you don't have a social relationship with due to chargeback risks. They're a long ways away from being a general payment platform for goods and services online with people whom you don't have a prior relationship with, and as part of that will likely drop it from their business model. There's a reason why Paypal has been talking about doing it for 15 years but haven't actually done it (paypal doesn't charge any fees for payments to your friends but charges fees if you're paying for goods and services).

Well you're actually right, the minimum is just $0.01. It's I who stand corrected!
Venmo is really nice, I just wouldn't trust it with anyone I don't have a social connection with. In that regard it's superior to bitcoin.. Although, I'm digging circle recently.. People can set it as USD, and when they send me money I get it in bitcoin, and vice versa. :-) Doesn't matter if they're outside the U.S. or someone I don't know.
Except you can't send $0.001 because you'd need to exchange your actual money to bitcoins first and the receiver would need to exchange it back. OK, perhaps the receiver would only transact once there's a "lot" of $0.001s came in.