Tôi đang đọc về khóa con Bình thường và Cứng trong chương 5 của cuốn sách "Làm chủ Bitcoin" của Andreas, cùng với điều này chủ đề chi tiết và BIP-32. Dưới đây là một số hiểu biết của tôi về hai thủ tục này:
k
: khóa riêng // K
: khóa công khai // tôi
mục lục // c
chuỗi mã // h
Kết quả băm HMAC // Hleft
32 bit đầu tiên của kết quả băm. // N
thứ tự của đường cong Elliptic. // g
điểm bắt đầu của đường cong Elliptic
Dẫn xuất khóa bình thường
Trường hợp 1: parPrivkey -> childPrivkey (và từ đó, childPubkey)
H = HMAC(cpar, Kpar || icon)
=> kcon = (kpar + Hleft) mod n
=> Kchild = G*kchild = G*[ (kpar + Hleft) mod n)]
Trường hợp 2: parPubkey -> childPubkey
H = HMAC(cpar, Kpar || icon)
=> Kcon = G*Hleft + Kpar
Dẫn xuất khóa cứng`
Trường hợp 3: parPrivkey -> childPrivkey (và từ childPubkey đó)
H = HMAC(cpar, kpar || ichild)
=> kcon = (kpar + Hleft) mod n
=> Kchild = G*kchild = G*[ (kpar + Hleft) mod n]
Với 3 phương pháp này, tôi hơi bối rối:
- sự khác biệt trong phương trình tạo giữa trường hợp 1 và 2 là khá nhỏ, do đó chúng ta chỉ cần nhân
kcon = (kpar + Hleft) mod n
bởi G để có được điều đó trong trường hợp 2. Tuy nhiên, vì có một yếu tố mod n
cuối cùng, tôi không thể biết liệu trẻ em
của Trường hợp 1 sẽ liên quan đến trường hợp của Trường hợp 2. Nếu không, thì điểm chỉ tạo khóa công khai mà không thể chi tiêu số tiền được gửi đến đó là gì?
- Điều này không liên quan đến câu hỏi trên, mà là về việc tạo khóa riêng chính: Tôi đã đọc được rằng sau khi lấy hạt giống Gốc, hạt giống đó đã được đưa vào hàm HMAC-SHA512 để lấy hàm băm 512 bit, 32 bit đầu tiên byte đóng vai trò là khóa riêng chính. Vì vậy, câu hỏi của tôi là vì hàm HMAC có 2 đầu vào là
Chìa khóa
và chữ
, "chìa khóa" trong trường hợp này là gì? Nếu không có "chìa khóa", thì tại sao không chỉ sử dụng hàm băm SHA-512?
Cảm ơn bạn rất nhiều trước.