『壹』 破解一個比特幣錢包到底要花多長時間
這要看你破解人的水平如何,能力高的人可能也就幾十分鍾吧。
『貳』 【2019-07-12】比特幣的錢包地址驗證
第一步,隨機選取一個32位元組的數,大小介於1~0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間,作為私鑰
第二步,使用橢圓曲線加密演算法(ECDSA-SECP256k1)計算私鑰所對應的非壓縮公鑰(共65位元組,1位元組0x04,32位元組為x坐標,32位元組為y坐標)。
第三步,計算公鑰的SHA-256哈希值
第四步,計算上一步哈希值的RIPEMD-160哈希值
第五步,在上一步結果之間加入地址版本號(如比特幣主網版本號"0x00")
00
第六步,計算上一步結果的SHA-256哈希值
第七步,再次計算上一步結果的SHA-256哈希值
第八步,取上一步結果的前4個位元組(8位十六進制數)D61967F6,把這4個位元組加在第五步結果的後面,作為校驗(這就是比特幣地址的16進制形態)
00D61967F6
第九步,用base58表示法變換一下地址(這就是最常見的比特幣地址形態)
如果給你個地址你只要:
base58->二進制-> 這時是第8步,
如果我們把後面4個位元組拿掉,
就是第5步的結果,你只要重復以上步驟到第8步
取前4個和地址後4位比較就可以得到答案了
『叄』 比特幣的測試網路
Satoshi Nakamoto創建了主要的比特幣區塊鏈,創世區塊所在的主鏈網路,被稱為主網。還有其他測試目的的比特幣鏈:
現存的有testnet,segnet和regtest。
testnet是一個功能齊全的在線P2P網路,包括錢包,測試比特幣(testnet幣),挖礦以及類似主網的所有其他功能。
實際上和主網只有兩個區別:testnet幣是沒人認可其價值的,挖礦難度比較低,這樣可以歡快的使用testnet幣。
那些想跟比特幣主網進行交互的開發軟體,都可以現在testnet上進行測試,這樣好處實在太明顯了。
testnet3是目前的測試網路版本,因為從創世區塊重新開始跑已經出現了三次,這個網路也比較龐大,也有幾十個G。
進行testnet全節點挖礦需要准備好硬碟。如果是啟動testnet,而不是主網啟動,可以使用如下命令:
然後可以使用bitcoin-cli命令行工具,但是要切換到testnet模式:
testnet3支持主網的所有功能,包括在主網路上尚未激活的Segregated Witness,因此testnet3也可以用於測試隔離見證功能。
這樣一個隔離測試網路,用來幫助開發和測試隔離見證(segwit)。該測試區塊鏈稱為segnet,可以通過運行Bitcoin Core的特殊版本來連接。
由於將segwit添加到testnet3中,因此後面不再使用segnet來測試segwit功能。
Regtest代表回歸測試,是一種比特幣核心功能,允許用戶創建本地區塊鏈以進行測試。
與testnet3不同,regtest區塊鏈旨在作為本地測試的封閉系統運行。所以可以從創世區塊開始,啟動regtest鏈,創建一個本地的創世區塊。
可以將其他節點添加到網路中,或者使用單個節點運行來測試Bitcoin Core軟體。
要在regtest模式下啟動Bitcoin Core,可以使用regtest標志:
可以在開發比特幣核心,全節點共識客戶端,錢包,交易所等,甚至是智能合約和復雜的腳本等,都可以用測試網路進行開發。