主页 > 苹果商城可以直接下载imtoken吗 > 【白话科普】简单便捷的支付验证:SPV

【白话科普】简单便捷的支付验证:SPV

1.什么是SPV

SPV(Simplified Payment Verification)是一种无需运行全节点即可验证支付的简单便捷方法。

用户必须下载全网完整的区块链账本数据,只需要保存所有的区块头(block header),不需要自己验证交易过程,只需要能够确认交易存在于一个区块在主链上,并由多个区块确认。

2.举个故事栗子

一个风雨交加的黑夜,凡凡以高超的技巧和手段完成了一个地下组织布置的秘密任务,这时来了一个莫名其妙的电话,小声说道:“凡大人好棒!10分钟我才把我家堵了好久的马桶疏通了,作为奖励,刚刚给你发了10个BTC,你确认一下,下次马桶堵了,我请你疏通!”

这时候,如何验证交易就成了一个问题。

如果要完整验证这笔交易,需要下载完整的比特币区块链账本。 下载几千兆字节的数据需要很长时间,然后还涉及验证转账发起地址是否有足够的余额进行交易,检查是否出现双笔交易。 花比特币奖励的大小,剧本能不能过关等等。 这些事情要是凡凡自己来做,会很麻烦。

这时候用SPV来验证就方便多了。 先将主链上的所有区块头下载到本地。 比特币每个区块的容量为1MB,区块头的大小固定只有80字节,不到一个区块大小的万分之一。 然后计算交易的哈希值,定位到包含哈希值的区块。 然后根据merkle树的值,用区块中的hash值来确认该区块是否在主链上。 根据区块所在位置,计算交易被多少个区块确认。

三、优点

有同学说,这也很复杂。 其实这个过程不需要我们自己来完成。 一般钱包客户端会自动帮你实现这个功能。

通过只下载区块头数据,大大减轻了客户端存储的负担。 无论一个区块包含多少笔交易比特币奖励的大小,区块头的大小都固定为 80 字节。 下载全网区块头数据只有几十MB大小,任何手机、电脑都可以加载。