Descripción general
Bech32 es un formato de codificación de direcciones especificado en BIP173, diseñado para direcciones SegWit nativas. Reemplazó la codificación Base58Check antigua para direcciones compatibles con SegWit, ofreciendo mejoras significativas en usabilidad y detección de errores. Una versión actualizada, Bech32m (BIP350), fue introducida para direcciones Taproot.
Características principales
- No distingue mayúsculas de minúsculas: Las direcciones Bech32 usan solo letras minúsculas y números, eliminando la confusión entre caracteres en mayúsculas y minúsculas
- Mejor detección de errores: Puede detectar hasta 4 errores y localizar hasta 2 errores en una dirección
- Comisiones más bajas: Las transacciones SegWit nativas son más pequeñas en términos de unidades de peso, resultando en comisiones más bajas
- Amigable con QR: Produce códigos QR más compactos ya que la codificación es más eficiente
Estructura de la dirección
bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
│ │ │
│ │ └── Datos (programa testigo, codificado)
│ └──── Separador (siempre "1")
└─────── Parte legible por humanos ("bc" para mainnet, "tb" para testnet)
Bech32m (Taproot):
bc1p5cyxnuxmeuwuvkwfem96lqzszee2457nljy653y...
│ │
│ └── "p" indica la versión 1 del testigo (Taproot)
└───── Mismo prefijo "bc" para mainnet
Bech32 vs Bech32m
La codificación Bech32 original tenía una debilidad donde ciertos tipos de errores en el último carácter podían pasar desapercibidos para la versión 1 del testigo y superior. Bech32m (BIP350) soluciona esto usando una constante diferente en el cálculo de la suma de verificación. Todas las direcciones Taproot (versión 1) usan Bech32m, mientras que las direcciones SegWit de versión 0 continúan usando Bech32.
Adopción
Desde su introducción, la adopción de Bech32 ha crecido de manera constante. La mayoría de las billeteras modernas generan direcciones Bech32 por defecto. Algunos servicios y billeteras más antiguos pueden no soportar el envío a direcciones bc1, aunque esto es cada vez más raro.