999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向電子證照共享的區(qū)塊鏈技術(shù)方案研究與實(shí)現(xiàn)

2020-08-19 07:01:06王浩亮廉玉忠王麗莉
計(jì)算機(jī)工程 2020年8期
關(guān)鍵詞:智能用戶信息

王浩亮,廉玉忠,王麗莉

(東莞理工學(xué)院城市學(xué)院 計(jì)算機(jī)與信息學(xué)院,廣東 東莞 523000)

0 概述

電子證照庫(kù)系統(tǒng)以信息技術(shù)作為中介取代持證方的中介作用,解放持證方的保管與攜帶證照負(fù)擔(dān),為用證方提供及時(shí)、準(zhǔn)確、全面的信息,是智慧城市建設(shè)的重要組成部分,已成為公民活動(dòng)辦事的電子憑證,可助力電子證照資源跨地區(qū)、跨部門、跨層級(jí)共享。然而,傳統(tǒng)智慧城市建設(shè)以各自城市為中心,缺少頂層設(shè)計(jì)與統(tǒng)籌協(xié)調(diào),制約了電子證照庫(kù)信息手段效能發(fā)揮,其存在的主要問(wèn)題如下:電子證照數(shù)據(jù)來(lái)源各地區(qū)或部門組織,信息采集和應(yīng)用過(guò)程中權(quán)責(zé)不分,一旦數(shù)據(jù)信息有誤,對(duì)數(shù)據(jù)追溯困難;電子證照存儲(chǔ)在各管理部門的數(shù)據(jù)庫(kù)中,信息存儲(chǔ)分散,獨(dú)立性強(qiáng),產(chǎn)生大量“數(shù)據(jù)孤島”,由于采用各區(qū)域中心化架構(gòu),信息泄露安全隱患大,存在數(shù)據(jù)存儲(chǔ)不完整和人為篡改的可能性,信息的真實(shí)性和完整性不易分辨,使得各參與主體間的信任度大幅降低;電子證照庫(kù)的數(shù)字證書和電子簽章來(lái)自于各部門業(yè)務(wù)應(yīng)用系統(tǒng),沒有統(tǒng)一標(biāo)準(zhǔn)且不互通互認(rèn),難以統(tǒng)一,而且跨層級(jí)、跨部門、跨業(yè)務(wù)的數(shù)據(jù)共享和開發(fā)力度不夠,電子證照信息難以全面歸集與快速檢索。

區(qū)塊鏈[1]被認(rèn)為是第5個(gè)最有潛力引發(fā)顛覆性革命的核心技術(shù)之一,逐漸被世界各國(guó)認(rèn)可[2],區(qū)塊鏈對(duì)鏈上信息分區(qū)塊存儲(chǔ),將前后區(qū)塊運(yùn)用加密驗(yàn)證方式進(jìn)行鏈接[3],從而形成不可篡改的鏈?zhǔn)綌?shù)據(jù)存儲(chǔ)方式,然后將鏈?zhǔn)綌?shù)據(jù)分散在組網(wǎng)內(nèi)所有節(jié)點(diǎn)上[4],有效防止單個(gè)節(jié)點(diǎn)數(shù)據(jù)遭到篡改或遺失,實(shí)現(xiàn)去中心化的分布式數(shù)據(jù)管理和不完全可信環(huán)境中的可信數(shù)據(jù)管理[5],具有防篡改、不可抵賴、強(qiáng)一致和完整性等特性[6]。2018年11月,國(guó)家市場(chǎng)監(jiān)督管理總局、國(guó)家標(biāo)準(zhǔn)化管理委員會(huì)、國(guó)家電子文件管理部際聯(lián)席會(huì)議辦公室(國(guó)家密碼管理局)、國(guó)務(wù)院辦公廳電子政務(wù)辦公室聯(lián)合發(fā)布電子證照系列國(guó)家標(biāo)準(zhǔn),為國(guó)家電子證照庫(kù)和基礎(chǔ)平臺(tái)建設(shè),實(shí)現(xiàn)跨層級(jí)、跨部門電子證照互認(rèn)共享、資源整合等提供了標(biāo)準(zhǔn)支撐,也是新型智慧城市建設(shè)由從單點(diǎn)布局向全局規(guī)劃的拓展,但同時(shí)電子證照的應(yīng)用還處于起步階段。

針對(duì)上述傳統(tǒng)電子證照研究存在的不足,本文運(yùn)用區(qū)塊鏈技術(shù)實(shí)現(xiàn)電子證照數(shù)據(jù)的鏈上、鏈下存儲(chǔ)和查詢,依靠智能合約進(jìn)行鏈上證照交易,為電子政務(wù)提供便利。

