一种智能合约机密执行方法及系统

文档序号:31180933发布日期:2022-08-17 10:55阅读:62来源:国知局
一种智能合约机密执行方法及系统

1.本发明涉及信息安全及隐私保护领域,尤其是涉及一种智能合约机密执行方法及系统。


背景技术:

2.区块链是一个点对点、分布式、去中心化的网络,由各个区块组成,每一个区块都存储了一段时间内已经被验证的交易,每个区块通过密码学方法链接成链。
3.以太坊除了持有加密货币交易的功能,还具备执行智能合约的能力。智能合约是一段可按照逻辑运行的程序代码,用户可以通过编写智能合约,在以太坊上执行程序代码。以太坊中包含有一个基于堆栈架构的程序——以太坊虚拟机(ethereum virtual machine,evm),用于执行智能合约。智能合约的执行是一个先编译后解释的过程,智能合约先编译成字节码序列,然后由以太坊虚拟机解释字节码序列,以完成智能合约的执行。
4.然而,区块链中所有的节点都存储着链上的数据,这意味着数据的公开,其中不乏包含一些敏感数据(例如:金融交易、个人数据、健康记录)。对于区块链的一种类型——联盟链来说,由于管理链的节点更多是公司、机构,因此其中存储的数据更容易包含用户的隐私。智能合约作为用户和区块链的桥梁,如果有恶意攻击者入侵了联盟链节点,攻击者就可以窥探智能合约的执行,窃取用户的隐私数据。因为,在联盟链上运行的智能合约,缺乏机密性的保证。
5.可信执行环境(trusted execution environment,tee)是一种可以保证机密性的解决方案。intel software guard extensions(英特尔软件保护扩展)(sgx)就提供了一种基于cpu硬件的tee,称为enclave,enclave 提供了一组增强应用程序代码和数据安全的指令。intel sgx可以防止外部应用程序或者操作系统干扰运行于enclave中的程序。将解释智能合约字节码的虚拟机运行于enclave之中,可以保护智能合约执行过程的机密性。然而,如果在tee中解释每个智能合约函数,包括那些不涉及用户隐私数据的函数,会造成较大的可信计算基础(trusted computing base,tcb),潜在的代码漏洞和安全风险会随着代码量的增加而增加。因此,必须尽可能地减小tcb尺寸,仅将涉及敏感数据的代码运行于tee之中。
6.此外,由于intel sgx提供的tee是一种基于cpu的安全可信执行环境,因此要求设备的cpu必须支持intel sgx。因此,非intel处理器的设备或者不支持intel sgx的设备就无法运行在可信执行环境来保护智能合约的机密性。
7.在联盟链中,如果恶意攻击者入侵到管理节点,即可以观察智能合约的执行过程,并窃取用户的数据,导致用户隐私的泄露。而现有的部分方案中,只能将特定功能的智能合约运行在由intel sgx保护的可信任执行环境中,存在局限性。而在另外一些现有方案中,将整个执行智能合约的虚拟机都运行于可信执行环境之中,并且对于许多不涉及隐私数据的智能合约函数也进行了保护,导致tcb尺寸较大,代码漏洞和安全风险增加。此外,对于一些现有方案,要求执行者的设备必须支持intel sgx,对设备的cpu型号有着硬性的要求。
8.需要说明的是,在上述背景技术部分公开的信息仅用于对本技术的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

