币非凡 - 区块链|交易所导航 www.bifeifan.com
当前位置:网站首页 > 新闻 > 正文

5分钟教你比特币私钥生成与保管的“银行级”方法

admin 2021-02-18 1119 浏览

区块链资产没有绝对安全一说。

私钥虽然不给别人看,但却是完全公开的,比如比特币私钥,只是一个在0到2的256次方之间的数,当然也别小看这个数,即使谁有当前人类算力的亿万倍,猜到宇宙毁灭,他能猜出一个私钥的概率也不到万亿分之一。
这是区块链资产安全的数学根基,而这同时也使保管数字资产不存在绝对的安全,但我们可以在相对层面想办法。

一、币到底应该放哪里?

交易所?肯定是个办法,不过交易所关闭的风险始终存在。出了问题维权?可以的,但公安和法院不一定能找到它。

所以还得靠自己~

主流钱包是相对好的管理工具,但钱包文件容易丢失、密码容易被破、硬盘也容易损坏、旧电脑也容易被家人不小心当废品卖掉。

把私钥抄在纸上或者打印出来(纸钱包)还算保险,但随着时间推移,空气中的酸性物质会让墨水褪色、纸张碎裂,所以你还得考虑用无酸纸记录。但如果一场地震或火灾同时把密码纸、手机和电脑都烧了,那么要到哪里找回私钥?

你说可以多找几个地方存放备份,但衍生问题又来了:在哪里保管安全?分几份保管合适?——分开保管造成私钥泄露,那币可就丢了。

另外,随着区块链资产增值,现在1万元人民币的比特币,八年后增长到100万也不是没有可能,所以那时你还打算在一个地址上保管这些币?对了,目前为止,没有哪个交易所会把所有的币放在一个地址上。

深想下去你会发现,即使你目前掌控很小的比特币,你也必须进化出银行级的保管方法。

二、相对靠谱的私钥生成方法

如果有一种方法,能批量打印加密私钥就好了~比如:

批量生成加过密的展示私钥和地址,输出到文本文件,任由我们离线打印:

5分钟教你比特币私钥生成与保管的“银行级”方法 币私钥 方法 银行 教你 KTETH KTETH交易平台 新闻  第1张

注意,这里的“展示私钥”比一般私钥(52位)多1位,所以并不是事实上的私钥,而是经过加密的。如果有人拿走了这张纸,他并不能直接依靠这里的私钥,转走你的币。

因为实际上的私钥是:把展示私钥的最后一位,替换掉序号后的那位字母。我们以第一条记录为例,

序号:3

展示私钥:L4FQDnhczMkRsXn2QJyt8mccgcebGJdofGPExhndVw6MNDpT2Vy8J

地址:1DskWSXjorfV9wgJkhufieFHaZJmuHHFRz

实际私钥是:用展示私钥的最后一位“J”,替换掉序号3的后一位,也就是第4位字母“Q”。所以实际私钥是:

实际私钥:L4FJDnhczMkRsXn2QJyt8mccgcebGJdofGPExhndVw6MNDpT2Vy8

实际私钥和展示私钥间的关系你自己知道就可以了。

  • 脱离钱包工具

  • 脱离上网环境

  • 每次随机输出

纯离线独立操作坏境,天知地知你知其他人都不知。

首先要有Python3的环境,并且pip安装好bitcoin模块,如果你一下子理解不了下面的代码,可以参考上一篇文章《Python:三行代码自制比特币私钥》,理解核心代码。

准备工作好后,直接复制粘贴下面这段代码到Python代码框,保存后按F5键运行。结果会以txt文本文件的形式,输出到你Python文件的默认路径下,供离线打印。

# 区块链资产进阶安全课
# 比特币私钥生成和保管的银行级方法
# 微信公众号:汤强

# 导入工具包
import random
import string
import bitcoin

# 这里设置一口气需要出几个私钥
iter_num = 3


# 随机数生成函数————
# 生成一个由0和1组成的n位的字符串,n在这里设置为256,如01010100111……(共256位)
def random_01(n):
result = []
for i in range(n):
i = random.randint(0,1)
result.append(i)
result_txt = [str(i) for i in result]
return ''.join(result_txt)


# 随机数处理函数————让随机之外还有随机
# 你可以在这步手动更改
def dep_k_2(k_2):
k_2 = k_2[:254] + str(random.randint(0,1)) + str(random.randint(0,1))
return k_2


# 私钥集生成函数
# 转换路径:
# 1、加工后的256位二进制随机数k_2
# -> 2、等于k_2的十进制数k_10
# -> 3、私钥k -> 4、公钥K -> 5、地址A -> 6、加密私钥kk(用于显示)
def prod_key(iter_num):

for i in range(iter_num):

# 生成一个1-50之间的整数,用于后续加密
random_int = random.randint(1,50)

# 生成256位的0和1组成的二进制字符串
k_2 = random_01(256)

