It’s at all times attainable to specific spending situations of their disjunctive regular type, that’s as a top-level “OR” of every particular person spending paths. Taproot permits for every spending path to be in its personal leaf. It’s right to assert that doing so can be maximally non-public as it will reveal the strict minimal of details about the spending situations that had been obtainable for this output.
However there are a number of dimensions to optimize for when compiling a spending coverage to a Script. In addition to privateness, there’s effectivity. It isn’t right to assert that it is at all times extra environment friendly to make use of one Taproot leaf per spending path, or to modify to P2WSH, than to make use of an OP_IF in a Taproot leaf. For example, take a easy coverage like “2 keys can at all times spend collectively, 2 different keys can at all times spend after both every week or previous block 1’000’000”. A Taproot with two leaves can be extra environment friendly on this case than one with three, or than utilizing P2WSH. After all the extra spending paths you’ve gotten, the larger the beneficial properties in comparison with utilizing P2WSH.
Moreover this evaluation ignores a 3rd optimization dimension: the chance of every spending path. Good contracts usually have some paths which might be used continuously and others which might be not often used. Taproot lets customers place doubtless paths increased within the Merkle tree, making widespread spends cheaper whereas pushing further price onto unusual ones. So evaluating scripts in isolation is deceptive: what issues is the anticipated utilization sample. A coverage that appears extra environment friendly beneath P2WSH assuming equal use of each path should still be extra environment friendly in Taproot in follow. For some use instances, switching to Taproot might save kilobytes of onchain information a month!
In actual fact one spending path could also be so doubtless as to be represented by the Taproot inside key. This may make spending extra space environment friendly than some other (safe) output sort obtainable, whereas probably nonetheless necessitating an OP_IF in a single spending path deep down the Merkle tree. This function of Taproot highlights but another excuse why P2WSH shouldn’t be a alternative for Taproot. Customers could rely of their Script on options that are solely obtainable in Taproot, corresponding to protocols leveraging Schnorr signatures.
Lastly, Taproot utilization comes with a preferable set of externalities for the community than P2WSH. For this utilization, P2WSH imposes extra burden on validating nodes than Taproot as a result of its signature hashing is quadratic within the dimension of the witness script. On this regard, Taproot additionally permits optimizations that relieve burden on validating nodes (batch validation). In addition to prices to validating nodes, Taproot additionally incentivizes to develop all outputs’ anonymity set by offering a strategy to optimize the house effectivity of some spending paths.
To conclude, whether or not an OP_IF in a Taproot leaf is preferable to options is determined by quite a few components. These components are greatest assessed by the consumer, who is best positioned to grasp their very own circumstances and constraints. It will be doubtful and presumptuous for anybody to assert to know them higher on everybody else’s behalf. That is particularly reckless within the context of a proposal to invalidate them, provided that Bitcoin improvement has traditionally gone to nice lengths to keep away from proposing consensus adjustments that might confiscate some customers’ funds that manner.