1 相關(guān)技術(shù)

1.1 區(qū)塊鏈技術(shù)

區(qū)塊鏈來(lái)自于中本聰提出的比特幣(Bitcoin),成為以數(shù)字貨幣為代表的區(qū)塊鏈1.0[7]。以太坊(Ethereum)平臺(tái)以去中心化的特性解決了比特幣擴(kuò)展性不足問(wèn)題,成為以智能合約功能為代表的區(qū)塊鏈2.0[8]。目前,應(yīng)用于金融、科學(xué)、政務(wù)、醫(yī)療、教育等領(lǐng)域區(qū)塊鏈3.0時(shí)代已經(jīng)到來(lái)。

區(qū)塊鏈?zhǔn)且环N分布式的、不斷增長(zhǎng)的、共享的區(qū)塊分類賬[9],整個(gè)區(qū)塊鏈由多個(gè)區(qū)塊(Block)組成,各區(qū)塊包括區(qū)塊頭(BlockHead)和區(qū)塊體(BlockBody)。區(qū)塊頭記錄著識(shí)別區(qū)塊的唯一標(biāo)志,多個(gè)區(qū)塊組成完整的區(qū)塊鏈,結(jié)構(gòu)如圖1所示。

圖1 區(qū)塊鏈結(jié)構(gòu)Fig.1 Blockchain structure

各區(qū)塊通過(guò)哈希函數(shù)生成的數(shù)字指紋以加密方式密封。每個(gè)塊通過(guò)引用其散列值[10]“鏈接”到前一個(gè)塊,綜合運(yùn)用點(diǎn)對(duì)點(diǎn)傳輸、加密算法、共識(shí)機(jī)制、分布式數(shù)據(jù)存儲(chǔ)等技術(shù),形成不可篡改的區(qū)塊鏈數(shù)據(jù)存儲(chǔ)方式,將鏈?zhǔn)綌?shù)據(jù)及時(shí)共享到所有節(jié)點(diǎn)服務(wù)器中,有效防止單個(gè)節(jié)點(diǎn)數(shù)據(jù)遭到篡改或遺失。因此,通過(guò)區(qū)塊鏈多中心提供存儲(chǔ)和服務(wù)的技術(shù),實(shí)現(xiàn)電子證照信息真實(shí)不可篡改的可行性,充分利用區(qū)塊鏈的可追溯、共享賬本、不對(duì)稱加密的特征來(lái)建設(shè)電子證照庫(kù),具有更好的真實(shí)性、安全性和可行性。綜合上述特點(diǎn)可有效應(yīng)對(duì)電子證照應(yīng)用面臨的問(wèn)題。

1.2 以太坊

以太坊是一個(gè)具有智能合約的開源公共區(qū)塊鏈平臺(tái)[11]。智能合約相當(dāng)于以太坊中的法律,是區(qū)塊鏈上的去中心化、可復(fù)制可信共享程序代碼[12-13]。在以太坊中,所有的交易都按照合約定義的操作執(zhí)行。

基于以太坊的建鏈過(guò)程,根據(jù)開發(fā)程度[14]可分為公有鏈、聯(lián)盟鏈和私有鏈。國(guó)家機(jī)關(guān)針對(duì)全民開發(fā)共享的證照可以采用公有鏈,地方政府或各企業(yè)部門之間對(duì)特定的群體開放的電子證照可以采用聯(lián)盟鏈,各組織內(nèi)部對(duì)各部門之間共享的電子證照可以采用私有鏈[15]。

1.3 以太坊應(yīng)用

自以太坊誕生以來(lái),學(xué)者對(duì)區(qū)塊鏈應(yīng)用進(jìn)行了大量的研究與探討,文獻(xiàn)[16-17]將以太坊應(yīng)用在電子拍賣系統(tǒng),通過(guò)精心設(shè)計(jì)的智能合約防止操縱拍賣和用戶出價(jià)隱私,實(shí)現(xiàn)了在沒有可信第三方的情況下安全交易。文獻(xiàn)[18]提出基于區(qū)塊鏈和以太坊的物聯(lián)網(wǎng)安全和隱私問(wèn)題的一些可能解決方案。文獻(xiàn)[19]設(shè)計(jì)了基于區(qū)塊鏈的分布式賬本,以防篡改的方式存儲(chǔ)從物聯(lián)網(wǎng)智能計(jì)量設(shè)備收集的能源消耗信息,用于智能電網(wǎng)層面的能源需求與生產(chǎn)匹配,并在以太坊平臺(tái)上實(shí)現(xiàn)了原型驗(yàn)證。文獻(xiàn)[20]實(shí)現(xiàn)了去中心化眾籌平臺(tái),提供多個(gè)基于以太坊平臺(tái)的智能合約模板,方便用戶創(chuàng)建符合自身的眾籌項(xiàng)目。隨著人工智能和深度學(xué)習(xí)技術(shù)的興起,假數(shù)字內(nèi)容大量出現(xiàn),人們采用一種基于Ethereum智能合約的解決方案和總體框架,即使數(shù)字內(nèi)容被多次復(fù)制,也能追蹤和跟蹤數(shù)字內(nèi)容的來(lái)源和歷史[21]。

