
1 P2P網路架構
比特幣採用了基於國際互聯網(Internet)的P2P(peer-to-peer)網路架構。P2P是指位於同一網路中的每台計算機都彼此對等,各個節點共同提供網路服務,不存在任何「特殊」節點。每個網路節點與「扁平(flat)」的拓撲結構相互連通。在P2P網路中不存在任何服務端(server)、中央化的服務、以及層級結構。P2P網路的節點之間交互運作、協同處理:每個節點在對外提供服務的同時也使用網路中其他節點所提供的服務。P2P網路也因此具有可靠性、去中心化,以及開放性。早期的國際互聯網就是P2P網路架構的一個典型用例:IP網路中的各個節點完全平等。當今的互聯網架構具有分層架構,但是IP協議仍然保留了扁平拓撲的結構。在比特幣之外,規模最大也最成功的P2P技術應用是在文件分享領域:Napster是該領域的先鋒,BitTorrent是其架構的最新演變。
比特幣所採用的P2P網路架構不僅僅是選擇拓撲結構這樣簡單。比特幣被設計為一種點對點的數字現金系統,它的網路架構既是這種核心特性的反映,也是該特性的基石。去中心化控制是設計時的核心原則,它只能通過維持一種扁平化、去中心化的P2P共識網路來實現。
「比特幣網路」是按照比特幣P2P協議運行的一系列節點的集合。除了比特幣P2P協議之外,比特幣網路中也包含其他協議。例如Stratum協議就被應用於挖礦、以及輕量級或移動端比特幣錢包之中。網關(gateway)路由伺服器提供這些協議,使用比特幣P2P協議接入比特幣網路,並把網路拓展到運行其他協議的各個節點。例如,Stratum伺服器通過Stratum協議將所有的Stratum挖礦節點連接至比特幣主網路、並將Stratum協議橋接(bridge)至比特幣P2P協議之上。我們使用「擴展比特幣網路(extended bitcoin network)」指代所有包含比特幣P2P協議、礦池挖礦協議、Stratum協議以及其他連接比特幣系統組件相關協議的整體網路結構。
2 節點類型及分工
儘管比特幣P2P網路中的各個節點相互對等,但是根據所提供的功能不同,各節點可能具有不同的分工。每個比特幣節點都是路由、區塊鏈資料庫、挖礦、錢包服務的功能集合。一個全節點(full node)包括如圖6-1所示的四個功能:

每個節點都參與全網路的路由功能,同時也可能包含其他功能。每個節點都參與驗證並傳播交易及區塊信息,發現並維持與對等節點的連接。在圖6-1所示的全節點用例中,名為「網路路由節點」的橙色圓圈即表示該路由功能。
一些節點保有一份完整的、最新的區塊鏈拷貝,這樣的節點被稱為「全節點」。全節點能夠獨立自主地校驗所有交易,而不需藉由任何外部參照。另外還有一些節點只保留了區塊鏈的一部分,它們通過一種名為「簡易支付驗證(SPV)」的方式來完成交易驗證。這樣的節點被稱為「SPV節點」,又叫「輕量級節點」。在如上圖所示的全節點用例中,名為完整區塊鏈的藍色圓圈即表示了全節點區塊鏈資料庫功能。在圖6-3中,SPV節點沒有此藍色圓圈,以示它們沒有區塊鏈的完整拷貝。
挖礦節點通過運行在特殊硬體設備上的工作量證明(proof-of-work)演算法,以相互競爭的方式創建新的區塊。一些挖礦節點同時也是全節點,保有區塊鏈的完整拷貝;還有一些參與礦池挖礦的節點是輕量級節點,它們必須依賴礦池伺服器維護的全節點進行工作。在全節點用例中,挖礦功能如圖中名為「礦工」的黑色圓圈所示。
用戶錢包也可以作為全節點的一部分,這在桌面比特幣客戶端中比較常見。當前,越來越多的用戶錢包都是SPV節點,尤其是運行於諸如智能手機等資源受限設備上的比特幣錢包應用;而這正變得越來越普遍。在圖6-1中,名為「錢包」的綠色圓圈代表錢包功能。
在比特幣P2P協議中,除了這些主要的節點類型之外,還有一些伺服器及節點也在運行著其他協議,例如特殊礦池挖礦協議、輕量級客戶端訪問協議等。
圖2描述了擴展比特幣網路中最為常見的節點類型。


原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/281247.html
微信掃一掃
支付寶掃一掃