黃超然 ,佟 興 ,張 召 ,金澈清 ,楊英杰 ,秦 鋼
(1.華東師范大學(xué) 數(shù)據(jù)科學(xué)與工程學(xué)院,上海 200062;2.歐冶云商股份有限公司 數(shù)智供應(yīng)鏈研發(fā)中心,上海 201999)
隨著教育“數(shù)字化轉(zhuǎn)型”的浪潮襲來(lái),新型教育模式將進(jìn)一步提升教育質(zhì)量、推動(dòng)教育行業(yè)發(fā)展,其中,如何保障資源分配與共享過(guò)程的公平可信、保障教育證書(shū)與評(píng)分可信和實(shí)現(xiàn)教育數(shù)據(jù)的隱私保護(hù)是數(shù)字教育發(fā)展的關(guān)鍵問(wèn)題.區(qū)塊鏈為上述問(wèn)題提供了解決方案: 智能合約能夠保證資源分配規(guī)則和知識(shí)共享的可信執(zhí)行、提供知識(shí)產(chǎn)權(quán)和教育證書(shū)的可驗(yàn)證數(shù)字憑證;通過(guò)公私鑰加解密保護(hù)教育數(shù)據(jù)互換中交易方身份信息不被泄露.
但是,在實(shí)際應(yīng)用場(chǎng)景中,區(qū)塊鏈數(shù)據(jù)不可篡改的特性使得智能合約一旦部署就不可修改.而教育資源分配規(guī)則仍在不斷發(fā)展和完善,知識(shí)共享、知識(shí)產(chǎn)權(quán)認(rèn)證和教育證書(shū)認(rèn)證的模式也在不斷變化,從更通用的應(yīng)用場(chǎng)景來(lái)看,也很難有一次即完美實(shí)現(xiàn)的代碼.然而智能合約只能通過(guò)重新部署完整的新合約進(jìn)行合約升級(jí),導(dǎo)致存儲(chǔ)和開(kāi)發(fā)成本高,拖慢上層應(yīng)用更新效率.因此,如何便捷高效地升級(jí)智能合約成為一個(gè)亟待解決的問(wèn)題.另外,區(qū)塊鏈雖然保護(hù)了參與者的身份隱私,但其公開(kāi)透明的特性使得鏈上的數(shù)據(jù)能夠被任意參與者獲取,而教育數(shù)據(jù)涵蓋類型眾多,包括師生數(shù)據(jù)、知識(shí)數(shù)據(jù)和教學(xué)數(shù)據(jù)等各類敏感數(shù)據(jù),數(shù)據(jù)一旦泄露仍然會(huì)面臨眾多安全問(wèn)題.在已有的鏈上數(shù)據(jù)隱私保護(hù)研究工作中,同態(tài)加密、零知識(shí)證明和多方安全計(jì)算等隱私保護(hù)方法被嘗試應(yīng)用到區(qū)塊鏈中,但這些方法各自存在加解密耗時(shí)、計(jì)算成本高和建模復(fù)雜等問(wèn)題,在實(shí)際應(yīng)用中可行性較低.因此,如何實(shí)現(xiàn)教育場(chǎng)景中的實(shí)用數(shù)據(jù)隱私保護(hù)是一個(gè)關(guān)鍵問(wèn)題.
針對(duì)上述問(wèn)題,本文做了以下3 點(diǎn)拓展與貢獻(xiàn):
(1) 提出了一個(gè)高效的完全解耦合的智能合約架構(gòu).將合約完全解耦為代理邏輯合約、代理數(shù)據(jù)合約、邏輯合約和數(shù)據(jù)合約4 類合約集,從而支持任意子合約的獨(dú)立升級(jí);將代理邏輯合約與代理數(shù)據(jù)合約的數(shù)據(jù)緩存在鏈下,減少了復(fù)雜的合約架構(gòu)帶來(lái)的通信交互代價(jià);優(yōu)化數(shù)據(jù)合約升級(jí)時(shí)數(shù)據(jù)遷移方法,減少了數(shù)據(jù)遷移帶來(lái)的時(shí)間和空間開(kāi)銷.
(2) 提出了一個(gè)實(shí)用的區(qū)塊鏈應(yīng)用數(shù)據(jù)隱私保護(hù)方案.在合約層以用戶為粒度,設(shè)計(jì)訪問(wèn)權(quán)限控制方案,在保證區(qū)塊鏈運(yùn)行效率的同時(shí)提高數(shù)據(jù)隱私安全性;進(jìn)一步設(shè)計(jì)了基于本地化差分隱私(Local Differential Privacy,LDP)[1]的隱私保護(hù)方案,提高了面向全鏈公開(kāi)的統(tǒng)計(jì)類數(shù)據(jù)隱私安全性.
(3) 基于開(kāi)源區(qū)塊鏈系統(tǒng)CITA (Cryptape Inter-enterprise Trust Automation)[2]及華東師范大學(xué)與歐冶云商聯(lián)合研發(fā)的CITA 數(shù)據(jù)管理組件SQL (Structured Query Language)-CITA[3]實(shí)現(xiàn)上述方案,進(jìn)行實(shí)驗(yàn)驗(yàn)證實(shí)際效果,并將功能集成落地在區(qū)塊鏈教育平臺(tái)中.設(shè)計(jì)并實(shí)現(xiàn)了以知識(shí)資源為主體的基于區(qū)塊鏈的知識(shí)社區(qū)應(yīng)用和以學(xué)生信息為主體的基于區(qū)塊鏈的學(xué)生成長(zhǎng)軌跡跟蹤與評(píng)價(jià)應(yīng)用.
本文提出的區(qū)塊鏈教育平臺(tái)支持可信的知識(shí)產(chǎn)權(quán)確權(quán)與交易、知識(shí)資源分配與加密共享、學(xué)生教育記錄存證與分析和可信電子簡(jiǎn)歷生成等功能,并且優(yōu)化了應(yīng)用的更新性能,解決了應(yīng)用數(shù)據(jù)的隱私安全問(wèn)題,為數(shù)字教育發(fā)展面臨的問(wèn)題提供了應(yīng)用實(shí)例.
本文提出了一個(gè)可信、高效且安全的區(qū)塊鏈教育平臺(tái),圍繞知識(shí)資源與學(xué)生信息兩大核心主體,解決了數(shù)字教育發(fā)展中面臨的問(wèn)題.平臺(tái)系統(tǒng)架構(gòu)如圖1 所示,從下往上依次為底層鏈、合約層、數(shù)據(jù)管理層和應(yīng)用層.底層鏈采用開(kāi)源的區(qū)塊鏈內(nèi)核系統(tǒng)CITA;在合約層設(shè)計(jì)并實(shí)現(xiàn)了基于智能合約的可信知識(shí)資源管理、學(xué)生信息管理,以及鏈上數(shù)據(jù)隱私保護(hù)方案;數(shù)據(jù)管理層采用基于CITA 設(shè)計(jì)的數(shù)據(jù)管理中間件SQL-CITA,使得應(yīng)用層能夠通過(guò)SQL 語(yǔ)句簡(jiǎn)單高效地管理鏈上數(shù)據(jù);在應(yīng)用層實(shí)現(xiàn)了知識(shí)社區(qū)應(yīng)用和學(xué)生成長(zhǎng)軌跡跟蹤與評(píng)價(jià)應(yīng)用.
圖1 區(qū)塊鏈教育平臺(tái)的系統(tǒng)架構(gòu)Fig.1 System architecture of blockchain education platform
其中,知識(shí)社區(qū)應(yīng)用是以知識(shí)資源為核心的可信在線交流平臺(tái),包括三大功能模塊: ①知識(shí)產(chǎn)權(quán)認(rèn)證與保護(hù)模塊,支持知識(shí)產(chǎn)權(quán)的和產(chǎn)權(quán)所有者對(duì)信息的查詢與修改,以及知識(shí)產(chǎn)權(quán)的交易等功能;② 知識(shí)資源分享模塊,支持課程資源按需分配、加密知識(shí)資源共享、加密知識(shí)資源交易等功能;③知識(shí)交流與問(wèn)答模塊,支持有償問(wèn)答激勵(lì)機(jī)制等功能.
學(xué)生成長(zhǎng)軌跡跟蹤與評(píng)價(jià)應(yīng)用是以學(xué)生信息為主體的可信分析與評(píng)價(jià)系統(tǒng),包括兩大功能模塊:①學(xué)生在校信息存證模塊,支持學(xué)生成長(zhǎng)信息上鏈存證與查詢;② 可信個(gè)人簡(jiǎn)歷模塊,提供由區(qū)塊鏈系統(tǒng)與官方機(jī)構(gòu)背書(shū)的可驗(yàn)證個(gè)人簡(jiǎn)歷.
本文提出的區(qū)塊鏈教育平臺(tái)中,依靠智能合約連接應(yīng)用與區(qū)塊鏈.智能合約作為區(qū)塊鏈上的可執(zhí)行代碼,為區(qū)塊鏈提供了豐富的操作和構(gòu)建上層教育應(yīng)用的可能.通過(guò)對(duì)智能合約的設(shè)計(jì),實(shí)現(xiàn)對(duì)知識(shí)產(chǎn)權(quán)的確權(quán)、共享與交易,以及對(duì)學(xué)生信息的存證和可信簡(jiǎn)歷的生成.但是這些功能都需要持續(xù)地迭代與更新.區(qū)塊鏈技術(shù)雖然保證了教育公平和數(shù)據(jù)安全,但其不可篡改特性使得合約升級(jí)需重新部署完整合約,使得更新時(shí)智能合約開(kāi)發(fā)成本高、合約代碼冗余存儲(chǔ),因而合約層無(wú)法便捷有效地支撐上層教育應(yīng)用的迭代更新.
針對(duì)上述問(wèn)題,文獻(xiàn)[4]提出了數(shù)據(jù)與邏輯分離的松耦合智能合約架構(gòu).但是該工作中的架構(gòu)設(shè)計(jì)考慮較簡(jiǎn)單,只支持邏輯合約功能內(nèi)容升級(jí),不支持?jǐn)?shù)據(jù)合約更新和接口增刪.并且,調(diào)用接口時(shí)總是需要訪問(wèn)接口合約-數(shù)據(jù)合約獲得邏輯合約地址,再通過(guò)接口合約-邏輯合約響應(yīng)需求,最后還需要再訪問(wèn)數(shù)據(jù)合約修改數(shù)據(jù).合約調(diào)用流程復(fù)雜、耗時(shí)且低效,其流程如圖2 所示.
圖2 智能合約架構(gòu)Fig.2 Smart contract framework
本章節(jié)提出了一個(gè)高效的完全解耦合智能合約架構(gòu),架構(gòu)中將合約分為以下4 類.
(1) 代理邏輯合約: 向應(yīng)用層提供功能接口和set 接口 (用于變更邏輯合約地址)、保存接口對(duì)應(yīng)的邏輯合約地址和代理數(shù)據(jù)合約地址.
(2) 代理數(shù)據(jù)合約: 向邏輯合約提供數(shù)據(jù)接口和set 接口 (用于變更數(shù)據(jù)合約地址)、保存接口對(duì)應(yīng)的數(shù)據(jù)合約地址.
(3) 邏輯合約: 封裝并實(shí)現(xiàn)應(yīng)用層功能需求、緩存流程中的調(diào)用參數(shù).
(4) 數(shù)據(jù)合約: 實(shí)現(xiàn)對(duì)鏈上合約數(shù)據(jù)的查詢和修改操作、保存合約數(shù)據(jù).
完全解耦合的智能合約架構(gòu)流程如圖3 所示,以調(diào)用邏輯合約A1為例: ①去中心化應(yīng)用(Decentralized Application,DAPP) 調(diào)用代理邏輯合約接口獲得邏輯合約A1的地址DA1以及ABI 接口信息;② 用獲得的合約地址DA1和ABI 接口調(diào)用邏輯合約A1;③A1需要讀寫數(shù)據(jù)時(shí)從代理邏輯合約獲取代理數(shù)據(jù)合約地址,并調(diào)用代理數(shù)據(jù)合約獲得數(shù)據(jù)合約B1的地址DB1;④ 用獲得的合約地址DB1調(diào)用數(shù)據(jù)合約B1進(jìn)行數(shù)據(jù)操作,最后響應(yīng)DAPP.
圖3 完全解耦合的智能合約架構(gòu)Fig.3 Fully decoupled smart contract framework
該架構(gòu)借助兩個(gè)代理合約將邏輯合約與數(shù)據(jù)合約完全解耦合,當(dāng)合約更新完善時(shí),可以針對(duì)具體邏輯子合約和數(shù)據(jù)子合約分別進(jìn)行升級(jí).下面以知識(shí)產(chǎn)權(quán)上鏈存證和查改鏈上知識(shí)產(chǎn)權(quán)信息的應(yīng)用場(chǎng)景為例,介紹了不同類型合約的升級(jí)方案 (代理邏輯合約和代理數(shù)據(jù)合約的升級(jí)流程和數(shù)據(jù)合約升級(jí)類似,不做另外介紹).
(1) 在完善知識(shí)產(chǎn)權(quán)上鏈存證的構(gòu)造證明流程時(shí),需要升級(jí)存證功能對(duì)應(yīng)的邏輯合約A1.首先將新的邏輯合約A2部署至鏈上,獲得A2的合約地址后,調(diào)用代理邏輯合約的set 接口,更新存證功能接口對(duì)應(yīng)的合約地址變量.
(2) 當(dāng)鏈上知識(shí)產(chǎn)權(quán)存證信息需要加入一個(gè)新的數(shù)據(jù)字段時(shí),需要升級(jí)知識(shí)產(chǎn)權(quán)對(duì)應(yīng)的數(shù)據(jù)合約B1.首先將新的數(shù)據(jù)合約B2部署至鏈上并同步獲取B1的合約數(shù)據(jù),獲得B2的合約地址后,調(diào)用代理邏輯合約獲得代理數(shù)據(jù)合約地址,再調(diào)用代理數(shù)據(jù)合約的set 接口,更新知識(shí)產(chǎn)權(quán)對(duì)應(yīng)的合約地址變量.
完全解耦合的智能合約架構(gòu)支持便捷實(shí)用的任意子合約升級(jí),減少了合約升級(jí)時(shí)的開(kāi)發(fā)成本,能靈活地支持上層教育應(yīng)用更新.但是,仍然存在合約調(diào)用流程復(fù)雜帶來(lái)的通信開(kāi)銷問(wèn)題和合約升級(jí)時(shí)數(shù)據(jù)遷移帶來(lái)的內(nèi)存開(kāi)銷問(wèn)題,使得應(yīng)用性能低下.因此,本章節(jié)在提出該架構(gòu)的基礎(chǔ)上,做了以下兩點(diǎn)優(yōu)化與拓展.
(1) 設(shè)計(jì)了代理合約的數(shù)據(jù)鏈下緩存機(jī)制,借助時(shí)間戳校驗(yàn)保證鏈上鏈下代理合約數(shù)據(jù)的同步,簡(jiǎn)化代理邏輯合約 (代理數(shù)據(jù)合約) 和邏輯合約 (數(shù)據(jù)合約) 之間的交互,縮短DAPP 響應(yīng)時(shí)間.
(2) 當(dāng)代理邏輯合約、代理數(shù)據(jù)合約、數(shù)據(jù)合約升級(jí)時(shí),需要對(duì)新舊版本的合約數(shù)據(jù)做遷移或是繼承,直接復(fù)制遷移數(shù)據(jù)會(huì)導(dǎo)致不必要的存儲(chǔ)開(kāi)銷,針對(duì)此問(wèn)題提出了面向升級(jí)過(guò)程的合約數(shù)據(jù)遷移方法,減少了升級(jí)時(shí)的存儲(chǔ)開(kāi)銷.
為了減少多次合約間的互相調(diào)用帶來(lái)的額外耗時(shí),將代理邏輯合約 (代理數(shù)據(jù)合約) 的接口-邏輯合約地址映射表 (接口-數(shù)據(jù)合約地址映射表) 緩存至鏈下.這一緩存機(jī)制簡(jiǎn)化了合約調(diào)用的流程,如圖4 所示,DAPP 從鏈下緩存的地址映射表獲取接口對(duì)應(yīng)的邏輯合約地址和數(shù)據(jù)合約地址,再調(diào)用邏輯合約執(zhí)行功能操作,邏輯合約調(diào)用數(shù)據(jù)合約進(jìn)行相應(yīng)數(shù)據(jù)操作.
圖4 鏈上鏈下協(xié)作的智能合約架構(gòu)Fig.4 Smart contract framework with off-chain collaboration
代理合約數(shù)據(jù)緩存在鏈下時(shí),會(huì)存在鏈上鏈下數(shù)據(jù)的一致性問(wèn)題.為了保證數(shù)據(jù)同步,設(shè)計(jì)了簡(jiǎn)單的數(shù)據(jù)一致性校驗(yàn)機(jī)制,如偽代碼1 所示,為所有邏輯合約和數(shù)據(jù)合約增加一個(gè)校驗(yàn)參數(shù)F及其set 和get 接口.只有最新版本合約的F值為true,升級(jí)合約時(shí)先將舊版本合約F值賦為false,再將新合約部署上鏈,新合約構(gòu)造時(shí)F值默認(rèn)為true.調(diào)用合約時(shí)需對(duì)F值進(jìn)行校驗(yàn),若當(dāng)前調(diào)用的邏輯合約 (數(shù)據(jù)合約) 非最新版本,從鏈上同步最新的代理合約數(shù)據(jù).
該緩存機(jī)制使得代理邏輯合約和代理數(shù)據(jù)合約仍存在于架構(gòu)的邏輯調(diào)用中,但實(shí)際上從鏈下進(jìn)行讀取,節(jié)約調(diào)用操作中近半的鏈上操作,能夠有效減少解耦合架構(gòu)中多層次合約帶來(lái)的交互開(kāi)銷.
當(dāng)代理邏輯合約、代理數(shù)據(jù)合約和數(shù)據(jù)合約升級(jí)時(shí),新版本合約需要同步舊版本合約的數(shù)據(jù),例如,接口-邏輯合約地址映射表、接口-數(shù)據(jù)合約地址映射表和存證數(shù)據(jù)等.讀取舊版本鏈上數(shù)據(jù)并復(fù)制到新版本合約是最直接的數(shù)據(jù)遷移方法,但也導(dǎo)致每次升級(jí)都需要復(fù)制所有合約數(shù)據(jù).隨著升級(jí)版本的增多、合約數(shù)據(jù)量的線性增加,不僅降低合約升級(jí)時(shí)的效率,也會(huì)使數(shù)據(jù)重復(fù)冗余,產(chǎn)生額外的存儲(chǔ)開(kāi)銷.
為了降低存儲(chǔ)開(kāi)銷,復(fù)用舊版本合約數(shù)據(jù),本節(jié)提出了在存儲(chǔ)層將新版本合約的狀態(tài)樹(shù)葉子節(jié)點(diǎn)指向舊版本合約的存儲(chǔ)樹(shù)根的合約數(shù)據(jù)遷移方法.
圖5(a)為區(qū)塊鏈底層存儲(chǔ)原理,每部署一個(gè)新的合約上鏈,區(qū)塊里會(huì)記錄一個(gè)新生成的合約賬戶,賬戶指向一棵狀態(tài)樹(shù),狀態(tài)樹(shù)葉子節(jié)點(diǎn)指向合約數(shù)據(jù)存儲(chǔ)樹(shù).因此,當(dāng)A 合約由1.0 版本升級(jí)至2.0 版本時(shí),區(qū)塊鏈會(huì)覆蓋其狀態(tài)樹(shù)葉子節(jié)點(diǎn)并生成一個(gè)A 合約2.0 版本對(duì)應(yīng)的存儲(chǔ)樹(shù).圖5(b)為本節(jié)提出的優(yōu)化方案流程,將合約升級(jí)區(qū)別于新合約部署,新版本合約不再生成新的存儲(chǔ)樹(shù),A 合約2.0 版本對(duì)應(yīng)的狀態(tài)樹(shù)葉子節(jié)點(diǎn)直接指向A 合約1.0 版本的存儲(chǔ)樹(shù)根節(jié)點(diǎn).傳統(tǒng)合約升級(jí)時(shí),每次都需要生成一棵新的存儲(chǔ)樹(shù),數(shù)據(jù)則同步復(fù)制舊版本合約的存儲(chǔ)樹(shù)上數(shù)據(jù),會(huì)造成合約數(shù)據(jù)遷移過(guò)程中額外時(shí)間開(kāi)銷和存儲(chǔ)開(kāi)銷.本節(jié)提出的新遷移方法復(fù)用舊版本數(shù)據(jù),能夠進(jìn)一步減少合約升級(jí)成本.
圖5 合約升級(jí)時(shí)數(shù)據(jù)遷移示意圖Fig.5 Data migration on contract upgrade
本文提出的系統(tǒng)中,以知識(shí)和學(xué)生為核心的教育應(yīng)用數(shù)據(jù)豐富且多元,其中包括許多敏感數(shù)據(jù),例如私有知識(shí)資源、非公開(kāi)課程信息、師生信息等.而區(qū)塊鏈數(shù)據(jù)公開(kāi)透明的特性使得所有參與者都能拿到完整的數(shù)據(jù),無(wú)法保證教育數(shù)據(jù)隱私安全.現(xiàn)有鏈上數(shù)據(jù)隱私保護(hù)的相關(guān)研究,主要考慮對(duì)鏈上數(shù)據(jù)加密,使訪問(wèn)者不可解密數(shù)據(jù)內(nèi)容,并保證加密后數(shù)據(jù)的可用性,例如仍然能正確進(jìn)行身份驗(yàn)證和交易執(zhí)行等.基于這一思路提出的各類密碼學(xué)方法 (如同態(tài)加密) 安全性高,但是這類方案計(jì)算復(fù)雜、加解密成本高,在實(shí)際應(yīng)用中難以廣泛應(yīng)用.因此,本章針對(duì)合約層和應(yīng)用層提出了實(shí)用隱私保護(hù)方案,保護(hù)數(shù)據(jù)隱私的同時(shí)減少額外的計(jì)算和開(kāi)發(fā)成本.
在合約層提出了面向用戶的細(xì)粒度權(quán)限管理方案,通過(guò)智能合約管理不同用戶對(duì)數(shù)據(jù)的讀寫權(quán)限,提高數(shù)據(jù)隱私安全性.方案針對(duì)每個(gè)合約將用戶分為合約發(fā)起者、數(shù)據(jù)管理者、數(shù)據(jù)查閱者和外部用戶4 類,不同用戶擁有的權(quán)限關(guān)系見(jiàn)表1.將方案應(yīng)用在具體的在線課程管理場(chǎng)景中時(shí),可以將學(xué)校教務(wù)、教師、課程參與學(xué)生、其他學(xué)生分別賦予不同類別的用戶身份,從而在合約層進(jìn)行權(quán)限管理.
表1 用戶分類與不同權(quán)限說(shuō)明Tab.1 User categories and permissions
權(quán)限管理的控制主要在邏輯合約中實(shí)現(xiàn),用戶權(quán)限表存儲(chǔ)在一個(gè)專屬數(shù)據(jù)合約中.實(shí)現(xiàn)權(quán)限管理方案如圖6 所示 (圖6 省去了本地緩存的代理合約,主要用于說(shuō)明權(quán)限管理流程),用戶發(fā)起請(qǐng)求時(shí),DAPP 將用戶身份證明傳給調(diào)用的邏輯合約,邏輯合約訪問(wèn)用戶管理身份合約獲取該用戶身份的權(quán)限證明,在邏輯合約中進(jìn)行權(quán)限判斷,對(duì)合法的訪問(wèn)請(qǐng)求按正常流程執(zhí)行.
圖6 權(quán)限管理流程示意圖Fig.6 Permission management process
教育數(shù)據(jù)包含眾多如教育評(píng)價(jià)體系、學(xué)生群體發(fā)展軌跡和課程數(shù)據(jù)分析等統(tǒng)計(jì)分析類數(shù)據(jù),這一類數(shù)據(jù)往往用于體現(xiàn)群體特征,因此其統(tǒng)計(jì)結(jié)果通常面向全體用戶公開(kāi).用戶可以通過(guò)這些統(tǒng)計(jì)結(jié)果和一些輔助信息推測(cè)并獲取他人隱私,例如,學(xué)生A 得知某時(shí)間區(qū)間內(nèi)只有學(xué)生B 參與了課程及格率的統(tǒng)計(jì),而該時(shí)間區(qū)間前后課程及格率下降了,那么學(xué)生A 可以得知學(xué)生B 課程未及格這一隱私,我們稱這一類隱私問(wèn)題為差分隱私 (Differential Privacy,DP)[5].顯然,這一類數(shù)據(jù)隱私問(wèn)題無(wú)法依靠權(quán)限管理解決,已有的相關(guān)研究主要采用在統(tǒng)計(jì)結(jié)果中添加噪聲的DP 方法和在個(gè)人數(shù)據(jù)中添加噪聲后收集的LDP 方法對(duì)該類數(shù)據(jù)進(jìn)行隱私保護(hù).LDP 方法與DP 方法相比,能夠防止數(shù)據(jù)收集中心惡意披露數(shù)據(jù).因此,本節(jié)針對(duì)此問(wèn)題在合約層設(shè)計(jì)了基于LDP 的鏈上數(shù)據(jù)隱私保護(hù)方案,提供對(duì)用戶群體數(shù)據(jù)的分析統(tǒng)計(jì)查詢和差分隱私保護(hù).
具體流程如圖7 所示,個(gè)體用戶將數(shù)據(jù)傳至本地DAPP,由DAPP 添加噪聲得到干擾后數(shù)據(jù),再由DAPP 調(diào)用提交至合約層,這里數(shù)據(jù)干擾采用隨機(jī)響應(yīng) (Random Response,RR) 方法,設(shè)置全局統(tǒng)一的概率P.以布爾類型為例,收集數(shù)據(jù)時(shí),以P的概率回答真實(shí)數(shù)據(jù),否則回答任意0/1 值.在合約層,由相應(yīng)邏輯合約負(fù)責(zé)權(quán)限訪問(wèn)控制、數(shù)據(jù)收集和非法數(shù)據(jù)過(guò)濾,防止惡意用戶為了影響統(tǒng)計(jì)結(jié)果提供超出閾值的非法數(shù)據(jù).再將收集的數(shù)據(jù)存入相應(yīng)數(shù)據(jù)合約,并在邏輯合約實(shí)現(xiàn)干擾數(shù)據(jù)的統(tǒng)計(jì)計(jì)算與統(tǒng)計(jì)結(jié)果校準(zhǔn),使得干擾數(shù)據(jù)統(tǒng)計(jì)結(jié)果與真實(shí)數(shù)據(jù)統(tǒng)計(jì)結(jié)果的誤差值在可接受范圍內(nèi),并將統(tǒng)計(jì)結(jié)果更新保存在數(shù)據(jù)合約中.
圖7 基于LDP 的隱私保護(hù)方案流程Fig.7 LDP-based privacy protection scheme
基于LDP 的鏈上隱私保護(hù)方案使得公開(kāi)的統(tǒng)計(jì)結(jié)果由準(zhǔn)確值變?yōu)橐粋€(gè)誤差可接受的近似值,因此,用戶由該近似值推測(cè)他人隱私也只能獲取干擾信息,有效避免了統(tǒng)計(jì)類教育數(shù)據(jù)存在的隱私安全風(fēng)險(xiǎn).并且,結(jié)合區(qū)塊鏈教育平臺(tái)去中心化的特點(diǎn),采用LDP 方法取代中心化數(shù)據(jù)收集者的DP 方法,降低了數(shù)據(jù)泄露風(fēng)險(xiǎn).
基于開(kāi)源區(qū)塊鏈內(nèi)核CITA 和數(shù)據(jù)管理中間件SQL-CITA,結(jié)合“區(qū)塊鏈教育平臺(tái)”上的具體應(yīng)用場(chǎng)景,本文實(shí)現(xiàn)了完全解耦合的智能合約架構(gòu)及其優(yōu)化以及基于權(quán)限管理和LDP 的隱私保護(hù)方案,以驗(yàn)證所提出方法的有效性.實(shí)驗(yàn)在配備Intel(R) 2.90 GHz 的CPU、64 G 的RAM 和1 TB 的硬盤上進(jìn)行,運(yùn)行在Ubuntu16.04 上,基于SQL-CITA 開(kāi)發(fā)了一個(gè)測(cè)試客戶端,用戶通過(guò)POST 請(qǐng)求訪問(wèn)SQL-CITA,SQL-CITA 處理用戶請(qǐng)求并與CITA 交互.
以知識(shí)產(chǎn)權(quán)存證和學(xué)生信息統(tǒng)計(jì)查詢兩個(gè)場(chǎng)景為例進(jìn)行實(shí)驗(yàn): 實(shí)現(xiàn)對(duì)知識(shí)產(chǎn)權(quán)摘要和歸屬者信息的上鏈存證,實(shí)現(xiàn)對(duì)學(xué)生數(shù)據(jù)上鏈以及全體學(xué)生某課程的及格率統(tǒng)計(jì),實(shí)現(xiàn)一個(gè)模擬的數(shù)據(jù)生成器構(gòu)造知識(shí)產(chǎn)權(quán)數(shù)據(jù)和學(xué)生信息數(shù)據(jù).表2 給出了負(fù)載測(cè)試的5 個(gè)主要樣例,包括知識(shí)產(chǎn)權(quán)與學(xué)生信息數(shù)據(jù)建表、存證、及格率查詢,在SQL-CITA 中進(jìn)行語(yǔ)義分析與交易構(gòu)造,再發(fā)送至CITA 進(jìn)行指定合約調(diào)用.
表2 實(shí)驗(yàn)負(fù)載Tab.2 Workloads
本節(jié)以知識(shí)產(chǎn)權(quán)上鏈存證功能為例,實(shí)現(xiàn)了本文提出的完全解耦合智能合約架構(gòu)和一個(gè)原始合約進(jìn)行實(shí)驗(yàn)對(duì)比,通過(guò)部署時(shí)合約代碼二進(jìn)制大小來(lái)衡量升級(jí)時(shí)的開(kāi)發(fā)成本和存儲(chǔ)開(kāi)銷.如圖8 所示,其中,圖8(a)和圖8(b)分別在添加對(duì)知識(shí)產(chǎn)權(quán)存證的獲取驗(yàn)證功能和添加對(duì)產(chǎn)權(quán)數(shù)據(jù)修改功能兩個(gè)升級(jí)場(chǎng)景下,對(duì)原始合約升級(jí)和完全解耦合架構(gòu)中合約升級(jí)的代碼量進(jìn)行對(duì)比,可見(jiàn)完全解耦合架構(gòu)升級(jí)時(shí)成本顯著低于原始合約,針對(duì)知識(shí)產(chǎn)權(quán)確權(quán)功能不同場(chǎng)景的合約升級(jí)實(shí)驗(yàn)得出,升級(jí)成本平均降低28.2%.
圖8 完全解耦合合約架構(gòu)下的升級(jí)成本Fig.8 Upgradation cost of smart contract scheme
基于該實(shí)例,進(jìn)一步實(shí)現(xiàn)了代理合約數(shù)據(jù)緩存機(jī)制和升級(jí)時(shí)數(shù)據(jù)遷移方法,以此作為優(yōu)化方案進(jìn)行實(shí)驗(yàn)比對(duì)性能.以表2 中測(cè)試語(yǔ)句2 為測(cè)試負(fù)載實(shí)例,請(qǐng)求次數(shù)從單次增長(zhǎng)到50 次,實(shí)驗(yàn)對(duì)比了兩種方案相應(yīng)的處理請(qǐng)求用時(shí).如圖9 所示,優(yōu)化方案對(duì)用戶請(qǐng)求的處理用時(shí)約減少至原方案的一半,延時(shí)顯著降低.
圖9 完全解耦合智能合約架構(gòu)下的請(qǐng)求處理用時(shí)Fig.9 Performance of smart contract scheme
在圍繞學(xué)生信息上鏈存證和統(tǒng)計(jì)分析的應(yīng)用場(chǎng)景中,實(shí)現(xiàn)了本文提出的實(shí)用隱私保護(hù)方案.以表2中測(cè)試語(yǔ)句4 為測(cè)試負(fù)載實(shí)例,調(diào)用參數(shù)PASSRATE對(duì)應(yīng)的及格率計(jì)算合約接口以查詢某一課程的學(xué)生及格率,學(xué)生課程分?jǐn)?shù)為基于均勻分布生成的測(cè)試數(shù)據(jù).在LDP 相關(guān)參數(shù)的設(shè)置中,隱私預(yù)算ε設(shè)為0.5 (ε為0 到1 區(qū)間中的任一浮點(diǎn)值,作為一個(gè)計(jì)算參數(shù),用于平衡分析結(jié)果數(shù)據(jù)的真實(shí)性和安全性,并不影響計(jì)算性能,因此此處取0.5 作為平衡值),隨機(jī)響應(yīng)概率P根據(jù)隱私預(yù)算計(jì)算設(shè)為0.622.實(shí)驗(yàn)對(duì)比了真實(shí)數(shù)據(jù)收集和統(tǒng)計(jì)與基于LDP 方法的數(shù)據(jù)處理用時(shí),如圖10 所示,隨著數(shù)據(jù)總量由100 條 (課程學(xué)生人數(shù)) 增加至10 000 條,數(shù)據(jù)處理的時(shí)間略有上升,其中差分方法和真實(shí)數(shù)據(jù)統(tǒng)計(jì)處理時(shí)間基本一致,可見(jiàn)該隱私保護(hù)方法對(duì)性能影響十分微弱.
圖10 LDP 隱私保護(hù)改進(jìn)前后性能對(duì)比Fig.10 Performance of pass-rate statistics with LDP
面對(duì)數(shù)字教育發(fā)展中的資源分配公平、數(shù)據(jù)可信和安全問(wèn)題,我國(guó)當(dāng)下的主要應(yīng)對(duì)方案為由政府教育部門中心化管控保障[6],為了使學(xué)校、企業(yè)和研究機(jī)構(gòu)等能夠參與教育數(shù)據(jù)的構(gòu)建和價(jià)值利用,教育部門現(xiàn)維護(hù)一套復(fù)雜的授權(quán)協(xié)議和監(jiān)管流程,存在工作量大、人力成本高等問(wèn)題.區(qū)塊鏈作為一種去中心化、不可篡改、可追溯、多方共同維護(hù)的分布式數(shù)據(jù)庫(kù),解決了現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中多方不可信交互場(chǎng)景下的數(shù)據(jù)可信問(wèn)題[7],為中心化結(jié)構(gòu)走向去中心化提供了技術(shù)支持.近年有大量面向教育的區(qū)塊鏈研究工作,解決數(shù)字教育證書(shū)可驗(yàn)證和安全可追溯的教育記錄存儲(chǔ)問(wèn)題[8],但是都只解決了應(yīng)用功能問(wèn)題,沒(méi)有考慮區(qū)塊鏈應(yīng)用的更新性能局限性,對(duì)教育數(shù)據(jù)隱私的研究主要考慮身份隱私的保護(hù),還不夠全面.針對(duì)通用區(qū)塊鏈應(yīng)用的智能合約升級(jí)和鏈上數(shù)據(jù)隱私保護(hù)有以下相關(guān)工作.
在智能合約升級(jí)相關(guān)研究中,Huang 等[9]統(tǒng)計(jì)發(fā)現(xiàn),智能合約的代碼重復(fù)率很高,并提出了基于分析合約的差異化代碼進(jìn)行合約更新與升級(jí)的方法.劉云霞等[4]提出了基于數(shù)據(jù)與邏輯分離的松耦合智能合約模型,從一定程度上解決了合約升級(jí)開(kāi)發(fā)成本高、合約代碼冗余存儲(chǔ)的問(wèn)題.Shao 等[10]提出了一個(gè)基于日志文件的自適應(yīng)智能合約更新框架.
在區(qū)塊鏈隱私保護(hù)相關(guān)研究中,一類研究側(cè)重于保護(hù)區(qū)塊鏈數(shù)據(jù)在網(wǎng)絡(luò)傳輸中的安全性,Hyperledger[11]通過(guò)第三方機(jī)構(gòu)頒發(fā)的CA 限制進(jìn)入網(wǎng)絡(luò)的節(jié)點(diǎn)來(lái)保證網(wǎng)絡(luò)環(huán)境的安全.另一類研究側(cè)重于加密和干擾數(shù)據(jù),保證即使數(shù)據(jù)公開(kāi),非數(shù)據(jù)所有者也不能獲取其真實(shí)價(jià)值,其中,混幣、環(huán)簽名、同態(tài)加密、零知識(shí)證明和保序加密等多種方法被用于區(qū)塊鏈上的數(shù)據(jù)加密.例如,Mixcoin[12]、Blindcoin[13]等是基于混幣機(jī)制的交易隱私保護(hù)方案,門羅幣[14]是基于環(huán)簽名的加密數(shù)據(jù)保護(hù)方案,Zcash[15]是基于零知識(shí)證明的加密數(shù)據(jù)保護(hù)方案,BlockOPE[16]是基于保序加密的加密數(shù)據(jù)保護(hù)方案.在差分隱私相關(guān)研究中,已經(jīng)有成熟的基于差分隱私的加密分析型數(shù)據(jù)庫(kù)PrivateSQL[17]和FLEX[18].
本文分析了當(dāng)下教育數(shù)字化轉(zhuǎn)型面臨的問(wèn)題,將教育與區(qū)塊鏈結(jié)合,解決了教育發(fā)展的公平和數(shù)據(jù)可信問(wèn)題.針對(duì)面向數(shù)字教育的區(qū)塊鏈應(yīng)用場(chǎng)景,發(fā)現(xiàn)并分析了區(qū)塊鏈教育應(yīng)用中的合約升級(jí)瓶頸和數(shù)據(jù)隱私安全兩個(gè)關(guān)鍵問(wèn)題,進(jìn)一步提出了有效的解決方案.從智能合約架構(gòu)和鏈上數(shù)據(jù)加密兩方面對(duì)區(qū)塊鏈應(yīng)用進(jìn)行優(yōu)化,在保留區(qū)塊鏈去中心化的核心應(yīng)用價(jià)值時(shí),從區(qū)塊鏈應(yīng)用的功能、性能和成本等多方面提升其實(shí)用性,并且在實(shí)際場(chǎng)景中完成了應(yīng)用落地.
但仍然存在需要進(jìn)一步探討的問(wèn)題: 2.2 節(jié)中提出的數(shù)據(jù)遷移方法提高了更新效率、減少了數(shù)據(jù)遷移的復(fù)制量,但帶來(lái)了對(duì)版本管理的局限性;在隱私保護(hù)問(wèn)題的研究中,訪問(wèn)權(quán)限控制方案仍然存在惡意節(jié)點(diǎn)獲取數(shù)據(jù)的可能,LDP 不能保護(hù)非分析型個(gè)人數(shù)據(jù)隱私,因此,鏈上數(shù)據(jù)隱私問(wèn)題仍需進(jìn)一步探究.能否在保證性能的前提下進(jìn)一步結(jié)合安全性更高的加密方法對(duì)鏈上數(shù)據(jù)進(jìn)行保護(hù),是我們未來(lái)的研究方向.