---
###### tags: `school homework`
---
# 區塊鍊final report
## A Scalable Blockchain Framework for Secure Transactions in IoT
### Abstract
* IoT和區塊鏈技術可以互相補充,但目前的區塊鏈解決方案在處理大量IoT交易方面存在可擴展性和交易處理速度等問題。
* 該論文提出了一種解決方案,使用本地對等網絡來橋接兩者之間的差距。通過實現可擴展的本地分散式帳本,限制進入全球區塊鏈的交易數量,同時不會影響本地和全局層面的交易驗證。
* 測試評估表明,該解決方案可以顯著減少全局節點上的區塊重量和帳本大小,並通過負載分配間接提高所有節點的交易處理速度。
* 該解決方案的實現為智慧城市、工業物聯網等場景提供了可行的區塊鏈解決方案。
### Introduction
* IoT(物聯網)提供了一個平台,用於連接日常使用的智能設備,以收集、分享和轉發信息。
* 很多這些交換都是金融交易,在未來的互聯網架構中將占主導地位。
* 即將到來的5G技術將特別支持機器對機器通信,這將為物聯網帶來前所未有的增長。
* 據估計,到2020年將有50億設備註冊為物聯網設備,每天將產生數萬億的交易。
* 目前,大多數通信都是基於客戶端-服務器模型進行的。
* 在集中式通信模型中,系統管理員可能因內部人員攻擊而泄露敏感數據(例如醫療保健、金融等)。
* 此外,傳統的集中式計算模型偏好幾個大型分散式數據中心,這給計算、存儲和網絡資源帶來了巨大的負擔。
* 然而,使用傳統的集中式通信模型來進行如此大規模的數據通信、存儲和分析,來自數十億設備的數據幾乎是不可能的。
* 雖然雲端和邊緣/霧計算架構提供了幾乎無限的存儲和處理能力,但上傳交易所需的帶寬在網絡中形成了瓶頸。
* 物聯網網絡和其中嵌入的設備大幅增加,這為與安全和隱私相關的各種威脅帶來了新的維度。
* 考慮到現有的客戶端-服務器和雲技術的限制,再加上物聯網的快速擴展能力,許多研究人員建議使用區塊鏈作為解決安全和隱私問題的潛在解決方案。
* 這主要是受到比特幣(一個用於加密貨幣交易的公共區塊鏈)的啟發,以應對物聯網安全方面的挑戰。
#### Blockchain
* BC最早在2009年以比特幣(Bitcoin)的形式被引入。
* 作為公共區塊鏈,比特幣是第一個無需信任中央機構的點對點電子現金,擁有約2,850萬個電子錢包。
* 自此以後,許多其他電子現金(如以太幣、瑞波幣等)被引入,電子錢包的數量也大幅增加。
* BC允許價值交換(即交易)無需依賴中央實體的信任權威,這些交易被存儲在由一組相互連接的計算機(即節點)維護的分散式帳本中,不同於銀行數據庫等集中式實體。
* 在批准交易之前,BC系統會進行自主驗證(即背書),這在確保安全性方面起著關鍵作用。
* BC的特點在於設計成無需信任,安全性和可靠性通過特殊的數學函數或代碼獲得。
* 直到2016年,大多數BC網絡被用於加密貨幣交易。最近,BC的應用已超越加密貨幣,開始在其他應用領域(如物聯網、人工智能等)中得到利用。
##### Crypto
* 加密貨幣區塊鏈:這些主要用於加密貨幣,僅允許虛擬貨幣交易,作為實體貨幣的替代。交易結構是固定的,僅包含有關交易貨幣數量的信息。
* 這些通常是公共鏈,以提高透明度,但最近也出現了私有加密鏈。
* 使用礦工來確保交易安全性,礦工需要解決一個複雜的數學問題,以確保區塊和交易的安全性。
##### business
* 商業區塊鏈:相較於之前的區塊鏈,這種基於智能合約的新型商業區塊鏈被用於各種交易類型,包括普遍存在的設備、實時操作管理、金融交易等。這些區塊鏈通常是私有或受權限控制的鏈。
* 與礦工不同,商業區塊鏈使用訂單管理器(orderer)來確保交付保證和區塊創建。
* 為了應用商業區塊鏈於新的應用場景中,需要對通用區塊鏈協議進行重大修改。鑑於此,已開發了一種新的受權區塊鏈Hyperledger,用於各種網絡。
* Hyperledger介紹了六個商業框架:1)Fabric;2)Burrow;3)Iroha;4)Sawtooth;5)Indy;6)Quilt。根據技術要求和各種共識算法,可以使用不同的框架。
* Hyperledger Fabric可以作為開發針對物聯網網絡的區塊鏈解決方案的基礎。
* 受權區塊鏈架構的基本組件由相互連接的節點組成,節點是獨立的伺服器。它們負責驗證和背書交易,並維護分散式帳本。
* 驗證和背書過程主要依賴於智能合約(鏈碼),每個背書節點都必須安裝該智能合約。
* 成功背書的交易將作為一個區塊存儲到共同的帳本中,並與節點集成。許多交易可以適應單個區塊,該區塊必須通過哈希值與帳本的上一個區塊相連,形成一個區塊鏈。
* 每個區塊中的交易數量和區塊形成時間取決於訂單管理器的批次超時配置。訂單管理器旨在為節點提供原子廣播排序服務。
* 訂單管理器和成員服務提供者(MSP)分別向商業區塊鏈中的所有節點提供區塊創建和用戶服務。

