如何建設(shè)智慧城市?基于區(qū)塊鏈搭建隱私共享框架

量觀網(wǎng)絡(luò)
利用區(qū)塊鏈的數(shù)據(jù)完整性和智能合約特性,可以安全地和自主地執(zhí)行智慧城市環(huán)境中的各種操作。此外,區(qū)塊鏈還可以防止服務(wù)器入侵和篡改/修改權(quán)限的不利影響。毫無疑問,在智慧城市環(huán)境中,人們只有在確保通過各種設(shè)備收集的個人和敏感數(shù)據(jù)得到充分保護并對其有控制權(quán)的情況下,才會在分享個人信息時感到安全。

導(dǎo)語

筆者近期正在研究基于區(qū)塊鏈和隱私計算的數(shù)據(jù)安全共享解決方案,仔細(xì)研讀了Imran Makhdoom 等人撰寫的研究論文《PrivySharing:A Blockchain-Based Framework for Privacy-Preserving and Secure Data Sharing inSmart Cities》,深受啟發(fā),特此共享部分學(xué)習(xí)筆記,以資借鑒。

研究目標(biāo)

在智慧城市中如何應(yīng)用區(qū)塊鏈進(jìn)行數(shù)據(jù)安全共享,提出了相關(guān)協(xié)議;

如何進(jìn)行數(shù)據(jù)上鏈;

普通數(shù)據(jù)和保密數(shù)據(jù)如何處理(保密數(shù)據(jù)只存數(shù)據(jù)HASH值);

如何利用智能合約進(jìn)行數(shù)據(jù)訪問控制。

摘要部分

物聯(lián)網(wǎng)(IoT)的應(yīng)用非常廣泛,從工業(yè)控制系統(tǒng)到電子健康、電子商務(wù)、智慧城市、農(nóng)業(yè)、供應(yīng)鏈管理、智能汽車、網(wǎng)絡(luò)物理系統(tǒng)等等。然而,loT系統(tǒng)收集和處理的數(shù)據(jù),尤其是集中控制的數(shù)據(jù),容易受到可用性、完整性和隱私威脅。

本文提出了“隱私共享”,一個基于區(qū)塊鏈的創(chuàng)新框架,用于解決在智慧城市環(huán)境中進(jìn)行批量數(shù)據(jù)共享時面臨的隱私泄露和安全保護問題。本文所提出的方案在許多方面與現(xiàn)有的策略不同;

通過將區(qū)塊鏈網(wǎng)絡(luò)劃分為多個通道(Ch)來保護數(shù)據(jù)隱私,每個通道(Ch)由有限數(shù)量的授權(quán)機構(gòu)組成,并處理特定類型的數(shù)據(jù),如健康、智能汽車、智慧能源或財務(wù)信息;

通過在智能合約中嵌入訪問控制規(guī)則來控制對通道(Ch)內(nèi)用戶數(shù)據(jù)的訪問;

通過分別使用私有數(shù)據(jù)收集和加密,可以進(jìn)一步隔離和保護通道(Ch)中的數(shù)據(jù);

使客戶端能夠與區(qū)塊鏈網(wǎng)絡(luò)交互的REST API具有API密鑰和OAuth 2.0形式的雙重安全性。本文建議的解決方案符合歐盟一般數(shù)據(jù)保護條例(GDPR)中概述的一些重要要求;

提供一個名為“PrivyCoin”的數(shù)字令牌獎勵系統(tǒng),以激勵用戶與第三方分享資料;

實驗結(jié)果表明,與單通道(Ch)區(qū)塊鏈系統(tǒng)相比,多通道(Ch)區(qū)塊鏈系統(tǒng)具有良好的可擴展性。

重要貢獻(xiàn)

在智慧城市環(huán)境中提供隱私保護,防止大部分威脅用戶數(shù)據(jù)完整性和隱私的外部和內(nèi)部攻擊;

遵守歐盟GDPR的一些基本要求;

一個基于區(qū)塊鏈的解決方案,提供關(guān)于用戶數(shù)據(jù)的“忘記權(quán)”;

一個可伸縮的(關(guān)于區(qū)塊大小)、安全、高效的(關(guān)于能源消耗和計算需求)數(shù)據(jù)共享框架;

用戶定義的對用戶數(shù)據(jù)的細(xì)粒度訪問控制;

