Bitcoin Forum
August 11, 2024, 12:53:30 AM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Longitud máxima de las direcciones BTC Legacy y SegWit  (Read 35 times)
MA40 (OP)
Hero Member
*****
Offline Offline

Activity: 800
Merit: 550


--- I ❤ Ƀ ---


View Profile WWW
July 12, 2024, 04:55:02 PM
Merited by DdmrDdmr (2)
 #1

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.

¿Qué sucedería si se enfrentara una fuerza imparable contra un muro inamovible?
ChessFaucet.com - Gana bitcoins jugando al ajedrez contra el ordenador. ♟♟♜♞♝♛♚♝♞♜♟♟
⚡ Lightning Address: MA40@coinos.io
d5000
Legendary
*
Offline Offline

Activity: 4004
Merit: 7056


Decentralization Maximalist


View Profile
July 13, 2024, 03:31:59 AM
Last edit: July 13, 2024, 03:44:42 AM by d5000
Merited by DdmrDdmr (2), MA40 (2)
 #2

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.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!