自诞生以来,比特币就一直浪费电力资源而受到批评,但其强大的计算能力是必不可少的过程,很难找到一种更好的方法来替代它。随着越来越多的年份出现,越来越多的人参与其基础技术区块链上的交易。分布式分类帐的内容已大大扩展。中本聪设定的块的存储容量为1 MB。使交易过程和交易速度受到限制。例如,比特币主链的当前块数据高达200 G以上,对于普通用户而言太大了。因此,下载整个分类帐变得很头疼。我可以下载整个分类帐,仅找到与我相关的部分吗?换句话说,找到一个过滤器,将无用的东西留在外面。于是出现了SPV机制。 1.SPV机制SPV代表“简化支付验证”,其通常被翻译为简单支付验证。其目的是验证交易的存在,但不能验证交易的合法性。这需要两步操作。第一步是确认交易付款是否已通过验证,第二步是计算已获得多少确认。中本聪(Satoshi Nakamoto)在他的论文中提到了这个概念:即使整个节点未运行,仍然可以验证事务,并且用户只需要将所有块头数据保留在最长的链上即可。简而言之:如果小黑将比特币转移给大白,大白怎么知道该货币已经交易过?在分散的系统中找不到证人。传统方法是:大白需要下载所有区块链分类账,然后找到小黑的账户,首先要检查小黑之前是否有这样的比特币,以及是否有将其转移到大白的记录。仅第一步导致大白的存储容量爆炸。每个比特币的块容量为1 MB,而块头仅为80 KB,因此您只需下载块头即可节省大量空间。块头和块体到底是什么?将块标题与人的头部进行比较,该人的头部存储块的标题信息,例如哈希值,时间戳等;区块主体类似于一个人的整个身体,存储着区块的详细数据,例如特定的交易信息。块标题包含在块主体中。也就是说,尽管一个区块头具有哈希值,但下载该区块头后,大白仍不知道交易记录在哪个区块上。此时,您需要获取交易ID以找到要检查的完整节点是否有,在哪里。 2. SPV付款验证过程中,如果矿工和小黑联手欺骗大白怎么办?这时,SPV机制就派上用场了。如果这位矿工说小黑转过身来,但实际上他没有。因此,为了说谎,他必须伪造更多事务,以便这些事务可以获得与自己块的标头中相同的哈希值。但是,由于散列的技术特性,很难为更改后的数据和原始数据获得相同的散列值。简而言之,SPV的整个交易过程如下:第一步是确认交易付款是否已通过验证。首先,计算待验证付款的交易哈希值,将区块头从区块链网络保存到本地,然后从区块链获取与待验证付款对应的默克尔树哈希认证路径。比较所获得的哈希值是否与您自己的哈希值一致。如果一致,则证明付款是真实有效的。第二步是验证已获得多少确认。根据块标题的位置,确定已收到付款的确认数。完成这两个步骤后,交易付款验证完成。 3.总结SPV机制不仅节省了存储空间,减少了P2P网络带宽的浪费,使普通用户无需下载完整的数据就可以进行操作,而且给支票帐户带来了极大的便利。但是,由于SPV没有完整的块数据,因此无法验证该事务不存在。这种情况很容易导致花费双倍,随机链接节点也可能受到网络的恶意攻击。