Gregory Maxwell [ARCHIVE] on Nostr: 📅 Original date posted:2015-12-10 📝 Original message:On Thu, Dec 10, 2015 at ...
📅 Original date posted:2015-12-10
📝 Original message:On Thu, Dec 10, 2015 at 6:47 AM, jl2012--- via bitcoin-dev
<bitcoin-dev at lists.linuxfoundation.org> wrote:
> It seems the current consensus is to implement Segregated Witness. SW opens
> many new possibilities but we need a balance between new features and
> deployment time frame. I'm listing by my priority:
> 2. Deployment time frame: I prefer as soon as possible, even if none of the following new features are implemented.
Thanks, I agree there.
A point to keep in mind: Segregated Witness was specifically designed
to make script changes / improvements / additions / total rewrites no
harder to do _after_ SW then they would be do do along with it. For
many people the "ah ha! lets do this" was realizing it could be a
pretty clean soft-fork. For me, it was realizing that we could
structure Segwit in a way that radically simply future script updates
... and in doing so avoid a getting trapped by a rush to put in every
script update someone wants.
This is achieved by having the 'version' byte(s) at the start of the
witness program. If the witness program prefix is unrecognized it
means RETURN TRUE. This recaptures the behavior that seems to have
been intended by OP_VER in the earliest versions of the software, but
actually works instead of giving every user the power to hardfork the
system at any time. :) This escapes much of the risk in script
changes, as we no longer need to worry about negation, or other
interactions potentially breaking things. A new version flag can have
its whole design crafted as if it were being created on a clean slate.
Optimizing layout and such I think makes sense, but I think we should
consider any script enhancements completely off the table for SW;
otherwise the binding will delay deployment and increase complexity. I
want most of those things too (a couple I disagree with) and a few of
them we could do quite quickly-- but no need to bind them up; post SW
and esp with version bits we could deploy them quite rapidly and on
their own timeframes.
> Multiplication and division may still considered to be risky and not very useful?
Operations like these make sense with fixed with types, when they are
over arbitrary bignums, they're a complexity nightmare... as
demonstrated by Bitcoin. :)
RE: OP_DUPTOALTSTACK yea, I've wanted that several times (really I've
been sad that there isn't just a stack flag on every manipulation
instruction).
Published at
2023-06-07 17:46:07Event JSON
{
"id": "b4bf06258add6a3fc22aa44a640ce3c52f86fd6ab3860900f074f235f8dd273b",
"pubkey": "4aa6cf9aa5c8e98f401dac603c6a10207509b6a07317676e9d6615f3d7103d73",
"created_at": 1686159967,
"kind": 1,
"tags": [
[
"e",
"12a84dc161497f5ec3fbb3e9fb726708fb1bb0268a8834c07e1f631c1bbca295",
"",
"root"
],
[
"e",
"cf6630dc12b8f832925b9675ed86e20202eaed9569706414c318d8f1d23628b1",
"",
"reply"
],
[
"p",
"b61e2e7ccbf4abd7f49715c62f4ac7a93cbdd5ead0316279c5f5fe9b18dd0aaa"
]
],
"content": "📅 Original date posted:2015-12-10\n📝 Original message:On Thu, Dec 10, 2015 at 6:47 AM, jl2012--- via bitcoin-dev\n\u003cbitcoin-dev at lists.linuxfoundation.org\u003e wrote:\n\u003e It seems the current consensus is to implement Segregated Witness. SW opens\n\u003e many new possibilities but we need a balance between new features and\n\u003e deployment time frame. I'm listing by my priority:\n\n\u003e 2. Deployment time frame: I prefer as soon as possible, even if none of the following new features are implemented.\n\nThanks, I agree there.\n\nA point to keep in mind: Segregated Witness was specifically designed\nto make script changes / improvements / additions / total rewrites no\nharder to do _after_ SW then they would be do do along with it. For\nmany people the \"ah ha! lets do this\" was realizing it could be a\npretty clean soft-fork. For me, it was realizing that we could\nstructure Segwit in a way that radically simply future script updates\n... and in doing so avoid a getting trapped by a rush to put in every\nscript update someone wants.\n\nThis is achieved by having the 'version' byte(s) at the start of the\nwitness program. If the witness program prefix is unrecognized it\nmeans RETURN TRUE. This recaptures the behavior that seems to have\nbeen intended by OP_VER in the earliest versions of the software, but\nactually works instead of giving every user the power to hardfork the\nsystem at any time. :) This escapes much of the risk in script\nchanges, as we no longer need to worry about negation, or other\ninteractions potentially breaking things. A new version flag can have\nits whole design crafted as if it were being created on a clean slate.\n\nOptimizing layout and such I think makes sense, but I think we should\nconsider any script enhancements completely off the table for SW;\notherwise the binding will delay deployment and increase complexity. I\nwant most of those things too (a couple I disagree with) and a few of\nthem we could do quite quickly-- but no need to bind them up; post SW\nand esp with version bits we could deploy them quite rapidly and on\ntheir own timeframes.\n\n\n\u003e Multiplication and division may still considered to be risky and not very useful?\n\nOperations like these make sense with fixed with types, when they are\nover arbitrary bignums, they're a complexity nightmare... as\ndemonstrated by Bitcoin. :)\n\n\nRE: OP_DUPTOALTSTACK yea, I've wanted that several times (really I've\nbeen sad that there isn't just a stack flag on every manipulation\ninstruction).",
"sig": "0ef25e0cb363e84b9cb894bb4b442aa3cef2f64ca20d99a1691fa7338242b073295b149427d34d1584d40f2e93b233d3806a9c438a6e6cdd089d97ba76f8a3d6"
}