什麼是區塊鏈節點?
區塊鏈節點就是連接到區塊鏈網路、接收和處理資料的一份執行中軟體。技術上,它是用戶端程式的一次實際執行,可以位於家用電腦、伺服器或雲端主機上。節點不是某一種專用硬體,也不一定代表一個獨立的人或機構:一台電腦可以執行多個節點,同一營運方也可以控制多台電腦。
節點的核心作用是按照本機軟體實作的協議規則處理網路資料。它可能接收交易和區塊、檢查資料是否符合協議、保存帳本或目前狀態、把有效資料轉發給其他節點,也可能向錢包和應用提供查詢介面。不同節點承擔的任務不完全相同,因此不能把「節點」直接等同於礦工、驗證者或保存全部歷史資料的伺服器。
節點如何參與一筆交易
一筆交易從錢包發出到被網路接受,通常會經過以下過程:
- 錢包根據使用者操作建立交易,並使用相應的授權方式簽署。
- 錢包把交易提交給自己連接的區塊鏈節點。這個節點先檢查格式、簽章、餘額、交易序號或花費條件等適用規則。
- 交易通過檢查後,節點可以把它轉發給其他節點。其他節點仍會自行驗證,而不是因為發送方已經檢查過就直接相信。
- 具有出塊職責的參與者可以從待處理交易中選擇內容,組成候選區塊。
- 其他驗證節點收到區塊後,再檢查區塊和其中的交易,並按照共識與分叉選擇規則更新自己保存的帳本狀態。
因此,某個節點收到或轉發交易,不等於交易已經確認;一個出塊節點把交易放入候選區塊,也不等於所有節點都會接受該區塊。每個驗證節點根據自己執行的規則得出結果,網路再透過共識機制處理有效候選之間的選擇。
節點的四類主要工作
與其他節點連接和同步
節點會尋找並連接同一網路中的其他節點,從它們那裡取得新區塊、交易或狀態資訊。剛啟動的節點還需要同步到網路目前進度。同步方式決定它從哪裡開始驗證、下載多少歷史資料以及保留哪些內容;具體做法因網路和用戶端軟體而異。
獨立檢查網路資料
驗證節點會在本機執行協議規則。例如,它可以檢查交易是否得到正確授權、同一資產是否被重複花費、區塊結構是否有效,以及區塊引用的前序歷史是否符合分叉選擇規則。一個節點拒絕無效資料,並不需要先徵得發送方同意。
這種獨立檢查只能證明資料符合協議,不能證明鏈下陳述真實。如果交易附帶的現實世界資訊本來就是錯誤的,節點通常無法僅靠鏈上規則識別。
保存帳本和目前狀態
節點可能保存區塊、交易、帳戶餘額、未花費交易輸出或智能合約狀態。保存範圍取決於網路、節點模式和用途。有些節點保留目前驗證所需的資料並刪除較舊內容;有些節點則額外保存歷史狀態,方便查詢過去某個區塊時的帳戶或合約情況。
保存更多資料不一定意味著擁有更多共識權。歸檔服務可以回答更多歷史查詢,但網路是否接受一個區塊,仍由協議規則和相應共識參與決定。
向錢包和應用提供介面
錢包、區塊瀏覽器和去中心化應用通常需要向節點查詢餘額、交易狀態或區塊資料,也會透過節點提交已簽署交易。提供這種遠端呼叫介面的節點常被稱為 RPC 節點,其中 RPC 是「遠端程序呼叫」的縮寫,意思是其他程式可以透過約定請求讓節點執行查詢或提交操作。
使用第三方 RPC 服務不等於自己執行節點。此時,服務方可能看到請求來源和查詢內容,也可能回傳延遲、缺失或錯誤的資料。錢包是否自行驗證回傳結果,取決於它採用的用戶端和證明機制。
常見節點類型的區別
「完整」「輕量」「歸檔」「驗證者」和「RPC」描述的是不同面向,不是一條從低到高的固定等級。一個節點可以同時屬於其中多類。
| 名稱 | 主要特點 | 不代表什麼 |
|---|---|---|
| 完整節點 | 按網路規則獨立驗證其接收的區塊和交易,並維護繼續驗證所需的帳本或狀態 | 不一定永久保存從創世區塊開始的每一份歷史狀態 |
| 輕節點或輕用戶端 | 只下載較少資料,使用區塊標頭、密碼學證明或其他機制檢查從完整節點取得的資訊 | 不等於完全不驗證,也不保證與完整節點具有相同的資料可用性 |
| 歸檔節點 | 在完整驗證之外保留更多歷史區塊或歷史狀態,便於回答過去時點的查詢 | 不自動獲得更多投票權,也不一定負責出塊 |
| 出塊節點 | 執行挖礦、驗證者或其他出塊元件,能夠按協議參與區塊提議或確認 | 不是所有執行節點的人都能或都需要承擔該角色 |
| RPC 節點 | 向錢包、應用或開發者提供讀取資料和提交交易的介面 | 「提供介面」本身不能說明它是否完整驗證或保存全部歷史 |
不同區塊鏈對這些名稱的定義可能不同。例如,Bitcoin 的節點說明把能夠下載並驗證區塊、再向其他節點傳播資料的節點稱為完整節點,同時區分保留完整歷史的歸檔節點和刪除舊區塊的修剪節點。Ethereum 的節點說明則區分完整、歸檔和輕節點,並由執行用戶端與共識用戶端共同組成目前的 Ethereum 節點。比較節點時,應先確認具體網路和軟體版本,不能只看名稱。
節點、用戶端、礦工與驗證者
用戶端是實作區塊鏈協議的軟體,節點是用戶端軟體正在執行並連接網路的實例。就像瀏覽器是一類軟體,而某台電腦上正在執行的瀏覽器是一個實例,兩者相關但不是同一個概念。
礦工和驗證者承擔特定的共識職責。工作量證明網路中的礦工嘗試產生符合要求的區塊;權益證明網路中的驗證者可能提議區塊或對區塊投票。普通完整節點即使不出塊,也可以驗證區塊並拒絕不符合規則的資料。以 Ethereum 為例,驗證者軟體是節點之外可加入的共識元件,並非每個同步網路的節點都會執行驗證者。
錢包則負責幫助使用者管理授權資訊、建立交易並與節點互動。錢包可以連接自有節點,也可以使用第三方節點;錢包介面、節點和共識參與者分別承擔不同工作。
自己執行節點的作用與成本
自己執行驗證節點可以減少對第三方資料介面的依賴。營運者能夠按本機規則檢查區塊和交易,直接查詢本機資料,並避免把每次地址查詢都交給同一個外部 RPC 服務。節點如果接受入站連線或回應資料請求,也可以為其他參與者提供網路資料。
代價是需要儲存空間、網路頻寬、運算資源和持續維護。營運者要選擇正確網路、保持軟體更新、監控同步狀態並保護管理介面。軟體缺陷、錯誤設定、磁碟損壞或與誠實節點失去連線,仍可能讓本機結果出錯或落後。
執行節點也不會自動獲得區塊獎勵。是否能夠提議區塊、投票或獲得協議獎勵,取決於網路的共識機制、資格條件和是否執行相應元件。節點數量增加有助於減少對少數營運方的依賴,但不會自動提高區塊容量或交易速度;這些能力還受到協議和網路設計限制。
節點能夠驗證什麼
節點能夠驗證的是協議規定的數位條件,例如簽章、餘額、交易格式和區塊連接關係。它不能僅憑自身判斷私密金鑰(簡稱私鑰)是否被盜、使用者是否理解交易、智能合約是否符合使用者意圖,或外部資料來源是否報告了真實事件。
節點的判斷還取決於它執行的規則版本和看到的網路資料。協議升級、暫時分叉、軟體缺陷或網路隔離可能讓不同節點暫時得到不同結果。因此,「節點驗證通過」應理解為「該節點按照目前規則和所見資料接受」,而不是脫離前提的絕對正確證明。
常見問題
每個錢包都是一個區塊鏈節點嗎?
不是。錢包可以內建節點或輕用戶端,也可以只連接第三方 RPC 節點。判斷時要看錢包是否執行協議用戶端、驗證哪些資料,以及依賴哪些外部服務。
完整節點一定保存全部歷史資料嗎?
不一定。「完整」通常強調能夠獨立執行完整驗證規則,不必然表示永久保留所有歷史狀態。部分網路允許完整節點在驗證後修剪舊資料;需要查詢任意歷史狀態時,可能要使用歸檔節點。
節點越多,交易速度就越快嗎?
不一定。更多獨立節點可以提升網路的備援和抗單點故障能力,但每個節點都要接收和驗證資料。交易吞吐量與確認速度主要由區塊容量、出塊方式、共識和網路傳播等規則決定。
執行節點就能挖礦或獲得質押獎勵嗎?
不能一概而論。普通節點可以只同步、驗證和傳播資料。挖礦或驗證者職責通常還需要專門軟體、硬體、質押或其他協議條件。
網路上顯示的節點數量準確嗎?
通常只能作為估算。節點可能位於路由器、防火牆或私有網路之後,不接受公開連線;同一營運方也可能執行多個節點。網路爬蟲只能看到它能夠發現和連接的部分節點。
相關詞條
繼續了解區塊鏈、區塊、密碼學雜湊和加密貨幣錢包,或返回加密貨幣術語表。
參考來源
- NISTIR 8202:區塊鏈技術概述——節點、完整節點、輕量節點及區塊鏈網路的通用術語。
- Bitcoin Developer Guide:點對點網路——完整節點、歸檔節點、修剪節點及交易和區塊傳播。
- Bitcoin Developer Guide:執行模式——完整驗證與簡化支付驗證用戶端的區別。
- Ethereum.org:節點與用戶端——用戶端、完整節點、歸檔節點、輕節點和同步方式。
- Ethereum.org:節點架構——執行用戶端、共識用戶端、驗證者和 RPC 介面的分工。
- Ethereum.org:輕用戶端——輕節點的資料取得、驗證範圍和外部依賴。




