官术网_书友最值得收藏!

1.3 基于區(qū)塊鏈的可信電子證照方案設(shè)計

1.3.1 業(yè)務(wù)設(shè)計

基于區(qū)塊鏈的可信電子證照用于政府部門給公民發(fā)放電子證照,以取代紙質(zhì)證照,并通過區(qū)塊鏈保存不可篡改的發(fā)證、收證、查證記錄,使各社會主體共同建造、共同維護(hù)、共同監(jiān)督,從而滿足公眾的知情權(quán)、監(jiān)督權(quán),增強(qiáng)電子證照的客觀性與可信度。

從業(yè)務(wù)功能上來說,可信電子證照應(yīng)用包括登記、發(fā)證、收證、查驗幾個環(huán)節(jié),如圖1-2所示。登記環(huán)節(jié)由公民在指定業(yè)務(wù)部門完成實名登記,申請開通電子證照;發(fā)證環(huán)節(jié)由公民根據(jù)需要申請個人電子證件,并由政府或第三方機(jī)構(gòu)發(fā)放電子證照;收證環(huán)節(jié)用于公民接收、存儲、管理自己的電子證照;查驗環(huán)節(jié)主要由查驗工作人員對公民提供的電子證照進(jìn)行查驗,證明個人身份或辦理相關(guān)業(yè)務(wù)。

圖1-2 可信電子證照的業(yè)務(wù)流程

1.登記

實現(xiàn)公民電子證照的日常開通、注銷、變更申請工作。公民根據(jù)個人在指定的業(yè)務(wù)部門完成實名登記后,即可辦理電子證照的開通、注銷、更改等日常業(yè)務(wù)。

2.發(fā)證

實現(xiàn)公民電子證照的發(fā)放。公民申請開通電子證照后,由公民提出申請,可信電子證照應(yīng)用平臺根據(jù)申請信息為公民發(fā)放個人電子證照。電子證照通過彩信、手機(jī)客戶端等幾種渠道進(jìn)行發(fā)放,申請的個人電子證照通過手機(jī)客戶端進(jìn)行統(tǒng)一管理。具體流程如下:

(1)持證人通過手機(jī)客戶端向政府的發(fā)證機(jī)構(gòu)提供個人信息,申請一個數(shù)字身份。

(2)發(fā)證機(jī)構(gòu)審核持證人信息,生成持證人的數(shù)字身份;發(fā)證機(jī)構(gòu)用其私鑰對持證人的數(shù)字身份簽名后,發(fā)送給持證人,以及向電網(wǎng)信息中心報審/備案。

(3)持證人使用自己的公鑰對接收到的有發(fā)證機(jī)構(gòu)簽名的數(shù)字身份進(jìn)行加密,并提交數(shù)字身份區(qū)塊鏈。

(4)數(shù)字身份區(qū)塊鏈完成驗證和共識過程,實現(xiàn)數(shù)字身份的記賬。

3.查驗

實現(xiàn)工作人員對公民電子證照的查驗,對公民身份進(jìn)行識別、核對,完成個人身份證明。查驗人員可通過手機(jī)客戶端、PC工作端進(jìn)行查驗操作,查驗操作記錄保存在統(tǒng)一管理中心,以保證事后審計。具體流程如下:

(1)持證人出示客戶端上的數(shù)字身份碼,供查證人掃描;

(2)查證人利用發(fā)證機(jī)構(gòu)的公鑰驗證數(shù)字身份是否為發(fā)證機(jī)構(gòu)所發(fā);

(3)查證人對持證人數(shù)字身份信息進(jìn)行查證。

可信電子證照應(yīng)用平臺包括統(tǒng)一管理中心、用證端、發(fā)證端和查證端四部分。其中統(tǒng)一管理中心為用證端、發(fā)證端和查證端提供基礎(chǔ)支撐功能服務(wù)和數(shù)據(jù)網(wǎng)絡(luò)服務(wù)。用證端是提供給公民使用,即持證人獲取、管理及使用電子證照的應(yīng)用程序,持證人可以通過彩信、手機(jī)客戶端兩種方式獲取電子證照。發(fā)證端將與政府的各個業(yè)務(wù)系統(tǒng)實現(xiàn)對接,采用嵌入式,不影響現(xiàn)有業(yè)務(wù)系統(tǒng)的運(yùn)行,并提供相應(yīng)的調(diào)用發(fā)證服務(wù)。查驗端是提供給查驗工作人員查驗電子證照時使用的應(yīng)用程序,其可以安裝在PC端,也可以安裝到移動端。

1.3.2 架構(gòu)設(shè)計

從業(yè)務(wù)流程上看,基于區(qū)塊鏈的可信電子證照是一個典型的分布式應(yīng)用(DApp),因此我們采用以太坊的技術(shù)底層作為支撐,其基礎(chǔ)技術(shù)架構(gòu)自下而上包括數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、合約層和應(yīng)用層。結(jié)合電子證照應(yīng)用的需要,我們設(shè)計了如下技術(shù)架構(gòu)(見圖1-3),主要分為技術(shù)層、服務(wù)層和用戶層。

圖1-3 總體架構(gòu)

技術(shù)層運(yùn)用以太坊平臺,將證照信息及使用記錄進(jìn)行區(qū)塊化封裝,連接成區(qū)塊鏈;

服務(wù)層以技術(shù)層為基礎(chǔ),向用戶提供會員制服務(wù)、區(qū)塊鏈服務(wù)、電子證照服務(wù);

用戶層主要表現(xiàn)形式為公民用戶App、發(fā)證機(jī)構(gòu)前端,以實現(xiàn)用戶與用戶之間、用戶與發(fā)證機(jī)構(gòu)之間的信息交互。

如圖1-4所示,對數(shù)據(jù)進(jìn)行區(qū)塊化封裝,每個區(qū)塊細(xì)分為區(qū)塊頭和區(qū)塊體兩部分。其中,區(qū)塊當(dāng)前的版本號、上一個區(qū)塊的地址、時間戳、當(dāng)前區(qū)塊哈希值與隨機(jī)數(shù)封裝在區(qū)塊頭內(nèi);當(dāng)前區(qū)塊的交易數(shù)量以及經(jīng)過驗證的、區(qū)塊創(chuàng)建過程中生成的所有記錄封裝在區(qū)塊體中。區(qū)塊體由Merkle樹組成,在Merkle樹的葉子節(jié)點上,保存著每一筆發(fā)證、收證、查證和換證的記錄,這些數(shù)據(jù)通過兩兩Hash計算向上形成Merkle樹的根記入?yún)^(qū)塊頭。

圖1-4 區(qū)塊結(jié)構(gòu)圖

根據(jù)不同證件的業(yè)務(wù)類型,采用主鏈和側(cè)鏈[10]雙向錨定的設(shè)計加以區(qū)分。如圖1-5所示,主鏈用于身份證明,用戶利用身份證、護(hù)照或社保卡在主鏈上完成身份認(rèn)證,再通過主鏈錨定其他電子證照;不同的證照對應(yīng)各自的側(cè)鏈,以便于劃分不同的業(yè)務(wù)數(shù)據(jù),提高登記、查驗效率。側(cè)鏈的雙向錨定技術(shù)允許信任在不同網(wǎng)絡(luò)間傳遞,建立個人信用體系;同時允許發(fā)布試用版本的電子證照區(qū)塊鏈,對主鏈不造成影響。

圖1-5 側(cè)鏈設(shè)計

1.3.3 交互設(shè)計

1.身份認(rèn)證階段

身份認(rèn)證系統(tǒng)主要涉及區(qū)塊鏈平臺、用戶App和后臺管理系統(tǒng)的交互。對于業(yè)務(wù)系統(tǒng)注冊賬號分3個不同的角色:普通用戶、制證機(jī)關(guān)用戶、查驗機(jī)構(gòu)用戶。普通用戶身份認(rèn)證如圖1-6所示,發(fā)證機(jī)構(gòu)身份認(rèn)證如圖1-7所示。

圖1-6 用戶身份認(rèn)證

首先,用戶登錄系統(tǒng)ID,后臺管理系統(tǒng)進(jìn)行身份認(rèn)證。如果通過則將用戶身份信息寫入身份管理數(shù)據(jù)庫,并向用戶返回注冊成功信息,否則重新注冊。

其次,注冊區(qū)塊鏈ID,由用戶信息(姓名、單位、城市、國家及其他代表用戶身份的信息)生成全網(wǎng)唯一的身份標(biāo)識,根據(jù)這一身份標(biāo)識,判斷用戶是否為新用戶。我們利用Hash算法生成全網(wǎng)唯一身份標(biāo)識。原則上,同樣的輸入會產(chǎn)生同樣的Hash輸出,而不同的輸入產(chǎn)生的輸出肯定不同。這類的Hash算法有很多,我們主要采用SHA3、最大量2128算法。后臺管理系統(tǒng)可以保存當(dāng)前區(qū)塊鏈中所有用戶的全網(wǎng)唯一身份標(biāo)識,可將認(rèn)證機(jī)構(gòu)根據(jù)用戶信息生成的全網(wǎng)唯一身份標(biāo)識與存儲過的全網(wǎng)唯一身份標(biāo)識進(jìn)行對比,來判斷該用戶是新用戶還是老用戶:若未找到存儲過的全網(wǎng)唯一身份標(biāo)識則為新用戶,否則為老用戶。

