http://www.niuxinxin.com

3分钟读懂:深入浅出的讲解比特币钱包

对于一个新进入比特币世界的人来说,了解比特币的基本原理、甚至读懂中本聪的白皮书可能都算不上“难”,但要搞明白比特币钱包,那可就真难了。官方 比特币钱包、轻钱包、手机钱包、在线钱包、纸钱包、脑钱包、硬件钱包、多重签名钱包、HD钱包......这一大堆乱七八糟的到底都是些什么?再加上这段 时间被业内人士经常提及的ON-CHAIN钱包、OFF-CHAIN钱包,OMG,还能再复杂点儿不?

那么,到底什么是比特币钱包呢?顾名思义,比特币钱包就是存储和使用比特币的工具,定义本身清晰而简单,只不过是被大家搞复杂了而已。今天,我将通过这篇文章,尽可能的让“比特币钱包”回归简单。

3分钟读懂:深入浅出的讲解比特币钱包


三个基本概念:私钥、公钥和地址

继续本文之前,我们需要了解比特币的三个最为基本的概念:私钥、公钥和地址。关于这三个概念,已经有很多文章专业的从密码学等领域进行过剖析,在这里我就不再赘述了,我将尽可能的用通俗易懂的语言给大家说说。


私钥(private key)

听起来很高端,其实就是个随机数(概率空间为2^256,注:私钥的范围其实要小于这个数),我们一般会用计算机来生成这个随机数(生成过程被称为 “密码学安全的伪随机数生成器PRNG”)。你可以想象着比特币世界里有2^256个抽屉,随便抽出一个抽屉来存放比特币,抽屉的编号就是私钥,因为只有 你知道这个编号,所以也就只有你才能花费这个抽屉里的比特币,这很简单。

3分钟读懂:深入浅出的讲解比特币钱包

公钥(public key)

公钥与私钥一一对应,是由私钥推算出来的(通过椭圆曲线算法),我们花费比特币的过程其实就是“使用私钥来签名比特币交易,其他人则可以使用公钥来验证签 名,验证通过,花费也就完成了”。私钥能推算出公钥,但公钥不能反推出私钥,该过程是不可逆的,这就是比特币的密码学根基。

地址(bitcoin address)

地址是由公钥转换而来(摘要+校验),地址被用于接收比特币(公钥其实也可以收币,只不过大部分人不这么做而已),一个地址上收到比特币后,只有使用该地址所对应的私钥才能花费这个地址上的钱。

好了,从上面的论述中,你就能看出,对于比特币来说,最重要的就是私钥,私钥决定了比特币的产权归属,公钥和地址均能通过私钥推算出来,因此通常意义上的比特币安全其实就是私钥的安全,一个比特币钱包是不是安全的也要看它能否安全的管理私钥。

3分钟读懂:深入浅出的讲解比特币钱包

比特币钱包的分类

现在,在了解了这些内容之后,我们终于可以开始对比特币钱包分类了(我们应该进行正确的分类,而不是本文最开始的那种含混不清的分类方式),分类的依据就是根据私钥的管理方式。

按私钥生成的方式分,我们可以将比特币钱包分为两类:

1、使用密码学安全的伪随机数生成器(PRNG)生成私钥的钱包:由于真随机数生成器需要采集环境中的熵,需要额外的“成本”,主要的比特币钱包都采用了 密码学安全的伪随机数生成器来产生私钥,无论是电脑端的Bitcoin-core(之前被称为Bitcoin-qt)、MultiBit、Armory, 手机端的Bitcoin-Wallet,还是诸如Blockchain.info这样的在线钱包,都要依赖于内核态或应用态的伪随机数生成器,这些随机数 生成器被确认为密码学安全的,我们基本上可以放心使用。由于应用态随机数生成器通常要基于内核态的进行更高级别的封装,而这种封装往往有可能会引入新的问 题,总体来讲,内核态的要更安全一些。历史上很多次随机数问题(比特币相关的、无关的)基本上都发生在应用态的随机数生成器上,因此,安全专家通常会建议 开发者使用内核态的随机数生成器。(这部分内容可参阅我之前写过的一篇关于随机的文章 )

2、使用真随机数生成器(TRNG)生成私钥的钱包:受“成本”和用户体验方面的限制,当前我只见过两种采用真随机数生成私钥的钱包解决方案,一种就是在 电脑端采集用户鼠标和键盘操作的BitAddress网页程序(可离线运行生成私钥),另一种则是比太钱包的极随机(XRANDOM)解决方案。由于智能 手机的感应设备非常多(如:相机、麦克风、重力感应、地磁感应、光线感应等),能够采集丰富的、高品质的环境噪声(熵),这使得廉价的、方便的真随机数解 决方案成为可能,在这一点上,我们必须得感谢移动互联网的高速发展。

毫无疑问,以随机的角度来看比特币安全性,“真随机”优于“内核态伪随机”,更优于“应用态伪随机”。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。