Re: [Lightning-dev] Proposal: Automated Inbound Liquidity With Invoices

2019-08-13 Thread ecurrencyhodler
Hi ZmnSCPxj!

Submarine swaps are a great current solution, but we still have to wait for
confirmations.

>Further, while it involves fees, it does give you control over what nodes
you make channels with, and would be a good investment in your future
accessibility over the Lightning Network.

What disadvantages do you see over this proposal and say something like
autopilot?  Or do you just prefer manual channel management overall?

On Tue, Aug 13, 2019 at 6:27 PM ZmnSCPxj  wrote:

> Good morning Ecurrencyhodler,
>
> A current and practical way to set up incoming liquidity would be to take
> some onchain funds, create a channel to a high-uptime node on the network
> (just run an autopilot), then use a submarine swap (i.e. pay offchain funds
> to buy onchain funds).
> Then you can reuse the same onchain funds over and over to make more
> liquidity until the submarine swap provider runs out of onchain funds or
> you have sufficient liquidity or your money has been drained by the fees
> involved.
>
> While this requires onchain funds, presumably as a new business or
> merchant you will have capital in some form before starting your business.
> The most sensible way to store and transport financial capital is, of
> course, Bitcoin, thus you already have what is needed to start this, you
> simply have to do it before you perform other operations.
> Further, while it involves fees, it does give you control over what nodes
> you make channels with, and would be a good investment in your future
> accessibility over the Lightning Network.
>
> Regards,
> ZmnSCPxj
>
>
> Sent with ProtonMail Secure Email.
>
> ‐‐‐ Original Message ‐‐‐
> On Monday, August 12, 2019 11:42 AM, Ecurrencyhodler Blockchains <
> ecurrencyhod...@gmail.com> wrote:
>
> > Hi. I'd like to propose a way for instant inbound liquidity to be
> automated via invoices and would appreciate your feedback.  It's similar to
> Thor's instant channel but this proposal would only be valuable if it
> becomes a standard across all lightning implementations and wallets.  It
> won't work if it's limited to just one Lightning wallet.
> >
> > Proposal: Automated Inbound Liquidity With Invoices
> >
> > For Who: Full Lightning Network nodes
> >
> > Problem: Waiting for inbound liquidity as channel establishes when you
> first come online and want to receive a LN payment.
> >
> > Solution: Embedding the node uri of the invoice creator, along with
> amount to be routed.
> >
> > Scenario:
> >
> > 1.  Bob wants to send me 100,000 sats.
> > 2.  My node just came online and has 0 inbound liquidity.
> > 3.  I create an invoice for 100,000 sats.  My LN node recognizes I have
> 0 inbound liquidity so my wallet also embeds my URI in the invoice.
> > 4.  Bob’s wallet sees an invoice + uri.  Maybe even tries to route.
> When it doesn’t see anything, it auto opens a channel + pushes 100,000 sat
> payment.
> > 5.  I now own and can spend 100,000 sats instantly.
> >
> > Considerations:
> >
> > -   This auto establishing of channels and pushing payments isn’t for
> all LN nodes.  Just routing nodes.
> > -   Bob doesn’t need to be the one to establish the channel.  He can
> push the information down the line until a node dedicated to routing is
> found.  The routing node can then be the one to establish the channel with
> me.
> > -   Certain specifics need to be flushed out such as the size of Bob’s
> channel.  Right now I think Bob can manually set the size of the channels
> to be established on his end.  Should be smaller channels at first.  If the
> person gets paid again, just establish another channel towards the same
> node if there isn't enough capacity.
> > -   Routing nodes who provide this service can charge a premium.
> > -   Bob, as a liquidity provider, won't cheat against himself so I can
> make LN payments instantly.
> > -   The beauty behind this proposal is that I can receive a payment
> instantly, I can send payments instantly, and that it hides everything from
> me as an end user.
> > -   Can possibly be extended to neutrino LN wallets if they are public.
>
>
>
___
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev


