Pages:
Author

Topic: The Lightning Network FAQ - page 65. (Read 32053 times)

copper member
Activity: 1610
Merit: 1898
Amazon Prime Member #7
April 27, 2020, 12:47:40 PM
I am not sure if this is currently implemented, but the parties to a LN channel could agree that neither side will agree to a transaction that causes one side's balance to fall below a threshold. The parties could agree that this threshold changes periodically.
It's probably possible to implement, but why would you do that? If you don't want to use your full channel balance, you could just deposit less.

If you really don't want to use the entire channel capacity, I don't think you need the other party for it: if you're the one who opened the channel, you can just decide on your own not to use the full capacity. If you're the receiving party, it's not in your interest to refuse payments even though the channel has enough capacity.
If it's about balancing the channel, there are other ways to do this.
If Alice and Bob have an open channel, and for simplicity sake, say the average TX fee necessary to close a channel is 0.001 btc.

If Alice has a balance of 0.0015 and spends 0.006, it would not make sense for Bob to broadcast the penalty transaction because the transaction fee would be more than the additional amount he will receive. If Alice spends her balance down to a small number of sats, she could delay the closing of the channel even though she is basically owed nothing.
full member
Activity: 305
Merit: 106
April 27, 2020, 08:45:06 AM
Also if bob has three open LN channels, if he has a receiving capacity of 1 BTC on channel A, someone trying to send coin via channel A will not necessarily know what other channels he has open, and a transaction getting declined would only reflect the balance on the channel with the smaller sending capacity. Or the computer behind one of the other channels might be down temporarily.

I was referring to something else, to ensure someone does not find out my balance within a certain channel. Guess I wrote wrong, sorry.

Let's say I open a payment channel with godaddy (first thing that came to mind)
I deposit 0.1BTC and godaddy 0BTC.
Now you (for example) can connect to my payment channel (they are public and also total balance is too) and you try to send godaddy bogus payment of 0.05BTC. You get invalid hash (because you can do that when off-chain). That means I have at least 0.05BTC. Then try 0.07-8-9... and finnaly you find out (with 99% certainty) that my balance is 0.1BTC

It is about one's balance in each channel, true, I could have 100 open channels at a given time... but some might not appreciate that info to be that accessible

What the authors in the paper also describe is also expensive. To make 50k 'hops' in the LN network, it would cost ~$3-4 assuming 1 sat/hop, this is not much money, but in order to meaningful information, you would need to determine the balance of LN channels many times per day.

From what I understood you can also use "made-up"/bogus transaction hashes and you base the next move on the error receives (as I said above). So could also be free

Unless I am missing something, which is possible, when network utilization is low like it is now it will work. Once it gets busy it's going to be useless since if 100s or 1000s of transactions are happening per minute by the time you get the data and parse the data the data might have changed.

Now that channels can stay unused for weeks at a time it's a different story.