區(qū)塊鏈技術(shù)在金融、物聯(lián)網(wǎng)、能源等領(lǐng)域得到眾多學(xué)者關(guān)注,并通過(guò)以太坊平臺(tái)驗(yàn)證了其原型系統(tǒng)的數(shù)據(jù)加密、防篡改和可追溯等特性。但是,區(qū)塊鏈在電子證照相關(guān)領(lǐng)域的學(xué)術(shù)文獻(xiàn)較少且主要為理論研究[22],缺少可行的技術(shù)方案研究。因此,本文通過(guò)搭建基于以太坊的區(qū)塊鏈環(huán)境研究電子證照庫(kù)原型系統(tǒng)的實(shí)現(xiàn)方案。

本文的主要貢獻(xiàn)如下:

1)基于區(qū)塊鏈技術(shù),通過(guò)以太坊平臺(tái)建立分布式多賬本,對(duì)電子證照信息分區(qū)塊存儲(chǔ),對(duì)前后區(qū)塊鏈接通過(guò)加密驗(yàn)證,保證了信息真實(shí)不可篡改,實(shí)現(xiàn)了電子證照數(shù)據(jù)的可信、可追溯。

2)采用區(qū)塊鏈技術(shù)的不對(duì)稱加密方式,發(fā)證方將每條電子證件信息通過(guò)公鑰加密上鏈共享,每條信息對(duì)應(yīng)有單獨(dú)的解密私鑰并由持證方保管,可有效防止信息泄露,保證隱私安全。

3)基于區(qū)塊鏈技術(shù)的平權(quán)、共建的特點(diǎn),構(gòu)建歸屬各部門的目錄體系,以共建共享的原則對(duì)各參與主體的上鏈信息全面歸集、共享,同時(shí)在建立電子證照信息鏈的基礎(chǔ)上增加索引信息,從而實(shí)現(xiàn)快速檢索功能。

2 電子證照庫(kù)系統(tǒng)構(gòu)建

系統(tǒng)基于以太坊智能合約平臺(tái)構(gòu)建私有鏈,將電子證照庫(kù)與區(qū)塊鏈技術(shù)相結(jié)合,主要功能為證照數(shù)據(jù)鏈上鏈下存儲(chǔ),電子證照信息溯源檢索采用交易功能。

2.1 系統(tǒng)流程

基于區(qū)塊鏈的電子證照庫(kù)參與主體分為頒證方、持證方和用證方,不同主體對(duì)應(yīng)界面不同。系統(tǒng)流程如圖2所示。

圖2 系統(tǒng)流程Fig.2 System procedure

頒證方登錄平臺(tái)可以頒發(fā)證照,在填入證照名稱、編號(hào)、所屬人、期效等信息后,通過(guò)智能合約將證照信息加密上傳到信息鏈上,其中信息鏈、證照名稱和編號(hào)組成檢索信息上傳到檢索鏈,本地?cái)?shù)據(jù)庫(kù)保存一份所屬人和檢索信息的數(shù)據(jù)便于檢索持有人所有證照。

持證方登錄平臺(tái)通過(guò)數(shù)據(jù)庫(kù)查找自己所屬的證照檢索信息,并且可以快捷定位到信息鏈上找到對(duì)應(yīng)的證照區(qū)塊,用于查看和出示電子證照。出示電子證照時(shí)持證方會(huì)得到一個(gè)經(jīng)過(guò)自己公鑰加密后的二維碼用于出示。用證方掃碼后需經(jīng)過(guò)持證方授權(quán)確認(rèn),通過(guò)持證方的私鑰解密并且返回證照信息到用證方。

