
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-hant/n/281247.html
微信掃一掃
支付寶掃一掃