北大-区块链技术与应用6-BTC网络

Zoella Lv4

一、网络层级

顶层是 application layer,运行着 BitCoin 和 Block chain 协议;底层是 network layer,运行着 P2P Overlay Network

比特币的 P2P 网络很简单,所有节点都是平等的,不像有的网络有 super node / master node

二、加入/离开网络

加入网络前,需要和 seed node(种子节点)联系,它会告知网络中的其他节点,节点之间通过 PCP 通信,有利于穿透防火墙;离开时不需要做任何操作,只需退出应用程序,其他节点会将一段时间未接收到消息的节点删除

比特币网络设计的原则是:simple, robust, but not efficient(简单、鲁棒,而不是高效)

三、等待上链的集合

每个节点维护一个邻居节点的集合,消息传播在网络中采取 flooding(泛洪)的方式。节点第一次听到某个消息的时候,把它传播给其他所有的邻居节点,并记录已收到该消息,下次再收到时就不会再次转发。邻居节点的选取是随机的,不考虑底层的拓扑结构,这样设计可以增强鲁棒性,但牺牲了效率

比特币系统中,每个节点需要维护一个等待上链(写入区块链)的集合。第一次听到某个交易的时候,把交易加入该集合,并把该交易转发给邻居节点,下次就不再转发。转发的前提是交易是合法的:签名合法,之前未被花过

如果同时有两个冲突的交易被广播到网络上,比如:A 转钱给 B,A 又转钱给 C(双花),以首先被写入到区块链上的交易为准,交易被写入到区块链中即被等待上链的集合删除

四、Best effort

比特币网络的传播属于 best effort(尽最大努力),一个交易发送到比特币网络上,不一定所有节点能收到,且顺序也不一定,节点也不一定按照规则传播

  • Title: 北大-区块链技术与应用6-BTC网络
  • Author: Zoella
  • Created at : 2025-01-13 18:08:45
  • Updated at : 2025-01-13 20:58:21
  • Link: https://zoella-w.github.io/2025/01/13/35-北大区块链-BTC网络/
  • License: This work is licensed under CC BY-NC-SA 4.0.