ฉันกำลังอ่านเกี่ยวกับคีย์ลูกที่แข็งและปกติในบทที่ 5 ของหนังสือ "Mastering Bitcoin" โดย Andreas พร้อมกับสิ่งนี้ ด้ายรายละเอียด และ บีไอพี-32. นี่คือความเข้าใจบางส่วนของฉันเกี่ยวกับขั้นตอนทั้งสองนี้:
เค: รหัสส่วนตัว // เค: กุญแจสาธารณะ // ผม ดัชนี // ค รหัสลูกโซ่ // ชม ผลการแฮช HMAC //  ซ้าย 32 บิตแรกของผลลัพธ์แฮช // น คำสั่งของ Elliptic Curve // ช จุดเริ่มต้นของ Elliptic Curve
ที่มาของคีย์ปกติ
กรณีที่ 1: parPrivkey -> childPrivkey (และจากนั้น childPubkey)
H = HMAC(cpar, Kpar || ichild) 
=> kchild = (kpar + Hleft) mod n
=> Kchild = G*kchild = G*[ (kpar + Hleft) mod n)]
กรณีที่ 2: parPubkey -> childPubkey
H = HMAC(cpar, Kpar || ichild)
=> Kchild = G*Hleft + Kpar
ที่มาของคีย์แข็ง `
กรณีที่ 3: parPrivkey -> childPrivkey (และจาก childPubkey นั้น)
H = HMAC(cpar, kpar || ichild)
=> kchild = (kpar + Hleft) mod n
=> Kchild = G*kchild = G*[ (kpar + Hleft) mod n]
ด้วย 3 วิธีเหล่านี้ฉันค่อนข้างสับสน:
- ความแตกต่างในสมการการสร้างระหว่างกรณีที่ 1 และ 2 นั้นค่อนข้างละเอียด ดังนั้นเราต้องคูณเท่านั้น 
kchild = (kpar + Hleft) mod n โดย G จะได้ในกรณีที่ 2 อย่างไรก็ตาม เนื่องจากมีปัจจัย สมัย ในตอนท้ายฉันไม่สามารถบอกได้ว่า เคชิลด์ ของกรณีที่ 1 จะเกี่ยวข้องกับกรณีที่ 2 หากไม่เป็นเช่นนั้น จุดประสงค์ของการสร้างเพียงรหัสสาธารณะโดยที่ไม่สามารถใช้จ่ายเงินที่ส่งไปนั้นคืออะไร 
- สิ่งนี้ไม่เกี่ยวข้องกับคำถามข้างต้น แต่เกี่ยวกับการสร้างคีย์ส่วนตัวหลัก: ฉันได้อ่านแล้วว่าหลังจากได้รับ Root seed แล้ว Seed จะถูกใส่ลงในฟังก์ชัน HMAC-SHA512 เพื่อรับแฮช 512 บิต 32 บิตแรก ไบต์ซึ่งทำหน้าที่เป็นมาสเตอร์คีย์ส่วนตัว ดังนั้นคำถามของฉันคือเนื่องจากฟังก์ชัน HMAC รับ 2 อินพุตคือ 
กุญแจ และ ข้อความอะไรคือ "กุญแจ" ในกรณีนี้? หากไม่มี "คีย์" ทำไมไม่ใช้แค่ฟังก์ชันแฮช SHA-512 
ขอบคุณล่วงหน้า.