#bitcoin-lightning: Things to Know
There are multiple worldwide teams racing to implement and revise the draft spec, but there’s a great deal of understandable confusion outside those teams. Let me try to describe the state of play:
Is Lightning Bitcoin?
Yes. You pick a peer and after some setup, create a bitcoin transaction to fund the lightning channel; it’ll then take another transaction to close it and release your funds. You and your peer always hold a bitcoin transaction to get your funds whenever you want: just broadcast to the blockchain like normal. In other words, you and your peer create a shared account, and then use Lightning to securely negotiate who gets how much from that shared account, without waiting for the bitcoin blockchain.
Can I Send Funds From Lightning to a Normal Bitcoin Address?
No, for now. For the first version of the protocol, if you wanted to send a normal bitcoin transaction using your channel, you have to close it, send the funds, then reopen the channel (3 transactions). In future versions, you and your peer would agree to spend out of your lightning channel funds just like a normal bitcoin payment, allowing you to use your lightning wallet like a normal bitcoin wallet.
What Are Lightning’s Limitations?
Intermediate failures: If an intermediary node fails during the fraction of a second for a transaction, you might have to wait for a timeout, which could be hours or even days.
Peer failures: if one of your peers is unresponsive, you might have to wait for hours to close that channel spend your funds.
Avoiding peer cheaters needs someone to actively monitor the blockchain: either your node watches to see if your peer tries to spend an obsolete transaction, or you outsource it to any number of server (with no loss of privacy).
No Offline Payments: you can’t pay someone who is not online; fundamentally a lightning payment is a trade of bitcoin for a secret value, and that’s only trustless if they’re online.
Terrible for large payments: If there is a route, but it doesn’t have capacity to transfer the amount you want, you can’t use it. Fees on lightning are based on a flat base fee plus a percentage; on-chain bitcoin fees use transaction weight instead. The first version of the lightning protocol spec limits payments to 0.04294967296 bitcoin anyway and channels to 4 times that amount.
Relies on Bitcoin: if Bitcoin fails, Lightning does too.
What Are Lightning’s Advantages?
Tiny payments are possible: since fees are proportional to the payment amount, you can pay a fraction of a cent; accounting is even done in thousandths of a satoshi.
Payments are settled instantly: the money is sent in the time it takes to cross the network to your destination and back, typically a fraction of a second.
Wait, Why Are Payments Limited to 0.0429 Bitcoin?
It’s better for bootstrapping the network. Lots of small payments work better than large payments that would exhaust channels, and big payments can just use on-chain Bitcoin. We need experience with real network behavior, while discouraging anyone from committing funds they can’t afford to lose: there will be bugs and flaws, and I’d like to think if someone loses funds I can buy them a beer and we’ll be approximately even.
How Private is Lightning?
Reasonably. Payments are routed via nodes that can’t tell anything but the previous and next hops. But if two nodes on the route cooperate, they can tell it’s the same payment. If someone sees all the packets, they can do traffic analysis to try to figure out where payments are going. And an active malicious node on the path could probe to see if a payment is accepted by a particular destination. The first and last problems have a known solution, which I’d expect in a future spec; traffic analysis countermeasures will evolve.
Can I Make Money Running a Lightning Node?
Not really. Anyone can set up a node, and so it’s a race to the bottom on fees. In practice, we may see the network use a nominal fee and not change very much, which only provides an incremental incentive to route on a node you’re going to use yourself, and not enough to run one merely for fees. Having clients use criteria other than fees (e.g. randomness, diversity) in route selection will also help this.
What Resources Does It Take to Run a Lightning Node?
A (pruned) full bitcoin node, for now. Using a full bitcoin node is always going to be the safest and most private option (and more full nodes are good for everyone else, too!), but light nodes are possible with some caveats, some of which can be removed by further extensions to the lightning protocol.
How do we bootstrap a completely new user?
With wallet support. It’s common to introduce people to Bitcoin by having them set up a wallet and sending them $5. How do you this with Lightning if someone has no bitcoin to fund a channel? Simple wallet support to pay for someone else’s channel makes this scenario much smoother.
Does Lightning require Segregated Witness?
Yes, but not in theory. You could make a poorer lightning network without it, which has higher risks when establishing channels (you might have to wait a month if things go wrong!), has limited channel lifetime, longer minimum payment expiry times on each hop, is less efficient and has less robust outsourcing. The entire spec as written today assumes segregated witness, as it solves all these problems.
Is routing an unknown problem?
No. The network in the early stages is small enough that routing is easy. Once it gets too large, we’ll all have more data to assess the tradeoffs between optimal routing, complexity, and information leakage to refine the more ambitious schemes that have been proposed.
How can lightning fail?
In any number of ways. Including all the ways the Bitcoin network it relies on can fail. Even without technical problems, the people creating the protocol are just implementers: users have to maintain their nodes and the network as a whole for a healthy ecosystem. But if the future were known, there’d be no fun in life!