才高八斗科技 Bearspac Technology 雲端服務專家 | VPS雲端主機, Azure公有雲服務

區塊鏈技術-錢包產生方式

比特幣,區塊鏈,錢包

「我們可以透過自己熟悉的程式語言來開發比特錢包,每個錢包位址都是由密碼學計算得出」

一般來說,比特錢包分為以下三種
1. 單簽錢包,錢包位址1開頭
2. 多簽錢包,錢包位址3開頭
3. 隔離見証錢包,錢包位址bc開頭

單簽錢包
1. 透過SHA256產生私鑰
2. 私鑰經過橢圓曲線secp256k1生成公鑰
3. 公鑰經過BASE58Check Encode生成錢包位址

多簽錢包
1.助記詞加上鹽值(“mnemonic” + (optional) passphrase)進行PBKDF2計算
2.將PBKDF2的值再經過HMAC-SHA512計算產生512bit字節密鑰
3.將512bit字節從左到右取256bit成主私鑰,從右到左取256bit成主鏈碼
4.主私鑰經過橢圓曲線secp256k1生成主公鑰
5.最後由主公鑰加上鏈碼與索引數(0x00 到 0x7fffffff)經過HMAC-SHA512產生512bit字節
6.將512bit字節從左到右取256bit成子私鑰,從右到左取256bit成子鏈碼
7.子私鑰採用與主私鑰產生公鑰的方式生成子公鑰
8.多筆子公鑰經過HASH160生成160bit字節
9.最後160字節經過BASE58Check Encode生成錢包位址

隔離見証錢包
1.一樣透過私鑰生成公鑰
2.公鑰經過witness PublicKey Hash生成Script
3.Script經過HASH160生成160bit字節
4.最後160字節經過BASE58Check Encode生成錢包位址

參考資料
BIP32
BIP39
BIP44
BIP141
BIP143
BIP173