『壹』 破解一个比特币钱包到底要花多长时间
这要看你破解人的水平如何,能力高的人可能也就几十分钟吧。
『贰』 【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标志:
可以在开发比特币核心,全节点共识客户端,钱包,交易所等,甚至是智能合约和复杂的脚本等,都可以用测试网络进行开发。