#### IoT & BC
* 區塊鏈技術可以成為記錄物聯網設備交易日誌和通信的基礎。將區塊鏈應用於物聯網將帶來三個關鍵優勢:
- 信任(建立各方和設備之間的信任,減少串通和篡改的風險)
- 降低成本(消除中間人和媒介帶來的額外開銷);3)加快交易速度(縮短結算時間)。
* 為了將物聯網和區塊鏈結合起來,了解區塊鏈網絡的形成方式非常重要。對於物聯網設備,可以有兩種模型:
- 每個物聯網設備通過實現自身的節點客戶端,成為區塊鏈網絡的一部分
- 通過明確定義的機制,將一些設備分組在一起,在全球區塊鏈中使用單一節點來代表它們。
* 第一種解決方案無法使用,因為大多數物聯網設備缺乏成為節點所需的資源(處理能力、記憶體等)。然而,一些設備(如自動化機器、機器人等)可能具備這些能力並且可以成為節點,但這只是物聯網設備的一部分。
* 第二種解決方案更為可行,但當前的區塊鏈網絡並未實現這樣的機制。即使提供了這樣的機制,現有區塊鏈網絡的可擴展性仍然是一個重大挑戰。
* 為了了解規模,假設有500億個物聯網設備平均每天生成5筆交易,這還遠低於實際情況。交易量將約為每天2500億筆。
* 在更現實的例子中,假設一個城市政府打算在城市中為不同的政府機構(停車服務、收費支付等)運行一個中央區塊鏈網絡。假設機構數量為50個,每個機構至少有10個節點,每個節點控制1000個設備或使用者。因此,如果每個使用者或設備每天生成10筆交易,那麼僅從一個機構就會有1.05億筆交易,所有機構的總交易量將達到每天500萬筆。
* 現有的區塊鏈解決方案存在兩個主要問題:
* 每秒交易數(TPS)
* 分佈式帳本存儲需求。
* 區塊鏈基本上並非為物聯網中的高交易率而設計。通過發布Hyperledger Fabric 1.0,TPS問題在一定程度上得到了解決,因為開發者可以根據其網絡需求自定義背書策略和排序服務。但在任何定制情況下,生成的區塊將被添加到所有節點。如果區塊鏈對於每500筆交易創建單個區塊,則每天需要23 GB的記憶體,或者每年約需8.4 TB,其中每個具有單筆交易的區塊的大小至少為4.6 kB(基於實驗分析)。由於帳本數據無法刪除或更改,因此隨著時間的推移,這個問題會被放大。
* 為了在物聯網中獲得區塊鏈的安全好處,必須解決有效管理帳本大小和每秒交易數擴展性的挑戰。
* 在本文中,我們提出了一個基於區塊鏈的物聯網框架,用於組織內部和組織間的交易,其中所有物聯網設備通過本地認證機構(CA)啟用的註冊過程與組織相關聯。此外,我們提出了一個本地節點(Lpeer)結構,與全球網絡中的關聯錨節點進行交互,而不是使用全球區塊鏈網絡中的節點。
* 這個框架旨在解決兩個主要問題:
* 間接增加全球區塊鏈網絡的每秒交易數(TPS)
* 限制每個節點中帳本存儲需求的幾何增長。通過在組織內部交易中使用本地化節點(同時保持節點驗證),該框架限制了帳本大小並將其在Lpeer和錨節點之間分配。組織間交易通過全球區塊鏈節點網絡進行驗證,並實現了100%的節點驗證。
### Related work
* 目前,區塊鏈技術主要限於加密貨幣解決方案(例如比特幣、以太坊等)。Hyperledger旨在將區塊鏈技術擴展到商業網絡。
* Hyperledger Fabric v0.6在公共使用中存在可擴展性問題,這在某種程度上已經在Fabric v1.0中得到緩解。Fabric v1.0允許每秒交易數達到104 TPS,因為節點可以並行執行交易。
* 在某些應用場景中,這種增加可能是令人滿意的。但是,考慮到大量的物聯網設備,需要更高的交易速率。
* 同時,帳本的存儲需求仍然是一個開放的研究問題。
* 一些工作提出了一個用於物聯網的分散式訪問管理系統,其中訪問控制信息使用區塊鏈進行存儲和分佈。通過使用被稱為管理中心的網關,物聯網設備可以連接到區塊鏈網絡。
* 該架構允許物聯網設備在沒有背書或明確的設備識別機制的情況下查詢區塊鏈節點。某些使用情況可能需要許可機制來進行此類查詢。
* 此外,該設計將每天數百萬筆交易的交易費處理負擔加諸於管理節點上,同時作為區塊鏈網絡的外部實體。
* 一個輕量級可擴展的物聯網區塊鏈[16]可在線上找到(未發表),引入了一個稱為區塊管理器(BM)的集中管理器,類似於中心樞紐,它為家庭設備提供共享密鑰並控制所有進出的交易請求。此外,它還在本地存儲所有交易。該論文未詳細說明本地BM和覆蓋BM之間的交易如何同步,也未解決更高層次上的存儲和可擴展性問題。
* 在[11]中,IBM的研究人員展示了在Hyperledger實施實驗中達到的3500 TPS。他們還描述了區塊大小從0.5到4.0 MB的變化(取決於配置和背書政策)。雖然這篇論文沒有討論減少區塊大小、存儲和控制帳本可擴展性的開銷,但它確實展示了提高TPS的需求,這是本文的目標之一。
* 有一些研究作品可用,其中大多數作為應用案例討論了區塊鏈在物聯網中的使用。在[17]中,提出了一種基於分散式區塊鏈的安全SDN架構,以在分散式區塊鏈中實現高性能可用性流規則表。它主要討論了物聯網通信如何從區塊鏈技術中受益。
* Li等人[18]提出了一種改進交易速率的衛星鏈方法。Slock [19]探討了如何在沒有中間人的情況下使數百萬設備具有自主性,並解決了安全性、身份、協調和隱私等問題。
* 基於區塊鏈的智能交通系統[20]雖然不是物聯網解決方案,但討論了一個使用區塊鏈的七層概念模型,用於大規模車輛網絡。同樣,[21]提出了在智能電網中使用區塊鏈進行安全交易的方法。[22]提出了一個將區塊鏈技術與智能設備集成的安全框架。
* Filament [23]提出了一個開放的技術堆棧,使設備能夠自主地發現、通信和互動。在[24]中,通過區塊鏈在供應鏈管理中實現
* [25]中的工作提出了一個建議,希望ITU建立一個物聯網區塊鏈的分散式框架。這是一項正在進行的研究,強調可擴展性、互操作性和分散式帳本作為高層次要求。為了使不同的共識機制能夠運作,整個物聯網網絡應該能夠有效實現區塊鏈解決方案。值得注意的是,大多數與物聯網和區塊鏈集成相關的現有研究並不關注帳本的可擴展性或提高交易速率。本文的主要動機是創建一個框架,該框架可以在物聯網網絡中實施(無論應用場景如何),並且能夠根據物聯網設備的數量進行擴展。
* 高層次需求包括可擴展性、互操作性和分散式帳本。
* 大部分現有的研究未關注帳本的可擴展性和交易速率的提高。
* 本文的主要目標是創建一個可在物聯網網絡中實施的框架,並且能夠根據物聯網設備的數量進行擴展。
### SCALABLE BC FRAMEWORK FOR IOT
#### Working Principle and Network Model
* 提議方案的基本原則是物聯網設備不應直接連接到區塊鏈節點。通過在設備和區塊鏈節點之間使用一個中間實體,可以控制交易的流程。此外,所有物聯網設備必須與一個組織有關聯。這個組織實施了一個本地節點(Lpeer)網絡,將留在網絡內部的交易與需要由全局區塊鏈處理的交易區分開來。在提議的框架中,通過將網絡分為三個部分來實現這一原則,如圖2所示。
* (1)應用程序:在全球物聯網基礎設施中,數十億個傳感器、執行器和智能物聯網設備通過互聯網相互連接。這些設備由應用程序控制和管理,可以是固件或網關應用程序的形式。在這個模型中,我們將應用程序視為物件的表示。它負責與其他網絡元素進行前端交互支持。由於不同應用程序生成的數據格式和結構不同,我們假設每個應用程序都能夠使用區塊鏈的標準開發工具包(SDK)來創建交易和智能合約。
* (2)本地節點網絡:為了讓組織使用區塊鏈,該組織必須至少擁有一個節點作為全局區塊鏈網絡的一部分。因此,我們提出了一個本地節點網絡,包括一個認證機構(CA)和一個本地節點(Lpeer)。本地節點網絡在組織層面上實施,根據應用場景將一些設備進行分組。CA負責網絡中設備/用戶的身份驗證和註冊(設備證書和相關智能合約)。本地節點作為組織的本地節點,與全局區塊鏈網絡中的錨節點進行交互。需要注意的是,本地節點和錨節點是具有不同功能的獨立實體。這種結構間接提高了區塊鏈節點的交易速率,並直接改善了錨節點的賬本可擴展性。
* (3)區塊鏈網絡:在全局區塊鏈網絡中,節點相互連接,每個節點維護自己的賬本並持有相關的智能合約(鏈碼)。在提議的結構中,本地節點代表已通過CA驗證的應用程序(已經驗證)與核心節點中的相應節點進行通信(稱為錨節點)。核心區塊鏈的運作方式保持不變。錨節點負責與其他節點進行通信(其他節點可能作為其他組織的錨節點)。如圖2所示,Peer0充當錨節點並與本地節點進行通信。跨組織的交易通過錨節點的核心網絡進行。也可能直接將核心區塊鏈節點與客戶端直接連接,作為通用節點的功能。

