bitcoin-dev

Should Graftroot be optional?

Should Graftroot be optional?

Original Postby Tim Ruffing

Posted on: June 6, 2018 21:25 UTC

The discussion on the bitcoin-dev mailing list revolves around Graftroot and whether it needs to be optional or not.

Pieter Wuille argues that Graftroot delegation is not "strictly less powerful" than using a normal transaction since it enables delegation in a way that cannot be fixed in the chain. This may have practical implications but none are identified. Wuille suggests defining the semantics of Graftroot such that it is allowed, which would make it an optimized version of an implicit 1-input-1-output transaction. However, he notes that this could introduce malleability issues. In response, Tim Ruffing suggests considering an implicit transaction only when the delegated script has been solved, but only in this case. They also discuss the similarities between Graftroot and SIGHASH_NOINPUT, and suggest making Graftroot spending a special sighash flag that builds an implicit transaction moving all coins to a newly provided script. To avoid malleability issues, the actual signature should still be different.