9.本发明的目的在于克服上述tcb尺寸较大导致潜在的代码漏洞和安全风险增加和本地模型必须支持intel sgx的硬性要求的问题的缺点,提供一种智能合约机密执行方法及系统。
10.为实现上述目的,本发明采用以下技术方案:
11.一种智能合约机密执行方法及系统,包括如下步骤:
12.s1、根据用户的输入标注涉及敏感数据的智能合约函数;
13.s2、自动检测用户调用的智能合约函数是否含有参数,接着检测用户是否有对该函数进行标注,以此判断该函数是否需要保护;
14.s3、利用事先构建的本地节点和安全容器环境节点分别对智能合约函数执行以下操作:本地节点直接在本地执行不需要保护的智能合约函数,安全容器环境节点在远程的可信执行环境中执行需要保护的智能合约函数。
15.在一些实施例中,在步骤s1中,智能合约通过以太坊的契约型编程语言编译器模块,获取为字节码序列,并通过标注模块,由用户标注出需要保护的函数,获取标注函数的十六进制名称。
16.在一些实施例中,所述契约型编程语言编译器模块为solidity编译器模块,步骤s1分为标注阶段和记录阶段;在标注阶段中,用户通过geth 客户端输入命令行的方式,以solidity源代码文件地址以及需要保护的函数名为输入参数,进行标注;在此过程中,生成临时文件存储标注结果;在标注阶段之前或之后,根据用户部署的智能合约,获取智能合约的地址;最后,在记录阶段中,用户通过geth客户端输入命令行的方式,以智能合约地址为输入参数,进行记录;并且自动将刚才生成的临时文件与智能合约地址进行关联,存储到轻量级数据库中,以便在之后调用该合约的函数时读取。
17.在一些实施例中,在步骤s2中,检测所述智能合约函数是否有参数,如果有参数,则由标注检测模块继续检测,如果没有参数,则说明该函数不依赖于用户,则默认直接由本地节点执行。
18.在一些实施例中,所述安全容器环境节点为scone节点,在标注检测过程中,从存储中获取这个智能合约标注的所有函数的十六进制名称,并判断本次调用的函数是否在标注的函数列表中,如果在,则由scone节点执行,否则,直接由本地节点执行。
19.在一些实施例中,采用scone的软件开发工具包sdk在intel sgx提供的可信执行环境中运行,保护智能合约的执行过程。
20.在一些实施例中,采用微服务的架构,通过docker容器部署scone 节点,并通过http与其他模块进行交互,避免了本地模型对支持intel sgx 硬件的硬性要求。
21.在一些实施例中,当有多个scone节点时,在每次智能合约函数调用时,进行简单的负载均衡判断,选择负载情况最低的一个scone节点,通过对应的ip地址和端口号进行http交互。
22.在一些实施例中,单个scone节点同时处理不同的智能合约函数调用请求;对于每
一次智能合约函数调用,随机生成一段cookie,该cookie 在本次函数调用的所有http交互中保持不变,据此,scone节点可以根据cookie值定位到具体每一次的函数调用,从而实现多个任务的并发处理。
23.本发明还公开了一种智能合约机密执行系统,包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序可被处理器执行以实现上述的方法。
24.本发明与现有技术对比的有益效果包括:本发明提供的智能合约机密执行方法,此方法针对较大tcb尺寸造成的代码风险增加和使用intel sgx 对设备的硬性要求问题,此方法提出了根据用户标注涉及敏感数据的智能合约函数,检测模块判断是否需要保护,分别在本地节点执行不需要保护的智能合约函数,在安全容器环境节点执行需要保护的智能合约函数。并提出了标注方法,仅将涉及隐私数据的智能合约函数运行于tee之中,采用微服务的架构,本地模型与可信执行环境以http(超文本传输协议) 的形式交互,提出了标注模块,给予用户标注智能合约函数的能力,用户标注出涉及隐私数据、需要保护的智能合约函数。在检测模块中,该系统检测用户调用的函数是否需要保护,仅将需要保护的函数运行于可信执行环境之中,以此减小tcb尺寸,降低代码风险。并且本地模型与可信执行环境以http(超文本传输协议)的形式交互,避免了本地模型必须支持 intel sgx的硬性要求。
附图说明
25.图1是本发明实施例智能合约机密执行方法步骤流程图。
26.图2是本发明实施例智能合约机密执行方法及系统的示意图。
27.图3是本发明实施例中标注模块标注阶段的流程图。
28.图4是本发明实施例中标注模块记录阶段的流程图。
29.图5是本发明实施例中检测模块的流程图。
30.图6是本发明实施例中scone节点的流程图。
31.图7是本发明实施例中scone节点处理的操作码均属于“第一种任务处理函数”的流程图。
32.图8是本发明实施例中scone节点处理的操作码均不属于“第一种任务处理函数”的流程图。
33.图9是本发明实施例中scone节点无操作码需要执行或程序出错的流程图。
具体实施方式
34.以下对本发明的实施方式做详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
35.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
36.本发明提出的智能合约机密执行方法,根据用户的输入标注涉及敏感数据的智能合约函数;自动检测用户调用的智能合约函数是否含有参数,接着检测用户是否有对该函数进行标注,以此判断该函数是否需要保护;利用事先构建的本地节点和安全容器环境节
点分别对智能合约函数进行执行:本地节点直接在本地执行不需要保护的智能合约函数,安全容器环境节点在远程的可信执行环境中执行需要保护的智能合约函数。此方法仅将需要保护的函数运行于可信执行环境之中,以此减小tcb尺寸,降低代码风险。并且本地模型与可信执行环境以http(超文本传输协议)的形式交互,避免了本地模型必须支持intel sgx的硬性要求。
37.参考图1,本发明实施例的智能合约机密执行方法,包括如下步骤:
38.s1、根据用户的输入标注涉及敏感数据的智能合约函数;具体做法是构建标注模块,给予用户标注涉及敏感数据的智能合约函数的能力。智能合约通过solidity(以太坊的契约型编程语言)编译器模块,获取为字节码序列,并通过标注模块,由用户标注出需要保护的函数,获取标注函数的十六进制名称。此步骤分为标注阶段和记录阶段;在标注阶段中,采用本发明geth客户端中的智能合约标注工具,用户通过geth客户端的命令行方式,以solidity源代码文件地址以及需要保护的函数名为输入参数 (与geth客户端交互时输入的参数),进行标注;在此过程中,生成临时文件存储标注结果;在标注阶段之前或之后,根据用户部署的智能合约,获取智能合约的地址;最后,在记录阶段中,用户通过geth客户端的命令行方式,以合约地址为输入参数,进行记录;并且自动将刚才生成的临时文件与合约地址进行关联,存储到轻量级数据库中,以便在之后调用该合约的函数时读取。
39.s2、自动检测用户调用的智能合约函数是否含有参数,接着检测用户是否有对该函数进行标注,以此判断该函数是否需要保护;具体做法是构建检测模块,该模块分为自动检测模块和标注检测模块。在自动检测模块中,检测该函数是否有参数(智能合约函数的参数),如果有参数,则由标注检测模块继续检测,如果没有参数,则说明该函数不依赖于用户,则默认直接由本地节点执行;该默认选项可修改,可修改为直接由标注检测模块进行检测,跳过自动检测模块。在标注检测模块中,该系统会从存储中获取这个合约标注的所有函数的十六进制名称,并判断本次调用的函数是否在标注的函数列表中,如果在,则由scone(安全容器环境)节点执行,否则,直接由本地节点执行。值得注意的是,如果用户没有对该合约进行标注,则该合约的检测只依赖于自动检测模块。以上步骤为判断该函数是否需要保护的流程。
40.s3、利用事先构建的本地节点和安全容器环境节点分别对智能合约函数进行执行:本地节点直接在本地执行不需要保护的智能合约函数,安全容器环境节点在远程的可信执行环境中执行需要保护的智能合约函数。具体做法是在计算部分构建了本地节点和安全容器环境节点,所述安全容器环境节点为scone节点,本地节点直接在本地执行不需要保护(不涉及隐私数据)的智能合约函数,scone节点通过http的方式在远程的可信执行环境中执行需要保护(涉及隐私数据)的智能合约函数。在标注检测过程中,从存储中获取这个智能合约标注的所有函数的十六进制名称,并判断本次调用的函数是否在标注的函数列表中,如果在,则由scone节点执行,否则,直接由本地节点执行。此步骤中scone节点执行采用scone的软件开发工具包sdk在intel sgx提供的可信执行环境中运行,保护智能合约的执行过程。此步骤中scone节点采用微服务的架构,通过docker容器部署scone节点,并通过http与其他模块进行交互,避免了本地模型对支持 intel sgx硬件的硬性要求。当有多个scone节点时,在每次智能合约函数调用时,进行简单的负载均衡判断,选择负载情况最低的一个scone节点,通过对应的ip地址和端口号进行http交互。当单个scone节点同时处理
不同的智能合约函数调用请求时;对于每一次智能合约函数调用,随机生成一段cookie,该cookie在本次函数调用的所有http交互中保持不变,据此,scone节点可以根据cookie值定位到具体每一次的函数调用,从而实现多个任务的并发处理。在智能合约机密执行的流程中,若scone 节点执行的操作码不需要从链上获取额外数据时,该操作码属于“第一种任务处理函数”,若执行的操作码需要从链上获取额外数据时,该操作码不属于“第一种任务处理函数”。以上步骤为智能合约机密执行的流程。
41.参考图2,本发明实施例的智能合约机密执行系统,组件包括处理器和存储器,处理器包括如下:solidity(以太坊的契约型编程语言)编译器模块、标注模块、检测模块、计算部分、geth区块链,其中检测模块还包括自动检测模块和标注检测模块,计算部分包括本地节点和scone(安全容器环境)节点。存储器为轻量级存储器,存储器中存储有计算机程序。根据用户的输入标注涉及敏感数据的智能合约函数;自动检测用户调用的智能合约函数是否含有参数,接着检测用户是否有对该函数进行标注,以此判断该函数是否需要保护;利用事先构建的本地节点和安全容器环境节点分别对智能合约函数进行执行:本地节点直接在本地执行不需要保护的智能合约函数,安全容器环境节点在远程的可信执行环境中执行需要保护的智能合约函数。
42.参考图3,为本发明实施例标注模块的标注阶段,在标注阶段中,本系统扩展了geth客户端的特性功能,用户通过geth客户端的命令行方式,以solidity源代码文件地址以及需要保护的函数名为输入参数,进行标注。该模块会生成临时文件存储标注结果。接着,用户可部署智能合约(该阶段可在标注阶段之前),获取智能合约的地址。具体步骤如下:用户与geth 客户端交互,具体地,与本系统扩展geth客户端的特性功能交互。在命令行中,用户通过
“‑‑
sol”(命令行参数)指定solidity源代码文件地址“./testfile/erc20.sol”,通过
“‑‑
func”(命令行参数)指定需要保护的函数名“transfer.approve”,通过
“‑‑
datadir”(命令行参数)指定工作目录“.geth”(一般默认为geth区块链的工作目录)。该模块会生成临时数据文件存储标注函数的十六进制名称“a9059cbb.095ea7b3”。
43.参考图4,为本发明实施例标注模块的记录阶段,在记录阶段中,用户通过geth客户端的命令行方式,以合约地址为输入参数,进行记录。该模块会自动将刚才生成的临时文件与合约地址进行关联,存储到轻量级数据库中,以便在之后调用该合约的函数时读取。具体步骤如下:用户与geth 客户端交互,在命令行中,通过
“‑‑
addr”(命令行参数)指定智能合约地址“0x5608dc285a711d3e5c64219ff89e9ba43810da0b”,通过
“‑‑
datadir”(命令行参数)指定工作目录“.geth”(一般默认为geth 区块链的工作目录),该工作目录中包含有上述标注阶段生成的临时数据文件,临时数据文件中包含标注函数的十六进制名称“a9059cbb.095ea7b3”。该系统会将临时数据文件与合约地址链接起来“0x5608dc285a711d3e5c64219ff89e9ba43810da0b: a9059cbb.095ea7b3”,存储入轻量级数据库中。
44.参考图5,为本发明实施例的检测模块,检测模块将检测智能合约函数,以决定该函数是否需要保护,如果需要保护则由scone节点在远程的可信执行环境中运行,否则,由本地节点在本地直接执行。具体地,该模块分为自动检测模块和标注检测模块。具体步骤如下:如果智能合约“function fun1()”函数没有参数,则自动检测模块判断该函数不需要保护。如果智能合约函数“function fun2(int a)”有参数,则由标注检测模块进行检测。若用户标注过该智能合约但未标注过该函数,则判断该函数不需要保护。若用户未标注过该
合约,则默认带有参数的函数“function fun2 (int a)”需要保护。若用户标注了该函数,则该函数“function fun2(inta)”需要保护。如果该函数“function fun2(int a)”需要保护,则交由 scone节点负责执行,否则直接由本地节点执行智能合约函数。
45.参考图6,为本发明实施例scone节点,scone节点运行在远程服务器上,主要具备以下特性:采用scone的sdk(软件开发工具包softwaredevelopment kit),在intel sgx提供的可信执行环境中运行,保护智能合约的执行过程;采用微服务的架构(一项在云中部署应用和服务的新技术),通过docker(一个开源的应用容器引擎)容器部署scone节点,并通过http与其他模块进行交互,避免了本地模型对支持intel sgx硬件的硬性要求;支持多个scone节点,该模型的其他部分在每次智能合约函数调用时,会进行简单的负载均衡判断,选择负载情况最低的一个scone节点,通过对应的ip地址和端口号进行http交互;单个scone节点支持并发的多任务处理,即单个scone节点具有同时处理不同的智能合约函数调用请求的能力。对于每一次智能合约函数调用,该模型的本地部分会随机生成一段cookie(储存在用户本地终端上的数据),该cookie在本次函数调用的所有http交互中保持不变,因此,scone节点可以根据cookie 值定位到具体每一次的函数调用,从而实现多个任务的并发处理。
46.关于scone节点不同场景的具体实施例如下:
47.实施例一:
48.在涉及隐私数据的智能合约,用户本地设备不支持intel sgx,且需要并发处理多任务,并且同时包含属于和不属于“第一种任务处理函数”的操作码的场景下,具体步骤如下:假设共有n次交互。
49.(a)本地模型构建发送参数(调用者地址,合约地址等信息),并通过负载均衡搜索合适的scone节点,并随机生成cookie;
50.(b)本地模型发送url(uniform resource locator统一资源定位符)为“/startum”(url值)的http请求至scone节点,表示本次智能合约函数调用开启;
51.(c)scone节点记录http请求中的cookie,在“context.m”(存储变量名称)变量中增加数据,以便并发处理多任务时准确定位至对应的智能合约函数调用;
52.(d)本地模型发送url为“/sendpc”(url值)的http请求至scone 节点,表示执行对应的智能合约字节码序列;
53.(e)scone节点根据pc(程序计数器)指向的字节码序列中的操作码,调用对应的操作码解释函数,来解释该操作码。接着,pc自增1,指向下一个操作码,scone节点调用下一个操作码的解释函数,来解释该操作码。
54.(f)如果该操作码解释函数需要从区块链上获取数据,则不属于“第一种任务处理函数”。例如操作码balance,本地模型发送url为“/opbalancestep1”(url值)的http请求至scone节点;
55.(g)scone节点返回从栈(scone节点执行过程中存储临时数据的结构)中弹出的数据;
56.(h)本地模型发送url为“/opbalancestep2”(url值)的http请求至scone节点。scone节点继续执行对应操作,直到字节码序列的所有操作码解释完;
57.(n-2)本地模型发送url为“/endrum”(url值)的http请求至scone 节点,表示本次
智能合约函数调用结束;
58.(n-1)scone节点根据http中的cookie删除本次调用存储的临时数据,在“context.m”(存储变量名称)变量中删除该cookie对应数据;
59.(n)本地模型修改该scone节点的负载量。
60.实施例二:
61.在涉及隐私数据的智能合约,用户本地设备不支持intel sgx,且需要并发处理多任务,并且操作码均属于“第一种任务处理函数”的场景下,具体步骤如下:假设共有n次交互,具体流程参考图7。
62.(a)本地模型构建发送参数(调用者地址,合约地址等信息),并通过负载均衡搜索合适的scone节点,并随机生成cookie;
63.(b)本地模型发送url(uniform resource locator统一资源定位符)为“/startum”(url值)的http请求至scone节点,表示本次智能合约函数调用开启;
64.(c)scone节点记录http请求中的cookie,在“context.m”(存储变量名称)变量中增加数据,以便并发处理多任务时准确定位至对应的智能合约函数调用;
65.(d)本地模型发送url为“/sendpc”(url值)的http请求至scone 节点,表示执行对应的智能合约字节码序列;
66.(e)scone节点根据pc(程序计数器)指向的字节码序列中的操作码,调用对应的操作码解释函数,来解释该操作码。接着,pc自增1,指向下一个操作码,scone节点调用下一个操作码的解释函数,来解释该操作码。;
67.(n-2)本地模型发送url为“/endrum”(url值)的http请求至scone 节点,表示本次智能合约函数调用结束;
68.(n-1)scone节点根据http中的cookie删除本次调用存储的临时数据,在“context.m”(存储变量名称)变量中删除该cookie对应数据;
69.(n)本地模型修改该scone节点的负载量。
70.实施例三:
71.在涉及隐私数据的智能合约,用户本地设备不支持intel sgx,且需要并发处理多任务,并且操作码均不属于“第一种任务处理函数”的场景下,具体步骤如下:假设共有n次交互,具体流程参考图8。
72.(a)本地模型构建发送参数(调用者地址,合约地址等信息),并通过负载均衡搜索合适的scone节点,并随机生成cookie;
73.(b)本地模型发送url(uniform resource locator统一资源定位符)为“/startum”(url值)的http请求至scone节点,表示本次智能合约函数调用开启;
74.(c)scone节点记录http请求中的cookie,在“context.m”(存储变量名称)变量中增加数据,以便并发处理多任务时准确定位至对应的智能合约函数调用;
75.(d)本地模型发送url为“/sendpc”(url值)的http请求至scone 节点,表示执行对应的智能合约字节码序列;
76.(e)如果该操作码解释函数需要从区块链上获取数据,则不属于“第一种任务处理函数”。例如操作码balance,本地模型发送url为“/opbalancestep1”(url值)的http请求至scone节点;
77.(f)scone节点返回从栈(scone节点执行过程中存储临时数据的结构)中弹出的数据;
78.(g)本地模型发送url为“/opbalancestep2”(url值)的http请求至scone节点。scone节点继续执行对应操作,直到字节码序列的所有操作码解释完;
79.(n-2)本地模型发送url为“/endrum”(url值)的http请求至scone 节点,表示本次智能合约函数调用结束;
80.(n-1)scone节点根据http中的cookie删除本次调用存储的临时数据,在“context.m”(存储变量名称)变量中删除该cookie对应数据;
81.(n)本地模型修改该scone节点的负载量。
82.实施例四:
83.在涉及隐私数据的智能合约,用户本地设备不支持intel sgx,且需要并发处理多任务,当前无操作码需要执行或程序出错的场景下,具体步骤如下:假设共有n次交互,具体流程参考图9。
84.(a)本地模型构建发送参数(调用者地址,合约地址等信息),并通过负载均衡搜索合适的scone节点,并随机生成cookie;
85.(b)本地模型发送url(uniform resource locator统一资源定位符)为“/startum”(url值)的http请求至scone节点,表示本次智能合约函数调用开启;
86.(c)scone节点记录http请求中的cookie,在“context.m”(存储变量名称)变量中增加数据,以便并发处理多任务时准确定位至对应的智能合约函数调用;
87.(d)本地模型发送url为“/sendpc”(url值)的http请求至scone 节点,表示执行对应的智能合约字节码序列;
88.(n-2)本地模型发送url为“/endrum”(url值)的http请求至scone 节点,表示本次智能合约函数调用结束;
89.(n-1)scone节点根据http中的cookie删除本次调用存储的临时数据,在“context.m”(存储变量名称)变量中删除该cookie对应数据;
90.(n)本地模型修改该scone节点的负载量。
91.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
92.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
93.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
94.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
95.本发明的背景部分可以包含关于本发明的问题或环境的背景信息,而不一定是描述现有技术。因此,在背景技术部分中包含的内容并不是申请人对现有技术的承认。
96.以上内容是结合具体的优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。在本说明书的描述中,参考术语“一种实施例”、“一些实施例”、“优选实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。尽管已经详细描述了本发明的实施例及其优点,但应当理解,在不脱离专利申请的保护范围的情况下,可以在本文中进行各种改变、替换和变更。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1