简单支付验证(SPV)比特币现金钱包有什么优势?

众所周知,比特币核心开发团队Core开发组当年为了阻止比特币进行扩容,把区块大小锁定在1M,喊出了“每个人应该具备运行全节点程序的能力”,保证比特币的去中心化。但实际上,截止到目前为止比特币历史数据已经达到314G,同步数据就需要10个小时以上。
除了矿工和专业的节点运营商以外是很少有人愿意去下载比特币全节点客户端。在比特币的生态中,大部分人都不是矿工,只是普普通通的用户,没有高配置的电脑设备,更不愿意去浪费那个时间去下载全节点客户端。普通用户也不在乎什么理念,他们只关心是否用起来方便。
随着比特币持续的发展,比特币的历史数据会更大,下载同步数据的时间会更长,全节点客户端用起来会更加不友好。但高瞻远瞩的比特币创始人中本聪在很早之前就想到了这个问题,他提出不运行全节点也可以验证支付的方案,也就是只需要验证区块头,不验证全部交易即可确认交易。
“不运行全节点也可以验证支付,用户只需要保存所有的区块头(Block Header)就可以了。用户虽然不能自己验证交易,但如果能够从区块链的某处找到相符的交易,他就可以知道网络已经认可了这笔交易,而且得到了网络的多个确认。”

中本聪提到的这个解决方案也即是简单支付验证(Simplified PaymentVerification 简写SPV)。这是一项伟大的技术,解决了比特币在支付的确认是如何处理大规模数据的历史难题。整个SPV 过程是靠全节点帮忙去验证交易的,轻节点自身不能验证交易,但是通过确认其他全节点都接受了这次交易,就间接完成了交易确认。

SPV钱包也被有些人称之“轻钱包”,但这个是有歧义的。目前市面上大多数的轻钱包是有中央服务器的,钱包把信息发送到中央服务器,中央服务器来确认交易信息。这个和SPV钱包是有本质的区别的,一个是中心化的,一个是去中心化的。不过,SPV钱包在比特币社区并不流行,在比特币现金(BCH)上却得到了广泛的应用。下面我们来介绍一下SPV钱包的优势:
更加安全
SPV钱包是直接连接到BCH网络里面的,随机寻找全节点,SPV钱包只同步区块头(数据量非常小),然后使用过滤器,让钱包只下载和用户相关的历史交易。SPV钱包会自行验证交易,不需要信任特定的全节点。因此SPV钱包不会泄露隐私。其它轻钱包有第三方中央服务器,存在作恶的可能,平台还可能被黑客攻击导致用户信息泄露,资产被盗等等。
节省时间
SPV钱包只验证区块头,用户只需要下载和用户相关的历史交易,不需要下载全部的历史交易数据。因此,需要下载的数据比较小,下载速度也比较快。一般同步所有的数据10分钟用不到,一年产生的区块头1分钟左右就能同步完。而不像比特币客户端同步需要10个小时以上。
目前,比特币现金(BCH)官网推荐的钱包Electron Cash就采用SPV技术。Electron Cash是一个比较受欢迎的BCH钱包,也是一个高技术含量的钱包,该钱包还有混币的功能。另外,比特币现金(BCH)全节点开发团队BCHD推出的一款Neutrino钱包也采用的是SPV技术。总之,SPV钱包已经在BCH社区生根发芽并快速成长。