圖1-7 發(fā)證機(jī)構(gòu)身份認(rèn)證

2.發(fā)證、收證階段

收發(fā)證系統(tǒng)主要涉及用戶端、區(qū)塊鏈平臺、發(fā)證機(jī)構(gòu)前端和政府業(yè)務(wù)庫的交互,如圖1-8所示。

圖1-8 發(fā)證、收證

首先,用戶A由App向發(fā)證機(jī)構(gòu)B請求簽發(fā)電子證照。

其次,政府業(yè)務(wù)庫未查找到證照記錄則返回申請步驟,查找成功則通過發(fā)證機(jī)構(gòu)前端進(jìn)行制證發(fā)證,發(fā)證機(jī)關(guān)簽名,通過請求信息獲取用戶A(持證人)的公鑰(地址)。

再次,發(fā)證機(jī)構(gòu)用自己的私鑰和用戶A的公鑰加密,平臺輸出該筆交易的Hash值,向全網(wǎng)廣播用戶A的發(fā)證記錄,記錄證件信息的區(qū)塊編號,寫入?yún)^(qū)塊鏈。其他機(jī)構(gòu)收到了發(fā)證機(jī)構(gòu)B的廣播信息,并對用戶A的身份信息進(jìn)行確認(rèn)。

最后,持證人在App上驗證發(fā)證機(jī)構(gòu)簽名,確保信息未被篡改,在區(qū)塊鏈上用私鑰解密完成收證,發(fā)證機(jī)構(gòu)公鑰解密作為存證。

3.換證階段

換證系統(tǒng)同樣涉及用戶端、區(qū)塊鏈平臺、發(fā)證機(jī)構(gòu)前端和政府業(yè)務(wù)庫的交互,如圖1-9所示。

圖1-9 換證

用戶A由App向發(fā)證機(jī)構(gòu)B請求更改電子證照,輸入A的區(qū)塊鏈地址、發(fā)證組織機(jī)構(gòu)代碼以及用戶公鑰加密的證件信息。發(fā)證機(jī)構(gòu)B接收到用戶A的更新請求后,首先根據(jù)用戶信息查詢該用戶的已有身份證書,如果未找到,則更新失敗;如果找到已有身份證書,則比較已有證書中的用戶公鑰、頒發(fā)者、有效期等信息與更新請求中的信息是否一致,如果一致則更新失敗,如果不一致則為用戶創(chuàng)建新的電子證書(同發(fā)證步驟)。

4.查驗階段

查驗系統(tǒng)主要涉及查證人用戶端、持證人用戶端、區(qū)塊鏈平臺的交互,分為遠(yuǎn)程查驗(見圖1-10)和線下查驗(見圖1-11)。

圖1-10 遠(yuǎn)程查驗流程

圖1-11 線下查驗流程

遠(yuǎn)程查驗步驟如下:

(1)查證人C通過用戶端直接向持證人A申請查驗證照信息,若持證人A拒絕請求則查證失敗,通過請求則會調(diào)出帶有發(fā)證機(jī)構(gòu)B簽名的電子證照,由查證人C用其公鑰加密后,向其他節(jié)點廣播查證記錄;

(2)查證人C驗證發(fā)證機(jī)構(gòu)簽名,用私鑰解密套用模板進(jìn)行證照查驗。

遠(yuǎn)程查驗滿足了用戶隨時隨地進(jìn)行證照查驗的需求,大幅節(jié)省了社會交往、商務(wù)活動的成本。

線下查驗則首先需要查證人C掃描持證人A的含有其自身ID標(biāo)識的二維碼,之后向持證人A發(fā)出證照查驗申請,并按遠(yuǎn)程查驗步驟進(jìn)行。

主站蜘蛛池模板: 南宫市| 东辽县| 深州市| 东山县| 黔西县| 监利县| 安龙县| 托克逊县| 台湾省| 江北区| 黎川县| 绿春县| 灵石县| 万安县| 西宁市| 将乐县| 蒙山县| 河东区| 土默特右旗| 海淀区| 上虞市| 昌江| 中阳县| 阳信县| 平昌县| 通州区| 长沙县| 边坝县| 缙云县| 盐城市| 仁怀市| 呼图壁县| 凤台县| 日土县| 江北区| 阳春市| 龙门县| 定日县| 皋兰县| 武功县| 墨玉县|