#### Local Peer Network: Design Details
* Lpeer和相關系統元素的實現細節如圖3所示。如前所述,單個應用程序實例代表一個可以生成交易的個別設備。錨節點是全局區塊鏈網絡的一部分。圖的其餘部分代表完整的Lpeer網絡。Lpeer網絡在組織層面上實施。雖然物聯網設備可以進行D2D通信,但如果沒有與某個組織關聯,它們將無法正常運作。例如,安裝在社區中的停車計費器可以是物聯網設備(並且可以生成交易),但如果沒有停車服務組織來進行維護、收集數據、驗證等操作,它們將無法正常運作。在這個例子中,Lpeer網絡具有以下元素。
* (1)證書授權機構(CA):證書授權機構(CA)服務器是一個完全可信的實體,支持各種憑證認證架構。它是架構的重要組成部分,因為在區塊鏈網絡中沒有其他實體可以提供證書、簽名和密鑰。它生成管理員的所有證書,包括用戶註冊的證書。所有用戶應用程序都連接到CA以獲取它們的加密密鑰和簽名。此外,它提供憑證驗證、簽名生成和驗證以及區塊鏈各個組件之間的TLS安全連接。然而,它不直接負責訪問控制。設備/應用程序必須實現該解決方案,並且許多僅需請求進行簽名驗證。
* (2)本地節點(Lpeer):Lpeer僅為組織內的物聯網設備工作。在提議的框架中,我們將Lpeer分為Lpeer0、Lpeer1到LpeerN,其中Lpeer0是主要實例,而其他所有實例是地理分佈的次要實例,以消除單點故障。此外,在需要在本地交易中達成共識的應用場景中,次要Lpeer可以參與。選擇性的次要Lpeer還維護賬本的副本。所有設備都必須向Lpeer0註冊。它通過CA對每個設備進行驗證,並維護用戶、憑證和智能合約的活動列表。只有Lpeer0實例被允許將區塊寫入賬本。此外,它還負責與錨節點進行組織間交易的互動。
* (3)訂單節點和訂單服務:訂單節點提供訂單服務,可以處理多個Lpeer的交易(如果有的話)。訂單節點的主要責任是接收來自不同應用程序/設備的交易,並根據訂單算法的批量指令將其納入區塊中。它存儲了所有CA生成的證書和簽名的副本。當任何用戶調用交易時,訂單節點使用自己的證書和簽名進行驗證。需要注意的是,訂單節點不是礦工。訂單節點的責任特定於收集交易並創建區塊。礦工通常在加密貨幣區塊鏈中工作,通過工作量證明共識算法確保可靠性。
* (4)賬本(Ledger):賬本是所有交易的防篡改和序列化記錄。交易是組織內參與方提交的鏈碼調用的結果。賬本與Lpeer0相關聯,Lpeer0具有對其進行讀寫的權限。次要節點可以維護賬本的自動更新副本,僅在Lpeer0停止運行時使用。在本文中,Lpeer和區塊鏈使用狀態數據庫來維護日誌,以驗證成功的交易。
* (5)軟體開發套件(SDK):在區塊鏈中,SDK作為一個shim套件,通過使用用戶的加密憑證,將交易提案準備成明確的格式。在這個提案中,我們使用SDK將來自各種應用程序的數據和交易信息格式化為標準格式。
* (6)智能合約:智能合約是一份數字合約,定義了兩個設備之間交易的條款和條件。它以鏈碼的形式實現,基於業務模型和資產定義。本文使用智能合約,就像它們在全球區塊鏈網絡中定義的那樣[26]。

