Pages:
Author

Topic: Lightning Network / Bitcoin scaling question - page 2. (Read 487 times)

staff
Activity: 3458
Merit: 6793
Just writing some code
I'm not sure what things you're talking about for making transactions occur less frequently
The Lightning Network is an example of this. It makes onchain transactions occur less frequently because transactions are moved elsewhere but still use Bitcoin.

But bitcoin core seems ideologically against this, when is is so obvious that it is needed.
This is categorically false. Segwit is an onchain block size limit (redefined to block weight) increase that allows for more transactions.

What Bitcoin Core is ideologically against are changes (especially hard forks) that are controversial and whose effects are unknown. There's more to a block size limit increase than just the number of transactions that can fit in a block. There are considerations such as the computational power required to validate a worse case scenario block, the amount of network bandwidth it takes to transmit a block, the effect that having large blocks will have on the UTXO set, etc.

Bitcoin Core is opposed to changes that reduce the decentralization aspect of Bitcoin. And a hard fork changing the block size limit is one of those things.

but it is technically by far the easiest solution to say all at once boost transaction capacity by say 4 or 8 times with a very simple change.
This is also untrue. Increasing the block size limit is actually very difficult. First of all, the change is not just a one line change or very simple. It requires deployment code which can be very complex and has to handle various edge cases. It involves testing code to make sure that software don't break. It requires convincing everyone to agree that the change is necessary and good (which can be difficult) and convincing everyone to upgrade to the latest software (because actually increasing the limit requires a hard fork so everyone must upgrade).

So an optimized 1mb being increased to 8mb block is a much bigger deal than a non-optimized (the original blockchain) 1mb to 8mb increase.
First of all, the block size limit is not 1 MB, it is 4 MB. This is due to segwit.

Secondly, increasing the block size by 8 times will likely have a worse effect than you can imagine because you are not considering edge cases, worst case scenarios, and all of the nuance involved in block validation and propagation. And of course, increasing the block size limit inherently increases the centralization of Bitcoin because it increases the cost required to operate a full node.
hero member
Activity: 2240
Merit: 848
Is it just me or does it seem that Lightning Network is only one piece of what Bitcoin needs to scale?
Yes, Bitcoin will need more changes in order to have more transaction capacity. No one is claiming that the Lightning Network is the end all be all of scaling solutions nor is any claiming that we won't need to do anything else. Those who are don't understand how Bitcoin or the Lightning Network work. It would be naive to think that the Lightning Network would magically solve all of our problems.

The problem is calculating actual Bitcoin usage... as we saw in past occasions, the mempool was full, and everytime the mempool is full, the conspiracy theories begin: How do we know if it's just Roger+Jihad using periods of actual organic growth (say a mainstream FOMO moment) making it x1000 times worse with transaction spam, then claiming it wasn't them, just all organic growth from people seeing Bitcoin going to the moon on national television?

I just don't see a way to properly estimate what Bitcoin usage is and therefore if it's worth scaling it to said usage. For a person like me which barely transacts, I couldn't care less, but for others it's an issue... and again we can't know how legit these peaks of full mempool are.

What I do know is, blocksize increases are out of the question... it will NEVER happen. A blocksize increase will always result in 2 Bitcoins basically... the original one, and the new one which claims to be Bitcoin. There will never be consensus about it.


And this is what I'm pointing out. With this attitude, the thing that will NEVER happen is bitcoin being able to scale to a global demand. NEVER. There is only so much you can stuff through a 1mb bottleneck every 10 minutes. If you take increasing that entirely off the table, anything else you do are just half-measures that won't ever solve the problem. Even if with a bunch of scaling solutions they could somehow get onchain txs up to say 100/sec, that probably isn't nearly enough considered people will still do plenty of onchain txs plus opening/closing LN channels. But if you then add an increase to 8x increase to the blocksize, which is probably doable without risking decentralization and whatnot, that 100 txs/sec turns into 800 txs/sec!! Whatever non-blocksize increase solutions are implemented, adding to the blocksize multiplies them all! If you discount that you very likely discount the future success of bitcoin.

Why would you take a serious scaling solution off the table?? Scaling is the biggest problem and bitcoin will fail or succeed based on it. To say the most obvious part of the solution is off the table forever is saying you don't want bitcoin to succeed. It's the most dangerous to the market sure, but that's why you build a consensus for it before you do it. The segwit2x didn't have a consensus so it was very dangerous, but probably the only reason it didn't have a consensus is that bitcoin core was against it and therefore some other team had to say they were gonna do it. The bitcoin team should be building a consensus right now because a lull in the market is the perfect time to make a hard fork with less danger while most of the world is not paying attention.
hero member
Activity: 2240
Merit: 848

