Suena como si fuera un proceso que permite reconstruir una billetera a partir de una frase de contraseña o de varios fragmentos dispersos. ¿Alguien podría dar una explicación técnica detallada?
Has dado en el clavo. Una billetera determinista es cualquier sistema que utiliza una frase de contraseña u otro fragmento de datos para crear un par de claves de manera repetible. Siempre que recuerde la frase de contraseña, el par de claves se puede volver a generar a partir de ella, por lo que el almacenamiento ya no es un problema de seguridad. Hay varios métodos para generar billeteras deterministas, pero mi favorito es el generador de direcciones de Bitcoin de Casascius (C#, Windows, binarios aquí )
Normalmente, cuando envías dinero también generas una nueva clave privada/pública para que el "cambio" regrese. por lo tanto, cada vez que envía dinero, su wallet.dat crece un poco.
La idea básica de la billetera determinista: en lugar de una base de datos con muchas claves privadas/públicas, comienza con una sola clave privada, a partir de la cual se pueden calcular todas las claves futuras.
Esto tiene muchas ventajas. Es trivial respaldar y transferible. podría ser utilizado desde múltiples computadoras.
afaik, webcoin.ch utiliza este concepto. El actual cliente "oficial" no.
Una billetera determinista es cualquier billetera para la cual una clave privada determinada se puede recuperar de manera predecible con solo:
Hay dos tipos de monederos deterministas:
Con una billetera determinista secuencial, la semilla es una frase de contraseña o una secuencia de caracteres que se puede incrementar y codificar repetidamente para generar nuevas claves privadas.
Por ejemplo, si uso la frase de contraseña:
'shepherd mais pack rate enamel horace diva filesize maximum really roar mall'
...entonces puedo crear las primeras 100 claves privadas haciendo lo siguiente:
hex(sha256('shepherd mais pack rate enamel horace diva filesize maximum really roar mall 0'))
hex(sha256('shepherd mais pack rate enamel horace diva filesize maximum really roar mall 1'))
...
Y siempre que sea coherente con la forma en que modifico la frase de contraseña original, puedo recuperar fácilmente cualquier frase de contraseña que desee.
Una billetera determinista jerárquica, por otro lado, comienza con un solo par de llaves como el par de llaves maestras. La clave privada de este par de claves es la semilla secreta.
Cada par de llaves tiene hijos. Y la clave pública de un hijo dado de un nodo padre dado en el árbol se genera realizando una multiplicación de curva elíptica en la clave pública del padre.
El propietario puede recuperar la clave privada del niño realizando la misma operación multiplicativa en la clave privada del padre. Esto se debe a que m Clave pública/Clave pública = m Clave privada/Clave privada.
Lo bueno de esto es que puede darle a un servidor una clave pública y ese servidor puede generar nuevas direcciones para usted sin tener que conocer su clave privada.
...
Si está buscando una implementación de python de billeteras deterministas secuenciales, armé una aquí: https://github.com/blockstack/pybitcoin (o simplemente haga "pip install pybitcoin").
Todavía no tengo una implementación funcional de carteras deterministas jerárquicas, pero para eso vería esta implementación de python o esta implementación de ruby .
Otro ejemplo que utiliza monederos deterministas es BCCAPI, que es una biblioteca para crear clientes de Bitcoin ligeros y seguros. http://code.google.com/p/bccapi/
Las principales propuestas de mejora de Bitcoin (BIP) asociadas con carteras deterministas, específicamente deterministas jerárquicas (HD) para facilitar la portabilidad entre implementaciones para evitar el bloqueo del proveedor son BIP 32, 39, 44. Los BIP entran en los detalles técnicos. Es posible que desee examinar libbitcoin para ver ejemplos de interfaz de línea de comandos para aplicar los BIP 32, 39 y 44.
destripador234
Andreas Peterson
pieter wuille