一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

区块链访问机器学习模型的方法、装置、设备和介质与流程

2022-04-14 01:00:25 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及区块链、数据可信计算技术。


背景技术:

2.区块链网络由分布式节点构成,每个节点都会存储完整的数据,而区块链上每一次智能合约调用都会由所有节点执行和验证,由此实现业务功能并保证其可靠性。
3.但是,由于诸多节点均需要执行和验证智能合约的运行,这会带来高昂的计算成本和延迟。因此,区块链上对智能合约的调用,不适用于运行计算密集型的机器学习模型或深度机器学习模型,运行结果上链存储也会带来大量存储资源的消耗。这导致智能合约的功能有所欠缺,不够智能。


技术实现要素:

4.本公开提供了一种区块链访问机器学习模型的方法、装置、设备和介质,以减少链上存储运行结果带来的存储资源的消耗。
5.根据本公开的一方面,提供了一种区块链访问机器学习模型的方法,应用于区块链节点,所述方法包括:在执行业务事务请求的过程中,调用人工智能合约,以请求执行机器学习请求 ;通过所述人工智能合约处理所述机器学习请求,并使得链外设置的可信计算设备,运行机器学习模型以执行所述机器学习请求;通过所述人工智能合约获取所述可信计算设备执行所述机器学习请求后反馈的机器学习结果;通过所述人工智能合约将所述机器学习结果反馈给所述业务事务请求。
6.根据本公开的另一方面,提供了一种区块链访问机器学习模型的方法,应用于可信计算设备,所述方法包括:获取区块链上部署的人工智能合约所执行的机器学习请求;根据所述机器学习请求,在可信计算设备中运行机器学习模型以执行所述机器学习请求;将执行所述机器学习请求后得到的机器学习结果反馈给所述人工智能合约。
7.根据本公开的另一方面,提供了一种区块链访问机器学习模型的装置,应用于区块链节点,所述装置包括:智能合约调用模块,用于在执行业务事务请求的过程中,调用人工智能合约,以请求执行机器学习请求;机器学习模型运行模块,用于通过所述人工智能合约处理所述机器学习请求,并使得链外设置的可信计算设备,运行机器学习模型以执行所述机器学习请求;机器学习结果获取模块,用于通过所述人工智能合约获取所述可信计算设备执行所述机器学习请求后反馈的机器学习结果;
业务事务请求反馈模块,用于通过所述人工智能合约将所述机器学习结果反馈给所述业务事务请求。
8.根据本公开的另一方面,提供了一种区块链访问机器学习模型的装置,应用于可信计算设备,所述装置包括:机器学习请求获取模块,用于获取区块链上部署的人工智能合约所执行的机器学习请求;机器学习请求执行模块,用于根据所述机器学习请求,在可信计算设备中运行机器学习模型以执行所述机器学习请求;机器学习结果反馈模块,用于将执行所述机器学习请求后得到的机器学习结果反馈给所述人工智能合约。
9.根据本公开的另一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例所提供的任意一种区块链访问机器学习模型方法。
10.根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例所提供的任意一种区块链访问机器学习模型方法。
11.根据本公开的另一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开实施例所提供的任意一种区块链访问机器学习模型方法。
12.根据本公开的技术,减少了链上存储运行结果带来的存储资源的消耗,提高了智能合约功能的智能性。
13.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
14.附图用于更好地理解本方案,不构成对本公开的限定。其中:图1是根据本公开实施例提供的一种区块链访问机器学习模型方法的示意图;图2是根据本公开实施例提供的另一种区块链访问机器学习模型方法的示意图;图3a是根据本公开实施例提供的又一种区块链访问机器学习模型方法的示意图;图3b是根据本公开实施例提供的一种区块链访问机器学习模型方法的交互示意图;图4是根据本公开实施例提供的一种区块链访问机器学习模型装置的结构示意图;图5是根据本公开实施例提供的一种区块链访问机器学习模型装置的结构示意图;图6是用来实现本公开实施例的区块链访问机器学习模型的方法的电子设备的框
图。
具体实施方式
15.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
16.图1是根据本公开实施例提供的一种区块链访问机器学习模型方法的示意图,本公开实施例可适用于区块链访问链外可信计算设备,以获取机器学习结果的情况。该方法可由一种区块链访问机器学习模型装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为区块链节点。参考图1,该方法应用于区块链节点,该方法具体包括如下:s110、在执行业务事务请求的过程中,调用人工智能合约,以请求执行机器学习请求。
17.在区块链系统中可以部署各种智能合约来实现相应的业务功能,可称为业务智能合约,业务功能例如为:电子货物的购买、游戏等直接提供给用户的功能,业务功能也可以是在区块链系统中需要为其他业务智能合约提供的功能,例如,转账数据处理、权限验证等。用户可通过区块链的客户端获取业务智能合约提供的接口界面。
18.其中,业务事务请求可以是由用户根据自身需求通过区块链的客户端向业务智能合约所发起的事务请求。人工智能合约可以是在业务事务请求执行的过程中,遇到需要机器学习模型或深度学习模型进行密集型数据计算时所需调用的、用于执行机器学习请求的智能合约。机器学习请求可以是业务事务请求执行过程中,遇到需要进行密集型数据计算的情况时所产生的请求。例如,机器学习请求可以是请求采用机器学习模型或深度学习模型进行大规模的数据计算。
19.示例性的,用户可以根据实际需求向区块链节点发起业务事务请求,区块链节点在执行业务事务请求的过程中,若需要进行大规模数据计算时,则可以对部署在区块链中的人工智能合约进行调用,以请求执行机器学习请求,从而可以通过机器学习模型对大规模数据进行计算。
20.s120、通过人工智能合约处理机器学习请求,并使得链外设置的可信计算设备,运行机器学习模型以执行机器学习请求。
21.其中,可信计算设备可以是具备可信执行环境(trusted execution environment,tee)的计算设备。可信计算设备可以基于任意机器学习模型或深度学习模型来进行大规模数据计算。
22.示例性的,可以通过人工智能合约执行机器学习请求,并由设置于区块链链外的可信计算设备对机器学习请求进行获取;区块链链外的可信计算设备获取到机器学习请求后,通过机器学习模型对机器学习请求进行处理。例如,可以通过对区块链链外可信计算设备的接口调用来发送机器学习请求。或者可以采用其他方式,使得可信计算设备发现机器学习请求并执行。
23.在一个可选的实施例中,通过人工智能合约处理机器学习请求,并使得链外设置
的可信计算设备,运行机器学习模型以执行机器学习请求包括:通过人工智能合约处理机器学习请求,产生事件日志,记录在区块中;事件日志记录于区块中区块头的日志树;其中,事件日志用于在被可信计算设备监听到时,触发可信计算设备获取机器学习请求,并运行机器学习模型以执行机器学习请求。
24.其中,事件日志中所要记录的内容可以由相关技术人员在进行人工智能合约的部署时预先设定。例如,事件日志可以是人工智能合约处理机器学习请求的过程中所产生的事件信息。事件日志可以记录在区块中,其中,区块包括区块头或区块体,即事件日志可以记录在区块头或区块体中。区块体中可以记录区块的详细数据,例如,可以记录区块链执行过程中产生或接收的至少一条请求数据。区块头中可以记录上一个区块的哈希值和本区块的哈希值,以及至少一颗用于记录信息的树等。例如,事件日志可以记录在区块头中的日志树中。日志树可以是用于记录区块中各事件信息的数据结构。事件信息可以是机器学习请求事件的相关信息。
25.示例性的,当人工智能合约在执行机器学习请求时,可以产生处理该机器学习请求所对应的机器学习事件日志,并记录在区块头的日志树中。对于事件日志中所形成的内容可以进行预先定义,即设定在人工智能合约执行机器学习请求时所产生的机器学习事件都包括哪些信息。在产生事件日志后,区块链节点可以将事件日志在网络中进行广播。相应的,可信计算设备可以对区块链中所产生的事件进行监听,若监听到机器学习事件日志,则可以触发可信计算设备获取机器学习请求,以供可信计算设备能够运行机器学习模型以执行该机器学习请求。
26.本可选实施例方案通过人工智能合约处理机器学习请求,产生事件日志,并将事件日志记录在区块中区块头的日志树,实现了在区块链节点中对事件日志的记录。通过可信计算设备对区块中所产生的事件日志进行监听,能够准确地获取到区块链节点中的机器学习请求,实现了对链上机器学习请求的及时获取。此外,采用监听的方式,还可以使得区块链的人工智能合约无需对特定的可信计算设备进行接口调用。区块链网络包括多个区块链节点,若分别调用可信计算设备,则可能产生大量调用请求。
27.s130、通过人工智能合约获取可信计算设备执行机器学习请求后反馈的机器学习结果。
28.其中,机器学习结果可以是可信计算设备通过运行机器学习模型来执行机器学习请求后产生的结果。
29.示例性的,可信计算设备运行机器学习模型,通过机器学习模型执行机器学习请求,从而产生机器学习结果。可信计算设备将机器学习结果反馈至人工智能合约,以供人工智能合约对可信计算设备反馈的机器学习结果进行处理。
30.在一个可选实施例中,通过人工智能合约获取可信计算设备执行机器学习请求后反馈的机器学习结果之后,还包括:通过人工智能合约,采用可信计算设备的公钥对机器学习结果的签名进行验证,签名为可信计算设备采用私钥对机器学习请求参数和机器学习结果的签名。
31.示例性的,可以通过可信计算设备预先生成一对公私钥,并将公钥上传至人工智能合约上。可信计算设备采用私钥对机器学习请求参数和机器学习结果进行签名,并将已进行签名的机器学习结果反馈至人工智能合约。通过人工智能合约,利用区块链中预先上
传并存储的可信计算设备的公钥,对机器学习请求参数和机器学习结果进行有效性验证,并验证签名是否由可信计算设备生成,以及验证签名的机器学习请求参数与区块链中存储的请求参数是否一致。
32.本可选实施例中可信计算设备采用私钥对机器学习请求参数和机器学习结果进行签名,通过人工智能合约,采用可信计算设备的公钥对机器学习结果的签名进行验证,确保了获取到的机器学习结果的可靠性。
33.s140、通过人工智能合约将机器学习结果反馈给业务事务请求。
34.示例性的,人工智能合约可以将由可信计算设备反馈的机器学习结果反馈至对应的业务事务请求。
35.在一个可选实施例中,在执行业务事务请求的过程中,调用人工智能合约,以请求执行机器学习请求之前,还包括:获取可信计算设备的注册事务请求;在执行注册事务请求的过程中,调用人工智能合约,获取注册事务请求中可信计算设备的标识、模型代码存证和公钥,并上链存储。
36.其中,注册事务请求可以是由可信计算设备发起的向区块链中进行设备信息注册的事务请求。可信计算设备的标识可以是能够表征可信计算设备的唯一标识,用于对可信计算设备进行身份验证。模型代码存证用于表征可信计算设备所采用的机器学习模型或算法,进而可用于对机器学习结果进行验证。可信计算设备的公钥可以用于对可信计算设备反馈的机器学习结果的签名进行验证。
37.示例性的,区块链节点通过获取可信计算设备的注册事务请求,在执行该注册事务请求的过程中对人工智能合约进行调用,将获取的注册事务请求中的可信计算设备的标识,模型代码存证和公钥,存储至区块链中。
38.本可选实施例通过在执行注册事务请求的过程中,调用人工智能合约,能够获取注册事务请求中所包括的可信计算设备的标识,模型代码存证和公钥,并存储至区块链中,实现了对可信计算设备和所生成机器学习结果的验证,保证了获取的机器学习结果的可靠性。
39.在一个具体实施方式中,在分布式节点的区块链网络中,区块链网络获取到请求时,是由每个区块链节点同时对请求进行执行的。在执行业务事务请求的过程中,所有区块链节点均需要调用人工智能合约来执行请求,从而避免单个区块链节点的作恶行为,确保实现的业务功能具有可靠性。然而由于每个节点均需要调用人工智能合约执行业务事务请求,导致计算的时间较长、效率较低。因此,在各区块链节点执行业务事务请求的过程中,若遇到需要采用机器学习模型进行大量计算的情况时,可以由链外的可信计算设备进行计算,并由可信计算设备将计算的结果反馈至各区块链节点,从而减少各区块链节点的计算成本,减少计算时间,提高计算效率。
40.本公开实施例通过在执行业务事务请求的过程中,调用人工智能合约,以请求执行机器学习请求;通过人工智能合约处理机器学习请求,并使得链外设置的可信计算设备,运行机器学习模型以执行机器学习请求;通过人工智能合约获取可信计算设备执行机器学习请求后反馈的机器学习结果;通过人工智能合约将机器学习结果反馈给业务事务请求。上述方案通过人工智能合约,使得链外设置的可信计算设备通过机器学习模型执行机器学习请求,减少了链上各区块节点均需要对密集型数据进行计算所带来的计算成本和延迟,
以及减少了存储运行结果带来的存储资源的消耗,提高了智能合约功能的智能性。
41.图2是根据本公开实施例提供的另一种区块链访问机器学习模型方法的示意图,本实施例是在上述实施例的基础上提出的一种可选方案。
42.参见图2,本实施例提供的区块链访问机器学习模型的方法包括:s210、在运行业务智能合约执行业务事务请求的过程中,根据调用人工智能合约的指令,调用人工智能合约,以请求执行机器学习请求。
43.其中,业务智能合约可以是专门用于执行业务事务请求的智能合约。调用人工智能合约的指令可以用于在业务智能合约的执行阶段,对人工智能合约进行调用。需要说明的是,可以认为人工智能合约的指令就是机器学习请求,因为除了调用人工智能合约的接口函数之外,通常还包括输入参数,例如,数据源的获取方式、调用的模型类型和模型执行参数等。
44.示例性的,可以通过运行业务智能合约执行用户发起的业务事务请求,当该业务事务请求执行过程中,遇到需要机器学习模型进行大规模数据计算的条件时,当前的业务智能合约可以发起调用人工智能合约的指令,通过跨合约调用的方式,调取人工智能合约,进而产生机器学习请求。
45.需要说明的是,调用机器学习模型,是业务智能合约本身的需求,而并非用户的直接需求。例如,业务智能合约是进行用户情绪识别,接收到用户的人脸图像,业务智能合约可以调用机器学习模型来进行人脸图像的识别以确定情绪。
46.可选的,人工智能合约在获取到业务事务请求之后,检测业务事务请求的请求参数,确定请求参数是否合法,若请求参数不合法,则直接向对应的用户返回错误请求。其中,待进行检测的请求参数可以包括调用人工智能合约的业务合约的签名、是否具备调用权限、输入参数是否满足调用要求、gas代币是否充足等。
47.s220、通过人工智能合约执行机器学习请求,以确定请求编号、请求数据、请求哈希值、请求者地址和回调函数,使得链外设置的可信计算设备,运行机器学习模型以执行机器学习请求。
48.其中,请求编号可以是机器学习请求中所包含的标识信息,该标识信息可以用于对不同机器学习请求进行区分。请求数据可以用于描述对机器学习的需求。请求哈希值可以是人工智能合约对机器学习请求进行哈希计算得到的,该请求哈希值可以用于区块链各节点对机器学习事件进行共识。请求者可以是调用人工智能合约的业务智能合约,请求者地址可以是调用人工智能合约的业务智能合约的地址。回调函数可以将生成的机器学习结果反馈至业务智能合约时所需使用的函数。
49.示例性的,可以通过人工智能合约执行机器学习请求,根据执行结果确定请求编号、请求数据、请求哈希值、请求者地址和回调函数。
50.s230、获取可信计算设备发起的结果反馈事务请求。
51.其中,结果反馈事务请求可以是向调用人工智能合约的区块链节点反馈机器学习结果的事务请求。
52.s240、在执行结果反馈事务请求的过程中,调用人工智能合约,以获取可信计算设备执行机器学习请求后反馈的机器学习结果。
53.示例性的,可信计算设备可以安装有区块链的客户端,可以在产生机器学习结果
后,通过区块链的客户端,向对应区块链节点发送结果反馈事务请求,该区块链节点可以调用人工智能合约,获取可信计算设备反馈的机器学习结果。
54.s250、通过人工智能合约,将机器学习结果通过回调函数反馈给业务事务请求。
55.示例性的,人工智能合约可以通过调用机器学习请求中所包括的回调函数,将机器学习结果通过回调函数反馈至对应的业务事务请求中。
56.本公开实施例方案通过在运行业务智能合约执行业务事务请求的过程中,根据调用人工智能合约的指令,调用人工智能合约,以请求执行机器学习请求,实现了对人工智能合约的跨合约调用,而无需单独发起调用人工智能合约的业务事务请求,即可产生机器学习请求。通过基于机器学习请求中的回调函数,使得人工智能合约能够将机器学习结果通过回调函数反馈至对应的业务事务请求中,从而保证了业务事务请求所获取到的机器学习结果的可靠性。通过执行可信计算设备发起的反馈事务请求,调用人工智能合约对可信计算设备中生成的机器学习结果进行获取,从而保证人工智能合约所获取到的机器学习结果的可靠性。
57.图3a是根据本公开实施例提供的一种区块链访问机器学习模型方法的示意图,本公开实施例可适用于区块链访问链外可信计算设备,以获取机器学习结果的情况。该方法可由一种区块链访问机器学习模型装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为可信计算设备。参考图3a,该方法应用于可信计算设备,该方法具体包括如下:s310、获取区块链上部署的人工智能合约所执行的机器学习请求。
58.其中,人工智能合约可以是在业务事务请求执行的过程中,遇到需要机器学习模型或深度学习模型进行密集型数据计算时所需调用的、用于执行机器学习请求的智能合约。机器学习请求可以是业务事务请求执行过程中,遇到需要进行密集型数据计算的情况时所产生的请求。
59.在一个可选实施例中,获取区块链上部署的人工智能合约所执行的机器学习请求包括:监听区块链中的事件日志;其中,事件日志记录于区块中区块头的日志树;如果监听到事件日志中出现机器学习请求时,则从事件日志中读取机器学习请求。
60.其中,事件日志可以是人工智能合约处理机器学习请求的过程中所产生的事件信息。日志树可以是用于记录区块中各事件信息的数据结构。
61.示例性的,可信计算设备可以对区块链中的事件日志进行监听,当监听到出现机器学习请求的事件日志时,可以从事件日志中获取机器学习请求,从而事件对区块链中机器学习请求的及时获取。
62.本可选实施例通过监听区块链中的事件日志的方式,实现了对机器学习请求的获取。如果监听到事件日志中出现机器学习请求时,则从事件日志中读取机器学习请求。采用监听区块链上的事件日志的方式,可以使得可信计算设备无需对人工智能合约进行接口连接,区块链网络包括多个区块链节点,若可信计算设备分别对大量的区块链节点进行接口连接,则可能会获取大量的接口发送的调用请求。
63.s320、根据机器学习请求,在可信计算设备中运行机器学习模型以执行机器学习请求。
64.可信计算设备可以基于任意机器学习模型或机器学习算法执行机器学习请求从
而产生机器学习结果。
65.其中,机器学习请求的请求参数为能够区分表征机器学习请求的参数,可以包括请求编号、请求数据、请求哈希值、请求者地址和回调函数中的至少一种。
66.其中,请求编号可以是机器学习请求中所包含的标识信息,该标识信息可以用于对不同机器学习请求进行区分。请求数据可以用于描述对机器学习的需求。请求哈希值可以是人工智能合约对机器学习请求进行哈希计算得到的,该请求哈希值可以用于区块链各节点对机器学习事件进行共识。请求者可以是调用人工智能合约的业务智能合约,请求者地址可以是调用人工智能合约的业务智能合约的地址。回调函数可以将生成的机器学习结果反馈至业务智能合约时所需使用的函数。
67.示例性的,可信计算设备可以通过对获取的机器学习请求解析,确定机器学习请求的请求参数,根据机器学习请求的请求参数,基于机器学习模型或机器学习算法,生成机器学习结果。
68.s330、将执行机器学习请求后得到的机器学习结果反馈给人工智能合约。
69.示例性的,可信计算设备在生成机器学习结果后,可以向区块链发起结果反馈事务请求,从而将机器学习结果反馈至人工智能合约。
70.可选的,可信计算设备中设置有可信计算环境和非可信计算环境。其中,非可信计算环境包括中转模块。中转模块可以用于获取机器学习请求,以及反馈机器学习结果。机器学习模型的运行可以在可信计算设备的可信计算环境中执行。
71.其中,非可信计算环境可以是可信计算设备中未受保护的非安全区域;可信计算环境可以是可信计算设备中受到保护的安全区域。中转模块可以用于区块链与可信计算设备的可信计算环境之间进行数据通讯。人工智能合约和可信计算设备之间可以通过点对点(peer-to-peer,p2p)的方式进行通信。
72.在一个可选实施例中,可以在inter sgx(intel software guard extension,英特尔指令集架构扩展)硬件系统上构建一套链外可信人工智能系统,并将核心组件运行在可信计算环境中,从硬件层面提供保护,为链上人工智能合约提供可信的机器学习计算能力。可以将可信计算环境作为enclave模块,将除可信计算环境之外的其他外部环境作为relay模块。其中,enclave模块为inter sgx中的可信计算环境,relay模块为inter sgx中的非可信计算环境。relay模块作为链上链下的中转模块,主要用于监听人工智能合约的事件日志,并审核机器学习请求的请求参数是否符合标准。enclave模块还用于将enclave内的执行结果发送至链上。运行在enclave模块中的代码由intel sgx硬件提供保护,不会遭受外界的攻击,并且在其中处理的数据不会外泄,因此,核心的模型计算过程在enclave模块中执行。enclave模块主要用于解析relay传来的机器学习请求,包括解密机器学习请求中的加密信息、运行机器学习模型、返回机器学习结果给relay模块等。
73.在一个可选实施例中,在获取区块链上部署的人工智能合约所执行的机器学习请求之前,还包括:向区块链发起可信计算设备的注册事务请求,以调用人工智能合约执行注册事务请求,将可信计算设备的标识、模型代码存证和公钥,上链存储;获取区块链中人工智能合约的地址,并根据地址启动对人工智能合约产生的事件日志的监听。
74.其中,注册事务请求可以是由可信计算设备发起的向区块链中进行设备信息注册的事务请求。可信计算设备的标识可以是能够表征可信计算设备的唯一标识,用于对可信
计算设备进行身份验证。模型代码存证可用于对可信计算设备反馈的机器学习结果进行验证。可信计算设备的公钥可以用于对可信计算设备反馈的机器学习结果的签名进行验证。
75.示例性的,可信计算设备可以预先向区块链发起注册事务请求,人工智能合约执行该注册事务请求,获取注册事务请求中的可信计算设备的标识、模型代码存证和公钥,并存储至区块链中。
76.具体的,可信计算设备可以在人工智能合约执行注册事务请求时,对人工智能合约的地址的进行获取,从而针对人工智能合约的地址对人工智能合约产生的事件日志进行监听。
77.本可选实施例方案通过发起可信计算设备的注册事务请求,预先将可信计算机设备的标识、模型代码存证和公钥进行上链存储,使得人工智能合约可以对接收到的可信计算设备反馈的机器学习结果进行验证,保证了所获取机器学习结果的可靠性。
78.可选的,人工智能合约可以是预言机合约,可信计算设备可以部署于预言机节点中。
79.在一个具体实施例中,参见图3b所示的一种区块链访问机器学习模型方法的交互示意图,用户可以向部署在区块链系统中的业务智能合约发起调用,即发起业务事务请求。业务事务请求在执行过程中,若需要对大规模数据进行计算,则可以跨合约调用人工智能合约,由人工智能合约请求执行机器学习请求。人工智能合约对机器学习请求进行响应,检测请求参数,如果参数不合法,直接返回错误;如果请求参数合法,则计算请求数据的哈希值,并将请求编号、请求数据、哈希值以及请求者地址与回调函数存到区块链上,并创建相应的事件日志。链下计算服务对事件日志进行监听。链下计算服务可以是在intel sgx硬件系统上构建一套链外可信人工智能系统,系统核心组件运行在可信执行环境中。链下计算服务内包含非可信区域relay和可信区域enclave。可以通过relay模块监听事件日志,若检测到有新的请求后,relay模块将请求参数传递给enclave模块,enclave模块解析请求,执行模型,例如,模型可以是机器学习模型。enclave模块用自己的私钥对请求参数和计算结果进行签名,并将计算结果和签名传递给relay模块。relay模块向链上人工智能合约发送交易,链上人工智能合约接收到relay反馈的数据后验证签名。若验证合格,链上人工智能合约调用请求者的回调函数,将数据返回给业务智能合约。链上人工智能合约更新该请求的状态。
80.本公开实施例通过获取区块链上部署的人工智能合约所执行的机器学习请求;根据机器学习请求,在可信计算设备中运行机器学习模型以执行机器学习请求;将执行所述机器学习请求后得到的机器学习结果反馈给所述人工智能合约。上述方案通过在链外设置可信计算设备,并由可信计算设备的机器学习模型执行机器学习请求,减少了链上各区块节点均需要对密集型数据进行计算所带来的计算成本和延迟,以及减少了存储运行结果带来的存储资源的消耗,提高了智能合约功能的智能性。
81.图4是根据本公开实施例提供的一种区块链访问机器学习模型装置的示意图,本实施例可适用于区块链访问链外可信计算设备,以获取机器学习结果的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的区块链访问机器学习模型方法。该电子设备可以为区块链节点,参考图4,该区块链访问机器学习模型装置400具体包括如下:智能合约调用模块401,用于在执行业务事务请求的过程中,调用人工智能合约,
以请求执行机器学习请求;机器学习模型运行模块402,用于通过所述人工智能合约处理所述机器学习请求,并使得链外设置的可信计算设备,运行机器学习模型以执行所述机器学习请求;机器学习结果获取模块403,用于通过所述人工智能合约获取所述可信计算设备执行所述机器学习请求后反馈的机器学习结果;业务事务请求反馈模块404,用于通过所述人工智能合约将所述机器学习结果反馈给所述业务事务请求。
82.本公开实施例通过在执行业务事务请求的过程中,调用人工智能合约,以请求执行机器学习请求;通过人工智能合约处理机器学习请求,并使得链外设置的可信计算设备,运行机器学习模型以执行机器学习请求;通过人工智能合约获取可信计算设备执行机器学习请求后反馈的机器学习结果;通过人工智能合约将机器学习结果反馈给业务事务请求。上述方案通过人工智能合约,使得链外设置的可信计算设备通过机器学习模型执行机器学习请求,减少了链上各区块节点均需要对密集型数据进行计算所带来的计算成本和延迟,以及减少了存储运行结果带来的存储资源的消耗,提高了智能合约功能的智能性。
83.在一种可选的实施方式中,所述机器学习模型运行模块402,包括:事件日志产生单元,用于通过所述人工智能合约处理所述机器学习请求,产生事件日志,记录在区块中;其中,所述事件日志用于在被所述可信计算设备监听到时,触发所述可信计算设备获取所述机器学习请求,并运行机器学习模型以执行所述机器学习请求。
84.在一种可选的实施方式中,所述机器学习模型运行模块402,包括:第一机器学习请求执行单元,用于通过所述人工智能合约执行所述机器学习请求,以确定请求编号、请求数据、请求哈希值、请求者地址 和回调函数;相应的,所述业务事务请求反馈模块404,包括:结果反馈单元,用于通过所述人工智能合约,将所述机器学习结果通过所述回调函数反馈给所述业务事务请求。
85.在一种可选的实施方式中,智能合约调用模块401,包括:第二机器学习请求执行单元,用于在运行业务智能合约执行所述业务事务请求的过程中,根据调用人工智能合约的指令 ,调用所述人工智能合约,以请求执行机器学习请求。
86.在一种可选的实施方式中,所述机器学习结果获取模块403,包括:事务请求获取单元,用于获取可信计算设备发起的结果反馈事务请求;机器学习结果获取单元,用于在执行所述结果反馈事务请求的过程中,调用所述人工智能合约,以获取所述可信计算设备执行所述机器学习请求后反馈的机器学习结果。
87.在一种可选的实施方式中,所述装置还包括:签名验证装置,用于在通过所述人工智能合约获取所述可信计算设备执行所述机器学习请求后反馈的机器学习结果之后,通过所述人工智能合约,采用所述可信计算设备的公钥对所述机器学习结果的签名进行验证,所述签名为所述可信计算设备采用私钥对机器学习请求参数和机器学习结果的签名。
88.在一种可选的实施方式中,所述装置还包括:
注册事务请求获取模块,用于获取可信计算设备的注册事务请求;上链存储模块,用于在执行所述注册事务请求的过程中,调用所述人工智能合约,获取所述注册事务请求中所述可信计算设备的标识、模型代码存证和公钥,并上链存储。
89.本公开实施例的技术方案所提供的一种区块链访问机器学习模型装置可执行本公开任意实施例所提供的区块链访问机器学习模型方法,具备执行区块链访问机器学习模型方法相应的功能模块和有益效果。
90.图5是根据本公开实施例提供的一种区块链访问机器学习模型装置的示意图,本实施例可适用于区块链访问链外可信计算设备,以获取机器学习结果的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的区块链访问机器学习模型方法。该电子设备可以为可信计算设备,参考图5,该区块链访问机器学习模型装置500具体包括如下:机器学习请求获取模块501,用于获取区块链上部署的人工智能合约所执行的机器学习请求;机器学习请求执行模块502,用于根据所述机器学习请求,在可信计算设备中运行机器学习模型以执行所述机器学习请求;机器学习结果反馈模块503,用于将执行所述机器学习请求后得到的机器学习结果反馈给所述人工智能合约。
91.本公开实施例通过获取区块链上部署的人工智能合约所执行的机器学习请求;根据机器学习请求,在可信计算设备中运行机器学习模型以执行机器学习请求;将执行所述机器学习请求后得到的机器学习结果反馈给所述人工智能合约。上述方案通过在链外设置可信计算设备,并由可信计算设备的机器学习模型执行机器学习请求,减少了链上各区块节点均需要对密集型数据进行计算所带来的计算成本和延迟,以及减少了存储运行结果带来的存储资源的消耗,提高了智能合约功能的智能性。
92.在一种可选的实施方式中,所述机器学习请求获取模块501,包括:事件日志监听单元,用于监听区块链中的事件日志;机器学习请求读取单元,用于如果监听到所述事件日志中出现机器学习请求时,则从事件日志中读取所述机器学习请求。
93.在一种可选的实施方式中,所述获取机器学习请求和将机器学习结果反馈给所述人工智能合约的操作由所述可信计算设备中设置于非可信计算环境的中转模块执行,所述机器学习模型的运行在所述可信计算设备的可信计算环境中执行。
94.在一种可选的实施方式中,所述装置还包括:上链存储模块,用于向区块链发起可信计算设备的注册事务请求,以调用所述人工智能合约执行所述注册事务请求,将所述可信计算设备的标识、模型代码存证和公钥,上链存储;地址获取模块,用于获取所述区块链中人工智能合约的地址,并根据所述地址启动对所述人工智能合约产生的事件日志的监听。
95.本公开实施例的技术方案所提供的一种区块链访问机器学习模型装置可执行本公开任意实施例所提供的区块链访问机器学习模型方法,具备执行区块链访问机器学习模型方法相应的功能模块和有益效果。
96.本公开的技术方案中,所涉及的机器学习请求的执行或机器学习结果的获取等,
均符合相关法律法规的规定,且不违背公序良俗。
97.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
98.图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
99.如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
100.设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
101.计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如区块链访问机器学习模型方法。例如,在一些实施例中,区块链访问机器学习模型方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到ram 603并由计算单元601执行时,可以执行上文描述的区块链访问机器学习模型方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行区块链访问机器学习模型方法。
102.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
103.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处
理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
104.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
105.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
106.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
107.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
108.人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
109.云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
110.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
111.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献