一.  概述

钱包的选择与使用和我们这些韭菜息息相关,我发现很多新手对于钱包不是很了解,也不太会使用。本质上,钱包就是一个生成并保存私公钥及地址的容器,在交易付款的时候负责用私钥签名,用公钥加密,或用生成的地址收款,或用生成的地址收取找回的零钱。同时它不断的访问比特币网络来计算你的钱包余额并展示给你。

当给别人一个你的比特币地址后,别人向你这个地址打款,你的钱包显示的比特币余额就会变化。当你向别人打款后,除了要付给别人的比特币外,别人还需要找你零钱,所以你还得提供一个找零地址,这类似于生活当中的找零钱。

上面的描述只是用户在钱包交互层面体验上的感觉,然而底层交易逻辑并不是这样,这涉及到如何“构造交易”的内容,需要以后再讲解。

总之,钱包的功能可以概述为以下几点

1) 钱包可以生成私钥,公钥,地址
2) 钱包管理这些地址,并帮助用户自动分配它们的功能
3) 钱包不仅可以接收比特币而且还可以帮用户发起交易
4) 显示钱包的比特币余额

每个钱包的开发商都会具有以上功能,但是在交互和界面功能上却各不相同,以后我们将使用钱包 Sparrow Wallet 来演示钱包的操作及其背后的原理。 

二.  钱包的分类

1.  随机性钱包

最初的比特币钱包很简单,我们称之为“随机性钱包”。它干的事情基本上就是我们之前讲解的所有内容,为什么称之为“随机性”,就是因为私钥是随机生成的嘛,每个私钥对应一个公钥和地址,所有的私钥都是独立的,私钥与私钥之间,公钥与公钥之间,地址与地址之间都是没有关系的。

“随机性钱包”最主要的特点是:

A.  操作繁琐容易混淆
一个随机性私钥对应一个公钥及地址,当你安装一个比特币钱包的时候,钱包会帮你自动生成将近100个私钥,同时你还能导入自己已有的私钥,如果你要一个个去备份私钥就很麻烦,就好比你注册不同的论坛,网站,游戏账号时,使用了不同的用户名和密码,是不是常常感觉很繁琐呢。 
B.  平台兼容性差|转移钱包难
不过钱包会帮你保存所有的私钥,公钥和地址等这些信息,所以如果你想备份所有私钥,直接备份钱包就行,其实就是备份wallet.dat这个文件。这就导致了另外一个问题,你只能保存在电脑,优盘等地方无法保存为纸质版的形式,同时不同的平台对这个文件不兼容(如Windows,macOS,OS,Android),还有可能无法在不同的钱包中导入导出。万一把这个文件弄丢了,比如电脑崩溃,删除等,那就GG了。

随着比特币的发展,“随机性钱包”逐渐被“分层确定性钱包|HD钱包|Hierarchical Deterministic Wallet “所代替。

#Wallet #钱包