什麼是點對點 (P2P)?
在電腦科學領域,點對點網絡由一組可以儲存、共享文件的設備組成。每一個參與者(節點)都相當於一個對等的個體。也就是說,所有的節點都擁有同樣的權利並執行相同的任務。
在金融科技領域,P2P通常指代的是通過分散式網絡進行數字貨幣或數字資產交易。一個P2P平台允許買賣雙方在沒有中間商的情況下直接進行交易。有些網站也可以為借貸雙方提供P2P的交易環境。
P2P的架構適用於各種場景,但它真正盛行是在上世紀九十年代,當第一個文件共享程序誕生時。現今,點對點網絡已經成為大多數數字貨幣的核心,佔區塊鏈行業的一大部分。然而,它也被用於其他各種分散式的電腦程式中,包括:網絡搜索引擎、串流媒體平台、網上市場,以及星際文件系統(IPFS)網絡協議。
P2P的工作原理
本質上,一個P2P系統是靠一個分散式網絡中的用戶所維持的。通常來說,他們沒有中央系統管理員或伺服器,因為每一個節點都擁有一個文件副本——對於其他節點來說就相當於一個用戶和一個伺服器。因此,每一個節點都能從其他節點那裡下載文件或者給他們上傳文件。而傳統伺服器系統的客戶端設備需要從中央伺服器中下載文件,這就是P2P網絡與其他傳統服務系統的區別。
在P2P網絡中,互聯設備共享的文件儲存在他們的硬碟當中。並使用軟體應用程式來傳遞共享的數據,用戶也可以在其他設備當中找到並下載文件。如果一個用戶下載了一個指定的文件,他就能充當該文件源。
換言之,當一個節點充當了一個用戶,那他就要從其他節點那裡下載文件。但如果他是作為伺服器工作,那其他節點就可以在他那裡下載文件。實際上,這兩種功能可以同時進行(例如,下載A文件以及上傳B文件)。
由於每一個節點都能儲存、傳輸和接收文件,並且隨著P2P網絡的用戶群逐漸壯大,它也變得更加快速以及高效。分散式的結構也讓P2P系統更能抵抗網絡攻擊。與傳統模式不同的是,P2P網絡沒有單個故障點。
根據其結構,我們可以將P2P系統歸類,其中主要的三種類型是:非結構對等網絡、結構化對等網絡以及混合對等網絡。
非結構化P2P網絡
非結構對等網絡並不會展現節點的具體架構。參與者之間可以隨意交流。這些系統都是耐高頻活動的,也就是說幾個節點頻繁地進出該網絡也不會對系統造成任何影響。
雖然非結構對等網絡比較容易建立,但它卻需要更強大的中央處理器和記憶體,因為搜索查詢會發送給最多的對等點。特別是如果一小部分的節點能提供所需要的內容,大量的搜索便會湧入到網絡中。
結構化對等網絡
不同於非結構對等網絡,結構化對等網絡展現了一個組織架構,它可以讓節點有效地搜索文件,即使該文件的內容沒有被廣泛使用。大多數情況下,搜索是通過使用哈希函數來幫助數據庫查找。
相對來說,結構化對等網絡會更加高效,因其更能展現高層次的中央集權,並且需要用到更多的啟動資金和維護費用。除此之外,結構化對等網絡比較不耐受高頻活動。
混合對等網絡
混合對等網絡結合了傳統的主從式架構以及點對點架構的某些特徵。例如,它可能會建立一個中心伺服器來加速各點之間的結合。
不同於其他兩種模式,混合對等網絡傾向於呈現改良後的總體性能。它結合了各個方式的優點,同時達到了高效性和去中心化。
分散式 VS 去中心化
雖然點對點結構都是分散式的,但是其去中心化的程度卻是不相同的。因此,並不是所有的點對點網絡都是去中心化的。
事實上,很多系統都需要一個中央部門來指導網絡活動,或多或少地使其中心化。例如,一些點對點文件分享系統可以讓用戶從其他用戶那裡搜索並下載文件,但是他們卻不能參與像是一些管理搜索查詢的流程。
此外,某些被少量的用戶所管控的小型網絡也可以說是高度中心化的,儘管它可能沒有中性化的基礎設施。
點對點在區塊鏈中的作用
在比特幣誕生的初期,中本聰(Satoshi Nakamoto)將其定義為一個“點對點的電子現金系統”。比特幣以一種電子現金的形式出現在大眾視野。通過點對點網絡,它能夠在兩個用戶之間相互轉移,而這需要用到分散式賬本,即:區塊鏈。
在區塊鏈中,點對點的架構可以讓比特幣以及其他數字貨幣在不需要中間商和任何中央伺服器的情況下,在全世界範圍內進行相互轉移。如果任意用戶想要參與到驗證區塊的程序當中,都可以建立一個比特幣節點。
因此,在比特幣網絡中沒有任何銀行步驟或者交易記錄。取而代之的是,區塊鏈作為一個電子賬本,公開地記錄了所有的交易活動。基本上,每一個節點都擁有一個區塊鏈副本,並將其與其他節點進行對比,來保證數據的正確性。比特幣網絡能快速地清除各種錯誤和惡意的活動。
節點在區塊鏈中可以扮演各種不同的角色。例如,全節點通過共識規則來驗證交易,從而保障了網絡的安全性。
每一個全節點維持了一個完整的、升級的區塊鏈副本——讓這些區塊鏈副本可以共同來驗證分散式賬本的真實狀況。需要注意的是,並不是所有的驗證節點都是礦工。
優勢
區塊鏈的點對點架構有許多優點。更重要的是,相較於傳統的主從式架構,點對點網絡有更高的保密性。大部分節點幾乎都能抵抗損害了許多系統的“拒絕服務(DoS)”攻擊。
同樣地,由於數據被添加到區塊鏈中需要大部分節點的一致同意,所以攻擊者幾乎不可能改變數據。尤其是在比特幣這樣的大型網絡中。然而相對較小的區塊鏈則容易受到攻擊,因為一個個人或組織往往會控制大量的節點(這也就是51%攻擊)。
因此,在多數節點一致同意的前提下,分散式點對點網絡使區塊鏈更能抵抗惡意的網絡攻擊。點對點模式是比特幣網絡能夠實現“拜占庭容錯”的主要原因。
除了安全性之外,點對點架構讓數字貨幣區塊鏈避免了中央機構的審查。不像一般的銀行賬號,數字貨幣錢包不能夠被政府凍結或消耗。個人的支付處理和內容平台也能避免相應的審查工作。一些網上的商家為了避免他們的支付被第三方干預,都採用了數字貨幣的支付方式。
局限性
儘管它有以上這些優點,但在區塊鏈中使用P2P網絡也有一定的局限性。
由於分散式賬本必須在每一個節點上進行升級,因此在區塊鏈中增加交易便需要龐大的電腦算力。雖然這提高了安全性,但也大大降低了效率,並且也成為了區塊鏈網絡擴展和推廣的主要障礙之一。但是,密碼學家和區塊鏈開發人員正在研究相關的替代方案,用於解決擴展性的相關問題。幾個明顯的案例包括“閃電網絡”、“以太坊等離子體”和“Mimblewimble協議”。
另一個潛在的限制是關於硬分叉期間可能出現的攻擊。由於大多數區塊鏈是去中心化的和開源的,因此節點可以自由地複製和修改代碼並從主鏈中分離出來,通過這種方式形成新的並行網絡。硬分叉是完全正常的,並不會形成威脅。但是如果沒有適當地採用某些安全措施,這兩條鏈都可能會受到重放攻擊的影響。
此外,P2P網絡的分散式特性使它們相對難以控制和監管。該問題不僅僅是在區塊鏈中,某些P2P應用程序和公司也同樣涉及到侵權等非法活動。
總結
點對點架構可以被開發運用到許多不同的方面,它在區塊鏈中的核心地位也促成了數字貨幣的誕生。通過在一個大的節點網絡中分發交易賬本,點對點架構提供了安全性、去中心化和防範監管等優勢。
而除了在區塊鏈技術中的優勢之外,P2P系統還可以應用於其他分散式計算應用領域,範圍包括文件共享網絡到能源交易平台等。