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