(3) Piemēra demonstrācija
Mēs no BIP39 ģenerētās sēklas uzsāksim, pakāpeniski izskaidrojot, kā BIP32 tiek izpildīts.
(1) Sēkla:
0x5b56c417303faa3fcba7e57400e120a0ca83ec5a4fc9ffba757fbe63fbd77a89a1a3be4c67196f57c39a88b76373733891bfaba16ed27a813ceed498804c0570
(2) Atvasināt galveno atslēgu
Meklējiet tiešsaistes rīkus, lai ģenerētu 512 bitu rezultātu (ja nevarat atrast, lūdzu, sazinieties ar mani)
0xb2a0d576b828b537688b561f2cfa8dac3602d54c62bde619ad5331e6c235ee26b70d675323c40ec461e0a6af603b1f135fb2af9ae753eeff18922732a73b0f05
Saņemt galveno privāto atslēgu:
0xb2a0d576b828b537688b561f2cfa8dac3602d54c62bde619ad5331e6c235ee26
Galvenā publiskā atslēga:
0x03ca72b45eede592f059b7eaf3da13eb7d8d15aa472b6f79f74820bb22ff596186
Galvenais ķēdes kods:
0xb70d675323c40ec461e0a6af603b1f135fb2af9ae753eeff18922732a73b0f05
(3) Atvasināt bērna atslēgu
A. Cietā atvasināšana
Atvasināt saskaņā ar iepriekš aprakstītajiem noteikumiem
data = 0x00 || ser256(k_par) || ser32(i)
I = HMAC_SHA512(key = c_par, msg = data)
I_L, I_R = I[:32], I[32:]
k_i = (I_L + k_par) mod n
c_i = I_R
kur:
c_par ir galvenais ķēdes kods
k_par ir galvenā privātā atslēga
i ir dziļums, cietā atvasināšana sākas no 2^31
data = 0x00 || ser256(k_par) || ser32(i) =
0x00b2a0d576b828b537688b561f2cfa8dac3602d54c62bde619ad5331e6c235ee2680000000
I = HMAC_SHA512(key = c_par, msg = data) =
0xfd61ec4eff9af45c137d8e49cd152c736284aab45469981358c9ee070c9c264fce62c620b7cd66e27f970d0f29e4f2082c6b7740bd184d0c9c61f79d819af563
I_L = 0xfd61ec4eff9af45c137d8e49cd152c736284aab45469981358c9ee070c9c264f
I_R = 0xce62c620b7cd66e27f970d0f29e4f2082c6b7740bd184d0c9c61f79d819af563
k_i = (I_L + k_par) mod n
kur n tu zini: 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
Izmantojiet tiešsaistes rīkus, lai ģenerētu rezultātu
k_i (bērna privātatslēga) = 0xb002c1c5b7c3a9937c08e468fa0fba20ddd8a31a07deddf1464ac160fe9bd334
c_i (bērna ķēdes kods) = 0xce62c620b7cd66e27f970d0f29e4f2082c6b7740bd184d0c9c61f79d819af563
B. Parastā atvasināšana
Atvasināt saskaņā ar iepriekš aprakstītajiem noteikumiem parasto atvasināšanu
data = serP(K_par) || ser32(i)
I = HMAC_SHA512(key = c_par, msg = data)
I_L, I_R = I[:32], I[32:]
k_i = (I_L + k_par) mod n
c_i = I_R
kur:
c_par ir galvenais ķēdes kods
K_par ir galvenā publiskā atslēga
i ir dziļums, cietā atvasināšana sākas no 0
data = ser256(K_par) || ser32(i) =
0x03ca72b45eede592f059b7eaf3da13eb7d8d15aa472b6f79f74820bb22ff59618600000000
I = HMAC_SHA512(key = c_par, msg = data) =
0xa195f406434d6609e583caa55322cea249820a439ad695101807bd9d6a784a71a74b758d3dc442f8620a2438f56629e62a743a4b4fe1ad02166185bf290b56d1
I_L = 0xa195f406434d6609e583caa55322cea249820a439ad695101807bd9d6a784a71
I_R = 0xa74b758d3dc442f8620a2438f56629e62a743a4b4fe1ad02166185bf290b56d1
k_i = (I_L + k_par) mod n
kur n tu zini: 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
Izmantojiet tiešsaistes rīkus, lai ģenerētu rezultātu
k_i (bērna privātatslēga) = 0x5436c97cfb761b414e0f20c4801d5c4fc4d602a94e4bdaee058890f75c77f756
c_i (bērna ķēdes kods) = 0xa74b758d3dc442f8620a2438f56629e62a743a4b4fe1ad02166185bf290b56d1