Estoy usando libwally para derivar direcciones de una clave privada extendida. Compartí la semilla con Bitcoin Core (la cargué en una billetera en blanco con sethdseed
), y noté que hay 2 direcciones en el volcado del archivo de la billetera bajo la misma ruta de derivación, una está etiquetada reserve=1
y es la misma que derivo con libwally, el otro está etiquetado change=1
y es diferente.
Tengo algunas preguntas sobre esto:
reserve
y change
? Supongo que reserve
son direcciones de recepción normales y change
, bueno, cambian, pero todavía me pregunto si hay algún significado más específico para Bitcoin Core.../0/{index}
y cambian con ../1/{index}
, ¿o Bitcoin Core está haciendo las cosas de manera diferente a, por ejemplo, Electrum?change
dirección con libwally también?[EDITAR] Después de hacerlo una vez más, solo tengo una dirección con la misma ruta en el archivo de volcado de Bitcoin Core, así que supongo que cometí un error la última vez, lo explicaré aquí en caso de que ayude: Para crear un billetera con una semilla que elijas tú mismo, necesitas 2 comandos createwallet
y sethdseed
. Además del requerido wallet_name
, createwallet
también toma un blank
argumento opcional. Por defecto es false
, y el comando usará una semilla aleatoria para generar un grupo de claves. Pero como queremos usar nuestra propia semilla, debemos configurarla en true
. Si descarga la billetera recién creada, estará en blanco, sin clave maestra, sin grupo de claves, nada. Entonces solo tu puedessethdseed
con una semilla 32B codificada en formato wif. Tenía 2 claves en la misma ruta de derivación porque primero creé una billetera con una semilla aleatoria y luego agregué la mía con sethdseed
, por lo que tenía 2 grupos de claves en mi archivo de volcado. Como dijo Andrew en la respuesta, es imposible tener 2 pares de claves diferentes con la misma clave maestra y ruta.
- ¿Cuál es exactamente el significado de
reserve
ychange
? Supongo quereserve
son direcciones de recepción normales ychange
, bueno, cambian, pero todavía me pregunto si hay algún significado más específico para Bitcoin Core.
reserve
significa que la clave está en el conjunto de claves y aún no se ha utilizado. Esto se usa tanto para cambiar como para recibir direcciones, ya que hay conjuntos de claves para ambos.
change
significa que la clave se utiliza para cambiar direcciones.
- Pensé que las direcciones de cambio se derivaron con una ruta diferente, como que todas las direcciones de recepción terminan
../0/{index}
y cambian con../1/{index}
, ¿o Bitcoin Core está haciendo las cosas de manera diferente a, por ejemplo, Electrum?
Ellos son. Bitcoin Core se usa m/0'/0'/i'
para recibir direcciones y m/0'/1'/i'
cambio. Sin embargo, si tiene una billetera Bitcoin Core anterior, esta división no existe y solo hay un conjunto de claves. Pero si está usando sethdseed
, eso no debería afectarlo.
- Además, me pregunto cómo generar 2 pares de claves diferentes con la misma clave maestra y ruta, ¿podría haber generado la
change
dirección con libwally también?
No hay 2 pares de claves diferentes con la misma clave maestra y ruta. Bitcoin Core no hace esto, y eso no es posible con BIP 32 (o cualquier BIP).
sostène
blank
acreatewallet
. Estaba pensando que de hecho era imposible tener 2 pares de claves con la misma clave maestra y la misma ruta, así que me alivia que mi billetera no haya violado las leyes de las matemáticas :)