提供透明和可審計的網(wǎng)絡(luò)操作,同時控制用戶私有數(shù)據(jù)的泄露;

通過REST API對區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行安全的客戶端訪問;

為與利益相關(guān)者/第三方共享數(shù)據(jù)的用戶提供獎勵系統(tǒng)。

研究內(nèi)容

4.1

1.在智慧城市中如何利用區(qū)塊鏈進(jìn)行數(shù)據(jù)共享,提出了相關(guān)協(xié)議

(1)隱私共享:基于區(qū)塊鏈的數(shù)據(jù)安全共享

利用區(qū)塊鏈的數(shù)據(jù)完整性和智能合約特性,可以安全地和自主地執(zhí)行智慧城市環(huán)境中的各種操作。此外,區(qū)塊鏈還可以防止服務(wù)器入侵和篡改/修改權(quán)限的不利影響。毫無疑問,在智慧城市環(huán)境中,人們只有在確保通過各種設(shè)備收集的個人和敏感數(shù)據(jù)得到充分保護并對其有控制權(quán)的情況下,才會在分享個人信息時感到安全。這種保證只能由精心選擇和精心設(shè)計的區(qū)塊鏈技術(shù)來提供。

為了實現(xiàn)上面提到的智慧城市用例,本研究使用了Hyperledger-Fabric作為底層區(qū)塊鏈平臺,相比其他區(qū)塊鏈平臺而言,Hyperledger-Fabric是一個私有的、受限制的許可區(qū)塊鏈,只有授權(quán)方才能參與網(wǎng)絡(luò)。區(qū)別于其他區(qū)塊鏈技術(shù)的關(guān)鍵特征是,在Hyperledger中,區(qū)塊鏈分類賬由兩個相關(guān)的部分組成,即,一個記錄TXs的區(qū)塊鏈和一個跟蹤分類賬狀態(tài)的狀態(tài)數(shù)據(jù)庫。

(2)網(wǎng)絡(luò)體系結(jié)構(gòu)

如上圖所示,智慧城市區(qū)塊鏈網(wǎng)絡(luò),由11個組織及其相關(guān)的對等節(jié)點組成。考慮到與不同利益相關(guān)方共享不同類別的用戶數(shù)據(jù),以及確保用戶數(shù)據(jù)隱私和安全的要求,如下圖所示的區(qū)塊鏈網(wǎng)絡(luò)由5個不同的數(shù)據(jù)通道(Ch)組成。

通道(Ch)提供了一組組織之間完全獨立的通信機制。而且,每個通道(Ch)都獨立于其他通道(Ch)。因此,這些通道(Ch)通過僅與授權(quán)實體安全地共享特定類型的數(shù)據(jù)來保護用戶數(shù)據(jù)的隱私。

由網(wǎng)絡(luò)配置中心(NC)指定的策略規(guī)則來控制對智慧城市網(wǎng)絡(luò)的訪問。

組織01更新NC并將02、03和04也授予管理(admin)權(quán)限。這些組織現(xiàn)在可以創(chuàng)建聯(lián)盟和通道(Ch)來添加更多的網(wǎng)絡(luò)成員。類似地,每個通道(Ch)都由各自的通道配置(CC)中指定的策略規(guī)則管理。

每個通道(Ch)都有一個單獨的分類賬,所有的對等節(jié)點都必須維護一個關(guān)于其所屬的每個通道(Ch)的分類賬副本。

通道(Ch)中的數(shù)據(jù)與包括其他通道(Ch)在內(nèi)的其他網(wǎng)絡(luò)隔離。

我們提出的網(wǎng)絡(luò)架構(gòu)的另一個重要功能是在不同層次(如網(wǎng)絡(luò)、通道(Ch)和本地/對等網(wǎng)絡(luò))上使用會員服務(wù)提供商MSP。網(wǎng)絡(luò)MSP(NMSP)定義了誰是網(wǎng)絡(luò)的所有成員,以及其中誰具有管理員權(quán)限。此外,NMSP還定義了哪些RCAs/CAs是可信的。

另一方面,通道MSPs(CMSP)概述了通道(Ch)級的管理和參與權(quán)。所有的對等節(jié)點和ODS(訂購服務(wù))共享一個公共的CMSP來正確地管理和驗證通道(Ch)成員的授權(quán)。