For consumers, you're gonna open a payment channel with some funds, now occasionally you might get more money from people sending you money like how people use venmo. But generally if you're using LN to buy things your funds are gonna run out even if your friends occasionally send you money venmo-style, so you need to close the payment channel in order to make a new one with new funds. Lets say the typical person funds there payment channel for a month, so you can pay your monthly costs and then you make a new one.
Not necessarily. You can make a single on chain transaction to someone who offers a rebalancing service. So you would pay some amount in an on chain transaction and then the service would send money through the Lightning Network to you so that your payment channel shifts money back to your end of the channel so you can continue to spend it. This would be cheaper than closing and opening the channel as there would only be one transaction fee to pay instead of two.


2. Side chains - is this the only real solution? I don't know much about side chains, how it would work exactly or their technical feasability. But if you have some network of child sidechains that handle a set of txs and everyonce in a while square back up with the main bitcoin blockchain that would seem to solve the problem. I imagine each tx from a sidechain would be very large since it moved a bunch of money around. So let's just say the bitcoin blockchain can on average handle one sidechain tx (the sum of all sidechain txs) each second and sidechains square up with bitcoin once each block (once ~10 min). Sidechains you have much quicker blocks so their txs get confirmed much faster, though i guess a tx would still need the main blockchain confirmations to be truly confirmed. Anyways, at a rate of one sidechain squaring up with bitcoin per second you can have about 600 sidechains. If each sidechain can handle the throughput of the original bitcoin blockchain (1mb every 10 minutes) then it would allows bitcoin to scaled by hundred of times its current ability. This is global scaling ability. The exact numbers are just guesses of course, maybe one sidechain squaring up with bitcoin would actually take up more than one second worth of txs on the main blockchain. But this seems theoretically the only doable way to truly scale bitcoin.
Sidechains are one of the known methods to increase transaction capacity. However there are still methods that have not yet been discovered, and still methods that we know about that have not been implemented yet. Things such as Key and Signature aggregation will increase transaction capacity by decreasing the size of transactions. It's not just about making blocks bigger or faster or having more blocks; we can also do things to make transactions smaller or transactions to occur less frequently which will help Bitcoin have a higher transaction capacity.


For the first part:
hmm that is a pretty good solution. Do you know if there are actual plans by any company to make this service. Though this would only cut the txs down by half, instead of opening and closing a payment channel yourself you'd just send one transaction to a service that funds your LN as you say. But yeah sounds like a good solution to help things a bit.


The second part:
Agreed there can also be things which reduce transaction size further. I'm not sure what things you're talking about for making transactions occur less frequently, unless you just mean batching by online services like online wallets and exchanges and whatnot, which will definitely help there be less transactions onchain, but that doesn't do anything for when people are using their own wallets.
Also reducing transaction size or even batching can only help so much. Bitcoin needs to be able to handle all onchain transactions plus all LN channel openings and closings without being clogged so that onchain txs (including LN channel open/close) get confirmed in an hour and maybe the fee is a dollar or two, to do this on a global scale would will probably take Bitcoin handling a few hundred times what it does now, and then LN will handle the rest up to however many thousands of txs per second. That WILL require either a huge increase in blocksize, which isn't feasible, or some other solution like sidechains.


It's good to know the LN white paper mentions that bitcoin needs onchain scaling. I didn't know that. But bitcoin core seems ideologically against this, when is is so obvious that it is needed. Due to the limits of onchain scaling it too is only a limited solution, but it is technically by far the easiest solution to say all at once boost transaction capacity by say 4 or 8 times with a very simple change. And every scaling solution builds on every other so everything needs to be put on the table. Likely it will be the combination of several solutions that will truly scale bitcoin. But onchain HAS to be one. The blocksize is the bottleneck, working around the bottleneck to increase the number of txs you can put into it with segwit and LN and other things is great, thats optimizing the space you have. But then at some point you have to increase the size of the bottleneck, and when you increase the size it multiplies by the factor of all those optimizations. So an optimized 1mb being increased to 8mb block is a much bigger deal than a non-optimized (the original blockchain) 1mb to 8mb increase.
Right now seems like the perfect time to hardfork bitcoin for a blocksize increase because we are in a lull of interest right now. Hard forking during a bull run when there is so much attention on bitcoin is much more dangerous. How nice would it be if by the time the world starts going crazy for bitcoin again they find out that oh not only did segwit get adopted for 2x scaling, and LN get set up to open up the common everyday and instant transactions use-case, but bitcoin also scaled another say 8x so that it plus segwit created a 16x scaling plus LN. At that point we're talking about actual decent scaling. Segwit, blocksize increase, LN, Schnorr, MAST, sidechains, batching from online services, it all needs to be on the table and taken seriously or else bitcoin WILL NOT scale. Right now I don't feel that the quickest and easiest of those solutions - blocksize increase - is even considered, even though this would be the perfect time during this lull in interest and media attention to implement it.
legendary
Activity: 1372
Merit: 1252
Is it just me or does it seem that Lightning Network is only one piece of what Bitcoin needs to scale?
Yes, Bitcoin will need more changes in order to have more transaction capacity. No one is claiming that the Lightning Network is the end all be all of scaling solutions nor is any claiming that we won't need to do anything else. Those who are don't understand how Bitcoin or the Lightning Network work. It would be naive to think that the Lightning Network would magically solve all of our problems.

