Hacker News new | ask | show | jobs
by nvk 3068 days ago
They should have replaced it with Lightning Network, is amazingly fast and cheap and works on top of Bitcoin. I'm running a test node, this stuff really works!

> Lightning is a decentralized network using smart contract functionality in the blockchain to enable instant payments across a network of participants.

In case you are curious https://lightning.network and another good resource here https://www.reddit.com/r/Bitcoin/comments/7pwna9/lightning_n...

10 comments

They could also replace it with money, which one can readily and easily, through systems with well-understood protocols that are agreed upon by participants in those systems, exchange for goods and services.

(Even the Lightning Network people don't think you should use it with money. Not that that's likely to be a problem, what with it being for Bitcoin and all. Stripe also doesn't support any other commodities as method of payment, and frankly if they did I'd hope they'd choose cattle before Bitcoin because we know that cattle is actually worth something.)

In fact, the Chicago Mercantile Exchange live cattle futures contract is deliverable, whereas the Bitcoin contract is settled in US dollars. I.e., the biggest US commodities exchange literally considers live cattle to be more practical to deliver than Bitcoin.

To me this suggests Bitcoin is not actually a good medium of exchange.

http://www.cmegroup.com/rulebook/CME/II/100/101/101.pdf

https://www.cmegroup.com/confluence/display/EPICSANDBOX/Bitc...

It might actually be the other way around. If you want Bitcoins in (say) six month's time, you can just go out and buy Bitcoins now, so it doesn't make much sense to have Bitcoin futures contracts except as a means of speculation on the price and that doesn't benefit from actual delivery. This isn't nearly so easy or practical if you want a certain number of live beef cattle of a certain quality in six months or a year. (Matt Levine talked about this in his Bloomberg column, as I recall.)
The Euro and GBP contracts are delivered 'physically', not cash-settled in USD:

http://www.cmegroup.com/rulebook/CME/III/250/261/261.pdf

I think this is not overvaluing the utility of Bitcoin, but undervaluing the utility of cattle. I, for one, am very bullish on bovine-based exchange.
You seem very confused about what money is.
I don't see the confusion. Care to explain?
Countries and their economies collapsing now and then are not that rare.
Seems rather rare to me.

If a Dotcom type of an event affected bitcoin ecosystem, it would not have recovered - it had millions of participants actively winding up and unwinding positions in real time, which is not something that bitcoin is capable of supporting at this time.

If a Housing Bubble type of an event affected bitcoin ecosystem, it would not have recovered. Lots of special purpose leveraged positions needed to be de-leveraged. Something that bitcoin is not capable of supporting.

If LTCM type event affected bitcoin ecosystem it would not have recovered. I dont even want to think about the effect of LTCM type event on a bitcoin.

All three were absolutely survived by the modern economies.

Sure, but not everyone has the privilege of living in a first world country. See for example the Republic of Georgia utilising blockchain tech to secure real estate transactions [0]. Now I am actually less afraid of investing my money as I don't trust their government.

[0] https://www.forbes.com/sites/laurashin/2017/02/07/the-first-...

Crypto's value collapsing now and then isn't rare either
At the minimum you can't fake its value.
The article does mention it.

> We’re interested in what’s happening with Lightning and other proposals to enable faster payments.

Please be careful about promoting LN. It's great tech, yes.

> this stuff really works!

* yes, but please don't actually use it with money yet. [1]

[1] https://github.com/ElementsProject/lightning#project-status

I have major doubts about how it will work in reality.

The routing of transactions just won't work in a fully peer-to-peer network. Inevitably large "Tier 1" hubs, interconnected together, will surely be needed.

Djikstra or Bellman-Ford type algorithms won't scale to where they need to for anything else, likewise users won't maintain enough funds in channels to make potential routes usable.

I reached the same conclusion after looking into the matter for a while. I've mentioned it several times on HN and elsewhere and have yet to find anybody offering a rebuttal. Worse, there are very little simulations being done on how it's going to work in practice (admittedly that was about 6 months ago, but the decision to implement segwit/lightning had already been taken at that point anyway).

We're talking about a $100+ billion market cap cryptocurrency and nobody knows how it's going to work. It's hype, speculation and memes all the way down. The power of greed.

Plenty of people (myself included) have used lightning on mainnet successfully.

People know the risks. It's just fun technology to play with.

I actually don't know the risks. Have a short version?
You lose all the money you invested, and any money you had in progress, and nothing is worth anything and you have wasted a bunch of time.
I think they are being over cautious (other implementations are not as concern), but yes still in testing. There are over 100 nodes, doing a bunch of transactions no money lost.
100 nodes for a network worth hundreds of Billions of dollars: that's not over cautious, that's under cautious.
Has there been a threat model performed by a security person (not a developer)?

Functional testing only goes so far and stops at the assumption that the code and design are correct.

The lightning network will not work. Yes, you can run a node and connect to ACINQ's lightning hub (called endurance), and you can even buy coffee at https://starblocks.acinq.co, their lightning demo site, but that demo was designed to be misleading. The only reason it works is because the endurance hub has locked up its own funds in a channel with Starblocks -- and it's no surprise that it did, since both are owned by the same company.

Let's say I wanted to set up a competing coffee shop, Starbricks (now with a brick of coffee in every cup!) I could certainly connect my own lightning node to the endurance lightning hub, but no one could pay me through that hub because the hub would first have to commit its own funds to its side of a payment channel with me. It won't do that, and I have no way to even ask it to, so I can't get paid unless every buyer opens a channel with me directly. And if they did that, it would be slower and more costly than just sending a Bitcoin transaction in the first place.

>I could certainly connect my own lightning node to the endurance lightning hub, but no one could pay me through that hub because the hub would first have to commit its own funds to its side of a payment channel with me. It won't do that...

"hubs" are incentivized to open channels, because they can charge fees for any transactions that go "through" them. Locking up some BTC for a short amount of time (roughly 3 days on average right now) to make some fees for routing transactions counterparty risk free doesn't seem like that bad of a deal...

> ...and I have no way to even ask it to...

The protocol has a way to "ask" for a new connection, you don't need to do anything but point your node at a funded address that is willing to accept new channels.

>I can't get paid unless every buyer opens a channel with me directly.

Or a single buyer opens a channel with you, that also has a channel open with that hub, and now you have a path to everyone and anyone that wants to buy coffee from you. Or maybe a single buyer opens a channel with you, that has a channel with another buyer, that has a channel with the hub.

Could you give an example of how to do what you're saying with the current testnet lightning network? Let's say I've installed the client, connected to the endurance hub (or to someone who has a connection to it) .. okay, now what do I need to do so I can get paid through the hub?

If I understood you correctly, you seem to be missing the fact that a hub has to separately lock up money with every node that it's connected to, if that node expects to be paid through the hub. That is an absolutely stunning amount of money for any popular lightning hub. Even if the hub is super-rich and super-benevolent, I have no way of asking it to lock up some funds on our channel, and the hub has no way of knowing that I want to accept payments through that route. If anyone tries to pay me, they'll just get a "no route found" error message even if a route exists, because that route is not funded at every edge.

A single buyer opening a channel with both me and the hub doesn't help unless the hub has funded its side of the channnel with that buyer, AND the buyer has funded his side of the channel with my coffee shop. Now we have twice as much money locked up -- and I still don't see how the hub will decide with whom to lock up its own funds.

>okay, now what do I need to do so I can get paid through the hub?

I don't think any of the main software setups right now allow increasing or setting a fee without recompiling it. They are getting the basics down still, and aren't working with fees really for the time being. At the moment, there are more than enough people willing to lock up their bitcoin for the testing of the network.

>If I understood you correctly, you seem to be missing the fact that a hub has to separately lock up money with every node that it's connected to

yes, but only "directly connected to"

>if that node expects to be paid through the hub.

no.

Think of it like a TCP/IP network. You don't need 20,000 connections to your house to browse the web, you need one connection to a hub, which has a handful in your own house, which connects to a bigger hub, which connects to another hub, which connects to another user/website.

>That is an absolutely stunning amount of money for any popular lightning hub.

I think the meaning of "locked" is wrong in this discussion. When you "lock" up money with a channel, it is only unavailable on the blockchain. The money in that channel is fully available to be spent in lightning network.

If we open a channel together and put in .5 BTC each, we can both spend that .5 BTC to other people on the network.

>Even if the hub is super-rich and super-benevolent, I have no way of asking it to lock up some funds on our channel

Again, the software does. You can set your "hub" to have a chunk of BTC that it is willing to "lock up" and allow it to accept channel open requests with anyone that has your address. And because that money is only "locked" for a few days (unless you want to prolong it), it's not a big deal because you can "get out" pretty quickly (even instantly if both parties are onboard).

>If anyone tries to pay me, they'll just get a "no route found" error message even if a route exists, because that route is not funded at every edge.

it's not a route unless it's funded. If there is a way to link a single line between you and who you want to transact with, it will work. More likely there will be several routes that it can take, and the network will optimize for the cheapest and least amount of hops.

The idea of an "unfunded channel" isn't really a thing, if I want to spend $500, i can "lock up" that $500, spend it, then keep the channel open for free forever. If at some point someone pays me $250, it can go right through that channel, and I can spend it later.

>A single buyer opening a channel with both me and the hub doesn't help unless the hub has funded its side of the channnel with that buyer, AND the buyer has funded his side of the channel with my coffee shop.

The act of "funding" a channel is opening one, so if there is a route, it's funded.

Also, another cool thing that is possible is the idea of "channel factories" where a bunch of people can open a "many to many" channel with one another, then from there can open and close channels in LN without touching the blockchain. This makes your worry obsolete because they can (again, without counterparty risk) open and close hundreds of channels a second if they want within their group, making it so they can open, receive, close, reopen with someone else, receive, close, etc... as much as they want.

That most likely won't happen for quite a while, but it's possible and will further reduce the cost of opening a channel in the first place to about 10% of an on-chain transaction for each party.

Can you elaborate on how locking works ? Mainly, does it require a BTC transaction (+fee) or not?
yes, it requires a transaction on the blockchain (with TX fees) to open a channel. But once a channel is open, you can keep it open forever (assuming the person you opened the channel with is willing).
I'm actually really curious about this as well, as Stripe becoming a lightning node would be huge for the network as they have so many connectors, both to payers and payees.

I kind of see the endgame of Bitcoin being this and I'm super bullish about BTC becoming viable as a payment platform again in a much more interesting way than the other competitors. BTC will have the best of all worlds if LTC actually ends up working on top of it.

For anybody familiar with BTC the LTC papers is pretty easy reading: https://github.com/lightningnetwork/paper

It is a super neat idea in all respects and could enable a whole new class of companies that provide these payment channels, all with very clear economic incentives not to suck while also requiring no trust on behalf of the users.

Lightning needs two additional transactions to load and unload payment channels, maximum transaction amount is 0.04 BTC, and it is at least 1 year away from maturity for large scale deployment.

Current price bubble will bust long before that, and no one will care about LN anymore.

> maximum transaction amount is 0.04 BTC

really? i haven't seen this anywhere before. can you cite a source?

It's not a "protocol" maximum, it's the currently allowed max in a lot of node software, since it's still VERY new and the probability that it will have a bug forcing you to lose all of your money is high right now.

So the developers put a limit of .04 BTC to keep that risk lower and prevent over-zealous users from losing a ton if something goes wrong. As the code matures and the network grows, that limit will be lifted in client code.

It's basically a "you can only easily lose this much money" max while the software is new. And you can compile it yourself without this max right now if you want to be a crazy person.

A full-scale LN needs one transaction to get on the network, then loading and unloading can happen entirely on the network, as well as keeping the channel open indefinitely.

Obviously getting to that point will take quite a lot of work, but there is no reason why you ever need to close a payment channel unless someone is trying to break the rules (and if that happens, you'll be happy, because you'll end up with all of the money in the channel, which will more than pay for the TX fees for 2 more transactions to close then reopen the channel).

But (correct me if I'm wrong) payment channels are connected to particular sets of recipients, but not necessarily any and all recipients. Your money is locked into that channel until you close it. You might need to open a different channel to reach your actual recipient.
No, you are missing the "network" part of "Lightning Network" it uses an onion-routing-like protocol to allow you to pay "through" other people.

So if I have a channel with you, and you have one with coinbase, I can buy bitcoin from coinbase through you without ever opening another channel, entirely counterparty-risk-free.

And in that scenario if you "refuse" to relay my transaction, or you try to do something sneeky like broadcast an old transaction that we made where I had .1 BTC and you had .9 BTC, that's breaking the agreement we have made and I can broadcast a counter-transaction to the blockchain proper which gives me all of the money in the channel (1 BTC).

And if I try to backstab you by broadcasting the "give me all the money" transaction when you haven't done anything wrong, you have a "counter-counter-transaction" you can broadcast that forces all the money in the channel to you (1 BTC). (and the counter-counter-transaction only works if you HAVE NOT broadcast the original transaction)

There is a bit more complexity to it, but that's the gist.

Easy peasy! Seriously, I've been skeptical of LN's success for its complexity. But reading your and others' comments here I can see that many people understand it clearly. It turns out I've been biased by my own ignorance. The more I learn about LN, the more hopeful I'm becoming. Thanks for helping.
Like most of bitcoin, it's a deceptively complex system made up of suprisingly simple parts.

I'm honestly still skeptical that LN will really take off (it needs the network effect to be useful), but the idea behind it is very elegant and solid.

If you're in the US, you might have heard of Starker exchanges (a.k.a. 1031 or like-kind). It's a method to defer realization of capital gains, usually on real estate. There are outfits that will help you form a multi-party exchange to match impedances between people who want to buy/sell properties, but some want to trade and some want to exchange for money.

Similar with organ donations. I might not match my wife's blood type, but I can donate a kidney to some other random person if there's a network that matches someone with my wife' blood type to her.

These are all the same idea.

Counter-counter-transactions sound like textbook example of overengineering.

Bitcoin's only advantage at this point is its price, which will go away as soon as there is a crash. Then we can scrap Bitcoin, LN, and all the baggage and start with a clean 3rd generation crypto slate.

It's only overengineering if it is superfluous, and in this case it's not.

The counter-counter-transaction solves a very real problem and makes the entire system counterparty-risk-free. It's no more "overengineering" than your airbags are overengineering.

This is why the Lightning network is something more than just payment channels. If you have 2 or more channels open on the network, you are a node that can have payments routed through.

Same with trying to pay someone on the network whom you do not have an open channel with: the LN's purpose is to facilitate a network of channels.

Certainly hubs will form, but there should be many of them, and if there's a path to your recipient, you don't need a dedicated channel with them.

payments can be routed to other recipients if there is a path to them in the network.
They mention in the post that they are interested in lightning.
Yes, maybe wishful-thinking but could have waited until a alternative was in place or at least have linked to a test implementation or something.
I think they had to act now because every single transaction was timing out (taking longer than an hour), meaning the service was effectively not working. They couldn't wait.
If you want to use it on your website:

https://github.com/ElementsProject/lightning-charge

The documentation is really bad online, could you share a link to help me set up a test node?
Sounds like a great startup opportunity to capitalize on a market underserved by Stripe.
I'd guess a large part of the value of Stripe being in that market was "We're Stripe, we are a serious payment company, even if this stuff is a bit weird you can trust us to handle it" vs "hi, we are a BLOCKCHAIN startup nobody has ever heard of, trust us plz". That's hard to provide.
Bitcoin isn't working so now we're adding more complexity on top of it. What could possibly go wrong?