josemariasosa / nuit-btc

Implementación de una Cartera Jerárquica Determinista (HD wallet) para Bitcoin (BTC).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nuit-BTC Wallet

🐈-₿

Implementación de una Cartera Jerárquica Determinista para Bitcoin (BTC).

La implementación será llevada a cabo en Python, y estará acompañada de una documentación extensa en Español, con el objetivo de que pueda servir como guía para personas interesadas en aprender o desarrolar software propio.

El objetivo de esta implementación es principalmente didáctico. Cada paso será explicado en la documentación.

Para la implementación del algoritmo criptográfico de curva elíptica (ECDSA) en Python se utilizó como referencia el libro de Programming Bitcoin de Jimmy Song.

Contenido

Comienzo Rápido

1. Generación de semilla y palabras mnemónicas

Generar una semilla de manera aleatoria y rápida:

from key.mnemonic import Mnemonic

m = Mnemonic(language="spanish", number_of_words=12)
secret = m.generate_user_keys()

print('mnemonic: ', secret.get('mnemonic'))
print('seed: ', secret.get('seed'))

# mnemonic:  echar perla turno tomar anillo viudo pizca envío grúa calma boa cien
# seed:  e83814fac124edf61aaed1f4e6c6c29a4ff774b82e096ab2bc2b086d7035eaee4c23a3a823b193515ba755159a4b60e5c7f0ad36b66a57ae13f8af8c6aebd7ad

Es posible, y muy recomendable, que la entropía sea provista por el usuario de manera manual, lanzando un dado al menos en 99 ocasiones. Esto se consigue utilizando el argumento manually=True.

m = Mnemonic(language="spanish", number_of_words=12)
secret = m.generate_user_keys(manually=True)

print('mnemonic: ', secret.get('mnemonic'))
print('seed: ', secret.get('seed'))

#             -> Inserta el resultado del lanzamiento [1-6].
#             -> Únicamente valores entre 1 y 6 están permitidos.
#             -> Capturar al menos 99 lanzamientos.
#             -> Para terminar capture cualquier valor no permitido.

# Resultado del lanzamiento (1): 3
# Resultado del lanzamiento (2): 4
# Resultado del lanzamiento (3): 5
# Resultado del lanzamiento (4): 2
# Resultado del lanzamiento (5): 3
# Resultado del lanzamiento (6): 4
# Resultado del lanzamiento (7): 2
# Resultado del lanzamiento (8):
# WARNING: Input is only 18.095 bits of entropy

# mnemonic:  hoguera ofrecer tejado cohete goma trufa tapón humano engaño tira reunir cita
# seed:  5459e51dd1949ec27e0c70a4542001017b2122109ad50e1773db890c145689a99430fa9722e3726b1f1ca6aa37002e8849c24e25d6181c549c2cb2e8e213ad17

La Nuit ⽉

Porque la Nuit también quiere tener sus satoshis guardados de manera segura.

About

Implementación de una Cartera Jerárquica Determinista (HD wallet) para Bitcoin (BTC).


Languages

Language:Python 96.4%Language:HTML 2.1%Language:CSS 1.3%Language:Shell 0.2%