# 最長鏈原則

### 最長鏈原則（Longest Chain Rule）是區塊鏈用來決定哪條鏈是「正確」版本的規則。當出現多條競爭的鏈時，節點會選擇累積最多工作量的那條。這就像選舉——誰獲得最多「票」（工作量），誰就是合法政府。

***

## 為什麼需要這個原則？

在去中心化網路中，可能會同時出現多個版本的區塊鏈：

```
           區塊 100
              ↓
        ┌─────┴─────┐
        ↓           ↓
    區塊 101A    區塊 101B
        ↓           ↓
    區塊 102A    區塊 102B
        ↓
    區塊 103A

    哪條是「正確」的？
```

答案：選擇最長的那條（上例中是 A 鏈）。

{% hint style="info" %}
**「最長」的真正含義**

嚴格來說，比特幣選擇的不是「區塊數最多」的鏈，而是「累積工作量最大」的鏈。在正常情況下，兩者是一樣的。但如果難度不同，累積工作量才是真正的判斷標準。
{% endhint %}

***

## 最長鏈原則如何運作

### 1. 正常情況

所有礦工都在同一條鏈上延伸，沒有爭議。

### 2. 臨時分叉

兩個礦工幾乎同時挖到區塊：

```
時間 T：
礦工 A 挖到區塊 → 廣播給周圍節點
礦工 B 挖到區塊 → 廣播給周圍節點

時間 T+1：
部分網路認 A 的區塊
部分網路認 B 的區塊

時間 T+10分鐘：
有人在 A 的區塊上挖到新區塊
A 鏈變成最長鏈
所有節點切換到 A 鏈
B 的區塊被拋棄（成為孤塊）
```

### 3. 自動收斂

最長鏈原則確保網路最終會收斂到同一條鏈：

| 步驟     | 說明        |
| ------ | --------- |
| 分叉發生   | 網路出現兩條競爭鏈 |
| 繼續挖礦   | 礦工各選一條鏈繼續 |
| 其中一條變長 | 獲得更多算力支持  |
| 全網切換   | 節點切換到最長鏈  |
| 分叉結束   | 網路重新統一    |

***

## 為什麼這個原則有效？

### 1. 經濟激勵

礦工會選擇最長鏈，因為：

* 在最長鏈上挖礦才有獎勵
* 在短鏈上的工作會被浪費
* 理性礦工自然聚集到最長鏈

### 2. 算力決定一切

最長鏈 = 最多算力支持的鏈 = 最安全的鏈

{% hint style="success" %}
**中本聰的設計**

最長鏈原則是中本聰解決「拜占庭將軍問題」的關鍵。它讓分散的節點在沒有中央協調者的情況下，自動達成共識。
{% endhint %}

***

## 交易確認與最長鏈

這就是為什麼交易需要多次「確認」：

| 確認數  | 含義              |
| ---- | --------------- |
| 0 確認 | 交易還在交易池，可能被取消   |
| 1 確認 | 交易被打包進區塊，但可能被孤塊 |
| 3 確認 | 較安全，小額交易通常夠用    |
| 6 確認 | 比特幣的標準安全門檻      |
| 更多   | 大額交易建議等待更多確認    |

{% hint style="warning" %}
**雙花攻擊的原理**

攻擊者在一條鏈上花錢，同時在另一條「私密鏈」上不花這筆錢。如果私密鏈變得更長，就能取代原本的鏈，撤銷已完成的交易。這就是為什麼等待多次確認很重要。
{% endhint %}

***

## 最長鏈 vs 最重鏈

| 概念   | 使用者         | 說明         |
| ---- | ----------- | ---------- |
| 最長鏈  | 比特幣（簡化說法）   | 區塊數最多      |
| 最重鏈  | 比特幣（精確說法）   | 累積工作量最大    |
| 最重子樹 | 以太坊（PoW 時期） | GHOST 協議變體 |

以太坊（在 PoW 時期）使用 GHOST 協議，考慮的不只是最長鏈，還包括「叔塊」的貢獻。

***

## 孤塊的命運

當某條鏈被拋棄時：

* 該鏈上的區塊成為「孤塊」
* 孤塊中的交易回到交易池（如果還沒在主鏈上）
* 挖到孤塊的礦工失去區塊獎勵

這是礦工的風險之一——你的工作可能白費。

***

## 延伸閱讀

* [廣播](/qu-kuai-lian-ru-he-da-cheng-gong-shi/wa/bo.md) — 區塊如何傳播
* [驗證](/qu-kuai-lian-ru-he-da-cheng-gong-shi/wa/undefined.md) — 節點如何驗證區塊
* [51% 攻擊](/ren-shi-feng-xian-bao-hu-zi-chan/51-attack.md) — 算力攻擊
* [分叉](https://github.com/dAAAb/Blockpedia/blob/master/blockchain-intro/fork.md) — 區塊鏈分裂
* [共識機制](/qu-kuai-lian-ru-he-da-cheng-gong-shi/consensus.md) — 最長鏈原則所屬的框架

***

#### 參考資料

* [Bitcoin Whitepaper](https://bitcoin.org/bitcoin.pdf)
* [Longest Chain - Bitcoin Stack Exchange](https://bitcoin.stackexchange.com/questions/5540/what-does-the-term-longest-chain-mean)


---

# 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://www.0x1.academy/qu-kuai-lian-ru-he-da-cheng-gong-shi/wa/bo/zui-yuan.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.