#### Transaction Structure and Processing
1. IoT設備註冊:為了成為系統的一部分,每個IoT設備都必須按照圖4(a)所示的順序向CA和Lpeer0進行註冊。註冊流程的第一步是與CA進行註冊,其中CA將為設備提供一個唯一的簽名和加密密鑰對。CA負責創建不同的證書(如TLS CA、eCert等)、簽名、公私鑰,並將它們提供給設備。然後,使用這些材料,設備在Lpeer0進行註冊,Lpeer0通過CA驗證請求者的身份。在驗證階段,Lpeer0存儲設備的所有憑證(如TLS、CA證書和簽名),以供以後的驗證使用。這個過程確保只有授權的IoT設備才能成為本地區塊鏈網絡的一部分。此外,由於IoT設備還將成為全球區塊鏈網絡的一部分,Lpeer0將設備與錨點節點進行註冊。本地註冊過程按照算法1的步驟完成設備註冊。CA主要生成和存儲簽名和加密材料(例如證書),作為對設備註冊請求的響應(僅在被接受時)。當設備di與Lpeer0關聯時,設備的註冊ID變為Peerid.Deviceid,用於後續的交易。


2. 交易處理:對於每個由Lpeer0接收的交易,它會驗證該交易是否來自有效的使用者。如果設備已註冊,則使用算法2進行驗證。交易提案作為消息TPi,j(Mi,j)從設備(di)傳遞到Lpeer PLpeer,其中i = 1, 2, 3,...,n表示設備,j = 1, 2, 3,...,n表示每個di的消息。sk和pk分別表示設備di的私鑰和公鑰。同樣地,Lppk表示Lpeer的公鑰,Lpsk表示Lpeer的私鑰。交易提案被創建為TPi,j = Encrypt(Lppk)[Signdi, SignAd(di), Hash(Mi,j)],其中Ad表示對等體中連接設備的管理員。對等體驗證交易提案消息TPi,j並使用私鑰進行解密。解密後,它驗證設備簽名Sign(di)和Lpeer管理員簽名SignAd(di),包括所有證書。當所有驗證結果為正時,Lpeer對提案進行簽名並向源應用程序發送正面回應。簽名是此註冊處理機制的關鍵安全元素。為了生成和驗證數字簽名,遵循以下過程。假設di將對消息Mi,j進行簽名。di創建一個私鑰整數dpi ∈ (1, n − 1)和一個公鑰Q = dpi × G。這裡,G是具有大素數次序n的橢圓曲線的生成器。di選擇任意一個隨機整數k ∈ (1, n − 1),並計算e = Hash(Mi,j),並計算曲線點(x1, y1) = k × G,其中e的最左位是z。計算r = x1 mod n和s = k−1(z + rdpi) mod n,其中r = 0,且s = 0。最後,簽名是一對(r, s)。Lpeer驗證並接受簽名,最初將其視為有效,如果(r, s) ∈ (1, n − 1),否則拒絕。為了驗證,使用SHA-1算法計算Hash(m)並將其結果轉換為整數e和w = s−1 mod n。Lpeer的簽名被確認為Lpack sign = (x1, y1) = u1G + u2Q,其中u1 = z × w mod n且u2 = rw。這裡,z是e的最左位。如果r ≡ x1 (mod n),則接受di的簽名為有效。如果(r, s) = 0,則簽名(r, s)必須無效。

