简化支付验证(SPV)是一种机制,早在比特币的原始概念中就被描述,它允许网络参与者确保特定交易确实包含在区块链中,而无需完整下载整个区块链。一个完整节点可能存储数十到数百GB的数据,而对于SPV检查,只需下载区块头——每个大约八十字节的紧凑记录。
其操作原理基于默克尔树。每个区块包含这样一棵树的根,概括了其中包含的所有交易。轻量级客户端向完整节点请求一系列哈希(所谓的默克尔路径),以证明特定交易是确认区块的一部分。如果路径的数学验证与头部的默克尔根匹配,则支付被视为已确认。
SPV的使用场景
- 在具有有限磁盘空间的轻量级(移动和桌面)钱包中;
- 在计算能力低的设备中;
- 在快速同步而无需完全下载区块链的重要场合。
SPV的权衡在于信任水平:轻量级客户端依赖于完整节点的诚实,而不自行验证整个历史,因此在自主性和抵抗某些攻击方面不如完整节点。然而,对于日常支付,这种方法在安全性和便利性之间提供了合理的平衡。


