Но это же разные адреса? А то получается, что как-будто 3 адреса из одного публичного ключа - это один и тот же адрес, но тогда они могли бы конвертироваться друг в друга (как, скажем, в лайткоине адреса на 3 и M).
По крайней мере, адрес P2PKH (1...) и P2PWKH (bc1...) - это один и тот же хеш публичного ключа RIPEMD160(SHA256(pubKey)), только первый преобразуется в base58check, а второй - в bech32, исключительно для человекочитаемого отображения. Внутри выхода транзакции этот хеш в виде 20-байтной последовательности будет выглядеть одинаково и для P2PKH-выхода, и для P2WPKH-выхода.
Совместимые SegWit-адреса (P2PWKH-P2SH) создаются следующим образом:
1. Берётся хеш приватного ключа RIPEMD160(SHA256(pubKey))
2. К нему спереди добавляются два байта 0014(HEX)
3. Над полученной последовательностью из 22 байт снова выполняется операция хеширования RIPEMD160(SHA256(0014))
4. Результат хеширования представляется в кодировке base58check c версией 05.
Таким образом, получается, что из legacy-адреса можно получить bech32-адрес, и наоборот.
Из legacy-адреса или bech32-адреса можно получить P2PWKH-P2SH-адрес, а наоборот не получится.