# Taproot

### Taproot 是比特幣在 2021 年啟動的重大升級，它提升了隱私性、降低了複雜交易的成本，並為比特幣帶來更強大的智能合約能力。這是自 2017 年隔離見證以來最重要的升級。

***

## Taproot 是什麼？

Taproot 其實是三個比特幣改進提案（BIP）的組合：

| BIP     | 名稱         | 功能     |
| ------- | ---------- | ------ |
| BIP 340 | Schnorr 簽名 | 新的簽名算法 |
| BIP 341 | Taproot    | 新的輸出類型 |
| BIP 342 | Tapscript  | 新的腳本語言 |

這三個改進共同工作，讓比特幣變得更強大。

***

## 為什麼需要 Taproot？

### 問題 1：隱私性不足

在 Taproot 之前，不同類型的交易在區塊鏈上看起來很不一樣：

* 普通轉帳：簡單
* 多重簽名：複雜
* 時間鎖合約：更複雜

觀察者可以從交易格式推測你在做什麼。

### 問題 2：複雜交易太貴

多重簽名或智能合約需要在區塊鏈上揭露完整的腳本邏輯，這意味著：

* 交易體積大
* 手續費高

### 問題 3：智能合約能力有限

比特幣的腳本語言功能有限，難以實現複雜邏輯。

***

## Taproot 如何解決這些問題？

### 1. Schnorr 簽名

Schnorr 是一種簽名算法，比原本的 ECDSA 更強大：

**密鑰聚合（Key Aggregation）**

多個公鑰可以合併成一個公鑰，多個簽名可以合併成一個簽名。

| 比較        | ECDSA         | Schnorr           |
| --------- | ------------- | ----------------- |
| 3-of-3 多簽 | 3 個公鑰 + 3 個簽名 | 1 個聚合公鑰 + 1 個聚合簽名 |
| 區塊鏈佔用     | 大             | 小                 |
| 隱私性       | 低（可見是多簽）      | 高（看起來像普通交易）       |

### 2. MAST（默克爾化抽象語法樹）

複雜的合約可能有多個執行路徑：

```
如果 A 和 B 同意 → 執行
或者 30 天後 A 單獨 → 執行
或者 60 天後 B 單獨 → 執行
```

**傳統做法**：所有路徑都要公開

**MAST 做法**：只揭露實際使用的路徑

這意味著：

* 交易體積更小
* 隱私性更高（其他路徑沒人知道）
* 手續費更低

### 3. Tapscript

升級後的腳本語言，支援：

* 更多操作碼
* 更靈活的合約邏輯
* 未來更容易升級

***

## 對普通用戶的影響

### 手續費更便宜

複雜交易（如多簽、閃電網路通道）的手續費降低。

### 隱私性提升

多簽交易看起來和普通交易一樣，難以區分你在做什麼。

### 新的地址格式

Taproot 引入了以 `bc1p` 開頭的地址（之前是 `bc1q`）：

| 地址類型      | 開頭   | 例子          |
| --------- | ---- | ----------- |
| P2PKH（傳統） | 1    | 1BvBMSE...  |
| P2SH      | 3    | 3J98t1...   |
| SegWit    | bc1q | bc1qar0...  |
| Taproot   | bc1p | bc1p5d7r... |

***

## Taproot 與 Ordinals

Taproot 的一個「意外」用途是催生了 [Bitcoin Ordinals](/bi-te-bi/ordinals.md)。

Ordinals 利用 Taproot 的特性，可以在比特幣上存放更大的資料（如圖片），這引發了比特幣 NFT 的熱潮。

{% hint style="info" %}
**這是好是壞？**

社群對此有爭議。有人認為 Ordinals 豐富了比特幣的用途，有人認為這是對區塊鏈空間的濫用。無論如何，這展示了 Taproot 帶來的可能性。
{% endhint %}

***

## Taproot 的啟動過程

Taproot 的升級採用了「Speedy Trial」機制：

| 時間          | 事件                |
| ----------- | ----------------- |
| 2021 年 5 月  | 礦工開始信號支持          |
| 2021 年 6 月  | 達到 90% 支持，鎖定升級    |
| 2021 年 11 月 | 區塊高度 709,632，正式啟動 |

這次升級過程非常順利，沒有像 2017 年隔離見證那樣的激烈爭議。

***

## 技術細節

### Pay-to-Taproot（P2TR）

Taproot 引入了新的輸出類型 P2TR，它有兩種花費方式：

1. **Key Path**：直接用簽名花費（最常見、最便宜）
2. **Script Path**：揭露腳本並執行（用於複雜合約）

大多數交易使用 Key Path，這讓所有交易看起來都一樣——只是一個簽名。

### Taptweak

Taproot 使用一個巧妙的數學技巧，把公鑰和腳本「綁定」在一起，但外界無法區分這是普通公鑰還是包含腳本的公鑰。

***

## 錢包支援情況

截至 2024 年，主流錢包都已支援 Taproot：

| 錢包           | Taproot 支援 |
| ------------ | ---------- |
| Bitcoin Core | ✅          |
| Sparrow      | ✅          |
| BlueWallet   | ✅          |
| Ledger       | ✅          |
| Trezor       | ✅          |

如果你想使用 Taproot 地址，只需在錢包中選擇創建 `bc1p` 開頭的地址即可。

***

## 常見問題

### Q：我需要把比特幣轉到 Taproot 地址嗎？

不需要。舊地址仍然可用。但使用 Taproot 地址可以享受更低的手續費和更好的隱私。

### Q：Taproot 讓比特幣有智能合約嗎？

是的，但和以太坊不同。比特幣的智能合約更簡單、更有限，但也更安全。Taproot 擴展了可能性，但比特幣仍然以安全和簡單為優先。

### Q：所有交易都是 Taproot 了嗎？

不是。截至 2024 年，大約只有 10-20% 的交易使用 Taproot。採用需要時間。

***

## 總結

{% hint style="success" %}
**Taproot 的三大貢獻**

1. **更便宜** — 複雜交易手續費降低
2. **更隱私** — 所有交易看起來都一樣
3. **更強大** — 支援更複雜的智能合約

Taproot 為比特幣的下一個十年打下了基礎，同時也催生了 Ordinals 等意想不到的創新。
{% endhint %}

***

## 延伸閱讀

* [比特幣](/bi-te-bi/bi-te.md) — 比特幣基礎知識
* [隔離見證](/gei-kai-fa-zhe-de-zhi-nan/public-chain/ge.md) — 上一次重大升級
* [Bitcoin Ordinals](/bi-te-bi/ordinals.md) — Taproot 催生的應用
* [多重簽名](/bao-guan-ni-de-jia-mi-zi-chan/ming/duo-zhong-ming.md) — Taproot 優化的功能


---

# 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/gei-kai-fa-zhe-de-zhi-nan/taproot.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.