3. 交易流程:在基於區塊鏈的物聯網中,從設備的角度來看,有兩種類型的交易:1) 在同一個Lpeer註冊的設備之間的交易;2) 在不同的Lpeer註冊的設備之間的交易。整體的交易流程如圖5所示。所提出的框架與交易格式無關。以Hyperledger的通用格式(附帶示例)在圖4(b)中顯示,供參考。在第一種情況下,當兩個設備都在同一個Lpeer註冊時,進行組織內交易處理。來自源的交易請求通過SDK轉發到Lpeer0,並附帶鏈碼ID,然後進行身份驗證和評估。通過執行鏈碼生成交易結果,並設置回應值(作為讀/寫值)。這些值和背書對等體的簽名作為提案回應發送回應用程序。應用程序驗證背書者和提案回應的簽名,並將交易轉發到排序服務以添加到下一個可用的區塊中。排序器可以同時接收來自不同應用程序的背書交易。根據排序器環境配置變量,所有並發交易都將添加到一個區塊中。排序器將該區塊發送給提交對等體(Lpeers),以將其添加到其分類帳中,並向應用程序發送通知消息。在第二種情況下,由於設備未在同一個Lpeer註冊,因此在全球背書方面使用錨點對等體。組織間的交易將遵循通用的核心區塊鏈網絡背書解決方案。一旦Lpeer確定不應背書此交易請求,它將通知源應用程序並將請求轉發給錨點對等體。遵循完整的背書過程(類似於之前的情況,但在全球區塊鏈層級上),並將結果直接返回給應用程序。還可能發生特殊情況,其中一個設備不符合所提出的Lpeer結構,或者兩個設備都不符合。在任何情況下,由於背書將在全球區塊鏈層級進行,因此Lpeer不需要進行特殊處理。


