Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 259|Respuesta: 0

Explicación detallada de la codificación blockchain Base58, Base58Check, Bech32 y Bech32m

[Copiar enlace]
Publicado el 17-10-2025 09:01:55 | | | |
Base58, Base58Check, Bech32 y Bech32m son formatos de codificación comúnmente utilizados en tecnología blockchain, principalmente para mejorar la legibilidad, reducir errores y garantizar la integridad de los datos. Estos cuatro códigos tienen sus propias ventajas para garantizar la seguridad, la compatibilidad y la corrección de errores, y son piedras angulares importantes de los sistemas modernos de direcciones blockchain.

Base58

"Base58" es un método de codificación inventado por Satoshi Nakamoto, que está adaptado de un conocido método de codificación "Base64". El conjunto de caracteres Base64 incluye: todos los números y letras mayúsculas y minúsculas, así como dos símbolos ("+" y "/"); Un total de 64 caracteres. Satoshi Nakamoto eliminó el número 0, las letras mayúsculas I y O, la letra minúscula y el símbolo, y pasó a ser Base58.

Conjunto de caracteres: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz



Base58Check

En comparación con Base58, la codificación Base58Check solo tiene un cálculo adicional de suma de comprobación. Como se muestra a continuación:



Base58Check resuelve los problemas de propensos a errores, difíciles de reconocer y no verificados en los métodos tradicionales de codificación, proporcionando un método de representación seguro, compacto, amigable para las personas y que detecta errores para los datos clave en la blockchain (como direcciones y claves privadas). Aunque ahora está siendo reemplazado gradualmente por el más avanzado Bech32/Bech32m (para direcciones SegWit), desempeñó un papel crucial en el ecosistema inicial de Bitcoin.

Bech32

"Bech32" es un método de codificación definido por BIP 0173, que fue escrito por Pieter Wuille y Greg Maxwell. Sin embargo, esta codificación también tiene sus orígenes: "Bech" se refiere a "BCH", un algoritmo de codificación de corrección de errores cíclico inventado por tres matemáticos en 1959 y 1960 respectivamente (el nombre BCH proviene de los nombres de estos tres matemáticos). "32" significa que el conjunto de caracteres del método de codificación tiene solo 32 caracteres: letras minúsculas y números, excluyendo los números "1", las letras "b", "i" y "o".



Al comienzo de BIP 0173, los autores señalan los aspectos indeseables de Base58:

  • Base58 utiliza tanto letras inglesas grandes como minúsculas, lo que hace que sus datos se dibujen en códigos QR no en el modo más pequeño de "alfabeto numérico", sino solo en el modo de "datos de bytes" más grandes.
  • El uso tanto de la funda como de la funda también dificulta transcribir, escribir y leer en el teclado del teléfono.
  • La suma de comprobación requirió dos operaciones consecutivas de SHA256, que eran lentas y no permitían localizar la colocación incorrecta.
  • La mayoría de los métodos de codificación de errores localizables solo funcionan si el tamaño del conjunto de caracteres es de potencia prima, y 58 no es potencia prima.
  • Base58 es más complejo de decodificar y más lento de decodificar.

Como resultado, el nuevo enfoque de Bech32 utiliza únicamente letras minúsculas y números; Cuando sea necesario, como al dibujar un código QR, todas estas letras pueden sustituirse por mayúsculas para una representación más compacta. Códigos QR más pequeños, como las direcciones Bech32 son singulares, puedes codificarlos como códigos QR usando el modo alfanumérico. Esto significa que puedes crear un código QR más compacto porque Base58 requiere letras mayúsculas y minúsculas (lo que significa que no puedes usar el modo alfanumérico), mientras que Bech32 no. Como se muestra a continuación:



Como puedes ver, a pesar de la dirección Bech32Contiene más caracteres, pero la capacidad de usar patrones alfanuméricos significa que los códigos QR consumen menos datos en total

Al mismo tiempo, Bech32 tiene la capacidad de localizar errores: no solo puede detectar que has cometido un error de copia, sino también señalar qué bits has copiado incorrectamente (esta capacidad para encontrar errores es muy superior a Base58).

De hecho, el algoritmo BCH también tiene una función de "corrección de errores": no solo puede indicar qué bits has copiado incorrectamente, sino también qué caracteres debe ser. Sin embargo, los autores del BIP 0173 encontraron sus peligros inherentes: por un lado, reforzar la corrección de errores debilita la capacidad de localizar errores; Por otro lado, si el usuario confía demasiado en las capacidades de corrección de errores del software, este puede corregir los datos erróneos introducidos por el usuario en un dato "válido pero inútil", aunque es válido como dato codificado en BCH; Sin embargo, es posible que el script restaurado de Bitcoin no esté bajo el control del destinatario, ni siquiera de nadie. Esto es extremadamente peligroso. Por lo tanto, BIP 0173 advierte: "Además de recordar a los usuarios qué bits pueden haber sido copiados incorrectamente, el software no debe implementar capacidades de corrección de errores (dar sugerencias de corrección)." ”

Además, Bech32 sigue el patrón encontrado en la codificación Base58:

1. Los datos de Bech32 comenzarán con un párrafo "datos con significado (hrp)", similar al prefijo de Base58, que puede indicar qué tipo de datos es.
HRP puede usar mucho más de 32 caracteres; Bech32 también utiliza el número "1" como separador para separar la HRP de los datos que realmente se van a decodificar.
Además de Bitcoin, hay muchos otros proyectos que también han adoptado Bech32; El HRP se utiliza para distinguir datos de diferentes ítems. Aquí tienes una lista de HRPs registrados, que es muy interesante (pero solo interesante).
2. Bech32 también diseñó una suma de comprobación que ocupa los últimos 6 caracteres de los datos codificados.

Bech32m

"Bech32m" es un método de codificación definido por BIP 0350. Enlace:El inicio de sesión del hipervínculo es visible.Se propuso porque los desarrolladores descubrieron una vulnerabilidad en la codificación de Bech32:

Cuando el último carácter es "p", insertar o eliminar cualquier número de "q" delante de ese carácter no causará un error de suma de comprobación (los datos seguirán considerándose válidos), entoncesEl mecanismo de suma de comprobación pierde completamente su funciónTerminar.

Si no añades un script estandarizado de Bitcoin, este problema se puede resolver fácilmente: tanto la dirección P2WPKH como la dirección P2WSH tienen cierta longitud, solo añade la comprobación de longitud. Sin embargo, teniendo en cuenta que en el futuro también añadiremos nuevos scripts estandarizados, la longitud de la dirección podría cambiar, por lo que es necesario solucionar este problema.

Bech32m soluciona este problema cambiando un parámetro en el generador de suma de comprobación Bech32.

Actualmente, Bech32m solo se utiliza para codificar direcciones de scripts "P2TR" que se añaden con la actualización "Taproot". Puede utilizarse en la codificación de direcciones de otros scripts estandarizados en el futuro.

Referencia:

El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.
El inicio de sesión del hipervínculo es visible.




Anterior:tiktok, Douyin captura el paquete y elimina el script de Frida, que puede localizar la ubicación del parche del archivo SO
Próximo:Introducción a los tipos de direcciones de Bitcoin Legacy, SegWit anidado, SegWit nativo y Taproot
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com