Author: Pieter Wuille 2019-12-09 22:31:13
Published on: 2019-12-09T22:31:13+00:00
Pieter has written a detailed analysis of Bech32's detection abilities, examining how it behaves in the presence of substitution errors, swapping of characters, insertions, and deletions. He has found that inserting or deleting a 'q' right before a final 'p' is the only deviation from the expected "at-most-1-in-a-billion" failure to detect chance, at least when restricted to the classes of errors analyzed with various uniformity assumptions. He also suggests updating BIP173 to include the insertion weakness as an erratum and amending segwit addresses to be restricted to only length 20 or 32. Additionally, he proposes defining a variant of Bech32 with the modified constant so that non-BIP173 uses of Bech32 can choose a non-impacted version if they worry about this class of errors. Finally, Pieter believes that the impact on production systems will be minimal, as many wallets already do not accept unknown witness versions in outputs, and it gives us probably years to adapt.
Updated on: 2023-05-20T21:22:08.490182+00:00