Re: [Lightning-dev] Proposal: Automated Inbound Liquidity With Invoices

2019-08-13 Thread ZmnSCPxj via Lightning-dev
Good morning Ecurrencyhodler,

A current and practical way to set up incoming liquidity would be to take some 
onchain funds, create a channel to a high-uptime node on the network (just run 
an autopilot), then use a submarine swap (i.e. pay offchain funds to buy 
onchain funds).
Then you can reuse the same onchain funds over and over to make more liquidity 
until the submarine swap provider runs out of onchain funds or you have 
sufficient liquidity or your money has been drained by the fees involved.

While this requires onchain funds, presumably as a new business or merchant you 
will have capital in some form before starting your business.
The most sensible way to store and transport financial capital is, of course, 
Bitcoin, thus you already have what is needed to start this, you simply have to 
do it before you perform other operations.
Further, while it involves fees, it does give you control over what nodes you 
make channels with, and would be a good investment in your future accessibility 
over the Lightning Network.

Regards,
ZmnSCPxj


Sent with ProtonMail Secure Email.

‐‐‐ Original Message ‐‐‐
On Monday, August 12, 2019 11:42 AM, Ecurrencyhodler Blockchains 
 wrote:

> Hi. I'd like to propose a way for instant inbound liquidity to be automated 
> via invoices and would appreciate your feedback.  It's similar to Thor's 
> instant channel but this proposal would only be valuable if it becomes a 
> standard across all lightning implementations and wallets.  It won't work if 
> it's limited to just one Lightning wallet.
>
> Proposal: Automated Inbound Liquidity With Invoices
>
> For Who: Full Lightning Network nodes
>
> Problem: Waiting for inbound liquidity as channel establishes when you first 
> come online and want to receive a LN payment.
>
> Solution: Embedding the node uri of the invoice creator, along with amount to 
> be routed.
>
> Scenario: 
>
> 1.  Bob wants to send me 100,000 sats.
> 2.  My node just came online and has 0 inbound liquidity.
> 3.  I create an invoice for 100,000 sats.  My LN node recognizes I have 0 
> inbound liquidity so my wallet also embeds my URI in the invoice.
> 4.  Bob’s wallet sees an invoice + uri.  Maybe even tries to route.  When it 
> doesn’t see anything, it auto opens a channel + pushes 100,000 sat payment.
> 5.  I now own and can spend 100,000 sats instantly.
>
> Considerations:
>
> -   This auto establishing of channels and pushing payments isn’t for all LN 
> nodes.  Just routing nodes.
> -   Bob doesn’t need to be the one to establish the channel.  He can push the 
> information down the line until a node dedicated to routing is found.  The 
> routing node can then be the one to establish the channel with me.
> -   Certain specifics need to be flushed out such as the size of Bob’s 
> channel.  Right now I think Bob can manually set the size of the channels to 
> be established on his end.  Should be smaller channels at first.  If the 
> person gets paid again, just establish another channel towards the same node 
> if there isn't enough capacity.
> -   Routing nodes who provide this service can charge a premium.
> -   Bob, as a liquidity provider, won't cheat against himself so I can make 
> LN payments instantly.
> -   The beauty behind this proposal is that I can receive a payment 
> instantly, I can send payments instantly, and that it hides everything from 
> me as an end user.
> -   Can possibly be extended to neutrino LN wallets if they are public.


___
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev


Re: [Lightning-dev] Proposal: Automated Inbound Liquidity With Invoices

2019-08-13 Thread ecurrencyhodler
Hi Hampus!

>It won't work out in the long run because if you connect say mobile
wallets this way, one mobile could be offline, which locks the funds for
the other part.

Hmm I didn't consider mobile wallets being offline for a long period of
time. That's a good point.  But if smaller channels are preferred and they
are charging a premium, I wonder if the opportunity cost here would be
worth it.  It's also possible to set shorter HTLC's for unilateral closures
for these specific channels.

