Rusty Russell [ARCHIVE] on Nostr: 📅 Original date posted:2018-10-12 📝 Original message: Hi all, There have been a ...
📅 Original date posted:2018-10-12
📝 Original message:
Hi all,
There have been a number of suggested changes to the commitment
transaction format:
1. Rather than trying to agree on what fees will be in the future, we
should use an OP_TRUE-style output to allow CPFP (Roasbeef)
2. The `remotepubkey` should be a BIP-32-style, to avoid the
option_data_loss_protect "please tell me your current
per_commitment_point" problem[1]
3. The CLTV timeout should be symmetrical to avoid trying to game the
peer into closing. (Connor IIRC?).
It makes sense to combine these into a single `commitment_style2`
feature, rather than having a testing matrix of all these disabled and
enabled.
BOLT #2:
- If `commitment_style2` negotiated, update_fee is a protocol error.
This mainly changes BOLT #3:
- The feerate for commitment transactions is always 253 satoshi/Sipa.
- Commitment tx always has a P2WSH OP_TRUE output of 1000 satoshi.
- Fees, OP_TRUE are always paid by the initial funder, because it's simple,
unless they don't have funds (eg. push_msat can do this, unless we remove it?)
- HTLC-timeout and HTLC-success txs sigs are
SIGHASH_ANYONECANPAY|SIGHASH_SINGLE, so you can Bring Your Own Fees.
- `localpubkey`, `remotepubkey`, `local_htlcpubkey`,
`remote_htlcpubkey`, `local_delayedpubkey`, and `remote_delayedpubkey`
derivation now uses a two-stage unhardened BIP-32 derivation based on
the commitment number. Two-stage because we can have 2^48 txs and
BIP-32 only supports 2^31: the first 17 bits are used to derive the
parent for the next 31 bits?
- `to_self_delay` for both sides is the maximum of either the
`open_channel` or `accept_channel`.
- `to_remote` is now a P2WSH of:
`to_self_delay` OP_CSV OP_DROP <remotepubkey> OP_CHECKSIG
Cheers,
Rusty.
[1] I recently removed checking this field from c-lightning, as I
couldn't get it to reliably work under stress-test. I may just have
a bug, but we could just fix the spec instead, then we can get our
funds back even if we never talk to the peer.
Published at
2023-06-09 12:51:49Event JSON
{
"id": "b26a5ce668ce93224c09250554c594615094e97ddfd0ff475dae61feb59aa423",
"pubkey": "13bd8c1c5e3b3508a07c92598647160b11ab0deef4c452098e223e443c1ca425",
"created_at": 1686315109,
"kind": 1,
"tags": [
[
"e",
"c396150541b93fd7dcbb99733d0101c5012b71f16be611915f67f9ed8b9c1baa",
"",
"reply"
],
[
"p",
"9456f7acb763eaab2e02bd8e60cf17df74f352c2ae579dce1f1dd25c95dd611c"
]
],
"content": "📅 Original date posted:2018-10-12\n📝 Original message:\nHi all,\n\n There have been a number of suggested changes to the commitment\ntransaction format:\n\n1. Rather than trying to agree on what fees will be in the future, we\n should use an OP_TRUE-style output to allow CPFP (Roasbeef)\n2. The `remotepubkey` should be a BIP-32-style, to avoid the\n option_data_loss_protect \"please tell me your current\n per_commitment_point\" problem[1]\n3. The CLTV timeout should be symmetrical to avoid trying to game the\n peer into closing. (Connor IIRC?).\n\nIt makes sense to combine these into a single `commitment_style2`\nfeature, rather than having a testing matrix of all these disabled and\nenabled.\n\nBOLT #2:\n\n- If `commitment_style2` negotiated, update_fee is a protocol error.\n\nThis mainly changes BOLT #3:\n\n- The feerate for commitment transactions is always 253 satoshi/Sipa.\n- Commitment tx always has a P2WSH OP_TRUE output of 1000 satoshi.\n- Fees, OP_TRUE are always paid by the initial funder, because it's simple,\n unless they don't have funds (eg. push_msat can do this, unless we remove it?)\n- HTLC-timeout and HTLC-success txs sigs are \n SIGHASH_ANYONECANPAY|SIGHASH_SINGLE, so you can Bring Your Own Fees.\n- `localpubkey`, `remotepubkey`, `local_htlcpubkey`,\n `remote_htlcpubkey`, `local_delayedpubkey`, and `remote_delayedpubkey`\n derivation now uses a two-stage unhardened BIP-32 derivation based on\n the commitment number. Two-stage because we can have 2^48 txs and\n BIP-32 only supports 2^31: the first 17 bits are used to derive the\n parent for the next 31 bits?\n- `to_self_delay` for both sides is the maximum of either the\n `open_channel` or `accept_channel`.\n- `to_remote` is now a P2WSH of:\n `to_self_delay` OP_CSV OP_DROP \u003cremotepubkey\u003e OP_CHECKSIG\n\nCheers,\nRusty.\n\n[1] I recently removed checking this field from c-lightning, as I\n couldn't get it to reliably work under stress-test. I may just have\n a bug, but we could just fix the spec instead, then we can get our\n funds back even if we never talk to the peer.",
"sig": "f92123689ac1bf4009aeded42ac6843cc738cd596c1765898a0a1a30eef04aeffc83f15a6b2a8ae5393c2b5a58d60e65917b7aa703659663a6bd1be0de033845"
}