比特币技术:布隆过滤器、支付协议与挖矿机制解析
发布时间: 2025-08-13 00:18:36 阅读量: 1 订阅数: 2 


比特币:密码学、工程与经济学的交汇
# 比特币技术:布隆过滤器、支付协议与挖矿机制解析
## 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.509 证书是否由设备中找到其证书的证书颁发机构签名。然后向用户显示商家名称和请求的金额。
5. 如果用户接受付款,钱包创建并签名一个将资金发送到请求地址的交易,并将其包含在给商家的消息中。此消息可以包含额外信息,如返回的比特币地址或给商家的消息。
6. 商家接收付款消息,提取签名的交易并将其发布到网络。然后向客户端返回签名的付款收据,客户端因此立即获得付款确认。
### 2.4 支付协议的其他特性
- 商家和客户端可以使用支付协议相互发送消息,商家发送的消息会由钱包客户端呈现给用户。
- 商家可以将收到的资金拆分到多个地址,可用于避免合并。
- 客户端可以包含退款地址,以便商家在订单无法完成时使用。退款地址可以由钱包软件自动生成,例如使用 BIP 32 来自动避免地址重用。
- 付款收据可以包含商家签名的付款证明,客户端在发生纠纷时可以使用。
下面是支付协议流程的 mermaid 流程图:
```mermaid
graph LR
A[客户端决定付款] --> B[商家创建并签名支付请求]
B --> C[商家发送请求和证书到钱包]
C --> D[钱包检查签名和证书]
D --> E{用户接受付款?}
E -- 是 --> F[钱包创建并签名交易]
F --> G[钱包发送交易消息给商家]
G --> H[商家发布交易到网络]
H --> I[商家返回付款收据给客户端]
E -- 否 --> J[交易取消]
```
## 3. 比特币挖矿机制
### 3.1 挖矿的基本概念
比特币挖矿是将区块添加到区块链的过程。矿工贡献其计算能力来解决添加到区块链的区块,网络会用区块奖
0
0
相关推荐