CMSP的用例是,例如,某個組織的管理員想要在通道(Ch)1上實例化一個SC,然后通過查看CMSP,其他通道(Ch)成員可以驗證該管理員是否是特定組織的一部分以及他是否有權(quán)在通道(Ch)1上實例化SC。類似地,為每個客戶端節(jié)點/對等節(jié)點定義了本地MSP(LMSP)。LMSP將對等方與其組織關(guān)聯(lián)起來。它還定義了該對等節(jié)點的權(quán)限,并允許其在通道(Ch)上的TXs中進(jìn)行身份驗證。

在這里可能會出現(xiàn)一個問題,即CC(通道配置)和CMSP有什么區(qū)別。CC包含管理該通道(Ch)的策略,即哪些組織可以管理通道(Ch)并添加新成員。而CMSP建立了節(jié)點與它們各自的組織之間的鏈接,并且節(jié)點可以在通道(Ch)中扮演什么角色,即,它可以在通道(Ch)上實例化SC嗎?

關(guān)于權(quán)力下放方面;與單個組織中的所有管理權(quán)限相比,使用專用的可信CA、區(qū)塊鏈管理員和業(yè)務(wù)網(wǎng)絡(luò)管理員可以在一定程度上分散管理權(quán)限。

4.2

2.如何進(jìn)行數(shù)據(jù)上鏈

為確保通道(Ch)內(nèi)關(guān)鍵用戶數(shù)據(jù)的私密性,在通道(Ch)中,采取了一種“私有數(shù)據(jù)收集”的方法,將部分用戶數(shù)據(jù)對某些組織保密,其中重要的私人資料只會直接發(fā)送給獲得授權(quán)的機構(gòu)。這些數(shù)據(jù)存儲在一個高級數(shù)據(jù)庫中。

在被授權(quán)的節(jié)點上。雖然私有信息存儲在授權(quán)節(jié)點上,但只處理此數(shù)據(jù)的散列,即數(shù)據(jù)的哈希作為TX的證據(jù),也有助于對事件狀態(tài)的驗證。

這里一個重要的數(shù)據(jù)安全特性是,排序節(jié)點看不到私有數(shù)據(jù)。

但是,為了進(jìn)一步提高數(shù)據(jù)隱私/機密性的級別,用戶可以選擇加密他的私有數(shù)據(jù),這樣即使是被授權(quán)查看存儲在私有數(shù)據(jù)集合中的數(shù)據(jù)的對等節(jié)點也不能看到原始內(nèi)容。

數(shù)據(jù)使用AES-256位對稱加密密鑰進(jìn)行加密,然后存儲在私有數(shù)據(jù)集合中。稍后,只有有權(quán)訪問解密密鑰的授權(quán)用戶才能查詢用戶的私有數(shù)據(jù)。

除了數(shù)據(jù)加密之外,還有一個附加的特性:對私有數(shù)據(jù)進(jìn)行簽名加密,以提高用戶身份驗證和數(shù)據(jù)安全性。

4.3

3.普通數(shù)據(jù)和保密數(shù)據(jù)如何處理,保密數(shù)據(jù)只存數(shù)據(jù)HASH值

(1)智慧城市區(qū)塊鏈-純TX流

TXs有兩種類型:一個是普通TX,可供所有通道(Ch)成員查看,另一個是私有數(shù)據(jù)TX,僅與一些選定的同行共享通道(Ch)共享。

在這方面,例如,通過安裝在愛麗絲智能汽車中的ClientAppA來啟動更新愛麗絲汽車在Ch2上的當(dāng)前位置狀態(tài)所需的普通TX。

此TX(如上圖5a所示)按以下步驟進(jìn)行處理。

步驟1:ClientAppA調(diào)用SCA,并根據(jù)Ch2上的SC A認(rèn)可策略將包含愛麗絲汽車當(dāng)前位置的TX提議發(fā)送給預(yù)定義的背書人。在這種情況下,背書人是E2a(RTA),E2b(警察)和E2c(汽車服務(wù)提供商)。如果TX獲得三位指定背書者中的至少兩位背書,則該TX將被批準(zhǔn)。

步驟 2:三個代言人E2a中,E2b和E2c調(diào)用SCA建議;SCA生成一個查詢或更新建議響應(yīng),背書人E2a和E2b對提案的正確性表示認(rèn)可。

步驟3:E2a和E2b都向ClientAppA發(fā)送已簽署(認(rèn)可)的TX提案響應(yīng)和RW(讀、寫)。在此階段,背書的同行不將擬議的更新應(yīng)用于其總賬副本。