用證方登錄平臺(tái)根據(jù)需要可以掃取二維碼,經(jīng)過(guò)持證方授權(quán)后查詢證照信息,從鏈上驗(yàn)證數(shù)據(jù)的真實(shí)性,并獲得數(shù)據(jù)信息保存在部門系統(tǒng)。

2.2 系統(tǒng)架構(gòu)

在區(qū)塊鏈以太坊平臺(tái)上建立電子證照目錄索引信息和證照信息鏈,各行業(yè)部門可以建立自己的電子證照子鏈,通過(guò)上傳證書請(qǐng)求,申請(qǐng)加入電子證照主鏈。電子證照數(shù)據(jù)加密后寫入?yún)^(qū)塊鏈,并生成密鑰。

電子證照庫(kù)系統(tǒng)的體系結(jié)構(gòu)如圖3所示,主要包含區(qū)塊鏈模塊、智能合約模塊、數(shù)據(jù)庫(kù)模塊和客戶端模塊4個(gè)模塊。

3 電子證照庫(kù)系統(tǒng)功能模塊

3.1 區(qū)塊鏈模塊

區(qū)塊鏈模塊的主要功能是將用戶提交的上鏈數(shù)據(jù)打包進(jìn)區(qū)塊,由網(wǎng)絡(luò)中參與的節(jié)點(diǎn)通過(guò)共識(shí)機(jī)制確認(rèn)后將區(qū)塊鏈接到鏈末端區(qū)塊,用來(lái)實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)以及數(shù)據(jù)溯源查詢,確保數(shù)據(jù)的安全性和完整性。

3.1.1 身份驗(yàn)證

首先確保各參與方身份的真實(shí)性。系統(tǒng)采用了RSA非對(duì)稱加密算法,為保證安全使用2 048位的密鑰,公鑰用于標(biāo)識(shí)系統(tǒng)內(nèi)用戶的身份,私鑰用于數(shù)字簽名,確保用戶身份的真實(shí)性。數(shù)據(jù)完整性利用 Keccak 256哈希算法解決,與區(qū)塊鏈采用的SHA-256算法相比安全性高,效率明顯提升。

在頒證方進(jìn)行上鏈操作前,核實(shí)和驗(yàn)證證照信息的真實(shí)性,用戶將已認(rèn)證的證照信息進(jìn)行公鑰加密,使用證照時(shí)需要通過(guò)私鑰解密,Hash函數(shù)通過(guò)使用的Keccak 256算法形成摘要,將上一個(gè)區(qū)塊的Hash、隨機(jī)數(shù)、timeStamp傳入數(shù)據(jù)進(jìn)行加密得到一個(gè)長(zhǎng)度為256位的字符作為Hash地址。

密鑰通過(guò)密鑰派生樹來(lái)生成、管理。各個(gè)子鏈的數(shù)據(jù)密鑰由根密鑰派生出,子鏈間的數(shù)據(jù)互不可見,根密鑰擁有者可以查看各個(gè)子鏈的數(shù)據(jù)。管理部門只需保管根密鑰,即可根據(jù)派生路徑實(shí)時(shí)派生出各個(gè)節(jié)點(diǎn)具體的加密密鑰。再通過(guò)對(duì)證照數(shù)據(jù)進(jìn)行歸類,一類數(shù)據(jù)的密鑰由具體的一個(gè)派生路徑派生出,并通過(guò)分享派生路徑上的密鑰實(shí)現(xiàn)對(duì)密鑰加密范圍內(nèi)數(shù)據(jù)的共享。

3.1.2 驗(yàn)證機(jī)制

當(dāng)數(shù)據(jù)發(fā)生變化(新增、被惡意修改)時(shí),會(huì)觸發(fā)驗(yàn)證機(jī)制。如果是數(shù)據(jù)新增會(huì)驗(yàn)證計(jì)算提交的Hash是否正確、上一個(gè)區(qū)塊Hash是否正確、自身是否為最后一個(gè)區(qū)塊。如果是數(shù)據(jù)被惡意修改,會(huì)重新計(jì)算Hash是否正確、驗(yàn)證上一個(gè)區(qū)塊Hash是否正確、下一個(gè)區(qū)塊的前一個(gè)區(qū)塊Hash是否與當(dāng)前Hash一致。

3.2 智能合約模塊

以太坊作為區(qū)塊鏈應(yīng)用上最早提出智能合約的平臺(tái),提供支持了圖靈完備的腳本語(yǔ)言,允許開發(fā)者在平臺(tái)上開發(fā)去中心化應(yīng)用,創(chuàng)建和執(zhí)行智能合約。

