Good morning list,

Of note, is that long ago Rusty proposed already a "local" channel 
announcement: 
https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-November/001486.html

Briefly, the above proposal goes this way:

> BigBrother: Hi LittleNode!
>
> LittleNode: Hi BigBrother!
>
> BigBrother: I want to tell **all** my friends about our little unpublished 
> channel, will you allow me?
>
> LittleNode: Sure!
>
> **LittleNode thinks he has now beaten the Axiom of Terminus.
>
> **BigBrother actually decides not to tell anyone about the unpublished 
> channel.

Note that LittleNode has no ability to actually tell anybody about its 
unpublished channel with BigBrother, even if it has a channel with a different 
node.

What I am proposing is subtly different:

> BigBrother: Hi LittleNode!
>
> LittleNode: Hi BigBrother!
>
> ThisIsTheCIA: Hi LittleNode!
>
> LittleNode: Hi ThisIsTheCIA!
>
> (whisper from BigBrother): LittleNode, can you tell me about any unpublished 
> channels you have?
>
> (whisper to BigBrother): Sure, I have an unpublished channel with 
> ThisIsTheCIA.
>
> (whisper from ThisIsTheCIA): LittleNode, can you tell me about any 
> unpublished channels you have?
>
> (whisper to ThisIsTheCIA): Sure, I have an unpublished channel with 
> BigBrother.
>
> ** LittleNode thinks he has now beaten the Axiom of Terminus.

In my proposal, BigBrother learns about the channel to ThisIsTheCIA, and vice 
versa, solely from the LittleNode.
Thus, even if LittleNode is completely unpublished (all channels it has are 
unpublished) it can leak information about its unpublished channels to other 
peers, and at least break a little the Axiom of Terminus.

Now of course this brings up the concern that the history of LittleNode might 
be learned by looking up the short-channel-id on the blockchain.
But this can be mitigated:

* The short-channel-id might be a completely invented one --- for example, a 
node might assign the blockheight 0 to unpublished channels and use the 
transaction index and output index as a single field to uniquely identify its 
unpublished channels.
* LittleNode could CoinJoin its money before creating any channels, using 
JoinMarket or Wasabi.

-----

More interesting if LittleNode has peers that area also completely unpublished.
In that case, it is also possible for LittleNode to leak its unpublished 
channels to those peers with unpublished channels.
Then neither ThisIsTheCIA nor BigBrother can determine if a payment coming from 
LittleNode (or going into LittleNode) is really from (to) LittleNode or not.

-----

Now let us consider if LittleNode and its fellow unpublished nodes create their 
subnet of the Lightning Network via Channel Factory.

In that case, they can leak to each other as well, their unpublished channels 
to the public network.

I would like to point out that such a subnetwork would behave very much like a 
node composed of nodelets: 
https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-October/002236.html

The tradeoffs are:

* With channel factories you get:
  * Graceful degradation.
  * Mildly better privacy (not all your fellow nodes on the channel factory 
have to know about every payment you make, if the payment does not go through 
them on the subnetwork).
* With nodelets you get:
  * Reduced number of channels (channel capacity is not dedicated to some peer 
which itself might not have channel capacity to the public network).
  * Reduced number of transactions in unilateral close case.

Regards,
ZmnSCPxj





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

Reply via email to