区块链原理、架构与应用(第2版)
上QQ阅读APP看书,第一时间看更新

1.2.3 数字钱包

前面说过,每个用户都有一个或者几个钱包存储数字货币。数字钱包是一个形象的概念,因为拥有私钥就拥有对应地址的数字货币,因此人们把管理密钥的软件称为“钱包”。通常所说的数字钱包一般有两种意思:一种就是在用户注册时每个用户会有一个相应的钱包地址;另一种指的是为了方便用户进行数字货币交易、存储而开发的软件。第一种只能存储一种货币,由相应的币种提供,如以太币钱包;第二种能存储多种数字货币,一般由第三方开发,如imToken。可以将第二种钱包看作存储第一种钱包的软件。

比特币系统中,每个用户的交易都需要一个公钥和一个私钥,公钥是指明比特币属于哪个用户,私钥是验证身份,拥有私钥才能进行交易,每个用户都有一对公钥和私钥。可以把私钥看作打开钱包的钥匙,而公钥是证明钱包的存在。第三方数字钱包的工作原理就是基于这种模式。数字钱包可以同时存储多种货币,但是使用的是一个钱包地址,这个地址可以叫作一级地址,同时钱包里面不同种类数字货币有其各自的地址,叫作二级地址。用户在使用一级地址时,软件通过数字货币类型再发送到相应的二级地址,在用户层面,用户只感觉是一级地址之间的交易,只要提供密码即可,相应的私钥验证由软件完成。

由于私钥64位,缺乏可读性,手抄下来就比较麻烦,而私钥的备份在计算机上复制起来容易,但私钥保存在联网的计算机上毕竟不安全,有被其他人看到的风险。于是,有些钱包提供助记词工具,利用某种算法(如BIP-39)可以将64位私钥转换成十多个常见的英文单词,这些单词都来源于一个固定词库,根据一定算法得到。如图1-3所示是imToken钱包的助记词和密钥。私钥与助记词之间的转换是互通的,助记词只是私钥的另一种外貌体现。助记词一般会在创建新钱包的时候出现一次,后面就再也不会出现了,所以创建新钱包时最好把助记词抄下来,甚至放到保险柜里,自己想办法备份。如果是屏幕截图或保存在计算机中,只要设备联网都有被第三只眼看见的风险。别人如获取了用户的助记词,就等于获取了私钥所对应的一切财富,因此要非常重视。

数字钱包还可以分为全节点钱包和轻钱包。全节点钱包在使用时需要下载所有节点的信息,需要非常大的存储空间,所以轻钱包是目前很多用户的首选。轻钱包在使用时不需要下载节点信息,节点信息在软件运营商的服务器上下载。但这种方式相比于全节点钱包,交易速度会降低。

图1-3 密钥和助记词

目前无论手机、计算机还是网页都有很多种类的数字钱包,但所有的钱包都有类似的功能,能够存储用户的数字货币。

下面看一下目前市场上流行的几种钱包。

1.Blockchain钱包

Blockchain钱包是比特币专用的钱包,它是一个轻钱包,通过网页打开就可以随时使用,也可以下载手机客户端,不用在本地同步节点信息。但是目前只支持比特币、以太币和比特币现金的业务。Blockchain钱包使用简单,新用户注册后分配一个钱包ID,以后登录时需要使用钱包ID,如图1-4所示。

图1-4 Blockchain钱包登录

有很多人可能会有疑问,比特币钱包不是公钥对应一个私钥吗?为什么Blockchain使用密码?实际上它是通过几个单词和密码来生成的私钥。Blockchain钱包登录后的界面如图1-5所示,除了可以看到账户余额外还可以看到近期价格走势,供用户参考。

图1-5 Blockchain钱包界面

2.Mist钱包

Mist钱包是专为以太坊用户和开发人员设计的钱包,它可以存储用户的以太币。更重要的是,通过Mist可以部署智能合约,如图1-6所示是Mist首页,在Mist上可以查看多个用户的账户信息。但是Mist钱包是全节点钱包,用户如果购买了以太币,或者在主网上申请账户,需要下载以太坊网络上全部的节点信息。Mist是以太坊官方提供的浏览器,通过Mist可以很方便地连接上私有网络,从而更好地开发、调试智能合约。Mist支持Windows、Mac OS、Linux系统。

如图1-7所示是通过Mist部署智能合约。当然,在开发阶段,为了便于调试,Mist提供私有网络,因为在以太坊主网上部署智能合约也要花费手续费,所以在私有网络上会给用户分配大量的以太币,便于开发者使用。

3.imToken钱包

imToken是手机钱包,同时也是轻钱包,imToken支持多种数字货币,包括BTC、ETH、EOS等,是目前最流行的手机钱包之一,如图1-8所示。

除了支持多种数字货币以外,imToken也是很多交易所在用户转出资产时推荐的钱包。正是因为它方便快捷并且支持多平台的优点,目前总下载量突破了100万。

图1-6 Mist钱包界面

图1-7 Mist部署智能合约

4.火币Pro钱包

火币Pro准确地说应该是一个交易所,用户在交易所上购买后直接可以存在交易所的钱包里,如图1-9所示。以火币为代表的一批交易所也是一类钱包,它们更适合刚刚接触数字货币的用户,把数字火币存在交易所也免去了中间的手续费和规避了密钥丢失的风险。有些Token在主网上线之前要进行映射,以便ICO结束后换取相应的数字火币,将Token放在交易所就免去了这些操作,交易所直接帮助映射更方便,也更安全。

图1-8 imToken界面

图1-9 火币Pro钱包

需要指出的是,目前各种交易平台都属于中心化的服务机构,在交易平台上购买的数字货币实际上还在这些服务机构手里,它们存储了用户的私钥和地址。如果担心资金安全,用户可以另外生成一个地址,然后将交易平台里的数字货币提取到自己的地址中。