5分钟教你比特币私钥生成与保管的“银行级”方法_币世界+巴比特·链创投

2021-02-18 15:15 栏目:行业动态 来源:网络整理 查看()

当你管理区块链的资产时,你应该把自己当成一家银行,因为这个世界上没有银行,只有你。区块链的资产没有绝对的安全性。

虽然私钥没有给别人看,但是完全公开。例如,比特币私钥只是0到2的256次方之间的数字。当然,不要低估这个数字。即使任何人拥有当前人类数亿倍的计算能力,猜测一个私钥的概率也不到一万亿。

这是区块链资产安全的数学基础,同时保留数字资产也没有绝对的安全,但是可以在相对的层面上想办法。

一、币到底应该放哪里?

上交易所?这肯定是一个解决方案,但总有交易所关闭的风险。出了事,维权?是的,但是警察和法院可能找不到。

所以我要靠自己~

主流钱包是比较好的管理工具,但是钱包文件容易丢失,密码容易被破解,硬盘容易损坏,旧电脑容易被家人当成废品卖。

把私钥复制到纸上或者打印出来(纸质钱包)都是安全的,但是随着时间的推移,空气中的酸性物质会使墨水褪色,纸张破裂,所以你不得不考虑使用无酸纸进行记录。但如果地震或火灾同时烧毁了密码纸、手机和电脑,哪里可以找回私钥?

你说你可以找到更多的地方来存储你的备份,但衍生的问题又来了:把它们安全地保存在哪里?多少份保存完好?——私钥因为单独保存而泄露,所以硬币可能会丢失。

另外,随着区块链资产的升值,一万元的比特币在八年内增加到100万元也不是不可能的,所以你当时打算把这些硬币放在一个地址?顺便说一下,到目前为止,还没有交易所把所有的硬币放在一个地址。

如果你深入思考,你会发现,即使你目前控制着一个小比特币,你也必须进化出一种银行级的托管方式。

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

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

批量生成加密的私钥和地址,输出到一个文本文件,让我们离线打印:

5分钟教你比特币私钥生成与保管的“银行级”方法_币世界+巴比特·链创投

您只需要知道实际私钥和显示私钥之间的关系。

脱开钱包工具

走出互联网环境

每次随机输出

纯线下独立运营环境,天知道你懂别人不懂。

首先你要有Python3环境和pip安装的比特币模块。如果不能一下子理解下面的代码,可以参考前面的张文《Python:三行代码自制比特币私钥》来理解核心代码。

准备完成后,将下面的代码直接复制粘贴到Python代码框中,保存后按F5运行。结果将以txt文本文件的形式输出到您的Python文件的默认路径,以便脱机打印。

#区块链资产高级安全类#银行级比特币私钥生成和存储方法#微信微信官方账号:唐强#导入工具包importomomport比特币#这里设置几个私钥iter_num=3 #随机数生成函数——3354 #生成一个由0和1组成的N位字符串。这里n设置为256,如010100111.(总共256位)defrandom _ 01(n): result=[]foriirange(n): I=random . randint(0,1) result。append(I)result _ txt=[str(I)for iin result]return“”。join(result _ txt)# random number processing function ——3354 make random除了random #您可以在此步骤中手动更改defdep _ K _ 2(K _ 2):K _ 2=K _ 2[:254]str(random . randint(0,1)) str(random.randint(0,1)) returnk_2#私钥集生成函数#转换路径:# 1,已处理的256位二进制随机数k_2#-2,十进制数k _ 10 加密私钥kk(用于显示)defprod : #生成1到50之间的整数,用于后续的random _ int=random.random (1,50) #加密,以生成由0和1组成的256位二进制字符串,k_2=random_01(256) #进一步处理上行链路代码生成的字符串。 让random 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))==2563360 #检查字符是否为256位k_10=int('0b' str(k_2),2) #二进制数k_2转换为十进制数k _ 10k=比特币。encode _ priv key(K Wif _ compressed ')# Generate private key K=bitcoin . priv key _ to _ public key(K)# Generate public key K A=bitcoin . public key _ to _ address(K)# Generate address A # Generate print private key kk kk=K[0: random _ int]r[0]K[random _ int 1:52]K[random _ int]# Generate text txt=' Serial number:{ } \ n show private key:{ } \ n dress:{ }Format (random _ int,kk,a) else 3360 print ('not 20)然后打印错误信息#生成打印文件,第二个参数' a '代表添加txt_file=open('key.txt ',' a') # print in file key.txt (txt,file=txt _ file)# close file txt _ file . close()#函数if _ _ name _ _要对整个文件执行

代码中标注了具体的点,有Python经验的读者可以自己动手做代码。例如,可以稍微修改随机数处理函数(dep_k_2),以更改属于您的设置的随机数,例如:

defdep _ k _ 2(k _ 2):k _ 2=k _ 2[:253]\ str(random . randint(0,1))\ str(random.randint(0,1))\ str(random.randint(0,1)) returnk_2

这个代码的意思是:把原来自动生成的随机数的后三位切掉(只选择前253位,是K2 [:253]的原点),再加上三位随机数,使随机数更随机。当然,这并不是绝对真实的随机,但绝对足以用于离线加密私钥生成场景。

建议有能力的读者自己动手DIY dep_k_2()函数,不然黑客看了这篇文章,知道Python中随机数的生成方法,会稍微增加猜测的概率。

因为Python中随机数生成的逻辑是用相关矩作为种子的。进一步的DIY方法也可以参考前面的文章。

在你成功测试了十次将私钥导入钱包的操作,并备份了一定数量的私钥纸后,甚至可以直接将兑换货币转移到相应的地址存储,完全脱离钱包和网络环境。

当你管理区块链的资产时,你应该把自己当成一家银行,因为这个世界上没有银行,只有你。

关于打印机的简单提示可以帮助你更接近银行专业。

三、清理打印机缓存文档

打印机打印完私钥文件后,打印的内容可能不会立即消失,而是会存储在缓存中。如果此时连接到互联网,仍然存在文档泄露的风险。虽然我们被加密了,但我们不能放松对私钥的保护。

能删就删。

以Window系统为例:Win R,或者左下角“start”-“run”,输入:

服务理学硕士5分钟教你比特币私钥生成与保管的“银行级”方法_币世界+巴比特·链创投

线轴5分钟教你比特币私钥生成与保管的“银行级”方法_币世界+巴比特·链创投

解决了打印机缓存问题,连接互联网更安全。

结语

如果你决定佛教拿钱,那么私钥的安全性是第一位的。

此时此刻,比特币价格已经超过5.1万美元,这还只是个开始。随着货币价格的进一步波动,更科学的管理方法是分散到更多的地址,以避免尾部风险。

如果你有足够的持有量,你可以在代码中增加iter_num的值,比如:

Iter_num=10-10,进一步稀释风险。

当然,这个时候,每笔转让5/10000元左右的矿工费也是你自己的取舍,也就是——,拆分的时候不仅要交一次,转让给交易所出售的时候也要交一次。然而,与长期利益相比,这些成本足够小。

此外,打印的私钥文件的副本数量以及如何防止它们被大火淹没是值得您考虑的严重问题。这个问题对每个人都很重要,但可能没有引起大家足够的重视。因为你的DIY加密功能,多打几份也不是什么大问题,只要你自己记住加密方法就行。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发