安全离线生成比特币的钱包地址

比特币是数字资产,受到密码学(密钥对)保护,一旦你的私钥被公开,你的资产将不在安全。传统的账号/密码受到服务提供商的保护,比如在支付宝,你的账号账号被盗,导致的财产损失,会被支付宝保险赔付。因为有一个第三方信任机构(保险/支付宝)。但是比特币是构建在区块链上的,区块链是去中心化的。这意味着没有一个类似支付宝的角色来保证你的财产安全,一切都要靠自己。 目前,有许多在线生成比特币地址的服务,这些服务大大简化了生成步骤,但同时引入了非常大的分析。一旦你的账号在网络环境被生成,它有极可能被泄漏。泄漏途径有许多,如本地机器被黑客入侵、服务提供商私自保存了密钥。 因此,如果资产金额较大,强烈建议使用本地的脚本自己生成密钥对,并且永远不要在联网的环境下暴露私钥。 本文提供一种简单的离线脚本,一步步的带你生成比特币的密钥对。(本文所有脚本均在这里,https://github.com/xxlv/btc-address-gen-scripts.git)

第一,初始化依赖

你需要安全python环境,同时引入包

sudo pip install bitcoin
sudo pip install ecdsa

第二步,拔掉网线或者断开wifi

非常重要的步骤,如果不是测试,一定要做!!!

第三步,运行脚本,生成密钥对

python key-to-address-ecc-example.py

生成的结果如下:

Private Key (hex) is:  14962ffc7f1c9dba79aadb608cd7088574e41a418a5349004309b722a9051b90
Private Key (decimal) is:  9311615220753377728968374325829133502017354028737325199749815733352682298256
Private Key (WIF) is:  5HyMSVcZMnBeGEoFbPqRaPHK1xVpHj6yCGnC4bvqxRUm72uuvbx
Private Key Compressed (hex) is:  14962ffc7f1c9dba79aadb608cd7088574e41a418a5349004309b722a9051b9001
Private Key (WIF-Compressed) is:  2SdMjLGhnybsEFJmA85WrTioEtQAaKc8PQjeMQRFd5Q6AKdxygTY5D
Public Key (x,y) coordinates is: (32009024601293775410666277862003376881148118697205564723468898850638045984780, 64137136342866323469645354187456635120169454941786517702226349133247186720277)
Public Key (hex) is: 0446c477454946ee7187a0b859cedf3c4799726b5d8921b22b6b366b97178d380c8dcc552e1ab8546673dcbfa05f3aa97e33df950f2020805b11e4d8489fdfd615
Compressed Public Key (hex) is: 0346c477454946ee7187a0b859cedf3c4799726b5d8921b22b6b366b97178d380c
Bitcoin Address (b58check) is: 18HWNXDVj1jSz9syiJpo2YcEofympTLQgC
Compressed Bitcoin Address (b58check) is: 1HViUwJwUofaAPKbnzNRXHqqRE6UQE7g5B

每个人的机器每次调用生成的都不是相同的。 这是btc账号的全部信息,建议冷藏。

第四步,生成校验签名

执行

python signmessage.py  -s

依此输入:

  • 比特币公钥地址(上面的 Bitcoin Address (b58check) ):18HWNXDVj1jSz9syiJpo2YcEofympTLQgC
  • 签名信息如:hello
  • 钱包格式的私钥(等价于私钥,Private Key (WIF)):5HyMSVcZMnBeGEoFbPqRaPHK1xVpHj6yCGnC4bvqxRUm72uuvbx

输出(每个的都不同):

第五步

确保信息被安全存储之后连网,在线校验签名:https://brainwalletx.github.io/#verify

此时,你已经拥有了自己的安全的比特币地址。