David A. Harding [ARCHIVE] on Nostr: 📅 Original date posted:2022-04-21 📝 Original message:On 21.04.2022 08:39, Matt ...
📅 Original date posted:2022-04-21
📝 Original message:On 21.04.2022 08:39, Matt Corallo wrote:
> We add things to Bitcoin because (a) there's some demonstrated
> use-cases and intent to use the change (which I think we definitely
> have for covenants, but which only barely, if at all, suggests
> favoring one covenant design over any other)
I'm unconvinced about CTV's use cases but others have made reasonable
claims that it will be used. We could argue about this indefinitely,
but I would love to give CTV proponents an opportunity to prove that a
significant number of people would use it.
> (b) because its
> generally considered aligned with Bitcoin's design and goals, based on
> developer and more broad community response
I think CTV fulfills this criteria. At least, I can't think of any way
BIP119 itself (notwithstanding activation concerns) violates Bitcoin's
designs and goals.
> (c) because the
> technical folks who have/are wiling to spend time working on the
> specific design space think the concrete proposal is the best design
> we have
This is the criteria that most concerns me. What if there is no
universal best? For example, I mentioned in my previous email that I'm
a partisan of OP_CAT+OP_CSFS due to their min-max of implementation
simplicity versus production flexibility. But one problem is that
spends using them would need to contain a lot of witness data. In my
mind, they're the best for experimentation and for proving the existence
of demand for more optimized constructions.
OP_TX or OP_TXHASH would likely offer almost as much simplicity and
flexibility but be more efficient onchain. Does that make them better
than OP_CAT+OP_CSFS? I don't know how to objectively answer that
question, and I don't feel comfortable with my subjective opinion of
CAT+CSFS being better than OP_TX.
APO/IIDs, CTV, and TLUV/EVICT all seem to me to be very specific to
certain usecases (respectively: Eltoo, congestion control, and
joinpools), providing maximum onchain efficiency for those cases but
requiring contortions or larger witnesses to accomplish other covenant
usecases. Is their increased efficiency better than more general
constructions like CSFS or TX? Again, I don't know how to answer that
question objectively, although subjectively I'm ok with optimized
constructions for cases of proven demand.
> , and finally (d) because the implementation is well-reviewed
> and complete.
No comment here; I haven't followed CTV's review progress to know
whether I'd consider it well enough reviewed or not.
> I do not see how we can make an argument for any specific covenant
> under (c) here. We could just as well be talking about
> TLUV/CAT+CHECKSIGFROMSTACK/etc, and nearly anyone who is going to use
> CTV can probably just as easily use those instead - ie this has
> nothing to do with "will people use it".
I'm curious how we as a technical community will be able to determine
which is the best approach. Again, I like starting simple and general,
gathering real usage data, and then optimizing for demonstrated needs.
But the simplest and most general approaches seem to be too general for
some people (because they enable recursive covenants), seemingly forcing
us into looking only at application-optimized designs. In that case, I
think the main thing we want to know about these narrow proposals for
new applications is whether the applications and the proposed consensus
changes will actually receive significant use. For that, I think we
need some sort of test bed with real paying users, and ideally one that
is as similar to Bitcoin mainnet as possible.
> we
> cannot remove the validation code for something ever, really - you
> still want to be able to validate the historical chain
You and Jeremy both brought up this point. I understand it and I
should've addressed it better in my OP, but I'm of the opinion that
reverting to earlier consensus rules gives future developers the
*option* of dropping no-longer-used consensus code as a practical
simplification of the same type we've used on several occasions before,
and which is an optional default in newly started Bitcoin Core nodes for
over a decade now (i.e. skipping verification of old signatures). If
future devs *want* to maintain code from a set of temporary rules used
millions of blocks ago, that's great, but giving them the option to
forget about those rules eliminates one of my concerns about making
consensus changes without fully proven demand for that change.
I just wanted to mention the above in case this discussion comes back to
serious consideration of a transitory soft fork. For now, I think we
can table a debate over validating reverted rules and focus on how we'll
come to agreement that a particular covenant-related consensus change is
warranted.
Thanks for your thoughtful response,
-Dave
Published at
2023-06-07 23:07:36Event JSON
{
"id": "3d9052197f618aedadffa02528d913343380d7e01b16c78278e78ce0a00f64b4",
"pubkey": "d3574a24208f4e3d0821bb4a69a0c3ae842043d444fa5c4a8c49c369918a6fb2",
"created_at": 1686179256,
"kind": 1,
"tags": [
[
"e",
"3199d7e373413debbd60986222963e0a7995231a8bea9719310656b98185e004",
"",
"root"
],
[
"e",
"1948f47b9930b20469b57eceb13cd92cd493ffbb6cca0a0b087f42773369f012",
"",
"reply"
],
[
"p",
"cd753aa8fbc112e14ffe9fe09d3630f0eff76ca68e376e004b8e77b687adddba"
]
],
"content": "📅 Original date posted:2022-04-21\n📝 Original message:On 21.04.2022 08:39, Matt Corallo wrote:\n\u003e We add things to Bitcoin because (a) there's some demonstrated\n\u003e use-cases and intent to use the change (which I think we definitely\n\u003e have for covenants, but which only barely, if at all, suggests\n\u003e favoring one covenant design over any other)\n\nI'm unconvinced about CTV's use cases but others have made reasonable \nclaims that it will be used. We could argue about this indefinitely, \nbut I would love to give CTV proponents an opportunity to prove that a \nsignificant number of people would use it.\n\n\u003e (b) because its\n\u003e generally considered aligned with Bitcoin's design and goals, based on\n\u003e developer and more broad community response\n\nI think CTV fulfills this criteria. At least, I can't think of any way \nBIP119 itself (notwithstanding activation concerns) violates Bitcoin's \ndesigns and goals.\n\n\u003e (c) because the\n\u003e technical folks who have/are wiling to spend time working on the\n\u003e specific design space think the concrete proposal is the best design\n\u003e we have\n\nThis is the criteria that most concerns me. What if there is no \nuniversal best? For example, I mentioned in my previous email that I'm \na partisan of OP_CAT+OP_CSFS due to their min-max of implementation \nsimplicity versus production flexibility. But one problem is that \nspends using them would need to contain a lot of witness data. In my \nmind, they're the best for experimentation and for proving the existence \nof demand for more optimized constructions.\n\nOP_TX or OP_TXHASH would likely offer almost as much simplicity and \nflexibility but be more efficient onchain. Does that make them better \nthan OP_CAT+OP_CSFS? I don't know how to objectively answer that \nquestion, and I don't feel comfortable with my subjective opinion of \nCAT+CSFS being better than OP_TX.\n\nAPO/IIDs, CTV, and TLUV/EVICT all seem to me to be very specific to \ncertain usecases (respectively: Eltoo, congestion control, and \njoinpools), providing maximum onchain efficiency for those cases but \nrequiring contortions or larger witnesses to accomplish other covenant \nusecases. Is their increased efficiency better than more general \nconstructions like CSFS or TX? Again, I don't know how to answer that \nquestion objectively, although subjectively I'm ok with optimized \nconstructions for cases of proven demand.\n\n\u003e , and finally (d) because the implementation is well-reviewed\n\u003e and complete.\n\nNo comment here; I haven't followed CTV's review progress to know \nwhether I'd consider it well enough reviewed or not.\n\n\u003e I do not see how we can make an argument for any specific covenant\n\u003e under (c) here. We could just as well be talking about\n\u003e TLUV/CAT+CHECKSIGFROMSTACK/etc, and nearly anyone who is going to use\n\u003e CTV can probably just as easily use those instead - ie this has\n\u003e nothing to do with \"will people use it\".\n\nI'm curious how we as a technical community will be able to determine \nwhich is the best approach. Again, I like starting simple and general, \ngathering real usage data, and then optimizing for demonstrated needs. \nBut the simplest and most general approaches seem to be too general for \nsome people (because they enable recursive covenants), seemingly forcing \nus into looking only at application-optimized designs. In that case, I \nthink the main thing we want to know about these narrow proposals for \nnew applications is whether the applications and the proposed consensus \nchanges will actually receive significant use. For that, I think we \nneed some sort of test bed with real paying users, and ideally one that \nis as similar to Bitcoin mainnet as possible.\n\n\u003e we\n\u003e cannot remove the validation code for something ever, really - you\n\u003e still want to be able to validate the historical chain\n\nYou and Jeremy both brought up this point. I understand it and I \nshould've addressed it better in my OP, but I'm of the opinion that \nreverting to earlier consensus rules gives future developers the \n*option* of dropping no-longer-used consensus code as a practical \nsimplification of the same type we've used on several occasions before, \nand which is an optional default in newly started Bitcoin Core nodes for \nover a decade now (i.e. skipping verification of old signatures). If \nfuture devs *want* to maintain code from a set of temporary rules used \nmillions of blocks ago, that's great, but giving them the option to \nforget about those rules eliminates one of my concerns about making \nconsensus changes without fully proven demand for that change.\n\nI just wanted to mention the above in case this discussion comes back to \nserious consideration of a transitory soft fork. For now, I think we \ncan table a debate over validating reverted rules and focus on how we'll \ncome to agreement that a particular covenant-related consensus change is \nwarranted.\n\nThanks for your thoughtful response,\n\n-Dave",
"sig": "96421046cba1c41552793562d88172a69c155c6957ae1c04c84dc5001a8021378833083c5da2d1f65c793e73feeff9855c273f9df4d106d178ffda9f71ea0c9f"
}