零点芝士 | 加密数字货币钱包必要知识2
二、钱包分类——按软件特性来分
- 完整节点钱包
任何一个区块链产品都会有完整节点,这个软件定义了区块链的所有规则,包括共识机制,交易格式,区块格式等等。完整节点也包括了钱包功能,可以用来存币和发币。用完整节点当钱包收发币是不会被骗。只要是完整节点验证过的币,就是真币。运行完整节点是非常麻烦的事,是需要一台很好的电脑。手机干不了。普通用户一般不会,也不需要使用完整节点来当钱包。
- SPV钱包
SPV(Simplified Payment Verification)是在比特币白皮书里定义过的,叫简单支付验证。和简单支付验证对应的技术就是完整节点的交易验证。用户一般来说是不需要完全搞明白支付验证和交易验证的细节。使用简单支付验证来实现管理币的钱包就叫SPV钱包。SPV钱包不需要下载区块,只需要下载区块头。所以对硬件的要求很小,一般一个手机就能处理。
3.轻钱包
SPV钱包和轻钱包这两个概念经常容易搞混,业内其实也没有严格的定义,但我们最好能分辨清楚,因为这两者的安全机制是不一样的。SPV钱包是随机访问完整节点来完成简单支付验证。很难使用特点的完整节点来欺骗SPV钱包。轻钱包不需要下载区块数据,只需要保存和用户交易相关的交易。轻钱包的用户体验会比SPV钱包好。
- offchain钱包
完整节点钱包、SPV钱包和轻钱包,都是用户自己保管私钥。offchain钱包的私钥不是由用户自己保管的,而是由公司代理持有。本质上offchain钱包里的币是用户在钱包公司里的一种记账单位,或叫存款。公司要是跑路,用户的币就没了。