CN118101640A - 基于区块链的数据处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN118101640A CN118101640A CN202211450643.7A CN202211450643A CN118101640A CN 118101640 A CN118101640 A CN 118101640A CN 202211450643 A CN202211450643 A CN 202211450643A CN 118101640 A CN118101640 A CN 118101640A
- Authority
- CN
- China
- Prior art keywords
- target
- task
- trusted
- node
- computing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 128
- 238000012546 transfer Methods 0.000 claims abstract description 67
- 238000004891 communication Methods 0.000 claims description 225
- 238000012545 processing Methods 0.000 claims description 119
- 238000004364 calculation method Methods 0.000 claims description 80
- 230000003993 interaction Effects 0.000 claims description 24
- 238000012795 verification Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 12
- 230000001960 triggered effect Effects 0.000 claims description 12
- RYAUSSKQMZRMAI-YESZJQIVSA-N (S)-fenpropimorph Chemical compound C([C@@H](C)CC=1C=CC(=CC=1)C(C)(C)C)N1C[C@H](C)O[C@H](C)C1 RYAUSSKQMZRMAI-YESZJQIVSA-N 0.000 claims description 10
- 238000005259 measurement Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 57
- 238000010586 diagram Methods 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000012508 change request Methods 0.000 description 10
- 238000010276 construction Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000007474 system interaction Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,方法包括:可信服务器将发布终端上传的目标可信应用、目标任务、以及目标资源数据发送给区块链节点;在任务发布方所指定的任务执行时长内,基于区块链节点返回的第一算力池以及第二算力池,确定目标算力节点,将目标算力节点发送给区块链节点;在从区块链上拉取到处于已就绪状态的目标算力节点时,对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;将执行目标任务所得到的任务执行结果返回至发布终端,且将目标资源数据转移至目标算力节点。采用本申请,可提升任务执行的可信性和数据转移的安全性。
Description
技术领域
本申请涉及区块链的技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。
背景技术
目前,在多个对象(例如,对象A和对象B)之间有业务往来时,存在对象A所使用的终端(例如,终端A1)与对象B所使用的终端(例如,终端B1)直接进行数据交互的现象。这意味着当对象A需要请求对象B执行某一任务时,可以获取该任务所对应的业务中的业务数据,进而可以在对象A所使用的终端(例如,终端A1)与对象B所使用的终端(例如,终端B1)直接建立通信连接的情况下,通过对象A与对象B所约定的密钥(例如,密钥X)对该对象A所请求执行的业务数据进行加密,以将加密后的业务数据直接通过该通信连接发送给对象B所使用的终端(例如,终端B1)。此时,对象B所使用的终端(例如,终端B1)可以通过该同一密钥(例如,密钥X),对前述加密后的业务数据进行解密处理,以解密得到该对象A所请求执行的业务数据,进而可以通过该解密得到的业务数据来执行前述任务。
然而,发明人在实现中发现,在现有的任务执行方案中,对象A需要通过自己指定的某个对象(例如,前述对象B)来执行前述任务,这意味着即使该对象B所使用的终端B1当前不具备处理该任务的算力的情况下,仍会无差别的将前述加密后的业务数据发送给该终端B1,且在该终端A1与终端B1直接建立通信连接时,该终端A1也可以直接接收到终端B1所返回的任务执行结果时,显然,当该终端A1所对应的对象A在获取到任务执行结果时,难以衡量该任务执行结果所对应的任务执行的可信性。因此,当该任务执行结果所对应的任务执行的可信性较低时,该对象A也会通过该终端A1将执行该任务所需要转移的资源数据转移给终端B1,这意味着现有的任务执行方案,在进行数据转移时,也难以确保数据转移的安全性。
发明内容
本申请实施例提供了一种基于区块链的数据处理方法、装置、设备和可读存储介质,可提升任务执行的可信性和数据转移的安全性。
本申请一方面提供了一种基于区块链的数据处理方法,方法由可信任务发布平台中的可信服务器执行,方法包括:
获取任务发布方通过发布终端上传的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据,将目标任务、目标可信应用、以及目标资源数据发送给与区块链相关联的区块链节点,以使区块链节点将目标可信应用、目标任务、以及目标资源数据上链至区块链;
在任务发布方所指定的任务执行时长内,接收区块链节点返回的第一算力池和第二算力池,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点,以使区块链节点将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;节点任务状态包含已就绪状态;已就绪状态是区块链节点在确定目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
在从区块链上拉取到处于已就绪状态的目标算力节点时,对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;
在从区块链上的第一节点合约中获取到由目标算力节点执行目标任务所得到的任务执行结果时,将任务执行结果返回至发布终端,且将目标资源数据转移至目标算力节点。
本申请实施例提供一种基于区块链的数据处理方法,方法由区块链节点执行,方法包括:
获取发布终端通过可信任务发布平台中的可信服务器发送的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据,将目标可信应用、目标任务、以及目标资源数据上链至区块链;
获取可信服务器在任务发布方所指定的任务执行时长内发送的算力获取请求,基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池,将第一算力池和第二算力池返回给可信服务器,以使可信服务器从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点;
接收可信服务器发送的目标算力节点,将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;节点任务状态包含已就绪状态;已就绪状态是在目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
在接收到可信服务器针对处于已就绪状态的目标算力节点的算力拉取请求时,将处于已就绪状态的目标算力节点返回给可信服务器,以使可信服务器对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;
获取目标算力节点通过目标可信应用执行目标任务所得到的任务执行结果,将任务执行结果写入第一节点合约;
在获取到可信服务器发送的任务结果获取请求时,基于任务结果获取请求将第一节点合约中的任务执行结果返回给可信服务器,以使可信服务器将任务执行结果返回值发布终端,且将目标资源数据转移至目标算力节点。
本申请实施例一方面提供了一种基于区块链的数据处理装置,其特征在于,装置运行在可信任务发布平台中的可信服务器上,装置包括:
任务资源获取模块,用于获取任务发布方通过发布终端上传的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据,将目标任务、目标可信应用、以及目标资源数据发送给与区块链相关联的区块链节点,以使区块链节点将目标可信应用、目标任务、以及目标资源数据上链至区块链;
目标算力节点确定模块,用于在任务发布方所指定的任务执行时长内,接收区块链节点返回的第一算力池和第二算力池,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点,以使区块链节点将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;节点任务状态包含已就绪状态;已就绪状态是区块链节点在确定目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
远程认证模块,用于在从区块链上拉取到处于已就绪状态的目标算力节点时,对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;
任务结果获取模块,用于在从区块链上的第一节点合约中获取到由目标算力节点执行目标任务所得到的任务执行结果时,将任务执行结果返回至发布终端,且将目标资源数据转移至目标算力节点。
其中,可信业务发布平台用于为任务发布方所使用的发布终端提供可信页面;可信页面包含用于上传目标可信应用的第一可信页面、用于发布目标任务的第二可信应用以及用于转移目标资源数据的第三可信页面;区块链上的节点合约包含可信应用合约和可信任务合约;
任务资源获取模块包括:
应用上链单元,用于在获取到任务发布方通过发布终端上的第一可信页面上传的目标可信应用时,构建用于将目标可信应用上链至区块链的应用上链请求,将应用上链请求发送给区块链节点,以使区块链节点基于应用上链请求将目标可信应用所对应的应用上传交易写入区块链上的可信应用合约;
任务上链单元,用于在获取到任务发布方通过发布终端上的第二可信页面发布的目标任务时,构建用于将目标任务上链至区块链的任务上链请求,将任务上链请求发送至区块链节点,以使区块链节点基于任务上链请求将目标任务所对应的任务发布交易写入区块链上的可信任务合约;
资源上链单元,用于在获取到任务发布方通过发布终端上的第三可信页面转移的目标资源数据时,构建用于将目标资源数据上链至区块链的资源上链请求,将资源上链请求发送至区块链节点,以使区块链节点基于资源上链请求将目标资源数据所对应的第一资源转移交易写入区块链,且在可信任务合约中将目标任务的任务状态更新为已转移状态。
其中,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第一可信页面;
应用上链单元包括:
应用请求发送子单元,用于接收任务发布方通过发布终端中的可信网页应用发送的与第一可信页面相关联的应用处理请求;应用处理请求中携带任务发布方所获取到的目标可信应用以及用于标识目标可信应用的应用度量值;
应用交易构造子单元,用于基于应用处理请求中所携带的目标可信应用以及应用度量值构建目标可信应用对应的应用上传交易;
应用交易上链子单元,用于将应用上传交易写入应用上链请求,且将应用上链请求发送至区块链节点,以使区块链节点在将包含应用上传交易的第一区块写入区块链时,将应用上传交易中所记录的目标可信应用以及应用度量值录入区块链上的可信应用合约。
其中,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第二可信页面;
任务上链单元包括:
任务请求发送子单元,用于接收任务发布方通过发布终端中的可信网页应用发送的与第二可信页面相关联的任务处理请求;任务处理请求中携带任务发布方所获取到的目标任务以及与目标任务相关联的任务参数;任务参数中包含目标任务的任务名;
任务交易构造子单元,还具体用于将任务处理请求中所携带的目标任务和任务参数作为目标任务的任务关键信息,基于目标任务的任务名以及目标任务的任务关键信息构建目标任务对应的任务发布交易;
任务交易上链子单元,用于将任务发布交易写入任务上链请求,且将任务上链请求发送至区块链节点,以使区块链节点在将包含任务发布交易的第二区块写入区块链时,将任务发布交易中所记录的目标任务的任务名和目标任务的任务关键信息,录入区块链上的可信任务合约。
其中,任务参数包括目标任务的任务名,目标任务的任务描述信息、第一加密数据密钥、加密后的业务数据、执行目标任务所需的目标可信应用的应用度量值、执行目标任务所需的算力度量值、以及执行目标任务所需的目标资源数据;其中,第一加密数据密钥是发布终端通过第一通信密钥,对在发布终端中生成的数据密钥进行加密处理后所得到的;加密后的业务数据为发布终端通过数据密钥对任务发布方所请求执行的业务数据进行加密处理后所得到的;第一通信密钥是发布终端通过可信任务发布平台的平台公钥信息以及任务发布方的发布私钥信息所确定的;与第一通信密钥互为非对称密钥的第二通信密钥是可信服务器通过任务发布方的发布公钥信息和可信任务发布平台的平台私钥信息所确定的;第一通信密钥和第二通信密钥均属于第一共享通信密钥,且第一共享通信密钥是发布终端在与可信服务器建立第一通信连接时,按照第一密钥交换协议所协商得到的;
任务请求发送子单元,具体用于通过可信任务发布平台中的可信网页应用与在发布终端建立第一通信连接;
任务请求发送子单元,还具体用于基于第一通信连接接收任务发布方通过发布终端中的可信网页应用发送的与第二可信页面相关联的加密任务处理请求;加密任务处理请求为发布终端通过第一通信密钥对携带任务参数的任务处理请求进行加密后所得到的;
任务请求发送子单元,还具体用于通过第二通信密钥对加密任务处理请求进行解密处理,得到携带任务参数的任务处理请求。
其中,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第三可信页面;写入可信任务合约中的任务发布交易中记录有目标任务的任务名,且目标任务的任务名所关联的目标任务的任务状态为待转移状态;
资源上链单元包括:
资源请求发送子单元,用于接收任务发布方通过发布终端中的可信网页应用发送的与第三可信页面相关联的资源处理请求;资源处理请求中携带任务发布方通过发布终端向可信任务发布平台所对应的平台账户转移的目标资源数据;
资源数据存储子单元,用于将资源处理请求中所携带的目标资源数据存储至平台账户,基于存储的目标资源数据和平台账户构建目标资源数据对应的第一资源转移交易;
资源交易上链子单元,用于将第一资源转移交易写入资源上链请求,且将资源上链请求发送至区块链节点,以使区块链节点在将包含第一资源转移交易的第三区块写入区块链时,从可信任务合约中读取目标任务的任务名,且将目标任务的任务名所关联的目标任务的任务状态由待转移状态更新为已转移状态。
其中,可信服务器运行在可信执行环境中,可信服务器用于通过可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供算力池加入页面;算力池加入页面包含用于请求加入第一算力池的第一算力池加入页面;待进行注册算力的算力节点中包含目标算力节点;
装置还包括:
第一算力注册模块,用于接收运行在可信执行环境中的目标算力节点发送的第一算力注册请求;第一算力注册请求为目标算力节点响应于算力提供方针对第一算力池加入页面的触发操作所生成的;
第一算力池加入模块,用于从第一算力注册请求中获取算力提供方所触发的第一算力池加入页面中的第一标识,基于第一标识确定算力提供方所请求进行算力注册的算力池为第一算力池;
第一算力上链模块,用于将目标算力节点和第一算力池的第一标识发送给区块链节点,以使区块链节点基于第一标识获取区块链上的第一业务合约,调用第一业务合约将目标算力节点添加至第一算力池。
其中,可信服务器运行在可信执行环境中,可信服务器用于通过可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供算力池加入页面;算力池加入页面包含用于请求加入第二算力池的第二算力池加入页面;待进行注册算力的算力节点中包含目标算力节点;
装置还包括:
第二算力注册模块,用于接收运行在可信执行环境中的目标算力节点发送的第二算力注册请求;第二算力注册请求为目标算力节点响应于算力提供方针对第二算力池加入页面的触发操作所生成的;
第二算力池加入模块,用于从第二算力注册请求中获取算力提供方所触发的第二算力池加入页面中的第二标识,基于第二标识确定算力提供方所请求进行算力注册的算力池为第二算力池;
第二算力上链模块,用于将目标算力节点和第二算力池的第二标识发送给区块链节点,以使区块链节点基于第二标识获取区块链上的第二业务合约,调用第二业务合约将目标算力节点添加至第二算力池。
其中,可信服务器运行在可信执行环境中,可信服务器用于通过可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供可信任务浏览页面;可信任务浏览页面用于为待进行注册算力的算力节点提供可信任务列表;可信任务列表为可信服务器通过区块链节点从区块链上的可信任务合约中所拉取到的;待进行注册算力的算力节点中包含目标算力节点;
装置还包括:
浏览请求接收模块,用于接收运行在可信执行环境中的目标算力节点发送的算力任务浏览请求;算力任务浏览请求为目标算力节点响应于算力提供方针对可信任务浏览页面中的可信任务列表的触发操作所生成的;
任务名触发模块,用于从算力任务浏览请求中获取算力提供方所触发的可信任务列表中的目标任务的任务名;
算力添加模块,用于在确定目标任务的任务名所在的算力池为第一算力池时,将目标算力节点和第一算力池的第一标识发送给区块链节点,以使区块链节点基于第一标识获取区块链上的第一节点合约,调用第一节点合约将目标算力节点添加至第一算力池。
其中,与目标任务相关联的任务参数包括目标任务的任务描述信息;其中,任务描述信息包含由任务发布方所指定的任务执行时长以及执行目标任务所需的目标资源数据存储在可信任务发布平台所提供的平台账户中的资源存储时长阈值;
目标算力节点确定模块包括:
存储时长累计单元,用于在获取到执行目标任务所需的目标资源数据时,将目标资源数据转移至可信任务发布平台所提供的平台账户中,且在可信任务发布平台中累计用于存储目标资源数据的平台账户的资源存储时长;
执行时长确定单元,用于在检测到资源存储时长未达到资源存储时长阈值时,确定资源存储时长处于任务发布方所指定的任务执行时长内;
算力获取请求单元,用于在任务执行时长内,生成用于向区块链节点发送的算力获取请求,将算力获取请求发送给区块链节点,以使区块链节点基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池;
目标算力确定单元,用于在接收到区块链节点返回的第一算力池和第二算力池时,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点。
其中,与目标任务相关联的任务参数包括执行目标任务所需的算力度量值、以及执行目标任务所需的目标资源数据;
目标算力确定单元,具体用于从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,筛选与执行目标任务所需的算力度量值相符的算力节点,将筛选到的与算力度量值相符的算力节点作为候选算力节点;
目标算力确定单元,还具体用于从候选算力节点中,筛选执行目标任务所需的目标资源数据相符的算力节点,将筛选到的与目标资源数据相符的候选算力节点作为用于执行目标任务的目标算力节点。
其中,可信服务器和目标算力节点均运行在可信执行环境中;目标算力节点中包含在可信执行环境中与部署的目标可信应用相关联的可信代理组件;可信服务器中包含部署在可信执行环境中的代理远程认证组件;代理远程认证组件用于对可信代理组件进行远程认证;
远程认证模块包括:
通信连接建立单元,用于在从区块链上拉取到处于已就绪状态的目标算力节点时,建立可信服务器中的代理远程认证组件与目标算力节点中的可信代理组件之间的第二通信连接;
认证请求发起单元,用于基于第二通信连接控制代理远程认证组件向目标算力节点中的可信代理组件发起远程认证请求,以使目标算力节点根据远程认证请求,将在可信执行环境中部署的目标可信应用的本地报告添加至部署在可信执行环境中的可信代理组件的远程报告中,得到可信代理组件的环境应用验证报告;
远程认证单元,用于接收目标算力节点上传的环境应用验证报告,基于环境应用验证报告对可信代理组件和目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点中的可信代理组件调用目标可信应用,以通过目标可信应用执行目标任务。
其中,远程认证模块还包括:
任务参数获取单元,用于在可信服务器与发布终端建立第一通信连接时,基于第一通信连接获取目标任务的任务参数,从任务参数中获取与发布终端的第一通信密钥相关联的第一加密数据密钥以及加密后的业务数据;第一加密数据密钥是发布终端通过第一通信密钥,对在发布终端中生成的数据密钥进行加密处理后所得到的;加密后的业务数据为发布终端通过数据密钥对任务发布方所请求执行的业务数据进行加密处理后所得到的;第一通信密钥是发布终端通过可信任务发布平台的平台公钥信息以及任务发布方的发布私钥信息所确定的;与第一通信密钥互为非对称密钥的第二通信密钥是可信服务器通过任务发布方的发布公钥信息和可信任务发布平台的平台私钥信息所确定的;第一通信密钥和第二通信密钥均属于第一共享通信密钥,且第一共享通信密钥是发布终端在与可信服务器建立第一通信连接时,按照第一密钥交换协议所协商得到的;
平台公钥发送单元,用于基于第二通信连接向目标算力节点发送第二密钥交换协议和可信任务发布平台的平台公钥信息,以使目标算力节点中的可信代理组件基于第二密钥交换协议获取目标算力节点对应的算力提供方的算力公钥信息和算力公钥信息对应的算力私钥信息,且基于平台公钥信息和算力私钥信息,生成目标算力节点对应的第三通信密钥,并将第三通信密钥存储至目标可信应用;
算力公钥返回单元,用于通过代理远程认证组件接收目标算力节点中的可信代理组件返回的算力公钥信息,按照第二密钥交换协议将由算力公钥信息和可信任务发布平台的平台私钥信息所确定通信密钥作为第四通信密钥;第四通信密钥和第三通信密钥为可信服务器和目标算力节点按照第二密钥交互协议所协商得到的第二共享通信密钥;第四通信密钥为第三通信密钥的非对称密钥;
数据密钥加密单元,用于在远程认证成功,且通过第二通信密钥对第一加密数据密钥进行解密处理,得到数据密钥时,控制代理远程认证组件通过第四通信密钥对数据密钥进行加密处理,得到第二加密数据密钥,将第二加密数据密钥和加密后的业务数据发送给目标算力节点,以使目标算力节点通过可信代理组件将第二加密数据密钥发送给存储有第三通信密钥的目标可信应用,以在目标可信应用中通过第三通信密钥对第二加密数据密钥进行解密处理,得到用于对加密后的业务数据进行解密处理的数据密钥;目标可信应用用于通过解密得到的数据密钥对加密后的业务数据进行解密处理,以解密得到业务数据。
其中,区块链上的第一节点合约中存储有由目标算力节点中的目标可信应用,通过可信代理组件上传的加密任务执行结果;加密任务执行结果为目标算力节点中的目标可信应用通过数据密钥对执行目标任务所得到的任务执行结果进行加密处理后所得到的;任务执行结果为目标可信应用在通过数据密钥解密得到任务发布方所请求执行的业务数据时,基于目标任务的任务描述信息对业务数据进行可信计算后所得到的;
装置还包括:
任务结果请求发送模块,用于在目标资源数据所对应的资源存储时长阈值达到任务执行时长时,向区块链节点发送任务结果获取请求,以使区块链节点基于任务结果获取请求从区块链上的第一节点合约中获取到与目标可信应用相关联的加密任务执行结果;
加密任务结果接收模块,用于接收区块链节点返回的加密任务执行结果,通过数据密钥对加密任务执行结果进行解密处理,得到与目标算力节点相关联的任务执行结果。
其中,第一节点合约中存储的目标任务的任务名所关联的目标任务的任务状态为已转移状态;
装置还包括:
任务状态配置模块,用于在将目标资源数据转移至目标算力节点时,将目标任务的任务状态配置为已执行状态,基于目标资源数据和处于已执行状态的目标任务构建目标资源数据对应的第二资源转移交易;
状态变更请求发送模块,用于将第二资源转移交易写入目标任务对应的任务状态变更请求,且将任务状态变更请求发送至区块链节点,以使区块链节点在将包含第二资源转移交易的第四区块写入区块链时,从可信任务合约中读取目标任务的任务名,且将目标任务的任务名所关联的目标任务的任务状态由已转移状态更新为已执行状态。
本申请实施例一方面提供了一种数据处理装置,装置运行在区块链节点上,装置包括:
任务资源上链模块,用于获取发布终端通过可信任务发布平台中的可信服务器发送的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据,将目标可信应用、目标任务、以及目标资源数据上链至区块链;
目标算力获取模块,用于获取可信服务器在任务发布方所指定的任务执行时长内发送的算力获取请求,基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池,将第一算力池和第二算力池返回给可信服务器,以使可信服务器从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点;
目标算力节点上链模块,用于接收可信服务器发送的目标算力节点,将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;节点任务状态包含已就绪状态;已就绪状态是在目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
目标算力拉取模块,用于在接收到可信服务器针对处于已就绪状态的目标算力节点的算力拉取请求时,将处于已就绪状态的目标算力节点返回给可信服务器,以使可信服务器对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;
任务结果上链模块,用于获取目标算力节点通过目标可信应用执行目标任务所得到的任务执行结果,将任务执行结果写入区块链上的第一节点合约;
任务结果返回模块,用于在获取到可信服务器发送的任务结果获取请求时,基于任务结果获取请求将第一节点合约中的任务执行结果返回给可信服务器,以使可信服务器将任务执行结果返回值发布终端,且将目标资源数据转移至目标算力节点。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本申请实施例中上述一方面提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例中上述一方面提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
本申请实施例所涉及的可信任务发布平台中部署有可信服务器,该可信服务器为运行在可信执行环境中的服务器,可以理解的是,该可信服务器在获取到任务发布方通过发布终端上传的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据时,可以将目标任务、目标可信应用、以及目标资源数据发送给与区块链相关联的区块链节点,以使区块链节点将目标可信应用、目标任务、以及目标资源数据上链至区块链。应当理解,该运行在可信执行环境中的服务器(即可信服务器)可以用于对大量闲置算力的集中管理,使得有可信算力需求的任务发布方可以通过该可信任务发布平台中的可信服务器智能筛选出安全可靠的算力节点。具体的,该可信服务器可以在该任务发布方所指定的任务执行时长内,智能从区块链上获取到第一算力池和第二算力池,进而可以在获取到的第一算力池和第二算力池中,快速且安全地筛选出贴合任务发布方需求且有闲置算力的算力节点作为用于执行目标任务的目标算力节点,并可以将筛选出的目标算力节点发送给区块链节点,以使该区块链节点将该目标算力节点写入该区块链上的第一节点合约,并可以在第一节点合约中记录目标算力节点的节点任务状态。需要注意的是,这里的节点任务状态可以包含已就绪状态,且这里的已就绪状态是区块链节点在确定目标算力节点从区块链上获取到目标任务以及成功部署了目标任务所对应的目标可信应用时所确定的;应当理解,在本申请实施例中,任务发布方和算力提供方并不会直接进行数据交互,且任务发布方可以通过该可信任务发布平台中的可信服务器,将自己所请求执行的任务(即前述目标任务)和执行该任务所需要的可信应用(即前述目标可信应用)写入区块链,这样,在算力提供方所对应的目标算力节点通过该区块链确定自己需要执行的任务为目标任务时,可以进一步按需从区块链上下载并部署该目标任务所对应的目标可信应用,并可以在安装部署好目标可信应用时,将自己在区块链上的节点任务状态配置为已就绪状态。所以,为确保任务执行的可信性和可靠性,该可信服务器在从区块链上拉取到处于该已就绪状态的目标算力节点时,可以进一步对该目标算力节点中所部署的目标可信应用进行远程认证,进而可以在远程认证成功的情况下,允许该目标算力节点通过该目标可信应用执行目标任务。进一步的,本申请实施例为确保数据转移的安全性,该可信服务器可以在从区块链上获取到由该目标算力节点执行目标任务所得到的任务执行结果时,将该任务执行结果返回给发布终端,并可以一并将前述执行目标任务所需要的目标资源数据转移至目标算力节点,以提升数据转移的安全性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种网络架构的结构示意图;
图2是本申请提供的一种基于区块链的数据交互场景示意图;
图3是本申请提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种将目标可信应用、目标任务以及目标资源数据上链至区块链的场景示意图;
图5是本申请实施例提供的一种筛选目标算力节点的场景示意图;
图6是本申请实施例提供的一种进行远程认证的场景示意图;
图7是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图8是本申请实施例提供的一种从区块链上获取任务执行结果的场景示意图;
图9是本申请实施例提供的一种基于区块链的数据处理方法的流程时序图;
图10是本申请实施例提供的一种基于可信执行环境的系统交互架构图;
图11是本申请提供的一种基于区块链的数据处理装置的结构示意图;
图12是本申请提供的一种基于区块链的数据处理装置的结构示意图;
图13是本申请提供的一种计算机设备的结构示意图;
图14是本申请实施例提供的一种基于区块链的数据处理系统的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例所提供的方法涉及到可信执行环境、区块链等相关技术,为便于理解,以下将优先对可信执行环境、区块链及其相关技术进行阐述。
1、可信执行环境(Trusted Execution Environment,TEE):可信执行环境是计算平台上由软硬件方法构建的一个安全区域,可保证在安全区域内加载的代码和数据在机密性和完整性方面得到保护。其目标是确保一个任务按照预期执行,保证初始状态的安全性、完整性,以及运行时状态的安全性、完整性。实际上,可信执行环境可以理解为是基于硬件保护数据和算法的一项技术,是一个处理器和内存的隔离环境,只有中央处理器(CentralProcessing Unit,CPU)可以访问可信执行环境中的应用程序,其它层(如其它硬件、内核、其它应用程序等等)对可信执行环境的访问,均会被CPU所阻拦。在本申请实施例中,部署在可信任务发布平台中的可信服务器运行在可信执行环境中,且由该可信服务器所筛选出的用于执行目标任务的目标算力节点所下载和安装的目标可信应用也运行在可信执行环境中。为便于理解,本申请实施例可以将目标可信应用所运行的环境统称为可信执行环境或者TEE环境。
换言之,可以理解的是,本申请实施例可以通过TEE构造一个可用不可见的安全执行环境,这样,对于算力提供方所对应的算力节点(例如,目标算力节点)而言,可以通过在该目标算力节点的TEE环境中所部署的目标可信应用(即任务发布方所指定需要部署的可信应用),解密得到的业务数据,以在该目标可信应用中基于解密得到的业务数据执行前述目标任务所指示的可信计算。应当理解,对于该目标算力节点而言,无法在该TEE(即可信执行环境)外部(即普通执行环境,这里的普通执行环境为在该目标算力节点中除可信执行环境之外的执行环境)获取到由该任务发布方所提供的业务数据,即这里的业务数据仅对用于访问该目标可信应用的CPU可见,对该目标算力节点所对应的算力提供方(例如,某个企业)自身是不可见的,即这里的算力提供方(例如,某个企业)自身是无法直接获取到该任务发布方所提供的业务数据的,这样可以从根源上确保前述业务数据在进行数据传输时的安全性和可靠性。
2、区块链:区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链中包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中的区块链节点所打包提交的记录数据。
换言之,本申请实施例可以利用区块链的去中心化、可追溯不可篡改特性,将任务发布方所对应的发布终端通过可信任务发布平台中的可信服务器所参与的协作过程进行上链,这里的协作过程可以包含任务发布协作流程、算力注册协作流程、算力筛选协作流程、远程认证协作流程和资源转移协作流程。
其中,任务发布协作流程是指可信服务器可以通过前述区块链实现对目标任务、目标可信应用和目标资源数据的可靠发布。算力注册协作过程是指可信服务器可以通过前述区块链实现对各算力节点的闲置算力的算力集中管理。筛选协作流程是指可信服务器可以通过前述区块链实现对目标算力节点的可靠筛选。远程认证协作流程是指可信服务器可以对从链上所获取到的处于已就绪状态的目标算力节点进行远程认证,以提升在该目标算力节点中的可信计算的可信性。资源转移协作流程是指可信服务器可以对从链上所获取到的加密任务执行结果进行解密处理,以得到用于返回给任务发布方的任务执行结果,进而可以在将目标资源数据转移给目标算力节点时,提升资源转移的安全性。
3、公钥(public key)与私钥(private key):公钥与私钥是通过某种算法(例如,密钥生成算法)得到的一个密钥对(即一个公钥和一个私钥),其中,公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密数据、验证数字签名等。通过这种算法能够确保得到的密钥对是唯一的,使用这种密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密,例如,用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。在本申请实施例中,这里的公钥包含任务发布方的发布公钥信息、可信任务发布平台的平台公钥信息、算力提供方的算力公钥信息。对应地,这里的私钥包含任务发布方的发布私钥信息、可信任务发布平台的平台私钥信息、算力提供方的算力私钥信息。
比如,在任务发布方所对应的发布终端与可信服务器建立第一通信连接时,可以通过第一密钥交换协议协商得到与发布终端相关联的第一通信密钥、与可信服务器相关联的第二通信密钥。其中,第一通信密钥和第二通信密钥互为非对称密钥。应当理解,这里的第一通信密钥是指发布终端通过前述任务发布方的发布私钥信息和可信任务发布平台的平台公钥信息所确定的;这里的第二通信密钥是指可信服务器通过前述任务发布方的发布公钥信息和可信任务发布平台的平台私钥信息所确定的。其中,可以理解的是,这里的第一通信密钥用于对在该发布终端中所产生的数据密钥进行加密处理,得到第一加密数据密钥,所以,这里的第二通信密钥可以用于对发布终端所发送来的第一加密数据密钥进行解密处理,解密得到前述数据密钥。
这样,在可信服务器与处于已就绪状态的目标算力节点建立第二通信连接时,可以通过第二密钥交换协议协商得到与互为非对称密钥的第三通信密钥和第四通信密钥。其中,应当理解,这里的第三通信密钥是指目标算力节点通过前述算力提供方的算力私钥信息和可信任务发布平台的平台公钥信息所确定的;这里的第四通信密钥是指可信服务器通过前述算力提供方的算力公钥信息和可信任务发布平台的平台私钥信息所确定的。其中,可以理解的是,这里的第四通信密钥用于对在该可信服务器中所解密得到的数据密钥进行加密处理,以得到第二加密数据密钥,所以,这里的第三通信密钥可以用于对可信服务器所发送来的第二加密数据密钥进行解密处理,以解密得到前述数据密钥,这样,对于部署有可信应用(即目标可信应用)的目标算力节点而言,则可以通过处于可信执行环境中的目标可信应用,使用解密得到的数据密钥对该目标可信应用所获取到的加密后的业务数据进行解密处理,以在该目标可信应用中解密得到前述任务发布方所请求执行的业务数据。
4、智能合约(Smart Contract):是一种旨在以信息化方式传播、验证或执行合同的计算机协议。在区块链系统当中,智能合约(也可以称之为节点合约)是一种区块链各节点可以理解并执行的代码,可以执行任意逻辑并得到结果。在实际应用中,智能合约通过区块链上的交易来管理与试用。每条交易相当于对区块链系统的一个远程过程调用(RemoteProcedure Call,RPC)请求。如果说智能合约相当于可执行程序,区块链就相当于提供运行环境的操作系统。区块链可以包含多个合约,以合约账号(Identity,ID)、标识号或名称来区分。比如,本申请实施例所涉及的智能合约(也可以称之为节点合约)可以包含与第一算力池相关联的第一节点合约,与第二算力池相关联的第二节点合约、用于记录可信任务的可信任务合约以及用于记录可信应用的可信应用合约。
需要进行说明的是,本申请实施例所采集到的所有数据(如业务数据或者数据密钥等)都是在该数据所属对象(如前述任务发布方,这里的任务发布方可以为用户或者机构)同意并授权的情况下进行采集的。也就是说,当本申请的实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
请参见图1,图1是本申请提供的一种网络架构的结构示意图。如图1所示的网络架构可以应用于基于区块链的数据处理系统。该基于区块链的数据处理系统具体可以包括图1所示的可信服务器100b、任务发布方集群100a、算力提供方集群100c以及区块链共识网络100d。
其中,可以理解的是,任务发布方集群100a可以包括一个或者多个发布终端,这里将不对任务发布方集群100a中的发布终端的数量进行限定。如图1所示,任务发布方集群100a中的多个发布终端具体可以包括发布终端110a、发布终端110b、...、发布终端110n。如图1所示,发布终端110a、发布终端110b、...、发布终端110n可以分别与可信服务器100b进行网络连接,以便于该任务发布方集群100a中的每个发布终端可以通过该网络连接与可信服务器100b之间进行数据交互。
同理,算力提供方集群100c可以包括一个或者多个算力节点,这里将不对算力提供方集群100c中的算力节点的数量进行限定。如图1所示,算力提供方集群100c中的多个算力节点具体可以包括算力节点120a、算力节点120b、...、算力节点120n。如图1所示,算力节点120a、算力节点120b、...、算力节点120n可以分别与可信服务器100b进行网络连接,以便于该算力提供方集群100c中的每个算力节点可以通过该网络连接与可信服务器100b之间进行数据交互。
其中,如图1所示的可信服务器100b可以是独立的物理服务器,也可以是多个物理服务器所构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
此外,可选地,在一些可实现方式中,上述可信服务器也可以是区块链上的区块链节点(例如,区块链上不参与记账的业务节点),该区块链节点(例如,该区块链上不参与记账的业务节点)可以将通过任务发布集群100a中的某个发布终端所上传的目标可信应用、目标任务以及目标资源数据存于区块链共识网络100d所对应的区块链上,以确保数据存储的可靠性。
如图1所示的区块链共识网络100d可以包括多个区块链节点(即区块链上参与记账的共识节点),这里将不对区块链共识网络100d中的区块链节点(即区块链上参与记账的共识节点)的数量进行限定。如图1所示,区块链共识网络100d中的多个区块链节点具体可以包括区块链节点11a、区块链节点11b、区块链节点11c、区块链节点11d。如图1所示,可信服务器100b可以与区块链节点11a、区块链节点11b、区块链节点11c、区块链节点11d进行网络连接,以在该可信服务器100b接入该区块链共识网络100d的情况下,与该区块链共识网络100d中的某个区块链节点进行数据交互。另外,如图1所示,算力提供方集群100c中的算力节点也可以在接入该区块链共识网络100d的情况下,与该区块链共识网络100d中的某个区块链节点进行数据交互。比如,如图1所示,算力提供方集群100c中的算力节点可以在执行任务发布方所请求执行的目标任务之后,将执行目标任务所得到的任务执行结果通过该区块链共识网络100d中的某个区块链节点(例如,算力节点11c)写入图1所示的区块链11e。
可以理解的是,若区块链共识网络100d中的各个区块链节点是由服务器构成,则该区块链共识网络100d中的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。若各个区块链节点是由终端设备构成,则该终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等智能终端。
进一步的,请参见图2,图2是本申请提供的一种基于区块链的数据交互场景示意图。其中,如图2所示的用户终端20a可以为上述任务发布方集群100a中的任意一个发布终端,例如,上述图1所示的任务发布终端110a。如图2所示,用户A(即任务发布方)可以通过用户终端20a上所显示的可信页面,执行业务上传操作,此时,用户终端20a可以执行图2所示的步骤S11,以向图2所示的可信服务器21a发送业务处理请求。可以理解的是,这里的业务处理请求具体可以包含:用户终端20as所发送的用于上传目标可信应用的应用处理请求、用于上传与目标可信应用相关联的目标任务的任务处理请求、以及用于上传执行目标任务所需的目标资源数据的资源处理请求。应当理解,该业务处理请求中所携带的待上链业务,具体可以包含将目标可信应用上链的业务、将目标任务上链的另一业务以及将目标资源数据上链的又一业务。
其中,可以理解的是,这里的可信服务器21a运行在可信执行环境中,即该可信服务器21a中所部署可信执行环境可以为图2所示的可信执行环境200a。应当理解,如图2所示的可信服务器21a可以为上述图1所对应实施例中的可信服务器100b,这里的可信服务器21a可以用于接收图2所示的用户A通过用户终端20a发送的业务处理请求,进而可以执行图2所示的步骤S12,以从该业务处理请求所携带的待上链业务中,获取该用户A所上传的目标任务、目标可信应用以及目标资源数据。
进一步的,如图2所示,该可信服务器21a可以进一步执行步骤S13,以将目标任务、目标可信应用以及目标资源数据通过相应业务交易的形式写入区块链20e。这里的业务交易可以包含目标可信应用对应的应用上传交易、目标任务对应的任务发布交易以及目标资源数据对应的第一资源转移交易。应当理解,这些业务交易可以通过图2所示的区块链节点22a打包至同一区块,以上链至区块链20e。可选地,这些业务交易也可以通过图2所示的区块链节点22a打包至不同区块,以上链至区块链20e,这里将不对各个业务交易的打包形式以及各个业务交易所在的区块进行限定。
可以理解的是,该可信服务器21a可以在该用户A(即任务发布方)所指定的任务执行时长内,自动向图2所示的区块链节点22a发送算力获取请求,以使该区块链节点22a可以根据该算力获取请求执行步骤S14,以在该任务执行时长内,将用于执行特定任务的第一算力池和用于执行通用任务的第二算力池返回给可信服务器21a,以使该可信服务器自动从该第一算力池和第二算力池中筛选出用于执行目标任务的目标算力节点,可以理解的是,这里的目标算力节点可以为图2所示的具有闲置算力的用户终端23a。应当理解,这里的用户终端23a为在上述可信任务发布平台中注册了闲置算力的算力节点。这里的特定任务是指算力提供方从可信任务浏览页面中呈现的可信任务列表中所选取的可信任务。这里的可信任务列表为可信服务器21a通过区块链节点22a从区块链20e上的可信执行合约中所拉取到的。这里的通用任务为可信服务器21a为算力提供方所动态配置的可信任务。
其中,可以理解的是,该用户终端23a所对应的用户(例如,作为算力提供方的用户B)在通过可信任务发布平台注册闲置算力时,可以自主选择自己所需要加入的算力池。比如,本申请实施例可以由该可信服务器21a通过可信网页应用为该用户B提供相应的可信任务浏览页面,并可以在可信任务页面中为该作为算力提供方的用户B显示可信任务列表,这样,在该用户B通过用户终端23a从可信任务列表中选择某个任务时,可以将该任务作为前述特定任务,进而可以将该特定任务所在的算力池作为前述第一算力池。此时,可信服务器21a可以在确定该用户B所选择的任务所对应的算力池为第一算力池时,将该用户终端23a和第一算力池的第一标识发送给区块链节点22a,以使区块链节点22a可以基于第一标识获取区块链上的第一节点合约,以调用第一节点合约将该作为目标算力节点的用户终端23a添加至第一算力池。
可选地,可以理解的是,本申请实施例还可以在用户未选择自己所需要加入的算力池的情况下,通过该可信服务器21a自动为该用户B配置相应的算力池(例如,上述第二算力池),这样,该可信服务器21a可以将该用户终端23a和第二算力池的第二标识发送给区块链节点22a,以使区块链节点22a可以基于第二标识获取区块链上的第二节点合约,以调用第二节点合约将该作为目标算力节点的用户终端23a添加至第二算力池。
由此可见,对于作为目标算力节点的用户终端23a而言,可以为第一算力池中的算力节点,或者也可以为第二算力池中的算力节点,本申请实施例将不对作为目标算力节点的用户终端23a所属的算力池进行限定,即本申请实施例也不对该用户B通过该可信服务器21a加入算力池的具体实现方式进行限定。
进一步的,如图2所示,区块链节点22a还可以执行图2所示的步骤S15,以在接收到可信服务器21a所确定作为目标算力节点的用户终端23a时,将该用户终端23a写入该区块链20e上的第一节点合约(这里的第一节点合约具体可以为任务订单合约),进而可以在该第一节点合约中记录作为目标算力节点的该用户终端23a的节点任务状态。
可以理解的是,如图2所示,用户终端23a可以进一步执行步骤16,以从该区块链20e上获取目标任务,进而可以从该目标任务的任务参数中抽取用于唯一标识该目标可信应用的应用度量值,从而可以根据该应用度量值从该区块链20e上下载并安装由用户A所指定的执行该目标任务所需要的目标可信应用。这样,该用户终端23a当在图2所示的可信执行环境(即可信执行环境200b)中部署了该目标可信应用时,可以向图2所示的区块链节点22a发送节点任务状态更新请求,以使该区块链节点22a可以基于该节点任务状态更新请求在该第一节点合约中将用户终端23a的节点任务状态更新为已就绪状态。
可以理解的是,由于本申请实施例所涉及的可信服务器21a可以定期从区块链20e的第一节点合约中获取处于已就绪状态的算力节点,所以,当第一节点合约中所记录的该用户终端23a的节点任务状态更新为已就绪状态时,该可信服务器21a从区块链20e上所获取到的处于已就绪状态的算力节点可以包含图2所示的作为目标算力节点的用户终端23a。此时,为确保任务执行的可信性,本申请实施例提出可以通过该可信服务器21e执行图2所示的步骤S17,以对用于执行目标任务的用户终端23a中所部署的目标可信应用进行远程认证,进而可以在远程认证成功时,允许部署在可信执行环境200b中的目标可信应用执行目标任务。可以理解的是,本申请实施例所涉及的用户终端23a,可以进一步执行步骤S18,以在远程认证成功时,通过可信执行环境200b中所部署的目标可信应用执行目标任务,并可以将任务执行结果通过区块链节点22a写入图2所示的区块链20e。由此可见,在本申请实施例中,为确保执行可信任务所得到的任务执行结果的可信性,提出并可以将任务执行结果通过区块链节点22a写入图2所示的区块链20e,这样,对于可信服务器21a而言,可以根据区块链20e的区块链特性(流程透明性和过程可追溯性),主动从区块链20e上获取任务执行结果,并可以进一步执行图2所示的步骤S19,以将从区块链20e上所获取到的任务执行结果返回给用户A所对应的用户终端20a。与此同时,该可信服务器21a还可以一并将存储在自己平台账户中的目标资源数据一并转移给图2所示的用户终端23a。应当理解,由于本申请实施例所获取到的任务执行结果具有较高的可信性,且用户终端20a与用户终端23a在不直接进行数据交互的情况下,通过该可信服务器21a进一步进行数据转移时,可以从有效地提升数据转移的安全性。
其中,可以理解的是,如图2所示的用于作为目标算力节点的用户终端23a所对应的执行环境,可以包含普通执行环境和可信执行环境(又称安全环境)。
其中,普通执行环境可以指可信执行环境之外的环境,可信执行环境是在该用户终端23a中单独隔离出来的执行环境,对于一些需要保密的数据(如数据密钥、通过数据密钥所解密得到的业务数据等)就可以存储在该可信执行环境200b中,且对该需要保密的数据的相关处理也可以在可信执行环境200b中执行。应当理解,当该目标可信应用运行在可信执行环境200b中时,需要该目标可信应用进行可信计算的业务数据,以及通过目标可信应用对该业务数据进行具体任务处理的流程都是保密的。
其中,可以理解的是,在本申请实施例中,普通执行环境中可以部署普通应用,这里的普通应用可以包含但不限于视频应用、直播应用、社交应用、即时通信应用、游戏应用、音乐应用、购物应用、小说应用、浏览器,在此不再进行一一举例。同理,可以理解的是,在与该普通执行环境对应的可信执行环境中所部署的可信应用(即前述目标可信应用),也可以包含但不限于视频应用、直播应用、社交应用、即时通信应用、游戏应用、音乐应用、购物应用、小说应用、浏览器,在此不再进行一一举例。
其中,可信服务器21a将目标任务、目标可信应用以及目标资源数据上链至区块链20e的具体过程、根据第一算力池和第二算力池确定目标算力节点的具体过程、以及对部署在用户终端23a中目标可信应用进行远程认证的具体过程,可以参见图3-图10所对应实施例。
进一步的,请参见图3,图3是本申请提供的一种基于区块链的数据处理方法的流程示意图。如图3所示,该方法可以由可信任务发布平台中的可信服务器执行,这里的可信服务器可以为上述图2所对应实施例中的可信服务器21a,如图3所示,该方法至少可以包括步骤S101-步骤S104。
步骤S101,获取任务发布方通过发布终端上传的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据,将目标任务、目标可信应用、以及目标资源数据发送给与区块链相关联的区块链节点,以使区块链节点将目标可信应用、目标任务、以及目标资源数据上链至区块链;
其中,可信业务发布平台用于为任务发布方所使用的发布终端提供可信页面;可信页面包含用于上传目标可信应用的第一可信页面、用于发布目标任务的第二可信应用以及用于转移目标资源数据的第三可信页面;区块链上的节点合约包含可信应用合约和可信任务合约;此时,可信服务器执行步骤S101的具体过程可以描述为:可信服务器可以在获取到任务发布方通过发布终端上的第一可信页面上传的目标可信应用时,构建用于将目标可信应用上链至区块链的应用上链请求,将应用上链请求发送给区块链节点,以使区块链节点基于应用上链请求将目标可信应用所对应的应用上传交易写入区块链上的可信应用合约;进一步的,可信服务器可以在获取到任务发布方通过发布终端上的第二可信页面发布的目标任务时,构建用于将目标任务上链至区块链的任务上链请求,将任务上链请求发送至区块链节点,以使区块链节点基于任务上链请求将目标任务所对应的任务发布交易写入区块链上的可信任务合约;进一步的,可信服务器可以在获取到任务发布方通过发布终端上的第三可信页面转移的目标资源数据时,构建用于将目标资源数据上链至区块链的资源上链请求,将资源上链请求发送至区块链节点,以使区块链节点基于资源上链请求将目标资源数据所对应的第一资源转移交易写入区块链,且在可信任务合约中将目标任务的任务状态更新为已转移状态。
为便于理解,进一步的,请参见图4,图4是本申请实施例提供的一种将目标可信应用、目标任务以及目标资源数据上链至区块链的场景示意图。其中,图4所示的可信任务发布平台4b为TEE任务发布平台。应当理解,有可信算力需求的用户(例如,图4所示的任务发布方)可以通过该可信任务发布平台4b发布相应可信任务所对应的业务,该业务所对应的数据可以为上述业务数据。
其中,可以理解的是,这里的业务可以包含但不限于视频推荐业务、音频推荐业务、广告推荐业务以及游戏推荐业务。应当理解,本申请实施例可以将任务发布方通过该可信任务发布平台4b所发布的可信任务统称为目标任务,这里的目标任务可以为图4所示的计算任务P2。此外,如图4所示,由任务发布方所指定的执行该计算任务P2所需要的可信应用为图4所示的可信应用P1,且该任务发布方为执行该计算任务P2所愿意支付的最大佣金为图4所示的资源数据P3。为便于理解,本申请实施例可以将执行任务P2所需要的可信应用P1称之为目标可信应用,并将执行该计算任务P2所需要的资源数据P3称之为目标资源数据。
应当理解,如图4所示的通过发布终端4a、可信任务发布平台4b和区块链节点4c将目标可信应用、目标任务以及目标资源数据上链至区块链的整个协作过程即为上述任务发布协作流程,即该任务发布协作流程具体可以包含发布终端通过可信网页应用41a与可信服务器41b进行数据交互的协作过程、还包含该可信服务器41b与区块链节点4c进行数据交互的另一协作过程。
具体的,如图4所示,任务发布方可以通过发布终端4a中的可信页面,向可信服务器41b上传目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据。这里的可信页面具体可以包含用于上传目标可信应用(即可信应用P1)的第一可信页面、用于发布目标任务(即计算任务P2)的第二可信应用以及用于转移目标资源数据(即资源数据P3)的第三可信页面。
其中,具体的,如图4所示的任务发布方通过可信应用开发者所开发的目标可信应用可以为图4所示的可信应用P1,且该任务发布方所需要上传的目标任务为图4所示的计算任务P2。为便于理解,这里以计算任务P2(即上述业务)为视频推荐业务为例,以阐述该可信任务发布平台与任务发布方与算力提供方之间的关联关系。如图4所示的可信任务发布平台4b中包含可信网页应用41a、可信服务器41b。其中,这里的可信网页应用41a为该可信服务器41b的前端,即这里的可信网页应用41a可以用于为图4所示的任务发布方提供相应的可信网页(也可以称之为可信页面)。
其中,如图4所示,当任务发布方通过该可信任务发布平台4b上传的可信应用P1为执行上述视频推荐业务的目标可信应用时,该任务发布方可以通过该可信任务发布平台4b中的可信网页应用41a所提供的可信网页(即图4所示的第一可信网页)向节点服务器41b上传该可信应用P1。应当理解,这里的可信应用P1为任务发布方通过应用开发者(即TEE应用开发者)所开发、且在该发布终端4a的TEE环境中编译所得到的可信应用,这意味着由该应用开发者(即TEE应用开发者)所开发的可信应用的可信应用程序,需要预先在该发布终端4a的本地TEE环境进行编译处理之后才可以得到图4所示的可信应用P1。应当理解,本申请实施例可以将用于标识该可信应用P1的度量值称之为应用度量值,这里的应用度量值可以为该可信应用的可信应用程序所对应的程序哈希值;可选地,这里的应用度量值还可以为该可信应用的可信应用程序的版本号所对应的版本哈希值。这里将不对用于标识该可信应用P1的应用度量值的具体度量形式进行限定。应当理解,如图4所示,可信服务器41b还可以将通过可信网页应用41a所获取到的可信应用P1(即用于执行目标任务所需的目标可信应用)上链至图4所示的区块链节点4c所维护的区块链。
其中,可以理解的是,任务发布方在获取到发布终端4a通过可信网页应用41a所上传的可信应用P1(即用于执行目标任务所需的目标可信应用)时,还可以一并获取到该可信应用P1的应用参数,这里的应用参数可以包含该可信应用P1的应用度量值。所以,当该可信服务器41b将获取到的可信应用P1(即用于执行目标任务所需的目标可信应用)发送给图4所示的区块链节点4c时,还可以一并将该可信应用P1的应用参数发送给图4所示的区块链节点4c,以使该区块链节点4c在将可信应用P1(即用于执行目标任务所需的目标可信应用)写入区块链时,还可以一并将该可信应用P1的应用参数写入该区块链。
具体的,可信服务器41b可以在获取到发布终端4a所发送的应用处理请求时,可以从该应用处理请求中获取可信应用P1(这里具体指该可信应用P1的可信应用程序)和该可信应用P1的应用度量值,进而可以根据获取到的可信应用P1(这里具体指该可信应用P1的可信应用程序)和该可信应用P1的应用度量值构建该可信应用P1(即前述目标可信应用)对应的应用上传交易;进一步的,可信服务器41b可以将构建的应用上传交易写入应用上链请求,以将应用上链请求发送至区块链节点4c,以使区块链节点4c在将包含应用上传交易的第一区块写入区块链时,一并将该应用上传交易中所记录的可信应用P1以及该可信应用P1的应用度量值录入该区块链上的可信应用合约。比如,可以在该可信应用合约中,以键值对的形式对可信应用P1以及该可信应用P1的应用度量值进行存储。具体的,区块链节点4c可以将该可信应用P1的应用度量值作为存储时的KV(即Key-Value)键值对中的键,并可以将该可执行的可信应用P1作为KV键值对中的值。
其中,如图4所示,当任务发布方通过该可信任务发布平台4b发布的计算任务P2(即上述业务)为视频推荐业务时,该任务发布方可以通过该可信任务发布平台4b中的可信网页应用41a所提供的可信网页(即图4所示的第二可信网页)上传该视频推荐业务(即作为目标任务的计算任务P2),此时,部署在可信任务发布平台4b中的可信服务器41b可以通过该可信网页应用41a获取到任务发布方所对应的发布终端4a所上传的视频推荐业务(即作为目标任务的计算任务P2)。如图4所示,进一步的,该可信服务器41b可以将通过可信网页应用41a所获取到的视频推荐业务(即作为目标任务的计算任务P2)上链至图4所示的区块链节点4c所维护的区块链。
其中,可以理解的是,该可信服务器41b在接收到发布终端4a所上传的视频推荐业务(即作为目标任务的计算任务P2)时,还可以一并接收到的作为目标任务的计算任务P2的任务参数,应当理解,这里的计算任务P2和计算任务P2的任务参数均为来源于任务发布方通过发布终端4a中安装的可信网页应用41a发送的任务处理请求。
此外,可以理解的是,该可信服务器41b在将该计算任务P2发送给区块链节点4c,也会一并将该计算任务P2的任务参数一并发送给区块链节点4c。这意味着该区块链节点4c在将计算任务P2录入区块链上的可信任务合约时,会一并将该任务参数录入该可信任务合约。这里的计算任务P2和计算任务P2的任务参数可以统称为该计算任务P2的任务关键信息,进而可以基于计算任务P2的任务名以及计算任务P2的任务关键信息构建计算任务P2对应的任务发布交易,以将该任务发布交易写入任务上链请求,从而可以将任务上链请求发送至区块链节点4c,以使区块链节点4c在将包含任务发布交易的第二区块写入区块链时,将任务发布交易中所记录的计算任务P2的任务名和计算任务P2的任务关键信息,一并录入区块链上的可信任务合约。
具体的,区块链节点4c可以在该可信任务合约中,以键值对的形式对计算任务P2以及该计算任务P2的任务关键信息进行存储。具体的,区块链节点4c可以将该计算任务P2的任务名作为存储时的KV键值对中的键,并可以将计算任务P2的任务关键信息作为KV键值对中的值。
其中,可以理解的是,这里的任务参数可以包含计算任务P2的任务名、该计算任务P2的任务描述信息、第一加密数据密钥、加密后的业务数据、执行该计算任务P2所需的可信应用P1的应用度量值、执行计算任务P2所需的算力度量值(即该任务发布方所需的算力需求)、以及执行该计算任务P2所需支付的资源数据P3。
其中,可以理解的是,任务发布方可以通过密钥生成算法在该发布终端4a中生成用于对前述业务数据进行加密的数据密钥,进而可以通过该生成的数据密钥对前述业务数据进行加密处理,得到前述加密后的业务数据。应当理解,这里的业务数据由于后续需要在通过可信服务器41b所筛选出的目标算力节点中进行可信计算(也可以称之为保密计算),故而为确保在目标算力节点中所获取到的业务数据的安全性,本申请实施例还需要在发布终端4a与可信服务器41b建立第一通信连接时,通过第一通信密钥对该用于对业务数据进行加密的数据密钥进行加密处理,以得到前述第一加密数据密钥。其中,可以理解的是,这里的第一通信密钥是发布终端4a通过可信任务发布平台4b的平台公钥信息以及任务发布方的发布私钥信息所确定的。此外,与该第一通信密钥互为非对称密钥的第二通信密钥是可信服务器41b通过任务发布方的发布公钥信息和可信任务发布平台4b的平台私钥信息所确定的;第一通信密钥和第二通信密钥均属于第一共享通信密钥,且第一共享通信密钥是发布终端4a在与可信服务器41b建立第一通信连接时,按照第一密钥交换协议所协商得到的;所以,为避免上述基于区块链的数据处理系统中的除可信服务器41b之外的其他终端非法获取到上述数据密钥,该可信服务器41b可以在与目标算力节点建立第二通信连接的情况下,进一步通过第二通信密钥对发布终端4a发送来的第一加密数据密钥进行解密,以通过第四通信密钥对该解密得到的数据密钥进行加密处理,以得到第二加密数据密钥。这样,在后续该可信服务器41b对目标算力节点中部署的可信应用P1进行远程认证之后,可以将该第二加密数据密钥发送给该目标算力节点中的可信应用P1,以使该可信应用P1可以通过与该第四通信密钥互为非对称密钥的第三通信密钥对第二加密数据密钥进行解密处理,进而可以在该可信应用P1中通过解密得到的数据密钥,对从链上获取到的计算任务P2的任务参数中的加密后的业务数据进行解密。
其中,如图4所示,可信服务器41a可以接收任务发布终端通过第三可信页面发送的资源处理请求,该资源处理请求中携带该任务发布方在图4所示的第三可信页面中向平台账户所支付的资源数据P3。这样,该可信服务器41a在获取到发布终端4a通过可信网页应用41a所上传的资源数据P3(即用于执行目标任务所需的目标资源数据)时,可以进一步将该资源数据P3存储至该可信任务发布平台4b所对应的平台账户,进而可以基于该资源数据P3和用于存储该资源数据P3的平台账户构建资源数据P3所对应的第一资源转移交易。进一步的,可信服务器41b还可以在将第一资源转移交易写入资源上链请求时,将该资源上链请求发送至图4所示的区块链节点4c,以使区块链节点4c可以在将包含第一资源转移交易的第三区块写入区块链时,进一步从可信任务合约中读取目标任务的任务名,且将目标任务的任务名所关联的目标任务的任务状态由待转移状态更新为已转移状态。
其中,可以理解的是,如图4所示,该区块链节点4c所维护的区块链可以用于存储可信应用P1、存储视频推荐业务(即作为目标任务的计算任务P2),存储执行该视频业务(即作为目标任务的计算任务P2)所需要支付的资源数据P3。其中,可以理解的是,这里的计算任务P2可以添加至图4所示的可信任务列表。这里的资源数据P3具体可以为任务发布方请求执行该视频推荐业务所愿意支付的最大佣金。
此外,还可以理解的是,该区块链节点4c所维护的区块链还可以用于存储该计算任务P2的任务认领信息,这里的任务认领信息用于描述该可信服务器41a为该计算任务P2所确定的目标算力节点。比如,这里的目标算力节点可以为可信服务器41a为该计算任务P2所智能配置的算力节点;可选地,又比如,这里的目标算力节点还可以为可信服务器41a所获取到的在可信任务列表中选取的该计算任务P2的某个算力提供方所对应的算力节点。此外,如图4所示,该区块链节点4c所维护的区块链还可以用于存储该目标算力节点执行该计算任务P2之后所得到的任务执行结果。
那么,对于目标任务为上述视频推荐业务而言,该可信服务器41b所筛选出的目标算力节点能够通过TEE可信计算实现精准视频推荐。比如,可以通过该目标算力节点中的视频推荐算法在自身所运行的TEE可信执行环境中,准确计算出与该视频推荐业务相符的用户进行视频推荐,进而可以将计算出的用于进行视频推荐的用户作为任务执行结果上链至该区块链节点4c所维护的区块链。
应当理解,对于上述业务中除视频推荐业务之外的其他业务而言,将其他业务作为目标任务进行任务上链的具体过程,可以参见上述将视频推荐业务作为目标任务进行任务上链的具体过程的描述,这里将不再继续进行赘述。
其中,可以理解的是,可信服务器41b获取与第二可信页面相关联的任务处理请求的具体过程可以描述为:可信服务器41b可以在通过可信任务发布平台中的可信网页应用与在发布终端建立第一通信连接时,基于第一通信连接接收任务发布方通过发布终端中的可信网页应用发送的与第二可信页面相关联的加密任务处理请求;应当理解,这里的加密任务处理请求为发布终端通过第一通信密钥对携带上述任务参数的任务处理请求进行加密后所得到的;进一步的,可信服务器41b可以通过第二通信密钥对加密任务处理请求进行解密处理,得到携带任务参数的任务处理请求。
步骤S102,在任务发布方所指定的任务执行时长内,接收区块链节点返回的第一算力池和第二算力池,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点;
其中,与目标任务相关联的任务参数包括目标任务的任务描述信息;其中,任务描述信息包含由任务发布方所指定的任务执行时长以及执行目标任务所需的目标资源数据存储在可信任务发布平台所提供的平台账户中的资源存储时长阈值;此时,可信服务器执行步骤S102的具体过程可以描述为:可信服务器可以在获取到执行目标任务所需的目标资源数据时,将目标资源数据转移至可信任务发布平台所提供的平台账户中,且在可信任务发布平台中累计用于存储目标资源数据的平台账户的资源存储时长;进一步的,可信服务器可以在检测到资源存储时长未达到资源存储时长阈值时,确定资源存储时长处于任务发布方所指定的任务执行时长内;进一步的,可信服务器可以在任务执行时长内,生成用于向区块链节点发送的算力获取请求,将算力获取请求发送给区块链节点,以使区块链节点基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池;进一步的,可信服务器可以在接收到区块链节点返回的第一算力池和第二算力池时,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点。
其中,可以理解的是,这里的区块链节点可以用于将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;节点任务状态包含已就绪状态;已就绪状态是区块链节点在确定目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
为便于理解,进一步的,请参见图5,图5是本申请实施例提供的一种筛选目标算力节点的场景示意图。如图5所示的算力节点5a可以为可信服务器(即图5所示的可信服务器51b)从第一算力池所包含的算力节点和第二算力池所包含的算力节点中所筛选出的用于执行前述目标任务(例如,上述图4所示的计算任务P2)的目标算力节点。
如图5所示,可信服务器5b可以在获取到执行目标任务所需的目标资源数据时,将目标资源数据转移至可信任务发布平台所提供的平台账户中,且可以在可信任务发布平台中累计用于存储目标资源数据的平台账户的资源存储时长;进一步的,可信服务器5b可以在检测到资源存储时长未达到资源存储时长阈值时,确定资源存储时长处于任务发布方所指定的任务执行时长内;这样,该可信服务器可以在任务执行时长内,生成用于向区块链节点5c发送的算力获取请求,并可以将该算力获取请求发送给区块链节点5c,以使区块链节点5c基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池。
由此可见,当任务发布方向该可信任务发布平台5b支付了用于执行该目标任务所需要的佣金(即上述目标资源数据)之后,该可信服务器51b会在该任务发布方所指定的时间(即前述任务执行时长)内,自动从第一算力池和第二算力池中筛选出符合要求的算力节点作为目标算力节点。比如,可以根据算力是否符合上述任务发布方所指定的任务参数中的算力需求、算力节点是否空闲以及算力节点在单位时间内所期待的价格是否最优等等来筛选出符合要求的算力节点作为目标算力节点。比如,单位时间内所期待的价格越低,则执行该任务所需要花费的佣金就会越低,进而可以尽可能地在任务发布方所支付的目标资源中缩减有限的任务计算成本(本申请实施例可以将前述任务执行时长与单位时间内所期待的价格之间的乘积作为这里的任务计算成本)。
比如,如图5所示,可信服务器51b可以在任务时长内智能筛选出算力提供方。具体的,如图5所示,该可信服务器51b可以在前述任务执行时长内,执行步骤3.1,以调用区块链上的第一节点合约获取第一算力池,以获取该第一算力池所包含的算力节点。在本申请实施例中,可以将从第一算力池中所获取到的算力节点确定为第一算力节点。此外,如图5所示,可信服务器51b还可以在前述任务执行时长内,一并执行步骤3.2,以调用区块链上的第二节点合约获取第二算力池,以获取该第二算力池所包含的算力节点。在本申请实施例中,可以将从第二算力池中所获取到的算力节点确定为第二算力节点。这样,该可信服务器51b可以进一步在从区块链节点5c返回的第一算力节点和第二算力节点中,筛选出与执行目标任务所需的算力度量值相符的算力节点,并可以将筛选到的与算力度量值相符的算力节点作为候选算力节点,比如,这里的候选算力节点可以包含图5所示的算力节点5a;进一步的,该可信服务器51b可以从候选算力节点中,筛选执行目标任务所需的目标资源数据相符的算力节点,将筛选到的与目标资源数据相符的候选算力节点作为用于执行目标任务的目标算力节点。
此外,可选地,本申请实施例所涉及的可信服务器51b还可以在接收到区块链节点5c返回的第一算力池和第二算力池时,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,进而可以继续执行步骤3.3,以将目标算力节点发送给区块链节点5c时,调用该区块链节点5c上的第一节点合约存储由该可信服务器所筛选的目标算力节点所对应的算力提供方。具体的,可信服务器51b可以从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,筛选与执行目标任务所需的算力度量值相符的算力节点,并可以将筛选到的与算力度量值相符的算力节点作为候选算力节点;进一步的,可信服务器51b可以从候选算力节点中,筛选执行目标任务所需的目标资源数据相符的算力节点,并可以将筛选到的与目标资源数据相符的候选算力节点作为用于执行目标任务的目标算力节点,这里的目标算力节点可以为图5所示的算力节点5a。
应当理解,在本申请实施例中,有闲置算力的每个算力提供方(例如,有闲余TEE算力的云服务厂商、TEE算力提供商和个人)均可以将算力注册到可信任务发布平台5b。如图5所示的可信任务发布平台5b可以包含用于为算力提供方提供可信网页的可信网页应用51a,还可以包含与该可信网页应用51a相关联的可信服务器51b。
其中,如图5所示的算力节点5a与可信任务发布平台5b进行数据交互的协作过程和可信任务发布平台5b与区块链节点5c进行数据交互的协作过程即为上述算力注册协作过程。其中,算力节点5a与可信任务发布平台5b进行数据交互的协作过程是指有闲置算力的算力提供方通过算力节点5a将闲置算力注册到该可信任务发布平台5b的协作过程。其中,可信任务发布平台5b与区块链节点5c进行数据交互的协作过程是指可信服务器51b将注册到该可信任务发布平台5b的算力提供方所对应的算力节点上链至区块链节点5b的协作过程。
其中,如图5所示,算力提供方所对应的算力节点5a在集成安装了该可信网页应用51a的情况下,可以通过该可信网页应用51a为该算力提供方提供加入特定算力池的网页。这里的特定算力池(即上述特定任务所对应的算力池)可以为图5所示的第一算力池,该可信网页应用51a所提供的用于帮助算力提供方加入特定算力池的网页可以为第一算力池加入页面。如图5所示,该算力提供方可以通过算力节点5a执行步骤2a.1,即该算力提供方可以在该第一算力池加入页面中勾选自己所需要加入的第一算力池,进而可以执行步骤2a.2,通过可信服务器51b确定该算力提供方所选择加入的算力池为作为特定算力池的第一算力池。
由此可见,可以理解的是,可信服务器51b可以接收运行在可信执行环境中的算力节点5a发送的第一算力注册请求;这里的第一算力注册请求可以为算力节点5a响应于算力提供方针对第一算力池加入页面的触发操作所生成的;进一步的,可信服务器51b可以从第一算力注册请求中获取算力提供方所触发的第一算力池加入页面中的第一标识,进而可以基于第一标识确定算力提供方所请求进行算力注册的算力池为第一算力池;进一步的,可信服务器51b可以将算力节点5a和第一算力池的第一标识发送给区块链节点5c,以使区块链节点5c基于第一标识获取区块链上的第一业务合约,进而可以调用第一业务合约将该算力节点5a添加至第一算力池。
可以理解的是,图5所示的可信服务器51b运行在可信执行环境中,该可信服务器51b可以用于通过可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供算力池加入页面;这里的算力池加入页面可以包含用于请求加入第一算力池的第一算力池加入页面(即图5所示的可信网页应用51a所提供的加入特定算力池的网页),用于请求加入第二算力池的第二算力池加入页面(即图5所示的可信网页应用51a所提供的加入通用算力池的网页),以及用于通过可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供可信任务浏览页面(即图5所示的可信网页应用51a所提供的任务清单网页);
可选地,如图5所示,算力提供方所对应的算力节点5a在集成安装了该可信网页应用51a的情况下,还可以通过该可信网页应用51a为该算力提供方提供加入通用算力池的网页。这里的通用算力池可以为图5所示的第二算力池,该可信网页应用51a所提供的用于帮助算力提供方加入通用算力池的网页可以为前述第二算力池加入页面。如图5所示,该算力提供方可以通过算力节点5a执行步骤2b.1,即该算力提供方可以通过算力节点5a调用可信网页应用51a,以使该可信网页应用51a可以在该第二算力池加入页面中勾选自己所需要加入的第二算力池,进而可以执行步骤2b.2,以通过可信服务器51b确定该算力提供方所选择加入的算力池为作为通用算力池的第二算力池。
由此可见,可以理解的是,可信服务器51b可以接收运行在可信执行环境中的算力节点5a通过可信网页应用51a发送的第二算力注册请求;这里的第二算力注册请求为算力节点5a响应于算力提供方针对第二算力池加入页面的触发操作所生成的;进一步的,可信服务器51b可以从第二算力注册请求中获取算力提供方所触发的第二算力池加入页面中的第二标识,进而可以基于第二标识确定算力提供方所请求进行算力注册的算力池为第二算力池;进一步,可信服务器51b可以将该算力节点5a和第二算力池的第二标识发送给区块链节点5c,以使区块链节点5c可以基于第二标识获取区块链上的第二业务合约,以调用第二业务合约将目标算力节点添加至第二算力池。
如图5所示,可以理解的是,这里的可信任务浏览页面可以用于为待进行注册算力的算力节点提供可信任务列表,即图5所示的算力提供方可以通过算力节点5a执行步骤1.1,进而可以在该可信任务浏览页面中进行任务浏览,此外,可以理解的是,该可信任务浏览页面是由该可信服务器51b通过区块链节点5c从区块链上的可信任务合约中所拉取到的可信任务列表而确定的;这里的待进行注册算力的算力节点中可以包含图5所示的算力节点5a。如图5所示,算力提供方可以通过可信网页应用51a执行步骤1.2,以调用可信服务器51b下载可信任务,此时,该可信服务器51b可以进一步执行步骤1.3,以调用区块链上的可信任务合约,获取该可信任务合约中所记录的可信任务列表,这样,算力提供方可以在图5的可信网页应用51a所提供的任务清单网页中浏览该可信任务列表中的任务。
由此可见,这里的算力提供方还可以在浏览任务清单后,手动选择特定任务,以加入该特定任务所对应的特定算力池(即前述第一算力池),此时,该算力提供方为愿意为自己所选取的任务(例如,前述计算任务P2)提供算力服务。这意味着可信服务器51b可以接收运行在可信执行环境中的目标算力节点发送的算力任务浏览请求;这里的算力任务浏览请求为算力节点5a响应于算力提供方针对可信任务浏览页面中的可信任务列表的触发操作所生成的;进一步的,可信服务器51b可以从算力任务浏览请求中获取算力提供方所触发的可信任务列表中的目标任务的任务名,这里的目标任务的任务名可以为前述计算任务P2的任务名。进一步的,可信服务器51b可以在确定目标任务的任务名所在的算力池为前述第一算力池时,将算力节点5a和第一算力池的第一标识发送给区块链节点5c,以使区块链节点5c基于第一标识获取区块链上的第一节点合约,调用第一节点合约将目标算力节点添加至第一算力池。
如图5,可信服务器51b可以为算力提供方提供选定Tee任务的任务选取服务,还可以由该可信任务发布平台5b自动撮合生成相应的订单,最终该可信服务器51b可以在由算力提供方提供相应的运算服务之后,使算力提供方可以获得上述目标资源数据所对应的报酬(即前述任务发布方所实际支付的任务执行成本),且任务发布方通过该可信任务发布平台5b获取由第三方算力所计算获得的计算结果(这里的计算结果可以为算力提供方执行前述目标任务后所得到的任务计算结果)。
步骤S103,在从区块链上拉取到处于已就绪状态的目标算力节点时,对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;
其中,可信服务器和目标算力节点均运行在可信执行环境中;目标算力节点中包含在可信执行环境中与部署的目标可信应用相关联的可信代理组件;可信服务器中包含部署在可信执行环境中的代理远程认证组件;代理远程认证组件用于对可信代理组件进行远程认证;此时,可信服务器执行步骤S103的具体过程可以描述为:可信服务器可以在从区块链上拉取到处于已就绪状态的目标算力节点时,建立可信服务器中的代理远程认证组件与目标算力节点中的可信代理组件之间的第二通信连接;进一步的,可信服务器可以基于第二通信连接控制代理远程认证组件向目标算力节点中的可信代理组件发起远程认证请求,以使目标算力节点根据远程认证请求,将在可信执行环境中部署的目标可信应用的本地报告添加至部署在可信执行环境中的可信代理组件的远程报告中,得到可信代理组件的环境应用验证报告;进一步的,可信服务器可以接收目标算力节点上传的环境应用验证报告,基于环境应用验证报告对可信代理组件和目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点中的可信代理组件调用目标可信应用,以通过目标可信应用执行目标任务。
为便于理解,进一步的,请参见图6,图6是本申请实施例提供的一种进行远程认证的场景示意图。如图6所示的目标算力节点6a可以为可信服务器61b从上述第一算力池所包含的第一算力节点和第二算力池所包含的第二算力节点中所确定出的贴合任务发布方需要的算力节点。如图6所示的目标算力节点6a所在的运行环境包含图6所示的可信执行环境600a。该可信执行环境600a中部署有图6所示的可信应用P1以及与该可信应用P1相关联的可信代理组件。如图6所示的可信任务发布平台6b中部署有可信服务器61b,该可信服务器61b所在的运行环境包含图6所示的可信执行环境600b。该可信执行环境600b中部署有图6所示的用于对前述可信应用P1进行远程认证的代理远程认证组件。
其中,如图6所示的目标算力节点6a与区块链节点6c进行数据交互的协作过程、可信服务器61b与区块链节点6c进行数据交互的协作过程以及该可信服务器61b与目标算力节点6a进行数据交互的协作过程即为上述远程认证协作流程。
如图6所示,对于目标算力节点6a而言,该目标算力节点6a可以通过可信代理组件执行图6所示的步骤4.1,以从区块链节点6c所维护的区块链上的可信任务合约中下载与算力提供方相关联的目标任务(这里的目标任务可以为图6所示的计算任务P2)。即这里的目标任务可以为算力提供方手动选取的任务,也可以为可信服务器61b根据算法所自动为该算力提供方所配置的任务。
应当理解,在一个或者多个实施例中,该目标算力节点6a可以定期从区块链上的可信任务合约中拉取与算力提供方相关联的任务列表,并可以在与该算力提供方相关联的任务列表中将尚未执行的任务按顺序执行。可以理解的是,这里的任务列表为上述可信任务列表中与算力提供方相关联的任务所构成的子任务列表,即上述可信任务列表中还包括与算力提供方无关的其他任务。可以理解的是,对于该任务列表中的各个任务(例如,任务T1、任务T2和任务T3)而言,可以通过不同的可信应用来执行这些任务、比如,可以通过可信应用A1来执行任务T1、可以通过可信应用A2来执行任务T2以及可以通过可信应用A3来执行任务T3。为便于理解,这里以可信应用A1为图6所示的部署在目标算力节点6a中的可信应用P1为例,此时,该任务T1可以为图6所示的从区块链上下载到的计算任务P2。
进一步的,可以理解的是,目标算力节点6a在执行任务列表中的目标任务(比如,计算任务P2)时,可以获取该目标任务(比如,计算任务P2)的任务关键信息,进而可以从任务关键信息所包含的任务参数中,抽取用于执行该目标任务(比如,计算任务P2)的目标可信应用的应用参数,这里的应用参数包含用于唯一标识该可执行的可信应用程序的应用度量值,这意味着此时,该目标算力节点可以根据该应用度量值从图6所示的可信应用合约中获取该目标任务所对应的目标可信应用,并可以在该可信执行环境600a中部署从链上所下载的可信应用P1。应当理解,当该目标算力节点6a在可信执行环境600a中部署好该可信应用P1时,可以执行步骤4.3,以更新链上任务订单合约中的节点任务状态为已就绪状态,即此时,该目标算力节点6a在执行步骤4.3之后,可以以交易请求的方式通知图6所示的区块链节点6c更新图6所示的第一节点合约中的目标算力节点6a的节点任务状态为已就绪状态。
进一步的,如图6所示,部署在可信服务器61b中的代理远程认证组件可以定期从区块链节点6c所维护的区块链链上获取当前处于已就绪状态的算力节点。应当理解,在当前处于已就绪状态的算力节点可以包含图6所示的目标算力节点6a时,该可信服务器61b可以从区块链上拉取到处于已就绪状态的目标算力节点,进而可以在与目标算力节点6a建立第二通信连接时,通过运行在可信执行环境600b中的代理远程认证组件执行步骤5.1,以向目标算力节点6a中的可信代理组件发起远程认证请求。此时,目标算力节点6a可以控制可信代理组件根据远程认证请求进一步执行步骤5.2,以将在可信执行环境600a中部署的目标可信应用(即可信应用P1)的本地报告添加至部署在可信执行环境600a中的可信代理组件的远程报告中,进而可以得到可信代理组件的环境应用验证报告。进一步的,可信服务器61b中的代理远程认证组件可以接收目标算力节点上传的环境应用验证报告,并可以基于环境应用验证报告对可信代理组件和目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点中的可信代理组件调用目标可信应用,以通过目标可信应用执行目标任务。
其中,可以理解的是,在可信服务器61b与目标算力节点6a建立第二通信连接时,该目标算力节点6a中的可信代理组件可以通过上述第三通信密钥对前述环境应用验证报告进行加密处理,进而可以将加密处理后的环境应用验证报告发送给可信服务器61b。此时,可信服务器61b可以通过与该第三通信密钥互为非对称密钥的第四通信密钥对该加密处理的环境应用验证报告进行解密处理,以解密得到前述环境应用验证报告。可以理解的是,本申请实施例可以在通过第四通信密钥解密得到该环境应用验证报告时,认为发送该环境应用验证报告的目标算力节点6a的可信执行环境600a为安全运行环境,进而可以间接确定运行在该可信执行环境600a中的可信应用P1和可信代理组件的安全性,以实现对该可信应用P1和可信代理组件的远程认证。
可选地,可以理解的是,在可信服务器与发布终端建立第一通信连接时,可信服务器(例如,图6所示的可信服务器61b)可以基于前述第一通信连接获取目标任务的任务参数,并可以从任务参数中获取与发布终端的第一通信密钥相关联的第一加密数据密钥以及加密后的业务数据;其中,第一加密数据密钥是发布终端通过第一通信密钥,对在发布终端中生成的数据密钥进行加密处理后所得到的;加密后的业务数据为发布终端通过数据密钥对任务发布方所请求执行的业务数据进行加密处理后所得到的;第一通信密钥是发布终端通过可信任务发布平台的平台公钥信息以及任务发布方的发布私钥信息所确定的;与第一通信密钥互为非对称密钥的第二通信密钥是可信服务器通过任务发布方的发布公钥信息和可信任务发布平台的平台私钥信息所确定的;第一通信密钥和第二通信密钥均属于第一共享通信密钥,且第一共享通信密钥是发布终端在与可信服务器建立第一通信连接时,按照第一密钥交换协议所协商得到的;这样,可信服务器(例如,图6所示的可信服务器61b)可以在与目标算力节点(例如,图6所示的目标算力节点6a)建立第二通信连接时,基于第二通信连接向目标算力节点(例如,图6所示的目标算力节点6a)发送第二密钥交换协议和可信任务发布平台的平台公钥信息,以使目标算力节点(例如,图6所示的目标算力节点6a)中的可信代理组件基于第二密钥交换协议获取目标算力节点(例如,图6所示的目标算力节点6a)对应的算力提供方的算力公钥信息和算力公钥信息对应的算力私钥信息,且基于平台公钥信息和算力私钥信息,生成目标算力节点(例如,图6所示的目标算力节点6a)对应的第三通信密钥,并将第三通信密钥存储至目标可信应用(即图6所示的可信应用P1);进一步的,可信服务器(例如,图6所示的可信服务器61b)可以通过代理远程认证组件接收目标算力节点(例如,图6所示的目标算力节点6a)中的可信代理组件返回的算力公钥信息,按照第二密钥交换协议将由算力公钥信息和可信任务发布平台的平台私钥信息所确定通信密钥作为第四通信密钥;第四通信密钥和第三通信密钥为可信服务器(例如,图6所示的目标算力节点6a)和目标算力节点(例如,图6所示的目标算力节点6a)按照第二密钥交互协议所协商得到的第二共享通信密钥;第四通信密钥为第三通信密钥的非对称密钥;进一步的,可信服务器(例如,图6所示的可信服务器61b)可以在远程认证成功,且通过第二通信密钥对第一加密数据密钥进行解密处理,得到数据密钥时,控制代理远程认证组件通过第四通信密钥对数据密钥进行加密处理,得到第二加密数据密钥,以进一步执行图6所示的步骤6.1,即图6所示的可信服务器61b可以将第二加密数据密钥和加密后的业务数据发送给目标算力节点(例如,图6所示的目标算力节点6a),以使目标算力节点(例如,图6所示的目标算力节点6a)可以通过可信代理组件执行步骤6.2,以将第二加密数据密钥发送给存储有第三通信密钥的目标可信应用(即图6所示的可信应用P1),以在目标可信应用(即图6所示的可信应用P1)中通过第三通信密钥对第二加密数据密钥进行解密处理,得到用于对加密后的业务数据进行解密处理的数据密钥;应当理解,这里的目标可信应用(即图6所示的可信应用P1)还可以用于通过解密得到的数据密钥对加密后的业务数据进行解密处理,以解密得到业务数据。
如图6所示,目标算力节点6a在通过可信应用P1执行目标任务(即计算任务P2)之后,可以得到执行该目标任务(即计算任务P2)的任务执行结果,进而可以执行图6所示的步骤7.1,以将执行该目标任务(即计算任务P2)的任务执行结果发送给区块链节点6c,以使区块链节点6c可以将执行该目标任务(即计算任务P2)的任务执行结果写入图6所示的第一节点合约,以在该第一节点合约中存储该任务执行结果,以便于后续可信服务器可以进一步执行下述步骤S104。
步骤S104,在从区块链上的第一节点合约中获取到由目标算力节点执行目标任务所得到的任务执行结果时,将任务执行结果返回至发布终端,且将目标资源数据转移至目标算力节点。
在本申请实施例中,部署在可信任务发布平台中的可信服务器在获取到任务发布方通过发布终端上传的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据时,可以将目标任务、目标可信应用、以及目标资源数据发送给与区块链相关联的区块链节点,以使区块链节点将目标可信应用、目标任务、以及目标资源数据上链至区块链。这意味着在本申请实施例中与该任务发布方提供可信页面的可信网页应用所对应的服务终端为部署在可信执行环境中的服务器(即可信服务器)。应当理解,该运行在可信执行环境中的服务器(即可信服务器)可以用于对大量闲置算力的集中管理,使得有可信算力需求的任务发布方可以通过该可信任务发布平台中的可信服务器智能筛选出安全可靠的算力节点。具体的,该可信服务器可以在该任务发布方所指定的任务执行时长内,智能从区块链上获取到第一算力池和第二算力池,进而可以在获取到的第一算力池和第二算力池中,快速且安全地筛选出有闲置算力的算力节点作为用于执行目标任务的目标算力节点,并可以将筛选出的目标算力节点发送给区块链节点,以使该区块链节点将该目标算力节点写入该区块链上的第一节点合约,并可以在第一节点合约中记录目标算力节点的节点任务状态。需要注意的是,这里的节点任务状态可以包含已就绪状态,且这里的已就绪状态是区块链节点在确定目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;应当理解,在本申请实施例中,任务发布方和算力提供方并不会直接进行数据交互,且任务发布方可以通过该可信任务发布平台中的可信服务器,将自己所请求执行的任务(即前述目标任务)和执行该任务所需要的可信应用(即前述目标可信应用)写入区块链,这样,在算力提供方所对应的目标算力节点通过该区块链确定自己需要执行的可信任务为目标任务时,可以进一步按需从区块链上下载并部署该目标任务所对应的目标可信应用,并可以在安装部署好目标可信应用时,将自己在区块链上的节点任务状态配置为已就绪状态。所以,为确保任务执行的可信性和可靠性,该可信服务器在从区块链上拉取到处于该已就绪状态的目标算力节点时,可以进一步对该目标算力节点中所部署的目标可信应用进行远程认证,进而可以在远程认证成功的情况下,允许该目标算力节点通过该目标可信应用执行目标任务。进一步的,本申请实施例为确保数据转移的安全性,该可信服务器可以在从区块链上获取到由该目标算力节点执行目标任务所得到的任务执行结果时,将该任务执行结果返回给发布终端,并可以一并将前述执行目标任务所需要的目标资源数据转移至目标算力节点,以提升数据转移的安全性。
进一步的,请参见图7,图7是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。如图7所示,该方法可以由可信任务发布平台中的可信服务器执行,这里的可信服务器可以为上述图2所对应实施例中的可信服务器21a,如图7所示,该方法至少可以包括步骤S201-步骤S210。
步骤S201,在获取到任务发布方通过发布终端上的第一可信页面上传的目标可信应用时,构建用于将目标可信应用上链至区块链的应用上链请求,将应用上链请求发送给区块链节点,以使区块链节点基于应用上链请求将目标可信应用所对应的应用上传交易写入区块链上的可信应用合约;
其中,可以理解的是,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第一可信页面;此时,可信服务器执行步骤S201的具体过程可以描述为:可信服务器可以接收任务发布方通过发布终端中的可信网页应用发送的与第一可信页面相关联的应用处理请求;其中,应用处理请求中携带任务发布方所获取到的目标可信应用以及用于标识目标可信应用的应用度量值;进一步的,可信服务器可以基于应用处理请求中所携带的目标可信应用以及应用度量值构建目标可信应用对应的应用上传交易;进一步的,可信服务器可以将应用上传交易写入应用上链请求,且将应用上链请求发送至区块链节点,以使区块链节点在将包含应用上传交易的第一区块写入区块链时,将应用上传交易中所记录的目标可信应用以及应用度量值录入区块链上的可信应用合约。
步骤S202,在获取到任务发布方通过发布终端上的第二可信页面发布的目标任务时,构建用于将目标任务上链至区块链的任务上链请求,将任务上链请求发送至区块链节点,以使区块链节点基于任务上链请求将目标任务所对应的任务发布交易写入区块链上的可信任务合约;
其中,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第二可信页面;此时,可信服务器执行步骤S202的具体过程可以描述为:可信服务器可以接收任务发布方通过发布终端中的可信网页应用发送的与第二可信页面相关联的任务处理请求;其中,任务处理请求中携带任务发布方所获取到的目标任务以及与目标任务相关联的任务参数;任务参数中包含目标任务的任务名;进一步的,可信服务器可以将任务处理请求中所携带的目标任务和任务参数作为目标任务的任务关键信息,基于目标任务的任务名以及目标任务的任务关键信息构建目标任务对应的任务发布交易;进一步的,可信服务器可以将任务发布交易写入任务上链请求,且将任务上链请求发送至区块链节点,以使区块链节点在将包含任务发布交易的第二区块写入区块链时,将任务发布交易中所记录的目标任务的任务名和目标任务的任务关键信息,录入区块链上的可信任务合约。
其中,可以理解的是,这里的任务参数具体可以包括目标任务的任务名,目标任务的任务描述信息、第一加密数据密钥、加密后的业务数据、执行目标任务所需的目标可信应用的应用度量值、执行目标任务所需的算力度量值、以及执行目标任务所需的目标资源数据;
其中,第一加密数据密钥是发布终端通过第一通信密钥,对在发布终端中生成的数据密钥进行加密处理后所得到的;加密后的业务数据为发布终端通过数据密钥对任务发布方所请求执行的业务数据进行加密处理后所得到的;第一通信密钥是发布终端通过可信任务发布平台的平台公钥信息以及任务发布方的发布私钥信息所确定的;与第一通信密钥互为非对称密钥的第二通信密钥是可信服务器通过任务发布方的发布公钥信息和可信任务发布平台的平台私钥信息所确定的;第一通信密钥和第二通信密钥均属于第一共享通信密钥,且第一共享通信密钥是发布终端在与可信服务器建立第一通信连接时,按照第一密钥交换协议所协商得到的;
应当理解,为确保可信服务器与发布终端进行数据交互的可靠性,可信服务器获取与第二可信页面相关联的任务处理请求的具体过程可以描述为:可信服务器可以通过可信任务发布平台中的可信网页应用与在发布终端建立第一通信连接;进一步的,可信服务器可以基于第一通信连接接收任务发布方通过发布终端中的可信网页应用发送的与第二可信页面相关联的加密任务处理请求;加密任务处理请求为发布终端通过第一通信密钥对携带任务参数的任务处理请求进行加密后所得到的;进一步的,可信服务器可以通过第二通信密钥对加密任务处理请求进行解密处理,得到携带任务参数的任务处理请求。
步骤S203,在获取到任务发布方通过发布终端上的第三可信页面转移的目标资源数据时,构建用于将目标资源数据上链至区块链的资源上链请求,将资源上链请求发送至区块链节点,以使区块链节点基于资源上链请求将目标资源数据所对应的第一资源转移交易写入区块链,且在可信任务合约中将目标任务的任务状态更新为已转移状态。
其中,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第三可信页面;写入可信任务合约中的任务发布交易中记录有目标任务的任务名,且目标任务的任务名所关联的目标任务的任务状态为待转移状态;此时,可信服务器执行步骤S203的具体过程可以描述为:可信服务器可以接收任务发布方通过发布终端中的可信网页应用发送的与第三可信页面相关联的资源处理请求;资源处理请求中携带任务发布方通过发布终端向可信任务发布平台所对应的平台账户转移的目标资源数据;进一步的,可信服务器可以将资源处理请求中所携带的目标资源数据存储至平台账户,基于存储的目标资源数据和平台账户构建目标资源数据对应的第一资源转移交易;进一步的,可信服务器可以将第一资源转移交易写入资源上链请求,且将资源上链请求发送至区块链节点,以使区块链节点在将包含第一资源转移交易的第三区块写入区块链时,从可信任务合约中读取目标任务的任务名,且将目标任务的任务名所关联的目标任务的任务状态由待转移状态更新为已转移状态。
其中,步骤S201-步骤S203的具体实现方式,可以参见上述图3所对应实施例中将目标可信应用、目标任务以及目标资源数据上链至区块链的具体过程的描述,这里将不再继续进行赘述。其中,可以理解的是,本申请实施例所涉及的与任务发布方相关联的业务交易可以包含目标可信应用对应的应用上传交易、目标任务对应的任务发布交易以及目标资源数据对应的第一资源转移交易。应当理解,这些业务交易可以通过图2所示的区块链节点22a打包至同一区块(即上述第一区块、第二区块以及第三区块可以为同一区块),以上链至区块链20e。可选地,这些业务交易也可以通过图2所示的区块链节点22a打包至不同区块(即上述第一区块、第二区块以及第三区块可以为不同区块),以上链至区块链20e。应当理解,上述第一区块、第二区块以及第三区块可以为用于存储上述业务交易的区块。
步骤S204,在任务发布方所指定的任务执行时长内,接收区块链节点返回的第一算力池和第二算力池,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点;
其中,与目标任务相关联的任务参数包括目标任务的任务描述信息;其中,任务描述信息包含由任务发布方所指定的任务执行时长以及执行目标任务所需的目标资源数据存储在可信任务发布平台所提供的平台账户中的资源存储时长阈值;此时,可信服务器执行步骤S204的具体过程可以描述为:可信服务器可以在获取到执行目标任务所需的目标资源数据时,将目标资源数据转移至可信任务发布平台所提供的平台账户中,且在可信任务发布平台中累计用于存储目标资源数据的平台账户的资源存储时长;进一步的,可信服务器可以在检测到资源存储时长未达到资源存储时长阈值时,确定资源存储时长处于任务发布方所指定的任务执行时长内;进一步的,可信服务器可以在任务执行时长内,生成用于向区块链节点发送的算力获取请求,将算力获取请求发送给区块链节点,以使区块链节点基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池;进一步的,可信服务器可以在接收到区块链节点返回的第一算力池和第二算力池时,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点。
其中,可以理解的是,这里的区块链节点可以用于将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;节点任务状态包含已就绪状态;已就绪状态是区块链节点在确定目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
其中,步骤S204的具体实现方式,可以参见上述图3所对应实施例中对确定目标算力节点的具体过程的描述,这里将不再继续进行赘述。
其中,可信服务器和目标算力节点均运行在可信执行环境中;目标算力节点中包含在可信执行环境中与部署的目标可信应用相关联的可信代理组件;可信服务器中包含部署在可信执行环境中的代理远程认证组件;代理远程认证组件用于对可信代理组件进行远程认证;
步骤S205,在从区块链上拉取到处于已就绪状态的目标算力节点时,建立可信服务器中的代理远程认证组件与目标算力节点中的可信代理组件之间的第二通信连接;
步骤S206,基于第二通信连接控制代理远程认证组件向目标算力节点中的可信代理组件发起远程认证请求,以使目标算力节点根据远程认证请求,将在可信执行环境中部署的目标可信应用的本地报告添加至部署在可信执行环境中的可信代理组件的远程报告中,得到可信代理组件的环境应用验证报告;
步骤S207,接收目标算力节点上传的环境应用验证报告,基于环境应用验证报告对可信代理组件和目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点中的可信代理组件调用目标可信应用,以通过目标可信应用执行目标任务。
其中,步骤S205-步骤S207的具体实现方式,可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,可以理解的是,区块链上的第一节点合约中存储有由目标算力节点中的目标可信应用,通过可信代理组件上传的加密任务执行结果;加密任务执行结果为目标算力节点中的目标可信应用通过数据密钥对执行目标任务所得到的任务执行结果进行加密处理后所得到的;任务执行结果为目标可信应用在通过数据密钥解密得到任务发布方所请求执行的业务数据时,基于目标任务的任务描述信息对业务数据进行可信计算后所得到的;此时,可信服务器可以进一步执行下述步骤S208-步骤S209,以阐述从区块链上的第一节点合约中获取到由目标算力节点执行目标任务所得到的任务执行结果的具体过程。
步骤S208,在目标资源数据所对应的资源存储时长阈值达到任务执行时长时,向区块链节点发送任务结果获取请求,以使区块链节点基于任务结果获取请求从区块链上的第一节点合约中获取到与目标可信应用相关联的加密任务执行结果;
步骤S209,接收区块链节点返回的加密任务执行结果,通过数据密钥对加密任务执行结果进行解密处理,得到与目标算力节点相关联的任务执行结果。
步骤S210,将任务执行结果返回至发布终端,且将目标资源数据转移至目标算力节点。
为便于理解,进一步的,请参见图8,图8是本申请实施例提供的一种从区块链上获取任务执行结果的场景示意图。其中,可以理解的是,如图8所示的可信服务器81b与区块链节点8c进行数据交互的协作过程以及该可信服务器81b与算力节点8a进行数据交互的协作过程即为上述资源转移协作过程。
具体的,如图8所示的算力节点8a可以为目标算力节点,该目标算力节点(即算力节点8a)在通过在可信执行环境中部署的目标可信应用(例如,上述可信应用P1)执行完目标任务(例如,上述计算任务P2)之后,可以将执行该目标任务的任务执行结果发送给区块链节点8c,以使该区块链节点8c可以将执行该目标任务的任务执行结果录入图8所示的第一节点合约,以存储该任务执行结果。如图8所示,可信服务器81b可以主动从区块链节点8c所维护的区块链上获取计算结果(即图8所示的存储在第一节点合约中任务执行结果)。可选地,如图8所示,可信服务器81b还可以在长时间未主动获取结果(例如,可信服务器81b还可以在上述资源存储时长阈值达到上述任务发布方所指定的任务执行时长,且未主动从区块链上获取计算结果),则该可信服务器81b中的超时支付程序触发获取计算结果。
可以理解的是,可选地,为防止除该可信服务器81b之外的其他终端非法从该区块链上获取到前述任务执行结果。本申请实施例提出该区块链节点8c所维护的区块链上的第一节点合约中,可以存储有由目标算力节点中的目标可信应用(即前述可信应用P1),通过可信代理组件上传的加密任务执行结果;可以理解的是,这里的加密任务执行结果可以为目标算力节点(即图8所示的算力节点8a)中的目标可信应用(即前述可信应用P1)通过数据密钥对执行目标任务所得到的任务执行结果进行加密处理后所得到的;这里的任务执行结果即为目标可信应用(即前述可信应用P1)在通过数据密钥解密得到任务发布方所请求执行的业务数据时,基于目标任务的任务描述信息对业务数据进行可信计算后所得到的。
因此,该可信服务器81b在从区块链上获取到加密任务执行结果之后,还通过数据密钥对加密任务执行结果进行解密处理,以得到与目标算力节点相关联的任务执行结果。此外,为避免该解密得到的任务执行结果被除发布终端之外的其他终端所非法获取到,本申请实施例提出该可信服务器81b在获取到该任务执行结果时,可以进一步处理该任务执行结果(即处理前述计算结果)。比如,可信服务器81b可以通过上述第二通信密钥对该任务执行结果进行加密处理,以将加密处理后的任务执行结果返回给发布终端,这样,发布终端可以通过与该第二通信密钥互为非对称密钥的第一通信密钥对该加密处理后的任务执行结果进行解密处理,以解密得到上述任务执行结果。
如图8所示,该可信服务器81b将任务执行结果返回至发布终端之后,还可以一并执行图8所示的支付步骤,以将目标资源数据从该可信任务发布平台8b的平台账户中转移至目标算力节点(即图8所示的算力节点8a)所对应的算力提供方。
进一步的,如图8所示,该可信服务器81b可以将该支付流程所对应的支付结果上链至区块链,以在该区块链节点8c所维护的区块链上的第一节点合约中写入该支付结果。
其中,第一节点合约中存储的目标任务的任务名所关联的目标任务的任务状态为已转移状态;所以,可信服务器在执行完步骤S210之后,还可以进一步执行下述步骤:可信服务器可以在将目标资源数据转移至目标算力节点时,将目标任务的任务状态配置为已执行状态,基于目标资源数据和处于已执行状态的目标任务构建目标资源数据对应的第二资源转移交易;进一步的,可信服务器可以将第二资源转移交易写入目标任务对应的任务状态变更请求,且将任务状态变更请求发送至区块链节点,以使区块链节点在将包含第二资源转移交易的第四区块写入区块链时,从可信任务合约中读取目标任务的任务名,且将目标任务的任务名所关联的目标任务的任务状态由已转移状态更新为已执行状态。
在本申请实施例中,部署在可信任务发布平台中的可信服务器在获取到任务发布方通过发布终端上传的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据时,可以将目标任务、目标可信应用、以及目标资源数据发送给与区块链相关联的区块链节点,以使区块链节点将目标可信应用、目标任务、以及目标资源数据上链至区块链。此外,该运行在可信执行环境中的服务器(即可信服务器)可以用于对大量闲置算力的集中管理,使得有可信算力需求的任务发布方可以通过该可信任务发布平台中的可信服务器智能筛选出安全可靠的算力节点。具体的,该可信服务器可以在该任务发布方所指定的任务执行时长内,智能从区块链上获取到第一算力池和第二算力池,进而可以在获取到的第一算力池和第二算力池中,快速且安全地筛选出有闲置算力的算力节点作为用于执行目标任务的目标算力节点,并可以将筛选出的目标算力节点发送给区块链节点,以使该区块链节点将该目标算力节点写入该区块链上的第一节点合约,并可以在第一节点合约中记录目标算力节点的节点任务状态。需要注意的是,这里的节点任务状态可以包含已就绪状态,且这里的已就绪状态是区块链节点在确定目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;应当理解,在本申请实施例中,任务发布方和算力提供方并不会直接进行数据交互,且任务发布方可以通过该可信任务发布平台中的可信服务器,将自己所请求执行的任务(即前述目标任务)和执行该任务所需要的可信应用(即前述目标可信应用)写入区块链,这样,在算力提供方所对应的目标算力节点通过该区块链确定自己需要执行的任务为目标任务时,可以进一步按需从区块链上下载并部署该目标任务所对应的目标可信应用,并可以在安装部署好目标可信应用时,将自己在区块链上的节点任务状态配置为已就绪状态。所以,为确保任务执行的可信性和可靠性,该可信服务器在从区块链上拉取到处于该已就绪状态的目标算力节点时,可以进一步对该目标算力节点中所部署的目标可信应用进行远程认证,进而可以在认证成功的情况下,允许该目标算力节点通过该目标可信应用执行目标任务。进一步的,本申请实施例为确保数据转移的安全性,该可信服务器可以在从区块链上获取到由该目标算力节点执行目标任务所得到的任务执行结果时,将该任务执行结果返回给发布终端,并可以一并将前述执行目标任务所需要的目标资源数据转移至目标算力节点,以提升数据转移的安全性。
进一步的,请参见图9,图9是本申请实施例提供的一种基于区块链的数据处理方法的流程时序图。如图9所示,该方法可以由可信任务发布平台中的可信服务器与区块链节点共同执行,这里的可信服务器可以为上述图2所对应实施例中的可信服务器21a,这里的区块链节点可以为上述图2所对应实施例中位于区块链共识网络中的任意一个区块链节点。如图9所示,该方法至少可以包括步骤S301-步骤S310。
步骤S301,可信服务器可以获取任务发布方通过发布终端上传的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据;
步骤S302,可信服务器将目标任务、目标可信应用、以及目标资源数据发送给与区块链相关联的区块链节点;
步骤S303,区块链节点可以在获取到发布终端通过可信任务发布平台中的可信服务器发送的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据时,将目标可信应用、目标任务、以及目标资源数据上链至区块链;
步骤S304,区块链节点可以获取可信服务器在任务发布方所指定的任务执行时长内发送的算力获取请求;
步骤S305,区块链节点可以基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池,将第一算力池和第二算力池返回给可信服务器;
步骤S306,可信服务器可以在任务发布方所指定的任务执行时长内接收到区块链节点返回的第一算力池和第二算力池时,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点;
步骤S307,可信服务器将目标算力节点发送给区块链节点;
步骤S308,区块链节点可以在接收到可信服务器发送的目标算力节点时,将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;
其中,节点任务状态包含已就绪状态;已就绪状态是在目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
步骤S309,可信服务器可以将针对处于已就绪状态的目标算力节点的算力拉取请求发送给区块链节点;
步骤S310,区块链节点可以在接收到可信服务器针对处于已就绪状态的目标算力节点的算力拉取请求时,将处于已就绪状态的目标算力节点返回给可信服务器;
步骤S311,可信服务器可以在从区块链上拉取到处于已就绪状态的目标算力节点时,对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;
步骤S312,区块链节点可以获取目标算力节点通过目标可信应用执行目标任务所得到的任务执行结果,将任务执行结果写入第一节点合约;
步骤S313,可信服务器可以向区块链节点发送任务结果获取请求;
步骤S314,区块链节点可以在获取到可信服务器发送的任务结果获取请求时,基于任务结果获取请求将第一节点合约中的任务执行结果返回给可信服务器;
步骤S315,可信服务器可以在从区块链上的第一节点合约中获取到由目标算力节点执行目标任务所得到的任务执行结果时,将任务执行结果返回至发布终端,且将目标资源数据转移至目标算力节点。
为便于理解,进一步的,请参见图10,图10是本申请实施例提供的一种基于可信执行环境的系统交互架构图。如图10所示的系统交互架构图中包含发布终端10a、部署有可信服务器10b的可信任务发布平台以及用于提供可信计算的算力节点10c和区块链节点10d。
其中,如图10所示,该发布终端10a所对应的任务发布方(即上述TEE任务发布方)可以通过发布终端10a上传计算任务、上传执行任务所需的应用程序、以及预先支付执行任务所愿意花费的佣金到该可信任务发布平台,以作为保证金。
其中,任务发布方通过该发布终端10a上传计算任务、上述应用程序以及支付佣金的具体过程可以参见发布终端上传上述计算任务P2、上传可信应用P1以及上传资源数据P3的具体过程的描述,这里将不再继续进行赘述。
如图10所示的部署有可信服务器10b的可信任务发布平台可以提供以下服务,比如:1)提供网页服务接收任务发布方的相关请求;2)提供保证金支付服务;3)提供计算任务浏览功能;4)提供加入算力池功能;5)从算力池中智能筛选算力提供方;6)提供佣金代付功能;7)将以上各个服务过程上链。
其中,该可信服务器为任务发布方和算力提供方所提供各种服务的具体过程,可以参见上述图3-图8所对应实施例的描述,这里将不再继续进行赘述。
其中,如图10的算力节点10c所对应的算力提供方(即TEE算力提供方)可以通过该算力节点10c手动选择任务(例如,该算力提供方所手动选择的可信任务即为前述特定任务)或根据算法自动选择任务(例如,可信服务器为该算力提供方通过算法所动态配置的供算力提供方执行的可信任务可以为前述通用任务,这里的通用任务可以为前述计算任务P2)、从链上下载已分配任务信息、从链上下载并布署待执行的可信应用(例如,前述可信应用P1)、执行可信计算(例如,执行前述目标任务所指示的可信计算)以及将执行可信计算所得到的任务执行结果进行上链。其中,图10所示的算力提供方可以通过算力节点10c定期从区块链节点10d上拉取与自己相关的任务列表,进而可以获取到存储在区块链上的计算任务P2的任务认领信息,进而可以从该计算任务的任务认领信息中确定出计算任务P2的任务名,并可以根据计算任务P2的任务名获取该计算任务P2的任务名所对应的任务参数,以从该任务参数中获取用于执行该计算任务的目标可信应用的应用度量值(即图10所述的可信应用P1的应用度量值)。如图10所示,该算力节点10c可以通过该可信应用P1的应用度量值从区块链节点10d所维护的区块链上下载该可信应用P1,并将该可信应用P1部署在该算力节点10c所运行的可信执行环境中,以便于后续在通过远程认证确定该算力节点10c所运行的可信执行环境为安全环境的情况下,通过该安全环境中的该可信应用P1获取前述任务发布方所请求执行的目标任务的业务数据,以通过该业务数据在该可信应用P1中进行可信计算。其中,该算力节点10c从区块链上下载并部署可信应用P1以及执行可信计算的具体过程,可以参见上述图3-图8所对应实施例中对目标算力节点的描述,这里将不再继续进行赘述。
其中,这里的分配任务信息可以为从区块链10d上所下载与该算力提供方相关联的任务列表中的任务认领信息,这里的任务认领信息可以包含由算力提供方所认领但尚未执行的任务以及这些尚未执行的任务的顺序。应当理解,本申请实施例所涉及的任务均指上述可信任务。
此外,如图10所示,区块链节点10d所对应的区块链节点服务商,可以通过该区块链节点10d将各方协作信息上链和查询链上信息。其中,可以理解的是,这里的各方协作信息包含但不限于上述任务发布协作流程的协作信息、上述算力注册协作流程的协作信息、上述远程认证协作流程的协作信息以及上述资源转移协作流程的协作信息。应当理解,图10所示的区块链节点10d上所存储的数据转移结果为可信任务发布平台中的可信服务器10b将平台账户中的目标资源数据中转给所述算力节点10c所对应的算力提供方所确定的第二资源转移交易的上链记录。
在本申请实施例中,任务发布方和算力提供方并不会直接进行数据交互,且任务发布方可以通过该可信任务发布平台中的可信服务器,将自己所请求执行的任务(即前述目标任务)和执行该任务所需要的可信应用(即前述目标可信应用)写入区块链,这样,在算力提供方所对应的目标算力节点通过该区块链确定自己需要执行的任务为目标任务时,可以进一步按需从区块链上下载并部署该目标任务所对应的目标可信应用,并可以在安装部署好目标可信应用时,将自己在区块链上的节点任务状态配置为已就绪状态。所以,为确保任务执行的可信性和可靠性,该可信服务器在从区块链上拉取到处于该已就绪状态的目标算力节点时,可以进一步对该目标算力节点中所部署的目标可信应用进行远程认证,进而可以在认证成功的情况下,允许该目标算力节点通过该目标可信应用执行目标任务。进一步的,本申请实施例为确保数据转移的安全性,该可信服务器可以在从区块链上获取到由该目标算力节点执行目标任务所得到的任务执行结果时,将该任务执行结果返回给发布终端,并可以一并将前述执行目标任务所需要的目标资源数据转移至目标算力节点,以提升数据转移的安全性。
进一步的,请参见图11,图11是本申请提供的一种基于区块链的数据处理装置的结构示意图。该基于区块链的数据处理装置1可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置1为一个应用软件,该基于区块链的数据处理装置1可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该区块链的数据处理装置1可以包括:任务资源获取模块11、目标算力节点确定模块12、远程认证模块13和任务结果获取模块14。
任务资源获取模块11,用于获取任务发布方通过发布终端上传的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据,将目标任务、目标可信应用、以及目标资源数据发送给与区块链相关联的区块链节点,以使区块链节点将目标可信应用、目标任务、以及目标资源数据上链至区块链;
目标算力节点确定模块12,用于在任务发布方所指定的任务执行时长内,接收区块链节点返回的第一算力池和第二算力池,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点,以使区块链节点将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;节点任务状态包含已就绪状态;已就绪状态是区块链节点在确定目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
远程认证模块13,用于在从区块链上拉取到处于已就绪状态的目标算力节点时,对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;
任务结果获取模块14,用于在从区块链上的第一节点合约中获取到由目标算力节点执行目标任务所得到的任务执行结果时,将任务执行结果返回至发布终端,且将目标资源数据转移至目标算力节点。
其中,任务资源获取模块11、目标算力节点确定模块12、远程认证模块13和任务结果获取模块14的具体实现方式,可以参见上述图3所对应实施例中对步骤S101-步骤S104的描述,这里将不再继续进行赘述。
其中,可信业务发布平台用于为任务发布方所使用的发布终端提供可信页面;可信页面包含用于上传目标可信应用的第一可信页面、用于发布目标任务的第二可信应用以及用于转移目标资源数据的第三可信页面;区块链上的节点合约包含可信应用合约和可信任务合约;
任务资源获取模块11包括:应用上链单元、任务上链单元和资源上链单元;
应用上链单元,用于在获取到任务发布方通过发布终端上的第一可信页面上传的目标可信应用时,构建用于将目标可信应用上链至区块链的应用上链请求,将应用上链请求发送给区块链节点,以使区块链节点基于应用上链请求将目标可信应用所对应的应用上传交易写入区块链上的可信应用合约;
任务上链单元,用于在获取到任务发布方通过发布终端上的第二可信页面发布的目标任务时,构建用于将目标任务上链至区块链的任务上链请求,将任务上链请求发送至区块链节点,以使区块链节点基于任务上链请求将目标任务所对应的任务发布交易写入区块链上的可信任务合约;
资源上链单元,用于在获取到任务发布方通过发布终端上的第三可信页面转移的目标资源数据时,构建用于将目标资源数据上链至区块链的资源上链请求,将资源上链请求发送至区块链节点,以使区块链节点基于资源上链请求将目标资源数据所对应的第一资源转移交易写入区块链,且在可信任务合约中将目标任务的任务状态更新为已转移状态。
其中,应用上链单元、任务上链单元和资源上链单元的具体实现方式,可以参见上述图3所对应实施例中对步骤S101的描述,这里将不再继续进行赘述。
其中,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第一可信页面;
应用上链单元包括:应用请求发送子单元、应用交易构造子单元和应用交易上链子单元;
应用请求发送子单元,用于接收任务发布方通过发布终端中的可信网页应用发送的与第一可信页面相关联的应用处理请求;应用处理请求中携带任务发布方所获取到的目标可信应用以及用于标识目标可信应用的应用度量值;
应用交易构造子单元,用于基于应用处理请求中所携带的目标可信应用以及应用度量值构建目标可信应用对应的应用上传交易;
应用交易上链子单元,用于将应用上传交易写入应用上链请求,且将应用上链请求发送至区块链节点,以使区块链节点在将包含应用上传交易的第一区块写入区块链时,将应用上传交易中所记录的目标可信应用以及应用度量值录入区块链上的可信应用合约。
其中,应用请求发送子单元、应用交易构造子单元和应用交易上链子单元的具体实现方式,可以参见上述图3所对应实施例中对目标可信应用进行上链的具体过程的描述,这里将不再继续进行赘述。
其中,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第二可信页面;
任务上链单元包括:任务请求发送子单元、任务交易构造子单元和任务交易上链子单元;
任务请求发送子单元,用于接收任务发布方通过发布终端中的可信网页应用发送的与第二可信页面相关联的任务处理请求;任务处理请求中携带任务发布方所获取到的目标任务以及与目标任务相关联的任务参数;任务参数中包含目标任务的任务名;
任务交易构造子单元,还具体用于将任务处理请求中所携带的目标任务和任务参数作为目标任务的任务关键信息,基于目标任务的任务名以及目标任务的任务关键信息构建目标任务对应的任务发布交易;
任务交易上链子单元,用于将任务发布交易写入任务上链请求,且将任务上链请求发送至区块链节点,以使区块链节点在将包含任务发布交易的第二区块写入区块链时,将任务发布交易中所记录的目标任务的任务名和目标任务的任务关键信息,录入区块链上的可信任务合约。
其中,任务请求发送子单元、任务交易构造子单元和任务交易上链子单元的具体实现方式,可以参见上述图3所对应实施例中对目标任务进行上链的具体过程的描述,这里将不再继续进行赘述。
其中,任务参数包括目标任务的任务名,目标任务的任务描述信息、第一加密数据密钥、加密后的业务数据、执行目标任务所需的目标可信应用的应用度量值、执行目标任务所需的算力度量值、以及执行目标任务所需的目标资源数据;其中,第一加密数据密钥是发布终端通过第一通信密钥,对在发布终端中生成的数据密钥进行加密处理后所得到的;加密后的业务数据为发布终端通过数据密钥对任务发布方所请求执行的业务数据进行加密处理后所得到的;第一通信密钥是发布终端通过可信任务发布平台的平台公钥信息以及任务发布方的发布私钥信息所确定的;与第一通信密钥互为非对称密钥的第二通信密钥是可信服务器通过任务发布方的发布公钥信息和可信任务发布平台的平台私钥信息所确定的;第一通信密钥和第二通信密钥均属于第一共享通信密钥,且第一共享通信密钥是发布终端在与可信服务器建立第一通信连接时,按照第一密钥交换协议所协商得到的;
任务请求发送子单元,具体用于通过可信任务发布平台中的可信网页应用与在发布终端建立第一通信连接;
任务请求发送子单元,还具体用于基于第一通信连接接收任务发布方通过发布终端中的可信网页应用发送的与第二可信页面相关联的加密任务处理请求;加密任务处理请求为发布终端通过第一通信密钥对携带任务参数的任务处理请求进行加密后所得到的;
任务请求发送子单元,还具体用于通过第二通信密钥对加密任务处理请求进行解密处理,得到携带任务参数的任务处理请求。
其中,可信任务发布平台还包括与可信服务器相关联的可信网页应用;可信网页应用部署在发布终端,且部署在发布终端中的可信网页应用用于为任务发布方展示第三可信页面;写入可信任务合约中的任务发布交易中记录有目标任务的任务名,且目标任务的任务名所关联的目标任务的任务状态为待转移状态;
资源上链单元包括:资源请求发送子单元、资源数据存储子单元和资源交易上链子单元;
资源请求发送子单元,用于接收任务发布方通过发布终端中的可信网页应用发送的与第三可信页面相关联的资源处理请求;资源处理请求中携带任务发布方通过发布终端向可信任务发布平台所对应的平台账户转移的目标资源数据;
资源数据存储子单元,用于将资源处理请求中所携带的目标资源数据存储至平台账户,基于存储的目标资源数据和平台账户构建目标资源数据对应的第一资源转移交易;
资源交易上链子单元,用于将第一资源转移交易写入资源上链请求,且将资源上链请求发送至区块链节点,以使区块链节点在将包含第一资源转移交易的第三区块写入区块链时,从可信任务合约中读取目标任务的任务名,且将目标任务的任务名所关联的目标任务的任务状态由待转移状态更新为已转移状态。
其中,资源请求发送子单元、资源数据存储子单元和资源交易上链子单元的具体实现方式,可以参见上述图3所对应实施例中对目标可信应用进行上链的具体过程的描述,这里将不再继续进行赘述。
其中,可信服务器运行在可信执行环境中,可信服务器用于通过可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供算力池加入页面;算力池加入页面包含用于请求加入第一算力池的第一算力池加入页面;待进行注册算力的算力节点中包含目标算力节点;
装置1还包括:第一算力注册模块15、第一算力池加入模块16和第一算力上链模块17;
第一算力注册模块15,用于接收运行在可信执行环境中的目标算力节点发送的第一算力注册请求;第一算力注册请求为目标算力节点响应于算力提供方针对第一算力池加入页面的触发操作所生成的;
第一算力池加入模块16,用于从第一算力注册请求中获取算力提供方所触发的第一算力池加入页面中的第一标识,基于第一标识确定算力提供方所请求进行算力注册的算力池为第一算力池;
第一算力上链模块17,用于将目标算力节点和第一算力池的第一标识发送给区块链节点,以使区块链节点基于第一标识获取区块链上的第一业务合约,调用第一业务合约将目标算力节点添加至第一算力池。
其中,第一算力注册模块15、第一算力池加入模块16和第一算力上链模块17的具体实现方式,可以参见上述图3所对应实施例中对加入第一算力池的具体过程的描述,这里将不再继续进行赘述。
其中,可信服务器运行在可信执行环境中,可信服务器用于通过可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供算力池加入页面;算力池加入页面包含用于请求加入第二算力池的第二算力池加入页面;待进行注册算力的算力节点中包含目标算力节点;
装置1还包括:第二算力注册模块18、第二算力池加入模块19和第二算力上链模块20;
第二算力注册模块18,用于接收运行在可信执行环境中的目标算力节点发送的第二算力注册请求;第二算力注册请求为目标算力节点响应于算力提供方针对第二算力池加入页面的触发操作所生成的;
第二算力池加入模块19,用于从第二算力注册请求中获取算力提供方所触发的第二算力池加入页面中的第二标识,基于第二标识确定算力提供方所请求进行算力注册的算力池为第二算力池;
第二算力上链模块20,用于将目标算力节点和第二算力池的第二标识发送给区块链节点,以使区块链节点基于第二标识获取区块链上的第二业务合约,调用第二业务合约将目标算力节点添加至第二算力池。
其中,第二算力注册模块18、第二算力池加入模块19和第二算力上链模块20的具体实现方式,可以参见上述图3所对应实施例中对加入第二算力池的具体过程的描述,这里将不再继续进行赘述。
其中,可信服务器运行在可信执行环境中,可信服务器用于通过可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供可信任务浏览页面;可信任务浏览页面用于为待进行注册算力的算力节点提供可信任务列表;可信任务列表为可信服务器通过区块链节点从区块链上的可信任务合约中所拉取到的;待进行注册算力的算力节点中包含目标算力节点;
装置1还包括:浏览请求接收模块21、任务名触发模块22和算力添加模块23;
浏览请求接收模块21,用于接收运行在可信执行环境中的目标算力节点发送的算力任务浏览请求;算力任务浏览请求为目标算力节点响应于算力提供方针对可信任务浏览页面中的可信任务列表的触发操作所生成的;
任务名触发模块22,用于从算力任务浏览请求中获取算力提供方所触发的可信任务列表中的目标任务的任务名;
算力添加模块23,用于在确定目标任务的任务名所在的算力池为第一算力池时,将目标算力节点和第一算力池的第一标识发送给区块链节点,以使区块链节点基于第一标识获取区块链上的第一节点合约,调用第一节点合约将目标算力节点添加至第一算力池。
其中,浏览请求接收模块21、任务名触发模块22和算力添加模块23的具体实现方式,可以参见上述图3所对应实施例中对自主加入第一算力池的具体过程的描述,这里将不再继续进行赘述。
其中,与目标任务相关联的任务参数包括目标任务的任务描述信息;其中,任务描述信息包含由任务发布方所指定的任务执行时长以及执行目标任务所需的目标资源数据存储在可信任务发布平台所提供的平台账户中的资源存储时长阈值;
目标算力节点确定模块12包括:存储时长累计单元、执行时长确定单元、算力获取请求单元和目标算力确定单元;
存储时长累计单元,用于在获取到执行目标任务所需的目标资源数据时,将目标资源数据转移至可信任务发布平台所提供的平台账户中,且在可信任务发布平台中累计用于存储目标资源数据的平台账户的资源存储时长;
执行时长确定单元,用于在检测到资源存储时长未达到资源存储时长阈值时,确定资源存储时长处于任务发布方所指定的任务执行时长内;
算力获取请求单元,用于在任务执行时长内,生成用于向区块链节点发送的算力获取请求,将算力获取请求发送给区块链节点,以使区块链节点基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池;
目标算力确定单元,用于在接收到区块链节点返回的第一算力池和第二算力池时,从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点,将目标算力节点发送给区块链节点。
其中,存储时长累计单元、执行时长确定单元、算力获取请求单元和目标算力确定单元的具体实现方式,可以参见上述图3所对应实施例中对步骤S102的描述,这里将不再继续进行赘述。
其中,与目标任务相关联的任务参数包括执行目标任务所需的算力度量值、以及执行目标任务所需的目标资源数据;
目标算力确定单元,具体用于从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,筛选与执行目标任务所需的算力度量值相符的算力节点,将筛选到的与算力度量值相符的算力节点作为候选算力节点;
目标算力确定单元,还具体用于从候选算力节点中,筛选执行目标任务所需的目标资源数据相符的算力节点,将筛选到的与目标资源数据相符的候选算力节点作为用于执行目标任务的目标算力节点。
其中,可信服务器和目标算力节点均运行在可信执行环境中;目标算力节点中包含在可信执行环境中与部署的目标可信应用相关联的可信代理组件;可信服务器中包含部署在可信执行环境中的代理远程认证组件;代理远程认证组件用于对可信代理组件进行远程认证;
远程认证模块13包括:通信连接建立单元、认证请求发起单元和远程认证单元;
通信连接建立单元,用于在从区块链上拉取到处于已就绪状态的目标算力节点时,建立可信服务器中的代理远程认证组件与目标算力节点中的可信代理组件之间的第二通信连接;
认证请求发起单元,用于基于第二通信连接控制代理远程认证组件向目标算力节点中的可信代理组件发起远程认证请求,以使目标算力节点根据远程认证请求,将在可信执行环境中部署的目标可信应用的本地报告添加至部署在可信执行环境中的可信代理组件的远程报告中,得到可信代理组件的环境应用验证报告;
远程认证单元,用于接收目标算力节点上传的环境应用验证报告,基于环境应用验证报告对可信代理组件和目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点中的可信代理组件调用目标可信应用,以通过目标可信应用执行目标任务。
其中,通信连接建立单元、认证请求发起单元和远程认证单元的具体实现方式,可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,远程认证模块13还包括:任务参数获取单元、平台公钥发送单元、算力公钥返回单元和数据密钥加密单元;
任务参数获取单元,用于在可信服务器与发布终端建立第一通信连接时,基于第一通信连接获取目标任务的任务参数,从任务参数中获取与发布终端的第一通信密钥相关联的第一加密数据密钥以及加密后的业务数据;第一加密数据密钥是发布终端通过第一通信密钥,对在发布终端中生成的数据密钥进行加密处理后所得到的;加密后的业务数据为发布终端通过数据密钥对任务发布方所请求执行的业务数据进行加密处理后所得到的;第一通信密钥是发布终端通过可信任务发布平台的平台公钥信息以及任务发布方的发布私钥信息所确定的;与第一通信密钥互为非对称密钥的第二通信密钥是可信服务器通过任务发布方的发布公钥信息和可信任务发布平台的平台私钥信息所确定的;第一通信密钥和第二通信密钥均属于第一共享通信密钥,且第一共享通信密钥是发布终端在与可信服务器建立第一通信连接时,按照第一密钥交换协议所协商得到的;
平台公钥发送单元,用于基于第二通信连接向目标算力节点发送第二密钥交换协议和可信任务发布平台的平台公钥信息,以使目标算力节点中的可信代理组件基于第二密钥交换协议获取目标算力节点对应的算力提供方的算力公钥信息和算力公钥信息对应的算力私钥信息,且基于平台公钥信息和算力私钥信息,生成目标算力节点对应的第三通信密钥,并将第三通信密钥存储至目标可信应用;
算力公钥返回单元,用于通过代理远程认证组件接收目标算力节点中的可信代理组件返回的算力公钥信息,按照第二密钥交换协议将由算力公钥信息和可信任务发布平台的平台私钥信息所确定通信密钥作为第四通信密钥;第四通信密钥和第三通信密钥为可信服务器和目标算力节点按照第二密钥交互协议所协商得到的第二共享通信密钥;第四通信密钥为第三通信密钥的非对称密钥;
数据密钥加密单元,用于在远程认证成功,且通过第二通信密钥对第一加密数据密钥进行解密处理,得到数据密钥时,控制代理远程认证组件通过第四通信密钥对数据密钥进行加密处理,得到第二加密数据密钥,将第二加密数据密钥和加密后的业务数据发送给目标算力节点,以使目标算力节点通过可信代理组件将第二加密数据密钥发送给存储有第三通信密钥的目标可信应用,以在目标可信应用中通过第三通信密钥对第二加密数据密钥进行解密处理,得到用于对加密后的业务数据进行解密处理的数据密钥;目标可信应用用于通过解密得到的数据密钥对加密后的业务数据进行解密处理,以解密得到业务数据。
其中,任务参数获取单元、平台公钥发送单元、算力公钥返回单元和数据密钥加密单元的具体实现方式,可以参见上述图3所对应实施例中对步骤S103的描述,这里将不再继续进行赘述。
其中,区块链上的第一节点合约中存储有由目标算力节点中的目标可信应用,通过可信代理组件上传的加密任务执行结果;加密任务执行结果为目标算力节点中的目标可信应用通过数据密钥对执行目标任务所得到的任务执行结果进行加密处理后所得到的;任务执行结果为目标可信应用在通过数据密钥解密得到任务发布方所请求执行的业务数据时,基于目标任务的任务描述信息对业务数据进行可信计算后所得到的;
装置1还包括:任务结果请求发送模块24和加密任务结果接收模块25;
任务结果请求发送模块24,用于在目标资源数据所对应的资源存储时长阈值达到任务执行时长时,向区块链节点发送任务结果获取请求,以使区块链节点基于任务结果获取请求从区块链上的第一节点合约中获取到与目标可信应用相关联的加密任务执行结果;
加密任务结果接收模块25,用于接收区块链节点返回的加密任务执行结果,通过数据密钥对加密任务执行结果进行解密处理,得到与目标算力节点相关联的任务执行结果。
其中,任务结果请求发送模块24和加密任务结果接收模块25的具体实现方式,可以参见上述图3所对应实施例中对获取任务执行结果的具体过程的描述,这里将不再继续进行赘述。
其中,第一节点合约中存储的目标任务的任务名所关联的目标任务的任务状态为已转移状态;
装置1还包括:任务状态配置模块26和状态变更请求发送模块27;
任务状态配置模块26,用于在将目标资源数据转移至目标算力节点时,将目标任务的任务状态配置为已执行状态,基于目标资源数据和处于已执行状态的目标任务构建目标资源数据对应的第二资源转移交易;
状态变更请求发送模块27,用于将第二资源转移交易写入目标任务对应的任务状态变更请求,且将任务状态变更请求发送至区块链节点,以使区块链节点在将包含第二资源转移交易的第四区块写入区块链时,从可信任务合约中读取目标任务的任务名,且将目标任务的任务名所关联的目标任务的任务状态由已转移状态更新为已执行状态。
其中,任务状态配置模块26和状态变更请求发送模块27的具体实现方式,可以参见上述图7所对应实施例中对任务状态变更的具体过程的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
进一步的,请参见图12,图12是本申请提供的一种基于区块链的数据处理装置的结构示意图。该基于区块链的数据处理装置2可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置2为一个应用软件,该基于区块链的数据处理装置2可以用于执行本申请实施例提供的方法中的相应步骤。如图12所示,该区块链的数据处理装置2可以包括:任务资源上链模块100、目标算力获取模块200、目标算力节点上链模块300、目标算力拉取模块400、任务结果上链模块500和任务结果返回模块600。
任务资源上链模块100,用于获取发布终端通过可信任务发布平台中的可信服务器发送的目标可信应用、与目标可信应用相关联的目标任务、以及执行目标任务所需的目标资源数据,将目标可信应用、目标任务、以及目标资源数据上链至区块链;
目标算力获取模块200,用于获取可信服务器在任务发布方所指定的任务执行时长内发送的算力获取请求,基于算力获取请求从区块链上的第一节点合约中获取第一算力池,且从区块链上的第二节点合约中获取第二算力池,将第一算力池和第二算力池返回给可信服务器,以使可信服务器从第一算力池所包含的算力节点以及第二算力池所包含的算力节点中,确定用于执行目标任务的目标算力节点;
目标算力节点上链模块300,用于接收可信服务器发送的目标算力节点,将目标算力节点写入区块链上的第一节点合约,在第一节点合约中记录目标算力节点的节点任务状态;节点任务状态包含已就绪状态;已就绪状态是在目标算力节点从区块链上获取到目标任务以及部署了目标任务所对应的目标可信应用时所确定的;
目标算力拉取模块400,用于在接收到可信服务器针对处于已就绪状态的目标算力节点的算力拉取请求时,将处于已就绪状态的目标算力节点返回给可信服务器,以使可信服务器对目标算力节点中部署的目标可信应用进行远程认证,且在远程认证成功时,允许目标算力节点通过目标可信应用执行目标任务;
任务结果上链模块500,用于获取目标算力节点通过目标可信应用执行目标任务所得到的任务执行结果,将任务执行结果写入区块链上的第一节点合约;
任务结果返回模块600,用于在获取到可信服务器发送的任务结果获取请求时,基于任务结果获取请求将第一节点合约中的任务执行结果返回给可信服务器,以使可信服务器将任务执行结果返回值发布终端,且将目标资源数据转移至目标算力节点。
其中,任务资源上链模块100、目标算力获取模块200、目标算力节点上链模块300、目标算力拉取模块400、任务结果上链模块500和任务结果返回模块600的具体实现方式,可以参见上述图9所对应实施例中对区块链节点的描述,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
请参见图13,图13是本申请提供的一种计算机设备的结构示意图。如图13所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图13所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图13所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现前文图3、图7或者图9所对应实施例中的方法,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的基于区块链的数据处理装置1或者基于区块链的数据处理装置2所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3、图7或者图9所对应实施例中对基于区块链的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链共识网络。
上述计算机可读存储介质可以是前述任一实施例提供的区块链的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flashcard)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3、图7或者图9对应实施例中对上述基于区块链的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步的,请参见图14,图14是本申请实施例提供的一种基于区块链的数据处理系统的示意图。该基于区块链的数据处理系统3可以包含可信服务器3a和区块链节点3b;其中,可信服务器3a可以为上述图3所对应实施例所描述的可信服务器,该可信服务器可以为上述图1所示的可信服务器100b,这里将不再继续进行赘述。其中,区块链节点3b可以为上述图9所对应实施例所描述的区块链节点。该区块链节点可以为上述图1所示的区块链共识网络100d中的任意一个区块链节点,这里将不再继续进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (20)
1.一种基于区块链的数据处理方法,其特征在于,所述方法由可信任务发布平台中的可信服务器执行,所述方法包括:
获取任务发布方通过发布终端上传的目标可信应用、与所述目标可信应用相关联的目标任务、以及执行所述目标任务所需的目标资源数据,将所述目标任务、所述目标可信应用、以及所述目标资源数据发送给与所述区块链相关联的区块链节点,以使所述区块链节点将所述目标可信应用、所述目标任务、以及所述目标资源数据上链至所述区块链;
在所述任务发布方所指定的任务执行时长内,接收所述区块链节点返回的所述第一算力池和所述第二算力池,从所述第一算力池所包含的算力节点以及所述第二算力池所包含的算力节点中,确定用于执行所述目标任务的目标算力节点,将所述目标算力节点发送给所述区块链节点,以使所述区块链节点将所述目标算力节点写入所述区块链上的第一节点合约,在所述第一节点合约中记录所述目标算力节点的节点任务状态;所述节点任务状态包含已就绪状态;所述已就绪状态是所述区块链节点在确定所述目标算力节点从所述区块链上获取到所述目标任务以及部署了所述目标任务所对应的所述目标可信应用时所确定的;
在从所述区块链上拉取到处于所述已就绪状态的所述目标算力节点时,对所述目标算力节点中部署的所述目标可信应用进行远程认证,且在远程认证成功时,允许所述目标算力节点通过所述目标可信应用执行所述目标任务;
在从所述区块链上的所述第一节点合约中获取到由所述目标算力节点执行所述目标任务所得到的任务执行结果时,将所述任务执行结果返回至所述发布终端,且将所述目标资源数据转移至所述目标算力节点。
2.根据权利要求1所述的方法,其特征在于,所述可信业务发布平台用于为所述任务发布方所使用的所述发布终端提供可信页面;所述可信页面包含用于上传所述目标可信应用的第一可信页面、用于发布所述目标任务的第二可信应用以及用于转移所述目标资源数据的第三可信页面;所述区块链上的节点合约包含可信应用合约和可信任务合约;
所述获取任务发布方通过发布终端上传的目标可信应用、与所述目标可信应用相关联的目标任务、以及执行所述目标任务所需的目标资源数据,将所述目标任务、所述目标可信应用、以及所述目标资源数据发送给与所述区块链相关联的区块链节点,包括:
在获取到所述任务发布方通过所述发布终端上的所述第一可信页面上传的目标可信应用时,构建用于将所述目标可信应用上链至所述区块链的应用上链请求,将所述应用上链请求发送给所述区块链节点,以使所述区块链节点基于所述应用上链请求将所述目标可信应用所对应的应用上传交易写入所述区块链上的所述可信应用合约;
在获取到所述任务发布方通过所述发布终端上的所述第二可信页面发布的目标任务时,构建用于将所述目标任务上链至所述区块链的任务上链请求,将所述任务上链请求发送至所述区块链节点,以使所述区块链节点基于所述任务上链请求将所述目标任务所对应的任务发布交易写入所述区块链上的所述可信任务合约;
在获取到所述任务发布方通过所述发布终端上的所述第三可信页面转移的目标资源数据时,构建用于将所述目标资源数据上链至所述区块链的资源上链请求,将所述资源上链请求发送至所述区块链节点,以使所述区块链节点基于所述资源上链请求将所述目标资源数据所对应的第一资源转移交易写入所述区块链,且在所述可信任务合约中将所述目标任务的任务状态更新为已转移状态。
3.根据权利要求2所述的方法,其特征在于,所述可信任务发布平台还包括与所述可信服务器相关联的可信网页应用;所述可信网页应用部署在所述发布终端,且部署在所述发布终端中的所述可信网页应用用于为所述任务发布方展示所述第一可信页面;
所述在获取到所述任务发布方通过所述发布终端上的所述第一可信页面上传的目标可信应用时,构建用于将所述目标可信应用上链至所述区块链的应用上链请求,将所述应用上链请求发送给所述区块链节点,包括:
接收所述任务发布方通过所述发布终端中的所述可信网页应用发送的与所述第一可信页面相关联的应用处理请求;所述应用处理请求中携带所述任务发布方所获取到的目标可信应用以及用于标识所述目标可信应用的应用度量值;
基于所述应用处理请求中所携带的所述目标可信应用以及所述应用度量值构建所述目标可信应用对应的应用上传交易;
将所述应用上传交易写入所述应用上链请求,且将所述应用上链请求发送至所述区块链节点,以使所述区块链节点在将包含所述应用上传交易的第一区块写入所述区块链时,将所述应用上传交易中所记录的所述目标可信应用以及所述应用度量值录入所述区块链上的可信应用合约。
4.根据权利要求2所述的方法,其特征在于,所述可信任务发布平台还包括与所述可信服务器相关联的可信网页应用;所述可信网页应用部署在所述发布终端,且部署在所述发布终端中的所述可信网页应用用于为所述任务发布方展示所述第二可信页面;
所述在获取到所述任务发布方通过所述发布终端上的所述第二可信页面发布的目标任务时,构建用于将所述目标任务上链至所述区块链的任务上链请求,将所述任务上链请求发送至所述区块链节点,包括:
接收所述任务发布方通过所述发布终端中的所述可信网页应用发送的与所述第二可信页面相关联的任务处理请求;所述任务处理请求中携带所述任务发布方所获取到的目标任务以及与所述目标任务相关联的任务参数;所述任务参数中包含所述目标任务的任务名;
将所述任务处理请求中所携带的所述目标任务和所述任务参数作为所述目标任务的任务关键信息,基于所述目标任务的任务名以及所述目标任务的任务关键信息构建所述目标任务对应的任务发布交易;
将所述任务发布交易写入所述任务上链请求,且将所述任务上链请求发送至所述区块链节点,以使所述区块链节点在将包含所述任务发布交易的第二区块写入所述区块链时,将所述任务发布交易中所记录的所述目标任务的任务名和所述目标任务的任务关键信息,录入所述区块链上的可信任务合约。
5.根据权利要求4所述的方法,其特征在于,所述任务参数包括所述目标任务的任务名,所述目标任务的任务描述信息、第一加密数据密钥、加密后的业务数据、执行所述目标任务所需的所述目标可信应用的应用度量值、执行所述目标任务所需的算力度量值、以及执行所述目标任务所需的所述目标资源数据;其中,所述第一加密数据密钥是所述发布终端通过第一通信密钥,对在所述发布终端中生成的数据密钥进行加密处理后所得到的;所述加密后的业务数据为所述发布终端通过所述数据密钥对所述任务发布方所请求执行的业务数据进行加密处理后所得到的;所述第一通信密钥是所述发布终端通过所述可信任务发布平台的平台公钥信息以及所述任务发布方的发布私钥信息所确定的;与所述第一通信密钥互为非对称密钥的第二通信密钥是所述可信服务器通过所述任务发布方的发布公钥信息和所述可信任务发布平台的平台私钥信息所确定的;所述第一通信密钥和所述第二通信密钥均属于第一共享通信密钥,且所述第一共享通信密钥是所述发布终端在与所述可信服务器建立第一通信连接时,按照第一密钥交换协议所协商得到的;
所述接收所述任务发布方通过所述发布终端中的所述可信网页应用发送的与所述第二可信页面相关联的任务处理请求,包括:
通过所述可信任务发布平台中的所述可信网页应用与所述在所述发布终端建立所述第一通信连接;
基于所述第一通信连接接收所述任务发布方通过所述发布终端中的所述可信网页应用发送的与所述第二可信页面相关联的加密任务处理请求;所述加密任务处理请求为所述发布终端通过所述第一通信密钥对携带所述任务参数的任务处理请求进行加密后所得到的;
通过所述第二通信密钥对所述加密任务处理请求进行解密处理,得到携带所述任务参数的任务处理请求。
6.根据权利要求2所述的方法,其特征在于,所述可信任务发布平台还包括与所述可信服务器相关联的可信网页应用;所述可信网页应用部署在所述发布终端,且部署在所述发布终端中的所述可信网页应用用于为所述任务发布方展示所述第三可信页面;写入所述可信任务合约中的所述任务发布交易中记录有所述目标任务的任务名,且所述目标任务的任务名所关联的所述目标任务的任务状态为待转移状态;
所述在获取到所述任务发布方通过所述发布终端上的所述第三可信页面转移的目标资源数据时,构建用于将所述目标资源数据上链至所述区块链的资源上链请求,将所述资源上链请求发送至所述区块链节点,包括:
接收所述任务发布方通过所述发布终端中的所述可信网页应用发送的与所述第三可信页面相关联的资源处理请求;所述资源处理请求中携带所述任务发布方通过所述发布终端向所述可信任务发布平台所对应的平台账户转移的目标资源数据;
将所述资源处理请求中所携带的所述目标资源数据存储至所述平台账户,基于存储的所述目标资源数据和所述平台账户构建所述目标资源数据对应的第一资源转移交易;
将所述第一资源转移交易写入所述资源上链请求,且将所述资源上链请求发送至所述区块链节点,以使所述区块链节点在将包含所述第一资源转移交易的第三区块写入所述区块链时,从所述可信任务合约中读取所述目标任务的任务名,且将所述目标任务的任务名所关联的所述目标任务的任务状态由所述待转移状态更新为已转移状态。
7.根据权利要求1所述的方法,其特征在于,所述可信服务器运行在可信执行环境中,所述可信服务器用于通过所述可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供算力池加入页面;所述算力池加入页面包含用于请求加入所述第一算力池的第一算力池加入页面;所述待进行注册算力的算力节点中包含所述目标算力节点;
所述方法还包括:
接收运行在所述可信执行环境中的所述目标算力节点发送的第一算力注册请求;所述第一算力注册请求为所述目标算力节点响应于算力提供方针对所述第一算力池加入页面的触发操作所生成的;
从所述第一算力注册请求中获取所述算力提供方所触发的所述第一算力池加入页面中的第一标识,基于所述第一标识确定所述算力提供方所请求进行算力注册的算力池为所述第一算力池;
将所述目标算力节点和所述第一算力池的所述第一标识发送给所述区块链节点,以使所述区块链节点基于所述第一标识获取所述区块链上的第一业务合约,调用所述第一业务合约将所述目标算力节点添加至所述第一算力池。
8.根据权利要求1所述的方法,其特征在于,所述可信服务器运行在可信执行环境中,所述可信服务器用于通过所述可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供算力池加入页面;所述算力池加入页面包含用于请求加入所述第二算力池的第二算力池加入页面;所述待进行注册算力的算力节点中包含所述目标算力节点;
所述方法还包括:
接收运行在所述可信执行环境中的所述目标算力节点发送的第二算力注册请求;所述第二算力注册请求为所述目标算力节点响应于算力提供方针对所述第二算力池加入页面的触发操作所生成的;
从所述第二算力注册请求中获取所述算力提供方所触发的所述第二算力池加入页面中的第二标识,基于所述第二标识确定所述算力提供方所请求进行算力注册的算力池为所述第二算力池;
将所述目标算力节点和所述第二算力池的所述第二标识发送给所述区块链节点,以使所述区块链节点基于所述第二标识获取所述区块链上的第二业务合约,调用所述第二业务合约将所述目标算力节点添加至所述第二算力池。
9.根据权利要求1所述的方法,其特征在于,所述可信服务器运行在可信执行环境中,所述可信服务器用于通过所述可信任务发布平台中的可信网页应用为待进行注册算力的算力节点提供可信任务浏览页面;所述可信任务浏览页面用于为待进行注册算力的算力节点提供可信任务列表;所述可信任务列表为所述可信服务器通过所述区块链节点从所述区块链上的可信任务合约中所拉取到的;所述待进行注册算力的算力节点中包含所述目标算力节点;
所述方法还包括:
接收运行在所述可信执行环境中的所述目标算力节点发送的算力任务浏览请求;所述算力任务浏览请求为所述目标算力节点响应于算力提供方针对所述可信任务浏览页面中的所述可信任务列表的触发操作所生成的;
从所述算力任务浏览请求中获取所述算力提供方所触发的所述可信任务列表中的所述目标任务的任务名;
在确定所述目标任务的任务名所在的算力池为所述第一算力池时,将所述目标算力节点和所述第一算力池的第一标识发送给所述区块链节点,以使所述区块链节点基于所述第一标识获取所述区块链上的第一节点合约,调用所述第一节点合约将所述目标算力节点添加至所述第一算力池。
10.根据权利要求1所述的方法,其特征在于,与所述目标任务相关联的任务参数包括所述目标任务的任务描述信息;其中,所述任务描述信息包含由所述任务发布方所指定的任务执行时长以及执行所述目标任务所需的所述目标资源数据存储在所述可信任务发布平台所提供的平台账户中的资源存储时长阈值;
所述在所述任务发布方所指定的任务执行时长内,接收所述区块链节点返回的所述第一算力池和所述第二算力池,从所述第一算力池所包含的算力节点以及所述第二算力池所包含的算力节点中,确定用于执行所述目标任务的目标算力节点,将所述目标算力节点发送给所述区块链节点,包括:
在获取到执行所述目标任务所需的目标资源数据时,将所述目标资源数据转移至所述可信任务发布平台所提供的平台账户中,且在所述可信任务发布平台中累计用于存储所述目标资源数据的所述平台账户的所述资源存储时长;
在检测到所述资源存储时长未达到所述资源存储时长阈值时,确定所述资源存储时长处于所述任务发布方所指定的所述任务执行时长内;
在所述任务执行时长内,生成用于向所述区块链节点发送的算力获取请求,将所述算力获取请求发送给所述区块链节点,以使所述区块链节点基于所述算力获取请求从所述区块链上的第一节点合约中获取第一算力池,且从所述区块链上的第二节点合约中获取第二算力池;
在接收到所述区块链节点返回的所述第一算力池和所述第二算力池时,从所述第一算力池所包含的算力节点以及所述第二算力池所包含的算力节点中,确定用于执行所述目标任务的目标算力节点,将所述目标算力节点发送给所述区块链节点。
11.根据权利要求10所述的方法,其特征在于,与所述目标任务相关联的任务参数包括执行所述目标任务所需的算力度量值、以及执行所述目标任务所需的所述目标资源数据;
所述从所述第一算力池所包含的算力节点以及所述第二算力池所包含的算力节点中,确定用于执行所述目标任务的目标算力节点,包括:
从所述第一算力池所包含的算力节点以及所述第二算力池所包含的算力节点中,筛选与执行所述目标任务所需的所述算力度量值相符的算力节点,将筛选到的与所述算力度量值相符的算力节点作为候选算力节点;
从所述候选算力节点中,筛选执行所述目标任务所需的所述目标资源数据相符的算力节点,将筛选到的与所述目标资源数据相符的候选算力节点作为用于执行所述目标任务的目标算力节点。
12.根据权利要求1所述的方法,其特征在于,所述可信服务器和所述目标算力节点均运行在可信执行环境中;所述目标算力节点中包含在所述可信执行环境中与部署的所述目标可信应用相关联的可信代理组件;所述可信服务器中包含部署在所述可信执行环境中的代理远程认证组件;所述代理远程认证组件用于对所述可信代理组件进行远程认证;
所述在从所述区块链上拉取到处于所述已就绪状态的所述目标算力节点时,对所述目标算力节点中部署的所述目标可信应用进行远程认证,且在远程认证成功时,允许所述目标算力节点通过所述目标可信应用执行所述目标任务,包括:
在从所述区块链上拉取到处于所述已就绪状态的所述目标算力节点时,建立所述可信服务器中的所述代理远程认证组件与所述目标算力节点中的所述可信代理组件之间的第二通信连接;
基于所述第二通信连接控制所述代理远程认证组件向所述目标算力节点中的所述可信代理组件发起远程认证请求,以使所述目标算力节点根据所述远程认证请求,将在所述可信执行环境中部署的所述目标可信应用的本地报告添加至部署在所述可信执行环境中的所述可信代理组件的远程报告中,得到所述可信代理组件的环境应用验证报告;
接收所述目标算力节点上传的所述环境应用验证报告,基于所述环境应用验证报告对所述可信代理组件和所述目标可信应用进行远程认证,且在远程认证成功时,允许所述目标算力节点中的所述可信代理组件调用所述目标可信应用,以通过所述目标可信应用执行所述目标任务。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
在所述可信服务器与所述发布终端建立第一通信连接时,基于所述第一通信连接获取所述目标任务的任务参数,从所述任务参数中获取与所述发布终端的第一通信密钥相关联的第一加密数据密钥以及加密后的业务数据;所述第一加密数据密钥是所述发布终端通过所述第一通信密钥,对在所述发布终端中生成的数据密钥进行加密处理后所得到的;所述加密后的业务数据为所述发布终端通过所述数据密钥对所述任务发布方所请求执行的业务数据进行加密处理后所得到的;所述第一通信密钥是所述发布终端通过所述可信任务发布平台的平台公钥信息以及所述任务发布方的发布私钥信息所确定的;与所述第一通信密钥互为非对称密钥的第二通信密钥是所述可信服务器通过所述任务发布方的发布公钥信息和所述可信任务发布平台的平台私钥信息所确定的;所述第一通信密钥和所述第二通信密钥均属于第一共享通信密钥,且所述第一共享通信密钥是所述发布终端在与所述可信服务器建立所述第一通信连接时,按照第一密钥交换协议所协商得到的;
基于所述第二通信连接向所述目标算力节点发送第二密钥交换协议和所述可信任务发布平台的平台公钥信息,以使所述目标算力节点中的所述可信代理组件基于所述第二密钥交换协议获取所述目标算力节点对应的算力提供方的算力公钥信息和所述算力公钥信息对应的所述算力私钥信息,且基于所述平台公钥信息和所述算力私钥信息,生成所述目标算力节点对应的第三通信密钥,并将所述第三通信密钥存储至所述目标可信应用;
通过所述代理远程认证组件接收所述目标算力节点中的所述可信代理组件返回的所述算力公钥信息,按照所述第二密钥交换协议将由所述算力公钥信息和所述可信任务发布平台的平台私钥信息所确定通信密钥作为第四通信密钥;所述第四通信密钥和所述第三通信密钥为所述可信服务器和所述目标算力节点按照所述第二密钥交互协议所协商得到的第二共享通信密钥;所述第四通信密钥为所述第三通信密钥的非对称密钥;
在远程认证成功,且通过所述第二通信密钥对所述第一加密数据密钥进行解密处理,得到所述数据密钥时,控制所述代理远程认证组件通过所述第四通信密钥对所述数据密钥进行加密处理,得到第二加密数据密钥,将所述第二加密数据密钥和所述加密后的业务数据发送给所述目标算力节点,以使所述目标算力节点通过所述可信代理组件将所述第二加密数据密钥发送给存储有所述第三通信密钥的所述目标可信应用,以在所述目标可信应用中通过所述第三通信密钥对所述第二加密数据密钥进行解密处理,得到用于对所述加密后的业务数据进行解密处理的数据密钥;所述目标可信应用用于通过解密得到的所述数据密钥对所述加密后的业务数据进行解密处理,以解密得到所述业务数据。
14.根据权利要求13所述的方法,其特征在于,所述区块链上的所述第一节点合约中存储有由所述目标算力节点中的所述目标可信应用,通过所述可信代理组件上传的加密任务执行结果;所述加密任务执行结果为所述目标算力节点中的所述目标可信应用通过所述数据密钥对执行所述目标任务所得到的任务执行结果进行加密处理后所得到的;所述任务执行结果为所述目标可信应用在通过所述数据密钥解密得到所述任务发布方所请求执行的业务数据时,基于所述目标任务的任务描述信息对所述业务数据进行可信计算后所得到的;
所述方法还包括:
在所述目标资源数据所对应的资源存储时长阈值达到所述任务执行时长时,向所述区块链节点发送任务结果获取请求,以使所述区块链节点基于所述任务结果获取请求从所述区块链上的所述第一节点合约中获取到与所述目标可信应用相关联的所述加密任务执行结果;
接收所述区块链节点返回的所述加密任务执行结果,通过所述数据密钥对所述加密任务执行结果进行解密处理,得到与所述目标算力节点相关联的任务执行结果。
15.一种基于区块链的数据处理方法,其特征在于,所述方法由区块链节点执行,所述方法包括:
获取发布终端通过可信任务发布平台中的可信服务器发送的目标可信应用、与所述目标可信应用相关联的目标任务、以及执行所述目标任务所需的目标资源数据,将所述目标可信应用、所述目标任务、以及所述目标资源数据上链至所述区块链;
获取所述可信服务器在所述任务发布方所指定的任务执行时长内发送的算力获取请求,基于所述算力获取请求从所述区块链上的第一节点合约中获取第一算力池,且从所述区块链上的第二节点合约中获取第二算力池,将所述第一算力池和所述第二算力池返回给所述可信服务器,以使所述可信服务器从所述第一算力池所包含的算力节点以及所述第二算力池所包含的算力节点中,确定用于执行所述目标任务的目标算力节点;
接收所述可信服务器发送的所述目标算力节点,将所述目标算力节点写入所述区块链上的所述第一节点合约,在所述第一节点合约中记录所述目标算力节点的节点任务状态;所述节点任务状态包含已就绪状态;所述已就绪状态是在所述目标算力节点从所述区块链上获取到所述目标任务以及部署了所述目标任务所对应的所述目标可信应用时所确定的;
在接收到所述可信服务器针对处于所述已就绪状态的所述目标算力节点的算力拉取请求时,将处于所述已就绪状态的所述目标算力节点返回给所述可信服务器,以使所述可信服务器对所述目标算力节点中部署的所述目标可信应用进行远程认证,且在远程认证成功时,允许所述目标算力节点通过所述目标可信应用执行所述目标任务;
获取所述目标算力节点通过所述目标可信应用执行所述目标任务所得到的任务执行结果,将所述任务执行结果写入所述第一节点合约;
在获取到所述可信服务器发送的任务结果获取请求时,基于所述任务结果获取请求将所述第一节点合约中的所述任务执行结果返回给所述可信服务器,以使所述可信服务器将所述任务执行结果返回值所述发布终端,且将所述目标资源数据转移至所述目标算力节点。
16.一种基于区块链的数据处理装置,其特征在于,所述装置运行在可信任务发布平台中的可信服务器上,所述装置包括:
任务资源获取模块,用于获取任务发布方通过发布终端上传的目标可信应用、与所述目标可信应用相关联的目标任务、以及执行所述目标任务所需的目标资源数据,将所述目标任务、所述目标可信应用、以及所述目标资源数据发送给与所述区块链相关联的区块链节点,以使所述区块链节点将所述目标可信应用、所述目标任务、以及所述目标资源数据上链至所述区块链;
目标算力节点确定模块,用于在所述任务发布方所指定的任务执行时长内,接收所述区块链节点返回的所述第一算力池和所述第二算力池,从所述第一算力池所包含的算力节点以及所述第二算力池所包含的算力节点中,确定用于执行所述目标任务的目标算力节点,将所述目标算力节点发送给所述区块链节点,以使所述区块链节点将所述目标算力节点写入所述区块链上的第一节点合约,在所述第一节点合约中记录所述目标算力节点的节点任务状态;所述节点任务状态包含已就绪状态;所述已就绪状态是所述区块链节点在确定所述目标算力节点从所述区块链上获取到所述目标任务以及部署了所述目标任务所对应的所述目标可信应用时所确定的;
远程认证模块,用于在从所述区块链上拉取到处于所述已就绪状态的所述目标算力节点时,对所述目标算力节点中部署的所述目标可信应用进行远程认证,且在远程认证成功时,允许所述目标算力节点通过所述目标可信应用执行所述目标任务;
任务结果获取模块,用于在从所述区块链上的所述第一节点合约中获取到由所述目标算力节点执行所述目标任务所得到的任务执行结果时,将所述任务执行结果返回至所述发布终端,且将所述目标资源数据转移至所述目标算力节点。
17.一种基于区块链的数据处理装置,其特征在于,所述装置运行在区块链节点上,所述装置包括:
任务资源上链模块,用于获取发布终端通过可信任务发布平台中的可信服务器发送的目标可信应用、与所述目标可信应用相关联的目标任务、以及执行所述目标任务所需的目标资源数据,将所述目标可信应用、所述目标任务、以及所述目标资源数据上链至所述区块链;
目标算力获取模块,用于获取所述可信服务器在所述任务发布方所指定的任务执行时长内发送的算力获取请求,基于所述算力获取请求从所述区块链上的第一节点合约中获取第一算力池,且从所述区块链上的第二节点合约中获取第二算力池,将所述第一算力池和所述第二算力池返回给所述可信服务器,以使所述可信服务器从所述第一算力池所包含的算力节点以及所述第二算力池所包含的算力节点中,确定用于执行所述目标任务的目标算力节点;
目标算力节点上链模块,用于接收所述可信服务器发送的所述目标算力节点,将所述目标算力节点写入所述区块链上的所述第一节点合约,在所述第一节点合约中记录所述目标算力节点的节点任务状态;所述节点任务状态包含已就绪状态;所述已就绪状态是在所述目标算力节点从所述区块链上获取到所述目标任务以及部署了所述目标任务所对应的所述目标可信应用时所确定的;
目标算力拉取模块,用于在接收到所述可信服务器针对处于所述已就绪状态的所述目标算力节点的算力拉取请求时,将处于所述已就绪状态的所述目标算力节点返回给所述可信服务器,以使所述可信服务器对所述目标算力节点中部署的所述目标可信应用进行远程认证,且在远程认证成功时,允许所述目标算力节点通过所述目标可信应用执行所述目标任务;
任务结果上链模块,用于获取所述目标算力节点通过所述目标可信应用执行所述目标任务所得到的任务执行结果,将所述任务执行结果写入所述区块链上的所述第一节点合约;
任务结果返回模块,用于在获取到所述可信服务器发送的任务结果获取请求时,基于所述任务结果获取请求将所述第一节点合约中的所述任务执行结果返回给所述可信服务器,以使所述可信服务器将所述任务执行结果返回值所述发布终端,且将所述目标资源数据转移至所述目标算力节点。
18.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-15任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-15任一项所述的方法。
20.一种计算机程序产品,其特征在于,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现权利要求1-15任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211450643.7A CN118101640A (zh) | 2022-11-18 | 2022-11-18 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211450643.7A CN118101640A (zh) | 2022-11-18 | 2022-11-18 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118101640A true CN118101640A (zh) | 2024-05-28 |
Family
ID=91148042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211450643.7A Pending CN118101640A (zh) | 2022-11-18 | 2022-11-18 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118101640A (zh) |
-
2022
- 2022-11-18 CN CN202211450643.7A patent/CN118101640A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7436568B2 (ja) | ブロックチェーンにより実現される方法及びシステム | |
CN112214780B (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
EP3721603B1 (en) | System and method for creating decentralized identifiers | |
CN109462588B (zh) | 一种基于区块链的去中心化数据交易方法及系统 | |
CN110855791B (zh) | 一种区块链节点部署方法及相关设备 | |
JP7075393B2 (ja) | ブロックチェーンにより実現されるシステム及び方法 | |
CN111541785A (zh) | 基于云计算的区块链数据处理方法及装置 | |
CN111460400B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN111740966A (zh) | 一种基于区块链网络的数据处理方法及相关设备 | |
JP2024505692A (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
CN110619222A (zh) | 基于区块链的授权处理方法、装置、系统及介质 | |
CN110599144A (zh) | 一种区块链节点的入网方法以及装置 | |
CN116980163A (zh) | 基于可信执行环境的数据处理方法、装置、设备及介质 | |
CN112702419B (zh) | 基于区块链的数据处理方法、装置、设备和存储介质 | |
US11610012B1 (en) | Systems and processes for providing secure client controlled and managed exchange of data between parties | |
CN101789973A (zh) | 一种构建糅合应用的方法及系统 | |
CN110602133B (zh) | 智能合约处理方法、区块链管理设备及存储介质 | |
CN113869901B (zh) | 密钥生成方法、装置、计算机可读存储介质及计算机设备 | |
Garrigues et al. | Protecting mobile agents from external replay attacks | |
CN118101640A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
Alblooshi | Blockchain-based Ownership Management for Medical IoT (MIoT) Devices and their Data | |
CN115587384A (zh) | 敏感信息的处理方法和装置、存储介质及电子设备 | |
Oktian et al. | Secure decentralized firmware update delivery service for Internet of Things | |
CN115967495A (zh) | 基于区块链的公益应用管理方法和装置 | |
GB2532248A (en) | Network based identity federation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |