比特币网络工作原理要点笔记:
-
交易与区块的传播:
- 用户将交易发布到比特币网络,节点接收这些交易并发布新的区块。
- 新发布的交易和区块通过比特币网络传播。
-
比特币的网络架构:
- 比特币工作在应用层,底层使用P2P网络进行通信。
- 比特币的P2P网络设计简单,所有节点是对等的,没有超级节点或主节点。
-
加入网络的步骤:
- 加入网络时,必须知道至少一个种子节点,通过该节点获得其他节点信息。
- 节点之间通过TCP协议通信,便于穿透防火墙。
- 节点离开网络时无需通知其他节点,系统会自动移除没有响应的节点。
-
节点的工作方式:
- 每个节点维护一个邻居节点的集合,消息传播采用“泛洪(flooding)”方式,即节点第一次收到某消息时会转发给所有邻居节点。
- 节点记录已经收到的消息,避免重复转发。
-
鲁棒性与效率的权衡:
- 比特币网络的节点选取是随机的,忽略底层拓扑结构,增强了鲁棒性,但牺牲了效率。
- 比特币系统中的转账,无论地理距离多远,速度都差不多。
-
交易与区块的处理:
- 每个节点维护一个等待处理的交易集合,合法的交易会被加入集合并转发。
- 冲突交易处理:当节点接收到两个相互冲突的交易时,只接受第一个收到的交易,忽略后来的冲突交易。
- 如果区块包含了交易,节点将移除集合中已被处理的交易。
-
区块传播的特性:
- 新发布的区块的传播方式与交易类似,但大区块传播速度较慢。
- 比特币协议限制了区块大小为1MB,这一设计考虑了网络带宽的限制。
- 区块传播可能需要几十秒才能覆盖网络大多数节点。
-
网络延迟与消息传播问题:
- 比特币网络的消息传播属于“最佳努力传输”(Best Effort),并不能保证所有节点都能接收到消息。
- 网络传播存在延迟,且有些节点可能会故意不转发合法交易或转发非法交易。
-
双花攻击与节点行为:
- 双花攻击是指试图将同一笔比特币多次花费。恶意节点可能试图在网络上广播重复交易,以便让它们进入区块链。
- 一些节点可能不遵循协议,而试图广播重复交易。
-
支付系统中的实际问题:
- 支付完成后无法通过区块链系统内部回滚交易,只能通过其他方式解决,例如依赖信誉系统或第三方平台。
- 商家在收到付款后可能不发货,区块链系统无法处理这种线下问题,用户需要通过其他途径(如投诉或退款)解决。
-
退款的实现:
- 如果有问题的交易发生后,商家可以通过创建新交易将比特币返还给用户,而不需要通过回滚交易来实现退款。