2. 教育部学位与研究生教育发展中心, 北京 100083;
3. 华东师范大学 软件工程学院, 上海 200241
2. China Academic Degrees & Graduate Education Development Center, Beijing 100083, China;
3. Software Engineering Institute, East China Normal University, Shanghai 200241, China
开放科学(资源服务)标志码(OSID):
学位证书是教育部门对学位获得者专业能力与受教育水平达到规定要求而颁发授予的一种凭证。近年来,由于传统纸质证书具有共享性低、传递性差等缺点,电子证照已经成为一种趋势。尽管使用电子学位证照可以有效提高学位证书的便捷性,但仍无法从根本上解决学位的造假问题。而集中式的证照管理系统存在信息泄露问题,中心化系统的所有功能权限均集中在一点,在遭受恶意入侵后,存储信息即可被随意读取、篡改或删除。例如在2016年8月19日发生的“徐玉玉电信诈骗案”中,犯罪嫌疑人通过技术手段恶意入侵了“山东省2016高考网上报名信息系统”,导致大量考生的学位信息泄露。因此,学位信息管理方迫切需要一种新技术,在服务端为用户提供个人学位信息保护并解决学位造假问题。
引入安全可信且不可篡改的区块链技术是解决上述问题的最有效方案之一。此外,我国多角色、多节点、多功能的学位授予流程与区块链的分布式结构相吻合,因此在学位授予中引入区块链技术拥有更高的契合度和更大的发展潜力[1]。
区块链技术在2008年由[2]提出,是一种多方共同维护,使用加密技术保证信息传输和访问安全的分布链式结构数据库。所有事务数据被压缩并存储到不同的区块中,且可以在不需要第三方验证者的情况下进行验证。所有节点的运行遵循共识算法规则,并利用相关密码学技术保证存储数据的不可篡改,具有去中心化、高安全性、高可信度等特点[3]。
本文基于区块链技术的可信环境,利用智能合约与加密算法,设计电子学位证照的数据保护及共享方法。该方法基于权威证明(Proof of Authority,POA)共识算法搭建多角色联盟链,提出一种权威身份评估机制,对节点的相应操作进行积分奖励或惩罚以规范各节点行为,并基于节点的可信度分数选举权威用户节点,负责联盟链的事务打包与校验。基于智能合约技术,构建面向电子学位证照管理的分布式合约架构,存储电子学位证照的加密信息,并控制各合约的访问权限,保证数据安全与操作可信。在此基础上,设计基于联盟链的批量数据共享方案,数据共享双方基于多种加密方式保证数据的安全与可追溯,以验证共享数据的真实性,最终基于以太坊建立基于POA共识算法的电子学位证照数据保护及共享系统,以对模型系统进行可行性与性能分析。
1 相关工作2016年10月,工信部颁布的《中国区块链技术和应用发展白皮书》[4]指出:区块链系统的透明化、数据不可篡改等特征,完全适用于学生征信管理、升学就业、学术、资质证明、产学合作等方面,对教育就业的健康发展具有重要的价值。2019年10月24日,中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习,习近平总书记在主持学习时强调,要把区块链作为核心技术自主创新的重要突破口,加快推动区块链技术和产业创新发展。将区块链技术应用于教育领域,应用于学位信息的安全保护已经成为一种具有可行性的研究方向,这也是时代发展的势趋。
近年来,国内外的研究人员与相关机构已经运用区块链技术进行学位信息的保护与验证,并得到了一定范围的应用与推广。2015年,麻省理工学院基于比特币区块链平台开发了一个完整的区块链教育认证系统Blockcerts[5-7]。英国开放大学知识媒体学院是欧洲率先使用区块链技术的大学之一,该学院与英国电信合作创建了一个基于Ethereum的区块链平台OpenBlockChain[8],旨在通过智能合约自主管理并记录学生学习过程,构建一个永久保存且持续更新的学生成长档案馆。2018年,HUHAMED等[9]提出一个基于区块链的全球高等教育学分平台EduCTX,使用ECTX token作为课程学分的记录凭证,为学生、教育机构以及其他组织提供一个全球信任的分布式高等教育信用评分系统。2019年,LI等[10]提出一种基于区块链的教育记录存储与共享方案EduRSS,其具有更低的计算成本,可在多个机构中共享档案记录,简化教育档案移交流程,为学生提供一个可靠传输和验证学习档案的区块链系统。2020年,RASOOL等[11]提出一种基于区块链学位证书验证方法docschain,可同时执行多笔数据提交,实现批量审核学位证书的工作流程,并通过光学字符识别对纸质学位证书进行数字图像扫描,允许学生按照传统的物理方式提交学位认证材料。
2 区块链相关技术区块链在比特币网络中作为底层技术,提供高度安全可信的记账手段,也因其在金融领域的这一成功应用,故被称为一种分布式账本技术。在脱离作为金融账本的应用后,仍易于在缺少可信第三方的应用场景下使用。在区块链网络中,不再由单一的中心节点进行数据存储与记录,其网络中存在大量的全节点,每个全节点地位相同并均记录了数据库中的所有数据,由所有全节点共同负责系统运行维护与数据安全[12]。
2.1 非对称加密技术非对称加密算法使用密钥生成协议创建在数学上相互连接的公私钥密钥对,以满足安全性和所有权验证需求。公钥是区块链账户地址的重要依据,作为公开显示的部分,而私钥则仅由账户持有人保存。非对称加密在使用其中一个密钥加密信息后,只能通过另一个对应密钥进行解密,具有安全性高、传输速度快、不易密钥泄露等特点,常用于实现区块链中的信息加密与数字签名。
2.2 数字签名技术数字签名技术主要用于确认数据发送者的身份真实性与数据完整性。数据发送者使用自身私钥对待发送数据的哈希值进行加密,作为唯一的身份标识。数据接收方通过发送者的公钥进行解密,若解密的数据哈希值与真实数据哈希值完全一致,则可证明消息发送者身份,且数据完整未被篡改。
2.3 智能合约智能合约是一段可以按照预先设定好的规则自动执行的代码程序,广泛应用于执行交易条款,可以减少人为错误,避免合同纠纷。智能合约根据写入其中的触发条件作为判断机制,当写入条件被触发时,将自动执行符合该条件的合约动作[13]。此外,部署在区块链中的智能合约被复制到每个节点,避免合约内容被篡改。智能合约属于事务处理模块与状态机构成的系统,事务的执行与状态的改变不会对智能合约的内容进行修改,只通过数字化形式的条款,遵从编写者的意志正确而自主地执行。
3 方法架构 3.1 整体架构本文针对电子学位证照(Electronic Degree Certificate,EDC)的认证与查询过程,拟建立一个包含高校用户(College User,CU)、教育管理用户(Education Administration User,EAU)、学生用户(Student User,SU)以及外部用户(External User,EU)的多角色信息联盟。以此为基础,搭建一个基于POA共识算法[14]的联盟链,并设计一种权威身份评估机制用于选举权威用户节点[15]。在POA共识算法中,权威用户节点主要负责产出区块并控制出块效率,共同维护区块数据的存储。其中教育管理用户由于功能的特殊性,在系统初始化时,即作为POA预先设置的权威用户节点存在,并结合权威性与节点稳定性等因素进行考虑,学生用户与外部用户不参与权威用户节点选举。因此,权威身份评估机制主要面向高校用户作为权威用户节点的资格审查,并提供一种动态的权威分数(Authority Score,AS)排名规则作为评判节点权威性的标准。
高校用户执行对电子学位证照的授予或撤销操作时,由权威用户群组共同审核高校用户的操作行为是否规范合格。当包含该操作的事务被公开上链时,证明高校用户执行了合格操作行为,权威身份评估机制为该高校用户增加一定的权威分数以提高高校用户的身份权威性权重。当某高校用户的权威分数达到设定的阈值时,该节点即可候选成为权威用户,参与联盟链的维护与运行。而进行不合格操作行为的高校用户,具有破坏网络稳定性与发布虚假信息的潜在威胁,减去相应的权威分数,此时权威用户群组依然将相关信息上链存储,但不公开显示,用于追溯追责执行操作的相关节点。最终根据各节点的权威分数进行分类,以评估当前节点的状态信息(积极、中立或恶意)。
此外,基于联盟链建立了一个多角色用户体制,各身份用户对应不同的操作权限与职能职责,如图 1所示。高校用户负责学位信息的存储与保护,可授予和撤销电子学位证照,定期更新节点数据信息并指定分享给教育管理用户。教育管理用户负责对高校节点完成授予的电子学位证照进行审核,合格的证照相关信息通过后端与联盟链交互,对证照进行上链存储。学生用户基于去中心化应用(Decentralized Application,DApp)接入联盟链系统,可下载电子学位证照,对证照进行验证与查询,并查询与证照相关的上链事务信息。外部用户在获得学生用户的授权后,可使用电子学位证照的Hash值或电子学位证照原件,前往DApp应用进行真伪验证。
![]() |
Download:
|
图 1 系统整体架构 Fig. 1 Overall system architecture |
本文智能合约架构如图 2所示,该架构主要由用户身份管理合约(User Identity Management Contract,UIMC)和电子学位保护合约(Electronic Degree Protection Contract,EDPC)两大合约共同构成。其中UIMC合约主要用于合格电子学位证照上链过程中,对消息发送者身份的审核与验证,包括权威账户存储合约(Authoritative Account Storage Contract,AASC)和账户身份验证合约(Account Authentication Contract,AAC)。EDPC则用于对电子学位证照及相关信息的存储,包括电子学位拟授予合约(Electronic Degree Confer Contract,EDCC)、电子学位审核合约(Electronic Degree Audit Contract,EDAC)、电子学位验证合约(Electronic Degree Verification Contract,EDVC)和电子学位撤销合约(Electronic Degree Revoke Contract,EDRC)。
![]() |
Download:
|
图 2 智能合约架构 Fig. 2 Smart contract architecture |
在初始权威用户节点设置完成后,系统为每个节点分配唯一的账户地址作为标识符。管理员部署AASC,将权威用户的账户地址存储在该合约中,并将账户地址与多个属性相链接,以表明具有该账户地址的节点拥有这些属性,如节点所属的教育机构(Organization,Org)、当前的权威分数(AS)以及节点的状态信息。当权威用户群组新增或剔除节点时,AASC将实时更新存储的账户地址。AAC存储所有高校与教育管理用户的账户地址,以验证调用电子学位保护合约的请求者具有相应操作权限且身份真实可信,该合约通过与其他智能合约交互来实现访问控制。
EDCC仅可由高校用户执行,通过调用AAC验证请求者身份后,存储电子学位证照的Hash值、相应高校用户数字签名(Sig_Certifier)以及证照持有人的姓名(Name)、学位编号(DipNo)、身份证号(IDNumber)等相关信息。EDAC仅可由教育管理用户调用,用于对EDCC完成授予的电子学位证照及相关信息进行审核,审核通过后,对高校用户发送的相关信息进行二次数字签名,并将完成审核的电子学位证照相关信息存储在EDPC中。EDVC为学生用户与外部用户提供验证ABI,验证者提供电子学位证照Hash值或证照原件,对比存储在EDPC中的合格证照,并返回相关证照的真伪、相关信息及上链事务信息。EDRC向高校用户和教育管理用户开放使用,对合格电子学位证照执行撤销追回操作,并为已写入EDPC中的合格证照添加撤销标识符(Tag)。
4 本文方法设计 4.1 系统初始化为了实现对电子学位证照的数据保护与共享,本文方法基于POA共识算法,建立一个联盟链网络。所有节点都使用相同的创世区块(Genesis Block)和包含权威用户地址的JSON文件加入网络,联盟链网络的具体实现步骤如下:
1)System←Initialize(P,L,A)。任何区块链网络的初始化都涉及创世区块的创建,需要为其提供重要的初始化配置参数。其中:P表示POA共识算法中创建新区块的区块周期;L表示一个区块中允许事务消耗的最大燃料限制;A表示在创世区块中预先设置的权威用户账户地址。
2)(Pk,Sk)←Register(user)。user使用web3.js命令生成私钥Sk,并通过椭圆曲线加密(Elliptic Curve Cryptography,ECC)[16]算法随机映射出唯一对应的公钥Pk。
3)UIMC/EDPC←Transact(balance,Cre-Addr,Con-Addr)。系统管理员在这一阶段提出一个部署智能合约的事务上链请求,将合约余额(balance)、合约创建者地址(Cre-Addr)与拟建合约地址(Con-Addr)作为输入,并返回事务上链状态(status),完成UIMC和EDPC的链上部署。
4.2 权威用户生成及工作流程 4.2.1 权威用户选举除初始化预设的权威用户外,新节点成为权威用户需要遵循基于权威身份评估机制的节点选举规则。根据系统中各节点的权威分数排位顺序,邀请高权威身份的节点成为新的权威用户,参与事务的处理与区块的打包。为了保证系统的可信性与安全性,权威用户群组的总权威分数应超过整个系统总权威分数的50%,且权威用户的加入或剔除都应获得超过50%的权威用户允许。此外,权威用户的身份应是动态持有的,以实时评估当前节点的可信度。如果权威用户宕机或执行可疑操作,都会导致权威分数下降,当某个非权威节点的权威分数超过权威用户节点时,系统将在下一次刷新时间内调整双方的权威身份标识。
如算法1所示,当某个用户的权威分数达到系统设定的用户阈值Thr-U时,表明该用户的权威权重已达到权威用户标准,按照权威分数顺序写入等待列表waiting-list中。循环持续检查当前权威用户总分数TSAU是否达到系统阈值Thr-S,即整个系统权威分数的50%,以及是否存在非权威用户分数高于权威用户AU的情况,以判定系统是否仍需接收新权威用户。当循环为真时,选举waiting-list列表中权威分数最高的用户为权威用户候选人Candidate。若超过半数的权威用户同意这一选举提案时,Candidate成为新的权威用户New-AU,将其账户地址存入合法权威地址库(Legal Authority Address,LAA),并将New-AU相应的权威分数加入权威用户总分数TSAU中。之后,指针会指向waiting-list中下一个等待成为Candidate的用户,直到权威用户总权威分数符合要求。
算法1 加入或剔除权威用户
输入 TSAU←Total Score of Authority Users
Thr-U←Threshold of User’s AS
Thr-S←Threshold of System-required
输出 update LAA←Legal Account Address
if user.score > =Thr-U then
waiting-list←user
end if
while(TSAU < Thr-S)||(∃AU.score < user.score)do
Candidate←max{score(waiting-list)}
if LAA(agree) > 50% then
New-AU←Candidate
Add New-AU to LAA
Add New-AU.score to TSAU
end if
pointer to waiting-list(next.user)
end while
Last-AU←Min{score(AU)}
while(TSAU minus Last-AU.score) > =Thr-S do
if LAA(agree) > 50% then
Remove Last-AU from LAA
Remove(Last-AU.score)from TSAU
end if
update Last-AU
end while
同时系统会根据当前权威用户分数进行排序,得到权威分数最低的权威用户Last-AU。若权威用户的总权威分数TSAU在不包含Last-AU分数的情况下依然高于系统阈值Thr-S,则证明Last-AU为不必要的权威用户。系统提案剔除Last-AU的权威身份,若提案通过,则删除其在LAA中的记录,并在TSAU中减去Last-AU的权威分数。
4.2.2 权威用户群组工作流程为避免权威用户群组中存在拜占庭节点恶意添加大量无效区块破坏网络,每个权威用户只允许在每N/2+1个块中创建其中的1个区块,且在同一时刻最多允许N-(N/2+1)个权威用户创建新的区块。基于GHOST协议[17],同一时刻有权限创建新区块的权威用户共同构成一个决策小组,并选举一个用户作为领导节点,具有创建区块的优先性。
图 3所示为基于POA共识算法的权威用户基本工作流程。当LAA中存在8个权威用户时,同时最多允许3个权威用户创建新区块。在第一阶段中,LAA-1作为决策小组的领导节点创建了区块1,并在下一阶段中不再被允许创建新区块,而LAA-4则加入了决策小组,并在组内重新选举了LAA-2作为新的领导节点。在新的决策小组中,LAA-2和LAA-3各自创建并广播了新的区块2,而LAA-3和LAA-4先接收到LAA-3发送的新区块,其他权威用户则相反,因此区块链中出现分叉现象。由于LAA-2作为领导节点,具有更高的决策地位,LAA-3和LAA-4将舍弃LAA-3所发送的新区块,并接收LAA-2发送的新区块,从而保证区块链网络的一致性。
![]() |
Download:
|
图 3 基于POA共识算法的工作流程 Fig. 3 Working procedure based on POA consensus algorithm |
在对电子学位证照的保护中,存在两个对立性的目标需要实现:一方面,电子学位证照中存储着学生的隐私信息,本文方法不希望验证者在系统中随意获取电子学位证照文件原件,造成隐私泄露;另一方面,对颁发的合格证照文件能够实现真伪验证。因此,由高校用户收集符合学位授予条件的学生信息,将合格学生信息按照统一规定格式生成电子学位证照文件。对电子学位证照文件实行加密操作,仅将加密信息与学生部分信息上链。验证者通过对加密信息的验证,既保证了电子学位证照本身的真实可信性,又确保恶意验证者无法通过加密信息得到任何学生的有效信息。此外,在电子学位证照上链存储后,当学生出现学术不端等行为时,高校用户拥有对已授予的证照进行撤销追回的权限。
如算法2所示,CU根据学生信息生成统一标准规格的电子学位证照(EDC)文件,并向EDCC发送拟授予操作请求。CU对EDC执行SHA3-256哈希算法加密,输出一个固定长度的哈希散列值H(EDC)。这一输出散列值具有不可逆向推导,对EDC原件的任意字节篡改都会引起雪崩效应,导致最终生成的H(EDC)完全不同。为申明信息发送者的身份可信性,CU使用自身私钥Sk对H(EDC)进行数字签名,并提取EDC中的部分信息作为关键词索引KI。将关键词KI、加密信息H(EDC)和签名后信息SigCU(H(EDC))发送至AAC合约。
算法2 CU拟授予和撤销
输入 EDC←standard files that are created by CU
输出 EDC update status
CU submits a request to EDCC;
H(EDC)←hash(EDC);
SigCU(H(EDC))←signature(H(EDC))CU.Sk;
KI←abstract(EDC);
send(KI,H(EDC),SigCU(H(EDC)))to AAC;
if Verify(ecrecover(SigCUH(EDC)))==1 then
if Verify(hash(file),H(EDC)==1)then
EDCCstorage(KI,H(EDC),SigCU(H(EDC)));
end if
if set EDCC.revoke(bool)==1 then
Modify EDCC(H(EDC))to 0x0;
Mark EDC has been revoked;
end if
end if
在AAC中,基于ecrecover()函数解密数字签名,验证签名地址真实可信。在身份确认通过后,还需要CU提供原始文件file重新执行哈希加密,并与H(EDC)进行对比,保证EDC及H(EDC)未被篡改。验证通过后,将KI、H(EDC)和SigCU(H(EDC))一起存储到EDCC中,完成高校用户拟授予操作。此外,EDCC中设置了学位撤销函数revoke(),当撤销条件触发时,EDCC将指定的EDC相关信息初始化,并标记为“revoked”。
4.4 电子学位证照数据共享与审核在节点间进行数据共享与教育管理用户的审核过程是本文方法的核心功能之一,如图 4所示,高校用户在完成授予过程后,将相应的电子学位证照及相关信息共享至教育管理用户,并由教育管理用户完成对电子学位证照的审核与上链存储。该过程可以保证数据共享发起方与接收方的身份可信,数据传输过程的信息安全,以及用于审核的电子学位证照原件未被作任何修改。
![]() |
Download:
|
图 4 电子学位证照共享与审核流程 Fig. 4 Procedure of electronic degree certificate sharing and verification |
电子学位证照共享与审核流程具体步骤如下:
1)CU完成对EDC的授予流程,需要将该EDC共享至EAU进行审核。为保证数据传输安全,将EDC文件切割为n个子块,对n个块分别执行哈希加密,设块集合N={H(EDC1),H(EDC2),…,H(EDCn)},其中各子块的字符数集合为Ω={l1,l2,…,ln}。CU对N基于Merkle Tree方式加密[18],得到Merkle根散列值MR(N)。
2)CU基于高级加密标准(Advanced Encryption Standard,AES)算法对EDC进行对称加密并存储在本地数据库,返回存储地址addr及加密密钥mk。
3)CU使用自身私钥Sk对MR(N)进行数字签名μ,并向EDAC发起交互请求。EDAC合约调用AAC,验证μ签名者身份存在后,由CU节点发送{KI,addr,mk,μ,MR(N),Ω}到EDAC的待分享列表sharelist中,其中KI作为该分享请求的索引关键词组。
4)EAU监听CU发送的KI-X,并向AAC验证自身身份后,基于属性KI-X检索sharelist列表中的相应信息,返回该待分享消息列{KI,addr,mk,μ,MR(N),Ω}。
5)EAU使用接收到的{addr,mk}检索本地数据库,并获取到CU分享的EDC文件原件。
6)EAU基于Ω对EDC重新切割并进行Merkle Tree加密,得到Merkle根散列值MR’(N),并验证MR’(N)与MR(N)是否一致,以证明EDC文件未被篡改。在EAU完成审核后,使用私钥Sk.EAU对μ执行二次签名ε[19],将{KI,H(EDC),μ,ε,addr,mk}存储在EDPC中作为最终合格证照数据存储库,其中H(EDC)为用于快速验证真伪的EDC散列值。
4.5 电子学位证照验证学生用户(SU)在本文方法中可以获取电子学位证照原件,并对证照进行真伪验证。当第三方的外部用户(EU)提出验证学生用户的电子学位证照真伪性时,需向学生用户发起申请。学生用户根据外部用户的可信性,可选择提供电子学位证照原件或仅提供包含EDC哈希值的相关信息,用于外部用户验证。
如算法3所示,SU或EU通过基于javascript的DAPP与区块链系统交互,提出调用EDVC申请,将电子学位证照原件EDC或证照相关信息RM发送到EDVC。当合约接收到EDC原件时,则对其重新执行哈希加密,与存储在EDPC中的已认证EDC进行对比,若存在完全一致的哈希值,则证明验证文件为真,并返回该EDC的相关信息。当合约接收到RM时,验证机制相同,但验证发起者仅可验证证照真伪,而无法获取任何有效返回信息,以防隐私泄露。
算法3 SU/EU verify EDC
输入 EDC/RM←EDC related message
输出 verification result(bool)
SU/EU send(EDC||RM)to DAPPweb;
DAPP call to EDVC;
if search(RM)∈EDPC then
return true;
end if
if Verify(hash(EDC),EDPC(H(EDC)))==1 then
return true;
return EDPC(RM)to SU/EU;
end if
5 本文方法实现本文方法实现了一套基于联盟链的电子学位证照保护与共享系统,包括数据存储系统、联盟链开发、智能合约开发、DAPP开发4个部分:
1)数据存储系统。电子学位证照均需要完成二次写入才可以完成认证审核,写入数据量较大,写入延迟一般较高,对写入能力需求较高。考虑系统偏重对高写入能力的需求,本文系统使用基于Key-Value模型的非结构化数据存储系统LevelDB[20],采用基于硬盘磁盘的LSM-tree数据结构,主要侧重于随机写能力的提升,系统的事务写入量的可达到7~10 Transactions/s。
2)联盟链。使用go-ethereum客户端搭建联盟链[21],各个权威成员通过使用geth命令创建新账户,成为电子学位证照系统中的初始权威用户节点。通过puppeth创建genesis.json配置文件,生成创世区块,将权威用户账户地址加入到联盟链中,Clique proof-of-authority[22]权威证明作为联盟链的共识算法。
3)智能合约。基于Solidity语言编写设计,并通过Remix-Ethereum IDE在线开发环境完成功能开发。使用SmartCheck[23]对智能合约代码的安全性进行评估,检测交易顺序假设、时间戳依赖、可重入性、短地址攻击等潜在安全漏洞,并部署在Ethereum基于POA共识机制的测试网络Rinkeby中进行功能测试。
4)DAPP。Web前端使用HTML5以及Javascript开发,后端服务器通过node.js调用web3命令初始化联盟链,并编译与部署智能合约,提供API接口供前端页面调用部署在联盟链中的智能合约。
如图 5所示,学生用户及外部用户可通过登录电子学位证照验证页面,选择输入需要验证证照的相关信息,或直接将证照文件拖放到指定区域进行验证。系统响应后,返回验证真伪结果,并提供部分学生信息及上链事务信息。而高校用户与教育管理用户则需要进行身份注册,使用账号密码登录管理页面,如图 6所示,在提供数字签名验证用户身份后,方可对电子学位证照进行授予或审核操作。
![]() |
Download:
|
图 5 电子学位证照验证与查询界面 Fig. 5 Interface of electronic degree certificate verification and inquiry |
![]() |
Download:
|
图 6 电子学位证照拟授予界面 Fig. 6 Interface of electronic degree certificate confer |
本文方法基于geth与Node.js搭建联盟链系统,并通过Trebuchet-Box框架运行负载仿真测试。模拟各用户调用智能合约,进行电子学位证照的授予、审核、验证等操作。测试过程在Ganache开发环境下进行,测试账户数默认为10,设定并发虚拟用户阈值为10,最大事务并发数为10,随机进行部署智能合约、事务上链和合约调用等不同操作,分析系统运行60 s过程中事务执行时间,评估系统的稳定性。事务执行时间如下式[24]所示:
$ {T}_{\mathrm{T}\mathrm{E}\mathrm{T}}=\frac{\sum \mathrm{T}\mathrm{x}({t}_{\mathrm{T}\mathrm{x}\mathrm{E}\mathrm{X}\mathrm{E}\mathrm{D}\mathrm{O}\mathrm{N}\mathrm{E}}\;\;\;\;\;\;-{t}_{\mathrm{T}\mathrm{x}\mathrm{E}\mathrm{X}\mathrm{E}\mathrm{S}\mathrm{T}\mathrm{A}\mathrm{R}\mathrm{T}}\;\;\;\;\;\;\;)}{\mathrm{C}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{t}\left(\mathrm{T}\mathrm{x}\mathrm{i}\mathrm{n}\right({t}_{i}, {t}_{j}\left)\right)} $ | (1) |
$ {{T}_{\mathrm{T}\mathrm{E}\mathrm{T}}}_{{}_{\mathrm{A}\mathrm{V}\mathrm{G}}}=\frac{\sum {T}_{\mathrm{T}\mathrm{E}\mathrm{T}}}{N} $ | (2) |
其中:
如图 7(a)所示,在60 s内,系统共完成1 609次事务测试,平均虚拟用户并发数为8.94,平均事务执行时间为332.84 ms,最大事务执行时间为828 ms,最小事务执行时间为153 ms。如图 7(b)所示,在同一时间段,完成相同的1 609次测试事务处理,系统的事务并发数为7.38,平均事务执行时间为263.54 ms,最大事务执行时间为695 ms,最小事务执行时间为98 ms。由于在在测试过程中涉及智能合约的变量赋值、参数返回等操作增加了本机处理时间,占用了压力测试的部分计算资源,使得系统设定每秒请求数略小于设定的并发数阈值。根据用户并发数、事务并发数分别对事务执行时间的测试结果可以看出,事务并发数对系统的影响较小,平均事务执行时间更短。而事务执行时间中存在波动情况,且图 7(a)和图 7(b)中的波动趋势相似,表明网络延迟的不稳定性对系统的事务执行时间产生了较大的影响。
![]() |
Download:
|
图 7 系统性能的仿真测试结果 Fig. 7 Simulation test results of system performance |
此外,区块大小的动态变化影响着并发事务数的波动。在基于Ethereum的环境下,使用gasLimit衡量区块的事务容纳能力,且这一指标可自适应地动态调整,以适应网络变化,其调整机制可描述为:
$ \begin{array}{l}{g}_{\mathrm{g}\mathrm{a}\mathrm{s}\mathrm{L}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{t}}={p}_{\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{e}\mathrm{n}\mathrm{t}}.{g}_{\mathrm{g}\mathrm{a}\mathrm{s}\mathrm{L}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{t}}+1+\\ \frac{\frac{3}{2}{p}_{\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{e}\mathrm{n}\mathrm{t}}\;\;.\;\;{g}_{\mathrm{g}\mathrm{a}\mathrm{s}\mathrm{U}\mathrm{s}\mathrm{e}\mathrm{d}}\;\;-\;\;{p}_{\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{e}\mathrm{n}\mathrm{t}}\;\;.\;\;{g}_{\mathrm{g}\mathrm{a}\mathrm{s}\mathrm{L}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{t}}}{{B}_{\mathrm{B}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{d}\mathrm{D}\mathrm{i}\mathrm{v}\mathrm{i}\mathrm{s}\mathrm{o}\mathrm{r}}}\end{array} $ | (3) |
其中:
综上仿真结果分析可以看出,系统整体的事务执行时间较为稳定,在进行电子学位证照授予与审核的调用请求时,产生的事务执行时间相对较长,而系统的硬件配置与网络延迟也是影响事务执行时间的重要影响因素。
6.2 共识算法对比当前基于go-ethereum搭建的联盟区块链主要以POW和POA作为主流共识算法。本文提出的学位数据保护与共享方法面向对象主要为高校与教育管理部门,具有特定群体针对性,且其身份均真实可信,权威性高。以上特性与基于POA共识算法的联盟链适用情况高度契合,且无需依靠算力奖励机制维持系统运行,大幅降低方法成本,并减小能耗。
为了测试在不同共识算法下调用系统各部分智能合约的响应速度,分别基于POA与POW共识算法搭建联盟链并使用Aleth测试工具进行评估测试,对实验数据进行记录比对,具体划分以下5个部分进行响应测试:
A:部署智能合约。
B:EDC拟授予。
C:EDC撤销。
D:EDC二次审核。
E:EDC验证查询。
如图 8所示,在A~D部分中,由于POA共识算法的特性决定了其事务验证者被事先指定且数量有限,而POW共识算法则由于节点数量的不断增加,导致事务信息广播到全部验证者节点需要等待更久的时间,因此基于POA共识算法的联盟链延迟时间远小于POW共识算法。此外,POA通过选举权威用户节点处理上链事务的共识特点,也使得其在事务的处理速度上优于采用运算能力规则的POW算法。在E部分验证查询操作中,POA联盟链延迟时间略小于POW联盟链,性能差距不大,延迟时间均在200 ms内,远小于前4个部分延迟时间。这是由于智能合约中验证查询函数设置为view函数,当请求验证时,调用该函数仅对存储在联盟链中的数据进行读取与对比,未改变存储在联盟链中的数据,无需创建上链事务与事务广播。
![]() |
Download:
|
图 8 POA和POW共识算法对智能合约调用延迟的影响 Fig. 8 Impact of POA and POW consensus algorithm on smart contract invocation latency |
在基于Ethereum的区块链中可以通过execution gas交易费用来衡量执行一笔事务所需的操作量。而在基于POA共识的联盟链环境中,gas不具备实际流通价值,但部署智能合约及相应ABI所需的gas费用可以反映其复杂度与工作量大小。
除去打包交易与部署合约所需的gas费用外,智能合约的gas消耗成本主要来源于编码成本
$ {g}_{\mathrm{g}\mathrm{a}\mathrm{s}}={C}_{\mathrm{C}\mathrm{o}\mathrm{d}\mathrm{e}\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}+{S}_{\mathrm{S}\mathrm{t}\mathrm{o}\mathrm{r}\mathrm{a}\mathrm{g}\mathrm{e}\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}}+{I}_{\mathrm{I}\mathrm{n}\mathrm{i}\mathrm{t}\mathrm{c}\mathrm{o}\mathrm{s}\mathrm{t}} $ | (4) |
基于此,对本文方法中的电子学位证照拟授予、撤销与数据共享过程进行gas成本评估,相关参数及其意义如表 1所示。
![]() |
下载CSV 表 1 相关参数及其含义 Table 1 Relevant parameters and their meanings |
1)EDC的拟授予
由于对EDC的拟授予过程涉及在智能合约中实现授予功能与存储数据,因此gas成本取决于编码成本与存储成本,其gas消耗上限为:
$ {g}_{\mathrm{g}\mathrm{a}{\mathrm{s}}_{\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{f}\mathrm{e}\mathrm{r}}}=\omega \times {E}_{a}\times {E}_{c}+\mathrm{C}\mathrm{o}\mathrm{d}\mathrm{e}\left({E}_{a}\right) $ | (5) |
其中:
2)更新与撤销EDC的相关信息
CU对已授予的EDC更新某一属性时,不涉及属性数量的改变,但存储成本由更新属性的字符数决定;而撤销某一EDC不涉及存储内容的改变,该操作仅消耗编码成本。因此,更新EDC信息与撤销EDC消耗gas可分别表示为:
$ {g}_{\mathrm{g}\mathrm{a}{\mathrm{s}}_{\mathrm{u}\mathrm{p}\mathrm{d}\mathrm{a}\mathrm{t}\mathrm{e}}}=\omega \times {E}_{c}+\mathrm{C}\mathrm{o}\mathrm{d}\mathrm{e}\left(1\right) $ | (6) |
$ {g}_{\mathrm{g}\mathrm{a}{\mathrm{s}}_{\mathrm{r}\mathrm{e}\mathrm{v}\mathrm{o}\mathrm{k}\mathrm{e}\mathrm{d}}}=\mathrm{C}\mathrm{o}\mathrm{d}\mathrm{e}\left({E}_{a}\right) $ | (7) |
其中:
3)EDC相关信息的共享
当CU面向EAU进行数据共享时,首先需要在sharelist列表中检索拟共享消息是否已存在,检索完成后将新的数据共享消息添加到sharelist列表中等待EAU发送共享请求。因此,此过程gas成本由检索过程与添加共享消息过程组成。
检索过程成本如下:
$ {g}_{\mathrm{g}\mathrm{a}{\mathrm{s}}_{\mathrm{s}\mathrm{e}\mathrm{a}\mathrm{r}\mathrm{c}\mathrm{h}}}\left(\gamma \right)=\left[\mathrm{C}\mathrm{o}\mathrm{d}\mathrm{e}\right({S}_{a})+\gamma \times \delta \times \mathrm{K}{\mathrm{I}}_{a}+\omega \times {S}_{a}\times {S}_{c}] $ | (8) |
其中:
添加共享消息过程成本如下:
$ {g}_{\mathrm{g}\mathrm{a}{\mathrm{s}}_{\mathrm{a}\mathrm{d}\mathrm{d}}}=\mathrm{C}\mathrm{o}\mathrm{d}\mathrm{e}\left({S}_{a}\right)+\omega \times {S}_{a}\times {S}_{c}+\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{t}\times {1}_{\mathrm{f}\mathrm{i}\mathrm{r}\mathrm{s}\mathrm{t}} $ | (9) |
其中:Code(Sa)表示编码成本;
当CU同时向EAU进行批量数据共享时,需要检索并添加n个共享消息到sharelist中,其gas成本可表示如下:
$ {g_{{\rm{ga}}{{\rm{s}}_{{\rm{share}}}}}} = \sum\limits_{k = 1}^n {{g_{{\rm{ga}}{{\rm{s}}_{{\rm{search}}}}}}} (\gamma + {p_{k - 1}}) + n \times {g_{{\rm{ga}}{{\rm{s}}_{{\rm{add}}}}}} $ | (10) |
其中:
现有用于证明可信度的积分机制通常将其他节点对目标节点的反馈分数求和来评估该节点的可信度。但这一方式具有一定缺陷:一个执行多次可信事务但周期性执行一次恶意事务的节点信誉会高于执行事务次数较少但完全可信的节点,大量的诚实行为可以使得节点隐藏其较少的恶意行为;此外,其他节点的反馈分数无法完全可信,可信节点可能因为恶意节点的负反馈分数导致其被判定为低可信度节点。
因此,本文提出一种有效的权威身份评估机制,防止具有隐藏性恶意行为的出现,并保证反馈分数的可信性,权威分数评判的主要因素有以下2点:
1)拟授予EDC事务请求的可信度。在CU对EDC的拟授予相关事务上链过程中,事务发送至权威用户群组进行打包与校验,各权威用户通过分数反馈对该事务上链请求的可信性。
2)EDC最终的审核结果。当EDC最终经EAU审核合格时,相应的CU将获得适当的权威分数增加;而EDC审核不合格时,则该CU被认为进行了虚假或错误的授予行为,该节点的权威分数将大幅下降。
基于以上两点评判因素,权威分数的计算标准如下:
$ {A}_{\mathrm{A}\mathrm{S}}=\alpha \times \sum \limits_{j=1}^{T\left(x\right)}B(C, j)\times \mathrm{T}\mathrm{r}\left(P\right(C, j\left)\right)+\beta \times M-\lambda \times N $ | (11) |
其中:
式(11)第1部分为各权威用户对拟授予事务的评判阶段,
式(11)第2部分为审核结果的反馈阶段,
本文基于区块链技术,提出一种新的电子学位证照数据存储、共享、验证与查询方法。该方法利用密码学相关技术实现电子学位证照的加密存储,且所有操作均具有可追溯性。设计面向学位管理的智能合约架构,自主管理电子学位证照授予、审核、验证等操作,实现节点间的数据共享,通过建立联盟链网络,形成“高校-教育管理部门-学生-外部”的多角色模式,赋予各角色相应的权限操作,并基于POA共识算法,使具有高度可信性与权威性的高校与教育管理节点负责联盟链的运行与维护,提高系统性能,节省经济成本。最终构建基于POA共识算法的电子学位证照数据保护及共享系统,并对其可行性、性能、复杂度等进行评估与分析。实验结果表明,该方法可行性高,共识性能优异,智能合约构建合理。下一步将改进属性基加密算法,设计具有细粒度共享能力的访问控制方法,提高电子学位证照数据保护的安全性与共享的高效性。
[1] |
LIU B, XIAO L J, LONG J, et al. Secure digital certificate-based data access control scheme in blockchain[J]. IEEE Access, 2020, 8: 91751-91760. DOI:10.1109/ACCESS.2020.2993921 |
[2] |
NAKAMOTO S. Bitcoin: a peer-to-peer electronic cash system[EB/OL]. [2021-02-10]. https://www.win.tue.nl/~mholende/seminar/references/bitcoin.pdf.
|
[3] |
BERDIK D, OTOUM S, SCHMIDT N, et al. A survey on blockchain for information systems management and security[J]. Information Processing & Management, 2021, 58(1): 102-117. |
[4] |
中国区块链技术和产业发展论坛. 中国区块链技术和应用发展白皮书(2016)[EB/OL]. [2021-02-10]. http://www.199it.com/archives/526865.html. China Blockchain Development Forum. China blockchain technology and application development white paper (2016)[EB/OL]. [2021-02-10]. http://www.199it.com/archives/526865. (in Chinese) |
[5] |
SCHMIDT P. Blockcerts—an open infrastructure for academic credentials on the blockchain[J]. Machine Learning, 2016, 24(10): 210-219. |
[6] |
VIDAL F, GOUVEIA F, SOARES C. Analysis of blockchain technology for higher education[C]//Proceedings of 2019 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery. Washington D.C., USA: IEEE Press, 2019: 28-33.
|
[7] |
KAZAKZEH S, AYOUBI E, MUSLMANI B K, et al. Framework for blockchain deployment: the case of educational systems[C]//Proceedings of the 2nd International Conference on New Trends in Computing Sciences. Washington D.C., USA: IEEE Press, 2019: 1-9.
|
[8] |
JIRGENSONS M, KAPENIEKS J. Blockchain and the future of digital learning credential assessment and management[J]. Journal of Teacher Education for Sustainability, 2018, 20(1): 145-156. DOI:10.2478/jtes-2018-0009 |
[9] |
TURKANOVIĆ M, HÖLBL M, KOŠIČ K, et al. EduCTX: a blockchain-based higher education credit platform[J]. IEEE Access, 2018, 6: 5112-5127. DOI:10.1109/ACCESS.2018.2789929 |
[10] |
LI H Z, HAN D Z. EduRSS: a blockchain-based educational records secure storage and sharing scheme[J]. IEEE Access, 2019, 7: 179273-179289. DOI:10.1109/ACCESS.2019.2956157 |
[11] |
RASOOL S, SALEEM A, IQBAL M, et al. Docschain: blockchain-based IoT solution for verification of degree documents[J]. IEEE Transactions on Computational Social Systems, 2020, 7(3): 827-837. DOI:10.1109/TCSS.2020.2973710 |
[12] |
LI X Q, JIANG P, CHEN T, et al. A survey on the security of blockchain systems[J]. Future Generation Computer Systems, 2020, 107: 841-853. DOI:10.1016/j.future.2017.08.020 |
[13] |
MELL P, DRAY J, SHOOK J. Smart contract federated identity management without third party authentication services[EB/OL]. [2021-02-10]. https://arxiv.org/abs/1906.11057.
|
[14] |
方轶, 邓建球, 丛林虎, 等. 一种基于环签名的PBFT区块链共识算法改进方案[J]. 计算机工程, 2019, 45(11): 32-36. FANG Y, DENG J Q, CONG L H, et al. An improved scheme for PBFT blockchain consensus algorithm based on ring signature[J]. Computer Engineering, 2019, 45(11): 32-36. (in Chinese) |
[15] |
CHEN Q, SRIVASTAVA G, PARIZI R M, et al. An incentive-aware blockchain-based solution for Internet of fake media things[J]. Information Processing & Management, 2020, 57(6): 102-117. |
[16] |
OMAR A A, BHUIYAN M Z A, BASU A, et al. Privacy-friendly platform for healthcare data in cloud based on blockchain environment[J]. Future Generation Computer Systems, 2019, 95: 511-521. DOI:10.1016/j.future.2018.12.044 |
[17] |
WOOD G. Ethereum: a secure decentralised generalised transaction ledger[EB/OL]. [2021-02-10]. http://gavwood.com/Paper.pdf.
|
[18] |
HUANG H, CHEN X F, WANG J F. Blockchain-based multiple groups data sharing with anonymity and traceability[J]. Science China Information Sciences, 2019, 63(3): 1-13. |
[19] |
LIU C H, LIN Q X, WEN S L. Blockchain-enabled data collection and sharing for industrial IoT with deep reinforcement learning[J]. IEEE Transactions on Industrial Informatics, 2019, 15(6): 3516-3526. DOI:10.1109/TII.2018.2890203 |
[20] |
LIU X H, YU X R, MA X L, et al. A method to improve the fresh data query efficiency of blockchain[C]//Proceedings of the 12th International Conference on Measuring Technology and Mechatronics Automation. Washington D.C., USA: IEEE Press, 2020: 823-827.
|
[21] |
SCHAFFER M, DI ANGELO M, SALZER G. Performance and scalability of private Ethereum block-chains[C]//Proceedings of International Conference on Business Process Management. Berlin, Germany: Springer, 2019: 103-118.
|
[22] |
SAAD M, ANWAR A, AHMAD A, et al. RouteChain: towards blockchain-based secure and efficient BGP routing[C]//Proceedings of 2019 IEEE International Conference on Blockchain and Cryptocurrency. Washington D.C., USA: IEEE Press, 2019: 210-218.
|
[23] |
TIKHOMIROV S, VOSKRESENSKAYA E, IVANITSKIY I, et al. SmartCheck: static analysis of ethereum smart contracts[C]//Proceedings of the 1st IEEE/ACM International Workshop on Emerging Trends in Software Engineering for Blockchain. Washington D.C., USA: IEEE Press, 2018: 9-16.
|
[24] |
ZHENG P L, ZHENG Z B, LUO X P, et al. A detailed and real-time performance monitoring framework for blockchain systems[C]//Proceedings of the 40th IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice Track. Washington D.C., USA: IEEE Press, 2018: 134-143.
|
[25] |
ZHANG Y Y, YUTAKA M, SASABE M, et al. Attribute-based access control for smart cities: a smart-contract-driven framework[J]. IEEE Internet of Things Journal, 2021, 8(8): 6372-6384. DOI:10.1109/JIOT.2020.3033434 |