陳 齊,王正國(guó),李文鋒,曹菁菁
(武漢理工大學(xué) 物流工程學(xué)院,湖北 武漢 430063)
個(gè)人信息泄露在網(wǎng)絡(luò)購(gòu)物中頻繁發(fā)生,網(wǎng)絡(luò)購(gòu)物平臺(tái)和商家有著很大的責(zé)任,在一次完整的網(wǎng)絡(luò)購(gòu)物中,電商能夠經(jīng)過(guò)很多途徑搜集消費(fèi)者的個(gè)人注冊(cè)信息、訂單信息、支付信息和物流信息。對(duì)于這種情況,大多數(shù)研究側(cè)重利用法律保護(hù)個(gè)人信息,極少有通過(guò)構(gòu)建新型網(wǎng)絡(luò)購(gòu)物平臺(tái)來(lái)從根本上解決個(gè)人信息泄露。
區(qū)塊鏈技術(shù)具有去中心化、去信任、集體維護(hù)、可靠數(shù)據(jù)庫(kù)這4個(gè)特性,可以把區(qū)塊鏈理解為是一種完整的、不可篡改的、多方參與和監(jiān)督的記錄方式[1]。同時(shí),區(qū)塊鏈集成了分布式數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、加密算法等技術(shù),通過(guò)分布式存儲(chǔ)使得數(shù)據(jù)公開(kāi)透明,利用時(shí)間戳技術(shù)使得數(shù)據(jù)可溯源和可驗(yàn)證,利用非對(duì)稱加密技術(shù)使得數(shù)據(jù)安全可信,在惡意算力不足51% 時(shí),無(wú)法篡改和偽造數(shù)據(jù)[2],能有效解決傳統(tǒng)網(wǎng)絡(luò)購(gòu)物平臺(tái)遇到的很多問(wèn)題。
新型網(wǎng)絡(luò)購(gòu)物實(shí)驗(yàn)平臺(tái)的開(kāi)發(fā),從顧客到商家以及整個(gè)相關(guān)環(huán)節(jié)都是受益者,大大提高了網(wǎng)絡(luò)購(gòu)物的安全性與效率,能協(xié)調(diào)現(xiàn)代物流信息化發(fā)展與安全保障的關(guān)系,提升產(chǎn)品在物流配送環(huán)節(jié)的效率,降低成本,促進(jìn)電商物流模式創(chuàng)新。
區(qū)塊鏈技術(shù)是利用塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)來(lái)驗(yàn)證與存儲(chǔ)數(shù)據(jù)、利用分布式節(jié)點(diǎn)共識(shí)算法來(lái)生成和更新數(shù)據(jù)、利用密碼學(xué)的方式保證數(shù)據(jù)傳輸和訪問(wèn)的安全、利用由自動(dòng)化腳本代碼組成的智能合約來(lái)編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計(jì)算范式。區(qū)塊鏈技術(shù)是以比特幣為代表的數(shù)字加密貨幣體系的核心支撐技術(shù),是包含交易信息的區(qū)塊按照時(shí)間順序連接起來(lái)的數(shù)據(jù)結(jié)構(gòu)[3]。區(qū)塊頭和區(qū)塊主體共同組成一個(gè)區(qū)塊,區(qū)塊主體擔(dān)任記錄前一段時(shí)間內(nèi)的一切信息的角色,而區(qū)塊頭實(shí)現(xiàn)區(qū)塊鏈的大部分功能。只有區(qū)塊頭被用于計(jì)算,區(qū)塊頭哈希值能夠唯一、明確地標(biāo)識(shí)一個(gè)區(qū)塊,而且任何節(jié)點(diǎn)想要獨(dú)立地獲得該區(qū)塊哈希值則需對(duì)區(qū)塊頭進(jìn)行哈希計(jì)算。區(qū)塊結(jié)構(gòu)如圖1所示。在比特幣系統(tǒng)中,單個(gè)區(qū)塊的生成過(guò)程主要分為3步,即交易過(guò)程、認(rèn)證過(guò)程和挖礦記賬過(guò)程,以A與B的比特幣交易為例,比特幣交易流程如圖2所示。
圖1 區(qū)塊結(jié)構(gòu)
圖2 比特幣交易流程
核心技術(shù)組件包含區(qū)塊鏈技術(shù)所依靠的基礎(chǔ)組件、協(xié)定和算法,進(jìn)一步細(xì)分為通訊、存儲(chǔ)、安全機(jī)制、共識(shí)機(jī)制4層結(jié)構(gòu)。
(1)通訊:區(qū)塊鏈一般利用P2P技術(shù)來(lái)組織各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)經(jīng)由播實(shí)現(xiàn)路由、新節(jié)點(diǎn)識(shí)別和數(shù)據(jù)傳播等功能。P2P是一種對(duì)等網(wǎng)絡(luò),這種對(duì)等表現(xiàn)在客戶端也可以同時(shí)是服務(wù)器。在區(qū)塊鏈當(dāng)中,使用P2P的對(duì)等網(wǎng)絡(luò)將數(shù)據(jù)進(jìn)行全網(wǎng)的廣播,讓一切的節(jié)點(diǎn)都加入數(shù)據(jù)的驗(yàn)證。對(duì)等網(wǎng)絡(luò)如圖3所示。
圖3 對(duì)等網(wǎng)絡(luò)
(2)存儲(chǔ):區(qū)塊鏈數(shù)據(jù)在運(yùn)行期以塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)存儲(chǔ)在內(nèi)存中,終究會(huì)長(zhǎng)期化存儲(chǔ)到數(shù)據(jù)庫(kù)中。在區(qū)塊鏈中生成的所有記錄通過(guò)Merkle樹(shù)的哈希過(guò)程生成唯一的Merkle根,存儲(chǔ)在區(qū)塊鏈頭部[4]。
(3)安全機(jī)制:區(qū)塊鏈系統(tǒng)的數(shù)據(jù)加密及隱私保護(hù)通過(guò)公鑰與私鑰密碼學(xué)原理進(jìn)行。
(4)共識(shí)機(jī)制:是區(qū)塊鏈系統(tǒng)中各個(gè)節(jié)點(diǎn)達(dá)成一致的策略和方法,根據(jù)系統(tǒng)類型及應(yīng)用場(chǎng)景選擇工作量證明機(jī)制。在區(qū)塊鏈當(dāng)中,區(qū)塊的生成需要一定的工作量和成本。一個(gè)區(qū)塊的產(chǎn)生不是輕易的,發(fā)送大批沒(méi)有意義的區(qū)塊到網(wǎng)絡(luò)上必須付出很多的工作量。這一點(diǎn)保障了產(chǎn)生的區(qū)塊參與到了正確的區(qū)塊鏈上,其他人假如要產(chǎn)生自己的區(qū)塊鏈來(lái)替代正確的區(qū)塊鏈,那么產(chǎn)生的耗費(fèi)遠(yuǎn)遠(yuǎn)大于產(chǎn)生區(qū)塊鏈得到的益處[5]。
(1)研發(fā)階段:必須具有和區(qū)塊鏈技術(shù)配套的開(kāi)發(fā)測(cè)試工具和環(huán)境。
(2)生產(chǎn)階段:必須構(gòu)建對(duì)應(yīng)的運(yùn)營(yíng)維護(hù)體系和運(yùn)營(yíng)管理功能。
(3)部署層面:區(qū)塊鏈系統(tǒng)可以部署在單個(gè)服務(wù)器上,如PC、智能手機(jī)等,以單個(gè)服務(wù)器作為區(qū)塊鏈網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)加入。也可部署在多個(gè)服務(wù)器上,以服務(wù)器集群為單位作為區(qū)塊鏈網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)加入。
新型網(wǎng)絡(luò)購(gòu)物實(shí)驗(yàn)平臺(tái)的功能分為4個(gè)子模塊。平臺(tái)模塊結(jié)構(gòu)如圖4所示。
圖4 平臺(tái)模塊結(jié)構(gòu)
采用區(qū)塊鏈中私有鏈的形式,根據(jù)場(chǎng)景需求設(shè)計(jì)了以下6個(gè)節(jié)點(diǎn)。在這里要說(shuō)明,所有加入平臺(tái)的節(jié)點(diǎn)均為誠(chéng)實(shí)節(jié)點(diǎn)。節(jié)點(diǎn)可以為PC機(jī)或移動(dòng)終端。①監(jiān)管節(jié)點(diǎn):相關(guān)部門對(duì)交易過(guò)程進(jìn)行監(jiān)管,保障交易過(guò)程的合法有效運(yùn)行。②用戶節(jié)點(diǎn):服務(wù)于所有顧客,提供區(qū)塊鏈相關(guān)服務(wù)。③商家節(jié)點(diǎn):服務(wù)于所有商家,提供區(qū)塊鏈相關(guān)服務(wù)。④物流節(jié)點(diǎn):對(duì)應(yīng)于快遞公司的所有收件員、網(wǎng)點(diǎn)、中轉(zhuǎn)站、派件員等。⑤銀行節(jié)點(diǎn):提供相關(guān)支付業(yè)務(wù)。⑥可信節(jié)點(diǎn):可信服務(wù)器會(huì)審核所有節(jié)點(diǎn)身份,通過(guò)后將相應(yīng)的節(jié)點(diǎn)加入系統(tǒng),加入節(jié)點(diǎn)的登記信息會(huì)寫入?yún)^(qū)塊鏈進(jìn)行備案。平臺(tái)區(qū)塊鏈系統(tǒng)如圖5所示。
圖5 平臺(tái)區(qū)塊鏈系統(tǒng)
3.2.1 注冊(cè)子系統(tǒng)
以張三注冊(cè)新型網(wǎng)購(gòu)實(shí)驗(yàn)平臺(tái)為例進(jìn)行說(shuō)明,注冊(cè)子系統(tǒng)工作流程如圖6所示。張三在注冊(cè)個(gè)人信息時(shí),系統(tǒng)使用公鑰對(duì)張三的信息進(jìn)行加密,對(duì)加密后的信息進(jìn)行哈希運(yùn)算生成哈希值。哈希值再經(jīng)過(guò)兩兩哈希計(jì)算,即為張三個(gè)人信息的Merkle樹(shù)根。通過(guò)工作量證明機(jī)制驗(yàn)證后,節(jié)點(diǎn)會(huì)接受該區(qū)塊,當(dāng)前區(qū)塊鏈中增加該區(qū)塊來(lái)更新區(qū)塊鏈,使得更新后的區(qū)塊鏈中包含最新一整套數(shù)據(jù)。更新了個(gè)人信息區(qū)塊的區(qū)塊鏈如圖7所示。
圖6 注冊(cè)子系統(tǒng)工作流程圖
圖7 更新了個(gè)人信息區(qū)塊的區(qū)塊鏈
圖8 顧客交易子系統(tǒng)工作流程圖
3.2.2 交易子系統(tǒng)
張三成功注冊(cè)后,打算在A商家購(gòu)買一件私密商品。顧客交易子系統(tǒng)工作流程如圖8所示。系統(tǒng)對(duì)加密后的交易信息進(jìn)行哈希運(yùn)算生成哈希值。交易信息的哈希值再經(jīng)過(guò)兩兩哈希計(jì)算,即為交易信息的Merkle樹(shù)根。通過(guò)工作量證明機(jī)制驗(yàn)證后,節(jié)點(diǎn)會(huì)接受該區(qū)塊,當(dāng)前區(qū)塊鏈中增加該區(qū)塊來(lái)更新區(qū)塊鏈,使得更新后的區(qū)塊鏈中包含最新一整套數(shù)據(jù)。
3.2.3 支付子系統(tǒng)
A商家與張三達(dá)成交易后,張三需要向A商家支付。顧客支付子系統(tǒng)工作流程如圖9所示。系統(tǒng)對(duì)加密后的支付信息進(jìn)行哈希運(yùn)算生成哈希值。支付信息的哈希值再經(jīng)過(guò)兩兩哈希計(jì)算,即為支付信息的Merkle樹(shù)根。通過(guò)工作量證明機(jī)制驗(yàn)證后,節(jié)點(diǎn)會(huì)接受該區(qū)塊,當(dāng)前區(qū)塊鏈中增加該區(qū)塊來(lái)更新區(qū)塊鏈,使得更新后的區(qū)塊鏈中包含最新的一整套數(shù)據(jù)。
圖9 顧客支付子系統(tǒng)工作流程圖
3.2.4 物流子系統(tǒng)
張三與A商家達(dá)成交易,支付對(duì)應(yīng)費(fèi)用后,A商家通過(guò)物流公司向張三發(fā)貨,最終張三收到自己的私人商品。商品物流子系統(tǒng)工作流程如圖10所示。
圖10 商品物流子系統(tǒng)工作流程圖
(1)商家節(jié)點(diǎn)使用A商家的私鑰對(duì)包裹信息進(jìn)行加密,發(fā)送給物流節(jié)點(diǎn)。商家節(jié)點(diǎn)將加密后的包裹信息經(jīng)過(guò)哈希運(yùn)算等生成區(qū)塊,向全網(wǎng)廣播,各節(jié)點(diǎn)驗(yàn)證通過(guò)后寫入?yún)^(qū)塊鏈。
(2)收件員對(duì)應(yīng)的物流節(jié)點(diǎn)收到實(shí)際包裹后,計(jì)算包裹信息的哈希值并與全網(wǎng)廣播的區(qū)塊哈希值進(jìn)行比對(duì),若比對(duì)成功則接收包裹,否則拒收該包裹。
(3)節(jié)點(diǎn)按照包裹的物理空間傳送路徑以及自身和對(duì)應(yīng)的下一個(gè)物流節(jié)點(diǎn)的節(jié)點(diǎn)信息生成包裹狀態(tài)信息,使用張三的公鑰進(jìn)行加密后經(jīng)過(guò)哈希運(yùn)算生成區(qū)塊,向全網(wǎng)廣播,各節(jié)點(diǎn)驗(yàn)證通過(guò)寫入?yún)^(qū)塊鏈。
(4)張三收到實(shí)際包裹后,用戶節(jié)點(diǎn)計(jì)算包裹信息的哈希值并與全網(wǎng)廣播的區(qū)塊哈希值進(jìn)行比對(duì),若比對(duì)成功,則接收包裹,否則拒收包裹。
(5)用戶節(jié)點(diǎn)使用張三的私鑰對(duì)包裹簽收信息進(jìn)行加密后經(jīng)過(guò)哈希運(yùn)算等生成區(qū)塊,向全網(wǎng)廣播,各節(jié)點(diǎn)驗(yàn)證通過(guò)更新區(qū)塊鏈。最終,將通過(guò)驗(yàn)證的各區(qū)塊依次寫入?yún)^(qū)塊鏈,更新后的區(qū)塊鏈如圖11所示。
圖11 更新后的區(qū)塊鏈
Merkle tree具有檢錯(cuò)功能,任何一個(gè)節(jié)點(diǎn)的不一致都會(huì)導(dǎo)致最終樹(shù)根結(jié)果不一致,如圖12所示。
圖12 Merkle tree檢錯(cuò)機(jī)制示意圖
區(qū)塊鏈中數(shù)據(jù)的安全性體現(xiàn)在兩個(gè)方面[6-7],一是區(qū)塊鏈技術(shù)本身的安全性,二是有效防止惡意攻擊的安全性。
(1)在區(qū)塊鏈技術(shù)層面:①每一個(gè)區(qū)塊和哈希值都是一一對(duì)應(yīng)的,每個(gè)哈希值都是由區(qū)塊頭計(jì)算得到的。因?yàn)閰^(qū)塊頭中包含了當(dāng)前區(qū)塊體的哈希值和上一個(gè)區(qū)塊的哈希值,所以如果當(dāng)前區(qū)塊內(nèi)容改變或者上一個(gè)區(qū)塊哈希值改變,就一定會(huì)引起當(dāng)前區(qū)塊哈希值的改變。正是因?yàn)檫@樣的聯(lián)動(dòng)機(jī)制,區(qū)塊鏈才保證了自身的安全性,數(shù)據(jù)一旦寫入,就無(wú)法被篡改。②采用了非對(duì)稱加密技術(shù),所有的數(shù)據(jù)存儲(chǔ)和記錄都有數(shù)字簽名作為憑據(jù),非對(duì)稱加密保證了一系列過(guò)程的可靠性。③在區(qū)塊生成過(guò)程中,由一個(gè)地址到另一個(gè)地址的數(shù)據(jù)轉(zhuǎn)移都會(huì)進(jìn)行身份驗(yàn)證,即哈希值的驗(yàn)證和私鑰公鑰的驗(yàn)證。④去中心化的分布式設(shè)計(jì),網(wǎng)絡(luò)中有許多個(gè)節(jié)點(diǎn),同步所有節(jié)點(diǎn)的數(shù)據(jù),使得數(shù)據(jù)全部公開(kāi)或者部分公開(kāi),而且數(shù)據(jù)多副本存在,不存在數(shù)據(jù)丟失的風(fēng)險(xiǎn)。⑤在數(shù)據(jù)傳輸過(guò)程中,數(shù)據(jù)通常采用HTTP+SSL進(jìn)行處理,從而保證數(shù)據(jù)在網(wǎng)絡(luò)傳輸中防篡改且加密處理。
圖13 最長(zhǎng)鏈機(jī)制
(2)在防止惡意攻擊層面:利用比特幣的區(qū)塊鏈作為安全存儲(chǔ)介質(zhì),這是因?yàn)楸忍貛啪W(wǎng)絡(luò)擁有最強(qiáng)的算力,也意味著網(wǎng)絡(luò)具有更高的安全性[8-9]。比特幣網(wǎng)絡(luò)中,節(jié)點(diǎn)僅認(rèn)可最長(zhǎng)的鏈,不在最長(zhǎng)的鏈中的區(qū)塊被稱為孤塊,其包含的交易數(shù)據(jù)是不被網(wǎng)絡(luò)接受和確認(rèn)的。因此,最長(zhǎng)鏈等效于最多的工作量證明,也意味著最高的安全性。所以,假設(shè)有人員想要惡意攻擊并篡改己經(jīng)存儲(chǔ)于第N個(gè)區(qū)塊中的檔案歷史,需要做到的是創(chuàng)建一個(gè)區(qū)塊鏈分支,并寄希望于其他節(jié)點(diǎn)會(huì)認(rèn)可該分支。即通過(guò)建立現(xiàn)有區(qū)塊鏈的部分拷貝并在某一區(qū)塊后分叉,再添加上自己的區(qū)塊,來(lái)重新改寫區(qū)塊鏈歷史數(shù)據(jù)。最長(zhǎng)鏈機(jī)制如圖13所示。此種方式可理解為與比特幣網(wǎng)絡(luò)中的其他節(jié)點(diǎn)(挖礦服務(wù)器)進(jìn)行軍備競(jìng)賽,即試圖將第N個(gè)區(qū)塊及其后面被挖出的區(qū)塊孤立。為達(dá)到篡改區(qū)塊鏈數(shù)據(jù)的目標(biāo),攻擊者必須擁有足夠數(shù)量的算力[10]。
筆者結(jié)合區(qū)塊鏈的技術(shù)原理,通過(guò)組建區(qū)塊鏈技術(shù)構(gòu)架,搭建了新型網(wǎng)絡(luò)購(gòu)物實(shí)驗(yàn)平臺(tái),按其功能分為4個(gè)模塊:在顧客注冊(cè)模塊將加密的個(gè)人信息寫入?yún)^(qū)塊鏈,防止個(gè)人信息泄露并易于管理。在顧客交易模塊將加密的交易數(shù)據(jù)寫入?yún)^(qū)塊鏈,保障了交易的私密進(jìn)行與不可篡改。在支付模塊將支付記錄存儲(chǔ)在區(qū)塊鏈,使得支付實(shí)時(shí)透明,便于監(jiān)管。在物流模塊,將包裹信息、包裹狀態(tài)信息、包裹簽收信息存儲(chǔ)在區(qū)塊鏈,實(shí)現(xiàn)了物流信息的真實(shí)性與物流狀態(tài)的可追溯性,有助于解決快遞丟包、掉包問(wèn)題。最后,結(jié)合Merkle tree檢測(cè)機(jī)制和區(qū)塊鏈技術(shù)的最長(zhǎng)鏈機(jī)制,說(shuō)明了新型網(wǎng)絡(luò)購(gòu)物實(shí)驗(yàn)平臺(tái)中數(shù)據(jù)的完整性和安全性。隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,其在電子商務(wù)和物流等領(lǐng)域?qū)l(fā)揮更大的作用。
參考文獻(xiàn):
[1] 沈鑫,裴慶祺,劉雪峰.區(qū)塊鏈技術(shù)綜述[J].網(wǎng)絡(luò)與信息安全學(xué)報(bào),2016,2(11):15-16.
[2] 洪濤.區(qū)塊鏈在我國(guó)農(nóng)產(chǎn)品電商領(lǐng)域的應(yīng)用研究[J].中國(guó)市場(chǎng),2016,3(39):65-68.
[3] 歐陽(yáng)旭,朱向前,葉倫,等.區(qū)塊鏈技術(shù)在大用戶直購(gòu)電中的應(yīng)用初探[J].中國(guó)電機(jī)工程學(xué)報(bào),2017,37(13):3737-3745.
[4] 楊德昌,趙肖余,徐梓瀟,等.區(qū)塊鏈在能源互聯(lián)網(wǎng)中應(yīng)用現(xiàn)狀分析和前景展望[J].中國(guó)電機(jī)工程學(xué)報(bào),2017,37(13):3664-3671.
[5] 李董,魏進(jìn)武.區(qū)塊鏈技術(shù)原理、應(yīng)用領(lǐng)域及挑戰(zhàn)[J].電信科學(xué),2016,32(12):20-25.
[6] LEE B, LEE J H. Blockchain-based secure firmware update for embedded devices in an internet of things environment[J]. Journal of Supercomputing,2017,73(3):1-16.
[7] JESSE Y H,DEOKYOON K,SUJIN C,et al.Where is current research on blockchain technology-a systematic review[J]. Journal Citation Reports,2016,346(6):562-570.
[8] 王安平,范金剛,郭艷來(lái).區(qū)塊鏈在能源互聯(lián)網(wǎng)中的應(yīng)用[J].電力信息與通信技術(shù),2016,1(9):1-6.
[9] 孫佳音.比特幣的性質(zhì)、定價(jià)與監(jiān)管研究[D].上海:上海交通大學(xué),2014.
[10] 何蒲,于戈,張巖峰,等.區(qū)塊鏈技術(shù)與應(yīng)用前瞻綜述[J].計(jì)算機(jī)科學(xué),2017,44(4):1-7.
武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版)2018年2期