# 进一步处理下上行代码生成的字符串,让随机更随机
k_2 = dep_k_2(k_2)

# 生成用于可公开打印的私钥随机字母r
# r的取值范围是26个大小写英文字母和10个阿拉伯数字
r = random.sample(string.ascii_letters + string.digits, 1)

if len(str(k_2))==256: # 检查字符是否是256位
k_10 = int('0b' + str(k_2), 2) # 二进制数k_2转为十进制k_10
k = bitcoin.encode_privkey(k_10, 'wif_compressed') # 生成私钥k
K = bitcoin.privkey_to_pubkey(k) # 生成公钥K
A = bitcoin.pubkey_to_address(K) # 生成地址A

# 生成打印私钥kk
kk = k[0:random_int]+ r[0] +k[random_int+1:52] + k[random_int]

# 生成可打印文本txt
txt = "序号:{}\n展示私钥:{}\n地址:{}\n".format(random_int, kk, A)

else
print('Not 256 bits') # 若不是256位,则打印报错信息

# 生成打印文件,第二参数'a'代表追加
txt_file = open('key.txt', 'a')

# 打印到文件key.txt中
print(txt, file=txt_file)

# 关闭文件
txt_file.close()


# 整个文件需要执行的函数
if __name__ == '__main__':
prod_key(iter_num)

具体的要点都在代码里作了注释,有Python经验的读者可以DIY专属你的代码。比如随机数处理函数(dep_k_2),可以略作改动,变化出属于你设定的随机,比如:

def dep_k_2(k_2):
k_2 = k_2[:253] \
+ str(random.randint(0,1)) \
+ str(random.randint(0,1)) \
+ str(random.randint(0,1))
return k_2

这段代码的意思是:把原来自动生成的随机数最后三位截除后(只选前253位,这也是k_2[:253]的来历),然后添加三位随机数,让随机数更随机。当然这里并不是绝对的真随机,但用在离线加密私钥生成场景,是绝对足够了。

建议有能力的读者自己DIY一下dep_k_2()函数,否则黑客看到这篇文章,如果他了解Python中随机数的具体生成,会略微增加猜到的概率。

因为Python中随机数生成的逻辑是使用相关时刻作为种子。进一步DIY的方式同样可以参考上一篇文章。

当你试验十次导入私钥到钱包的操作成功、并且备份了一定数量的私钥纸后,你甚至可以直接把交易所的币转入对应的地址保存,完全脱离钱包和网络环境。

当你管理区块链资产的时候,你要把自己当成银行,因为在这个世界没有银行,只有你。

关于打印机不起眼的小提示,可以帮你向银行级的专业更靠拢一点。

三、清理打印机缓存文档

打印机打完私钥文件后,打印的内容可能不会马上消失,会存在缓存里。如果此时连网,还是有泄露文件的风险。虽然我们已经经过加密一环,但在保护私钥方面,我们不能有丝毫放松。

能删就删。

以Window系统为例:Win+R,或者左下角“开始”->“运行”,输入:

services.msc

5分钟教你比特币私钥生成与保管的“银行级”方法 币私钥 方法 银行 教你 KTETH KTETH交易平台 新闻  第2张

在服务列表中找到Print Spooler的服务项,右键->“停止”。

5分钟教你比特币私钥生成与保管的“银行级”方法 币私钥 方法 银行 教你 KTETH KTETH交易平台 新闻  第3张

同样Win+R调出运行窗口,输入:

spool

5分钟教你比特币私钥生成与保管的“银行级”方法 币私钥 方法 银行 教你 KTETH KTETH交易平台 新闻  第4张

在出现的窗口中,删除PRINTERS文件夹

5分钟教你比特币私钥生成与保管的“银行级”方法 币私钥 方法 银行 教你 KTETH KTETH交易平台 新闻  第5张

折返到服务列表,右键Print Spooler,点“启动”。

5分钟教你比特币私钥生成与保管的“银行级”方法 币私钥 方法 银行 教你 KTETH KTETH交易平台 新闻  第6张

打印机缓存问题就解决了,再连网就更安全了。


结语


如果你决定佛系持币,私钥安全是第一要务。

此时此刻,比特币价格突破51,000美元,这只是一个开始。随着币价进一步波动,更为科学的管理方式是分散到更多地址,避免尾部风险。

如果你的持有量足够多,可以上调代码中iter_num的值,如:

iter_num = 10

一拆十,进一步摊薄风险。

当然,此时每次转账万分之五个币左右的矿工费也是你自己需要权衡的——不仅分拆时要支付一次,再转入交易所卖出时要再支付一次。不过这些费用和长期收益相比,已经是足够小了。

另外,打印私钥纸的份数、在哪里保管不会被火烧水淹,都是值得你思考的严肃问题,这个问题对所有人都很重要,但未必能引起每个人足够的重视。因为有了你DIY的加密函数,所以多打几份问题也不大,只要你自己牢记加密方式。

