# 常见攻击向量

除了智能合约代码层面的漏洞，区块链网络本身也面临多种攻击威胁。本节介绍几种最典型的攻击向量。

## 1. 51% 攻击 (51% Attack)

**定义**： 攻击者控制了网络中超过 50% 的算力（PoW）或权益（PoS），从而获得对账本的某些控制权。

**后果**：

* **双花 (Double Spending)**：攻击者可以构造一条包含“未花费交易”的私有链，在主链确认交易并获得商品/服务后，广播更长的私有链覆盖主链，导致之前的交易无效，实现同一笔资产花费两次。
* **拒绝服务**：攻击者可以拒绝打包特定地址的交易，或者阻止网络确认新块。
* **重写历史**：攻击者可以回滚最近的区块，但通常无法修改很久之前的区块（因为算力成本随深度指数级增加）。

**局限性**：

* 攻击者**无法**凭空创造资产。
* 攻击者**无法**盗取他人的私钥或转移他人资产。
* 对于大型公链（如比特币），发动 51% 攻击的成本极其高昂，但在小型山寨币网络中较常见。

## 2. 双花攻击 （Double Spending）

**定义**： 即“双重支付”，指同一笔数字货币被花掉了两次。

**实现方式**：

* **51% 攻击**：最彻底的双花方式。
* **Race Attack（竞态攻击）**：攻击者几乎同时向网络广播两笔冲突的交易（一笔发给商家，一笔发给自己）。如果商家在未等待足够确认数的情况下发货，可能最后网络确认的是发给攻击者自己的那笔。
* **Finney Attack（芬尼攻击）**：攻击者自己是矿工，预先挖掘了一个包含私自转账给自己的区块但不广播，然后向商家发起交易。一旦商家发货，攻击者广播预挖的区块，使商家的交易失效。

**防范**：

* **等待多重确认**：商家应等待足够多的区块确认（如比特币建议等待 6 个确认）再进行交付。

## 3. 重放攻击 （Replay Attack）

**定义**： 攻击者截获一条在一条链上有效的经过签名的交易，并在另一条链上（通常是硬分叉后的链）“通过重放”该交易，使其在另一条链上也被执行。

**场景**： 常见于硬分叉时期。例如，ETH 分叉出 ETC 时，如果没有重放保护，用户在 ETH 链上转账，可能导致 ETC 链上的同等资产也被转走。

**防范**：

* **链 ID (Chain ID)**：在交易签名数据中包含唯一的链标识符（如 EIP-155），使得交易只能在特定的链上有效。

## 4. 日蚀攻击 （Eclipse Attack）

**定义**： 攻击者控制了受害者节点的所有对外连接（对等节点），将受害者隔离在真实网络之外。

**后果**：

* 受害者只看到攻击者制造的虚假区块链视图。
* 攻击者可以诱骗受害者确认无效交易或双花交易。

**防范**：

* 节点维护多元化的对等节点列表。
* 在建立连接时引入随机性。

## 5. 女巫攻击 （Sybil Attack）

**定义**： 攻击者创建大量的伪造身份（节点），以控制网络影响或破坏信誉系统。

**防范**：

* **共识机制**：PoW（算力门槛）和 PoS（资金门槛）大大增加了创建有效节点的成本。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://yeasy.gitbook.io/blockchain_guide/05_crypto/attack_vectors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
