Why is it a bug {that a} Taproot tree (Taptree) permits a leaf script (Tapleaf) to be repeated on a number of ranges of the tree?
It is not essentially a bug {that a} Taproot tree permits a leaf script to be repeated on a number of ranges of the tree on development and even when it was there could be no approach to deal with this because the Taproot tree is simply (partially) revealed at spending time. Nonetheless it presents a malleability vector if at spending time the identical Tapleaf will be spent from at a number of ranges on the tree.
If Taproot was (hypothetically) redesigned at the moment would it not deal with this bug and the way?
Sure if it was redesigned at the moment it will at spending time require signing all the Merkle path relatively than simply the Tapleaf. This does not forestall a Tapleaf from being repeated on Taptree development however would forestall the identical Tapleaf being spent from on a special stage of the Taptree.
ghost43 acknowledged on IRC:
If the Merkle path to the Tapleaf was signed it will not be fascinating whether or not there’s a duplicate Tapleaf within the tree. The problem is that because the Tapleaf path will not be signed, if the Tapleaf is duplicated anybody with information of the Taptree can “rebind” the spend to seek advice from the opposite matching Tapleaf. It’s a form of malleability. If the trail to the leaf was signed this might not be doable.
Because of ghost43 and AJ Cities for answering this on IRC.
