如果我失去了 Trezor,那麼替換者如何訪問同一個錢包?
我很困惑。我的理解是,當我購買 Trezor 時,它會給我一些我需要抄下來的詞。當 Trezor 啟動時,它會自動創建一些比特幣地址和密鑰嗎?
如果我失去了我的 Trezor,那麼替代者如何知道我之前創建的比特幣地址和密鑰?
Trezor 實現了 BIP32/BIP39(分別是分層確定性錢包和助記詞編碼種子)。
助記符(12 個單詞)只是一種編碼十六進制種子的方式,例如
6c5f9d00018f2a2030afcc6f3057e5a4dea6dfb905dd4b0197a9a047bcfe0501662332a3caa846b1223ff3d20cfb295e7f94fe51c94472e3f8429c97754132e9
(其助記符是business weird season glimpse pole robot surprise next term toddler doctor fresh
)。然後將十六進制種子用於主私鑰和主公鑰對(在本例中,分別為 和 )xprv9s21ZrQH143K29DbrSg2YgC2iyW3Gx3FhNExbxEacDWJCmz9xmsxKjon93FSC85Bv4AkszKLK1d3FA6PKS1Wb6xYotbDppezTMQaazbPL6h
。xpub661MyMwAqRbcEdJ4xUD2up8mH1LXgQm74bAZQLeCAZ3H5aKJWKCCsY8FzL33Ay3XxoX7xWyq4pejzuSQEQw2hA2CvWvKBgMGTJLgZXRzdbf
因此,如果我們查看這個 bip39 工具,助記詞業務奇怪的季節一瞥桿機器人驚喜下學期蹣跚學步的醫生新鮮有一個將被 Trezor 使用的地址列表,按順序(在本例中,第一個列出的地址以18SKy 開頭…)。
所有這一切都只是展示它是如何工作的(不要像本例所示將助記詞輸入網站!),或者作為TL;DR:助記詞是恢復 Trezor 地址密鑰所需的全部內容
BIP 32/39 允許跨不同錢包實現的密鑰可移植性。為了補充上面的“Wizard of Ozzie”答案,下面提供了一種不同的方法(基於 C++,而不是基於 JavaScript 的程式碼)來使用應該使用“真實”離線執行的 bitcoin-explorer (bx) 命令行界面重建上面的結果" 助記符和鍵。
如果沒有從 1 到 7 的高評估保證級別 (EAL) 譜系評級,也可以解決供應鏈風險,那麼如果沒有在不同的遺傳獨立密鑰生成器實現之間交叉關聯結果,就不應該過多信任 HD 密鑰生成器。
下面的結果是在沒有 BIP 39 密碼的情況下創建的,以重建上面顯示的結果。下面的結果還提供了 m/44’/0’/0’/0(BIP 44 擴展私有分支密鑰)和 M/44’/0’/0’/0(BIP 44 擴展公共分支密鑰)的重建細節用於從錢包的 BIP 39 備份助記詞合成超過 40 億個私鑰/公鑰對和比特幣地址。下面僅計算前 3 個私鑰和相關的公共地址,以建立用於從錢包的 BIP 39 備份助記詞計算 40 億個私鑰/公鑰對和比特幣地址的模式。
- 使用 BIP 39 重構主種子: ===================
% bx mnemonic-to-seed business weird season glimpse pole robot surprise next term toddler doctor fresh
6c5f9d00018f2a2030afcc6f3057e5a4dea6dfb905dd4b0197a9a047bcfe0501662332a3caa846b1223ff3d20cfb295e7f94fe51c94472e3f8429c97754132e9
2)重構擴展私鑰:
% bx mnemonic-to-seed business weird season glimpse pole robot surprise next term toddler doctor fresh | bx hd-new -v 76066276
xprv9s21ZrQH143K29DbrSg2YgC2iyW3Gx3FhNExbxEacDWJCmz9xmsxKjon93FSC85Bv4AkszKLK1d3FA6PKS1Wb6xYotbDppezTMQaazbPL6h
請注意,76066276是 0x0488ADE4 (base16) 的 base10 四字節版本前綴,它導致擴展的 BIP 32 私鑰以“xprv”開頭。
JavaScript BIP 44 選項卡結果可以通過以下方式驗證:
% bx mnemonic-to-seed business weird season glimpse pole robot surprise next term toddler doctor fresh | bx hd-new -v 76066276 | bx hd-private -d -i 44 | bx hd-private -d -i 0 | bx hd-private -d -i 0 | bx hd-private -i 0
xprvA1hRqX7kSHXAfsq8pNTYtwvgZXDRuUT6MtZ7WHgC8WTquy3LnzZFHRsZfH7shWEqjUPDBgFhXj4o53QPoapPVZUUic944UFbtofrAvzCvmt
A) BIP 44 WIF 私鑰 m/44’/0’/0’/0/0:
% echo 'xprvA1hRqX7kSHXAfsq8pNTYtwvgZXDRuUT6MtZ7WHgC8WTquy3LnzZFHRsZfH7shWEqjUPDBgFhXj4o53QPoapPVZUUic944UFbtofrAvzCvmt' | bx hd-private -i 0 | bx hd-to-ec | bx ec-to-wif -v 128
L5TPeiMKRnMbvQF6z1EYa3gmpwP6xSJN21nfAipXnJoD2CVEXGBH
B) BIP 44 WIF 私鑰 m/44’/0’/0’/0/1:
% echo 'xprvA1hRqX7kSHXAfsq8pNTYtwvgZXDRuUT6MtZ7WHgC8WTquy3LnzZFHRsZfH7shWEqjUPDBgFhXj4o53QPoapPVZUUic944UFbtofrAvzCvmt' | bx hd-private -i 1 | bx hd-to-ec | bx ec-to-wif -v 128
Kx3GxX5o8KynsJAs9jWKYyqKnPmAjVApBr1TNuuXdFkknG8nvJHr
C) BIP 44 WIF 私鑰 m/44’/0’/0’/0/2:
% echo 'xprvA1hRqX7kSHXAfsq8pNTYtwvgZXDRuUT6MtZ7WHgC8WTquy3LnzZFHRsZfH7shWEqjUPDBgFhXj4o53QPoapPVZUUic944UFbtofrAvzCvmt' | bx hd-private -i 2 | bx hd-to-ec | bx ec-to-wif -v 128
L16rfuc8mPts63KcovJH57rwqGfQP48q6hV3mHgbi9fbiX9gAEPp
- 重構擴展公鑰: ==========
% bx mnemonic-to-seed business weird season glimpse pole robot surprise next term toddler doctor fresh | bx hd-new -v 76067358
xpub661MyMwAqRbcEdJ4xUD2up8mH1LXgQm74bAZQLeCAZ3H5aKJWKCCsY8FzEPiHJDnKncknSSFymNVrbeBD6W4LxYiKtubg9U3PDHpM7DEZx7
請注意,76067358是 0x0488B21E (base16) 的 base10 四字節版本前綴,它導致擴展的 BIP 32 公鑰以“xpub”開頭。
JavaScript BIP 44 選項卡結果可以通過以下方式驗證:
% bx mnemonic-to-seed business weird season glimpse pole robot surprise next term toddler doctor fresh | bx hd-new -v 76066276 | bx hd-private -d -i 44 | bx hd-private -d -i 0 | bx hd-private -d -i 0 | bx hd-public -i 0
xpub6EgnF2eeGf5TtMubvPzZG5sR7Z3vJwAwj7UiJg5ogqzpnmNVLXsVqEC3Wa4g8djxA9JcPFB9rSW9qvjYYCNbhJHkh7Pnm2uWUh5ZJ3pYNBj
A) BIP 44 公鑰 M/44’/0’/0’/0/0 的地址:
% echo 'xpub6EgnF2eeGf5TtMubvPzZG5sR7Z3vJwAwj7UiJg5ogqzpnmNVLXsVqEC3Wa4g8djxA9JcPFB9rSW9qvjYYCNbhJHkh7Pnm2uWUh5ZJ3pYNBj' | bx hd-public -i 0 | bx hd-to-ec | bx ec-to-address -v 0
18SKy9bqE57Mif4p1iGbGqPP2vgV8YXFw8
B) BIP 44 公鑰 M/44’/0’/0’/0/1 的地址:
% echo 'xpub6EgnF2eeGf5TtMubvPzZG5sR7Z3vJwAwj7UiJg5ogqzpnmNVLXsVqEC3Wa4g8djxA9JcPFB9rSW9qvjYYCNbhJHkh7Pnm2uWUh5ZJ3pYNBj' | bx hd-public -i 1 | bx hd-to-ec | bx ec-to-address -v 0
13EGK6DifQ6jsx5habBz4SoNYitPaqYUTL
C) BIP 44 公鑰 M/44’/0’/0’/0/2 的地址:
% echo 'xpub6EgnF2eeGf5TtMubvPzZG5sR7Z3vJwAwj7UiJg5ogqzpnmNVLXsVqEC3Wa4g8djxA9JcPFB9rSW9qvjYYCNbhJHkh7Pnm2uWUh5ZJ3pYNBj' | bx hd-public -i 2 | bx hd-to-ec | bx ec-to-address -v 0
1JMeSGf1AB6vsRQxRJsVFBtRmqWdbNcn5D
值得注意的是,bx 統一了 100 多種山寨幣的密鑰 HD 密鑰/地址生成,請參閱BIP 44 相關表。