電子證照庫(kù)系統(tǒng)在以太坊平臺(tái)上建立私有鏈,提供給相關(guān)部門訪問(wèn)節(jié)點(diǎn),通過(guò)許可對(duì)各部門保持中心化。系統(tǒng)提供對(duì)應(yīng)交互接口給不同身份用戶,用戶提交的數(shù)據(jù)經(jīng)過(guò)智能合約進(jìn)行上鏈存儲(chǔ),通過(guò)非對(duì)稱加密方式保證數(shù)據(jù)的合法性。在智能合約模式設(shè)計(jì)方面編寫交互接口,將各參與主體所產(chǎn)生的數(shù)據(jù)進(jìn)行上鏈存儲(chǔ)、查詢和用證交易。

3.2.1 電子證照上鏈存儲(chǔ)查詢

頒證方認(rèn)證電子證照的真實(shí)性后對(duì)審核通過(guò)的數(shù)據(jù)進(jìn)行提交,智能合約執(zhí)行電子證照信息加密并寫入鏈上區(qū)塊生成密鑰,完成電子證照數(shù)據(jù)上鏈。系統(tǒng)根據(jù)生成區(qū)塊的哈希索引、私鑰以及證照提交方的信息存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中。數(shù)據(jù)上鏈存儲(chǔ)查詢部分由結(jié)構(gòu)體和存儲(chǔ)查詢函數(shù)組成,結(jié)構(gòu)體中的屬性包括電子證照唯一標(biāo)識(shí) ID 和各參與主體需提交數(shù)據(jù)的屬性。數(shù)據(jù)上鏈存儲(chǔ)智能合約的部分solidity代碼如下:

contract ElectronicLicenseChain {//智能合約

struct ElectronicLicense{

uint license_id;//電子證照唯一標(biāo)識(shí)ID

//頒證用戶需提交的數(shù)據(jù)

uint certificate_institution_id;

bytes32 certificate_institution_name;

//用證用戶需提交的數(shù)據(jù)

uint certification_body_id;

bytes32 certification_body_name;

//持證用戶需提交的數(shù)據(jù)

uint certificate_account_id;

bytes32 certificate_account_name;

//其他數(shù)據(jù)

}

//從電子證照id到結(jié)構(gòu)體數(shù)據(jù)的映射

mapping(uint => ElectronicLicense)electroniclicense;

//存儲(chǔ)電子證照相關(guān)數(shù)據(jù)

function setElectronicLicense(uint license_id,bytes32 certificate_institution_name,…){

ElectronicLicense storage license_real = electroniclicense[license_id];

license_real.license_id = license_id;

license_real.certificate_institution_name = certificate_institution_name;

}

function setCertificateInstitution(…){…}//存儲(chǔ)頒證用

//戶的相關(guān)數(shù)據(jù)

function setCertificationBody(…){…}//存儲(chǔ)用證用戶

//的相關(guān)數(shù)據(jù)

//查詢電子證照相關(guān)數(shù)據(jù)

function getElectronicLicense(uint license_id,uint certification_body_id)constant returns(uint,bytes32,…){

ElectronicLicense storage license_real = electroniclicense[license_id];

return (electroniclicense[license_id].license_id

certificate_institution_name,

…);

}

3.2.2 電子證照使用

將傳統(tǒng)電子證照使用認(rèn)證的過(guò)程轉(zhuǎn)移到通過(guò)以太坊區(qū)塊鏈網(wǎng)絡(luò)中部署的智能合約來(lái)進(jìn)行,持證用戶通過(guò)用戶交互接口獲取持有證照的信息提交給用證方。為了提高證照信息的檢索交易效率,增加索引信息,將電子證照的信息使用外部數(shù)據(jù)庫(kù)進(jìn)行存儲(chǔ),并使用倒排索引對(duì)用戶持有的電子證照進(jìn)行索引。

倒排索引將電子證照名稱與電子證照編號(hào)集合進(jìn)行映射,通過(guò)名稱能夠快速定位到電子證照編號(hào),從而進(jìn)一步查詢證照的詳細(xì)信息。索引結(jié)構(gòu)如圖4所示。

圖4 電子證照查詢倒排索引結(jié)構(gòu)Fig.4 Inverted index structure of electronic certificate inquiry

通過(guò)用證機(jī)構(gòu)中的各參與主體來(lái)共同制定智能合約,用證方提交信息并調(diào)用執(zhí)行智能合約。根據(jù)索引值,在區(qū)塊鏈上檢索區(qū)塊并使用持證方的私鑰驗(yàn)證電子證照信息的真實(shí)性。用證方在區(qū)塊鏈上進(jìn)行證照驗(yàn)證操作,同時(shí)作為一個(gè)交易被智能合約執(zhí)行并記錄在區(qū)塊上。部分代碼如下:

contract LicensesTransaction {

//持證用戶使用電子證照

function useLicense(uint license_id,uint certificate_account_id,uint certification_body_id,uint price){

balances[msg.sender]-=price;

balances[receiver]+=price;

certificationRecord[license_id]= msg.sender;

} }

3.3 數(shù)據(jù)庫(kù)模塊

系統(tǒng)采用由區(qū)塊鏈系統(tǒng)構(gòu)建的分布式數(shù)據(jù)存儲(chǔ)環(huán)境和Web應(yīng)用需要的關(guān)系型數(shù)據(jù)存儲(chǔ)環(huán)境?;趨^(qū)塊鏈系統(tǒng)以太坊技術(shù)可視為一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)的變更由交易催化。一筆或多筆交易組成一個(gè)數(shù)據(jù)塊提交到數(shù)據(jù)庫(kù)中,使以太坊客戶端為一個(gè)去中心化的網(wǎng)絡(luò)。眾多節(jié)點(diǎn)對(duì)交易的驗(yàn)證共同維護(hù)數(shù)據(jù)的真實(shí)性,保證數(shù)據(jù)的不可篡改。但是分布式數(shù)據(jù)在區(qū)塊鏈上的持久化仍存在交易開銷高、數(shù)據(jù)存儲(chǔ)量不足等缺點(diǎn),為降低成本和提高效率,需要結(jié)合關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行交互。

