Taproot eltoo

I have compiled below a list of tasks and related notes that might be helpful for anyone that wants to learn more about the status and implementation details of BIP-118 (Anyprevout) and eltoo. Please get in touch if you have any questions or can help work on one of these tasks. Open an issue or PR if you think of additional tasks, notes or other changes for this page.

Anyprevout (BIP-118)

Tasks:

  • Basic unit tests, legacy and taproot
  • Review and comment on BIP-118
  • run a signet node
  • run a signet faucet

Notes:

  • BIP
  • Signet

Faucet idea: can signet miners create a single signature and prototype transaction that can spend any coinbase output using APOAS? As long as any change goes back to the same address then the signature can be used again by others.

eltoo

Tasks:

Notes:

Segwit eltoo

Taproot eltoo

PTLCs

Tasks:

  • Schnorr X-only pubkey adaptor signature support in the functional test framework
  • create an adapter signatures test script to demonstrate how to exchange PTLC nonces
  • update transactions so claim_tx uses key spend with adapter signature and refund_tx uses script spend with timeout
  • create a new test derived from the test_tapscript_eltoo script that replaces HTLCs with PTLCs

Notes:

Layered Commitments

Notes:

  • CLTV deltas
  • Subject to Siphon attacks if remote party signature does not commit amount of local party’s HTLC outputs?
  • lnpenalty taproot diagram

Multiparty Channels

Notes:

  • Channel Factories

    shared liquidity, overlapping routing nodes, can update nested channels faster, can settle MP channel and continue to use nested channels

  • Generalized Off-chain Transactions

    cache and aggregateve onchain transactions off-chain, timeouts must account for settlement of multiparty channel

Anyprevout Covenants

Tasks:

  • Create covenant test in functional test framework off of APO branch

Notes:

  • AJ Towns bitcoin-dev post (June 2019)
  • instead of script <sig> <P> CHECKSIG can we use <sig> 0x01 CHECKSIG to use internal pubkey and save 32 bytes?