From 59391f1862873a66af0a15fe776cc335412cc875 Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Thu, 3 Aug 2017 12:14:43 -0700 Subject: [PATCH] Elaborate on the encoding of witness versions --- bip-0173.mediawiki | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bip-0173.mediawiki b/bip-0173.mediawiki index d9b3a035..0c911b4f 100644 --- a/bip-0173.mediawiki +++ b/bip-0173.mediawiki @@ -227,6 +227,12 @@ program is neither 20 nor 32 bytes, the script must fail.'' As a result of the previous rules, addresses are always between 14 and 74 characters long, and their length modulo 8 cannot be 0, 3, or 5. Version 0 witness addresses are always 42 or 62 characters, but implementations MUST allow the use of any version. +Implementations should take special care when converting the address to a +scriptPubkey, where witness version ''n'' is stored as ''OP_n''. OP_0 is +encoded as 0x00, but OP_1 through OP_16 are encoded as 0x51 though 0x60 +(81 to 96 in decimal). If a bech32 address is converted to an incorrect +scriptPubKey the result will likely be either unspendable or insecure. + ===Compatibility=== Only new software will be able to use these addresses, and only for