区块链原理与技术03:P2P 网络概述与区块链中的 P2P 网络(区块链网络与跨链操作01)

文章目录

    • [一、P2P 网络是什么?](#一、P2P 网络是什么?)
    • [二、传统 C/S 网络与 P2P 网络对比](#二、传统 C/S 网络与 P2P 网络对比)
      • [1. C/S 架构:客户端---服务器模式](#1. C/S 架构:客户端—服务器模式)
      • [2. P2P 架构:节点之间直接通信](#2. P2P 架构:节点之间直接通信)
    • [三、生活中的 P2P 类比](#三、生活中的 P2P 类比)
      • [传统 C/S 模式](#传统 C/S 模式)
      • [P2P 模式](#P2P 模式)
    • [四、P2P 网络的核心特征](#四、P2P 网络的核心特征)
      • [1. 去中心化](#1. 去中心化)
      • [2. 节点地位相对平等](#2. 节点地位相对平等)
      • [3. 资源共享](#3. 资源共享)
      • [4. 可扩展性强](#4. 可扩展性强)
      • [5. 容错性较好](#5. 容错性较好)
    • [五、P2P 网络的常见类型](#五、P2P 网络的常见类型)
      • [1. 纯 P2P 网络](#1. 纯 P2P 网络)
      • [2. 混合 P2P 网络](#2. 混合 P2P 网络)
      • [3. 结构化 P2P 网络](#3. 结构化 P2P 网络)
    • [六、P2P 网络的优点与缺点](#六、P2P 网络的优点与缺点)
      • [1. 优点](#1. 优点)
      • [2. 缺点](#2. 缺点)
    • [七、区块链为什么需要 P2P 网络?](#七、区块链为什么需要 P2P 网络?)
    • [八、区块链 P2P 网络的基本结构](#八、区块链 P2P 网络的基本结构)
    • 九、区块链节点有哪些类型?
      • [1. 全节点 Full Node](#1. 全节点 Full Node)
      • [2. 轻节点 Light Node / SPV Node](#2. 轻节点 Light Node / SPV Node)
      • [3. 矿工节点 / 验证者节点](#3. 矿工节点 / 验证者节点)
      • [4. 存档节点 Archive Node](#4. 存档节点 Archive Node)
    • [十、区块链中的 P2P 网络主要做什么?](#十、区块链中的 P2P 网络主要做什么?)
      • [1. 节点发现](#1. 节点发现)
      • [2. 交易传播](#2. 交易传播)
      • [3. 区块广播](#3. 区块广播)
      • [4. 账本同步](#4. 账本同步)
      • [5. 维护网络共识](#5. 维护网络共识)
    • [十一、区块链 P2P 网络中的交易传播示例](#十一、区块链 P2P 网络中的交易传播示例)
    • [十二、区块链 P2P 网络中的"广播"不是一次性发给所有人](#十二、区块链 P2P 网络中的“广播”不是一次性发给所有人)
    • [十三、区块链 P2P 网络如何防止垃圾消息?](#十三、区块链 P2P 网络如何防止垃圾消息?)
      • [1. 消息格式校验](#1. 消息格式校验)
      • [2. 签名验证](#2. 签名验证)
      • [3. 重复消息过滤](#3. 重复消息过滤)
      • [4. 限速和连接管理](#4. 限速和连接管理)
      • [5. 黑名单或评分机制](#5. 黑名单或评分机制)
    • [十四、区块链 P2P 网络面临的攻击风险](#十四、区块链 P2P 网络面临的攻击风险)
      • [1. Sybil Attack 女巫攻击](#1. Sybil Attack 女巫攻击)
      • [2. Eclipse Attack 日蚀攻击](#2. Eclipse Attack 日蚀攻击)
      • [3. DDoS 攻击](#3. DDoS 攻击)
      • [4. 路由隔离攻击](#4. 路由隔离攻击)
    • [十五、区块链 P2P 网络与共识机制的关系](#十五、区块链 P2P 网络与共识机制的关系)
    • [十六、比特币中的 P2P 网络示例](#十六、比特币中的 P2P 网络示例)
      • [1. 比特币节点主要做什么?](#1. 比特币节点主要做什么?)
      • [2. 比特币交易传播过程](#2. 比特币交易传播过程)
      • [3. 比特币区块传播过程](#3. 比特币区块传播过程)
    • [十七、以太坊中的 P2P 网络示例](#十七、以太坊中的 P2P 网络示例)
    • [十八、区块链 P2P 网络中的数据传播延迟](#十八、区块链 P2P 网络中的数据传播延迟)
    • [十九、区块链 P2P 网络与区块链取证](#十九、区块链 P2P 网络与区块链取证)
      • [1. 节点连接日志](#1. 节点连接日志)
      • [2. 交易传播路径](#2. 交易传播路径)
      • [3. 区块传播异常](#3. 区块传播异常)
      • [4. 链上与链下结合](#4. 链上与链下结合)
    • 二十、一个完整案例:小明发起链上转账
      • [阶段 1:构造交易](#阶段 1:构造交易)
      • [阶段 2:发送到 P2P 网络](#阶段 2:发送到 P2P 网络)
      • [阶段 3:节点验证并转发](#阶段 3:节点验证并转发)
      • [阶段 4:进入交易池](#阶段 4:进入交易池)
      • [阶段 5:验证者打包](#阶段 5:验证者打包)
      • [阶段 6:新区块广播](#阶段 6:新区块广播)
      • [阶段 7:全网验证并更新状态](#阶段 7:全网验证并更新状态)
    • [二十一、P2P 网络在区块链中的价值总结](#二十一、P2P 网络在区块链中的价值总结)
      • [1. 谁来传递信息?](#1. 谁来传递信息?)
      • [2. 谁来保存数据?](#2. 谁来保存数据?)
      • [3. 谁来维持网络运行?](#3. 谁来维持网络运行?)
    • 二十二、常见误区
      • [误区 1:P2P 网络等于区块链](#误区 1:P2P 网络等于区块链)
      • [误区 2:去中心化就是没有任何中心](#误区 2:去中心化就是没有任何中心)
      • [误区 3:P2P 网络一定更快](#误区 3:P2P 网络一定更快)
      • [误区 4:所有节点都保存完整账本](#误区 4:所有节点都保存完整账本)
    • 二十三、课堂练习
      • [练习 1:判断题](#练习 1:判断题)
      • [练习 2:简答题](#练习 2:简答题)
      • [练习 3:分析题](#练习 3:分析题)
    • 二十四、知识点速记
    • 二十五、总结
    • 二十六、推荐延伸学习方向

一、P2P 网络是什么?

P2P 是 Peer-to-Peer 的缩写,中文通常称为 点对点网络对等网络

在 P2P 网络中,每一台参与网络的计算机都可以叫作一个 节点 Peer / Node。这些节点之间没有绝对的"中心服务器",每个节点既可以是资源的请求者,也可以是资源的提供者。

换句话说:

传统网络中,用户通常向服务器请求资源;

P2P 网络中,用户之间可以直接互相交换资源。


二、传统 C/S 网络与 P2P 网络对比

1. C/S 架构:客户端---服务器模式

C/S 是 Client/Server 的缩写,即客户端---服务器架构。常见网站、网盘、邮箱、在线购物系统,大多采用这种模式。
客户端 A
中心服务器
客户端 B
客户端 C
客户端 D

在这种模式中,所有客户端主要依赖中心服务器。

例如:

  • 访问网站时,浏览器向网站服务器请求网页;
  • 登录邮箱时,客户端向邮件服务器请求邮件;
  • 使用网盘时,文件主要存放在平台服务器上。

2. P2P 架构:节点之间直接通信

P2P 网络中,每个节点都可以与其他节点直接通信。
节点 A
节点 B
节点 C
节点 D
节点 E

节点之间不是单纯的"客户端---服务器"关系,而是"我向你请求资源,你也可以向我请求资源"。


三、生活中的 P2P 类比

为了更容易理解,可以用"课堂借笔记"来类比。

传统 C/S 模式

全班同学都去找老师要笔记:
老师:唯一笔记来源
学生 A
学生 B
学生 C
学生 D

如果老师不在,大家都拿不到笔记。

P2P 模式

同学之间互相传笔记:
学生 A
学生 B
学生 C
学生 D

只要有部分同学已经拿到笔记,其他同学就可以继续互相传播。


四、P2P 网络的核心特征

1. 去中心化

P2P 网络不依赖单一中心服务器。即使某些节点离线,网络仍然可以继续运行。

2. 节点地位相对平等

每个节点都可以发送数据、接收数据、转发数据,也可以保存部分或全部网络数据。

3. 资源共享

节点可以共享文件、带宽、存储空间、计算能力或区块链账本数据。

4. 可扩展性强

随着节点数量增加,网络中的资源提供者也会增加。在理想情况下,网络规模越大,整体资源越丰富。

5. 容错性较好

由于数据和服务不集中在单点,部分节点宕机不会导致整个系统立即崩溃。


五、P2P 网络的常见类型

P2P 网络并不是只有一种结构,常见类型包括以下几类。


1. 纯 P2P 网络

所有节点完全对等,没有中心服务器参与。
A
B
C
D

特点:

  • 去中心化程度高;
  • 抗单点故障能力强;
  • 节点发现和资源搜索较复杂。

典型场景:

  • 早期去中心化文件共享;
  • 某些区块链网络。

2. 混合 P2P 网络

网络中存在一些辅助服务器,用来帮助节点发现、索引或协调,但资源传输仍然可以在节点之间完成。
索引服务器/协调服务器
节点 A
节点 B
节点 C

特点:

  • 节点发现更容易;
  • 效率较高;
  • 仍然存在一定中心化依赖。

典型场景:

  • 部分文件共享系统;
  • 某些即时通信系统;
  • 部分联盟链或许可链网络。

3. 结构化 P2P 网络

结构化 P2P 网络通常使用特定算法组织节点,例如 DHT,即 Distributed Hash Table,分布式哈希表。

DHT 可以帮助节点快速找到某个资源的位置。
节点 A

负责 Key 0-24
节点 B

负责 Key 25-49
节点 C

负责 Key 50-74
节点 D

负责 Key 75-99

特点:

  • 查询效率较高;
  • 节点组织有规则;
  • 维护结构需要额外成本。

典型场景:

  • BitTorrent 的 DHT 网络;
  • IPFS 内容寻址网络;
  • 一些去中心化存储系统。

六、P2P 网络的优点与缺点

1. 优点

优点 说明
去中心化 不依赖单一中心服务器
高容错 部分节点掉线不影响整体网络
扩展性好 节点越多,资源可能越丰富
成本分散 存储、带宽和计算压力由多个节点承担
抗审查能力较强 数据不集中在单一位置,难以被单点封锁

2. 缺点

缺点 说明
节点不稳定 普通节点可能随时上线或下线
数据一致性难 多节点之间需要同步状态
安全风险高 恶意节点可能传播虚假数据
搜索效率不一定高 非结构化 P2P 中查找资源可能较慢
监管和治理困难 网络参与者分散,责任边界不清

七、区块链为什么需要 P2P 网络?

区块链是一种分布式账本系统。所谓"分布式账本",就是账本数据不是只存放在某一家服务器上,而是由许多节点共同保存和维护。

区块链需要解决几个核心问题:

  1. 交易如何传播给全网?
  2. 新区块如何同步给其他节点?
  3. 节点如何知道当前最长链或最优链?
  4. 如何避免单个中心机构控制账本?
  5. 如何让网络在部分节点离线或作恶时仍能运行?

P2P 网络正好提供了这些能力。


八、区块链 P2P 网络的基本结构

在区块链系统中,每个节点可以与若干其他节点建立连接。
节点 1

保存账本副本
节点 2

转发交易
节点 3

验证区块
节点 4

矿工/验证者
节点 5

普通全节点

这些节点共同完成:

  • 交易传播;
  • 区块广播;
  • 账本同步;
  • 网络发现;
  • 共识协作;
  • 数据验证。

九、区块链节点有哪些类型?

不同区块链系统中的节点名称可能略有差异,但常见类型包括以下几类。

1. 全节点 Full Node

全节点保存完整或较完整的区块链数据,并能独立验证交易和区块。

特点:

  • 安全性高;
  • 可以独立验证账本;
  • 存储和带宽消耗较大。

2. 轻节点 Light Node / SPV Node

轻节点不保存完整账本,只保存区块头或必要信息,依赖全节点获取详细数据。

特点:

  • 资源消耗小;
  • 适合手机钱包、浏览器钱包;
  • 对全节点有一定依赖。

3. 矿工节点 / 验证者节点

在 PoW 系统中,矿工节点参与打包交易并竞争出块。

在 PoS 系统中,验证者节点通过质押等机制参与区块生成和确认。

特点:

  • 参与共识;
  • 可能获得区块奖励或手续费;
  • 需要承担更高的运行责任。

4. 存档节点 Archive Node

存档节点保存完整历史状态数据,不仅保存区块和交易,还能查询历史某一时刻的账户状态。

特点:

  • 数据量巨大;
  • 常用于区块链浏览器、数据分析、链上取证;
  • 运行成本较高。

十、区块链中的 P2P 网络主要做什么?

1. 节点发现

一个新节点加入区块链网络时,首先需要知道"我该连接谁"。

节点发现的常见方式包括:

  • 预置种子节点;
  • DNS Seed;
  • 节点地址表;
  • 从已连接节点获取更多节点地址;
  • DHT 或类似机制。

流程示意:
节点 B 节点 A 种子节点 新节点 节点 B 节点 A 种子节点 新节点 请求可连接节点列表 返回节点 A、节点 B 等地址 建立连接 建立连接 返回更多节点信息

2. 交易传播

用户发起交易后,交易会先发送给某个节点。该节点验证交易格式和签名后,会继续转发给其他节点。
矿工/验证者 节点 C 节点 B 节点 A 用户钱包 矿工/验证者 节点 C 节点 B 节点 A 用户钱包 发送交易 Tx 验证交易格式、签名、余额/UTXO 广播 Tx 广播 Tx 转发 Tx 转发 Tx

例子:

小明给小红转账 1 个币。小明的钱包不会把交易直接发给全世界所有节点,而是先发给自己连接的某个节点,然后由这个节点继续向邻居节点扩散,最终大部分网络节点都能收到这笔交易。

3. 区块广播

当矿工或验证者打包出新区块后,需要通过 P2P 网络把新区块传播给其他节点。
矿工/验证者

产生新区块
节点 A
节点 B
节点 C
节点 D
节点 E

其他节点收到新区块后,会进行验证:

  • 区块结构是否合法;
  • 区块哈希是否满足规则;
  • 区块中的交易是否有效;
  • 区块是否连接在已知链上;
  • 是否符合当前共识规则。

只有通过验证的区块才会被节点接受并继续转发。

4. 账本同步

新节点刚加入网络时,本地没有完整账本,需要从其他节点下载历史区块。
老节点 新节点 老节点 新节点 请求区块头 返回区块头列表 请求缺失区块 返回区块数据 验证并写入本地账本

5. 维护网络共识

P2P 网络本身不等于共识算法,但它是共识运行的通信基础。

没有 P2P 网络,节点之间无法交换交易和区块,也无法形成共同账本状态。


十一、区块链 P2P 网络中的交易传播示例

假设区块链网络中有 6 个节点:A、B、C、D、E、F。

用户把交易发送给节点 A。
用户钱包
节点 A
节点 B
节点 C
节点 D
节点 E
节点 F

传播过程如下:

  1. 用户钱包构造交易 Tx;
  2. 钱包使用私钥对交易进行签名;
  3. 钱包把 Tx 发送给节点 A;
  4. 节点 A 检查交易是否合法;
  5. 节点 A 把 Tx 转发给 B、C;
  6. B、C 再继续转发给其他节点;
  7. 矿工或验证者收到 Tx 后,可以把它放入候选区块;
  8. 区块被确认后,交易状态写入链上账本。

十二、区块链 P2P 网络中的"广播"不是一次性发给所有人

很多初学者容易误以为:

广播 = 一个节点同时给全网所有节点发送消息。

实际上,大多数区块链网络中的广播更像"病毒式扩散"或"接力传播"。
源节点
邻居 1
邻居 2
邻居 3
邻居 4
邻居 5
邻居 6

每个节点只需要把消息发给自己连接的部分邻居节点,邻居节点再继续转发,最终消息扩散到整个网络。


十三、区块链 P2P 网络如何防止垃圾消息?

区块链 P2P 网络是开放的,恶意节点可能发送大量垃圾交易、伪造区块或重复消息。因此节点通常会设置多种防护机制。

1. 消息格式校验

节点会先检查消息是否符合协议格式。如果格式错误,直接丢弃。

2. 签名验证

交易必须有合法签名,否则不会被接受。

3. 重复消息过滤

节点会记录已经见过的交易哈希或区块哈希,避免重复处理。

4. 限速和连接管理

节点可以限制某个 Peer 的消息频率,如果对方不断发送垃圾数据,可以断开连接。

5. 黑名单或评分机制

如果某个节点多次发送无效数据,可能会被降低评分,甚至被临时封禁。


十四、区块链 P2P 网络面临的攻击风险

1. Sybil Attack 女巫攻击

攻击者伪造大量节点身份,试图影响网络拓扑、信息传播或投票结果。
正常节点
恶意节点 1
恶意节点 2
恶意节点 3
恶意节点 4
恶意节点 5

防护思路:

  • PoW 通过算力成本限制攻击;
  • PoS 通过质押成本限制攻击;
  • 节点连接策略避免过度连接同一来源;
  • 使用信誉、身份或准入机制。

2. Eclipse Attack 日蚀攻击

攻击者控制目标节点的大部分连接,让目标节点只能看到攻击者提供的信息。
恶意节点
受害节点
恶意节点
恶意节点
恶意节点
恶意节点

风险:

  • 目标节点可能接收不到真实区块;
  • 目标节点可能被诱导接受延迟信息;
  • 可能辅助双花攻击或链上欺骗。

防护思路:

  • 增加连接多样性;
  • 避免连接来源过于集中;
  • 定期更换 Peer;
  • 限制同一 IP 段连接数量。

3. DDoS 攻击

攻击者通过大量请求消耗节点带宽、CPU 或内存资源。

防护思路:

  • 限速;
  • 连接数限制;
  • 消息大小限制;
  • 节点评分;
  • 防火墙与流量清洗。

4. 路由隔离攻击

攻击者通过网络层手段影响节点之间的连接路径,让部分节点无法及时接收新区块或交易。

防护思路:

  • 多路径连接;
  • 跨地域节点连接;
  • 使用加密通信;
  • 监控传播延迟异常。

十五、区块链 P2P 网络与共识机制的关系

P2P 网络负责"传消息",共识机制负责"定规则"。

模块 主要作用
P2P 网络 传播交易、传播区块、发现节点、同步数据
共识机制 决定谁能出块、如何确认区块、如何选择主链
加密算法 保证身份、签名、哈希和数据完整性
数据结构 组织区块、交易、Merkle Tree、状态树等

可以这样理解:
P2P 网络

负责通信传播
共识机制

负责达成一致
密码学

负责签名与哈希
区块链数据结构

负责组织账本
共同账本状态

没有 P2P 网络,共识消息无法传播;

没有共识机制,P2P 网络中传播的信息无法形成统一账本。


十六、比特币中的 P2P 网络示例

比特币是最典型的 P2P 区块链网络之一。

1. 比特币节点主要做什么?

比特币节点可以:

  • 连接其他节点;
  • 接收交易;
  • 验证交易;
  • 转发交易;
  • 接收新区块;
  • 验证新区块;
  • 同步历史区块;
  • 维护本地区块链副本。

2. 比特币交易传播过程

矿工节点 比特币节点 B 比特币节点 A 钱包 矿工节点 比特币节点 B 比特币节点 A 钱包 广播交易 验证交易 转发交易 转发交易 打包进候选区块

3. 比特币区块传播过程

节点 C 节点 B 节点 A 矿工 节点 C 节点 B 节点 A 矿工 广播新区块 验证区块 转发新区块 验证区块 转发新区块


十七、以太坊中的 P2P 网络示例

以太坊同样依赖 P2P 网络。

以太坊节点需要同步:

  • 区块;
  • 交易;
  • 账户状态;
  • 智能合约状态;
  • 验证者相关信息;
  • 共识层与执行层数据。

以太坊相比比特币,状态数据更复杂,因为它不仅记录 UTXO 或交易,还维护账户、合约和状态树。
交易
执行层节点
账户状态/合约状态
共识层节点
区块确认
P2P 网络


十八、区块链 P2P 网络中的数据传播延迟

在区块链网络中,交易和区块传播不是瞬间完成的。

影响传播速度的因素包括:

  • 节点数量;
  • 节点地理分布;
  • 网络带宽;
  • 节点连接数;
  • 区块大小;
  • 消息验证速度;
  • 网络拥塞情况。

传播延迟可能带来影响:

  1. 矿工看到的交易池不同;
  2. 不同节点短时间内看到的链状态不同;
  3. 可能出现临时分叉;
  4. 攻击者可能利用延迟进行双花尝试。

十九、区块链 P2P 网络与区块链取证

对于网络安全和数字取证学习者来说,P2P 网络也是链上分析的重要基础。

可以关注以下方向:

1. 节点连接日志

分析节点连接日志可以帮助判断:

  • 节点连接了哪些 Peer;
  • 是否存在异常连接来源;
  • 是否被大量恶意节点包围;
  • 是否有异常断连或重连。

2. 交易传播路径

通过监听网络中的交易传播情况,可以分析:

  • 某笔交易最早出现在哪些节点附近;
  • 是否存在异常交易广播;
  • 是否有批量机器人行为;
  • 是否存在欺骗性转账或钓鱼交易传播。

3. 区块传播异常

如果某些节点长期接收不到新区块,可能意味着:

  • 网络被隔离;
  • 节点被攻击;
  • 节点版本过旧;
  • 网络配置错误。

4. 链上与链下结合

区块链取证通常不仅看链上交易,还要结合:

  • IP 连接记录;
  • 节点日志;
  • 钱包客户端日志;
  • 交易广播时间;
  • 交易所 KYC 记录;
  • 恶意域名和服务器日志。

二十、一个完整案例:小明发起链上转账

假设小明使用钱包给小红转账 1 ETH,整个过程可以分为以下阶段。

阶段 1:构造交易

钱包生成交易内容:

text 复制代码
from: 小明地址
to: 小红地址
value: 1 ETH
nonce: 当前账户交易序号
gasLimit: 燃料限制
maxFee: 手续费参数
signature: 小明私钥签名

阶段 2:发送到 P2P 网络

钱包连接一个或多个以太坊节点,将交易发送出去。
小明钱包
以太坊节点 1

阶段 3:节点验证并转发

节点检查:

  • 签名是否合法;
  • nonce 是否正确;
  • 账户余额是否足够;
  • gas 参数是否合理;
  • 交易格式是否符合协议。

验证通过后,节点转发给其他节点。
节点 1
节点 2
节点 3
节点 4
节点 5

阶段 4:进入交易池

尚未打包的交易会进入节点的交易池,也叫 mempool 或 transaction pool。

阶段 5:验证者打包

验证者从交易池中选择交易,打包进新区块。

阶段 6:新区块广播

新区块通过 P2P 网络传播给其他节点。

阶段 7:全网验证并更新状态

其他节点验证新区块,如果合法,则更新本地账本状态。小红账户余额增加,小明账户余额减少。


二十一、P2P 网络在区块链中的价值总结

区块链中的 P2P 网络并不是一个附属模块,而是区块链能够去中心化运行的底层通信基础。

它解决了三个关键问题:

1. 谁来传递信息?

由节点之间互相转发交易和区块。

2. 谁来保存数据?

由全节点、存档节点等共同保存链上数据。

3. 谁来维持网络运行?

由全球分布的节点共同维护,而不是依赖单一服务器。


二十二、常见误区

误区 1:P2P 网络等于区块链

错误。P2P 网络只是区块链的网络通信层。区块链还包括密码学、共识机制、账本结构、虚拟机、智能合约等模块。

误区 2:去中心化就是没有任何中心

不完全正确。很多区块链项目在某些环节仍可能存在中心化因素,例如:

  • 种子节点;
  • 开发团队;
  • RPC 服务商;
  • 区块浏览器;
  • 交易所入口;
  • 大型矿池或验证者。

误区 3:P2P 网络一定更快

不一定。P2P 网络抗单点故障能力强,但消息传播可能受到节点质量、网络拓扑、带宽和验证速度影响。

误区 4:所有节点都保存完整账本

不一定。全节点保存完整或较完整数据,轻节点只保存必要信息,存档节点保存更完整的历史状态。


二十三、课堂练习

练习 1:判断题

  1. P2P 网络中所有节点只能作为客户端,不能提供服务。
  2. 区块链中的交易通常通过 P2P 网络传播。
  3. 区块链只要使用了 P2P 网络,就一定完全去中心化。
  4. 全节点可以独立验证区块和交易。
  5. 轻节点通常比全节点占用更多存储空间。

参考答案:

text 复制代码
1. 错
2. 对
3. 错
4. 对
5. 错

练习 2:简答题

问题:为什么区块链需要 P2P 网络?

参考答案:

text 复制代码
区块链需要在没有中心服务器的情况下,让全球节点传播交易、同步区块、保存账本并协同运行共识机制。
P2P 网络可以让节点之间直接通信,使交易和区块通过节点接力传播,从而支撑区块链的去中心化、容错性和抗单点故障能力。

练习 3:分析题

问题:如果一个区块链节点只连接到了攻击者控制的节点,可能会发生什么?

参考答案:

text 复制代码
这可能形成日蚀攻击。攻击者可以控制该节点看到的信息,使它无法及时接收真实区块和真实交易,甚至诱导其接受延迟或错误的信息。
防护方法包括增加连接数量、提高连接来源多样性、限制同一 IP 段连接比例、定期刷新 Peer 等。

二十四、知识点速记

text 复制代码
P2P = Peer-to-Peer = 点对点网络
节点既可以请求资源,也可以提供资源
P2P 的核心是去中心化、资源共享、节点自治
区块链依赖 P2P 网络传播交易和区块
P2P 网络负责通信,共识机制负责达成一致
全节点负责保存和验证账本
轻节点资源消耗较小,但依赖全节点
区块链 P2P 网络常见风险包括女巫攻击、日蚀攻击、DDoS 攻击

二十五、总结

P2P 网络是一种由多个对等节点共同组成的分布式网络结构。与传统 C/S 架构相比,P2P 网络不依赖单一中心服务器,而是通过节点之间的直接通信完成数据交换和资源共享。

在区块链系统中,P2P 网络承担了非常重要的底层通信职责。交易的广播、区块的传播、账本的同步、节点的发现,都离不开 P2P 网络。

但是,P2P 网络并不等于区块链本身。区块链是在 P2P 网络基础上,进一步结合密码学、共识机制、数据结构和激励机制形成的可信分布式账本系统。

可以用一句话概括:

P2P 网络让区块链"连接起来",共识机制让区块链"达成一致",密码学让区块链"可信验证"。


二十六、推荐延伸学习方向

  1. TCP/IP 与网络通信基础;
  2. 分布式系统基础;
  3. BitTorrent 与 DHT 原理;
  4. 比特币白皮书中的网络传播机制;
  5. 以太坊执行层与共识层;
  6. 区块链节点同步流程;
  7. Sybil Attack 与 Eclipse Attack;
  8. 区块链链上分析与节点日志取证。
相关推荐
9命怪猫1 小时前
[K8S小白问题集] - Flannel是K8S默认CNI吗?怎么实现的Overlay网络?
网络·容器·kubernetes
Harvy_没救了1 小时前
【虚拟容器-docker】docker核心“铁三角“--网络、存储、镜像管理
网络·docker·容器
BS_Li1 小时前
【Linux网络编程】应用层自定义协议与序列化
linux·服务器·网络
深邃-1 小时前
【Web安全】-计算机网络协议(2):请求方法,头部字段,DNS协议详解
linux·网络·网络协议·计算机网络·安全·web安全·网络安全
Mr.H01271 小时前
C语言MQTT学习系列(3篇):第一篇:从零开始学MQTT(C语言版):入门必看,跑通最简Demo
c语言·网络·学习
上海云盾-小余10 小时前
域名解析被劫持怎么办?DNS 安全防护与异常修复全教程
网络·安全·ddos
科技风向标go10 小时前
**2026年Q2中国消费级监控摄像头市场观察:存量时代的竞争逻辑重构**
网络·安全·监控·户外安防
原来是猿11 小时前
网络计算器:理解序列化与反序列化(中)
linux·运维·服务器·网络·tcp/ip
区块block12 小时前
BCT到底有什么不一样?
人工智能·区块链