07.区块链的那些事儿-SPV和Merkle树(默克尔)

本节讨论区块头(head)中的Merkle(默克尔)树,默克尔树如下图所示:


1.为什么用到Merkle树

Merkle树用到SPV中。在这里要讨论一个问题,那就是如何通过轻钱包来保障支付的有效性,在比特币中用到了Simplified Payment Verification,简称SPV,SPV指的是“支付验证“,而不是“交易验证”。“交易验证”比较复杂,涉及到验证是否有足够余额可供支出、是否存在双花、脚本能否通过等等,通常由运行完全节点的矿工来完成

“支付验证”则比较简单,只判断用于“支付”的那笔交易是否已经被验证过,并得到了多少的算力保护(多少确认数)。

2. 如何通过Merkle树验证支付

在SPV节点只需要保留区块头,在区块头中有Merkle树,客户端会从全节点中查找包含自己该记录的merkle路径,计算Merkle路径得到的Merkle根的hash值与自己的Merkle树根的hash值是否相同,如果相同,则支付有效。

3. SPV如何保证自己的地址(公钥)

在通信链路上建立bloomfilter,限制只接受特定比特币地址的交易,同时具有一定的安全性


作者:温春水  致力于研究区块链技术

微信:wencs1314  QQ群:612968783 

加群和微信,免费获得高质量区块链学习资料


猜你喜欢

转载自blog.csdn.net/tsyx/article/details/79607901