Coldstorage
熱錢包和冷錢包
如果您有一個接受比特幣存款的線上網站並且使用者可以提取他們的餘額,是否可以讓存款進入冷庫的僅限手錶地址,而提款來自熱錢包?
如果是,那麼基本上我將不得不給程序員我的熱錢包私鑰和伺服器上僅手錶地址的主公鑰。我對麼?
答案是否定的,你不能這樣做。原因如下。
看來你可能會感到困惑。
冷錢包的目的是離線儲存硬幣,向冷錢包添加僅限手錶的地址什麼都不做,除了讓你看到那個地址。
(我可以將您的地址添加為僅限手錶並查看您的餘額,但這並不能讓我訪問您的硬幣)
如果硬幣在冷錢包中,那麼您必須從那裡發送它們,通常是通過創建和簽署離線交易。
如果它們在熱錢包中(即使被冷錢包監視),您也可以從熱錢包中發送它們。
我知道這是一個較老的問題,但我仍然想花時間回答它,以防其他人看到這個問題。
首先,您不必將您的私鑰提供給程序員來實現存款地址(這就是您在此處描述的內容)。
使用 BIP32,您實際上可以給某人一個“子”公鑰,然後他們可以使用它來代表您生成額外的公鑰,而無需手頭有相關的公鑰。
“掌握比特幣”中的這張插圖為您直覺地說明了這一點:
在簽名方面,您可以為您的交易中繼設置一個 JWT 風格的腳本:
如果交易已經序列化,那麼您只需簽署該序列化交易即可。
最後一次檢查可能應該是您端的驗證,它使用相同的參數重新創建事務以確保 ID 匹配(如果沒有匹配,則應該失敗)。一旦通過,最後一次檢查以確保金額低於“警報”門檻值(即,確保有人沒有試圖提取超過 100 萬美元)。
不知道什麼是“僅限觀看”的地址是必要的——但你可能會完全放棄這部分想法。有很多工具、API 等可供您使用