> For the complete documentation index, see [llms.txt](https://www.0x1.academy/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.0x1.academy/gei-kai-fa-zhe-de-zhi-nan/oracle.md).

# 預言機（Oracle）

### 預言機是區塊鏈與外部世界的橋樑。智能合約無法直接存取鏈外資料（如價格、天氣、比賽結果），預言機解決了這個問題，讓區塊鏈能與現實世界互動。

***

## 預言機解決什麼問題？

區塊鏈是一個封閉的系統。智能合約只能存取鏈上的資料，無法知道：

* 現在 ETH 的美元價格是多少？
* 昨天台北有沒有下雨？
* 世界盃誰贏了？
* 某支股票現在多少錢？

但 DeFi、保險、預測市場等應用都需要這些資訊。

{% hint style="info" %}
**為什麼合約不能自己上網查？**

區塊鏈要求所有節點對同一筆交易得出相同結果。如果合約可以上網查價格，不同節點可能在不同時間查到不同價格，導致共識無法達成。
{% endhint %}

***

## 預言機如何運作？

預言機是一個將鏈外資料「搬」到鏈上的服務：

```
外部資料源 → 預言機網路 → 智能合約
```

### 基本流程

1. 合約需要某個資料（如 ETH/USD 價格）
2. 預言機節點從多個來源收集資料
3. 進行驗證、聚合
4. 把結果提交到區塊鏈
5. 合約讀取並使用這個資料

***

## 預言機的類型

### 按資料來源分類

| 類型      | 說明       | 例子        |
| ------- | -------- | --------- |
| 中心化預言機  | 單一來源提供資料 | 某交易所的 API |
| 去中心化預言機 | 多個節點聚合資料 | Chainlink |

### 按資料方向分類

| 類型  | 說明          | 應用            |
| --- | ----------- | ------------- |
| 輸入型 | 把外部資料送進區塊鏈  | 價格、天氣、比賽結果    |
| 輸出型 | 把區塊鏈事件傳到外部  | 觸發銀行轉帳、IoT 設備 |
| 跨鏈型 | 在不同區塊鏈間傳遞資料 | 跨鏈橋           |

***

## 主流預言機專案

### Chainlink（LINK）

市場龍頭，最廣泛使用的去中心化預言機。

* **安全機制**：多個獨立節點提供資料，取中位數
* **經濟模型**：節點質押 LINK 代幣，提供錯誤資料會被懲罰
* **應用**：幾乎所有主流 DeFi 協議都使用 Chainlink

**支援的資料類型**：

* 加密貨幣價格
* 外匯
* 商品價格
* 體育賽事
* 隨機數（VRF）

### Band Protocol（BAND）

跨鏈預言機，主要服務 Cosmos 生態系。

### API3

由 API 提供商直接運營的第一方預言機。

### Pyth Network

專注於金融市場資料，由頂級交易所和做市商支持，延遲極低。

***

## 預言機在 DeFi 中的角色

### 借貸協議

[Aave](/kai-fang-shi-jin-rong-xin-shi-jie/lending/aave.md)、[Compound](/kai-fang-shi-jin-rong-xin-shi-jie/lending/compound.md) 需要知道抵押品價格，才能決定：

* 你能借多少錢
* 是否應該清算你的部位

### 穩定幣

[MakerDAO](/wen-ding-bi/makerdao.md) 需要知道 ETH 價格，才能維持 [DAI](/wen-ding-bi/dai.md) 的穩定。

### 衍生品

永續合約、期權等需要準確的價格資料來結算。

### 預測市場

[Polymarket](/qun-zhong-zhi-hui-yu-zi-xun-ju-he/polymarket.md) 需要知道事件結果（誰贏了選舉？）來結算賭注。

***

## 預言機的風險

### 1. 單點故障

如果預言機失效或被攻擊，依賴它的協議都會出問題。

### 2. 價格操縱

攻擊者可能操縱資料來源，讓預言機回報錯誤價格。

**例子**：

* 閃電貸攻擊：在極短時間內操縱 DEX 價格
* 利用錯誤價格進行套利或清算

### 3. 延遲問題

鏈外價格變化很快，但預言機更新需要時間。在這個「延遲」期間可能被套利。

{% hint style="danger" %}
**預言機攻擊案例**

2020 年，bZx 協議因為預言機問題被攻擊，損失約 100 萬美元。攻擊者利用閃電貸操縱 Uniswap 價格，騙過預言機。
{% endhint %}

***

## 預言機如何確保安全？

### 多數據源聚合

不依賴單一來源，而是從多個交易所、多個 API 收集資料，取中位數或加權平均。

### 經濟懲罰機制

節點必須質押代幣。提供錯誤資料會被「罰沒」（Slash），失去質押的代幣。

### 延遲更新

設定最小更新間隔，防止被閃電貸攻擊。

### 價格偏差檢查

如果新價格與舊價格偏差太大，暫停更新並人工審查。

***

## 預言機問題（Oracle Problem）

「預言機問題」是區塊鏈領域的核心挑戰之一：

**區塊鏈是去中心化、不可篡改的，但預言機引入的資料是中心化、可能被操縱的。**

這是一個哲學層面的問題：

* 區塊鏈的「真相」來自共識
* 但外部世界的「真相」需要信任某些來源

預言機只能盡量減少信任假設，但無法完全消除。這就是為什麼預言機的選擇對 DeFi 協議的安全性至關重要。

***

## 未來發展

### 更多類型的資料

* AI 推論結果
* 物聯網感測器資料
* 身份驗證

### 更低的延遲

Pyth 等項目已經實現毫秒級的價格更新。

### 更好的跨鏈支援

隨著多鏈生態發展，預言機需要在不同鏈之間同步資料。

***

## 總結

{% hint style="success" %}
**預言機的重要性**

預言機是區塊鏈的眼睛和耳朵。沒有預言機，智能合約只能處理鏈上資料，應用範圍極其有限。

但預言機也是區塊鏈安全的關鍵環節——它引入了信任假設，也可能成為攻擊目標。選擇可靠的預言機，對任何 DeFi 協議都至關重要。
{% endhint %}

***

## 延伸閱讀

* [智能合約](/zhi-neng-he-yue-de-shi-jie/smart-contract.md) — 預言機服務的對象
* [DeFi 總覽](/kai-fang-shi-jin-rong-xin-shi-jie/defi.md) — 預言機的主要應用場景
* [Aave](/kai-fang-shi-jin-rong-xin-shi-jie/lending/aave.md) — 使用預言機的借貸協議
* [預測市場](/qun-zhong-zhi-hui-yu-zi-xun-ju-he/prediction-markets.md) — 另一個預言機應用