4. 設計影響:在深入探討實施和評估細節之前,我們在這裡闡述設計的一些技術影響。
* 交易請求在錨點對等體和Lpeer之間劃分,這顯著減輕了對對等體(在全球區塊鏈中)的負載,無論是在背書所需的時間還是分類帳大小方面。此外,CA和次級Lpeer提供了額外的安全網。
* 與傳統機制相比,分類帳現在被劃分。這種劃分僅適用於與Lpeer組織相關的交易。就全球區塊鏈對等體網絡而言,錨點對等體擁有由全球網絡處理的交易的完整分類帳。因此,這種劃分不會影響區塊鏈中對等體之間的工作或信任。
* 由Lpeer維護的分類帳不是私有的,而是受到權限控制的。如果外部實體需要獲取特定組織的內部交易,它們可以通過錨點對等體訪問它們。只需要在對等體中實施功能邏輯以啟用此功能。
* Lpeer0是唯一允許對分類帳進行寫入的Lpeer。LpeerN只能參與背書過程。擁有多個實例的目的是實現組織內的可擴展性,在Lpeer0失效的情況下具有備份。不允許所有Lpeer實例對單個分類帳進行寫入,因為這將產生同步問題。此外,它們都不應該擁有個別的分類帳,否則全球區塊鏈可擴展性的問題將向組織級別滲透,從而失去主要目的。
* 未經授權的交易可能通過兩種方式進行:a) 在網絡中添加非法的對等體或設備,或b) 合法設備變成流氓。對於第一種情況,我們在組織內使用一個CA緊密監控用戶的添加(算法1),而Lpeer的添加是由網絡管理員進行的受控過程。入侵Lpeer對黑客沒有好處,因為區塊鏈的共識原則涉及多個對等體。同樣,合法用戶變成流氓,也無法發出非法交易,因為Lpeer共識不會批准這些交易。
### IMPLEMENTATION AND EVALUATION
* 這篇論文的目標是在物聯網(IoT)的背景下解決區塊鏈(BC)的可擴展性問題。所提出的框架旨在通過提高交易執行速度和減少節點的賬本大小來實現這一目標。值得注意的是,BC和IoT都是不斷發展的技術,可用平台的架構也在迅速變化,這可能會影響評估結果。
* Hyperledger Testbed Setup
* 我們使用了Hyperledger Fabric(v1.0.2)來測試我們的提案。測試平台包括兩台機器,其配置如下以模擬拓撲結構:1)2.7 GHz,Intel i-7,16 GB 1600 MHz DDR3;2)3.0 GHz,Intel i-5,8 GB 1600 MHz DDR3。第一台機器模擬Lpeer網絡,而第二台機器模擬全球區塊鏈(BC)。我們使用基於Ubuntu容器的虛擬化技術來運行節點。基於Node-red的應用程序通過智能合約以JSON負載消息的形式生成連續的交易,並發送給Lpeer。Lpeer具有一個orderer和一個關聯的節點組織,一個通道和Kafka訂單服務。對於全球BC網絡,我們創建了四個節點,涉及兩個控制組織。有一個訂單服務器與Kafka-Zookeeper相連。我們使用Configtxgen工具創建了創世塊(BC的第一個區塊,沒有前一個區塊的哈希值),一個通道(將交易廣播到訂單服務器)和一個與Lpeer關聯的錨節點。我們還指定了每個成員的MSP路徑位置。訂單服務器定義了交易的配置或結構,包括每個區塊的交易數量、區塊的最大大小以及等待交易的最大時間。在這個設置中,我們根據實驗需求調整了這些值(稍後描述)。我們在BC網絡中使用了Kafka共識算法。
* TPS Observations
* 著數十億個物聯網設備生成交易,對等方在處理交易時的速度必須極快。根據設計,所提出的框架隔離了基於組織的本地交易,從而減少了每個對等方的請求數量。通過實驗觀察到,在Lpeer網絡中,每個用戶生成證書的時間需要約3毫秒。然而,完成一筆交易(從提議到確認)需要約3秒。密切觀察顯示,大部分時間都花在應用層生成交易提議上。通過增加應用程序發出的並發交易數量,平均TPS(提議到確認)降至1秒以下。相比之下,比特幣網絡需要約1小時完成交易。圖6顯示了隨著物聯網設備和並發交易數量增加的整體交易完成時間。在此場景中,批次超時(區塊關閉)設置為1秒進行TPS評估。重要的是要理解,每秒發出5筆交易的物聯網設備會產生5個並發交易。同樣,50個物聯網設備會產生500個並發交易(每個設備每秒10筆交易)。正如第三節中所提到的,Lpeer是區分交易路徑的唯一機構。根據圖6,對於單個物聯網設備,1個交易需要約20毫秒,而10個交易需要約57毫秒。同樣,從20個物聯網設備開始,20至200個並發交易分別需要約75至222毫秒。隨著並發交易量增加20倍,時間需求增長的速度非常緩慢。最後,對於30至50個設備,網絡處理30至500個並發交易,其中最低需時約77毫秒,最長需時約337毫秒。我們觀察到交易完成的增長不是很快的原因是Lpeer結構高效處理交易量。一旦生成了交易提議,Lpeer網絡中的平均交易時間約為1至10毫秒,而在全球區塊鏈網絡中約為2至56毫秒。我們密切觀察到,交易完成時間(僅包括BC和Lpeer層,不包括應用層)約為1至56毫秒。TPS高度依賴於環境變量的正確設置,這些變量受交易量、單個交易的大小、日誌級別等影響。在實驗中觀察到,即使是微小的配置錯誤也會影響處理時間,例如將Hyperledger的日誌可見性模式保持開啟,平均處理時間從20毫秒增加到32毫秒。

