比特币网络、支付与创新发展
1. 比特币客户端类型
比特币网络节点主要有两种运行模式:全节点客户端(Full client)和轻量级简单支付验证客户端(SPV client)。
- 全节点客户端 :全节点客户端会下载整个区块链,这是客户端验证区块链最安全的方法。
- SPV客户端 :用于在无需下载完整区块链的情况下验证支付。SPV节点仅保留当前最长有效区块链的区块头副本,通过查看Merkle分支来验证交易,该分支将交易与交易被接受的原始区块相链接。为了更实用地实现这一过程,BIP37引入了布隆过滤器(Bloom filters)。
2. 布隆过滤器
2.1 布隆过滤器原理
布隆过滤器是一种数据结构(带索引的位向量),用于以概率方式测试元素是否属于某个集合。它提供概率性查找,可能会产生误报(false positives),但不会产生漏报(false negatives)。也就是说,它可能会错误地认为一个不在集合中的元素在集合中,但不会将集合中的元素判定为不在集合中。
元素通过多次哈希处理后,将位向量中对应索引的位设置为1来添加到布隆过滤器中。检查元素是否存在时,应用相同的哈希函数并与位向量中的位进行比较。
需要注意的是,并非所有哈希函数(如SHA1)都适用于布隆过滤器,常用的有fnv、murmur和Jenkins,因为它们需要快速、独立且均匀分布。
2.2 布隆过滤器的应用
布隆过滤器主要由SPV客户端用于请求感兴趣的交易和Merkle块。Merkle块是一种轻量级的块,包含
超级会员免费看
订阅专栏 解锁全文

2295

被折叠的 条评论
为什么被折叠?