The problem is calculating actual Bitcoin usage... as we saw in past occasions, the mempool was full, and everytime the mempool is full, the conspiracy theories begin: How do we know if it's just Roger+Jihad using periods of actual organic growth (say a mainstream FOMO moment) making it x1000 times worse with transaction spam, then claiming it wasn't them, just all organic growth from people seeing Bitcoin going to the moon on national television?

I just don't see a way to properly estimate what Bitcoin usage is and therefore if it's worth scaling it to said usage. For a person like me which barely transacts, I couldn't care less, but for others it's an issue... and again we can't know how legit these peaks of full mempool are.

What I do know is, blocksize increases are out of the question... it will NEVER happen. A blocksize increase will always result in 2 Bitcoins basically... the original one, and the new one which claims to be Bitcoin. There will never be consensus about it.
staff
Activity: 3458
Merit: 6793
Just writing some code
Is it just me or does it seem that Lightning Network is only one piece of what Bitcoin needs to scale?
Yes, Bitcoin will need more changes in order to have more transaction capacity. No one is claiming that the Lightning Network is the end all be all of scaling solutions nor is any claiming that we won't need to do anything else. Those who are don't understand how Bitcoin or the Lightning Network work. It would be naive to think that the Lightning Network would magically solve all of our problems.

Here's my thinking:
Lightning Network you have to open and close payment channels on the blockchain. Your funds are stuck in the payment channel until you close it. So if you are a company using the Lightning Network to get paid you are gonna probably have a bunch of different payment channels open and occasionally close them in order to actually get your money. And as a company selling things you're not going to be sending that money back out through the payment channel, so there is no reason to just keep the payment channel open to make payments, you're just gonna close them to get the money every once in a while. Let's say the company closes a payment channel on average once a month, though likely i think it'd be a shorter period than that.
Not necessarily. If you are a merchant, then you probably have a lot of channels open. So this means that you can act as part of a route for someone else's payment. People can route payments through you and when you need to pay for something, you can route payments through one of your customers.

For consumers, you're gonna open a payment channel with some funds, now occasionally you might get more money from people sending you money like how people use venmo. But generally if you're using LN to buy things your funds are gonna run out even if your friends occasionally send you money venmo-style, so you need to close the payment channel in order to make a new one with new funds. Lets say the typical person funds there payment channel for a month, so you can pay your monthly costs and then you make a new one.
Not necessarily. You can make a single on chain transaction to someone who offers a rebalancing service. So you would pay some amount in an on chain transaction and then the service would send money through the Lightning Network to you so that your payment channel shifts money back to your end of the channel so you can continue to spend it. This would be cheaper than closing and opening the channel as there would only be one transaction fee to pay instead of two.


Doesn't this show pretty obviously that Bitcoin needs larger blocks
Yes. People who directly work with the technology know this and are constantly thinking of ways to increase transaction capacity. Increasing the block weight limit is not the end all be all solution either. Many other things can be done to increase transaction capacity as well. It is a known issue and is even directly addressed in the Lightning Network paper.

2. Side chains - is this the only real solution? I don't know much about side chains, how it would work exactly or their technical feasability. But if you have some network of child sidechains that handle a set of txs and everyonce in a while square back up with the main bitcoin blockchain that would seem to solve the problem. I imagine each tx from a sidechain would be very large since it moved a bunch of money around. So let's just say the bitcoin blockchain can on average handle one sidechain tx (the sum of all sidechain txs) each second and sidechains square up with bitcoin once each block (once ~10 min). Sidechains you have much quicker blocks so their txs get confirmed much faster, though i guess a tx would still need the main blockchain confirmations to be truly confirmed. Anyways, at a rate of one sidechain squaring up with bitcoin per second you can have about 600 sidechains. If each sidechain can handle the throughput of the original bitcoin blockchain (1mb every 10 minutes) then it would allows bitcoin to scaled by hundred of times its current ability. This is global scaling ability. The exact numbers are just guesses of course, maybe one sidechain squaring up with bitcoin would actually take up more than one second worth of txs on the main blockchain. But this seems theoretically the only doable way to truly scale bitcoin.
Sidechains are one of the known methods to increase transaction capacity. However there are still methods that have not yet been discovered, and still methods that we know about that have not been implemented yet. Things such as Key and Signature aggregation will increase transaction capacity by decreasing the size of transactions. It's not just about making blocks bigger or faster or having more blocks; we can also do things to make transactions smaller or transactions to occur less frequently which will help Bitcoin have a higher transaction capacity.
hero member
Activity: 2240
Merit: 848
So as we all know the Lightning Network is supposed to be the big bad thing that solves Bitcoin scaling.

