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