
預言機(Oracle)是讓智能合約取得鏈外資料的應用或機制,例如提供價格或天氣觀測值。它的核心工作是傳遞資料,不是預測未來,也不等同於某一種代幣。
合約即使按照程式正確執行,輸入若錯誤或過期,結果仍可能不符合使用者預期。理解資料從哪裡來、何時更新,以及異常時怎麼處理,才能看懂應用多依賴了哪些條件。
預言機是什麼?它提供資料,不是預測未來
鏈外資訊與智能合約之間的輸入角色
以天氣條件合約作假設:合約要判斷某地是否達到約定的降雨條件,需要先有可讀取的觀測資料。預言機負責把相關資料帶進合約可使用的環境,合約才有輸入可以比較。(Ethereum 官方文件)
這個例子只解釋資料角色,不代表任何天氣合約都會自動付款或符合保險規範。真正結果還取決於條件定義、資料範圍及合約程式;智能合約的基本運作可另讀站內介紹。
預言機服務與預言機代幣不能混為一談
預言機服務指資料取得、傳輸或驗證安排;預言機代幣則是某些專案設計中的代幣。知道服務會提供資料,不能推導出代幣一定有某種價值或收益。(Ethereum 官方文件)
閱讀應用介紹時,先把「使用哪一份資料」與「專案是否發行代幣」分開。一般使用者需要理解的是資料依賴與條件,不能用代幣名稱替代資料來源說明。

智能合約為什麼需要預言機?
節點不能各自任意讀取當下網站
Ethereum 合約預設無法直接存取鏈外資訊。假設兩個節點各自向網站查詢當下天氣,查詢時間、網站回應或網路狀況不同,就可能取得不同答案,難以據此驗證同一筆執行結果。(Ethereum 官方文件)
因此,需要可被共同處理的資料輸入安排。這不是說合約永遠不能用外部資訊,而是外部值必須透過具體機制送入;不能把節點自行查網站當成已解決一致性。
相同狀態與輸入,才有一致的執行結果
Ethereum 的確定性,是相同初始狀態與輸入應產生相同結果。預言機處理鏈外資訊進入這個環境的問題,讓合約依收到的值執行約定規則。(Ethereum 官方文件)
一致執行與資料真實是兩道不同問題。例如所有節點都照同一個錯誤價格計算,結果可以一致,卻仍可能傷害使用者;資料正確性不會因記錄上鏈就自動成立。
預言機怎麼把資料送進合約?
原始來源、彙整傳輸、鏈上更新與合約取用
可把預言機資料流程拆成四步:原始來源產生數值,服務取得或彙整,機制把結果更新到鏈上,合約再讀取該值。各服務可能採不同設計,這四步是用來辨識責任與依賴的觀察方法。(Ethereum 官方文件)
沿著同一筆資料追問,會比只看畫面上的價格更有用:它來自哪個市場或觀測站?如何彙整?鏈上記錄是否更新?應用到底讀的是哪個欄位?不要把服務介面顯示的數字直接當成合約實際使用值。
輸入型與輸出型要依具體實作分辨
輸入型把鏈外資料提供給合約;輸出型則把鏈上資訊傳向外部系統。預言機能否支援某一方向、是否需要其他服務協作,都要依具體實作確認。(Ethereum 官方文件)
例如「鏈上完成某事件後通知外部系統」與「外部價格送入合約」方向相反。看到產品宣稱支援某種連接,不應自行推定所有方向、資料或外部設備都已涵蓋。

去中心化預言機為什麼仍可能輸入錯誤資料?
多個節點不一定代表多個獨立資料來源
假設三個傳遞者都讀取同一個原始網站,即使傳遞節點分散,上游網站出錯仍可能影響全部輸入。因此,去中心化預言機的節點數量,不能單獨證明資料來源彼此獨立。(Ethereum 官方文件)
應分別看原始來源是否集中、傳遞者如何協作,以及更新機制如何處理異常。把這些層次分開,才能理解多節點究竟降低了哪一種風險,還留下哪些共同依賴。
來源品質、可用性與整合設定都要看
Ethereum 文件列出資料正確性、可用性與誘因等挑戰。資料可能錯誤,也可能暫時無法取得或遲遲未更新;這些問題不會只因合約程式沒有錯誤就消失。(Ethereum 官方文件)
Chainlink 的整合指引也要求使用者自行評估資料品質。預言機資料若過期、缺漏或出現意外值,應用是否有替代或暫停行為,需要讀取該應用的說明,不能假定每個應用都會自動保護使用者。
查看價格餵價時,怎麼核對預言機資料?
預言機價格先核對資產、幣對、單位與更新時間
查看預言機價格,先確認四件事:資產、報價幣對、數值單位與更新時間。兩個畫面即使都寫某代幣價格,也可能使用不同計價幣、精度或時間,不能直接比較。(Chainlink 資料整合指引)
假設甲值是較早一筆更新、乙值是另一市場剛成交的一筆,兩者不同不一定代表其中一方故意造假。先核對資料身分與時間,再判斷偏差;市場數據口徑可配合站內資料可信度文章閱讀。
再查流動性、來源集中與異常處理
再看來源市場是否有足夠且穩定的交易量與流動性,以及交易是否集中在單一場所。Chainlink 指引把這些列為價格資料的市場風險;這是查風險的方法,不是預測特定資產的價格。(Chainlink 資料整合指引)
最後確認應用如何使用預言機:可接受多舊的資料?遇到缺值怎麼辦?何種條件會暫停?如果公開說明無法回答,便把保護能力視為未知,避免把「有餵價」理解成交易或借貸一定安全。
| 核對層 | 需要確認 | 未確認的風險 |
|---|---|---|
| 資料身分 | 資產、幣對與單位 | 把不同口徑直接比較 |
| 更新狀態 | 更新時間與是否缺值 | 以舊值當成即時值 |
| 應用整合 | 過期或異常值的處理 | 假定保護機制一定存在 |
表內用來比較條件與核對方向,實際適用仍依該項機制、契約或案件資料確認。

結語
預言機讓合約有資料可用,並沒有取消來源、更新與整合風險。先沿著資料流程確認來源和時間,再查應用的異常處理,才能知道自己依賴的是什麼。
本文為入門教學,非投資、法律或稅務建議;法規與市場變動快,請以官方最新公告為準。