步驟4:ClientAppA驗證從至少兩個背書人那里收到的響應(yīng)是相同的,即確定性的。但是,結(jié)果可能是在不同時間,不同分類賬的不同對等節(jié)點生成的結(jié)果。因此,對等節(jié)點可以針對相同的TX建議返回不同的TX響應(yīng)。在這種情況下,應(yīng)用程序可以簡單地請求一個最新的建議響應(yīng)。

另一個不太可能的可能性是,SC可能是不確定的,例如,當(dāng)從某些網(wǎng)站獲取外匯(外匯匯率)數(shù)據(jù)時,TX的響應(yīng)可能會有所不同,因為外匯匯率在不同時間可能會有所不同。因此,不一致的結(jié)果不能被應(yīng)用程序接受并應(yīng)用于總賬。

步驟5:一旦ClientAppA驗證了背書人的響應(yīng),它就會將TX發(fā)送到ODS。

步驟6:然后ODS將接收到的TXs分組到一個塊中。塊中的TXs序列不一定與排序者處的TXs到達(dá)順序相同。但是,生成的塊是最終的,沒有分叉。此外,訂購者不托管分類賬和SCs,他們也不關(guān)心TX的值,而只是將TXs打包到塊中。

步驟7:ODS將下一個提議的塊廣播給通道(Ch)2上的所有節(jié)點。

步驟8:所有提交對等方均會驗證塊中的每個TX(與它們在塊中出現(xiàn)的順序相同),以確保在將所有TX應(yīng)用于分類賬之前,它已被所有必需的背書人正確背書。一旦正確驗證了TX,對等方將執(zhí)行分類賬一致性檢查,以確保生成建議的更新時,分類賬的當(dāng)前狀態(tài)與分類賬的狀態(tài)兼容。根據(jù)已驗證的TX更新世界狀態(tài)。

要注意的是,失敗的TX不會應(yīng)用于分類賬上,但會保留它們用于審計。此外,步驟8中的TX驗證不需要運行SCs。這僅由背書人完成。因此,SC僅安裝在背書人的電腦上上。這使SC的邏輯僅對認(rèn)可組織保密。此外,對等方還將每個塊中的每個TX標(biāo)記為有效或無效。

最后,一個新的塊被附加到分類賬L2中存儲的哈希鏈中,并由文件系統(tǒng)中的所有對等方維護。

步驟9:生成分類賬更新事件,并通知ClientAppA。需要注意的是,在添加塊之前,要執(zhí)行版本檢查,以確保更新的狀態(tài)與SC執(zhí)行期間讀取的狀態(tài)相同。它可以防止雙重開銷和其他數(shù)據(jù)完整性威脅。上面提到的由訂貨方協(xié)調(diào)的TX工作流程稱為“共識”,即所有的同行對TXs的內(nèi)容和順序達(dá)成一致。

(2)智慧城市區(qū)塊鏈私有數(shù)據(jù)TX流

根據(jù)上圖3所示的智能城市網(wǎng)絡(luò)設(shè)置,如果Alice身上的可穿戴式血液酒精監(jiān)測設(shè)備產(chǎn)生警報,則僅由她的主要醫(yī)療中心和當(dāng)?shù)鼐炜吹剑粤⒓醋龀鲰憫?yīng)。

在這種情況下,需要保持TX私有,Ch1上除P2,P4和P5之外的其他成員不應(yīng)看到該TX。這種私有數(shù)據(jù)TX(如上圖5(b)所示)按以下步驟處理:

步驟1:ClientAppB向提議的對等節(jié)點E1b(主醫(yī)療中心)和E1c(警察)提交提案請求以調(diào)用SC功能(RW私有數(shù)據(jù)),這些對等節(jié)點是收集的授權(quán)組織的一部分(由關(guān)于健康警報的私有數(shù)據(jù)分發(fā)策略定義)。關(guān)于血液酒精濃度健康警報的私有數(shù)據(jù)是在提案的一個臨時字段中發(fā)送的。

步驟2:E1b和E1c模擬TX,并將私有數(shù)據(jù)存儲在瞬態(tài)數(shù)據(jù)存儲區(qū)(它們本地的臨時存儲區(qū))中。背書節(jié)點還通過閑話將基于收集策略的私有數(shù)據(jù)分發(fā)給授權(quán)對等方。但是在這種情況下,我們只有三個對等點,即P2(E1b),P4(E1c)和P5。

