If the other party in all of your channels has a balance of 0, then you cannot receive Bitcoin. What would need to happen is that you either transaction and send money to someone else thus moving funds to the other person in your channel, or someone opens up a channel with you and they fund the channel.
^ and here shows the problem ^
imagine 5 people (a.b.c.d.e) opened a channel and each funded 10btc
[A:10 - B:10] [B:10 - C:10] [C:10 - D:10] [D:10 - E:10]
in this case A has 1 channel(to B)
in this case B has 2 channel(to A and C)
in this case C has 2 channel(to B and D)
in this case D has 2 channel(to C and E)
in this case E has 1 channel(to D)
in total there are only 4 channels open because they are shared
now imagine A wanted to pay E 10btc
here is what happens
1st 'hop' - A pays B 10btc in channel 1 using channel 1 funds
[A:0 - B:20] [B:10 - C:10] [C:10 - D:10] [D:10 - E:10]
2nd 'hop' - B pays C 10btc in channel 2 using channel 2 funds.. channel 1 funds do not move
[A:0 - B:20] [B:0 - C:20] [C:10 - D:10] [D:10 - E:10]
3rd 'hop' - C pays D 10btc in channel 3 using channel 3 funds.. channel 1 and 2 funds do not move
[A:0 - B:20] [B:0 - C:20] [C:0 - D:20] [D:10 - E:10]
4th 'hop' - D pays E 10btc in channel 4 using channel 4 funds.. channel 1, 2 and 3 funds do not move
[A:0 - B:20] [B:0 - C:20] [C:0 - D:20] [D:0 - E:20]
now you may see the problem.
A has raided B's ability to pay C, D or E because B has nothing in channel 2 to 'pay forward'
A has raided C's ability to pay D or E because C has nothing in channel 3 to 'pay forward'
A has raided D's ability to pay E because D has nothing in channel 4 to 'pay forward'
so imagine you were B. and you only had 20btc to your name
you open 2 channels.. one with A and one with C
before you can even buy a coffee(C) for yourself .. A has leached you dry
before you can even buy a doughnut(D) for yourself .. A has leached you dry
before you can even buy a eclair(E) for yourself.. A has leached you dry
your only options are to close your channel with A (costing you a onchain tx fee to get it added to a block) then open a new channel to redeposit your 20BTC from [A-B] to go into [B-C]. costing another onchain fee. just so you can buy a coffee
big emphasis
you cannot take the funds from [a-b] and put them into [b-c] without closing [a-b] to then reopen a new [b-c]
another way to imagine it
Aguy has a Beautiful wife, they have a joint bank account
the Beautiful wife has a separate joint Cashcard account to monitor her Childs allowance
Aguy tell the wife she can have $10 of their joint account if she pays $10 to the child out of her separate cashcard account
that payment agreement is done
.. but now the Beautiful wife doesnt have $10 in her cashcard account to pay the child next weeks allowance.... unless she withdraws funds from the joint account (costing a fee) and deposits them into a new cashcard account(costing another fee)..
...
i hope this illustrates that channels are not limitless. nor are they trustless. because it requires counter party agreement. not sole control
i expect achowe to rebutt that if A was to sent 10BTC knowing it will wipe out B's future own spending ability with C,D,E.. that B will refuse..
but that raises the problems of:
1. not having many reliable hops willing to surrender their spendability to helpout the network of hops
2. it ends up requiring people to have MANY channels in the hopes that just one partner will agree to helpout
3. the onchain fee's to open and close these many channels are not cheap
4. the need to close and re-open to 'balance the books' and redeposit will spam the network
imagine it
costing onchain fee for every channel open and close..
would you use paypal if it cost you $2-$6EACH to open a channel knowing you will need to open channels with 2-10 ebay merchants ($4-$60) for the hope that oneone will agree to surrender some or all of their spendability to help the network
the devs are still stuck in the 'does it break' mindset but have never even thought about the 'is it useful long term' mindset
they are too busy looking for code bugs. that they cant see the FUNCTION/UTILITY bugs