1. 每日区块链首页
  2. 学院
  3. 独家课堂

什么是SPV机制?

什么是SPV机制?

SPV是“Simplified Payment Verification”(简单支付验证)的缩写。中本聪论文简要地提及了这一概念,指出:不运行完全节点也可验证支付,用户只需要保存所有的block header就可以了。

从定义可以看出,这是一种相对简单的、用来验证支付的方法。

现在有个问题,如果有一天某猫告诉猫姐他向猫姐的比特币账户转了一个比特币,猫姐如何确认这个事情是真的呢?在去中心化的情况下,没有一个组织或者个人会站出来证明某猫是否真转出了这个比特币到猫姐账户。猫姐这时候应该怎么办?

如果猫姐想要本人亲自验证这笔交易是否存在,我要下载区块链上的所有账本,然后定位到某猫的账户上,这样才能查看某猫的账户上是否曾经有这个比特币,然后再判断某某是否已经指出了这个比特币给我。。。。,要做这些,猫姐必须拥有完整的区块链账本才行。

是不是太有点浪费时间和资源?

猫姐这时候可以用SPV的方法来做一次相对更简化的验证。

我不需要下载全部账本,只需要下载全部区块头,这样,下载任务就会轻松多了。毕竟每个比特币的区块容量是1Mb,区块头的大小只有80Kb.

问题来了,储存在每个区块头里的数据其实是这个区块的全部交易记录经过了哈希得出的一个哈希值,也就是一种猫姐看不懂的密文,所以我仍然无法知道自己要找的交易藏在了哪个区块里。

这个和在浩瀚的图书馆海洋里不用检索系统要找一本书一样难,如果我们知道书名,作者,或者出版社,我们到图书馆的检索系统里一搜基本就可以准确定位了。其实矿工就相当于这里的检索系统。

我们可以把交易的ID提交给矿工,让他帮忙查一下有没有这个交易,并帮你找到这条交易所在的区块。

那这个矿工有没有可能和某猫合起来造假呢,明明没有转账却告诉猫姐已经转过去了?

不用担心。因为有SPV。

如果矿工声称存在这条交易,但其实并没有,他想要成功欺骗你,就必须伪造更多的交易,使得这些交易层层哈希以后得到的值,与你下载的区块头里的哈希值是一样的。

但由于哈希的技术特性,改变后的数据要想和原始数据得出一样的哈希值的可能性微乎其微。

所以只要能得出一样的哈希值,矿工基本不可能是在撒谎,他一定是真的找到了这条交易。

猫姐认为,SPV机制极大地节省了存储空间。减轻终端用户的负担。无论未来的交易量有多大,区块头的大小始终不变,只有80字节。按照每小时6个的出块速度,每年产出52560个区块。当只保存区块头时,每年新增的存储需求约为4兆字节,100年后累计的存储需求仅为400兆,即使用户使用的是最低端的设备,正常情况下也完全能够负载。

原创文章,作者:猫姐,如若转载,请注明出处:http://www.dayqkl.com/41706.html

发表评论

登录后才能评论
QR code