BIP 341: Fix taproot_tweak_pubkey
`lift_x` returns `None` if the input integer is not an X coordinate on the curve to indicate failure. `point_add`, on the other hand, interprets `None` as the point at infinity. Therefore, without this commit, if the internal `pubkey` is not a valid X coordinate, the function will not fail, which contradicts the specification in the "Script validation rules section". Instead, it sets `Q` to `t*G`. A test vector is being added here: https://github.com/bitcoin-core/qa-assets/pull/98 CC @sipa @aj
No reviewsSpecification
lift_x returns None if the input integer is not an X coordinate on the curve to indicate failure. point_add, on the other hand, interprets None as the point at infinity. Therefore, without this commit, if the internal pubkey is not a valid X coordinate, the function will not fail, which contradicts the specification in the "Script validation rules section". Instead, it sets Q to t*G.
A test vector is being added here: https://github.com/bitcoin-core/qa-assets/pull/98
CC @sipa @ajtowns
Discussion (0 threads)
Loading discussions...