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