Bip32
兩個私鑰之和的secp256k1公鑰和原來的兩個私鑰的公鑰有關係嗎?
如果我有兩個 secp256k1 私鑰並將它們加在一起,如果我只知道兩個原始私鑰的公鑰,我可以推導出總和的公鑰嗎?
(我想這可能是理解bip32的核心。)
如果我有兩個 secp256k1 私鑰並將它們加在一起,如果我只知道兩個原始私鑰的公鑰,我可以推導出總和的公鑰嗎?
是的。
雖然“公鑰”和“私鑰”的概念取決於密碼系統(而不是它使用的橢圓曲線),但大多數基於 ECC 的密碼系統(包括比特幣中使用的密碼系統)都有一個私鑰,它是一個秘密整數 $ a $ ,以及一個作為橢圓曲線點的公鑰 $ [a]G $ , 在哪裡 $ G $ 是一個眾所周知的橢圓曲線點(它是曲線定義的一部分),並且 $ [a]G $ 使用“點乘法”計算。
所以,你的問題歸結為“如果我們知道兩個公鑰 $ [a]G $ 和 $ [b]G $ (帶私鑰 $ a $ 和 $ b $ ),我可以推導出公鑰嗎 $ [a+b]G $ ,哪個是私鑰總和的公鑰?”
答案是肯定的,因為這個恆等式始終成立:
$$ [a+b]G = [a]G + [b]G $$
其中左邊的加法是整數加法,右邊的加法是點加法。當我們可以得到私鑰總和的公鑰時,右側很容易計算。