>Another approach could be that wallets start using the already existing
fallback tag (`f`) on BOLT11 invoices, where you can embed a Bitcoin
address.

You know I actually really like this feature of LN invoices.  It's very
practical and a great stop gap.  My only gripe is that it keeps the user
off the LN and they still would have to wait confirmations in order for
their BTC to be "confirmed".  Automating inbound liquidity with push
payments would make it instant as well as keep users on the LN.

>Another way is to set up a "temporary" custodian channel if the receiver
doesn't have enough inbound capacity.
How it would work is that you have a third party custodian (i.e the wallet
provider) receives the money on your behalf. The next time you want to send
something, this channel takes top priority.

Yea.  This is a great suggestion.  And probably where things will end up
for mobile neutrino Ln wallets in the near future.  But the benefits to
automating inbound liquidity with invoices is that it would be
non-custodial while offering almost the exact same experience.

On Tue, Aug 13, 2019 at 6:31 AM Hampus Sjöberg 
wrote:

> While I do agree that this is a problem that we needs to be addressed
> somehow, I don't agree on your proposal because I don't think we should
> connect two end-users this way. It won't work out in the long run because
> if you connect say mobile wallets this way, one mobile could be offline,
> which locks the funds for the other part.
>
> Another approach could be that wallets start using the already existing
> fallback tag (`f`) on BOLT11 invoices, where you can embed a Bitcoin
> address.
> This way, the sender could send the funds on-chain should it fail to send
> over Lightning.
> This however requires the sender to have off-chain funds available which
> is probably not the case. What could be done here is a splice out or a
> submarine swap, but they are not well established yet unfortunately.
>
> Another way is to set up a "temporary" custodian channel if the receiver
> doesn't have enough inbound capacity.
> How it would work is that you have a third party custodian (i.e the wallet
> provider) receives the money on your behalf. The next time you want to send
> something, this channel takes top priority.
> This way the on-boarding process is pretty much solved, if you are OK with
> some trust.
>
> What do you think?
>
> Cheers
> Hampus
>
> Den mån 12 aug. 2019 kl 05:43 skrev Ecurrencyhodler Blockchains <
> ecurrencyhod...@gmail.com>:
>
>> Hi. I'd like to propose a way for instant inbound liquidity to be
>> automated via invoices and would appreciate your feedback.  It's similar to
>> Thor's instant channel but this proposal would only be valuable if it
>> becomes a standard across all lightning implementations and wallets.  It
>> won't work if it's limited to just one Lightning wallet.
>>
>> *Proposal:* Automated Inbound Liquidity With Invoices
>>
>> *For Who:* Full Lightning Network nodes
>>
>> *Problem:* Waiting for inbound liquidity as channel establishes when you
>> first come online and want to receive a LN payment.
>>
>> *Solution: *Embedding the node uri of the invoice creator, along with
>> amount to be routed.
>>
>> *Scenario: *
>>
>>1. Bob wants to send me 100,000 sats.
>>2. My node just came online and has 0 inbound liquidity.
>>3. I create an invoice for 100,000 sats.  My LN node recognizes I
>>have 0 inbound liquidity so my wallet also embeds my URI in the invoice.
>>4. Bob’s wallet sees an invoice + uri.  Maybe even tries to route.
>>When it doesn’t see anything, it auto opens a channel + pushes 100,000 sat
>>payment.
>>5. I now own and can spend 100,000 sats instantly.
>>
>> *Considerations:*
>>
>>- This auto establishing of channels and pushing payments isn’t for
>>all LN nodes.  Just routing nodes.
>>- Bob doesn’t need to be the one to establish the channel.  He can
>>push the information down the line until a node dedicated to routing is
>>found.  The routing node can then be the one to establish the channel with
>>me.
>>- Certain specifics need to be flushed out such as the size of Bob’s
>>channel.  Right now I think Bob can manually set the size of the channels
>>to be established on his end.  Should be smaller channels at first.  If 
>> the
>>person gets paid again, just establish another channel towards the same
>>node if there isn't enough capacity.
>>- Routing nodes who provide this service can

