Bip32-Hd-Wallets

HD 錢包 CKDpub 和 CKDpriv 的路徑表示法之間的區別

  • June 13, 2018

我仍在嘗試掌握 HD 錢包中使用的約定,所以我有幾個問題:

  1. 從路徑表示法來看,CKDpub 和 CKDpriv 有什麼區別。我所知道的是路徑只是使用h'表示硬化和非硬化派生之間的區別,但我看不到CKDpub 和 CKDpriv 之間的區別。
  2. 從這個乙太坊標準派生節點/m/44'/60'/0'/0/0,有人如何獲得擴展公鑰並從該擴展公鑰中派生其他公共密鑰,尊重這些約定。
  3. f(parentExtendedPubKey, index ) = childPubKey --> address. 這是如何實現的?保存在 HD 錢包中的私鑰以後如何用於解鎖或花費通過父公鑰生成的發送到該地址的資金?

從路徑表示法看,CKDpub 和 CKDpriv 有什麼區別

CKDpub(公鑰子密鑰派生)

派生具有給定擴展公鑰(公鑰和鏈碼)和子索引的子公鑰。僅適用於非硬化派生。

CKDpriv(私鑰子密鑰派生)

派生具有給定擴展私鑰(私鑰和鏈碼)和子索引的子私鑰。

密鑰路徑不區分私鑰和公鑰,因此在該級別上,CKDpub/CKDpriv 之間沒有區別。

雖然,正如您所提到的,要派生一個強化密鑰——即使你只想派生公鑰——你也需要相應的擴展私鑰。

例子:

  1. 如果m/1有擴展的公鑰,您可以在m
  2. 無法m/1'使用擴展的 pubkey 派生pubkeym
  3. 可以m/1'使用擴展私鑰派生公鑰(和私鑰)m

從這個乙太坊標準派生節點 /m/44’/60’/0’/0/0 ,有人如何獲得擴展公鑰並從尊重這些約定的擴展公鑰中導出其他公鑰。

您需要 xpriv(擴展私鑰)來派生 /m/44’/60’/0’,但/m/44'/60'/0'/0可以/m/44'/60'/0'/0/0使用 xpub(擴展公鑰位於 /m/44’/60 ‘/0’)。


f(parentExtendedPubKey, index ) = childPubKey –> 地址。這是如何實現的?保存在 HD 錢包中的私鑰以後如何用於解鎖或花費通過父公鑰生成的發送到該地址的資金?

派生子公鑰 - 無論您使用的是 xpub 還是 xpriv - 都會產生相同的公鑰。請注意,只有 xpriv 可以派生強化子密鑰。

假設您使用 xpub at 派生了 m/10 的 pubkey m,您稍後可以使用 xpriv at 在 m/10 派生相應的priv -key m

進一步的想法

BIP44 專為硬體錢包和/或冷儲存而設計。理想情況下,您不應將非強化密鑰派生 (CKDpub) 與導出子私鑰的可能性混為一談。如果你洩露了一個 xpub 和一個單獨的子私鑰,你就會洩露你所有的密鑰。

What's the difference between CKDpub and CKDpriv from the path notation

1.CKDpub(公鑰子密鑰派生)

派生具有給定擴展公鑰(公鑰和鏈碼)和子索引的子公鑰。僅適用於非硬化派生。CKDpriv(私鑰子密鑰派生)

派生具有給定擴展私鑰(私鑰和鏈碼)和子索引的子私鑰。

密鑰路徑不區分私鑰和公鑰,因此在該級別上,CKDpub/CKDpriv 之間沒有區別。

雖然,正如您所提到的,要派生一個強化密鑰——即使你只想派生公鑰——你也需要相應的擴展私鑰。

例子:

you can derive the extended pubkey at m/1 if you have the extended pubkey m
You can't derive the pubkey at m/1' with the extended pubkey m
You can derive the pubkey (and the privkey) at m/1' with the extended privatekey m

From this Ethereum standard derivation node /m/44'/60'/0'/0/0 ,how can someone get the extended public key and derive other public from that extended public key respecting those conventions.

您需要 xpriv(擴展私鑰)來派生 /m/44’/60’/0’,但需要更多公共子密鑰(如 /m/44’/60’/0’/0 和 /m/44’/ 60’/0’/0/0) 可以通過 xpub 導出(擴展公鑰位於 /m/44’/60’/0’)。

f(parentExtendedPubKey, index ) = childPubKey --> address. How is this achieved and how can a private key that stayed in the HD wallet can later be used to unlock or spend those funds sent to that address generated through the parent public key ?

派生子公鑰 - 無論您使用的是 xpub 還是 xpriv - 都會產生相同的公鑰。請注意,只有 xpriv 可以派生強化子密鑰。

假設您在 m/10 處導出了 pubkey,xpub 在 m 處,您稍後可以在 m/10 處導出相應的 priv-key,xpriv 在 m 處。進一步的想法

BIP44 專為硬體錢包和/或冷儲存而設計。理想情況下,您不應將非強化密鑰派生 (CKDpub) 與導出子私鑰的可能性混為一談。如果你洩露了一個 xpub 和一個單獨的子私鑰,你就會洩露你所有的密鑰。分享編輯

引用自:https://bitcoin.stackexchange.com/questions/76240