Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Single-asset LN channel design considerations #25

Open
dr-orlovsky opened this issue Apr 22, 2020 · 0 comments
Open

Single-asset LN channel design considerations #25

dr-orlovsky opened this issue Apr 22, 2020 · 0 comments
Labels
[Bifrost] LNP protocol extensions enabling RGB, DEX, storage etc help wanted Extra attention is needed question Further information is requested [RGB] Specs related to client-validated state management system

Comments

@dr-orlovsky
Copy link
Member

dr-orlovsky commented Apr 22, 2020

On RGBCon0 in Milano @renepickhardt proposed to use single-asset LN channels, which:

  • minimizes amount of LN message customization: in most cases we don't need TLVs and new types of messages, which is especially important for poorly-extensible gossips
  • simplifies invoicing
  • minimizes node code customization
  • avoids reverse American call option problem as a whole

Nevertheless, using single-asset LN channels for RGB has its own trade-offs: addition of each asset will require new channel funding transaction, which limits scalability. Here I'd like to discuss the ways how we can mitigate this issue.

Channel splitting

Use channel splitting: create a new transaction spending funding output, which will contain new version of funding outputs, one per asset. Don't publish this information on-chain.
Pros:

  • Fast and flexible way to open, close and distribute funds between multiple channels without any on-chain transactions
    Cons:
  • Not supported by any existing lightning node, requires full LNP-node
  • No standards for channel splitting in BOLTs: requires us to await for the standard — or work on it as a part of Generalized LN effort

Channel factories

Use channel factories: the same of above, but instead of splitting within the existing channel we use channel factory to create a new channel. The pros and cons are exactly like the above

Channel virtualization

Channel "superposition"/virtualization within the same commitment transaction: nodes operate multiple channels sharing single commitment transaction.
Cons:

  • channel updates must be synched/put in strict serial order
  • channels must share the same set of keys
  • probably not standard-compatible
  • low incentives for Lightning community to add support for the standards and existing software
    Pros:
  • potentially can be done with c-lightning
@dr-orlovsky dr-orlovsky added help wanted Extra attention is needed question Further information is requested [RGB] Specs related to client-validated state management system [Bifrost] LNP protocol extensions enabling RGB, DEX, storage etc labels Apr 22, 2020
@dr-orlovsky dr-orlovsky added this to the RGB LN: drafts milestone Apr 22, 2020
@dr-orlovsky dr-orlovsky added this to Review in progress in RGB Core May 8, 2020
@dr-orlovsky dr-orlovsky moved this from Agenda to Under review in Development Calls Agenda May 8, 2020
@dr-orlovsky dr-orlovsky removed this from Review in progress in RGB Core Oct 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Bifrost] LNP protocol extensions enabling RGB, DEX, storage etc help wanted Extra attention is needed question Further information is requested [RGB] Specs related to client-validated state management system
Projects
No open projects
Bifrost
  
Awaiting triage
Development Calls Agenda
  
Under review
Development

No branches or pull requests

1 participant