Wallet

導入公開的私鑰時,importprivkey 如何危及錢包安全?

  • September 11, 2015

有人在 reddit 上問了一個問題,我給了答复:https ://www.reddit.com/r/Bitcoin/comments/3khrvm/how_do_i_use_private_keys_to_receive_bitcoin/

然而,luke-jr 回复

不要這樣做。您損害了錢包的安全性以導入其他人知道的私鑰。

無需進一步闡述。有人可以解釋他在說什麼嗎?

這個問題相當微妙,是由多種行為共同造成的。

首先,使用別人的私鑰是完全安全的,至少在獨立意義上是這樣。假設私鑰是P並且公共地址是A,並且假設你想花他們的錢。然後,您掃描區塊鏈以查找發往A的交易輸出。當你看到一個時,你創建一個新的交易到某個期望的輸出地址B(無論你是付錢給自己還是付給別人),並用私鑰P對其進行簽名。這裡沒有問題。

當我們談論錢包軟體時,問題就開始了。如果您將私鑰P “導入”到您的錢包中,那麼它將被添加到您的個人私鑰池(及其關聯的公共地址)中。每當您進行傳出交易時,幾乎總會有一些金額作為零錢退回給您自己。如果更改轉到地址A(帶有關聯的私鑰P),那麼其他知道私鑰P的人也可以花這筆錢。歸根結底,這意味著如果您導入別人的私鑰,在某些情況下您可能會失去對自己資金的控制權。

正如其他人所提到的,處理這種情況的安全方法是將與地址A關聯的硬幣(使用私鑰P)“掃描”到您擁有獨占控制權的地址中。換句話說,使用該私鑰為自己付款,但切勿將地址用作更改的輸出。


打個比方:假設你在一個有編號儲物櫃的大廳裡。總是可以將錢存入任何儲物櫃(只需要地址,而不是私鑰)。Locker #0 可以由您的朋友和您自己打開。儲物櫃 #1 和 #2 只能由您打開。

如果您在 #1 和 #2 儲物櫃中有現金,這屬於您和您自己。現在,當您進行交易時,您從這些儲物櫃中的一個或兩個中取出現金,然後返回一些作為找零。您也可以從 #0 號儲物櫃中取出現金,沒問題。但是,如果您一些零錢歸還到儲物櫃#0,那麼您將失去對該現金的獨家控制權。因此,您只能將零錢退回到您自己的 #1 和 #2 儲物櫃,而不是共享的 #0 儲物櫃。

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