Я пытался понять спецификации функции CKD как из стандарта bip32 , так и из книги Mastering Bitcoin, я не мог понять, как закрытый ключ получается из левой части расширенного ключа.
В книге просто говорится, что правая сторона становится цепным кодом, а левая сторона становится закрытым ключом. После некоторых исследований в Интернете я прочитал, что кто-то использует такие термины, как настройки и модуль n , G , которые меня сбивают с толку, поскольку они не были упомянуты в книге и не столько в самой спецификации.
Пожалуйста, помогите мне прояснить, как именно секретный ключ получается из левой части вывода , и связь со всеми этими неупомянутыми частями, такими как модуль n (какой n?), настройка (??), умножение на G (что такое G ?), так как все эти термины плохо документированы.
Закрытый ключ — это число, очень большое 256-битное число. Вы можете выполнять обычные арифметические действия с такими числами, например, сложение по модулю n, где n — порядок кривой (кому-то еще придется расширить это, если потребуется). n очень близко, но меньше 2^256.
Вот схема получения дочернего закрытого ключа:
Оставшиеся 256 бит 512-битного хэша добавляются по модулю n к родительскому закрытому ключу. Сумма, которая также является 256-битным числом (из-за модуля n), является дочерним закрытым ключом. Сумма родительского закрытого ключа и кажущегося случайным 256-битного числа является кажущимся случайным 256-битным числом, так что эта сумма будет прекрасно функционировать в качестве закрытого ключа.
Майк Д
N=115792089237316195423570985008687907852837564279074904382605163141518161494337
иG=(55066263022277343669578718895168534326250603453777594175500187360389116729240, 32670510020758816978083085130507043184471273380659243275938904335757337482424)