区块链:2比特币 账号系统

Posted DonquixoteXXXXX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链:2比特币 账号系统相关的知识,希望对你有一定的参考价值。

区块链:2、比特币 账号系统

一、脑口令

1、原理

比特币的地址是先生成私钥,私钥再计算出公钥,公钥再转换为地址。这里面私钥是最为关键的,只要有了私钥,其他的都是可以生成出来的,因此私钥的获得就很重要了。

在比特币中,私钥是一个256位长度的随机二进制串,显然这么长的串我们很难去记住它。一旦遗失了私钥, 就等于永久性地失去了对某一地址的所有权。

因此脑口令的做法就产生了,用户通过输入一串自行指定的字符串,然后对这个字符串进行一次SHA-256计算,生成的256位的哈希值就作为私钥。显然在这个过程中,只要记住那个自己指定的字符串就能找回私钥。

2、脑口令与脑钱包的问题

通过脑口令的生成方式而实现的钱包就叫脑钱包。虽然做法很简单,也解决了难以记住私钥的问题,可是安全性却受到质疑。

具体来说,它有如下一些问题:

1)私钥的生成是通过一个用户字符串来生成的,而这个字符串很有可能为了方便而指定了一个很短的短语或者一个很有规律性的字符串,比如123456abcde,或者helloworld之类,这将会给私钥的安全性带来很大的隐患,其他人可以通过猜测模拟出来。

2)用户字符串的保存是一个问题,而且也同样是容易遗忘的,如果记在纸上,不但不安全,而且也失去了脑钱包或者脑口令的初始意义了。

3)增加了用户的使用麻烦,实际上用户根本就无法去决定一个怎样的字符串才算是安全的,这会给使用带来困扰,而且一不小心就会生成一个不安全的私钥,还不如让程序来随机生成。

当然,脑口令和脑钱包的使用毕竟能带来方便,在这个基础上如果再增加些安全措施,还是可以推荐使用的。

3、“左脑+右脑”的安全脑口令

所谓的“左脑+右脑”,其实是一个形象的说法。我们知道,大脑分为左脑和右脑,左脑比较擅长逻辑推理、数学分析,右脑更擅长图像识别、音乐艺术等活动。那么,这些与脑口令有什么关系呢?

脑口令实际上就是一个思路,它的过程大概是这样的:

1)准备一段自定义的字符串,就跟上述生成脑口令的做法一样, 至于这个字符串要多长、复杂点还是简单点,可以自行选择,总之这个字符串定义后要能记住

2)根据字符串生成私钥,过程跟普通的脑口令一样;

3)对生成的私钥进行某个位置的修改,比如修改某一位的字母或者数字等。

通过上述方式生成的私钥,就要记住原始字符串, 以及对生成私钥后的几个位置修改,相当于左脑记住字符事,右脑记住位置修改,这样可以生成更加安全的脑口令。

4、脑分裂口令钱包工具

脑分裂口令,顾名思义,就是将一个私钥拆分若干份,只要集齐就可以获得真正的私钥。
这相当于将私钥分开来放在不同的地方,类似于古代的虎符管理,分成两份或者几份,大家一起拿出来才能有效。
从这一点来看,脑分裂口令的原理与多重签名地址有异曲同工之妙,其目的无非是为了能够方便找到私钥的同时还能妥善地安全保管。

二、荣耀地址与批量地址

1、如何大批量生成币地址

我们知道,要生成不同的比特币地址,实际上就是要生成不同的私钥,只要能批量生成私钥,自然就能得到批量的地址了。

对于私钥,我们知道就是256位长度的随机比特串,那么我们就有多种方法来批量生成比特币地址了,如下所示。

1)准备好大量的已知字符串,比如诗词或者字母加上数字的排序组合,然后用脑口令的方式一次性生成,保管好字符串表;

2)指定一个原始字符串,在这个字符串的末尾设置为若干位数字,只要循环不断地对尾部的数字加1,就可通过工具生成地址

3)分层生成批量地址,先生成一个私钥,然后通过这个根私钥再生成子私钥,以此类推,只要生成子私钥的规则是固定的,则只要记住根私钥就行了。

批量生成地址的方式,本质上就是提供给地址生成程序-个可以快速处理的规则, 我们要注意,只是批量生成是不够的,还要同时能有效地管理这些批量地址才行。

2、筛选生成荣耀地址

荣耀地址有点类似于QQ靓号或者手机靓号,是指在生成的地址字符串中包含一部分可读信息,比如我们看一个地址1BitCoin74Ysfsf88sVN5nAHfgr9Fjbs22,在这个地址中包含有一个BitCoin的可读信息,这个地址就是一个荣耀地址。

荣耀地址的生成需要对批量生成的私钥来进行测试,直到找到符合要求的地址为止。通常使用单机的地址生成器来匹配所需的荣耀地址,过程可能会很漫长。除了单机计算匹配外,还可以通过矿池服务来生成。通过矿池可以将匹配计算委托给更多的机器,能够比较快地找到符合要求的地址。

需要注意的是,荣耀地址跟普通地址在技术意义上是一样的,并没有什么差别,只是其地址字符串中包含了可读字符串而已。.

3、分层生成批量地址

在比特币中,有一类钱包叫做分层确定性钱包,所提供的技术就是分层生成批量地址。实际上原理很简单,还是回到一开始的概念,要生成地址就要先生成不同的私钥,有不同的私钥就有不同的公钥,然后就能有不同的地址。所以,只要能快速地生成不同的私钥就可以了。

我们可以先提供一个初始的私钥,然后通过一个固定的算法来生成一棵私钥树。

生成一棵私钥树后,可以快速通过主私钥和子私钥来生成地址,只要保持主私钥和子私钥以及子私钥与它的子私钥之间的生成关系是固定的,那么整个私钥树的保存实际上只要保存好一个主私钥就可以了。而在有些场合,为了更进一步地提高安全性,子私钥是可以不用保留下来的,因为私钥毕竟不能公开。



公钥都是可以放心公开的,只要保管好主私钥即可。
在整个做法中需要注意两点:
1)生成一个足够随机的主私钥,不能让别人可以简单的碰出来
2)主私钥与子私钥之间设定一个固定的生成规则,比如在主私钥的基础上不断地递增一个数字或者其他某个规则。

参考文献

[1]邹均.于斌.庄鹏.邢春晓.区块链核心技术与应用.机械工业出版社

参考文献

[1]邹均.于斌.庄鹏.邢春晓.区块链核心技术与应用.机械工业出版社

以上是关于区块链:2比特币 账号系统的主要内容,如果未能解决你的问题,请参考以下文章

区块链:2比特币 账号系统

区块链知识点索引

区块链:2比特币 诞生特点运行要素

区块链(bitcoin)学习

比特币区块链的局限

区块链原理及核心技术