系統(tǒng)將網(wǎng)絡(luò)應(yīng)用交互接口基于關(guān)系型數(shù)據(jù)來(lái)維持和運(yùn)行,用于存儲(chǔ)各身份用戶賬號(hào)用戶名、哈希加密后的密碼和額外的相關(guān)信息,如持證用戶電子證照的密鑰、描述等信息,通過(guò)賬戶信息的關(guān)系映射可得到對(duì)應(yīng)區(qū)塊鏈的加密信息,提高查詢檢索用戶持有證照的信息效率。圖5為存儲(chǔ)于MySQL云數(shù)據(jù)庫(kù)中的數(shù)據(jù)結(jié)構(gòu),主要包括用戶表、電子證照表和用戶證照索引表。

圖5 數(shù)據(jù)庫(kù)結(jié)構(gòu)Fig.5 Database structure

3.4 客戶端模塊

本文系統(tǒng)使用Java語(yǔ)言對(duì)客戶端模塊進(jìn)行開發(fā),利用Web3J進(jìn)行智能合約的開發(fā)與部署和區(qū)塊鏈數(shù)據(jù)上鏈的操作,使用HTML+CSS+JS制作客戶端,為用戶提供可視化操作接口,使用戶能夠與智能合約進(jìn)行交互。功能包括頒證方對(duì)證照的錄入、持證方對(duì)證照的查詢和用證方對(duì)證照的驗(yàn)證。

頒證用戶證照錄入以及進(jìn)行合約交易在Web交互接口實(shí)現(xiàn)的部分代碼如下:

//simpleStorage智能合約

SimpleStorage simpleStorage = SimpleStorage.load

(address,web3j,credentials,BigInteger.valueOf(200000),BigInteger.valueOf(20000000));

byte[] byteValueLen32 = new byte[32];

//cipherData加密的證照字節(jié)流

System.arraycopy(cipherData,0,byteValueLen32,0,cipherData.length);

//transactionReceipt上鏈信息

TransactionReceipt transactionReceipt = simpleStorage.set(byteValueLen32).send();

用證用戶證照認(rèn)證以及進(jìn)行合約交易在Web交互接口的實(shí)現(xiàn)部分代碼如下:

//simpleStorage智能合約

SimpleStorage simpleStorage = SimpleStorage.load(address,web3j,credentials,BigInteger.valueOf(200000),BigInteger.valueOf(20000000));

//index索引

BigInteger bigInteger = new BigInteger(index);

//byte經(jīng)合約查詢的加密證照字節(jié)流

byte[] bytes = simpleStorage.get(bigInteger).send();

//plainData已解密的證照

byte[] plainData = RSAUtil.decrypt(bytes,keyPair.getPrivate());

4 實(shí)驗(yàn)結(jié)果與分析

4.1 實(shí)驗(yàn)環(huán)境搭建