The idea was to identify someone`s "stake" in a channel.
Routing a payment through node A to node B in order to find out node A's balance.

legendary
Activity: 3458
Merit: 6231
Crypto Swap Exchange
April 27, 2020, 08:11:47 AM
What do you guys think of channel probing? Is there a way to ensure someone does not find out the channel ballance?

https://arxiv.org/abs/2004.00333

Unless I am missing something, which is possible, when network utilization is low like it is now it will work. Once it gets busy it's going to be useless since if 100s or 1000s of transactions are happening per minute by the time you get the data and parse the data the data might have changed.

Now that channels can stay unused for weeks at a time it's a different story.

Stay safe.

-Dave
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
April 27, 2020, 04:49:12 AM
I am not sure if this is currently implemented, but the parties to a LN channel could agree that neither side will agree to a transaction that causes one side's balance to fall below a threshold. The parties could agree that this threshold changes periodically.
It's probably possible to implement, but why would you do that? If you don't want to use your full channel balance, you could just deposit less.

If you really don't want to use the entire channel capacity, I don't think you need the other party for it: if you're the one who opened the channel, you can just decide on your own not to use the full capacity. If you're the receiving party, it's not in your interest to refuse payments even though the channel has enough capacity.
If it's about balancing the channel, there are other ways to do this.
copper member
Activity: 1610
Merit: 1898
Amazon Prime Member #7
April 27, 2020, 12:25:10 AM
What do you guys think of channel probing? Is there a way to ensure someone does not find out the channel ballance?

https://arxiv.org/abs/2004.00333
I am not sure if this is currently implemented, but the parties to a LN channel could agree that neither side will agree to a transaction that causes one side's balance to fall below a threshold. The parties could agree that this threshold changes periodically.

Also if bob has three open LN channels, if he has a receiving capacity of 1 BTC on channel A, someone trying to send coin via channel A will not necessarily know what other channels he has open, and a transaction getting declined would only reflect the balance on the channel with the smaller sending capacity. Or the computer behind one of the other channels might be down temporarily.

What the authors in the paper also describe is also expensive. To make 50k 'hops' in the LN network, it would cost ~$3-4 assuming 1 sat/hop, this is not much money, but in order to meaningful information, you would need to determine the balance of LN channels many times per day.
legendary
Activity: 3458
Merit: 6231
Crypto Swap Exchange
April 25, 2020, 10:12:39 AM
Is this device worth the $99.00? http://mynodebtc.com/products/premium

Asking for a friend. Real reviews from real users only, no shilling. It might be the cheapest way to start "staking" coins in Lightning, without the installation headache.

I'll start with the tl;dr
Yes, if for no other reason then to support the developer. And it does a lot with very little work on your part. If you run the VM or have an RPi with a GOOD external drive it's free. I would still pay to support the dev. You can do it all yourself but....

Dave's long rambling:
I have 3 "nodes in a box" up at the moment 1 is the raspiblitz that I have spoken about in this and other threads. It's running on a RPi4 under a desk at home.
I have 2 mynodes running. 1 paid for 1 not since I tinker and re-set it a lot. They are both virtualbox VMs but the RPi version is just as good. It's not just a lightning node.
It also runs the Ride the Lightning webapp so you can use your lightning wallet from your local web browser. It also has Dojo and Whirlpool so you can connect your Samourai wallet to it. [still needs tweaking but it does work if you put in the time]  Also, it's running an Electrum Server so you can connect that to it also. Along with some other apps.

Now all of that put together has saved *me* WAYYYYY more then $100 in time. I don't know where you live and how much you get paid, but they have put it all together in once nice more or less click to run package. I could do it myself. Probably take days and days and not even have the nice web front end. For me that alone is worth it. YMMV on that. Also, with the paid version you get more "stuff" the TOR & VPN are nice and I do like having the local mempool.space explorer. So you do have to factor in the cost in your time to get those running if you wanted them. BTC pay server is also in the paid version, but for me I would always run that as a separate stand alone thing, but that is me.

So yeah I would pay the $99.
The $279 for the hardware with the APP....that's a tough call. RPi4 + 512GB Samsung SSD + SD card + 5A power adapter is less then $179 they are giving a 1TB but don't know the brand. And if there is a hardware issue I don't know their service. Also, again, not knowing where you are in the world changes price matters.

Stay safe.

-Dave
legendary
Activity: 2898
Merit: 1818
April 25, 2020, 06:33:11 AM
Is this device worth the $99.00? http://mynodebtc.com/products/premium

Asking for a friend. Real reviews from real users only, no shilling. It might be the cheapest way to start "staking" coins in Lightning, without the installation headache.
full member
Activity: 305
Merit: 106
April 20, 2020, 06:22:49 AM
CMIIW, but isn't it possible to get available balance of both direction (push and pull figure) simply by reverse the direction of transaction routing?

Code:
Attacker A -> Bob -> Attacker B

Attacker A <- Bob <- Attacker B

In both scenarios you probe and can find Bob's ballance.
You actually don't need any funds as you can use random payment hashes and observe the errors you get. Oversimplifying this a bit.. you send 0.5 btc. "not enough funds" means try with less.. "invalid payment hash" means try more... untill you can find out the ballance pretty accurately.

Code:
Attacker - > Bob - > John   ... find out Bob's ballance
Attacker - > John - > Bob   ... find out John's ballance

At least from what I understood.
And yeah... ignoring routing does not seem to be the way to go
legendary
Activity: 2898
Merit: 1818
April 20, 2020, 04:38:29 AM
I was asking about easier pathfinding, when there are multiple fee settings across the channels. Plus if it would make transactions pass through to its destination with less errors?

Pathfinding I'm not sure but maybe you asked if routes with higher fees were statistically more reliable ? If so I don't have stats but I would expect people who raise their node's fees would at least try to please the LND rating algorithm (and so have balanced channels, be more reliable, etc..).

Those routes are not easier to find though Smiley.


Haha. Maybe it was wrong of me to expect that, "balanced/more reliable channels = more right to set higher fees. Therefore higher fees = better"?
sr. member
Activity: 279
Merit: 435
April 20, 2020, 03:47:27 AM
I was asking about easier pathfinding, when there are multiple fee settings across the channels. Plus if it would make transactions pass through to its destination with less errors?
Pathfinding I'm not sure but maybe you asked if routes with higher fees were statistically more reliable ? If so I don't have stats but I would expect people who raise their node's fees would at least try to please the LND rating algorithm (and so have balanced channels, be more reliable, etc..).

Those routes are not easier to find though Smiley.
legendary
Activity: 2898
Merit: 1818
April 20, 2020, 01:19:49 AM
Would pathfinding be made easier if you use a higher setting for fees? I believe that might support also the theory that fees in Lightning would be a little higher than the promoted, "unfairly cheap fees".

No, pathfinding is hard because you (currently, will be optimized when needed) have to browse the whole graph to find a route, and thus you need to keep this big graph up-to-date (hard on bandwidth).

I guess those promoting these "unfairly" cheap fees would now argue that "it was 'unfairly cheap' in the context of Bitcoin" lol. But of course Lightning *needs* higher fees to be sustainable, and I'd argue that anyway the real value proposition of Lightning Network is not "cheap fees" but "instant confirmation", which makes Bitcoin usable as an instantaneous mean of payment (or at least now it's secure Smiley ).

I was asking about easier pathfinding, when there are multiple fee settings across the channels. Plus if it would make transactions pass through to its destination with less errors?
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
April 19, 2020, 10:20:41 PM
What do you guys think of channel probing? Is there a way to ensure someone does not find out the channel ballance?

https://arxiv.org/abs/2004.00333

Haven't checked the doc but I remember there being a difference between the amount the channel had avaliable to send to help with routing and the full balance? A lot of clients mention a push and pull figure so this would just find the avaliable to be pushed amount?

The amount was made to help nodes decide how much funds they wanted to have locked up in a contract if a party declined to comply with a htlc or lost connectivity.
full member
Activity: 305
Merit: 106
April 19, 2020, 01:56:02 PM
What do you guys think of channel probing? Is there a way to ensure someone does not find out the channel ballance?

https://arxiv.org/abs/2004.00333
sr. member
Activity: 279
Merit: 435
April 18, 2020, 05:28:55 AM
Would pathfinding be made easier if you use a higher setting for fees? I believe that might support also the theory that fees in Lightning would be a little higher than the promoted, "unfairly cheap fees".
No, pathfinding is hard because you (currently, will be optimized when needed) have to browse the whole graph to find a route, and thus you need to keep this big graph up-to-date (hard on bandwidth).

I guess those promoting these "unfairly" cheap fees would now argue that "it was 'unfairly cheap' in the context of Bitcoin" lol. But of course Lightning *needs* higher fees to be sustainable, and I'd argue that anyway the real value proposition of Lightning Network is not "cheap fees" but "instant confirmation", which makes Bitcoin usable as an instantaneous mean of payment (or at least now it's secure Smiley ).
legendary
Activity: 2898
Merit: 1818
April 18, 2020, 02:54:48 AM
Would pathfinding be made easier if you use a higher setting for fees? I believe that might support also the theory that fees in Lightning would be a little higher than the promoted, "unfairly cheap fees".
legendary
Activity: 1876
Merit: 3131
April 17, 2020, 04:23:46 AM
1. How we can connect on LN? We both need to keep nodes open, or just one of us? If only one node is required, will it be me or him?

There are a few options. Both of you can run a Lightning Network node or one of you can run the node and use a custodial wallet or both of you can use the custodial wallet (i.e. BlueWallet) or you can use non-custodial wallets (lightweight clients) and so on.

2. I understand he would issue me a "invoice" every week and I would pay it each time using my LN wallet. So I don't need a node technically, he should have a node. Correct?

You don't need to run a node to be able to generate invoices and pay for them, but you do need a LN compatible wallet. Lightweight clients (i.e. Eclair Wallet) are full fledged Lightning Network nodes with some limited features, but most of them should now support receiving over the LN. Those clients are far easier to use, but give you less control over certain paramaters (i.e. channel closing transaction fee).

3. Can I have node open and pay to his LN wallet or something? So he don't need to have a node? How he would transfer Bitcoins back from LN to his normal SegWit wallet?

No, he either needs to run a node or use a lightweight client and needs to have an open channel either with you (no fees) or with some popular node (possible routing fees and routing failures if you are not connected to the same node). In your use case, the first option makes the most sense.

4. I would need to replenish my LN balance every now and then, as I am only sending funds to him and he is not sending anything back. That would save amount of on-chain transactions. Correct?

Yes, but keep in mind that you have to lock up enough coins for a few transactions. You can't refill a channel without using third-party services (they charge a fee and route their transactions through other nodes). You will have to close the channel and open another one. After you have closed the channel, the funds will appear on the other person's Bitcoin wallet.

5. When funding or opening a LN channel, can I pick amount of on-chain fee? I'd like to open a channel using 1 sat/byte, I don't mind to wait. C-lightning can allow for that?

That depends on the client. C-lightning definitely can do that. Take a look at the feerate parameter here.

6. Can I pay him passively so he doesn't need to do anything, no issuing of "invoices" or anything? In best case scenario, I have a node, I am opening and funding a channel, all he does it to install LN wallet and give me his address. And then I need to explain to him how to transfer BTC from LN wallet to his normal Electrum wallet.

Actually, yes! However, this would require you to run the same software because I believe that invoiceless payments are not cross-compatible yet. C-lightning has sendinvoiceless plugin and LND has lncli sendpayment command. I haven't tested this feature so I can't tell you how reliable it is.
legendary
Activity: 3458
Merit: 6231
Crypto Swap Exchange
April 10, 2020, 07:29:45 AM
However, I cannot open a peer connection or a channel between my office node and my home node.
As a "generic guess": does it have anything to do with (lack of) port forwarding?

No, as I said it they can talk to any other node on the planet. They will just not see each other.
The only thing I can think of is that for some reason they think they are still on the same network.
There is nothing in the logs that I can see that shows a problem. I just go to connect as a peer and it tells me that the other one is offline.

Stay safe.

-Dave
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
April 10, 2020, 03:44:19 AM
However, I cannot open a peer connection or a channel between my office node and my home node.
As a "generic guess": does it have anything to do with (lack of) port forwarding?
legendary
Activity: 3458
Merit: 6231
Crypto Swap Exchange
April 09, 2020, 06:23:28 PM
Having an odd issue.
I have my lightning node setup at home, it's working fine no issues.
I setup another 100% new node at home (this might be important) and brought it to my office.
However, I cannot open a peer connection or a channel between my office node and my home node.
There are many peers / channels open to / from both of them to other locations by as far as they are concerned the other one does not exist.

Could this be because I did the initial sync at home and there is still something on one of them that thinks the other is local?
And if so where / what is it?

Yeah, I know open a issue on github but I figured I would ask here 1st.

Stay safe.

Thanks,
Dave

sr. member
Activity: 279
Merit: 435
April 01, 2020, 06:01:31 AM
Hi Samuel,

I figured out how to create a docker container with a c-lightning node in it.
Otherwise, there is a Dockerfile in the repo (one for the main architectures)..

Is there any way to manage the node from outside of the container? Does it have an API to be controlled remotely? I know, I can make a console connection to the container and use lightning-cli inside of it but that's inconvenient. I am thinking about a k8s system with multiple containers and I need a simple way to control and manage nodes. What would you recommend me?
You could mount the RPC socket on the host and send it commands using lightning-cli --socket-path. Otherwise iirc we can bind to a port which you could open on your docker instance.
The BTCPay team is using these Dockerfiles I talked about above, maybe you could checkout what they do (my guess is exposing the socket path Smiley ).
Pages:
Jump to: