簡而言之:鏈上資料直接存儲於區塊鏈中,因此具有永久性、透明性,且任何人都能驗證。鏈下資料則存儲於區塊鏈之外,通常位於傳統伺服器、IPFS 等去中心化儲存網路,或私人資料庫中。大多數實際應用都會同時採用這兩種方式:將關鍵狀態資料存儲於鏈上,同時將較大或非關鍵的資料存儲於鏈下,以節省成本並提升效能。
簡單的解釋
每條區塊鏈的儲存空間都有限。將資料儲存於鏈上,意味著必須將其寫入交易或智慧合約狀態中,這些資料會永久記錄在網路中的每個節點上。這使得資料具有防篡改性且可供所有人存取,但同時也需付出代價。在Ethereum 上,僅儲存 32 位元組的資料,根據 gas 價格的不同,可能就要花費數美元。若要將整張圖片或文件儲存於鏈上,成本將高得令人望而卻步。
這正是鏈下數據發揮作用之處。開發者無需將完整圖片儲存於區塊鏈上,而是將圖片儲存於IPFS (一個去中心化檔案儲存網路),並僅將IPFS 的內容雜湊值儲存於鏈上。區塊鏈紀錄用以證明資料應有的內容,而鏈下儲存則實際承載該資料。這種混合式方法既能提供區塊鏈的可驗證性,又能兼顧傳統或去中心化儲存系統的可擴展性。
不妨將其視為一份不動產產權證。產權證本身(一份小巧但至關重要的所有權記錄)會登記在縣書記官辦公室。但實際的房屋、藍圖、檢驗報告和照片等資料,全都存放在其他地方。產權證只是指向該不動產。區塊鏈的運作方式與此相同:它儲存關鍵的證明和指向資訊,而較大的資料集則存放在鏈外。

什麼算作鏈上數據
鏈上資料包含所有永久記錄於區塊鏈狀態或交易歷史中的內容。這涵蓋交易記錄(發送者、接收者、金額、時間戳記)、智慧合約程式碼與狀態變數(代幣餘額、所有權記錄、治理投票)、智慧合約發出的事件日誌,以及包含時間戳記和驗證者資訊等區塊元資料。
當使用者在去中心化交易所進行代幣兌換時,整個交易(包括交易金額、涉及的地址以及隨之產生的狀態變更)都會被記錄在鏈上。當 NFT 被鑄造時,代幣 ID、持有者的地址以及元數據 URI 都會儲存於智慧合約的鏈上狀態中。這些資料一旦確認,即為immutable ,這意味著任何人都無法事後更改它。
鏈上數據正是賦予區塊鏈其核心價值主張的關鍵:無需信任的驗證。任何運行節點或透過 RPCendpoint 進行查詢的人,都能在不依賴第三方的情況下,獨立驗證任何一項鏈上數據。這是網路的唯一可信來源。

什麼算作鏈下資料
鏈下資料是指任何存在於區塊鏈之外,但被鏈上活動引用或與之相關的資料。 這包括儲存於IPFS 或集中式伺服器上的 NFT 圖片與元資料檔案、去中心化應用程式(dapps)所使用的龐大資料集(如使用者檔案、訂單歷史紀錄、分析數據)、將現實世界資訊(如價格、天氣、體育賽事比分)導入區塊鏈的預言機資料源、在第二層(Layer 2)交易資料被批次處理並於第一層(Layer 1)結算前的相關資料,以及與智慧合約互動的應用程式前端與 API。
最常見的模式是在鏈上儲存一個內容雜湊值或 URI,用以指向鏈下資料。例如,大多數 NFT 智慧合約都會儲存一個 tokenURI,該 URI 指向託管於IPFS 或某個網路伺服器上的 JSON 元資料檔案。該 JSON 檔案包含圖片網址、描述及屬性。區塊鏈知道這個指標,而鏈下系統則儲存實際資料。
像 Chainlink 這樣的預言機,是鏈上與鏈下世界之間至關重要的橋樑。智慧合約無法原生存取外部資料,既無法查詢股價、驗證氣象事件,也無法確認現實世界的貨物運送狀況。預言機會擷取這些鏈下資料,並以可驗證的方式將其傳送至鏈上,從而使智慧合約能夠對現實世界的事件做出反應。
權衡取捨
關於應將哪些資料儲存於鏈上或鏈下,最終取決於成本、速度、永久性及信任需求。鏈上儲存雖然成本高昂,但具有永久性且無需信任。 鏈下儲存雖然成本低廉且速度快,但會產生對外部系統的依賴。如果某個 NFT 的圖片儲存於集中式伺服器上,而該伺服器發生故障,該 NFT 雖然仍存在於鏈上,但其所代表的藝術作品將無法被存取。若圖片存放於IPFS 且無人進行固定,同樣的情況也可能發生。
像IPFS 和 Arweave 這樣的去中心化儲存協定,旨在透過將檔案分散儲存於節點網路中,而非依賴單一伺服器,來解決這個問題。IPFS 採用內容導向儲存(CAS)機制,這意味著檔案是透過其加密雜湊值來引用,而非伺服器位置。只要網路中至少有一個節點將檔案固定(pin)住,該檔案便仍可被存取。Arweave 更進一步,透過一次性費用模式來提供激勵,以促進永久儲存。
對於開發生產環境應用程式的開發者而言,其架構通常包含將所有與財務相關的關鍵狀態(如餘額、所有權、授權)保留在鏈上;將較大的資產儲存於去中心化儲存平台(如IPFS );為提升效能,將頻繁存取的資料快取於鏈下資料庫中;並利用索引器與資料管道,使鏈上資料可供查詢。

鏈上資料與鏈下資料有何區別?
鏈上與鏈下數據在儲存位置及所具備的保障方面有所不同。鏈上數據會寫入區塊鏈的帳本中,並由每個節點進行驗證;而鏈下數據則存放在外部系統中,區塊鏈僅會參考這些數據。下表針對最重要的屬性對兩者進行了比較。
屬性 | 鏈上數據 | 鏈外資料 |
|---|---|---|
地點 | 儲存於區塊及合約狀態中 | 伺服器、IPFS 或資料庫 |
成本 | 高,按每位元組的天然氣支付 | 低廉、標準的儲存定價 |
速度 | 受限於區塊時間 | 快速、near 即時讀寫 |
何時該將資料儲存於鏈上,何時又該儲存於鏈下?
經驗法則很簡單:凡是必須具備「無需信任」、「最終性」及「可公開驗證」特性的內容,都應保留在鏈上;其餘內容則移至鏈下,以節省成本並提升速度。下表將常見的資料類型與通常最適合的儲存層進行對應。
資料類型 | 推薦地點 | 為什麼 |
|---|---|---|
代幣餘額與持有權 | 鏈上 | 必須具備無需信任且結果最終確定之特性 |
智慧合約邏輯 | 鏈上 | 執行過程必須能夠被驗證 |
NFT 媒體與元資料 | Offchain (IPFS) | 體積過大且儲存成本過高,無法儲存在鏈上 |
執行這些規則的邏輯存在於智慧合約中,而鏈下部分通常仰賴區塊鏈索引,將原始的鏈上事件轉化為可快速搜尋的記錄。若您正在考慮如何在大規模環境下讀取狀態,不妨參考各團隊如何處理區塊鏈資料查詢。
第二層(Layer 2)和 Rollup 交易是在鏈上還是鏈下進行的?
第二層交易最初在鏈外進行,待結算後才轉為鏈上交易。第二層區塊鏈為提升速度,會在獨立的層級上執行交易;隨後,Rollup會將其中許多交易進行批次處理,並將壓縮後的資料連同證明一併回傳至第一層。因此,交易執行雖在鏈外進行,但最終資料與安全性仍以鏈上為依據。兩種主要設計——樂觀 Rollup 與 ZK Rollup——的差異在於,它們證明批次處理的鏈外工作是否有效的機制不同。
預言機是如何將鏈下資料與區塊鏈連結起來的?
智慧合約無法自行連上網際網路,因此必須仰賴預言機將鏈外資訊帶入鏈上。 預言機網路會擷取資產價格或事件結果等外部資料,就其數值達成共識,並將其寫入合約中,供其他合約讀取。正是透過這種方式,DeFi 協議才能對市場價格作出反應,保險合約也能對現實世界中的事件做出回應,同時確保最終用於執行的數值始終保留在鏈上且可驗證。
常見問題
鏈下資料安全嗎?
確實有可能,但其安全性保障機制有所不同。鏈下資料的安全性取決於其儲存位置,因此集中式伺服器會形成單點故障;而像IPFS 或 Arweave 這樣的內容導向網路,則會將資料副本分散儲存於多個節點。將鏈下資料的加密雜湊值儲存於鏈上,可讓任何人驗證鏈下有效載荷是否曾遭篡改。
如果 NFT 的鏈下圖片無法存取,該 NFT 會如何?
該代幣本身仍存在於鏈上,但如果主機消失且無人將檔案固定,它所指向的藝術作品便可能無法存取。這就是為什麼嚴肅的專案會將 NFT 媒體儲存於IPFS 或 Arweave 上,並將內容雜湊值保留在鏈上,而非使用易失性的網路網址。
智慧合約能否直接讀取鏈外資料?
不。智慧合約具有確定性,且與外部世界隔離,因此無法進行網路呼叫。它們必須仰賴預言機,將鏈下資料以可驗證的形式傳送至鏈上,才能加以利用。
IPFS 是鏈上還是鏈下?
IPFS 屬於鏈下(offchain)。這是一個去中心化的儲存網路,用於存放區塊鏈外的檔案,而區塊鏈通常僅儲存指向這些檔案的IPFS 內容雜湊值。
該如何存取歷史鏈上資料?
從任何節點讀取最新狀態都很簡單,但若要取得完整的歷史紀錄,通常需要存檔節點或資料補全管道。請參閱「存取歷史區塊鏈資料」一文,了解常見的方法及其權衡取捨。
Quicknode 的定位為何
若要同時處理鏈上與鏈下資料,必須具備可靠的基础設施。Quicknode 的Core API可讓您透過低延遲的 RPC 介面存取 80 多條區塊鏈,以讀取和寫入鏈上資料。Quicknode Streams 讓您能夠擷取即時區塊鏈事件,並將其路由至webhooks 、PostgreSQL 資料庫或 S3 儲存桶等鏈下目的地,從而輕鬆建構能串聯鏈上與鏈下世界的資料管道。至於去中心化儲存方面,Quicknode 的 IPFS 固定服務與專用閘道,讓您無需自行管理IPFS 節點,即可儲存和檢索鏈下內容。
延伸閱讀
如何在Ethereum 上使用IPFS 儲存資料-Quicknode 指南
IPFS 閘道與固定-Quicknode
Streams 入門指南 - Quicknode 文件
Quicknode 產品簡介