本文系統(tǒng)基于以太坊開發(fā)環(huán)境搭建,操作系統(tǒng)采用Ubuntu的64位系統(tǒng)。建立私有鏈,提供給相關(guān)部門訪問(wèn)節(jié)點(diǎn),通過(guò)許可對(duì)各部門保持中心化,部門中用戶都可以加入其中成為參與節(jié)點(diǎn)讀取數(shù)據(jù)、發(fā)送交易、競(jìng)爭(zhēng)記賬。智能合約的開發(fā)、編譯、測(cè)試和部署采用Truffle框架,區(qū)塊數(shù)據(jù)的分布式存儲(chǔ)采用Leveldb數(shù)據(jù)庫(kù)。實(shí)驗(yàn)運(yùn)用以太坊開發(fā)者測(cè)試網(wǎng)絡(luò)來(lái)配置模擬真實(shí)的以太坊網(wǎng)絡(luò)環(huán)境。前端應(yīng)用基于Java進(jìn)行開發(fā)與合約進(jìn)行交互,實(shí)現(xiàn)對(duì)電子證照數(shù)據(jù)的存儲(chǔ)和查詢。

4.2 實(shí)驗(yàn)過(guò)程與結(jié)果分析

本文基于Solidity語(yǔ)言編寫實(shí)現(xiàn)智能合約[23],通過(guò)客戶端將Solidity源碼文件上傳,在區(qū)塊鏈上進(jìn)行合約的部署如圖6所示。合約編譯生成后,通過(guò)調(diào)用智能合約中的相應(yīng)函數(shù)完成數(shù)據(jù)的存儲(chǔ)。頒證用戶在操作界面進(jìn)行上鏈數(shù)據(jù)提交如圖7所示,因?yàn)殡娮幼C照的繁雜和信息不統(tǒng)一,系統(tǒng)輸入證照信息時(shí)根據(jù)數(shù)據(jù)不同,用戶可自行添加輸入數(shù)據(jù)項(xiàng)。

圖6 智能合約部署Fig.6 Smart contracts deploy

圖7 頒發(fā)證照的交互界面Fig.7 Certificate-issuing interactive interface

通過(guò)測(cè)試網(wǎng)絡(luò)進(jìn)行模擬頒證和用證流程,在頒發(fā)證照流程中,系統(tǒng)調(diào)用智能合約并將證照信息數(shù)據(jù)記錄到區(qū)塊鏈,證照信息成功上鏈后,得到摘要0x3443c68ac52b7eb3085ab76754d6d752fe6a97f82df0 a1379e655a7fb7613882,如圖8所示。通過(guò)Geth客戶端得到區(qū)塊上鏈過(guò)程數(shù)據(jù)如圖9所示。用證用戶用證查詢和提交的交互界面如圖10所示。用證單位通過(guò)持證用戶提交的數(shù)據(jù)信息,根據(jù)摘要信息查詢校驗(yàn)證照數(shù)據(jù)信息的證照真實(shí)性。

圖8 證照提交返回摘要過(guò)程Fig.8 Process of certificate submission return summary

圖9 證照上鏈過(guò)程Fig.9 Process of certificate up chain

圖10 用證查詢的交互界面Fig.10 Interactive interface of certificate query

為對(duì)比用戶數(shù)據(jù)信息是否被篡改,系統(tǒng)后臺(tái)通過(guò)證照摘要調(diào)用合約執(zhí)行和溯源證照數(shù)據(jù),對(duì)比用戶提交的信息可以驗(yàn)證數(shù)據(jù)信息是否被篡改,查詢過(guò)程如圖11所示。通過(guò)圖7和圖11的實(shí)驗(yàn)對(duì)比顯示,溯源數(shù)據(jù)的數(shù)據(jù)信息與摘要查詢的數(shù)據(jù)信息哈希值一致,可證明數(shù)據(jù)未被篡改,說(shuō)明本文提出方法的正確性。

圖11 證照查詢過(guò)程Fig.11 Process of certificate query

考慮數(shù)據(jù)有被篡改的可能,將圖7數(shù)據(jù)稍作修改并重新提交上傳。篡改的數(shù)據(jù)摘要為0d5ca27eb 3085ab76785acd5ca76fe6a97f82d2ea1e7665c62b5a71a 9082a,驗(yàn)證從區(qū)塊鏈上查詢的證照信息為空,如圖12所示,可以看出輸入證照的數(shù)據(jù)不是有效的。

圖12 被篡改證照信息查詢Fig.12 Query of tampered certificate information