* Block Weight and Ledger Scalability Analysis
* 區塊鏈(BC)在分類帳中維護一個不斷增長的有序交易列表,稱為區塊。每個區塊都有唯一的編號,從零開始按順序分配。除了創世區塊外,每個區塊都與前一個區塊相連。每個區塊包含三個部分:1)標頭;2)交易信息;和3)元數據。
* (1)單個區塊的權重:區塊的權重指的是存儲該區塊所需的內存。這與區塊的大小不同,區塊的大小指的是一個區塊中包含的交易數量。此外,區塊的內容以字符串形式存儲(即,轉換時,4字節整數可能需要更多內存)。在我們的分析中,我們觀察了存儲在對等節點上的分類帳的實際權重,以獲得真實的內存需求。在多次實驗中,觀察到的平均區塊權重約為4.6 kB,其中包含單個由單個對等方認可的交易。這個值在很大程度上取決於交易本身的權重、一個區塊中的交易數量,以及每個交易的認可對等方的數量。由於每個認可者的簽名都被添加到交易中,因此隨著認可對等方的數量增加,權重也會增長。
* (2)區塊權重與並發交易數量:如前所述,相比當前的加密貨幣交易,物聯網設備將以更高的速率生成交易。因此,我們分析了應用程序發出的並發交易數量對區塊權重的影響。批處理超時為50秒(區塊關閉時間)。這個值對於生產級系統來說太高,但它使我們能夠研究一個區塊中更多的交易。每個批次的最大消息數為2K,每個批次的最大權重為100 MB。每個消息的首選最大字節數設置為512 kB。圖7顯示了區塊權重與應用程序發出的交易數量之間的關係圖。紅線代表傳統的區塊鏈架構,隨著數量的增加,它幾乎按順序增長。其他兩條線表示由Lpeer和錨點節點生成的提案框架中的區塊權重。值得注意的是,交易內部組織的概率為0.7。這個概率是現實的,因為停車計可能更有可能與其他停車服務設備生成交易,而不太可能與溫度感應器交換數據。Lpeer和錨點節點的區塊權重增加,但增長速度不及傳統的區塊鏈架構。根據交易方,交易被分為Lpeer和錨點節點,從而減少了區塊權重。此外,由於每個區塊中的交易數量更多,Lpeer的區塊權重相對較高。雖然錨點節點要處理的交易較少,但由四個對等節點進行驗證會增加區塊權重。在生產環境中,將會存在更多的對等節點,從而增加錨點節點的區塊權重。

* (3)賬本的擴展性:圖8代表了兩個框架中賬本的擴展性。由於區塊按照順序添加,因此區塊高度指的是添加到賬本中的區塊數量。顯示的記憶體是累計的。區塊0是創世區塊,在大多數情況下大約佔用12 kB 的記憶體。區塊1只包含實例化數據並且包含1個交易。在傳統的區塊鏈網絡中,從區塊2到區塊11,記憶體大小的增加是急劇的。另一方面,對於相同數量的交易和區塊,提議的框架區塊鏈賬本需要更少的記憶體資源。此外,由於區塊鏈網絡中的所有對等節點都維護著相同的賬本副本,因此整體消耗與對等節點的數量成比例。對於Lpeer而言,由於每個組織只有一個賬本,它在不同的物聯網領域中變得更具擴展性。

### Conclusion
* 物聯網設備的快速擴散促使人們重新尋找保護數據和用戶隱私的安全解決方案。同樣地,區塊鏈技術已成為安全的基於交易的通信的候選方案。本文顯示,除非解決可擴展性問題,否則無法將物聯網和區塊鏈整合在一起。所提出的框架創建了一個Lpeer網絡,以使區塊鏈賬本能夠在所有對等節點之間擴展。從實現的測試平臺獲得的結果顯示,可以實現TPS和賬本重量的顯著改進。這將使物聯網中大規模業務交易的可擴展性得到改善,並解決存儲區塊所需的記憶體需求問題。目前的實現和評估部分是在虛擬機器中進行的,其中應用程序是使用Node-red實現的。作為未來的工作,我們計劃在真實世界的情境中實施解決方案,並使用實時交易數據進行評估。此外,所提出的解決方案僅關注可擴展性和資源保護,並使用現有的交易結構而沒有對其進行任何優化。對於不同類型的業務鏈條,具有優化的統一交易結構或具有多個鏈條之間互操作性的專門結構將是一個有趣的方向。