Перейти к содержимому
ecdsa.com

BIP-32 (HD-кошельки)

Стандарт Bitcoin, по которому из одного seed с помощью HMAC-SHA512 и цепных кодов (chain code) выводится дерево ключей: одна резервная копия охватывает все адреса, а из расширенных открытых ключей можно выводить адреса для получения средств без закрытых ключей.
Другие написанияBIP-32BIP32HD wallethierarchical deterministicchain code

Мастер-ключ и цепной код получают как HMAC-SHA512("Bitcoin seed", seed). Дочерний ключ с индексом i получают из HMAC, где ключом служит цепной код родителя, а данными — открытый ключ родителя (обычная деривация, i меньше 2³¹) или его закрытый ключ (усиленная деривация, hardened: i не меньше 2³¹, записывается как i'). Расширенные ключи сериализуются в 78 байт (версия, глубина, отпечаток родительского ключа, индекс, цепной код и ключ) и кодируются в Base58Check как xprv… или xpub….

У обычной деривации есть опасная особенность: xpub вместе с закрытым ключом любого неусиленного дочернего ключа раскрывает закрытый ключ родителя, поэтому никогда не раскрывайте дочерние закрытые ключи узла, xpub которого вы кому-то передали. Усиленные уровни в стандартных путях (m/84'/0'/0') ограничивают этот риск. Кошельки Ethereum используют ту же схему на secp256k1.

Стандарты и ссылки

Все термины