Re: [Lightning-dev] Proposal: Automated Inbound Liquidity With Invoices

2019-08-13 Thread ecurrencyhodler
Hey Rusty.  Thanks for your feedback.

>If you publish your node address, Bob can already get this from the
gossip network, or the DNS seed as a last resort (and I expect
implementations to start doing this: I did it manually to buy a
thelightningconference.com ticket recently, for example).

This is a good point and very cool you were able to do that for the
Lightning Conference (hopefully I'll see you there!).  Perhaps another
condition should be that if I am a public node and already connected to a
node, the URI is not embedded in the invoice but instead should be gathered
via the gossip network.

But keep in mind that the intended goal of this proposal is for the end
user to have a completely automated experience from invoice payment to
payment reception without having to manage any channels.

>So this proposal is mainly useful where you have no channels at all
(thus cannot advertize your node), or don't want to publish it
generally.  And in both those cases, Bob probably doesn't want a channel
with you because it wouldn't be useful for paying anyone else.

I'm not sure I agree.

All nodes who come online for the first time are not connected to any
channels.  And even if I hand Bob my URI, I still have to wait for the
channels to be established before I'm able to receive payment.  Bob could
open and push a payment to me but this doesn't have to be a requirement.
It could be pushed to a routing node Bob is connected to.

This would also be helpful for non-technical node managers.  Rather than
going through the process of finding out a URI and trying to manage their
channels constantly by checking for inbound liquidity, they could simply
create an invoice.  If inbound liquidity is lacking, the problem would be
automatically solved for them.  This wouldn't be the most efficient way to
obtain inbound liquidity, I think that would only really be more important
for more advanced LN users.  Especially because asking someone to open and
commit BTC to you is already a bit of a difficult relationship to negotiate
as expected amount of usage will vary.

Lastly, routing nodes are financially incentivized to do open a channel
with me because they could charge a premium.  Thor's instant channel is an
example of this.

On Tue, Aug 13, 2019 at 3:59 AM Rusty Russell  wrote:

> Ecurrencyhodler Blockchains  writes:
> >1. Bob wants to send me 100,000 sats.
> >2. My node just came online and has 0 inbound liquidity.
> >3. I create an invoice for 100,000 sats.  My LN node recognizes I
> have 0
> >inbound liquidity so my wallet also embeds my URI in the invoice.
> >4. Bob’s wallet sees an invoice + uri.  Maybe even tries to route.
> When
> >it doesn’t see anything, it auto opens a channel + pushes 100,000 sat
> >payment.
> >5. I now own and can spend 100,000 sats instantly.
>
> If you publish your node address, Bob can already get this from the
> gossip network, or the DNS seed as a last resort (and I expect
> implementations to start doing this: I did it manually to buy a
> thelightningconference.com ticket recently, for example).
>
> So this proposal is mainly useful where you have no channels at all
> (thus cannot advertize your node), or don't want to publish it
> generally.  And in both those cases, Bob probably doesn't want a channel
> with you because it wouldn't be useful for paying anyone else.
>
> Cheers,
> Rusty.
>
___
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev


Re: [Lightning-dev] Proposal: Automated Inbound Liquidity With Invoices

2019-08-13 Thread Hampus Sjöberg
While I do agree that this is a problem that we needs to be addressed
somehow, I don't agree on your proposal because I don't think we should
connect two end-users this way. It won't work out in the long run because
if you connect say mobile wallets this way, one mobile could be offline,
which locks the funds for the other part.

Another approach could be that wallets start using the already existing
fallback tag (`f`) on BOLT11 invoices, where you can embed a Bitcoin
address.
This way, the sender could send the funds on-chain should it fail to send
over Lightning.
This however requires the sender to have off-chain funds available which is
probably not the case. What could be done here is a splice out or a
submarine swap, but they are not well established yet unfortunately.

Another way is to set up a "temporary" custodian channel if the receiver
doesn't have enough inbound capacity.
How it would work is that you have a third party custodian (i.e the wallet
provider) receives the money on your behalf. The next time you want to send
something, this channel takes top priority.
This way the on-boarding process is pretty much solved, if you are OK with
some trust.

What do you think?

Cheers
Hampus

Den mån 12 aug. 2019 kl 05:43 skrev Ecurrencyhodler Blockchains <
ecurrencyhod...@gmail.com>:

> Hi. I'd like to propose a way for instant inbound liquidity to be
> automated via invoices and would appreciate your feedback.  It's similar to
> Thor's instant channel but this proposal would only be valuable if it
> becomes a standard across all lightning implementations and wallets.  It
> won't work if it's limited to just one Lightning wallet.
>
> *Proposal:* Automated Inbound Liquidity With Invoices
>
> *For Who:* Full Lightning Network nodes
>
> *Problem:* Waiting for inbound liquidity as channel establishes when you
> first come online and want to receive a LN payment.
>
> *Solution: *Embedding the node uri of the invoice creator, along with
> amount to be routed.
>
> *Scenario: *
>
>1. Bob wants to send me 100,000 sats.
>2. My node just came online and has 0 inbound liquidity.
>3. I create an invoice for 100,000 sats.  My LN node recognizes I have
>0 inbound liquidity so my wallet also embeds my URI in the invoice.
>4. Bob’s wallet sees an invoice + uri.  Maybe even tries to route.
>When it doesn’t see anything, it auto opens a channel + pushes 100,000 sat
>payment.
>5. I now own and can spend 100,000 sats instantly.
>
> *Considerations:*
>
>- This auto establishing of channels and pushing payments isn’t for
>all LN nodes.  Just routing nodes.
>- Bob doesn’t need to be the one to establish the channel.  He can
>push the information down the line until a node dedicated to routing is
>found.  The routing node can then be the one to establish the channel with
>me.
>- Certain specifics need to be flushed out such as the size of Bob’s
>channel.  Right now I think Bob can manually set the size of the channels
>to be established on his end.  Should be smaller channels at first.  If the
>person gets paid again, just establish another channel towards the same
>node if there isn't enough capacity.
>- Routing nodes who provide this service can charge a premium.
>- Bob, as a liquidity provider, won't cheat against himself so I can
>make LN payments instantly.
>- The beauty behind this proposal is that I can receive a payment
>instantly, I can send payments instantly, and that it hides everything from
>me as an end user.
>- Can possibly be extended to neutrino LN wallets if they are public.
>
>
> ___
> Lightning-dev mailing list
> Lightning-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev
>
___
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev


Re: [Lightning-dev] Proposal: Automated Inbound Liquidity With Invoices

2019-08-13 Thread Rusty Russell
Ecurrencyhodler Blockchains  writes:
>1. Bob wants to send me 100,000 sats.
>2. My node just came online and has 0 inbound liquidity.
>3. I create an invoice for 100,000 sats.  My LN node recognizes I have 0
>inbound liquidity so my wallet also embeds my URI in the invoice.
>4. Bob’s wallet sees an invoice + uri.  Maybe even tries to route.  When
>it doesn’t see anything, it auto opens a channel + pushes 100,000 sat
>payment.
>5. I now own and can spend 100,000 sats instantly.

If you publish your node address, Bob can already get this from the
gossip network, or the DNS seed as a last resort (and I expect
implementations to start doing this: I did it manually to buy a
thelightningconference.com ticket recently, for example).

So this proposal is mainly useful where you have no channels at all
(thus cannot advertize your node), or don't want to publish it
generally.  And in both those cases, Bob probably doesn't want a channel
with you because it wouldn't be useful for paying anyone else.

Cheers,
Rusty.
___
Lightning-dev mailing list
Lightning-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev