Bitcoin Forum
April 26, 2024, 07:41:20 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Entendiendo las direcciones de Bitcoin.  (Read 77 times)
seoincorporation (OP)
Legendary
*
Offline Offline

Activity: 3136
Merit: 2908


Top Crypto Casino


View Profile
August 26, 2022, 02:50:23 PM
Merited by DdmrDdmr (5), d5000 (2), Porfirii (1), famososMuertos (1), darxiaomi (1)
 #1

Las direcciones de bitcoin es de esas cosas complejas que todos usamos pero no todos entendemos, simplemente vemos si empiezan con 1 o con 3 o con bc1q, lo único que nos interesa saber es como importar y exportar una direccion y con esto ya tenemos lo necesario para usarlas. ¿Pero alguna vez te has puesto a pensar como funcionan?

Toda dirección de bitcoin parte de una llave privada, y lo que a mi me llamó mucho la atención es que con la misma llave podemos generar cualquier tipo de dirección.

Supongamos que usamos vanity gen para generar una dirección:

Code:
Address: 1AddyRpJ5SjfCH8N1WSkTX4FUPb4H2YfFx
Privkey: 5JcWWHgBvyf9LR6W4WmogwXh9JqSNGTsygmLNs1pKvaSnDx9Wjq

Lo que acabamos de obtener es una dirección y una llave privada descomprimida, al pasar esa llave a formato comprimido obtenemos:

Code:
KzjjEGbyFF5MnhMHGWQm5HgUBfinxsFe1CWgXVkbtXUcnL9YEgPi

Esta llave comprimida puede ser importada a electrum en los 3 tipos de formato:

Code:
p2pkh:KzjjEGbyFF5MnhMHGWQm5HgUBfinxsFe1CWgXVkbtXUcnL9YEgPi
p2wpkh:KzjjEGbyFF5MnhMHGWQm5HgUBfinxsFe1CWgXVkbtXUcnL9YEgPi
p2wpkh-p2sh:KzjjEGbyFF5MnhMHGWQm5HgUBfinxsFe1CWgXVkbtXUcnL9YEgPi 

Y es así como con la misma llave privada obtenemos las siguientes 3 direcciónes:

Code:
1853H6w9Vii6ymMrFL9YDq2rwencmvzTL7
bc1qfkx8yykk6299gyx4d7adz4sgv5uzjjctzjz5n2
3Cjk952fMgNygHdYeYBxCTgtdTZj18SVsT

Y es aquí donde viene lo interesante... Hay una manera de saber si 2 direcciones comparten la misma llave privada sin conocer esta llave, y eso es a través del Hash160 de la dirección.

Code:
python3 -c 'import bech32; hash1 = bech32.decode("bc", "bc1qfkx8yykk6299gyx4d7adz4sgv5uzjjctzjz5n2"); hash2 = bytes(hash1[1]); print(hash2.hex())'
4d8c7212d6d28a5410d56fbad156086538294b0b

Code:
python3 -c "import binascii, hashlib, base58; hash160 = binascii.hexlify(base58.b58decode_check(b'1853H6w9Vii6ymMrFL9YDq2rwencmvzTL7')).decode()[2:]; print(hash160)"
4d8c7212d6d28a5410d56fbad156086538294b0b

Sin embargo esto no aplica para las direcciónes P2SH ya que estas llevan un doble proceso de hash160.

Y es por esto que programas como brainflayer utilizan ese Hash160 como vector de ataque en ves de buscar direcciones. Ya que si encontramos la llave privada de ese hash podremos acceder a todas sus direcciones.

Para concluir dejo algunos ejemplos de direcciones con su tipo para que puedan identificarlas a futuro:

Code:
Base58 (P2PKH) 1AddyRpJ5SjfCH8N1WSkTX4FUPb4H2YfFx
Base58 (P2SH) 3Cad7LvtLjxWrQzdbLdnoQ9yP8Xr7rU1vH
BECH32 (P2WPKH) bc1qfkx8yykk6299gyx4d7adz4sgv5uzjjctzjz5n2
BECH32 (P2WSH) bc1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3qccfmv3

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
1714160480
Hero Member
*
Offline Offline

Posts: 1714160480

View Profile Personal Message (Offline)

Ignore
1714160480
Reply with quote  #2

1714160480
Report to moderator
1714160480
Hero Member
*
Offline Offline

Posts: 1714160480

View Profile Personal Message (Offline)

Ignore
1714160480
Reply with quote  #2

1714160480
Report to moderator
"Bitcoin: the cutting edge of begging technology." -- Giraffe.BTC
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714160480
Hero Member
*
Offline Offline

Posts: 1714160480

View Profile Personal Message (Offline)

Ignore
1714160480
Reply with quote  #2

1714160480
Report to moderator
1714160480
Hero Member
*
Offline Offline

Posts: 1714160480

View Profile Personal Message (Offline)

Ignore
1714160480
Reply with quote  #2

1714160480
Report to moderator
seoincorporation (OP)
Legendary
*
Offline Offline

Activity: 3136
Merit: 2908


Top Crypto Casino


View Profile
August 26, 2022, 05:21:55 PM
Last edit: August 26, 2022, 06:00:01 PM by seoincorporation
Merited by Porfirii (1)
 #2

Herramientas de generación, conversión  y verificación.

Normalmente cuando un usuario crea una cuenta en algún servicio que permita depósitos y retiros (Como una casa de cambio o un casino), este genera la dirección de deposito para el usuario y el servicio se encarga de la manipulación de las llaves privadas y las transacciones. Si dicho servicio es vulnerado o deciden cerrar y desaparecer no hay forma de que los usuarios recuperen sus fondos ya que estos solo tienen la dirección de depósito pero no la llave privada.

Si no tienes las llaves privadas las cryptomonedas no te pertenecen. Así que estos son algunos métodos para generar tus llaves privadas:

Vanitygen:
Code:
sudo snap install vanitygen

Code:
:~$ vanitygen -i 1BOSS
Difficulty: 1100434
Pattern: 1BOSS                                                                
Address: 1Boss1twybZT8QjhZBxPah7kB2DauyUjrx
Privkey: 5KLdkbcriPUp7nvQUmi1tLbCApfH7CmkHxGdGoAN7n1rHiNJoCt

Con este metodo usamos fuerza bruta para encontrar una dirección con el prefijo 1Boss. Pero también hay una forma de crear direcciones a partir de una combinación de palabras:


Vanitygen nos ofrece una llave privada descomprimida mientras que el sitio de brainwallet nos ofrece ambas (comprimida y descomprimida).

Así que trabajemos con esa dirección, a continuación vamos a obtener la clave comprimida y sus 3 formatos de dirección.

Entramos a https://secretscan.org/PrivateKeyWif y enviamos la llave privada.


Con esto obtenemos la llave en Hexadecimal:

Code:
C89ABC0F5A50A51D1EEC3F0A1D7FB6B72B2501985A37893D72266CBABD4234B4

Ahora podemos entrar a cualquiera de estos conversores para obtener la dirección a partir de la llave privada en Hexadecimal

https://secretscan.org/PrivateKeyHex
https://secretscan.org/PrivateKeySegwit
https://secretscan.org/Bech32


Y por último me gustaría compartir otra herramienta la cual nos permita saber si tenemos balance en nuestras otras direcciones con la misma llave privada pero no solo para bitcoin, sino que tambien para sus 'fork' y otras monedas populares.


NOTA: Esto lo hago con propósitos educativos, el uso de herramientas en línea para verificar o generar información sensible es un grabe error que nadie debería cometer ya que corren el riesgo de perder sus fondos.

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
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!