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

Implement proof of concept of Eltoo #1267

Closed
AndrejMitrovic opened this issue Oct 20, 2020 · 3 comments
Closed

Implement proof of concept of Eltoo #1267

AndrejMitrovic opened this issue Oct 20, 2020 · 3 comments
Assignees
Labels
C. Payment Channel Related to Flash TestNet difficulty-hard An issue which requires a lot of research, or requires a lot of modification to the codebase Story-Points:13 This takes > 7 days to complete type-feature An addition to the system introducing new functionalities

Comments

@AndrejMitrovic
Copy link
Contributor

As mentioned in #1266, there are currently two main competitive LN update mechanisms. LN-Penalty, and Eltoo. LN-Penalty has three compatible implementations, whereas Eltoo is still blocked from being developed & deployed on Bitcoin due to a requirement for a new sighash type (BIP 118).

LN developers seem to be in agreement that Eltoo is a great evolution over LN-Penalty, and may end up replacing the penalty update protocol. Note that both protocols can be used at the same time on Bitcoin.

In our case we have a big advantage over Bitcoin. We can develop the protocol without being blocked by the requirement of doing a soft-fork. In addition to that our PoS system could potentially make it easy to create multi-party channels - we could even make this multi-party channel creation be part of the protocol rules (think quorum shuffling, for example).

As a first step we can try to implement a proof of concept of Eltoo. There are many moving parts, and we should aim to have the simplest proof of concept.

This will probably require the following:

  • Implement witness (script) fields
  • Implement very simple stack-based execution engine with only the required opcodes (e.g. time locks, sequence matching)
  • Implement sequence number for script matching (this might even possibly be optimized out later with schnorr tricks, I need to experiment)
  • Add support for sighash_noinput
  • Add HTLC support for multi-hop payments
  • Allocate anything over >40K funds for channel creation

Thereafter it should be fairly simple to implement multi-party channels as well.

@AndrejMitrovic AndrejMitrovic added Story-Points:13 This takes > 7 days to complete type-feature An addition to the system introducing new functionalities C. Payment Channel Related to Flash TestNet difficulty-hard An issue which requires a lot of research, or requires a lot of modification to the codebase labels Oct 20, 2020
@AndrejMitrovic AndrejMitrovic added this to the 3. Flash Layer milestone Oct 20, 2020
@AndrejMitrovic AndrejMitrovic self-assigned this Oct 20, 2020
@remyers
Copy link

remyers commented Nov 29, 2020

I implemented a PoC eltoo test script using the original BIP-118 segwit version of eltoo. This might be of interest if you are implementing eltoo, but needs to updated for Taproot version of anyprevout.

https://github.com/remyers/bitcoin/commits/anyprevout

@AndrejMitrovic
Copy link
Contributor Author

Hey @remyers! Thanks, I was aware of that implementation. I was in contact with Christian Decker about existing implementations and ideas and he mentioned your work.

@bpalaggi bpalaggi added the status-blocked Another issue/PR/external dependency is blocking completion of this PR/issue label Jan 12, 2021
@AndrejMitrovic AndrejMitrovic removed the status-blocked Another issue/PR/external dependency is blocking completion of this PR/issue label Feb 9, 2021
@AndrejMitrovic
Copy link
Contributor Author

Resolved in #1610

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C. Payment Channel Related to Flash TestNet difficulty-hard An issue which requires a lot of research, or requires a lot of modification to the codebase Story-Points:13 This takes > 7 days to complete type-feature An addition to the system introducing new functionalities
Projects
None yet
Development

No branches or pull requests

3 participants