Derivar la clave privada de LTC Segwit (Dirección M) de Trezor

¡Así que estoy tratando de entender esto!

  1. Tengo mi semilla 24 para mi Trezor.
  2. Obtuve mi cuenta de Segwit para LTC (la dirección comienza con M).
  3. También tengo el equivalente de P2H para mi dirección (comienza con 3).

¿Cómo derivo usando el BIP39? Lo intenté y terminé con direcciones que comienzan con L. (Legacy ones).

m/49'/2'/0'/0 --> este es para M Segwit LTC
m/44'/2'/0'/0 ---> este es para Legacy LTC

Respuestas (2)

Cuando deriva direcciones, en realidad deriva claves privadas o públicas de las que se deriva una dirección. Sin embargo, las direcciones son en realidad una codificación de qué tipo de secuencia de comandos usar en la salida, pero las claves privadas no tienen idea de qué son las secuencias de comandos. Entonces, cuando deriva sus claves, no especifican qué tipo de dirección crear. Cada clave privada en realidad puede corresponder a múltiples direcciones.

Para especificar qué tipo de dirección crear, el software de su billetera debe poder comprender qué significan las rutas de derivación o poder decirle qué tipo de dirección se debe crear. El solo uso de una ruta de derivación para las claves que se usaron para derivar un tipo de dirección no significa que todo el software creará las mismas direcciones.

Deberá usar un software que sepa cómo crear el tipo de dirección que desea y luego deberá poder decirle que lo haga.

@AndrewChow♦ lo explicó muy bien.

Otra forma de ver la relación entre claves y direcciones es directamente usando litecoind, si tiene uno a mano.

$ litecoin-cli getaddressesbyaccount ""
[returns list (A) of addresses or none]
$ litecoin-cli getnewaddress ""
[returns a fresh new address ADDR1]
$ litecoin-cli getaddressesbyaccount ""
[returns list of addresses (A) + single entry for ADDR1]
$ litecoin-cli dumpprivkey <ADDR1>
[returns private key PRIV1 that ADDR1 came from]
$ litecoin-cli importprivkey <PRIV1>
[returns nothing]
$ litecoin-cli getaddressesbyaccount ""
[returns list of addresses (A) + ADDR1 + two extra representations]

Esa última llamada a getaddressesbyaccount ""muestra que al importar una clave privada, el daemon agrega todas las direcciones posibles que le corresponden.

La clave privada en el caso de litecoin corresponde a:

  • una dirección p2pkh (heredada, no Segwit): comienza con 'L'
  • una dirección p2sh (Segwit envuelto): comienza con 'M'
  • una dirección bech32 (puro Segwit): comienza con 'ltc'

Nota : el ADDR1devuelto por getnewaddressserá una dirección 'L' o una dirección 'M' dependiendo de si la configuración del daemon contiene addresstype=legacyo no, respectivamente. Opcionalmente, puede definir en la línea de comando el tipo de dirección que desea generar:\

$ getnewaddress "" legacy/p2sh-segwit/bech32

Nota 2 : como habrás notado, litecoind (versiones recientes) evita por completo las antiguas direcciones p2sh que comienzan con '3', ya que intentan que las personas se alejen de ellas y se acerquen a las 'M', para evitar más confusiones con las de bitcoin. 3' direcciones.