BIP 117 Feedback



Summary:

The article discusses the viability of BIP 117 as a soft fork for Script and compares it to past soft forks. There are two types of soft forks for Script: soft-forking new script semantics into NOPn codes and the reinterpretation of various wholesale scripts (historically via templates). The first kind involves reserving op codes for future extensions and not writing scripts that depend on NOP behavior. The second kind involves applying new semantics to unsecured "anyone-can-spend" programs, such as Segwit and P2SH. However, BIP 117 is different. Currently, there are no restrictions about terminating a v0 witness program with a non-empty alt-stack or leaving non-canonical boolean values on the main stack. There could already be commitments to V0 witness programs that, when executed in some reasonable context, leave a non-empty alt-stack and/or leave a non-canonical true value on the main stack. These existing commitments could be real outputs that currently confer non-trivial ownership over their associated funds. If BIP 117 were activated, these commitments would be subject to a new set of rules that didn't exist when the commitments were made, potentially rendering the funds unspendable and retroactively removing ownership of existing user's funds.


Updated on: 2023-06-12T23:42:15.385604+00:00