上述實(shí)驗(yàn)在測(cè)試網(wǎng)絡(luò)上完成,說(shuō)明了電子證照在基于以太坊區(qū)塊鏈上的數(shù)據(jù)安全和防止篡改具有可行性。對(duì)比傳統(tǒng)的證照系統(tǒng),使用基于以太坊區(qū)塊鏈的電子證照系統(tǒng)只通過(guò)Solidity智能合約部署和執(zhí)行支付少量的虛擬貨幣,而不需要較大的人力進(jìn)行維護(hù),簡(jiǎn)化了操作流程,節(jié)省了成本,提高了效率。

5 結(jié)束語(yǔ)

本文提出一種面向電子證照共享的區(qū)塊鏈技術(shù)方案,該方案為基于以太坊的一個(gè)去中心化數(shù)據(jù)共享交易服務(wù)系統(tǒng)。將電子證照交易數(shù)據(jù)上鏈后打包入?yún)^(qū)塊中以保證數(shù)據(jù)可追溯性,鏈下數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)降低交易成本。將頒證、用證各個(gè)環(huán)節(jié)的重要數(shù)據(jù)信息上傳存儲(chǔ)到區(qū)塊鏈中確保其不可篡改、真實(shí)可靠,通過(guò)智能合約的使用減少持證、用證過(guò)程中的人力損耗。實(shí)驗(yàn)結(jié)果表明,本文電子證照的防篡改和溯源方案具有可行性,鏈上數(shù)據(jù)具有可溯源、防篡改等特性。正確運(yùn)用區(qū)塊鏈技術(shù)可增強(qiáng)信任體系,有助于電子證照資源跨地區(qū)、跨層級(jí)共享及強(qiáng)化管理。下一步將繼續(xù)完善智能合約功能及以實(shí)現(xiàn)大規(guī)模證照交易數(shù)據(jù)的區(qū)塊鏈管理。

猜你喜歡
智能用戶信息
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
如何獲取一億海外用戶
展會(huì)信息
主站蜘蛛池模板: 国产精品一区二区国产主播| 国产成年女人特黄特色毛片免| 国产资源免费观看| 精品三级网站| 国产成人欧美| 久久毛片基地| 男人天堂伊人网| 久久窝窝国产精品午夜看片| 91综合色区亚洲熟妇p| 国产精品浪潮Av| 免费看一级毛片波多结衣| 欧美三级不卡在线观看视频| 免费a在线观看播放| 中文字幕乱码二三区免费| 免费观看国产小粉嫩喷水| 国产麻豆精品久久一二三| 国产免费一级精品视频| 青青草原国产av福利网站| 亚洲妓女综合网995久久| 人妻精品久久久无码区色视| 亚洲天堂网在线观看视频| 中日韩一区二区三区中文免费视频| 在线观看免费人成视频色快速| 999国产精品| 国产aⅴ无码专区亚洲av综合网| 天天爽免费视频| 日韩精品一区二区三区免费| 色噜噜综合网| 国产在线97| 欧美午夜网| 蝴蝶伊人久久中文娱乐网| 无码国内精品人妻少妇蜜桃视频| 国产在线视频自拍| 国产成人一区在线播放| 免费在线一区| 国产成人精品免费av| 国产成人区在线观看视频| 中文字幕人妻无码系列第三区| 亚洲av色吊丝无码| 亚洲精品视频免费观看| 亚洲国产中文在线二区三区免| 日本91视频| 中文字幕av一区二区三区欲色| 亚洲成人播放| 欧美伦理一区| 亚洲精品国产成人7777| 色综合综合网| 日本精品视频| 亚洲天堂网在线视频| 2022国产91精品久久久久久| 国产欧美日韩另类| 国产精品欧美激情| 久久77777| 精品无码人妻一区二区| 精品视频在线观看你懂的一区| 色综合国产| 狠狠五月天中文字幕| 综合成人国产| 久久五月天综合| 青青草综合网| 欧美a在线看| 久久香蕉国产线看观看精品蕉| 亚洲欧洲日产国产无码AV| 狼友av永久网站免费观看| 天天躁夜夜躁狠狠躁图片| 国产亚洲精品yxsp| 99re视频在线| 亚洲国产成人麻豆精品| 国产高潮流白浆视频| 又粗又硬又大又爽免费视频播放| 亚洲av无码人妻| 日韩成人免费网站| 国产成人h在线观看网站站| 99福利视频导航| 欧美一区二区福利视频| 日本久久久久久免费网络| 色吊丝av中文字幕| 国产对白刺激真实精品91| 91精选国产大片| 国产成人无码播放| 五月天综合婷婷| 毛片久久网站小视频|