Hacker News new | ask | show | jobs
by flowctrl 3081 days ago
The Lightning Network, coming soon to Bitcoin, will solve the performance & fee problems too. Stability will come with increased liquidity.
2 comments

People keep saying that. I wonder if they have actually read the white paper. The lightning network will only work for exchanges who will keep channels open between them. Getting a graph of every wallet connected to every other wallet is a mathematical impossibility.

The lightning network is essentially instituting central banking all over again, this time with bitcoin. "Oh so you want to transfer coins quickly? Better keep them at well connected exchange so it can be instantaneous, and you'll only be transferring between exchanges by the way."

> The lightning network will only work for exchanges who will keep channels open between them. Getting a graph of every wallet connected to every other wallet is a mathematical impossibility.

Transactions can be routed through multiple channels, you don't need to open a channel to every single wallet you want to transact with. That would not be a Lightning network, it would just be payment channels.

> The lightning network is essentially instituting central banking all over again, this time with bitcoin. "Oh so you want to transfer coins quickly? Better keep them at well connected exchange so it can be instantaneous, and you'll only be transferring between exchanges by the way."

Not even close to central banking, LN transacts real Bitcoins, not IOU's, so they can't print more base money or more debt-based money. There's also no trust needed (no counter-party risk and you can route around censorship attempts)

*

1 point by fgonzag 0 minutes ago | edit | delete [-]

I know you can chain multiple channels. I've read the paper. Anyone with a relatively basic math background can see the problems the lightning network will not work as a "decentralized" network.

So you'll end up with many hubs, and you'll have to open a channel from your wallet to a hub (or multiple hubs) if you want to be able to pay or receive payments from (insert random wallet here). These hubs will take a cut to process payments. The more hops you have between two wallets, the more fees you'll have to pay (as you'll have to pay a fee for each hop). We just turned into VISA and Mastercard.

That's without mentioning the high capital reserve requirements that hubs will be forced to have, and how easy it would be to DDOS a specific hub by abusing the nLoc timer, especially since the transaction can only be forced to close if the only pending acknowledgement is from the originating wallet. Every other hop can essentially hold off for 1 day.

As I understand it, bitcoin is a ledger scheme. There no "coins" per se. Which means it's very much like how banking works in practice: everyone keeps their own books and leaves the credits and debits on them. Real funds don't change hands all that often, it's easier just to keep the running tally if you trust your counterparty.

Of course, trusting your counterparty requires you to know who they are, have stable addresses and so on.

You're basically right except with payment channels you mostly don't have to trust the counterparty.

The simplest case is a unidirectional channel. To pay you a series of micropayments, I send a series of transactions with each one slightly larger, so each is the sum of all my payments. You can only submit one such transaction to the blockchain. I lock my funds so you don't have to worry they won't be available.

Bidirectional channels and networking are elaborations on this idea. In bidirectional channels the main risk is that your counterparty will submit an obsolete state; there has to be a delay and you have to monitor the chain so you can submit a more recent state if that happens. You don't have to know who the counterparty is.

(Your analogy to a ledger with account balances is precisely correct for Ethereum, but Bitcoin actually has a somewhat different model.)

If I'm reading you, the idea is to essentially to negotiate out-of-band? I remember reading something like this in Bitcoin and Cryptocurrency Technologies with a note saying nobody had tried it in practice.

> (Your analogy to a ledger with account balances is precisely correct for Ethereum, but Bitcoin actually has a somewhat different model.)

My understanding is that in bitcoin it's a log of transactions -- a ledger. Ethereum is instead addresses holding totals -- more like an account statement.

Unidirectional payment channels are currently live on Ethereum. Here's a full explanation of those, along with bidirectional and networked channels, with Solidity sample code: http://www.blunderingcode.com/a-lightning-network-in-two-pag...

I guess I've been misusing the term "ledger." You're exactly right for Ethereum. Bitcoin has transactions with "unspent outputs." Each transaction can have multiple inputs and outputs; to make a transaction you collect unspent outputs from previous transactions, use them as your inputs, and typically make two outputs, one to the payee address and one that holds the change.

This is so wrong in so many ways...

Not only is the "network" part of LN referring to the ability to chain multiple channels together to make payments several hops away if needed, but why would exchanges be the only one you could transfer to?

Currently on mainnet a VPN vendor is really the only major player, and it's expected that most vendors will have a lighting node, as all it requires is an always online server...

Not to mention that transacting over LN has no counterparty risk, and "keeping a graph of every connected wallet" is not an impossibility... It uses the TOR protocol which runs over IP, which are both the kinds of networks of channels you imply are impossible here...

It sounds like you read the first 2 paragraphs of the paper and decided to stop. Read more, and these details will be explained in excruciating detail.

> Getting a graph of every wallet connected to every other wallet is a mathematical impossibility.

Why is that remotely relevant? Why would I want my wallet 'connected' to any wallet I'm not going to transact with?

Because you might need to pay someone? How do you know beforehand all the wallets you are going to transact with? (Assuming we are talking about using it as a currency anyways)
Is there an ETA for the Lightning Network? It seems to have been 'coming soon' for a while.
There's no ETA, people can start using it right now if they want (some crazy people are already using it on main net) but the developers don't consider it safe and stable enough to use with real money (only recommended on test-net right now)
https://www.reddit.com/r/Bitcoin/comments/7npeh6/lightning_n...

This post on reddit would be a good place to get understanding of the current LN status.