比特币匿名性分析:基于P2P网络流量
1. 比特币交易基础
在比特币系统中,交易是核心操作。以Alice为例,若她拥有比特币地址A,当她想创建新交易(如Transaction 2)来花费之前收到的比特币(Transaction 1)时,需要遵循一定规则。输入的比特币地址必须与引用输出的比特币地址匹配,并且交易发送者要用私钥对交易进行签名。
比如,Alice想从Bob处接收50比特币(BTC),她会创建一个非对称密钥对,并将公钥A+给Bob。Bob创建交易并将Alice的公钥编码为交易输出的接收者(Transaction 1)。之后,Alice要给Charlie发送20 BTC,她创建新交易,在输入中引用从Bob处收到的钱(Transaction 2)。由于比特币协议规定输入中不能指定要花费的比特币数量,为了只给Charlie发送20 BTC,Alice要创建额外输出将30 BTC找零给自己(Transaction 2, Output 1),后续还能在其他交易中引用这笔找零。最后,Alice用私钥(A -)签署新交易,并将签名包含在相应输入中,以此验证引用硬币的所有权并保护交易完整性。
通常,建议用户拥有多个比特币地址,所以Alice可以把找零发送到自己的其他地址。若她要花费超过50 BTC,还能创建额外输入引用旧交易,这就是多输入交易。
2. P2P中继机制
比特币使用八卦协议在网络中中继消息。用户创建交易后,会将其发送给直接连接的对等节点。这些对等节点会评估交易是否有效,有效则转发给其他对等节点,使交易在网络中传播;无效则直接忽略。
交易在进一步中继前要经过一系列检查,除基本格式检查确保符合协议外,常见被忽略的交易