王浩亮,廉玉忠,王麗莉
(東莞理工學院城市學院 計算機與信息學院,廣東 東莞 523000)
電子證照庫系統(tǒng)以信息技術作為中介取代持證方的中介作用,解放持證方的保管與攜帶證照負擔,為用證方提供及時、準確、全面的信息,是智慧城市建設的重要組成部分,已成為公民活動辦事的電子憑證,可助力電子證照資源跨地區(qū)、跨部門、跨層級共享。然而,傳統(tǒng)智慧城市建設以各自城市為中心,缺少頂層設計與統(tǒng)籌協(xié)調(diào),制約了電子證照庫信息手段效能發(fā)揮,其存在的主要問題如下:電子證照數(shù)據(jù)來源各地區(qū)或部門組織,信息采集和應用過程中權(quán)責不分,一旦數(shù)據(jù)信息有誤,對數(shù)據(jù)追溯困難;電子證照存儲在各管理部門的數(shù)據(jù)庫中,信息存儲分散,獨立性強,產(chǎn)生大量“數(shù)據(jù)孤島”,由于采用各區(qū)域中心化架構(gòu),信息泄露安全隱患大,存在數(shù)據(jù)存儲不完整和人為篡改的可能性,信息的真實性和完整性不易分辨,使得各參與主體間的信任度大幅降低;電子證照庫的數(shù)字證書和電子簽章來自于各部門業(yè)務應用系統(tǒng),沒有統(tǒng)一標準且不互通互認,難以統(tǒng)一,而且跨層級、跨部門、跨業(yè)務的數(shù)據(jù)共享和開發(fā)力度不夠,電子證照信息難以全面歸集與快速檢索。
區(qū)塊鏈[1]被認為是第5個最有潛力引發(fā)顛覆性革命的核心技術之一,逐漸被世界各國認可[2],區(qū)塊鏈對鏈上信息分區(qū)塊存儲,將前后區(qū)塊運用加密驗證方式進行鏈接[3],從而形成不可篡改的鏈式數(shù)據(jù)存儲方式,然后將鏈式數(shù)據(jù)分散在組網(wǎng)內(nèi)所有節(jié)點上[4],有效防止單個節(jié)點數(shù)據(jù)遭到篡改或遺失,實現(xiàn)去中心化的分布式數(shù)據(jù)管理和不完全可信環(huán)境中的可信數(shù)據(jù)管理[5],具有防篡改、不可抵賴、強一致和完整性等特性[6]。2018年11月,國家市場監(jiān)督管理總局、國家標準化管理委員會、國家電子文件管理部際聯(lián)席會議辦公室(國家密碼管理局)、國務院辦公廳電子政務辦公室聯(lián)合發(fā)布電子證照系列國家標準,為國家電子證照庫和基礎平臺建設,實現(xiàn)跨層級、跨部門電子證照互認共享、資源整合等提供了標準支撐,也是新型智慧城市建設由從單點布局向全局規(guī)劃的拓展,但同時電子證照的應用還處于起步階段。
針對上述傳統(tǒng)電子證照研究存在的不足,本文運用區(qū)塊鏈技術實現(xiàn)電子證照數(shù)據(jù)的鏈上、鏈下存儲和查詢,依靠智能合約進行鏈上證照交易,為電子政務提供便利。
區(qū)塊鏈來自于中本聰提出的比特幣(Bitcoin),成為以數(shù)字貨幣為代表的區(qū)塊鏈1.0[7]。以太坊(Ethereum)平臺以去中心化的特性解決了比特幣擴展性不足問題,成為以智能合約功能為代表的區(qū)塊鏈2.0[8]。目前,應用于金融、科學、政務、醫(yī)療、教育等領域區(qū)塊鏈3.0時代已經(jīng)到來。
區(qū)塊鏈是一種分布式的、不斷增長的、共享的區(qū)塊分類賬[9],整個區(qū)塊鏈由多個區(qū)塊(Block)組成,各區(qū)塊包括區(qū)塊頭(BlockHead)和區(qū)塊體(BlockBody)。區(qū)塊頭記錄著識別區(qū)塊的唯一標志,多個區(qū)塊組成完整的區(qū)塊鏈,結(jié)構(gòu)如圖1所示。
圖1 區(qū)塊鏈結(jié)構(gòu)Fig.1 Blockchain structure
各區(qū)塊通過哈希函數(shù)生成的數(shù)字指紋以加密方式密封。每個塊通過引用其散列值[10]“鏈接”到前一個塊,綜合運用點對點傳輸、加密算法、共識機制、分布式數(shù)據(jù)存儲等技術,形成不可篡改的區(qū)塊鏈數(shù)據(jù)存儲方式,將鏈式數(shù)據(jù)及時共享到所有節(jié)點服務器中,有效防止單個節(jié)點數(shù)據(jù)遭到篡改或遺失。因此,通過區(qū)塊鏈多中心提供存儲和服務的技術,實現(xiàn)電子證照信息真實不可篡改的可行性,充分利用區(qū)塊鏈的可追溯、共享賬本、不對稱加密的特征來建設電子證照庫,具有更好的真實性、安全性和可行性。綜合上述特點可有效應對電子證照應用面臨的問題。
以太坊是一個具有智能合約的開源公共區(qū)塊鏈平臺[11]。智能合約相當于以太坊中的法律,是區(qū)塊鏈上的去中心化、可復制可信共享程序代碼[12-13]。在以太坊中,所有的交易都按照合約定義的操作執(zhí)行。
基于以太坊的建鏈過程,根據(jù)開發(fā)程度[14]可分為公有鏈、聯(lián)盟鏈和私有鏈。國家機關針對全民開發(fā)共享的證照可以采用公有鏈,地方政府或各企業(yè)部門之間對特定的群體開放的電子證照可以采用聯(lián)盟鏈,各組織內(nèi)部對各部門之間共享的電子證照可以采用私有鏈[15]。
自以太坊誕生以來,學者對區(qū)塊鏈應用進行了大量的研究與探討,文獻[16-17]將以太坊應用在電子拍賣系統(tǒng),通過精心設計的智能合約防止操縱拍賣和用戶出價隱私,實現(xiàn)了在沒有可信第三方的情況下安全交易。文獻[18]提出基于區(qū)塊鏈和以太坊的物聯(lián)網(wǎng)安全和隱私問題的一些可能解決方案。文獻[19]設計了基于區(qū)塊鏈的分布式賬本,以防篡改的方式存儲從物聯(lián)網(wǎng)智能計量設備收集的能源消耗信息,用于智能電網(wǎng)層面的能源需求與生產(chǎn)匹配,并在以太坊平臺上實現(xiàn)了原型驗證。文獻[20]實現(xiàn)了去中心化眾籌平臺,提供多個基于以太坊平臺的智能合約模板,方便用戶創(chuàng)建符合自身的眾籌項目。隨著人工智能和深度學習技術的興起,假數(shù)字內(nèi)容大量出現(xiàn),人們采用一種基于Ethereum智能合約的解決方案和總體框架,即使數(shù)字內(nèi)容被多次復制,也能追蹤和跟蹤數(shù)字內(nèi)容的來源和歷史[21]。
區(qū)塊鏈技術在金融、物聯(lián)網(wǎng)、能源等領域得到眾多學者關注,并通過以太坊平臺驗證了其原型系統(tǒng)的數(shù)據(jù)加密、防篡改和可追溯等特性。但是,區(qū)塊鏈在電子證照相關領域的學術文獻較少且主要為理論研究[22],缺少可行的技術方案研究。因此,本文通過搭建基于以太坊的區(qū)塊鏈環(huán)境研究電子證照庫原型系統(tǒng)的實現(xiàn)方案。
本文的主要貢獻如下:
1)基于區(qū)塊鏈技術,通過以太坊平臺建立分布式多賬本,對電子證照信息分區(qū)塊存儲,對前后區(qū)塊鏈接通過加密驗證,保證了信息真實不可篡改,實現(xiàn)了電子證照數(shù)據(jù)的可信、可追溯。
2)采用區(qū)塊鏈技術的不對稱加密方式,發(fā)證方將每條電子證件信息通過公鑰加密上鏈共享,每條信息對應有單獨的解密私鑰并由持證方保管,可有效防止信息泄露,保證隱私安全。
3)基于區(qū)塊鏈技術的平權(quán)、共建的特點,構(gòu)建歸屬各部門的目錄體系,以共建共享的原則對各參與主體的上鏈信息全面歸集、共享,同時在建立電子證照信息鏈的基礎上增加索引信息,從而實現(xiàn)快速檢索功能。
系統(tǒng)基于以太坊智能合約平臺構(gòu)建私有鏈,將電子證照庫與區(qū)塊鏈技術相結(jié)合,主要功能為證照數(shù)據(jù)鏈上鏈下存儲,電子證照信息溯源檢索采用交易功能。
基于區(qū)塊鏈的電子證照庫參與主體分為頒證方、持證方和用證方,不同主體對應界面不同。系統(tǒng)流程如圖2所示。
圖2 系統(tǒng)流程Fig.2 System procedure
頒證方登錄平臺可以頒發(fā)證照,在填入證照名稱、編號、所屬人、期效等信息后,通過智能合約將證照信息加密上傳到信息鏈上,其中信息鏈、證照名稱和編號組成檢索信息上傳到檢索鏈,本地數(shù)據(jù)庫保存一份所屬人和檢索信息的數(shù)據(jù)便于檢索持有人所有證照。
持證方登錄平臺通過數(shù)據(jù)庫查找自己所屬的證照檢索信息,并且可以快捷定位到信息鏈上找到對應的證照區(qū)塊,用于查看和出示電子證照。出示電子證照時持證方會得到一個經(jīng)過自己公鑰加密后的二維碼用于出示。用證方掃碼后需經(jīng)過持證方授權(quán)確認,通過持證方的私鑰解密并且返回證照信息到用證方。
用證方登錄平臺根據(jù)需要可以掃取二維碼,經(jīng)過持證方授權(quán)后查詢證照信息,從鏈上驗證數(shù)據(jù)的真實性,并獲得數(shù)據(jù)信息保存在部門系統(tǒng)。
在區(qū)塊鏈以太坊平臺上建立電子證照目錄索引信息和證照信息鏈,各行業(yè)部門可以建立自己的電子證照子鏈,通過上傳證書請求,申請加入電子證照主鏈。電子證照數(shù)據(jù)加密后寫入?yún)^(qū)塊鏈,并生成密鑰。
電子證照庫系統(tǒng)的體系結(jié)構(gòu)如圖3所示,主要包含區(qū)塊鏈模塊、智能合約模塊、數(shù)據(jù)庫模塊和客戶端模塊4個模塊。
區(qū)塊鏈模塊的主要功能是將用戶提交的上鏈數(shù)據(jù)打包進區(qū)塊,由網(wǎng)絡中參與的節(jié)點通過共識機制確認后將區(qū)塊鏈接到鏈末端區(qū)塊,用來實現(xiàn)數(shù)據(jù)存儲以及數(shù)據(jù)溯源查詢,確保數(shù)據(jù)的安全性和完整性。
3.1.1 身份驗證
首先確保各參與方身份的真實性。系統(tǒng)采用了RSA非對稱加密算法,為保證安全使用2 048位的密鑰,公鑰用于標識系統(tǒng)內(nèi)用戶的身份,私鑰用于數(shù)字簽名,確保用戶身份的真實性。數(shù)據(jù)完整性利用 Keccak 256哈希算法解決,與區(qū)塊鏈采用的SHA-256算法相比安全性高,效率明顯提升。
在頒證方進行上鏈操作前,核實和驗證證照信息的真實性,用戶將已認證的證照信息進行公鑰加密,使用證照時需要通過私鑰解密,Hash函數(shù)通過使用的Keccak 256算法形成摘要,將上一個區(qū)塊的Hash、隨機數(shù)、timeStamp傳入數(shù)據(jù)進行加密得到一個長度為256位的字符作為Hash地址。
密鑰通過密鑰派生樹來生成、管理。各個子鏈的數(shù)據(jù)密鑰由根密鑰派生出,子鏈間的數(shù)據(jù)互不可見,根密鑰擁有者可以查看各個子鏈的數(shù)據(jù)。管理部門只需保管根密鑰,即可根據(jù)派生路徑實時派生出各個節(jié)點具體的加密密鑰。再通過對證照數(shù)據(jù)進行歸類,一類數(shù)據(jù)的密鑰由具體的一個派生路徑派生出,并通過分享派生路徑上的密鑰實現(xiàn)對密鑰加密范圍內(nèi)數(shù)據(jù)的共享。
3.1.2 驗證機制
當數(shù)據(jù)發(fā)生變化(新增、被惡意修改)時,會觸發(fā)驗證機制。如果是數(shù)據(jù)新增會驗證計算提交的Hash是否正確、上一個區(qū)塊Hash是否正確、自身是否為最后一個區(qū)塊。如果是數(shù)據(jù)被惡意修改,會重新計算Hash是否正確、驗證上一個區(qū)塊Hash是否正確、下一個區(qū)塊的前一個區(qū)塊Hash是否與當前Hash一致。
以太坊作為區(qū)塊鏈應用上最早提出智能合約的平臺,提供支持了圖靈完備的腳本語言,允許開發(fā)者在平臺上開發(fā)去中心化應用,創(chuàng)建和執(zhí)行智能合約。
電子證照庫系統(tǒng)在以太坊平臺上建立私有鏈,提供給相關部門訪問節(jié)點,通過許可對各部門保持中心化。系統(tǒng)提供對應交互接口給不同身份用戶,用戶提交的數(shù)據(jù)經(jīng)過智能合約進行上鏈存儲,通過非對稱加密方式保證數(shù)據(jù)的合法性。在智能合約模式設計方面編寫交互接口,將各參與主體所產(chǎn)生的數(shù)據(jù)進行上鏈存儲、查詢和用證交易。
3.2.1 電子證照上鏈存儲查詢
頒證方認證電子證照的真實性后對審核通過的數(shù)據(jù)進行提交,智能合約執(zhí)行電子證照信息加密并寫入鏈上區(qū)塊生成密鑰,完成電子證照數(shù)據(jù)上鏈。系統(tǒng)根據(jù)生成區(qū)塊的哈希索引、私鑰以及證照提交方的信息存儲在關系型數(shù)據(jù)庫中。數(shù)據(jù)上鏈存儲查詢部分由結(jié)構(gòu)體和存儲查詢函數(shù)組成,結(jié)構(gòu)體中的屬性包括電子證照唯一標識 ID 和各參與主體需提交數(shù)據(jù)的屬性。數(shù)據(jù)上鏈存儲智能合約的部分solidity代碼如下:
contract ElectronicLicenseChain {//智能合約
struct ElectronicLicense{
uint license_id;//電子證照唯一標識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;
//存儲電子證照相關數(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(…){…}//存儲頒證用
//戶的相關數(shù)據(jù)
function setCertificationBody(…){…}//存儲用證用戶
//的相關數(shù)據(jù)
//查詢電子證照相關數(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)電子證照使用認證的過程轉(zhuǎn)移到通過以太坊區(qū)塊鏈網(wǎng)絡中部署的智能合約來進行,持證用戶通過用戶交互接口獲取持有證照的信息提交給用證方。為了提高證照信息的檢索交易效率,增加索引信息,將電子證照的信息使用外部數(shù)據(jù)庫進行存儲,并使用倒排索引對用戶持有的電子證照進行索引。
倒排索引將電子證照名稱與電子證照編號集合進行映射,通過名稱能夠快速定位到電子證照編號,從而進一步查詢證照的詳細信息。索引結(jié)構(gòu)如圖4所示。
圖4 電子證照查詢倒排索引結(jié)構(gòu)Fig.4 Inverted index structure of electronic certificate inquiry
通過用證機構(gòu)中的各參與主體來共同制定智能合約,用證方提交信息并調(diào)用執(zhí)行智能合約。根據(jù)索引值,在區(qū)塊鏈上檢索區(qū)塊并使用持證方的私鑰驗證電子證照信息的真實性。用證方在區(qū)塊鏈上進行證照驗證操作,同時作為一個交易被智能合約執(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;
…
} }
系統(tǒng)采用由區(qū)塊鏈系統(tǒng)構(gòu)建的分布式數(shù)據(jù)存儲環(huán)境和Web應用需要的關系型數(shù)據(jù)存儲環(huán)境?;趨^(qū)塊鏈系統(tǒng)以太坊技術可視為一個數(shù)據(jù)庫,數(shù)據(jù)的變更由交易催化。一筆或多筆交易組成一個數(shù)據(jù)塊提交到數(shù)據(jù)庫中,使以太坊客戶端為一個去中心化的網(wǎng)絡。眾多節(jié)點對交易的驗證共同維護數(shù)據(jù)的真實性,保證數(shù)據(jù)的不可篡改。但是分布式數(shù)據(jù)在區(qū)塊鏈上的持久化仍存在交易開銷高、數(shù)據(jù)存儲量不足等缺點,為降低成本和提高效率,需要結(jié)合關系型數(shù)據(jù)庫系統(tǒng)進行交互。
系統(tǒng)將網(wǎng)絡應用交互接口基于關系型數(shù)據(jù)來維持和運行,用于存儲各身份用戶賬號用戶名、哈希加密后的密碼和額外的相關信息,如持證用戶電子證照的密鑰、描述等信息,通過賬戶信息的關系映射可得到對應區(qū)塊鏈的加密信息,提高查詢檢索用戶持有證照的信息效率。圖5為存儲于MySQL云數(shù)據(jù)庫中的數(shù)據(jù)結(jié)構(gòu),主要包括用戶表、電子證照表和用戶證照索引表。
圖5 數(shù)據(jù)庫結(jié)構(gòu)Fig.5 Database structure
本文系統(tǒng)使用Java語言對客戶端模塊進行開發(fā),利用Web3J進行智能合約的開發(fā)與部署和區(qū)塊鏈數(shù)據(jù)上鏈的操作,使用HTML+CSS+JS制作客戶端,為用戶提供可視化操作接口,使用戶能夠與智能合約進行交互。功能包括頒證方對證照的錄入、持證方對證照的查詢和用證方對證照的驗證。
頒證用戶證照錄入以及進行合約交易在Web交互接口實現(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();
用證用戶證照認證以及進行合約交易在Web交互接口的實現(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());
本文系統(tǒng)基于以太坊開發(fā)環(huán)境搭建,操作系統(tǒng)采用Ubuntu的64位系統(tǒng)。建立私有鏈,提供給相關部門訪問節(jié)點,通過許可對各部門保持中心化,部門中用戶都可以加入其中成為參與節(jié)點讀取數(shù)據(jù)、發(fā)送交易、競爭記賬。智能合約的開發(fā)、編譯、測試和部署采用Truffle框架,區(qū)塊數(shù)據(jù)的分布式存儲采用Leveldb數(shù)據(jù)庫。實驗運用以太坊開發(fā)者測試網(wǎng)絡來配置模擬真實的以太坊網(wǎng)絡環(huán)境。前端應用基于Java進行開發(fā)與合約進行交互,實現(xiàn)對電子證照數(shù)據(jù)的存儲和查詢。
本文基于Solidity語言編寫實現(xiàn)智能合約[23],通過客戶端將Solidity源碼文件上傳,在區(qū)塊鏈上進行合約的部署如圖6所示。合約編譯生成后,通過調(diào)用智能合約中的相應函數(shù)完成數(shù)據(jù)的存儲。頒證用戶在操作界面進行上鏈數(shù)據(jù)提交如圖7所示,因為電子證照的繁雜和信息不統(tǒng)一,系統(tǒng)輸入證照信息時根據(jù)數(shù)據(jù)不同,用戶可自行添加輸入數(shù)據(jù)項。
圖6 智能合約部署Fig.6 Smart contracts deploy
圖7 頒發(fā)證照的交互界面Fig.7 Certificate-issuing interactive interface
通過測試網(wǎng)絡進行模擬頒證和用證流程,在頒發(fā)證照流程中,系統(tǒng)調(diào)用智能合約并將證照信息數(shù)據(jù)記錄到區(qū)塊鏈,證照信息成功上鏈后,得到摘要0x3443c68ac52b7eb3085ab76754d6d752fe6a97f82df0 a1379e655a7fb7613882,如圖8所示。通過Geth客戶端得到區(qū)塊上鏈過程數(shù)據(jù)如圖9所示。用證用戶用證查詢和提交的交互界面如圖10所示。用證單位通過持證用戶提交的數(shù)據(jù)信息,根據(jù)摘要信息查詢校驗證照數(shù)據(jù)信息的證照真實性。
圖8 證照提交返回摘要過程Fig.8 Process of certificate submission return summary
圖9 證照上鏈過程Fig.9 Process of certificate up chain
圖10 用證查詢的交互界面Fig.10 Interactive interface of certificate query
為對比用戶數(shù)據(jù)信息是否被篡改,系統(tǒng)后臺通過證照摘要調(diào)用合約執(zhí)行和溯源證照數(shù)據(jù),對比用戶提交的信息可以驗證數(shù)據(jù)信息是否被篡改,查詢過程如圖11所示。通過圖7和圖11的實驗對比顯示,溯源數(shù)據(jù)的數(shù)據(jù)信息與摘要查詢的數(shù)據(jù)信息哈希值一致,可證明數(shù)據(jù)未被篡改,說明本文提出方法的正確性。
圖11 證照查詢過程Fig.11 Process of certificate query
考慮數(shù)據(jù)有被篡改的可能,將圖7數(shù)據(jù)稍作修改并重新提交上傳。篡改的數(shù)據(jù)摘要為0d5ca27eb 3085ab76785acd5ca76fe6a97f82d2ea1e7665c62b5a71a 9082a,驗證從區(qū)塊鏈上查詢的證照信息為空,如圖12所示,可以看出輸入證照的數(shù)據(jù)不是有效的。
圖12 被篡改證照信息查詢Fig.12 Query of tampered certificate information
上述實驗在測試網(wǎng)絡上完成,說明了電子證照在基于以太坊區(qū)塊鏈上的數(shù)據(jù)安全和防止篡改具有可行性。對比傳統(tǒng)的證照系統(tǒng),使用基于以太坊區(qū)塊鏈的電子證照系統(tǒng)只通過Solidity智能合約部署和執(zhí)行支付少量的虛擬貨幣,而不需要較大的人力進行維護,簡化了操作流程,節(jié)省了成本,提高了效率。
本文提出一種面向電子證照共享的區(qū)塊鏈技術方案,該方案為基于以太坊的一個去中心化數(shù)據(jù)共享交易服務系統(tǒng)。將電子證照交易數(shù)據(jù)上鏈后打包入?yún)^(qū)塊中以保證數(shù)據(jù)可追溯性,鏈下數(shù)據(jù)存儲到數(shù)據(jù)庫降低交易成本。將頒證、用證各個環(huán)節(jié)的重要數(shù)據(jù)信息上傳存儲到區(qū)塊鏈中確保其不可篡改、真實可靠,通過智能合約的使用減少持證、用證過程中的人力損耗。實驗結(jié)果表明,本文電子證照的防篡改和溯源方案具有可行性,鏈上數(shù)據(jù)具有可溯源、防篡改等特性。正確運用區(qū)塊鏈技術可增強信任體系,有助于電子證照資源跨地區(qū)、跨層級共享及強化管理。下一步將繼續(xù)完善智能合約功能及以實現(xiàn)大規(guī)模證照交易數(shù)據(jù)的區(qū)塊鏈管理。