Bitcoind
我應該呼叫 keypoolrefill 還是自動重新填充?
據我所知,密鑰池會自動重新填充每個地址。那我為什麼要使用 keypoolrefill 呢?這個命令有什麼好處?
大多數人不需要使用
keypoolrefill
.每當您從密鑰池中獲取地址時,Bitcoin Core 都會嘗試將密鑰池填充到其配置的最大大小。(它不會等到密鑰池為空後再重新生成它。)但是,除非錢包使用
walletpassphrase
. 因此,如果您呼叫getnewaddress
100 次(預設情況下),您的密鑰池將為空,系統會提示您解鎖錢包並執行keypoolrefill
. 解鎖你的錢包然後生成另一個地址也可以達到同樣的效果,這也會導緻密鑰池被充值。另一個用途是如果您想臨時增加密鑰池的大小。例如,一種真正安全的支付處理方式是生成一個帶有強密碼的加密錢包,使用
keypoolrefill 10000
或其他方式生成數千個密鑰,將此錢包放在實時支付處理伺服器上,但只使用不需要的命令解鎖錢包。那麼即使實時伺服器被入侵,攻擊者也無法竊取資金,因為他無法解鎖錢包。這類似於僅手錶錢包的想法。你可以對設置做同樣的事情keypool
,但我想在某些情況下重新啟動比特幣核心可能不方便。執行比特幣
-keypool=0
然後僅手動調整密鑰池keypoolresize
對於某些備份策略也可能有用,或者如果您有多個伺服器使用同一個錢包(不推薦,但如果您真的很小心,也許可以)。
如果您認為您的數據庫文件曾經被洩露(其中包含密鑰集),最好重新填充您的密鑰池,這樣攻擊者就不能濫用任何尚未被您的比特幣客戶端使用的損壞密鑰. 當然,在將任何比特幣“轉移”到新請求的地址之前,您必須這樣做。