區塊鏈錢包wallet.dat 刪除、丟失、覆蓋 定製化恢復-解析比特幣錢包、各種代幣/山寨幣錢包

目錄

 

區塊鏈錢包wallet丟失的場景

區塊鏈錢包wallet存儲結構分析

區塊鏈錢包wallet數據恢復案例

技術支持


區塊鏈錢包wallet丟失的場景

區塊鏈錢包中包含成對的私鑰和公鑰,用戶用私鑰來簽名交易,從而證明該用戶擁有交易的輸出權。但如果用戶遭遇病毒破壞、誤操作新建錢包覆蓋等,導致錢包丟失,就需要進行錢包wallet恢復。


區塊鏈錢包wallet存儲結構分析

 目前所有存儲在本地的區塊鏈錢包,都遵守私鑰-公鑰架構,圖例如下:

私鑰是一個256位隨機數,所謂256位就是256個0和1組成的數字,256除以8等於32,即32個字節,用16進製表示這個數的範圍大小是介於0x0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間的一個數。

我們隨機生成一個合法的私鑰如下:8F72F6B29E6E225A36B68DFE333C7CE5E55D83249D3D2CD6332671FA445C4DD3

      橢圓曲線算公鑰

生成了私鑰之後,我們使用橢圓曲線加密算法(ECDSA-secp256k1)計算0406CCAE7536386DA2C5ADD428B099C7658814CA837F94FADE365D0EC6B1519385FF83EC5F2C0C8F016A32134589F7B9E97ACBFEFD2EF12A91FA622B38A1449EEB

  對公鑰哈希技術

對上面的公鑰進行SHA-256哈希計算,得到結果:2572e5f4a8e77ddf5bb35b9e61c61f66455a4a24bcfd6cb190a8e8ff48fc097d

  計算 RIPEMD-160哈希值

  取上一步結果,進行RIPEMD-160計算,得到結果:

0b14f003d63ab31aef5fedde2b504699547dd1f6

  加入地址版本號

比特幣主網版本號“0x00”,取上一步結果,在前面加上16進制的00,即:000b14f003d63ab31aef5fedde2b504699547dd1f6

  計算 SHA-256 哈希值

  取上一步結果,進行SHA-256計算,可得:

 ddc2270f93cc84cc6869dd373f3c340bbf5cb9a8f5559297cc9e5d947aab2536

  然後,對以上結果再次計算 SHA-256 哈希值,得到:

869ac57b83ccf75ca9da8895823562fffb611e3c297d9c2d4612aeeb32850078

  取上一步結果的前4個字節(8位十六進制)869ac57b

把這4個字節加在第五步的結果後面作爲校驗位,將這4個字節加載第五步的結果後面,這就是比特幣地址的16進制形態了:869ac57b000b14f003d63ab31aef5fedde2b504699547dd1f6

  用Base58編碼變換地址

  對上一步的結果進行Base58編碼,得到:

1QCXRuoxWo5Bya9NxHaVBArBQYhatHJrU7

下圖爲一個錢包的底層十六進制數據(來源:data-unit ):


區塊鏈錢包wallet數據恢復案例

通過解析區塊鏈錢包的源代碼,及錢包dat文件結構,我們從磁盤上恢復出被刪除的區塊錢錢包(來源:data-unit ):


技術支持

溫馨提示:如重要數據丟失,建議在行動前諮詢專業工程師,以免數據遭到二次破壞。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章