Taproot proposal



Summary:

Luke Dashjr, a bitcoin developer, suggested that signing an additional script that is not committed by the witness program could be an easy addition. If someone wants to commit to something extra with the witness program, they can use unsolvable tapleaf branch or a p2c construction. To ensure that the contract cannot be maliciously reinterpreted as a valid tapscript, having either the TapTweak formula or the H_myp2c hash should be enough. If one wants to commit to something extra at spending/signing time instead of creating the address, then the annex should be useful for that purpose. By using the annex, one can commit to a particular block hash, and there could be a soft fork that added the restriction that such a commitment invalidates the transaction if the block at the given height doesn't match the provided hash. The soft-fork is still needed to enforce it, but every existing taproot address can be automatically upgraded to allow making the commitment, including via key path spends. The construction (size,id,data) allows having multiple entries in the annex reasonably efficiently.


Updated on: 2023-05-20T20:19:11.412389+00:00