亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇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),沒(méi)有統(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)了在沒(méi)有可信第三方的情況下安全交易。文獻(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ū)塊鏈管理。

        猜你喜歡
        以太證照合約
        以太極為旗,開啟新時(shí)代“黃河大合唱”
        少林與太極(2023年7期)2023-08-25 05:27:52
        新建核電站項(xiàng)目前期的證照申請(qǐng)與核安全監(jiān)管淺析
        核安全(2022年3期)2022-06-29 09:17:42
        交通運(yùn)輸部海事局公布第二批可在線辦理的電子證照清單
        水上消防(2022年1期)2022-06-16 08:07:28
        電子證照系列基礎(chǔ)標(biāo)準(zhǔn)
        車易鏈:做汽車業(yè)的“以太坊”
        汽車觀察(2018年9期)2018-10-23 05:46:24
        福州電子證照全流程應(yīng)用開先河
        百通推出入門級(jí)快速工業(yè)以太網(wǎng)絡(luò)交換器系列
        以太互聯(lián) 高效便捷 經(jīng)濟(jì)、可靠、易用的小型可編程控制器
        合約必守,誰(shuí)能例外!——對(duì)“情勢(shì)變更”制度不可寄于過(guò)高期望
        大学生高潮无套内谢视频| 亚洲美女主播一区二区| 一区二区三区在线观看视频精品| 黄片视频免费在线观看国产| 人妻有码中文字幕| 国产一国产一级新婚之夜| 天堂av在线一区二区| 一区二区三区四区中文字幕av | 娇妻在交换中哭喊着高潮| av网站免费线看| 亚洲AV色欲色欲WWW| 国产自拍精品在线免费观看| 亚洲精品tv久久久久久久久久| 最新四色米奇影视777在线看| 无码人妻丰满熟妇区免费| 久久中文字幕亚洲综合| av狠狠色丁香婷婷综合久久| 亚洲国产综合人成综合网站| 日韩精品一区二区三区中文9| 中文字幕影片免费人妻少妇| 亚洲娇小与黑人巨大交| 亚洲一区二区综合色精品| 久久精品一区二区三区不卡牛牛| 国产黄色av一区二区三区| 国产涩涩视频在线观看| 国产精品综合久久久久久久免费| 精品女人一区二区三区| 久久精品国产亚洲av久| 国产成人无码av在线播放dvd| 视频二区 无码中出| 加勒比精品视频在线播放| 国产真实乱对白精彩久久老熟妇女| 91香蕉视频网| 女人天堂av免费在线| 台湾佬中文网站| 韩国三级中文字幕hd久久精品| 亚洲一区二区国产精品视频| 色综合久久中文综合网亚洲| 国产精品久久久久久影视 | 操国产丝袜露脸在线播放| 欧美成人www在线观看|