步驟3:E1b和E1c將提案響應(yīng)與公共數(shù)據(jù)一起發(fā)送回ClientAppB,其中包括私有數(shù)據(jù)密鑰和值(酒精度)的哈希值。沒有任何私有數(shù)據(jù)以明文形式發(fā)送回ClientAppB。

步驟4:ClientAppB驗證從E1b和E1c接收到的RW集是否相同。

步驟5:ClientAppB將帶有私有數(shù)據(jù)哈希值的TX提交給ODS。

步驟6:ODS將TX打包在最新塊中。具有散列值的塊分配給Ch1上的所有對等節(jié)點。

步驟7:通道上的所有對等節(jié)點都以一致的方式用私有數(shù)據(jù)的哈希值驗證TX,而無需知道實際的私有數(shù)據(jù)。

步驟8:生成分類賬更新事件,并通知ClientAppB。

4.4

4.如何利用智能合約進(jìn)行數(shù)據(jù)訪問控制

通過多個通道(Chs)實驗結(jié)果對用戶數(shù)據(jù)資產(chǎn)的受限訪問。除了通過Ch中的ACL規(guī)則限制對用戶數(shù)據(jù)資產(chǎn)的訪問外,使用特定于數(shù)據(jù)的Chs還有助于保護用戶的數(shù)據(jù)隱私。通過本研究的PoC,我們已經(jīng)驗證了PrivySharing智慧城市網(wǎng)絡(luò)中的每個Ch均獨立于其他具有相關(guān)Ch成員的Ch。

當(dāng)來自組織7的P13(不是Ch1的成員)嘗試查詢用戶的心率數(shù)據(jù)時,他將獲得拒絕訪問錯誤,因為他無權(quán)訪問在Ch1上傳播的任何數(shù)據(jù)資產(chǎn)。由于PrivySharing是一個許可的聯(lián)盟區(qū)塊鏈,因此所有網(wǎng)絡(luò)成員在加入網(wǎng)絡(luò)之前均已進(jìn)行了適當(dāng)?shù)淖院驼J(rèn)證。

但是,即使通過損壞的網(wǎng)絡(luò)管理員將未經(jīng)授權(quán)的節(jié)點添加到系統(tǒng)中,ACL規(guī)則也會禁止入侵者未經(jīng)授權(quán)訪問用戶的數(shù)據(jù)資產(chǎn)。

相關(guān)知識

1.Hyperledger

Hyperledger (超級賬本)是一組開源工具,旨在構(gòu)建一個強大的、業(yè)務(wù)驅(qū)動的區(qū)塊鏈框架。

Hyperledger (超級賬本)是區(qū)塊鏈行業(yè)中最大的項目之一,它由一組開源工具和多個子項目組成。該項目是由 Linux 基金會主辦的一個全球協(xié)作項目,其中包括一些不同領(lǐng)域的領(lǐng)導(dǎo)者們,這些領(lǐng)導(dǎo)者們的目標(biāo)是建立一個強大的、業(yè)務(wù)驅(qū)動的區(qū)塊鏈框架。

2.區(qū)塊鏈網(wǎng)絡(luò)主要有三種類型:公共區(qū)塊鏈、聯(lián)盟區(qū)塊鏈,以及私有區(qū)塊鏈

Hyperledger 是一個區(qū)塊鏈框架,旨在幫助公司建立私人或聯(lián)盟許可的區(qū)塊鏈網(wǎng)絡(luò),在該網(wǎng)絡(luò)中,多個組織可以共享控制和操作網(wǎng)絡(luò)內(nèi)節(jié)點的權(quán)限。Hyperledger Fabric 是 Hyperledger 項目的一個組成部分,是一個區(qū)塊鏈框架的實現(xiàn)。它將成為區(qū)塊鏈應(yīng)用開發(fā)、解決方案的基礎(chǔ)。

Fabric 框架支持組件化、可插拔的共識服務(wù)(Consensus Service)、成員服務(wù)(Membership Service);"許可(Permissioned)"特性使之為"私有性"、"保密性"提供了可靠的解決方案;智能合約(Smart Contracts)在 Fabric 中通過"Chaincode"得以實現(xiàn)。Fabric 最初是由 Digital Asset、IBM 貢獻(xiàn)給 Hyperledger 項目的。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論