相关推荐

【分析师看后市】市场再次增发7.5亿USDT!疯牛将继续上演?
  • 【分析师看后市】市场再次增发7.5亿USDT!疯牛将继续上演?
  • 【分析师看后市】市场再次增发7.5亿USDT!疯牛将继续上演?
  • 【分析师看后市】市场再次增发7.5亿USDT!疯牛将继续上演?
  • 【分析师看后市】市场再次增发7.5亿USDT!疯牛将继续上演?
【合约日报】神奇指标又来预测BTC大顶,这次该谨慎还是无脑冲?
  • 【合约日报】神奇指标又来预测BTC大顶,这次该谨慎还是无脑冲?
  • 【合约日报】神奇指标又来预测BTC大顶,这次该谨慎还是无脑冲?
  • 【合约日报】神奇指标又来预测BTC大顶,这次该谨慎还是无脑冲?
  • 【合约日报】神奇指标又来预测BTC大顶,这次该谨慎还是无脑冲?
摩根大通调查:22%机构投资者认为他们的公司未来会交易加密货币

摩根大通进行的一项调查发现,在目前没有交易过加密货币的公司中,有五分之一机构投资者认为他们的公司未来可能会交易加密货币。对代表1500家机构的3400多名投资者进行的调查发现,11%的受访者在交易或投...

这是Ripple、Coinbase和Twitter首席执行官都在重视的一件事
这是Ripple、Coinbase和Twitter首席执行官都在重视的一件事

对加密货币的监管一直对市场产生着影响,在可预见的未来也将是如此。正如MicroStrategy的MichaelSaylor所指出的,在接下来的十年里,“监管F...

2小时前 admin

Filecoin“链下验证”初露锋芒,或迎来低Gas新时代
  • Filecoin“链下验证”初露锋芒,或迎来低Gas新时代
  • Filecoin“链下验证”初露锋芒,或迎来低Gas新时代
  • Filecoin“链下验证”初露锋芒,或迎来低Gas新时代
  • Filecoin“链下验证”初露锋芒,或迎来低Gas新时代
312可能已经重演,BTC似乎再次进入美股关联区间
312可能已经重演,BTC似乎再次进入美股关联区间

2020年3月,是一段历史铭记的日子。疫情的暴发,美股在短时间内几度熔断,币市大跳水……2020年3月12日,美股与币市双双坠坠崖,成为股民和币友最难忘的一天。...

2小时前 admin

BM:新项目并非区块链,不需要任何资金投入
BM:新项目并非区块链,不需要任何资金投入

律动BlockBeats消息,在EOS联合创始人BM(DanielLarimer)发布其新项目ClarionOS后,引发了部分投资者对其「割韭菜...

2小时前 admin

铸造价值代币的秘密:解析代币架构中的4大实用性机制设计
铸造价值代币的秘密:解析代币架构中的4大实用性机制设计

原文:OutlierVentures牛市正在进行中!当下牛市所引发的新币热潮绝对是现象级反应,很多代币都成为了市场上的热宠儿。观其背后的逻辑,我们发现运作良好...

2小时前 admin

美债收益率重拾升势,美股黄金跳水,BTC何去何从?
美债收益率重拾升势,美股黄金跳水,BTC何去何从?

一夜之间,美债收益率又涨了,美股跌了,黄金也跌了。周三美债收益率再度大涨,令股市承压,10年期美债收益率涨逾10基点,日内一度逼近1.5%。业内人士称,美债收益...

2小时前 admin

北美首支比特币ETF的市场效应分析与展望
  • 北美首支比特币ETF的市场效应分析与展望
  • 北美首支比特币ETF的市场效应分析与展望
  • 北美首支比特币ETF的市场效应分析与展望
  • 北美首支比特币ETF的市场效应分析与展望
欧易OKEx早讯:美国国家信用合作社管理局或考虑就数字资产的处理提供指导

欧易OKEx早讯将在每日早间推送最新产业动态及行情,帮助投资人快速了解行业热点,把握每一个投资机会。行情播报3月4日讯,今日加密货币市场上行。截至发稿,BTC报51568.66美元,日内涨幅1.53%...

Rococo、Kusama、Polkadot,平行链插槽到哪一步了?

...

铁打的BM再做社交网络,你还信吗?

...

两会开幕在即:有关“区块链”提案抢先看

2021全国“两会”召开在即,站在建党一百年、全面决胜小康社会的新起点,中国将全面擘画第十四个五年规划和2035年远景目标。在此前结束的今年地方两会期间,“区块链”成为了各地政府工作报告和发展规划中的...

价格指标表明,以太坊未来将继续看涨
  • 价格指标表明,以太坊未来将继续看涨
  • 价格指标表明,以太坊未来将继续看涨
  • 价格指标表明,以太坊未来将继续看涨
  • 价格指标表明,以太坊未来将继续看涨