On Todays Episode of Let's Talk Bitcoin...
Stephanie Murphy, Andreas Antonopoulos, Jonathan Mohan, and Adam B. Levine sit down for the first of our two-part discussion on the nascent but rapidly improving Lightning Network.
Selected Excerpts transcribed courtesy of Professor Meow
Lightning Network Privacy
Jonathan Mohan: What level of obfuscation does lightning provide and does it intend to get more obfuscation?
Andreas Antonopoulos: The routing network today provides a very significant level of privacy. Keep in mind that the only people who see a transaction on Lightning (unlike Bitcoin where transactions are published on the ledger), the only people who see a transaction are the nodes through which the transaction flows. People ask how many transactions are happening on Lightning network? The answer is a very comforting: we have no clue; it's impossible to measure.
Stephanie Murphy: We just know the total volume of the value of Bitcoin that's being transacted there?
Andreas Antonopoulos: No, we know the total volume of channels that have been advertised as capable of routing. We don't know the channels that have not been advertising, and we don't know how much of that capacity is being used. Keep in mind capacity is not velocity. You could have entire secret sub-networks within lightning.
Adam B. Levine: Do you think there will be a differentiation between multiple public networks? Or is there one big public network, then lots of people can have private networks?
Andreas Antonopoulos: It's one big public network, and within it, lots of people can have what is effectively Virtual Private Networks on top. So it's like VPNs on the Internet - those are invisible. Just like the Internet, what you see, what is advertised, announced, and broadcasted to the world is the tip of the iceberg. There's a very big and deep iceberg underneath that may not be visible. We have no way of measuring or knowing how big that is, and that's how it should be.
Adam B. Levine: Andreas, have you looked into neutrino much?
Andreas Antonopoulos: Yeah, I've actually been running neutrino as well for a while. This is a really amazing development. It's a massive improvement over the old model - the model isn't really the SPV that's described in the Bitcoin whitepaper. Basically what it does is it allows you to send a compressed set that describes the transactions that are in a block, send that to a light client, so that it can request to receive any blocks that have transactions of interest to it. It can download the full block or the full transaction set only for those things that it's interested in, while not telling the nodes that it's connected to what it's interested in. That's a massive increase in privacy. This is not just for Lightning, that's important to understand. Neutrino can be used as a light client for on-chain Bitcoin transactions to massively increase the privacy of mobile wallets. Of course, it can be used so that you can have a Lightning wallet that's not necessarily connected to your own lightning node, but also doesn't break your privacy.
Adam B. Levine: The entire Bitcoin blockchain can get summarized down to 40 Megs?
Andreas Antonopoulos: Yes, that's for the initial sync. After that, it can continue to get updated summaries that are even smaller (in the kilobyte size) in order to maintain synchronization. So it's doing full validation without having a full copy of the block. Of course, all of this depends on having full nodes that are willing to publish Golomb coded sets to feed to neutrino clients. We still need a lot of people to run full nodes, but the bandwidth burden on those nodes to serve neutrino clients obviously drastically reduced. A single full node can serve a lot of neutrino clients very efficiently.
Atomic Multipath Payments
Andreas Antonopoulos: This is a routing infrastructure improvement - it will be completely transparent to users. Instead of just constructing a single route that originates from your node, that goes through one of the channels in which you have enough capacity to send an outgoing payment, and follows that model to find the next channel where there's sufficient capacity until you get to the destination, you can have several smaller channels which together have enough.
Andreas Antonopoulos: This is probably one of the most powerful and underappreciated features. My theory is that the way we're going to see Lightning being used is that people will have the vast majority of their funds on Lightning all the time. The only funds that are not on Lightning are the funds you keep in cold storage.
How do you make this jump between on-chain and off-chain? That's where splicing comes in. What splicing allows you to do is blend the open channel, close channel and on-chain Bitcoin outputs into a single transaction.
If I need to open a channel in order to start using Lightning, but then I want to get my Bitcoin back, I would have to close the channel. I'm gonna have to do this opening and closing channel not too infrequently. Maybe I'm opening and closing channels once a week or once a month, and then if everybody needs to open and close channels once a week or once a month, there's not enough capacity on the Bitcoin blockchain to do that. That's the wrong way of looking at it because you're not going to be doing that.
You're going to instead create a channel every time you do a Bitcoin transaction - there's no reason to take the change and put it back into an on-chain wallet. Instead, you fund channels every time you do a Bitcoin transaction, and you can do a Bitcoin on-chain transaction every time you rebalance, close or open a channel, and combine all of those functions. So a single transaction can have as its inputs the multi-sig of a closing channel, as its outputs the multi-sig of an opening channel, and an on-chain Bitcoin transaction. So you can basically splice Bitcoin into a channel, splice Bitcoin from a channel out onto the Bitcoin blockchain, and simultaneously open and close channels in the same transaction.
This allows you to send Bitcoin into a Lightning channel, send Bitcoin from Lightning out onto the Bitcoin network (make an on-chain Bitcoin payment or traditional on-chain Bitcoin payment), close the channel, and open a channel. All four things in one transaction simultaneously.
So every Bitcoin transaction in which you're paying a fee becomes an opportunity to also open and close several channels and make other Bitcoin payments.
Adam B. Levine: Is the idea here just that users will be making transactions periodically and so this is a way to piggyback on existing traffic?
Andreas Antonopoulos: Bingo. What that means is that your wallet does all of this automatically. It decides, depending on who you want to pay and whether they can be reached on-chain or off-chain to construct your transaction and piggyback as many open and closed channels as it needs to do. Rebalancing and other housekeeping duties, and minimize your fees by batching all of that stuff together.
But wait, there’s more! The main reason we use coinjoin is for obfuscation and privacy. But if you think about it, it also saves on transaction fees. Because if you're going to do that transaction anyway and you get five other strangers to join you and do their transactions, you pay one transaction fee across all of you. One transaction with five times the outputs is a lot cheaper than five transactions. This makes even more sense if you have, for example, an exchange that is doing withdrawals or deposits onto lightning, and it has a whole bunch of customer withdrawals. You know, the classic batching problem that exchanges are trying to implement in order to save on fees.
Adam B. Levine: So what you're saying here is that splicing has implications that extend beyond single people and really this is a technology that could be extended to improve privacy and obfuscation? Or do you see this being set up like coinjoin where anyone can participate?
Andreas Antonopoulos: This isn't just for obfuscation; this is also a massive saving on channel transactions.
Links from the episode:
Lightning Stats: https://1ml.com/
or Via the Lightning Network at tipltb.tokenly.com/
Thanks for listening to this episode of Let's Talk Bitcoin, content for today's show was provided by Andreas Antonopoulos, Stephanie Murphy, Jonathan Mohan, and Adam B. Levine.
This episode was edited by Dave/Adam and featured music by Jared Rubens and Gurty Beats.
Send questions or comments to [email protected]