Получить закрытый и открытый ключи от главного закрытого ключа BIP44

Я смущен получением закрытого ключа, соответствующего адресу для пути выводаm/44'/60'/0'/0'/0'

Вопрос 1. Верен ли следующий код для получения адреса и закрытого ключа? Почему закрытый ключ является объектом Buffer?

<Buffer fd 5f 63 c0 6b 5a 99 c4 c6 9a 05 07 01 c7 fd 04 cd b5 39 b6 2e 58 4e 63 98 c4 7c 28 5e b8 31 fa>

Если я правильно понимаю разную глубину пути:

  • 44'означает BIP44
  • 60'означает Эфириум
  • 0'означает кошелек № 0
  • 0значит публичное, 1значит приватное?? Что означает публичное и частное?
  • 0означает индекс 0

Вопрос 2:' Почему за некоторыми цифрами стоит знак ?

Код:

var bitcore = require('bitcore-lib');
var EthereumBip44 = require('ethereum-bip44');

var seed = 'xprv9s21ZrQH143K2uRcdeb2VJAEwhJQCtAjTCgx9JQt5NGhSkG4xGiuXvea8yN3tz3Q4LwPoP8j2cwERYNyw959ed9yqCrHGT1oDxJhNWoobqf'
var hdKey = new bitcore.HDPrivateKey(seed);
console.log('HD Key: ', hdKey.toString())

console.log('---')

var derivationPath = "m/44'/60'/0'/0'";
var derivedPrivKey = hdKey.derive(derivationPath)
var derivedPubKey = hdKey.derive(derivationPath).hdPublicKey

console.log('Derivation Path: ', derivationPath)
console.log('Extended Private Key: ', derivedPrivKey.toString())
console.log('Extended Public Key:  ', derivedPubKey.toString())

console.log('---')

var wallet = new EthereumBip44.fromPrivateSeed(derivedPrivKey)
console.log('Wallet (0) Address: ', wallet.getAddress(0))
// 0x10ea551752f7ba9fd73d19baa16b234585e2c45d

console.log('Wallet (0) Private Key: ', wallet.getPrivateKey(0))
// <Buffer fd 5f 63 c0 6b 5a 99 c4 c6 9a 05 07 01 c7 fd 04 cd b5 39 b6 2e 58 4e 63 98 c4 7c 28 5e b8 31 fa>

Выход

HD Key:  xprv9s21ZrQH143K2uRcdeb2VJAEwhJQCtAjTCgx9JQt5NGhSkG4xGiuXvea8yN3tz3Q4LwPoP8j2cwERYNyw959ed9yqCrHGT1oDxJhNWoobqf
---
Derivation Path:  m/44'/60'/0'/0'
Extended Private Key:  xprvA1Q3FUbfXYKGzLiE9FgpgiBC4yrBkZm2eEQvBCtF95gvF6RQ1c1tWqeeemMDXczBwEi76wKrRR7oJPBQCsn9ghBSdigGdo5ZXE8WpX68t57
Extended Public Key:   xpub6EPPez8ZMusaCpnhFHDq3r7vd1ggA2Ut1TLWybHrhRDu7tkYZ9L94dy8VzvGNYjxiCFjpK4xbaBzaXkmWiU4Bj3q3SgwYrqJLKJP9SiQ2t1
---
Wallet (0) Address:  0x10ea551752f7ba9fd73d19baa16b234585e2c45d
Wallet (0) Private Key:  <Buffer fd 5f 63 c0 6b 5a 99 c4 c6 9a 05 07 01 c7 fd 04 cd b5 39 b6 2e 58 4e 63 98 c4 7c 28 5e b8 31 fa>   
Я предлагаю вам посмотреть это видео youtube.com/watch?v=2HrMlVr1QX8&t=460s , чтобы лучше понять.

Ответы (1)

Путь BIP 44 представлен как m / target' / coin_type' / account' / change / address_index, Purpose — это константа, установленная на 44' (или 0x8000002C) в соответствии с рекомендацией BIP43. Апостроф в пути указывает на то, что используется усиленное производное BIP32. coin_type равен 60 для Eth, 0 для BTC, 2 для LTC и т. д.

В зависимости от типа монеты вы можете сгенерировать открытые и закрытые ключи любой зарегистрированной монеты. Список зарегистрированных монет ( https://github.com/satoshilabs/slips/blob/master/slip-0044.md )

Вы можете прочитать больше на https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki.