spesmilo / spesmilo/electrum

Non-initiator channels

Open
#8,093 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

lightning ⚡
Dominant language
Python
Stars
8.6k
Forks
3.5k
Avg merge
2d 8h
Merged PRs (30d)
61

Description

One of the reasons why we do not accept channels initiated by a remote node, is we want to be able to recover a backup from seed. Client-initiated channels funding transactions have an OP_RETURN that contains the encrypted remote node_id. However, allowing remote parties to open channels to us would have major usability advantages (see phoenix).

Here is a suggestion: Assume the channel opener creates an OP_RETURN output, that contains our encrypted node_id. Assume that we know how the encrypted node_id looks like, without knowing the remote node_id (encryption can be performed with a nonce that we give to the remote during the negotiation phase).

If we subscribe to the corresponding scripthash, then we can learn about the existence of this channel, without being the initiator. The only thing we need is the remote node_id, in order to contact them. That node_id could be encoded in another OP_RETURN, like we do currently.

This requires a modification of the channel negotiation protocol, but it potentially allows any party to open a recoverable channel to us.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files or tests. Start by locating the existing client-initiated channel negotiation, OP_RETURN handling, and seed-recovery flow; done would require a defined protocol change that lets remote parties open channels while preserving recoverability and providing the remote node_id.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.