Published on: 2020-08-27T01:10:21+00:00
On August 21, 2020, John Newbery suggested changing the proposal and implementation to use even tie-breakers everywhere. The comments received unanimously supported this change, reducing the mental overhead needed for explaining design decisions. Pieter Wuille expressed his happiness with the outcome of the change. Wuille proposed changing the tiebreaker used in conveying the Y coordinate of points in the BIP340 draft. Currently, squaredness is used as the tiebreaker for the R point inside signatures, while evenness is used for public keys. Recent developments have shown that determining evenness may be more efficient than squaredness. Wuille provides numbers that indicate the expected performance change from squareness to evenness, with positive numbers indicating that evenness is faster. Using a single tiebreaker for R points and public keys simplifies explanations and makes it easier for implementers and developers to understand. Changing to even tiebreakers everywhere may improve cryptographic code speedups by a couple of percent. Wuille suggests that changing the proposal and implementation to use even tiebreakers everywhere would be beneficial and worth considering.Pieter Wuille proposes changing the tiebreaker rule for block validation. Currently, blocks with an odd number of transactions have a higher chance of being orphaned due to a tiebreaker rule that prioritizes the block with the lowest hash. Wuille suggests changing the rule to prioritize the block with the even number of transactions. Following positive responses, Wuille has created a patch to implement the change and plans to submit it to the BIPs repository if there are no further arguments against it.Wuille also suggests reconsidering the use of squaredness as a tie-breaker for conveying the Y coordinate of points in BIP340. Recent developments have shown that using evenness as the tiebreaker may be faster. The impact of using evenness instead of squaredness on performance varies depending on hardware and algorithmic optimizations. While there may be a small speedup in verification and a slowdown in signing, the change is relatively simple to implement and may simplify code maintenance. Other developers are invited to share their thoughts on the matter.Nadav, a maintainer of Bitcoin-S and secp256k1 bindings, supports the change in tiebreaker for conveying the Y coordinate of points. Performance tests show that changing the tiebreaker will have a positive impact on verification and signing speed. The change involves modifying the BIP, proposed implementation, test vectors, and other draft implementations. Nadav believes that it is worth making the switch.The current BIP340 draft uses two different tiebreakers for conveying the Y coordinate of points. The R point inside signatures uses squaredness while for public keys evenness is used. Recent developments show that using evenness may be a better choice than squaredness. The justification for choosing squaredness as a tiebreaker was performance-related, but it slows down signing and is a less conventional choice. The proposed change involves modifying the BIP, libsecp256k1, and Bitcoin Core. The impact of changing the standard at this stage must be weighed against the relatively simple change required.
Updated on: 2023-08-02T02:35:47.729379+00:00