區(qū)塊鏈新協(xié)議Marconi介紹
區(qū)塊鏈技術往往被人們視為中心化系統(tǒng)痼疾的解決之道。在全球范圍內(nèi),價值3500億美元的區(qū)塊鏈生態(tài)系統(tǒng)包含超過1600個項目,這些項目積極開發(fā)去中心化計算、存儲和一系列應用,以實現(xiàn)去中心化的未來。但是,這些項目仍然建立在與以往相同的底層網(wǎng)絡基礎設施之上,即由以太網(wǎng)連接在一起的交換機和路由器構成的基礎設施,而由于存在三大根本性的問題,這樣的基礎頗為薄弱。
第一個問題在于,當今的網(wǎng)絡基礎設施并不安全。原因就在于它依托于以太網(wǎng),在過去 30 年間,以太網(wǎng)僅在帶寬方面有所改進,其他方面只是原地踏步。以太網(wǎng)誕生于一個不關心隱私和安全的時代,當時人們的主要關注點在于連接能力,因此在設計中并未內(nèi)置加密機制。這導致原始網(wǎng)絡數(shù)據(jù)包暴露在外,允許互聯(lián)網(wǎng)服務提供商和政府機構輕松窺伺和監(jiān)視用戶活動。遺憾的是,常見的網(wǎng)絡安全協(xié)議在協(xié)議棧較高的幾層中發(fā)揮作用(參見圖 1,注意 TLS 和 SSL 均在 OSI 第 4 層及以上工作),在協(xié)議棧的第 2 層,以太網(wǎng)仍然不安全。因此這些安全協(xié)議無法保護整個網(wǎng)絡數(shù)據(jù)包,致使網(wǎng)絡流量易受流量模式分析和數(shù)據(jù)包注入等攻擊的影響。
第二個問題在于,核心網(wǎng)絡基礎設施不夠靈活且難以管理。構成網(wǎng)絡的交換機、路由器和網(wǎng)橋均屬于硬件式,購買、配置和維護成本高昂。如果要擴增網(wǎng)絡容量,或者添加入侵檢測與防范系統(tǒng)或負載平衡等新功能,往往就需要安裝新的網(wǎng)絡設備。即使升級現(xiàn)有設備也要花費相當大的開銷,因為更新可能需要更改固件,在某些情況下,這種固件更改必須在現(xiàn)場完成。
最后一個問題在于,當前的網(wǎng)絡基礎設施是集中控制的。在任意給定區(qū)域,僅有少數(shù)實體(通常僅有一兩家互聯(lián)網(wǎng)服務提供商)作為所有互聯(lián)網(wǎng)流量的網(wǎng)關。如果互聯(lián)網(wǎng)服務提供商發(fā)生光纖斷裂、設備故障,或者出于維護的目的而故意中斷服務,所有用戶都將無法正常訪問互聯(lián)網(wǎng)。由于互聯(lián)網(wǎng)中斷可能導致運營停頓或生產(chǎn)力停滯,因此企業(yè)受到的打擊尤其嚴重。除此之外,對于缺乏網(wǎng)絡中立性的國家/地區(qū)來說,由于區(qū)塊鏈網(wǎng)絡已經(jīng)發(fā)展到相當?shù)囊?guī)模,這種壟斷性控制將成為問題。截至 2018 年 2 月 1 日,以太坊的區(qū)塊鏈數(shù)據(jù)目錄大小為 669 GB,年增長率高達 416%。隨著人們繼續(xù)采用區(qū)塊鏈,區(qū)塊鏈流量很可能會成為互聯(lián)網(wǎng)服務提供商的眾矢之的。遺憾的是,盡管區(qū)塊鏈生態(tài)系統(tǒng)中不斷涌現(xiàn)出以實現(xiàn)日常所用服務去中心化為目標的新項目,但我們所描述的這種集中控制的基礎設施卻是區(qū)塊鏈生態(tài)系統(tǒng)所依賴的平臺(見圖 2)。
為了應對這些挑戰(zhàn),我們擬定了Marconi 協(xié)議,該協(xié)議可增強乃至取代現(xiàn)有的網(wǎng)絡基礎設施,允許任何網(wǎng)絡充分享受去中心化的優(yōu)勢。Marconi是一種網(wǎng)絡和區(qū)塊鏈協(xié)議,其設計向下延伸覆蓋至 OSI 第 2 層,支持網(wǎng)絡數(shù)據(jù)包的智能合約。Marconi 通過以下方式解決了現(xiàn)有挑戰(zhàn):
? 采用數(shù)據(jù)包級加密保護以太網(wǎng)。
? 通過智能數(shù)據(jù)包合約和可編程分支區(qū)塊鏈增強現(xiàn)有網(wǎng)絡基礎設施,實現(xiàn)動態(tài)網(wǎng)絡調(diào)整,以及新穎的安全和網(wǎng)絡應用。
? 通過鼓勵組建網(wǎng)狀網(wǎng)絡,讓用戶設備提供交換、路由和數(shù)據(jù)包處理功能,進而實現(xiàn)網(wǎng)絡基礎設施的去中心化。
為了說明 Marconi 協(xié)議的功能,我們在此提供了兩個可基于該協(xié)議構建的示例應用。本文稍后部分將更詳盡地描述該協(xié)議的組件和體系結構,還會介紹更多用例。
第一個示例應用針對旨快捷創(chuàng)建與啟動新區(qū)塊鏈網(wǎng)絡的區(qū)塊鏈項目。這可能是一個全新的項目,也可能是一個希望遷移到自有鏈的通證 (Token) 項目。更具體的例子是去中心化的加密貨幣兌換平臺。與其他區(qū)塊鏈平臺類似,這種兌換平臺可以使用智能合約,基于 Marconi 協(xié)議而構建,但它還有一個額外的優(yōu)勢,就是由其自有的通證支持的專用區(qū)塊鏈。這是通過調(diào)用 Marconi 分支合約來創(chuàng)建可編程區(qū)塊鏈實現(xiàn)的,該區(qū)塊鏈提供更高的通證效用,并將性能與其他項目分離開來,從而提高交易吞吐量。另一個強大的優(yōu)勢是,去中心化的兌換平臺可以利用智能數(shù)據(jù)包合約,提高網(wǎng)絡的恢復能力和安全性。例如,世界上最大的加密貨幣兌換平臺的許多用戶的賬戶憑證近期失竊,而攻擊方式就是涉及到含有 Unicode 字符的 URL 的網(wǎng)絡釣魚攻擊。若能利用智能數(shù)據(jù)包合約來分析網(wǎng)絡數(shù)據(jù)包,以捕獲這些可疑的 URL,就有可能阻止此次攻擊。智能數(shù)據(jù)包合約還能促進去中心化的網(wǎng)絡管理,例如在網(wǎng)絡節(jié)點之間重新路由數(shù)據(jù)包,以實現(xiàn)更好的負載平衡。最后,通過利用 Marconi 協(xié)議的去中心化網(wǎng)絡基礎設施,去中心化的加密貨幣兌換平臺即可更好地保護自身,避免被迫關閉。
第二個示例應用針對安全現(xiàn)場網(wǎng)絡。通過使用 Marconi 協(xié)議及其所依托的技術,這些網(wǎng)絡可以在戰(zhàn)場或救災環(huán)境中快速部署,并將其通信流量歷史存儲在賬本中,以便在網(wǎng)絡退役后進行審計。在部署時,可以利用在每條數(shù)據(jù)鏈路上使用 Marconi 協(xié)議來實現(xiàn) MAC 層安全性的有線或無線硬件,動態(tài)擴展網(wǎng)絡。網(wǎng)絡也可以視需要根據(jù)不同授權進行分段,確保僅有特定的通信流量類型才能在特定網(wǎng)段中發(fā)送。通過智能數(shù)據(jù)包合約,即可實施下一代防火墻和入侵防御系統(tǒng),以防止惡意通信流量。由于具有去中心化的本質(zhì),這種網(wǎng)絡具有容錯能力,可自動重新配置,以應對意外停機的鏈路或節(jié)點。最后,可以使用機器學習技術對歷史數(shù)據(jù)(包括來自相關人員所用物聯(lián)網(wǎng)設備的傳感器數(shù)據(jù))進行事后分析,以了解網(wǎng)絡是否遭遇入侵,并相應地予以優(yōu)化,從而在未來實現(xiàn)更好的部署。
概述
利用 Marconi 協(xié)議定義的規(guī)則和提供的基元,對等節(jié)點可安全地連接和通信,從而構成和加入 Marconi 網(wǎng)絡(這是一種全局構造,相當于網(wǎng)絡的網(wǎng)絡)。本章僅對于這些概念及其最新動態(tài)進行簡單概述,這些不同的部件最終組合在一起,讓與安全、網(wǎng)絡和去中心化相關的強大應用能夠捕獲網(wǎng)絡釣魚嘗試、混淆網(wǎng)絡流量、輕松啟動新區(qū)塊鏈以及使任何網(wǎng)絡去中心化。
1.Marconi 協(xié)議
如上文所述,Marconi 協(xié)議有助于實現(xiàn)安全的網(wǎng)絡通信、靈活的網(wǎng)絡基礎設施和網(wǎng)狀網(wǎng)絡的構成。支持該協(xié)議的技術可分解為三個主要組件,在此僅作概述,后文將深入討論。
? Marconi 管道。Marconi 管道可用作在對等節(jié)點之間傳輸網(wǎng)絡流量的安全信道。該管道一直向下建立延伸覆蓋至 OSI 模型的第 2 層,提供加密、路由和處理功能。它采用有線標準,使 Marconi 協(xié)議能覆蓋現(xiàn)有互聯(lián)網(wǎng) 基礎設施。我們還有一個稱為 Marconi 鏈路的擴展,專為采用藍牙、Wi-Fi 和 U-NII無線電頻段等無線標準支持可擴展的公用和專用網(wǎng)狀網(wǎng)絡而設計。
? 智能數(shù)據(jù)包合約??梢允褂弥悄芎霞s路由和處理網(wǎng)絡數(shù)據(jù)包。此技術為智能去中心化網(wǎng)絡應用提供許多用例,例如反網(wǎng)絡釣魚和反惡意軟件防護、入侵檢測與防御系統(tǒng)以及分布式虛擬專用網(wǎng)絡。
? 分支鏈。從全局鏈分支,即可通過編程方式快速啟動新區(qū)塊鏈,其中每一個分支鏈都可以擁有自己的自定義規(guī)則,這些規(guī)則由一種稱為分支合約的特殊智能合約指定。例如,如果一個區(qū)塊鏈項目需要新建一個通證或?qū)F(xiàn)有通證遷移到某個專用鏈,可以通過調(diào)用分支鏈實現(xiàn)。我們還使用分支鏈整理網(wǎng)狀網(wǎng)絡中的節(jié)點,使它們不再強烈依賴全局鏈。這種類型的分支鏈稱為網(wǎng)狀鏈。這些組件就是支撐 Marconi 網(wǎng)絡的構建基塊。
2.Marconi 網(wǎng)絡
Marconi 網(wǎng)絡能夠在對等節(jié)點之間構成自主式網(wǎng)絡,并在全球范圍內(nèi)將它們組織為網(wǎng)絡的網(wǎng)絡(見圖 3)。對等節(jié)點可以是基礎設施服務節(jié)點、基于互聯(lián)網(wǎng)的計算設備或網(wǎng)絡最終用戶。Marconi 網(wǎng)絡合約是這些對等節(jié)點之間的協(xié)議,定義交換的數(shù)據(jù)量、交換時長、將啟用的智能數(shù)據(jù)包合約類型以及燃料價格。
個人、網(wǎng)絡運營商和互聯(lián)網(wǎng)服務提供商可通過為網(wǎng)絡提供帶寬或計算資源加入。節(jié)點定期接收稱為 marco的網(wǎng)絡通證,作為他們提供資源和處理網(wǎng)絡流量的回報。Marco 是分布式網(wǎng)絡和計算、使用網(wǎng)絡而產(chǎn)生的燃料消耗量、管理以及智能合約處理的基本計量單位。
Marconi 網(wǎng)絡可以與現(xiàn)有互聯(lián)網(wǎng)基礎設施互操作;它也自我維持,能通過形成直接對等連接促進構成無需硬件交換機、路由器和網(wǎng)橋的網(wǎng)狀網(wǎng)絡,避免使用現(xiàn)有的網(wǎng)絡基礎設施。在本質(zhì)上,Marconi 網(wǎng)絡支持且鼓勵用戶組裝并安全地交換網(wǎng)絡基礎設施資源,用戶的這些活動不受阻礙大規(guī)模建立、連接、運營和維護網(wǎng)絡基礎設施的傳統(tǒng)方法在物理、資金和監(jiān)管方面的限制。最終用戶可以通過以下兩種方式利用該網(wǎng)絡訪問互聯(lián)網(wǎng)或獲得附近的計算能力:購買 marco,或者操作某個貢獻算力的節(jié)點,通過挖礦獲取 marco。開發(fā)人員可以利用該網(wǎng)絡創(chuàng)建和部署去中心化的智能網(wǎng)絡應用,這些應用可由節(jié)點或最終用戶運行。區(qū)塊鏈項目、私立機構和企業(yè)可利用該網(wǎng)絡及其所依托的平臺管理基礎設施并開發(fā)分布式智能網(wǎng)絡和網(wǎng)絡安全服務。
設計
1.網(wǎng)絡協(xié)議
Marconi 網(wǎng)絡協(xié)議由旨在保證網(wǎng)絡對等節(jié)點安全無縫連接和協(xié)作的三個主要組件組成。它們分別是 Marconi管道、智能數(shù)據(jù)包合約以及 Marconi 鏈路。
1.1. Marconi 管道
Marconi 管道(又稱 mPipe)是我們對虛擬化數(shù)據(jù)鏈路層的實現(xiàn),為對等節(jié)點間傳輸網(wǎng)絡流量提供信道或管道。這些管道是 Marconi 網(wǎng)絡的基本構建基塊,由于一直向下建立延伸覆蓋至 OSI 模型的第 2 層(見圖 4),能夠?qū)崿F(xiàn)自定義數(shù)據(jù)包的路由及處理、通過數(shù)據(jù)包級加密來提升安全性,以及輕松發(fā)現(xiàn)在同一本機媒介上傳輸流量的相鄰對等節(jié)點等重要功能。
創(chuàng)建管道時,使用 Diffie-Hellman 交換創(chuàng)建三個共享機密(一個用于數(shù)據(jù)加密、一個用于實現(xiàn)數(shù)據(jù)完整性的校驗和、一個用作種子)即可在兩個對等節(jié)點間形成一個安全連接。每個對等節(jié)點都將該種子與截斷為某個預定義粒度(比如一分鐘)的當前時間相結合,用于獲得隨時間而變化的新種子。與基于時間的一次性密碼 (TOTP) 非常相似,新種子又被用于根據(jù)當前時間間隔(見圖 5)改變數(shù)據(jù)加密機密,幫助增強數(shù)據(jù)流抵御流量模式分析等攻擊的能力。
我們使用對稱密鑰系統(tǒng)是出于性能方面的考慮。數(shù)據(jù)包將不斷遍歷許多管道,并且正如高級加密標準 (AES)中定義的那樣,常見硬件的指令組中直接支持有用的加密操作。
由于 mPipe 在網(wǎng)絡驅(qū)動器層運行,在上述加密和解密以及數(shù)據(jù)包級處理方面,它的性能非常高。這支持幾個有趣的網(wǎng)絡功能:
? 數(shù)據(jù)包中繼。在該網(wǎng)絡內(nèi),可在退到互聯(lián)網(wǎng)或?qū)S镁W(wǎng)之前,通過多個躍點中繼數(shù)據(jù)包。與洋蔥路由相似,這可增強隱私性且有助于防窺探,因為感知最終用戶的只有網(wǎng)絡邊緣節(jié)點。
? 數(shù)據(jù)包的負載平衡。由于是在 OSI 第 2 層進行的連接,網(wǎng)絡能夠訪問最多信息,所以可以輕松進行負載平衡,甚至可以根據(jù)需要使用各種不同的策略限制網(wǎng)絡數(shù)據(jù)包以符合網(wǎng)絡需求。
? 數(shù)據(jù)包檢查。同樣,由于該網(wǎng)絡可以訪問第 2 層以上的所有 OSI 層中的數(shù)據(jù),所以它能夠根據(jù)有效負載內(nèi)容作決策。即使是在較高層加密的數(shù)據(jù),域名和標頭信息等相關元數(shù)據(jù)仍然可用。
1.2. 智能數(shù)據(jù)包合約
借助智能數(shù)據(jù)包合約,開發(fā)人員能夠?qū)W(wǎng)絡數(shù)據(jù)包運行智能合約,以執(zhí)行智能路由和數(shù)據(jù)包處理(見圖 6)。Marconi 網(wǎng)絡提供一個平臺,在此平臺上,開發(fā)人員可以使用智能數(shù)據(jù)包合約創(chuàng)建去中心化網(wǎng)絡應用。
示例應用包括軟件定義的網(wǎng)絡 (SDN)、入侵檢測與防御系統(tǒng) (IDS/IPS)、反惡意軟件和反病毒防護、內(nèi)容分發(fā)網(wǎng)絡 (CDN)、虛擬專業(yè)網(wǎng)絡 (VPN) 以及新的區(qū)塊鏈協(xié)議。
應用采用 Marconi 腳本編寫,這是一種“圖靈完備”的語言,能夠訪問網(wǎng)絡數(shù)據(jù)包,向下編譯為字節(jié)代碼。在 Marconi 網(wǎng)絡庫中,我們還提供三層 API:用于影響路由和通信流的操作的控制 API、用于檢查有效負載等操作的內(nèi)容 API 以及用于模式分析和機器學習的智能 API。編寫完成后,開發(fā)人員將應用部署到全局區(qū)塊鏈,我們將在后文探討這種區(qū)塊鏈的結構。查看表 1,了解關于控制 API 的詳細信息;查看圖 7,了解如何使用該 API。
由于應用可能會通過虛擬機層對大量網(wǎng)絡流量執(zhí)行低級數(shù)據(jù)包處理,讀者可能比較關心性能。幸運的是,可以通過對流量進行克隆和批處理,在關鍵路徑以外的位置執(zhí)行模式分析等重量級處理。對于高吞吐量的實時處理,我們將通過自定義硬件加速這一構想視作長期解決方案。
影響智能數(shù)據(jù)包合約設計的另一個重要目的是與這一領域中現(xiàn)有開源項目(例如,熱門的網(wǎng)絡入侵檢測和入侵防御系統(tǒng) Snort)的兼容性。我們希望能支持這些系統(tǒng)并確保開發(fā)人員能夠在這些開源社區(qū)中輕松訪問智能數(shù)據(jù)包合約開發(fā)模型。
1.3. Marconi 鏈路
Marconi 鏈路(又稱 mLink)是我們的無線通信解決方案。通過這些鏈路可以實現(xiàn)網(wǎng)絡節(jié)點之間安全的直接無線傳輸,其設計同樣向下延伸覆蓋至 OSI 模型第 2 層(見圖 8),該層通過提供對網(wǎng)絡數(shù)據(jù)包的訪問啟用智能數(shù)據(jù)包合約。
Marconi 鏈路也是網(wǎng)狀網(wǎng)絡的核心構建基塊,網(wǎng)狀網(wǎng)絡可解決無線網(wǎng)絡擴散等問題。讀者可能曾遇到過這樣的情況,例如,在嘗試通過 Wi-Fi 連接到互聯(lián)網(wǎng)時發(fā)現(xiàn)二十個不同的網(wǎng)絡名稱。通過 mLink,多個節(jié)點能夠輕松加入同一網(wǎng)絡,并且系統(tǒng)鼓勵節(jié)點這樣做,通過這樣的方式,節(jié)點可以協(xié)作,更高效地傳輸數(shù)據(jù),進而使網(wǎng)絡范圍擴大。
一個節(jié)點通過發(fā)現(xiàn)過程加入網(wǎng)狀網(wǎng)絡,在這個過程中,節(jié)點首先觀察分貝水平以選擇最合適的對等節(jié)點。然后再在負載最小的可用信道上,與那些對等節(jié)點一起構成 mLink。與 mPipe 類似,這需要 Diffie-Hellman交換才能確保節(jié)點間安全通信。
Marconi 鏈路利用 Marconi 無線驅(qū)動器(它兼容低成本硬件中繼器以及藍牙和 Wi-Fi 等現(xiàn)有無線標準),無需自定義設備即可實現(xiàn)每個設備 10 至 100 米的范圍。希望使用自定義設備路徑的用戶可以利用相對較新的U-NII-3 無線電頻段以每躍點數(shù)千米的范圍發(fā)送信息,與無線互聯(lián)網(wǎng)服務提供商相似。Marconi 無線驅(qū)動器還能通過為獲得節(jié)點間最優(yōu)連接進行信道協(xié)商,妥善處理無線網(wǎng)絡擁塞問題。
1.4. 設計向下延伸覆蓋至 OSI 第 2 層
生成網(wǎng)絡應用時,開發(fā)人員有時習以為常地采用現(xiàn)在的互聯(lián)網(wǎng)基礎設施和拓撲結構。例如,常見的方法常常作出幾個假設,例如持續(xù)連接互聯(lián)網(wǎng)以及通過動態(tài)主機配置協(xié)議 (DHCP) 獲取的 IP 地址。但在公用互聯(lián)網(wǎng)范圍外或略超出其邊緣時,這些假設并不能始終適用,例如在無線對等網(wǎng)絡中或者橋接專用網(wǎng)時。在這樣的情況下必須考慮使用 OSI 第 2 層,例如,在對等節(jié)點發(fā)現(xiàn)這一過程中以及地址解析協(xié)議 (ARP) 等機制中。此外,為了完全實現(xiàn)真正去中心化的網(wǎng)絡基礎設施(其中各節(jié)點均可充當交換機、路由器或網(wǎng)橋)這一愿景,第 2 層設計成為一項必要條件。
Marconi 管道和 Marconi 鏈路等組件有權訪問 OSI 第 2 層數(shù)據(jù),所以它們可以觀察 MAC 地址,以便更好地理解物理網(wǎng)絡拓撲結構。從而,自定義路由技術在相同情況下的流量路由性能更佳。例如在圖 9 中,如果節(jié)點 A 想向節(jié)點 G 發(fā)送數(shù)據(jù),它可以通過節(jié)點 B、C、D 利用多個外向鏈路,從而盡量提高數(shù)據(jù)吞吐量和冗余度。這在無線網(wǎng)狀網(wǎng)絡中尤其有用,無線網(wǎng)狀網(wǎng)絡由連接能力不同的異構設備(如智能手機、無線接入點和無線中繼器)組成,其中的物理鏈路隨用戶位置的變化而頻繁更改。企業(yè)專用網(wǎng)等大型有線網(wǎng)絡可能更青睞其他路徑優(yōu)化策略(例如開放最短路徑優(yōu)先 (OSPF) 協(xié)議中所用的路徑優(yōu)化策略),在這樣的網(wǎng)絡中,執(zhí)行低級自定義路由的能力也非常有用。
1.5. 與互聯(lián)網(wǎng)和 IP 路由的互操作性
為了確保 Marconi 協(xié)議得到廣泛采用并充分實現(xiàn)去中心化的網(wǎng)絡基礎設施,需要能夠兼容如今主要由基于IP 的路由提供支持的互聯(lián)網(wǎng)。要獲得這種兼容性,當 Marconi 協(xié)議與互聯(lián)網(wǎng)連接時,通過使用標準 IP 和UDP 標頭將 Marconi 管道虛擬化為基于 IP 的連接之上的一層覆蓋,如圖 10 所示。
這與 VPN 解決方案中常用的第 2 層隧道協(xié)議 (L2TP) 的概念非常相似。我們額外添加了一個承載自定義元數(shù)據(jù)的內(nèi)部 Marconi 標頭并控制數(shù)據(jù)包到達目標 Marconi 節(jié)點時使用的字段。這些虛擬化的 Marconi 管道仍然提供安全權益和智能數(shù)據(jù)包合約處理功能,并輕松與 OSI 第 2 層設計集成,以實現(xiàn)無線對等網(wǎng)絡和橋接專用網(wǎng)絡。這一層覆蓋為現(xiàn)有互聯(lián)網(wǎng)提高額外的隱私性、安全性和靈活性。
例如,為了增加隱私性和安全性,Marconi 網(wǎng)絡中的節(jié)點可以使用增強的多層加密。這種多層加密使用之前與預期目標協(xié)商的密鑰加密網(wǎng)絡數(shù)據(jù)包,然后通過前面的節(jié)點間的躍點與各中間節(jié)點協(xié)商的密鑰添加連續(xù)加密層。這種加密方式有兩個好處。首先,只有預期目標才能加密和讀取最終有效負載。其次,可通過利用多個中間節(jié)點實現(xiàn)流量混淆。在這一方案下,數(shù)據(jù)包是由原始發(fā)送端特別準備的,各中間節(jié)點只知道前一個數(shù)據(jù)包的源和下一個目標,因在各躍點處迭代地剝離嵌套加密層而不知道關于完整路由路徑的任何其他信息。這也稱為洋蔥路由。
2.區(qū)塊鏈協(xié)議
Marconi 網(wǎng)絡將幾個區(qū)塊鏈用于網(wǎng)絡的構成、管理和計量。網(wǎng)絡的構成和管理需要在節(jié)點加入或離開網(wǎng)絡時跟蹤節(jié)點,而計量則是測量和記錄各節(jié)點的帶寬容量和貢獻。我們使用由一個全局區(qū)塊鏈和多個分支鏈的系統(tǒng)實現(xiàn)這一目的(見圖 11)。分支鏈始終來自全局鏈,它們先分支,再于二次分支前同步回全局鏈。網(wǎng)狀鏈是一種特殊的分支鏈,專用于構成網(wǎng)狀網(wǎng)絡。
2.1. 全局鏈
全局鏈使用耗內(nèi)存的工作量證明 (memory-hard proof of work) 添加區(qū)塊,Marconi 網(wǎng)絡中的所有節(jié)點都可以向全局鏈貢獻資源。使用耗內(nèi)存的工作量證明是為了獲得 ASIC 阻力,從而使現(xiàn)有加密貨幣挖掘社區(qū)能夠在無需更改任何硬件設置的情況下開始挖掘。哈希算法的特殊選擇與其余系統(tǒng)設計無關,而是獨立作為一個實現(xiàn)細節(jié),這樣便可根據(jù)需要(例如,當可行的 ASIC 被開發(fā)時)相對輕松地更改特定算法。全局鏈的內(nèi)容包括含節(jié)點公鑰標識符的注冊事務、marco 事務、智能數(shù)據(jù)包合約事務以及使分支鏈能夠定期將聚合狀態(tài)同步到全局鏈的檢驗指示事務。
2.2. 分支鏈
分支鏈是一種泛型構造,可通過它以編程方式創(chuàng)建連接到全局鏈并與之并行運行的新區(qū)塊鏈。每一個分支鏈都有通過分支合約指定的自己的自定義規(guī)則。從而使分支鏈成為可通過多種有趣的方式使用的靈活基元。網(wǎng)狀鏈就是這樣的一個示例,網(wǎng)狀鏈是一種分支鏈,它與已確定要綁定到一起形成一個網(wǎng)狀網(wǎng)絡的一組節(jié)點對應。這些節(jié)點通常(但不總是)位置臨近。因此,可能存在許多不同的網(wǎng)狀鏈,分為兩類:公用(任何節(jié)點都可以貢獻資源)和私用(例如,企業(yè)網(wǎng)絡)。網(wǎng)狀鏈的目的在于使網(wǎng)狀網(wǎng)絡脫離全局鏈,從而提高網(wǎng)絡的可靠性和擴展性。
網(wǎng)狀鏈從全局鏈卸載數(shù)據(jù)和通信開銷,使網(wǎng)狀網(wǎng)絡中的節(jié)點常常能夠避免與全局鏈交互。網(wǎng)狀鏈的內(nèi)容包括來自連接網(wǎng)狀網(wǎng)絡的節(jié)點的注冊事務以及許多“網(wǎng)絡元素證明”事務。網(wǎng)絡元素證明是可通過密碼進行驗證的一些練習,網(wǎng)狀網(wǎng)絡中的節(jié)點不斷地重復這些練習;這些練習涉及與相鄰節(jié)點相互收發(fā)隨機數(shù)以證明可用性和帶寬。我們將在后文中詳細介紹網(wǎng)絡元素證明,現(xiàn)在只需要知道節(jié)點受到鼓勵不斷執(zhí)行這樣的練習。最后,網(wǎng)狀鏈使用權益證明(而不是工作量證明)來添加區(qū)塊,參與更多網(wǎng)絡元素證明事務的網(wǎng)絡節(jié)點權益更大。為網(wǎng)狀鏈選擇權益證明是為了提高事務吞吐量、降低對貢獻資源的服務節(jié)點的計算能力要求。
為了連接網(wǎng)狀鏈,節(jié)點必須先在全局鏈上注冊其公鑰和公鑰哈希。這樣,節(jié)點才能參與智能合約和 marco傳輸。接下來,節(jié)點需要確定要連接的網(wǎng)狀網(wǎng)絡。確定方式有兩種:傳播到相鄰節(jié)點獲取其 IP 地址,以及查詢由所有網(wǎng)絡節(jié)點維護的分布式哈希表 (DHT),這種分布式哈希表將網(wǎng)狀網(wǎng)絡 ID 映射到各網(wǎng)狀網(wǎng)絡內(nèi)的IP 地址列表。已知這一信息,節(jié)點即可將自己注冊到本地網(wǎng)狀鏈上,這一注冊事務需要周邊節(jié)點簽名,表明它們可以連接到新節(jié)點。
2.3. 網(wǎng)絡元素證明
在此,我們的目的是設計一個去中心化的計量協(xié)議,它捕獲網(wǎng)絡節(jié)點隨著時間推移的可用性和帶寬并鼓勵網(wǎng)絡引導和網(wǎng)絡的持續(xù)加入。我們運用的主要構造是被稱為網(wǎng)絡元素證明的一種練習,同一網(wǎng)狀網(wǎng)絡中的任何三個節(jié)點都同意加入,為此成功加入后,他們都將收到 marco。
節(jié)點 A 首先通過傳播給相鄰節(jié)點并測量它們的響應延遲來啟動網(wǎng)絡元素證明。延遲低通常會積累更多marco,因此,該節(jié)點選擇 B 和 C 這兩個距離最近的節(jié)點用于網(wǎng)絡元素證明,在網(wǎng)狀鏈上創(chuàng)建一個事務,建立列出所需對等節(jié)點的公鑰哈希的智能合約。每一個對等節(jié)點都創(chuàng)建自己的事務以將簽名添加到同一智能合約,通過這樣的方式表明同意加入網(wǎng)絡元素證明。一旦同意,這些節(jié)點相互之間便構成 mPipe。
然后,節(jié)點 A 生成隨機數(shù) n 并創(chuàng)建一個將 n 的哈希添加到新智能合約的事務。如圖 12 中所示,節(jié)點 A 接下來使用其私鑰加密 n 并將結果 EncryptA(n) 發(fā)送給節(jié)點 B。這個對等接收節(jié)點可通過使用 A 的公鑰進行解密來驗證該信息。然后 B 重復此過程,得出信息EncryptB(EncryptA(n)),將該信息發(fā)送給 C。節(jié)點 C 也重復此過程,將有效負載 EncryptC (EncryptB(EncryptA(n))) 發(fā)送回 A。最后,在更新現(xiàn)有智能合約的事務中,A 將此有效負載提交到網(wǎng)狀鏈。Marconi 網(wǎng)絡中的任何節(jié)點都可以使用 A、B、C 的公鑰驗證此有效負載。
請注意,啟動一個單獨的智能合約,將加密隨機數(shù)發(fā)送給 C,C 將它發(fā)送給 B,B 再發(fā)送回 A,通過這樣的方式,節(jié)點 A 可以同時參與反方向的網(wǎng)絡元素證明。實際帶寬或延遲可能因數(shù)據(jù)流方向而存在差異,這樣做便可以對鏈路進行雙向測量。
為了提供更高帶寬,如果對等節(jié)點同意,節(jié)點則可使用更大的隨機數(shù)。節(jié)點可以不斷重復網(wǎng)絡元素證明以不斷獲得 marco,并且這些完成的練習都是在網(wǎng)狀鏈中進行的編碼,因此經(jīng)過一段時間后,它們會為各節(jié)點呈現(xiàn)一個相對準確的帶寬和可用性視圖。此外,可根據(jù)需要將網(wǎng)絡元素證明練習的結果延遲上傳到網(wǎng)狀網(wǎng)絡,因為是否立即上傳并不太重要。無論是立即上傳還是經(jīng)過幾個區(qū)塊后再上傳,都能輕松驗證數(shù)據(jù)。由于這一異步屬性,參與節(jié)點在等待網(wǎng)狀鏈事務時不受阻止,從而可以通過向?qū)Φ裙?jié)點發(fā)送更多隨機數(shù)繼續(xù)獨立取得進展。這一異步屬性使對等節(jié)點間以及網(wǎng)狀鏈中的數(shù)據(jù)總吞吐量非常大。
網(wǎng)狀鏈有助于從全局鏈卸載數(shù)據(jù),但它們自己卻有可能因網(wǎng)絡元素證明而變大。為了減緩這種情況,我們采用了幾種技術,例如,截斷陳舊度超過幾個月的網(wǎng)狀鏈數(shù)據(jù)(請回想一下,網(wǎng)狀鏈的聚合狀態(tài)是定期同步到全局鏈的)以及節(jié)點參與網(wǎng)絡元素證明的時間僅為總時間的一小部分的采樣方法。
3.網(wǎng)絡管理
3.1. 網(wǎng)絡參與者
加入 Marconi 網(wǎng)絡的參與者通常有三類。第一類為節(jié)點操作員,他們運行向公用網(wǎng)狀網(wǎng)絡提供資源的一個或多個服務節(jié)點。這些節(jié)點執(zhí)行由該操作員選擇的功能,可能包括允許最終用戶連接、處理網(wǎng)絡流量、確認全局鏈或網(wǎng)狀鏈上的區(qū)塊、計量流量或橋接不同的網(wǎng)狀子網(wǎng)。操作員可以選擇向現(xiàn)有網(wǎng)狀網(wǎng)絡提供資源,或選擇通過調(diào)用適當?shù)姆种Ш霞s來創(chuàng)建新網(wǎng)狀鏈,生成作為全局區(qū)塊鏈分支的新網(wǎng)狀網(wǎng)絡。
第二類為網(wǎng)絡運營商,他們需要以特定方式協(xié)調(diào)一組節(jié)點。他們在生成新分支鏈的全局鏈上調(diào)用一個分支合約,例如,為了構成一個新的專用網(wǎng)狀網(wǎng)絡(見圖 13)。此分支合約中還指定了特定于此分支鏈的規(guī)則,例如,為了通過軟件定義網(wǎng)絡提高網(wǎng)絡效率或通過反網(wǎng)絡釣魚工具保護最終用戶而規(guī)定啟用哪些智能數(shù)據(jù)包合約的規(guī)則。示例網(wǎng)絡運營商包括公司、本地 ISP 或創(chuàng)造自己的通證經(jīng)濟的新區(qū)塊鏈協(xié)議。請注意,啟動一個單獨的智能合約,將加密隨機數(shù)發(fā)送給 C,C 將它發(fā)送給 B,B 再發(fā)送回 A,通過這樣的方式,節(jié)點 A 可以同時參與反方向的網(wǎng)絡元素證明。實際帶寬或延遲可能因數(shù)據(jù)流方向而存在差異,這樣做便可以對鏈路進行雙向測量。
為了提供更高帶寬,如果對等節(jié)點同意,節(jié)點則可使用更大的隨機數(shù)。節(jié)點可以不斷重復網(wǎng)絡元素證明以不斷獲得 marco,并且這些完成的練習都是在網(wǎng)狀鏈中進行的編碼,因此經(jīng)過一段時間后,它們會為各節(jié)點呈現(xiàn)一個相對準確的帶寬和可用性視圖。此外,可根據(jù)需要將網(wǎng)絡元素證明練習的結果延遲上傳到網(wǎng)狀網(wǎng)絡,因為是否立即上傳并不太重要。無論是立即上傳還是經(jīng)過幾個區(qū)塊后再上傳,都能輕松驗證數(shù)據(jù)。由于這一異步屬性,參與節(jié)點在等待網(wǎng)狀鏈事務時不受阻止,從而可以通過向?qū)Φ裙?jié)點發(fā)送更多隨機數(shù)繼續(xù)獨立取得進展。這一異步屬性使對等節(jié)點間以及網(wǎng)狀鏈中的數(shù)據(jù)總吞吐量非常大。
網(wǎng)狀鏈有助于從全局鏈卸載數(shù)據(jù),但它們自己卻有可能因網(wǎng)絡元素證明而變大。為了減緩這種情況,我們采用了幾種技術,例如,截斷陳舊度超過幾個月的網(wǎng)狀鏈數(shù)據(jù)(請回想一下,網(wǎng)狀鏈的聚合狀態(tài)是定期同步到全局鏈的)以及節(jié)點參與網(wǎng)絡元素證明的時間僅為總時間的一小部分的采樣方法。
3.網(wǎng)絡管理
3.1. 網(wǎng)絡參與者
加入 Marconi 網(wǎng)絡的參與者通常有三類。第一類為節(jié)點操作員,他們運行向公用網(wǎng)狀網(wǎng)絡提供資源的一個或多個服務節(jié)點。這些節(jié)點執(zhí)行由該操作員選擇的功能,可能包括允許最終用戶連接、處理網(wǎng)絡流量、確認全局鏈或網(wǎng)狀鏈上的區(qū)塊、計量流量或橋接不同的網(wǎng)狀子網(wǎng)。操作員可以選擇向現(xiàn)有網(wǎng)狀網(wǎng)絡提供資源,或選擇通過調(diào)用適當?shù)姆种Ш霞s來創(chuàng)建新網(wǎng)狀鏈,生成作為全局區(qū)塊鏈分支的新網(wǎng)狀網(wǎng)絡。
第二類為網(wǎng)絡運營商,他們需要以特定方式協(xié)調(diào)一組節(jié)點。他們在生成新分支鏈的全局鏈上調(diào)用一個分支合約,例如,為了構成一個新的專用網(wǎng)狀網(wǎng)絡(見圖 13)。此分支合約中還指定了特定于此分支鏈的規(guī)則,例如,為了通過軟件定義網(wǎng)絡提高網(wǎng)絡效率或通過反網(wǎng)絡釣魚工具保護最終用戶而規(guī)定啟用哪些智能數(shù)據(jù)包合約的規(guī)則。示例網(wǎng)絡運營商包括公司、本地 ISP 或創(chuàng)造自己的通證經(jīng)濟的新區(qū)塊鏈協(xié)議。
第三類為最終用戶,如果獲得授權,他們可能在任何時間連接公用或?qū)S镁W(wǎng)狀網(wǎng)絡。連接公用網(wǎng)狀網(wǎng)絡時,用戶選擇加入他們選擇的智能數(shù)據(jù)包合約;而在專用網(wǎng)狀網(wǎng)絡中,他們必須遵守該網(wǎng)絡的規(guī)則。
3.2. 網(wǎng)絡形成
我們來研究一個節(jié)點操作員想在現(xiàn)有網(wǎng)狀鏈上建立新服務節(jié)點的案例,并以此為例來了解網(wǎng)絡形成過程。新服務節(jié)點按順序通過以下步驟加入 Marconi 網(wǎng)絡:
1. 引導。新服務節(jié)點與少量引導節(jié)點建立聯(lián)系。這些引導節(jié)點會跟蹤 Marconi 網(wǎng)絡中存儲全局鏈數(shù)據(jù)副本的活動節(jié)點的子集,并利用與這些節(jié)點相關的元數(shù)據(jù)響應新服務節(jié)點。然后,新服務節(jié)點在此子集中查詢隨機節(jié)點樣本并觀察節(jié)點樣本的響應延遲情況。新服務節(jié)點向少數(shù)響應最快的節(jié)點逐個請求對等節(jié)點列表。然后,新服務節(jié)點重復執(zhí)行在這些列表中查詢節(jié)點樣本的過程,衡量節(jié)點樣本延遲情況并獲取對等節(jié)點列表,直到發(fā)現(xiàn)一些相鄰節(jié)點,并將這些節(jié)點用作同步全局鏈數(shù)據(jù)的全局鏈對等節(jié)點。
2. 同步。新服務節(jié)點從對等節(jié)點下載數(shù)據(jù),通過全局鏈來同步歷史區(qū)塊,同時開始在前向同步模式下監(jiān)聽新區(qū)塊。
3. 注冊。新服務節(jié)點向在全局鏈上注冊公鑰標識符的對等節(jié)點廣播事務。
4. 發(fā)現(xiàn)。新服務節(jié)點向全局鏈對等節(jié)點查詢與潛在網(wǎng)狀鏈對等節(jié)點相關的元數(shù)據(jù)。與在引導步驟中查找對等節(jié)點的重復過程類似,新服務節(jié)點會觀察向這些對等節(jié)點發(fā)送請求或從對等節(jié)點收到響應的延遲情況和帶寬,并據(jù)此縮小潛在網(wǎng)狀鏈對等節(jié)點的范圍。找到最佳對等節(jié)點后,新節(jié)點會通過各自網(wǎng)狀鏈中的對等節(jié)點同步網(wǎng)狀鏈區(qū)塊。
5. 協(xié)商。新服務節(jié)點在其所需的網(wǎng)狀鏈上創(chuàng)建事務,建立智能合約,列出其所需的直接對等節(jié)點的公鑰哈希。每一個對等節(jié)點都創(chuàng)建自己的事務以將簽名添加到同一智能合約,通過這樣的方式表明同意。
6. 設置。新服務節(jié)點使用 Diffie-Hellman 密鑰交換算法構建共享密鑰,從而與其每個直接對等節(jié)點形成mPipe。
7. 維護。新服務節(jié)點不斷地與其直接對等節(jié)點執(zhí)行網(wǎng)絡元素證明。所有敏感通信會通過在上一步建立的 mPipe 發(fā)生。
如果節(jié)點僅挖掘全局鏈,而不對網(wǎng)狀鏈做出貢獻,步驟將更加簡單。在這種情況下,只需要執(zhí)行引導和同步步驟即可
3.3. PeerRank
Marconi 網(wǎng)絡利用信譽系統(tǒng)來衡量節(jié)點和子網(wǎng)質(zhì)量。它可以通過觀察網(wǎng)絡元素證明練習生成的結果,跟蹤各節(jié)點在經(jīng)過一段時間后的容量和可用性,從而根據(jù)與附近的對等節(jié)點相關的指標得出一個規(guī)范化分數(shù)。表現(xiàn)良好且與分數(shù)高的對等節(jié)點協(xié)作的節(jié)點本身的分數(shù)往往較高。這一稱為 PeerRank 的加權系統(tǒng)得出網(wǎng)絡節(jié)點和子網(wǎng)的堆棧級別,可用于各種情況,這一稱為 PeerRank 的加權系統(tǒng)得出網(wǎng)絡節(jié)點和子網(wǎng)的堆棧級別,可用于各種情況,例如在確定可以接受來自網(wǎng)絡對等節(jié)點的新連接時仍能維持當前連接的節(jié)點。對于決定要連接哪些節(jié)點的用戶而言,分數(shù)也是一個非常方便的信號。
根據(jù)各節(jié)點在相應網(wǎng)狀鏈中記錄的行為,將其 PeerRank 分數(shù)定期同步到全局鏈。這就將分數(shù)與公鑰標識符關聯(lián)起來,從而任何其他節(jié)點都可以觀察并利用分數(shù)。
3.4. 降低網(wǎng)狀網(wǎng)絡的復雜度
Marconi 網(wǎng)絡協(xié)議支持無線網(wǎng)絡和對等網(wǎng)狀網(wǎng)絡。在這樣的網(wǎng)絡中管理節(jié)點間連接和確保高性能的流量路由可能比較困難,因為可能的連接數(shù)隨 O(n2) 而增加,其中n為節(jié)點數(shù)。
例如,僅 A、B、C、D 四個節(jié)點的網(wǎng)狀網(wǎng)絡(見圖 14)。假如節(jié)點 A 要向節(jié)點 D 發(fā)送數(shù)據(jù),有多種可能的路徑可供選擇:AD、ABD、ACD、ABCD 和 ACBD。
為降低復雜性,我們將已知網(wǎng)絡節(jié)點中的多個 OSI 第 2 層連接組合并綁定為一個含 OSI 第 3 層配置數(shù)據(jù)的虛擬網(wǎng)絡接口,這與操作系統(tǒng)橋接多個物理網(wǎng)絡接口控制器增加網(wǎng)絡連接的容量和冗余度。這種綁定為節(jié)點、網(wǎng)絡運營商以及編寫智能數(shù)據(jù)包應用的開發(fā)人員降低了復雜性。還在丟失網(wǎng)絡鏈路的情況下提供連接冗余和容錯能力,并且由于它能將傳出流量分布到多個路徑而提高了吞吐量。
4.通證 (Token)
Marco 就是為 Marconi 網(wǎng)絡提供支持的通證。這些效用通證可用于網(wǎng)絡帶寬,也可作為處理網(wǎng)絡流量和運行智能合約的燃料使用。服務節(jié)點在確認區(qū)塊或成功完成網(wǎng)絡元素證明時接收 marco。在某些類型的網(wǎng)絡操作中(例如,在網(wǎng)狀鏈中權益累積,或創(chuàng)建一個啟動新的專用網(wǎng)狀鏈的事務),也需要 marco。
在 Marconi 網(wǎng)絡中執(zhí)行工作所需的 marco 數(shù)量由幾個參數(shù)決定??蓪⑵浣?,構成函數(shù) f (a, B, y, &),其中 a 是使用的帶寬,B 表示提供的帶寬的服務質(zhì)量,Y表示執(zhí)行的任何智能合約在計算和存儲方面的復雜度,而&為客戶設置的燃料價格。提供商接受該燃料價格時,執(zhí)行工作;拒絕該燃料價格時,忽略工作。
與基于可采燃料的其他區(qū)塊鏈類似,marco 的供應量最初將以較大速度增加,激勵礦工引導網(wǎng)絡,在共計十年后,增長速度減緩至最低水平(見圖 15)。
應用
Marconi 網(wǎng)絡及其智能數(shù)據(jù)包合約提供一個可靠的去中心化網(wǎng)絡基礎設施和平臺,使開發(fā)人員能夠生成強大的應用。本章將提供幾個示例進行說明。我們也相信,開發(fā)者社區(qū)最終將設想并創(chuàng)建許多極具吸引力的應用。
1.區(qū)塊鏈協(xié)議
1.1. 去中心化的網(wǎng)絡基礎設施
憑借分支合約和分支鏈,可在 Marconi 平臺上開發(fā)和啟動新的區(qū)塊鏈協(xié)議,從而免費獲得該平臺的安全性和網(wǎng)絡中立性等內(nèi)置權益。并且,由于無代碼更改,現(xiàn)有的區(qū)塊鏈協(xié)議可利用 Marconi 網(wǎng)絡增強并最終完全去中心化的網(wǎng)絡基礎設施,開始將該網(wǎng)絡用于節(jié)點間通信。
1.2. 區(qū)塊鏈遷移通證
與區(qū)塊鏈協(xié)議相關的另一個有趣的應用能夠?qū)⑼ㄗC的實現(xiàn)遷移到自己的區(qū)塊鏈。例如,如果按照 ERC20 等通用標準實現(xiàn)通證,則可輕松將其規(guī)則指定為分支合約(該合約創(chuàng)建源自全局鏈的新分支鏈)的基礎,從而允許將通證遷移到自己在 Marconi 網(wǎng)絡中運行的獨立鏈??梢詫①~戶余額狀態(tài)聚合到此新分支鏈的一個創(chuàng)世區(qū)塊中,從而打破對以太坊龐大的數(shù)據(jù)目錄等任何之前的鏈數(shù)據(jù)的依賴。由于事務可以調(diào)用全局鏈上起源分支合約中的函數(shù),所以將事務提交到這一新鏈即可在賬戶間傳輸通證。新鏈仍然定期檢查聚合狀態(tài)并將其傳回全局鏈,例如,賬戶余額的快照被寫入起源分支合約,以體現(xiàn)分支鏈中發(fā)生的情況。
2.安全性應用
2.1. 反網(wǎng)絡釣魚、反惡意軟件和反病毒防護
無需安裝任何特殊的軟硬件,使用智能數(shù)據(jù)包合約,即可立即為最終用戶甚至企業(yè)網(wǎng)絡提供這種防護。這是可行的:如果未加密,分析數(shù)據(jù)包有效負載;否則,分析數(shù)據(jù)包標頭、大小和數(shù)量以及域名。
常見的網(wǎng)絡釣魚策略涉及到構造一個具有誤導性的 URL,它看上去很像用戶信任的 URL,例如,將 ASCII字符替換為幾乎一模一樣的 Unicode 字符,然后注冊得出的域名,并偽裝新站點,使其與可信站點相似。檢測此類具有誤導性的 URL 非常簡單,只需要幾行智能數(shù)據(jù)包合約代碼(請回顧圖 7)。盡管一些最常用的瀏覽器和郵件客戶端已實現(xiàn)反網(wǎng)絡釣魚防護,許多不那么常用或更基礎的用戶應用(例如短信)仍然僅將它作為一種事后補救措施,甚至是完全缺少這種防護。在 Marconi 平臺的低級網(wǎng)絡層解決此問題,只需一次,就不需要在每一個可能的用戶程序的較高層重新實現(xiàn)同一解決方案多次??梢允褂闷渌R姷姆淳W(wǎng)絡釣魚技術(例如,已知不良站點和內(nèi)容的數(shù)據(jù)庫,或者對此類站點和內(nèi)容進行了訓練的機器學習模型)擴展 Marconi 實現(xiàn)。最后,憑借 Marconi 平臺,開發(fā)人員能夠獲得 marco,將其用于去中心化應用(如果他們選擇這樣做);從而使 marco 可用于激勵最終用戶報告可疑的站點或內(nèi)容。
2.2. 入侵檢測和防御系統(tǒng) (IDS/IPS)
在專用網(wǎng)絡中,可利用監(jiān)控來檢測網(wǎng)絡上的流量異?,F(xiàn)象和惡意活動,通過通知管理員或主動阻止可疑數(shù)據(jù)包的方式防止來自內(nèi)外部攻擊者的攻擊。
2.3. 虛擬專用網(wǎng)絡(VPN 或 dVPN)
可將專用網(wǎng)絡擴展到公用或共享網(wǎng)絡上,通過身份驗證防止未授權的訪問,并通過流量加密和一個間接層來保護隱私。Marconi 鏈路對于那些需要強烈的混淆網(wǎng)絡路徑的用戶尤其有用,因為跟蹤無線躍點的難度遠遠大于跟蹤有線躍點。無論是有線還是無線,用戶都能通過在 OSI 第 2 層的低級加密獲得額外的安全性。用戶甚至可以輪流使用多個入口節(jié)點再退出節(jié)點,進一步混淆流量。
3.網(wǎng)絡應用
3.1. 安全的現(xiàn)場網(wǎng)絡
通過使用支持 Marconi 協(xié)議的同一技術,可以在戰(zhàn)場或救災環(huán)境中快速部署多個安全的現(xiàn)場網(wǎng)絡,并將其通信流量歷史存儲在賬本中,以便在網(wǎng)絡退役后進行審計。
3.2. 物聯(lián)網(wǎng) (IoT) 設備管理
隨著 IoT 設備數(shù)量和功能的增加,它們可支持的應用的數(shù)量也將增加,對設備之間安全通信的需求也將增長。通過 Marconi 及其智能數(shù)據(jù)包合約,這些設備可以安全正常地互操作,并根據(jù)需要配合以協(xié)作解決復雜問題,在分布式網(wǎng)格計算的現(xiàn)代變體中充分利用本地可用的硬件。Marconi 網(wǎng)絡和 API 共同提供一個平臺,將多個智能手機、工作站、甚至自動駕駛汽車中 GPU 的功能相結合,開發(fā)人員可直接利用這些功能使遠近用戶獲益,這樣,我們就可以獲得從未見過的一類新應用。
3.3. 內(nèi)容分發(fā)網(wǎng)絡(CDN 或 dCDN)
可通過 Marconi 網(wǎng)絡中的節(jié)點緩存大型或常用的互聯(lián)網(wǎng)內(nèi)容,將這些內(nèi)容以更便捷的本地方式提供給消費者,從而更有效地利用帶寬并改善延遲現(xiàn)象。此類內(nèi)容的示例包括視頻文件或者必須通過新挖掘節(jié)點同步的各常用區(qū)塊鏈中的歷史區(qū)塊。這可以大大減少從頭開始設置挖掘節(jié)點所需的時間。去中心化的點對點 CDN 對內(nèi)容提供商也極具吸引力,因為初次啟動分發(fā)網(wǎng)絡無開銷費用,維護網(wǎng)絡硬件也不會產(chǎn)生任何后續(xù)費用。僅自己部署和提供內(nèi)容會產(chǎn)生費用,流量計量功能已內(nèi)置到 Marconi 網(wǎng)絡中。
3.4. 軟件定義網(wǎng)絡 (SDN)
可通過分布式網(wǎng)絡虛擬化來管理和控制計算機,通過這種方式可以從一個控制臺對網(wǎng)絡硬件進行動態(tài)的重新配置和重新編程,例如,啟動新的節(jié)點用于負載平衡或流量整形。
安全
由于 Marconi 在底層解決了這些攻擊,所以建立在 Marconi 上的新區(qū)塊鏈協(xié)議也能獲得相同的保護。
1.事務泛洪攻擊
事務泛洪攻擊可能會向全局鏈或某個分支鏈添加許多空操作事務或無用事務,試圖憑借這些事務給網(wǎng)絡造成巨大的負載,從而阻止正常事務的添加或處理。為了削弱這種攻擊,Marconi 協(xié)議中大多數(shù)事務類型都需要少量保證金,僅在經(jīng)過一段時間后或操作成功完成后才予以退還。例如,任何沒有必備保證金的事務都將被立即拒絕,所以如果攻擊者試圖在較短的時間內(nèi)生成許多個分支鏈,分支鏈數(shù)量將受到其可用資金的限制。在這些新創(chuàng)建的分支鏈中,如果沒有任何節(jié)點注冊并向它們貢獻資源(此操作本身也需要保證金),用于創(chuàng)建分支鏈的保證金將被扣除(而非退還)。
2.數(shù)據(jù)包注入
將偽造的網(wǎng)絡數(shù)據(jù)包注入 Marconi 網(wǎng)絡比以往更難,因為節(jié)點間的每個躍點都憑借特定的對稱密鑰組合通過 mPipe 或 mLink 受到 OSI 第 2 層加密的單獨保護。如果沒有這些密鑰,攻擊者將無法解密數(shù)據(jù),從而難以通過分析流量找出潛在的數(shù)據(jù)包注入點。也無法對他們構造的任何惡意數(shù)據(jù)包進行加密,因此,目標節(jié)點能夠輕松將它們與可信數(shù)據(jù)包區(qū)分開來。
3.女巫攻擊
Marconi 網(wǎng)絡中防范女巫節(jié)點的第一道防線為費用。因為公鑰注冊和多數(shù)其他事務都需要保證金,所以攻擊者可以構造的身份數(shù)量受到可用資金的限制。防范女巫節(jié)點的第二道防線為 PeerRank。誠實節(jié)點傾向于與其可信任的節(jié)點協(xié)作,這樣可以獲得更多marco,避免保證金被扣除以及自己的 PeerRank 分數(shù)被下調(diào)。例如,如果節(jié)點因網(wǎng)絡元素證明練習而未能發(fā)送或接收可觀的隨機數(shù),則不僅該節(jié)點及其對等節(jié)點收到的 marco 會減少,它們的 PeerRank 分數(shù)也將受到不良影響。
我們理應保護網(wǎng)絡不受到非理性行為干擾。例如,一名操作員可以延長節(jié)點正常運行的時間以贏得信任,然后再突然開始做出一些不當行為。這樣的行為可能會導致失去 marco,而如果他們繼續(xù)使節(jié)點正常、良好地運行,將繼續(xù)獲得 marco。因此,理性參與者并不會對網(wǎng)絡構成威脅,但防范非理性參與者依然任重道遠。
4.量子攻擊
通過量子計算機使用足夠多的量子位,可入侵許多廣泛使用的密碼算法。雖然如今不太可能有這樣的計算機,但在不久的將來可能會有。隨著后量子密碼技術的不斷發(fā)展,Marconi 協(xié)議的開發(fā)人員對利用這樣的技術強化系統(tǒng)非常感興趣。
總結
我們提出了這樣一個系統(tǒng):通過它,可以使用網(wǎng)絡數(shù)據(jù)包智能合約,還可以通過編程方式快速啟動分支鏈和安全網(wǎng)絡。我們首先介紹網(wǎng)絡基礎設施的現(xiàn)狀,并提到其不安全、難以管理和控制集中的特點。我們還意識到許多現(xiàn)有的區(qū)塊鏈項目、專用及本地網(wǎng)絡、甚至更廣泛的互聯(lián)網(wǎng)本身都正在依賴這樣問題重重的基礎設施。我們通過改變看待、部署和使用網(wǎng)絡基礎設施的方式,對這一情況做出彌補:提供了一個設計向下延伸到 OSI 第 2 層的網(wǎng)絡協(xié)議,這一協(xié)議具有可靠的安全性、性能和對等建網(wǎng)功能;提供了一個區(qū)塊鏈,通過它進行不可靠的互操作以及網(wǎng)絡資源交換并激勵參與對這一個新網(wǎng)絡的引導。最后,我們使開發(fā)人員能夠在這一平臺上生成新的分布式去中心化應用。