【比特幣百問百答】比特幣節點是什麼?

買賣虛擬貨幣

作為整個生態鏈的一環,比特幣的主心骨網路節點 (nodes)一直擔任著交易確認和廣播的工作。

網路節點有很多種,但也有不同的分類方法。按照最常見的一種分法,網路節點有三種:

  • 完整節點 (Full node);

  • 完整節點的變體,叫做修剪節點 (Pruning node);

  • 不是完整節點,通常被稱作 SPV 節點,也稱輕量節點 (Lightweight node)

這種分類方式基於兩點差異:一是這個節點是否下載了最新最完整的比特幣區塊鏈;第二個區別,也是更為重要的一點,是該節點能否獨立驗證比特幣的轉賬交易,即能否獨立實現作為一個節點的基本功能。

在細說這三種節點前,有一個前提需要明確,那就是任何一種比特幣節點,都需要遵守比特幣的共識規則 (Consensus rules)。分散共識機制 (Distributed Consensus) 是比特幣的根基之一,是所有節點必須遵守的,共識規則的細則有不少。

接下來我們詳細介紹一下這三種節點。

完整節點

顧名思義,完整的比特幣節點就是那些下全了最新區塊鏈的計算裝置。

完整節點是比特幣網路的主心骨。因為可以獨立完成交易確認和廣播,它是支撐著比特幣轉賬交易的核心力量。

如果沒有人執行完整節點了,比特幣網路便會瞬間崩塌。使用完整節點的主要包括兩類人,一是獨立挖礦的礦工,二是那些使用預設設定執行比特幣軟體 (Bitcoin core) 的使用者 (比特幣軟體同時也是一個錢包,因此執行比特幣軟體的個人使用者裡,有不少也會用它儲存比特幣)。

獨立挖礦的礦工需要完整的區塊鏈賬本,以便隨時驗證新交易。比特幣軟體預設會自行同步當前完整的區塊鏈。

修剪節點

隨著比特幣交易不斷增加,這個數字會越來越大。面對這樣的情況,從 0.12.0 版本開始,Bitcoin core 軟體增加了一個 “修剪 (Pruning)” 功能,用來減少本地硬碟使用量。

前面提到的第二種修剪節點,就是啟用了 “修剪” 功能的完整節點。修剪節點同樣可以獨立完成比特幣轉賬的確認,但是它並沒把整個區塊鏈都下載到本地。儘管沒有圖形化的開啟/關閉按鈕,啟用修剪功能也不麻煩:在第一次啟動 Bitcoin core 軟體時,軟體會要求使用者選擇存放區塊鏈的資料夾位置 (可以理解為迅雷存放下載檔案的位置)。使用者只需在這個資料夾的根目錄下,自行建立一個名為 “bitcoin.conf” 的設定文件,並且寫入 prune=N 這行程式碼即可。其中,N 便是本地儲存的區塊鏈大小,N=0 意味著不設限制,完整下載;若需設限,最小可用值為 550 。N 的單位是 MB。

如果打算啟用 “修剪” 功能,或者因為其他原因,需要修改 bitcoin.conf 文件,推薦大家使用這個 Github 上的開源工具進行相應操作。這個工具設計了圖形化設定選項,更改某項後,會自動生成對應的程式碼,避免因為程式碼錯誤而造成不必要的麻煩。

SPV 節點

第三種節點叫做 SPV 節點,或稱輕量節點。如果你在自己的手機上安裝了比特幣錢包 APP,你的手機便成為一個 SPV 節點。在這些移動計算裝置上,由於容量限制,以及對於便攜性的高要求,人們通常不會下載區塊鏈到本地。因此,錢包的運營者會透過 SPV (Simple payment verification) 協議,將每個使用者錢包中的轉賬與網上的完整區塊鏈進行核對與確認。

比特幣開發者通常會建議使用者使用完整節點或者修剪節點作為比特幣錢包,即使不把它們當做錢包來用,也不妨執行一個完整節點。從整個比特幣生態的角度來看,執行完整節點是對比特幣網路很好的支援,完整節點越多,比特幣網路就越安全。從個人使用的角度來看,使用完整節點作為錢包,可以避開信任問題:無需將自己的比特幣託付給第三方錢包軟體,自己的軟體就可以獨立驗證和確認交易。可以這樣說,執行完整節點,是比特幣創立之初所推崇的去中心化原則的體現。


免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;