salvatoshi on Nostr: My comments on the proposed opcodes in the "Covenants support" page: I think it's not ...
My comments on the proposed opcodes in the "Covenants support" page:
https://gist.github.com/bigspider/2b0892da45884d26eb7f4c9cb2395a7dI think it's not very meaningful to "support" specific opcodes: most opcodes are not very good in isolation, but might be good in the right combination.
A soft-fork can enable multiple opcodes, and it should be a coherent set of changes that does one or a few things well.
Therefore, I think it's more important to identify and discuss the "primitives" that the opcodes (and packages of opcodes) can enable.
I identify the following tentative list of primitives enabled (one way or another) by the various proposals:
- commitments to transactions
- signing a message
- vector commitments
- concatenation
- state-carrying UTXOs
- multi-step transactions
- generic introspection
I argue that if some opcodes poorly enable a valuable primitive, then other opcodes that implement that primitive _well_ should be enabled together.
Otherwise, we're shooting ourselves in the foot with the bloat that will inevitably come.
I discuss my opinion on whether or not it might be dangerous to enable new primitives in Script.
Finally, I suggest a potential minimal package of opcodes that would enable _all_ the identified primitives pretty well, while each is fairly simple and self-contained:
- OP_CTV
- OP_CAT
- OP_CCV
- OP_CSFS
- OP_AMOUNT
Published at
2024-12-20 14:28:52 UTCEvent JSON
{
"id": "138b24940ac2b86363f01de9ca94cc60e2704ed23928c10fea3879429899436c",
"pubkey": "a789a409ff78d377294f1a5d3e4b294e80ade7118cc5670951e6ec35eaa7564c",
"created_at": 1734704932,
"kind": 1,
"tags": [
[
"r",
"https://gist.github.com/bigspider/2b0892da45884d26eb7f4c9cb2395a7d"
]
],
"content": "My comments on the proposed opcodes in the \"Covenants support\" page:\n\nhttps://gist.github.com/bigspider/2b0892da45884d26eb7f4c9cb2395a7d\n\nI think it's not very meaningful to \"support\" specific opcodes: most opcodes are not very good in isolation, but might be good in the right combination.\nA soft-fork can enable multiple opcodes, and it should be a coherent set of changes that does one or a few things well.\n\nTherefore, I think it's more important to identify and discuss the \"primitives\" that the opcodes (and packages of opcodes) can enable.\n\nI identify the following tentative list of primitives enabled (one way or another) by the various proposals:\n\n- commitments to transactions\n- signing a message\n- vector commitments\n- concatenation\n- state-carrying UTXOs\n- multi-step transactions\n- generic introspection\n\nI argue that if some opcodes poorly enable a valuable primitive, then other opcodes that implement that primitive _well_ should be enabled together.\nOtherwise, we're shooting ourselves in the foot with the bloat that will inevitably come.\n\nI discuss my opinion on whether or not it might be dangerous to enable new primitives in Script.\n\nFinally, I suggest a potential minimal package of opcodes that would enable _all_ the identified primitives pretty well, while each is fairly simple and self-contained:\n\n- OP_CTV\n- OP_CAT\n- OP_CCV\n- OP_CSFS\n- OP_AMOUNT",
"sig": "761e1057b89c3a8f775000d9c03c2e98cbb08eaa6ce92356eebcfdbc32aef3eb11af37fa37e1ee25f2956ac855d78dbcadfddb5a94d7d0972cba52514f3a8ae2"
}