Author

Topic: Longitud máxima de las direcciones BTC Legacy y SegWit (Read 49 times)

legendary
Activity: 3906
Merit: 6249
Decentralization Maximalist
En el caso de las direcciones Legacy (que comienzan con 1) parece que la respuesta es 34 según este hilo en Stackexchange.

Al menos la manera en la que se contestó la pregunta me convence: se tomó el valor máximo posible para el "predecesor" del address, el hash RIPEMD-160 del hash SHA-256 de la clave pública (FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, es decir 40 Fs, un F representando el número decimal 15 en el sistema hexadecimal), se añadó 00 para el byte de la versión, y se añadó la suma de verificación que resulta de este "seudo hash", FA06820B . O sea se llegó al hash 00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA06820B, y este usando el método Base58 resulta en una dirección de 34 caracteres,

Acá se detalla (en inglés) como se calculan las addresses. Los pasos son:

1) se toma la clave pública,
2) se calcula un hash SHA256 de esta clave pública,
3) luego se calcula un hash RIPEM-160 del resultado,
4) delante del resultado del paso 3 se añade el byte de la versión,
5) detrás del resultado del paso 4 se añade la suma de verificación (checksum) que se obtiene calculando dos veces el hash SHA256 del resultado del paso 4 (es decir: SHA256(SHA256(RESULTADO_PASO_4))) y añadiendo solo los 4 primeros bytes de este hash
6) el resultado se procesa con el formato Base58, que asigna un valor a cada uno de la mayoría del las letras mayúsculas y minúsculas y números, con algunas excepciones como la "l" minúscula que se podría confundir con la "I" mayúscula.

Suena lógico entonces que la dirección más larga resulte del número más alto del paso 5, y este a su vez depende de un resultado muy alto del paso 4.

Ahora bien hay dos dudas que tengo:

1) ¿existirá un hash RIPEM160(SHA256(CLAVE)) de alguna clave pública con valor FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF?
2) ¿quizá hay algún número un poquito más bajo que resulte en una suma de verificación más alta, suficiente para una address de 35 o incluso 36 caracteres?

En el caso que 1 sea verdadero y 2 falso entonces esta es la address más larga que existe según este hilo en Stackexchange: 1QLbz7JHiBTspS962RLKV8GndWFwi5j6Qr. Esta address hasta recibió algunos coins como "donativos", en total más de 0.01 BTC, pero nadie los movió, lo cual indica que aún nadie conoce la clave pública asociada.

Esto sí: las direcciones Segwit pueden ser incluso más largas, con el formato bech32 (BIP-173) las más largas aparentemente tienen 72 caracteres. Sin embargo este formato solo usa 32 caracteres, es decir no es que el hash "predecesor" sea más largo, sino que en un carácter Base58 "entran" más bits que en uno de bech32.
hero member
Activity: 782
Merit: 523
--- I ❤ Ƀ ---
Hola.

No es que sea algo importante, pero sí curioso.

He buscado cuál es la longitud de caracteres máxima de las direcciones BTC Legacy y SegWit y me he encontrado con disparidades según la fuente.

Por ejemplo: en unos sitios se dice que la longitud máxima es de 32 caracteres.
Fuente: https://academy.bit2me.com/que-es-una-direccion-bitcoin/

En otros sitios, 35 caracteres.
Fuente: https://n26.com/es-es/blog/bitcoin-clave-publica-y-privada/

Y en otros, 36 caracteres.
Fuente: https://help.youhodler.com/es/articles/3876143-formatos-de-direccion-btc/

¿Alguien sabe a qué puede deberse estas diferencias?
Y ¿cuál es el valor correcto?

Un saludo.
Jump to: