Transactions

如果我將相同的金額發送到一個地址,有人可以計算我的私鑰嗎?

  • September 5, 2022

如果我在兩個單獨的交易中將完全相同的金額發送到同一個地址,有人可以從 scriptSig 計算我的私鑰嗎?簽名 (S) 和消息 (Z) 是否相同?

通常,您的錢包軟體應確保您可以安全地創建和重新創建相同或不同的交易。但是,有一個問題似乎相關,可能會提示您提出問題。

當有人創建 ECDSA 簽名時,簽名由兩個整數rs. r僅取決於隨機 nonce k,而s取決於私鑰r、 和消息。如果k重複使用相同的值,它將導致簽名具有相同的r值。通常,即使是同一條消息,您的錢包也會k為每個簽名使用不同的簽名,因此您的簽名每次都會不同。一些錢包使用確定性隨機數,因此它們會為相同的消息重新創建相同的簽名。他們仍然會為不同的消息創建不同的簽名。

重要的是,這k始終是隨機選擇的(除非您使用確定性隨機數):如果您使用相同的私鑰和相同的k值簽署兩條不同的消息(即交易),則這兩個簽名會產生一組方程,可以求解私鑰。

不,無論消息和簽名是否相同,都不可能從區塊鏈數據中的公開資訊計算出私鑰。

在實踐中,我認為交易中的簽名數據包括每個輸入的前一筆交易的雜湊,這些不能與任何先前確認的交易相同,因為這將構成禁止的雙花。

我相信密碼學的弱點可能非常微妙,但你描述的情況,相同金額的多次支付到同一個地址,一定很常見。因此,如果很久以前沒有預料到和考慮過,我會感到非常驚訝。

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