Is it just me or does it seem that Lightning Network is only one piece of what Bitcoin needs to scale?

Here's my thinking:
Lightning Network you have to open and close payment channels on the blockchain. Your funds are stuck in the payment channel until you close it. So if you are a company using the Lightning Network to get paid you are gonna probably have a bunch of different payment channels open and occasionally close them in order to actually get your money. And as a company selling things you're not going to be sending that money back out through the payment channel, so there is no reason to just keep the payment channel open to make payments, you're just gonna close them to get the money every once in a while. Let's say the company closes a payment channel on average once a month, though likely i think it'd be a shorter period than that.

For consumers, you're gonna open a payment channel with some funds, now occasionally you might get more money from people sending you money like how people use venmo. But generally if you're using LN to buy things your funds are gonna run out even if your friends occasionally send you money venmo-style, so you need to close the payment channel in order to make a new one with new funds. Lets say the typical person funds there payment channel for a month, so you can pay your monthly costs and then you make a new one.


Now for the math:

So if we assume for simplicity sake every payment channel closes after a month, this means a new corresponding payment channel must be opened as well, so two onchain transactions per month to open and close a channel. Lets just lump companies and people into one group called users, and so give each user two onchain LN transactions per month. With segwit fully adopted lets say Bitcoin can handle 6 transactions per second on average. 6 txs x 60 sec x 60 min x 24 hrs x 30 days = ~15.5 million LN payment channel opening and closings per month. Now lets divide that by two since each user has two channels open/close operations each month and we get about 7.75 million users.

Less than 8 million users can use LN! Don't we want Bitcoin to scale to a global level in which it can at the very least handle hundreds of millions of users, if not billions. And with the current Bitcoin network we're limited to less than 8 million with LN. That is a very significant problem to consider. And of course I haven't even mentioned actual onchain transactions, which will compete with LN channel openings/closings for space on the blockchain. And since in december 2017 during that mania phase the BTC fees went over $50 because the blockchain was so clogged we can certainly assume that onchain txs in the next couple years (not even counting LN) will far outstrip the blocksize even with segwit fully adopted. This means that the blocks will likely be full with high fees even without LN channels being added to the blockchain. So the actual number of LN users that are likely is far far lower than 8 million.

Doesn't this show pretty obviously that Bitcoin needs larger blocks or else even the LN is gonna be pretty useless when it costs either a lot of money or a decent amount of money and a several day wait just to open or close a payment channel? Especially when you consider most use cases for the LN simply aren't current Bitcoin use cases. LN is more economical for small purchases. But Bitcoin usage for small purchases right now is probably near zero. So LN doesn't lessen demand for onchain txs, it just opens up new use cases for bitcoin, which means it does open up new use cases for allowing Bitcoin to be a payment network, but it doesn't really do anything to solve the current scaling problem. Onchain txs will continue to grow and LN doesn't do anything about that. And segwit only doubles the throughput. Bitcoin needs many times more onchain scaling that what segwit provides to make onchain txs and LN usable as usage grows.

Thoughts about this?

I have two main thoughts about this:

1. Blocksize can't be realistically increased to hundreds of megabytes (or even tens of megabytes) that it would take to make Bitcoin scalable to global mass market participation. It would make the network run horribly and make it highly centralized which would lead to the failure of the coin. However Bitcoin does need some sort of manageable blocksize increase to say 4mb or 8mb just to handle the demand in the next couple of years. But this is a temporary solution.

2. Side chains - is this the only real solution? I don't know much about side chains, how it would work exactly or their technical feasability. But if you have some network of child sidechains that handle a set of txs and everyonce in a while square back up with the main bitcoin blockchain that would seem to solve the problem. I imagine each tx from a sidechain would be very large since it moved a bunch of money around. So let's just say the bitcoin blockchain can on average handle one sidechain tx (the sum of all sidechain txs) each second and sidechains square up with bitcoin once each block (once ~10 min). Sidechains you have much quicker blocks so their txs get confirmed much faster, though i guess a tx would still need the main blockchain confirmations to be truly confirmed. Anyways, at a rate of one sidechain squaring up with bitcoin per second you can have about 600 sidechains. If each sidechain can handle the throughput of the original bitcoin blockchain (1mb every 10 minutes) then it would allows bitcoin to scaled by hundred of times its current ability. This is global scaling ability. The exact numbers are just guesses of course, maybe one sidechain squaring up with bitcoin would actually take up more than one second worth of txs on the main blockchain. But this seems theoretically the only doable way to truly scale bitcoin.
Pages:
Jump to: