What #BIP110 does is pretty minimal actually.
1. It limits new ScriptPubKeys to 34 bytes;
2. It limits OP_RETURN outputs to 83 bytes;
3. It limits data pushes and witness elements (contiguous data) to 256 bytes;
4. It removes OP_IF inside Tapscript;
5. It disables the Taproot annex and undefined witness versions / OP_SUCCESS;
6. It limits Taproot control block size (~257 bytes);
This only applies to newly created UTXOs.
And the following are my 80 IQ interpretations of each of those changes:
1. It restricts how complex a new payment address can be so people can’t sneak large chunks of arbitrary data into normal Bitcoin payments.
2. It caps how much extra data can be attached to a transaction so Bitcoin blocks don’t turn into general-purpose message boards / free cloud storage.
3. It prevents hiding large files inside transaction data by limiting how big any single chunk of stored data can be.
4. It removes a scripting trick that lets people hide data like inscriptions inside conditional branches that aren’t meant to be used for payments.
5. It closes lesser-known backdoors in Taproot that can carry arbitrary data while pretending to be normal transaction components.
6. It limits how large Taproot script trees can grow so they can’t be abused to store massive hidden data structures.
This soft fork is intended to be TEMPORARY. It means that after a one-year period the new rules automatically expire if they aren’t explicitly extended. The main reasons are:
1. A permanent soft fork consensus change can otherwise only realistically be reversed with a hard fork.
2. It acts as a pressure valve while longer-term policy and consensus rules are debated.
3. The one-year window serves as a trial period to verify no critical bugs exist, no unintended consequences appear, and no new methods for stuffing arbitrary data into scripts are discovered.
Thread
Login to reply
Replies (3)
Long form explanation with all the nuances and some scenarios how #BIP110 might unfold in the coming months.
View quoted note →
I will leave that here.
Running BIP110 on Bitcoin Knots because Bitcoin is Freedom Money 🤙
https://github.com/bitcoin/bips/pull/2017#pullrequestreview-3384767316
"I'm generally supportive of the changes in this BIP. Aside from minor nitpicks in language, the 34 byte scriptPubKey restriction I think will prove to be quite valuable in addressing the larger concern of DoS blocks / poison blocks that impose such high computational costs on nodes that a single block would take 30 minutes to verify on decent hardware instead of taking about a second. This is an even larger threat to Bitcoin than either CSAM or quantum, because I've read that CSAM has already been present on Bitcoin for a very long time, and quantum computers aren't anywhere near good enough to be a threat, and may never be, whereas DoS blocks could be introduced by miners who take direct submissions without sufficient checks at any time.
It's been pointed out that disabling OP_SUCCESS in Tapscript would conflict with adding new signature verification opcodes in future BIPs that might use them to add quantum resistance, but I would point out that the semantics around existing opcodes could simply be altered to preserve compatibility with BIP 110. For example, instead of creating new sets of OP_CHECKSIG opcodes to support new signature schemes, the semantics of existing OP_CHECKSIG opcode could simply be adjusted to accept imperatively inputs of varying lengths, a form of overloading / polymorphism / or duck typing. While it could be argued that a more declarative approach is superior in cryptographic contexts, I don't weight that concern as heavily as the larger concern over DoS blocks, and as such, I'm supportive of this approach.
My only major objection is that this is temporary. I'm not very comfortable with either temporary soft forks or default node expiry because it forces users to act instead of delaying action, which I think delaying action is perfectly fine and reasonable as the protocol matures. It also reminds me too much of the "difficulty bomb" based monetary policy used to coerce Ethereum miners to adopt new code from the Ethereum foundation or else. That said, if BIP 110 were activated as is, I would still be supportive, and I would also support reactivating it in the future as a more permanent feature of Bitcoin.
At a high level, this proposal reminds me in spirit of early versions of my original P2QRH proposal. I just think it could use a little more polish, but I see it as being directionally correct."
View quoted note →
https://github.com/bitcoin/bips/pull/2017#pullrequestreview-3384767316
"I'm generally supportive of the changes in this BIP. Aside from minor nitpicks in language, the 34 byte scriptPubKey restriction I think will prove to be quite valuable in addressing the larger concern of DoS blocks / poison blocks that impose such high computational costs on nodes that a single block would take 30 minutes to verify on decent hardware instead of taking about a second. This is an even larger threat to Bitcoin than either CSAM or quantum, because I've read that CSAM has already been present on Bitcoin for a very long time, and quantum computers aren't anywhere near good enough to be a threat, and may never be, whereas DoS blocks could be introduced by miners who take direct submissions without sufficient checks at any time.
It's been pointed out that disabling OP_SUCCESS in Tapscript would conflict with adding new signature verification opcodes in future BIPs that might use them to add quantum resistance, but I would point out that the semantics around existing opcodes could simply be altered to preserve compatibility with BIP 110. For example, instead of creating new sets of OP_CHECKSIG opcodes to support new signature schemes, the semantics of existing OP_CHECKSIG opcode could simply be adjusted to accept imperatively inputs of varying lengths, a form of overloading / polymorphism / or duck typing. While it could be argued that a more declarative approach is superior in cryptographic contexts, I don't weight that concern as heavily as the larger concern over DoS blocks, and as such, I'm supportive of this approach.
My only major objection is that this is temporary. I'm not very comfortable with either temporary soft forks or default node expiry because it forces users to act instead of delaying action, which I think delaying action is perfectly fine and reasonable as the protocol matures. It also reminds me too much of the "difficulty bomb" based monetary policy used to coerce Ethereum miners to adopt new code from the Ethereum foundation or else. That said, if BIP 110 were activated as is, I would still be supportive, and I would also support reactivating it in the future as a more permanent feature of Bitcoin.
At a high level, this proposal reminds me in spirit of early versions of my original P2QRH proposal. I just think it could use a little more polish, but I see it as being directionally correct."GM