我们用来装纸币和银行的钱包可以按功能来分区块链钱包开发,比如多功能性,即可装纸还可装卡,还能装硬币;轻便型,简单到就一个夹子;防盗钱包型,带密码锁……加密区块链钱包也可以按软件提供的功能和特性来分成多种类型。
完整节点钱包:任何一个区块链产品都会有完整节点,这个软件定义了区块链的所有规则,包括共识机制,交易格式,区块格式等等。完整节点也包括了钱包功能,可以用来存币和发币。
完整节点是可以完全验证所有的交易,可以确保钱包是处在区块链的最长链上,也可以识别硬分叉。用完整节点当钱包收发币是不会被骗。只要是完整节点验证过的币,就是真币。
SPV钱包:SPV(SimplifiedPaymentVerification)是在比特币白皮书里定义过的,叫简单支付验证。和简单支付验证对应的技术就是完整节点的交易验证。
SPV钱包不需要下载区块,只需要下载区块头。所以对硬件的要求很小,一般一个手机就能处理。SPV钱包的支付验证也很安全,但安全性要次于完整节点,因为其要随机咨询其他完整节点来询问是否将交易纳入区块中。
轻钱包:SPV钱包和轻钱包这两个概念经常容易搞混,业内其实也没有严格的定义,但我们最好能分辨清楚,因为这两者的安全机制是不一样的。
SPV钱包对币合法性验证采用的是简单支付验证,简单支付验证是一种定义在链上的规则。SPV钱包是随机访问完整节点来完成简单支付验证。很难使用特点的完整节点来欺骗SPV钱包。轻钱包对币合法性验证是委托特定的完整节点来完成验证,轻钱包相当于特定完整节点的客户端,而该完整节点则是服务器。
offchain钱包:完整节点钱包、SPV钱包和轻钱包,都是用户自己保管私钥。私钥丢了或密码忘了,谁也帮不了你。都不存在公司跑路偷走币的问题。统称为OnChain钱包,中文叫链上钱包。对应的,存在offchain钱包,中文叫链外钱包。