比特币技术:布隆过滤器、支付协议与挖矿机制解析
1. 布隆过滤器的精度与隐私保护
布隆过滤器的精度定义为误报率,它取决于过滤器中已设置位的百分比。如果过滤器包含很多元素,那么其大部分位都会被设置,从而导致大量误报。客户端可以利用这一特性来提高其向节点查询时的隐私性。增加过滤器中已设置位的数量会使包含的交易比期望的更多,这让节点更难挑出客户端控制的地址,但代价是带宽增加。因此,布隆过滤允许在隐私和带宽之间进行权衡。
使用受信任节点的轻量级客户端和使用简化支付验证(SPV)的客户端都被称为瘦客户端。
2. 比特币支付协议(BIP 70)
2.1 传统支付的问题
在支付协议出现之前,客户端用比特币向商家付款时,需要将商家的比特币地址复制粘贴到钱包客户端,选择金额并让钱包发送付款。这种过程容易受到中间人攻击,因为控制网络连接的攻击者可以将商家的比特币地址替换为自己的地址。
2.2 支付协议的改进
支付协议在比特币地址的基础上扩展了一条消息,该消息包含商家名称、支付金额和商家的附加消息。整个消息由商家使用其 X.509 证书的私钥签名。X.509 是互联网中最广泛使用的公钥基础设施(PKI)标准之一。
2.3 支付流程
一个遵循支付协议的交易步骤如下:
1. 客户端决定付款,即点击“支付按钮”。
2. 商家创建支付请求并使用其 X.509 证书签名,该请求包含商家希望接收付款的地址。
3. 商家将签名的支付请求和证书发送到客户端钱包。
4. 钱包检查消息是否使用支付请求中包含的 X.509 证书正确签名,以及该 X.