一种安全多方计算的方法及相关装置与流程

文档序号:16901574发布日期:2019-02-19 18:03阅读:273来源:国知局
一种安全多方计算的方法及相关装置与流程

本发明涉及分布式计算及云计算的技术领域,尤其涉及一种安全多方计算的方法及相关装置。



背景技术:

安全多方计算(securemulti—partycomputation,smpc)是指在一个分布式网络中,多个用户需要共同协作完成一项任务,每个用户各自持有一些私密数据作为任务的输入,他们希望共同完成对这些数据的计算,同时要求每个用户除计算结果外均不能够获知其他用户的任何输入信息。安全多方计算是解决一组互不信任的参与方之间在保护隐私的前提下完成协同计算的问题,安全多方计算要确保输入的独立性,计算的正确性,同时不泄露各输入数据给参与计算的其他成员。主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题,安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。

目前的区块链的智能合约实现方式,尚不具备安全高效的多方计算能力,主要是因为目前的智能合约是以账本为核心,实现了各方协同对账本产生的影响,一方对账本数据的操作根据合约的约定,可能对其他合作方产生影响,这种影响既可能产生“交易”,也可能产生交易达成的所需的事件。在这种模式下,多于两方的多方协同就需要各协作方不断查询账本数据,并根据查询结果进行计算,并将计算结果通过智能合约进行记录和确认。

这种方式存在两个问题:一是协同效率很低。各协作方需要不断轮询智能合约,获得自身启动相关任务的事件或通知;二是安全性较低。智能合约所有的数据均保存在所有任务节点或记账节点当中,数据的安全完全依赖节点引擎的正常执行,一旦节点引擎失效或存在漏洞,数据很容易泄露。



技术实现要素:

本发明实施例提供了一种安全多方计算的方法及相关装置,用以解决在区块链的实施方案中所存在的协同效率低及安全较低等问题。

本发明实施例提供了一种安全多方计算的方法,包括:

第一节点根据多方计算请求,确定所述第一节点对应的合约方在处理所述多方计算请求时需执行的智能合约的任务;所述智能合约包括执行所述多方计算请求的各合约方的任务及各任务间的执行关系;所述第一节点为所述各合约方中的任一个;

所述第一节点在所述需执行的任务处理完后,根据所述各任务间的执行关系确定第二节点;所述第二节点为执行所述多方计算请求的各合约方中下一任务对应的节点;

所述第一节点向所述第二节点发送通知消息;所述通知消息用于指示所述第二节点处理所述多方计算请求。

本发明实施例提供了一种安全多方计算的方法,智能合约的内容包括所有合约方执行所述智能合约的任务,智能合约内存在多个任务,这些任务之间具有顺序逻辑关系,本发明实施例中的智能合约执行智能合约时不依赖各合约方对应的业务系统,各方承担的任务可以在链外本地环境执行,合约中每个任务执行的数据均是动态和一次性的,本地数据不会泄露出去。并且,任务之间切换根据上一任务的执行结果驱动,智能合约不需要各合约方轮询获得智能合约的执行状态,保证了各合约方的数据的私密性,实现了安全多方计算。

一种可能的实现方式,所述方法还包括:

所述智能合约的请求方对应的节点根据所述多方计算请求,调用所述智能合约。

智能合约仅能通过智能合约的请求方调用,使得该智能合约不被其他节点调用,有效的提高了多方计算的安全性。

一种可能的实现方式,所述第一节点向所述第二节点发送通知消息,包括:

所述第一节点通过点对点的方式向所述第二节点发送所述通知消息。

通过上述方法,保证了智能合约中的任务执行时,任务在相关任务的节点之间传递,其他节点不可能接触到该数据,有效提高了多方计算中数据的私密性。

一种可能的实现方式,所述智能合约还包括任务执行完毕的反馈约定;所述方法还包括:

所述请求方对应的节点接收所述第二节点发送的反馈消息,所述反馈消息是所述第二节点确定所述智能合约执行完毕后发送的。

通过发送反馈消息的方式,使得第一节点可以直接根据接收的反馈消息,确定所述智能合约的执行结果,而不需要通过周期性的至区块链中查询,减少了区块链的查询压力,提高了安全多方计算的实时性和便捷性。

一种可能的实现方式,所述方法还包括:

所述第一节点在所述当前需执行的任务处理完后,将所述当前需执行的任务的处理结果发送至所述智能合约所属的区块链上并达成共识。

合约执行结果上链,用于确保安全多方计算的真实及可靠性。

相对于现有技术中的智能合约中需要轮询智能合约的状态以获得当前智能合约的执行情况,无法并行处理一个任务中可以多个合约方执行的场景;一种可能的实现方式,所述第二节点为多个;所述第一节点向所述多个第二节点发送通知消息之后,还包括:

所述多个第二节点分别根据所述智能合约,确定所述第一节点对应的合约方在处理所述多方计算请求时当前需执行的任务;所述多个第二节点在所述当前需执行的任务处理完后,根据所述各任务间的执行关系确定第三节点,并向所述第三节点发送通知消息;所述通知消息用于所述第三节点根据所述多个通知消息确定获胜的节点,并根据所述获胜的节点的通知消息处理所述第三节点当前所需执行的任务。

本发明实施例中,可以根据任务间的执行关系,若确定存在任务中可以多个合约方执行,通过并行处理的方式,并根据多个合约方的执行结果,优选所述执行结果,确定获胜的节点,实现了任务的多线程处理,实现了智能合约的执行的多样性,有效的提高了安全多方计算的执行效率。

本发明实施例提供了一种安全多方计算的方法,包括:

第一节点编写智能合约;所述智能合约中包括各合约方的节点信息,各合约方执行所述智能合约的任务、及任务间的任务执行关系;

所述第一节点将所述智能合约发布在区块链上,并在所述区块链上达成共识后发布成功。

本发明实施例提供了一种安全多方计算的方法,该多方计算通过智能合约实现,智能合约的内容包括所有合约方执行所述智能合约的任务,而不仅仅是账本数据的状态保存和存取接口,执行智能合约时不依赖各合约方对应的业务系统,实现了与业务系统的有效解耦。智能合约编写完毕后即可直接发布至区块链,而不需要所有合约方全部授权后再发布,使得发布智能合约更加便捷,提高了智能合约的建立的效率。

一种可能的实现方式,所述方法还包括:

所述第一节点向所述智能合约中的合约方的节点发送授权请求;

所述第一节点根据所述合约方的节点的授权结果,确定所述智能合约是否可执行。

相关合作方在合约发布后通过发送授权请求签署合约,根据所有合作方的授权结果确认所述智能合约是否可执行,确保了安全多方计算的可靠性。

一种可能的实现方式,所述第一节点编写智能合约之前,还包括:

所述第一节点获取至少一个第二节点发布的至少一个能力服务接口;所述至少一个能力服务接口用于表征所述至少一个第二节点的提供的服务;

所述第一节点编写智能合约,包括:

所述第一节点根据所述至少一个能力服务接口以及第一节点的业务需要,确定所述智能合约的合约方,以及每个合约方的节点所需执行的任务。

通过上述方法,可以使得第一节点在编写智能合约时,仅需通过第二节点发布的能力服务接口,即可确定任务,以及任务的执行方式,不需要针对业务系统编写智能合约。因此,本发明实施例中的智能合约仅需要根据业务需求以及能力服务接口修改智能合约,不需要考虑各合约方的业务系统是否兼容,也无需各协作方进行系统改造或升级系统,有效提高了智能合约的升级和维护的效率。

一种可能的实现方式,所述第一节点编写智能合约,包括:

所述第一节点设置调用所述智能合约的访问权限;所述访问权限用于为所述智能合约的请求方的节点设置调用所述智能合约的权限。

通过上述方法,避免了智能合约的随意调用以及数据的泄露等安全隐患,可以有效提高多方计算的安全性。

本发明实施例提供了一种安全多方计算的装置,包括:

处理单元,用于根据多方计算请求,确定需要调用的智能合约;所述智能合约包括执行所述多方计算请求的各合约方的任务及各任务间的执行关系;所述第一节点为所述各合约方中的任一个;根据所述智能合约,确定所述第一节点对应的合约方在处理所述多方计算请求时当前需执行的任务;在所述当前需执行的任务处理完后,根据所述各任务间的执行关系确定第二节点;所述第二节点为执行所述多方计算请求的各合约方中下一任务对应的节点;

收发单元,用于向所述第二节点发送通知消息;所述通知消息用于指示所述第二节点处理所述多方计算请求。

一种可能的实现方式,所述处理单元,具体用于:根据多方计算请求,确定需要调用的智能合约的访问权限,所述访问权限用于为所述智能合约的请求方的节点设置调用所述智能合约的权限。

一种可能的实现方式,所述收发单元,还用于:在所述当前需执行的任务处理完后,将所述当前需执行的任务的处理结果发送至所述智能合约所属的区块链上并达成共识。

一种可能的实现方式,所述收发单元还用于:接收所述第二节点发送的反馈消息,所述反馈消息是所述第二节点确定所述智能合约执行完毕后发送的。

一种可能的实现方式,所述第二节点为多个;所述多个第二节点分别根据所述智能合约,确定所述第一节点对应的合约方在处理所述多方计算请求时当前需执行的任务;所述多个第二节点在所述当前需执行的任务处理完后,根据所述各任务间的执行关系确定第三节点,并向所述第三节点发送通知消息;所述通知消息用于所述第三节点根据所述多个通知消息确定获胜的节点,并根据所述获胜的节点的通知消息处理所述第三节点当前所需执行的任务。

本发明实施例提供了一种安全多方计算的装置,包括:

处理单元,用于编写智能合约;所述智能合约中包括各合约方的节点信息,各合约方执行所述智能合约的任务、及任务间的任务执行关系;

收发单元,用于将所述智能合约发布在区块链上,并在所述区块链上达成共识后发布成功。

一种可能的实现方式,所述收发单元,还用于向所述智能合约中的合约方的节点发送授权请求;

所述处理单元,还用于根据所述合约方的节点的授权结果,确定所述智能合约是否可执行。

一种可能的实现方式,所述收发单元,还用于:获取至少一个第二节点发布的至少一个能力服务接口;所述至少一个能力服务接口用于表征所述至少一个第二节点的提供的服务;

所述处理单元,用于:根据所述至少一个能力服务接口以及第一节点的业务需要,确定所述智能合约的合约方,以及每个合约方的节点所需执行的任务。

一种可能的实现方式,所述处理单元,还用于设置调用所述智能合约的访问权限;所述访问权限用于设置所述智能合约的请求方的节点调用所述智能合约。

本发明实施例提供了一种计算设备,包括存储器和处理器,其中:

所述存储器,用于存储程序指令;

所述处理器,用于调用所述存储器中存储的程序指令,并按照获得的程序执行本发明实施例提供的安全多方计算的方法。

本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行本发明实施例提供的安全多方计算的方法。

本发明实施例提供了一种计算设备,包括存储器和处理器,其中:

所述存储器,用于存储程序指令;

所述处理器,用于调用所述存储器中存储的程序指令,并按照获得的程序执行本发明实施例中所述的安全多方计算的方法。

另外,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行本发明实施例中所述的安全多方计算的方法。

进一步地,本发明实施例提供了一种计算设备,包括存储单元和处理单元,其中:

所述存储单元,用于存储程序指令;

所述处理单元,用于调用所述存储器中存储的程序指令,并按照获得的程序执行本发明实施例中所述的安全多方计算的方法。

可选地,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行本发明实施例中所述的安全多方计算的方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1所示为本发明实施例中提供的一种安全多方计算的方法的流程示意图;

图2所示为本发明实施例中提供的一种安全多方计算的方法的示意图;

图3所示为本发明实施例中提供的一种安全多方计算的方法的流程示意图;

图4所示为本发明实施例中提供的一种安全多方计算的方法的示意图;

图5所示为本发明实施例中提供的一种安全多方计算的装置的结构示意图;

图6所示为本发明实施例中提供的一种安全多方计算的装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面以以太坊为例,对建立在区块链技术上的智能合约进行举例说明。

现有技术中,以太坊中有两类账户:外部账户和合约账户。外部账户为私钥控制(由人控制),没有关联任何代码。一个外部账户可以通过私钥对交易进行签名,进而发送消息给另一个外部账户或合约账户。在两个外部账户之间传送消息是价值转移的过程。合约账户被它们的合约代码控制且有代码与之关联。从外部账户到合约账户的消息会激活合约账户的代码,合约账户才会执行相应的操作(比如转移代币,写入内部存储,挖出一个新代币,执行一些运算,发送其它消息,创建一个新的合约等等)。

基于区块链的智能合约构建,即多参与者共同参与制定一份智能合约,包括如下步骤:

步骤一、用户需要先注册成为区块链的用户,区块链返回给用户一对公钥和私钥;公钥做为用户在区块链上的账户地址,私钥做为操作该账户的唯一钥匙。

步骤二、两个或两个以上的用户根据需要,共同商定了一份承诺,承诺中包含了双方的权利和义务;这些权利和义务以电子化的方式,写为机器语言;各参与者分别用各自私钥进行签名;以确保合约的有效性。

步骤三、签名后的智能合约,将会根据其中的承诺内容,通过p2p网络扩散并存入区块链;

步骤四、智能合约通过p2p的方式在区块链全网中扩散,每个节点都会收到一份;区块链中的验证节点会将收到的合约先保存到内存中,等待新一轮的共识时间,触发对该份合约的共识和处理。

步骤五、共识时间到达时,验证节点会把最近一段时间内保存的所有合约,一起打包成一个合约集合(set),并算出这个合约集合的hash值,最后将这个合约集合的hash值组装成一个区块结构,扩散到全网;其它验证节点收到这个区块结构后,会把里面包含的合约集合的hash取出来,与自己保存的合约集合进行比较;同时发送一份自己认可的合约集合给其它的验证节点;通过这种多轮的发送和比较;所有的验证节点最终在规定的时间内对最新的合约集合达成一致。

步骤六、最新达成的合约集合会以区块的形式扩散到全网,每个区块包含以下信息:当前区块的hash值、前一区块的hash值、达成共识时的时间戳、以及其它描述信息;同时区块链最重要的信息是带有一组已经达成共识的合约集;收到合约集的节点,都会对每条合约进行验证,验证通过的合约才会最终写入区块链中,验证的内容主要是合约参与者的私钥签名是否与账户匹配。

当把编译好的合约字节码通过外部账号发送交易的形式部署到以太坊区块链上,并使用合约账户的地址来标示这个合约。智能合约部署之后,当需要调用这个智能合约的方法时只需要向这个合约账户发送消息,通过消息触发后智能合约的代码就会在evm中执行。

从上述过程中,可以得知:现有技术中,各参与者完成多方计算时仅将智能合约作为账本,该账本封装了各参与者所需的状态数据,以及状态数据访问的接口;完成一个完整逻辑的业务,可能需要根据每个参与者的业务系统编写多个智能合约,智能合约与业务系统的耦合度很高;另外,由于智能合约保存了多方协同的状态数据及最终结果,而这些智能合约中的数据仍然是敏感信息,对于现有技术而言,各参与者都可以随便获取,安全性很低。

针对上述问题,如图1所示,本发明实施例提供了一种安全多方计算的方法,包括:

步骤101:第一节点编写智能合约;所述智能合约中包括各合约方的节点信息,各合约方执行所述智能合约的任务、及任务间的任务执行关系;

步骤102:所述第一节点将所述智能合约发布在区块链上,并在所述区块链上达成共识后发布成功。

本发明实施例提供了一种安全多方计算的方法,智能合约的内容包括所有合约方执行所述智能合约的任务,智能合约中存储的不只是账本数据的状态保存和存取接口,智能合约内存在多个任务,这些任务之间具有顺序逻辑关系,本发明实施例中的智能合约执行智能合约时不依赖各合约方对应的业务系统,各合约方承担的任务可以在链外本地环境执行,智能合约中每个任务执行的数据均是动态和一次性的,不会保存在智能合约中,本地数据不会泄露出去,满足了多方计算中各合约方数据的私密性的需求。

需要说明的是,本申请实施例中的安全多方计算的方法及相关装置,可以基于区块链的分布式网络实现,还可以采用系统对接的方式实现,在此不做限定。

本申请实施例中,为进一步实现业务系统与智能合约的解耦,在实现多方协同计算之前,各方可以将自己需要承担的任务细节进行了隐藏后,发布为能力接口供请求方编写合约。

一种可能的实现方式,所述第一节点编写智能合约之前,还包括:

所述第一节点获取至少一个第二节点发布的至少一个能力服务接口;所述至少一个能力服务接口用于表征所述至少一个第二节点的提供的服务;

所述第一节点编写智能合约,包括:

所述第一节点根据所述至少一个能力服务接口以及第一节点的业务需要,确定所述智能合约的合约方,以及每个合约方的节点所需执行的任务。

通过上述方法,可以使得第一节点在编写智能合约时,仅需通过第二节点发布的能力服务接口,即可确定任务,以及任务的执行方式,不需要针对业务系统编写智能合约。因此,本发明实施例中的智能合约仅需要根据业务需求以及能力服务接口修改智能合约,不需要考虑各合约方的业务系统是否兼容,也无需各协作方进行系统改造或升级系统,有效提高了智能合约的升级和维护的效率。

需要说明的是,在区块链中,各节点对应的合约方可根据自身的资源和能力定义能力服务接口,并通过节点发布能力服务接口。编写智能合约的第一节点对应的合约方可以为智能合约的初始发起方。智能合约通常由初始发起方编写并发布,由智能合约的各合约方的相关节点授权后智能合约确定为可执行状态。在区块链网络中还包括没有参与智能合约的其他节点,这些节点用于参与合约执行结果的验证和状态记录。上述三种节点包括节点机和节点信息,节点信息可以包括其节点的节点账户和访问该节点对应的合约方的业务账户,不同的合约方拥有自身唯一的业务账户,通过节点的节点账户登录节点的节点服务器在区块链上执行智能合约。

在编写智能合约之前,第一节点还需要获取各智能合约发布的能力服务接口。能力服务接口为各第二节点根据自身资源及能力定义的接口。能力服务接口的要素可以包括如表1所示的内容:

表1

当然,接口的要素还可以包括业务类型,业务要素等内容,用于确定能力服务接口的业务范围。

能力服务接口api的名称可以为任意符合运行环境的函数或方法名称;能力服务接口输入参数可以为两种数据类型:整数或十六进制字符串,个数不限。能力服务接口返回值可以限定为十六进制字符串,长度至少为2字节。定义如下:

表2

能力服务接口的发布方式可以使用节点对应的账户,通过自有节点发布该能力服务接口,这个发布动作将触发一笔区块链交易,该笔交易全网达成共识后,确定能力服务接口发布成功。需要说明的是,此处的交易是指区块链本身需要全网达成共识所需的一种“行为”,可以是一个真实的交易,也可以是一个特定的消息类型,由区块链本身实现的技术方案而定,但是一旦达成共识,需要给出“交易”的凭证。交易的凭证用于在区块链网络上确认对应的“行为”是否发生过。

成功发布能力服务接口的第二节点可以通过发布能力服务接口的节点的账户作为凭据,以获得使用该能力服务接口的权利。发布能力服务接口的交易被区块链确认后,链上所有节点均将保留该能力服务接口。能力服务接口的引用以发布能力服务接口的第二节点的账户加能力服务接口标识为索引,能力服务接口在第二节点的账户中保持唯一,已经发布的能力服务接口可通过约定的引用方式使用。

在步骤101中,一个智能合约可以包含如下信息,如表3所示:

表3

其中,合约方账户为智能合约中的各合约方,合约方账户列表中包括区块链网络中各合约方的账户。

为提高多方计算的安全性,针对各合约方,还可以根据合约的需求,设置调用智能合约的权限。

一种可能的实现方式,第一节点设置调用所述智能合约的访问权限;所述访问权限用于为所述智能合约的请求方设置调用所述智能合约的权限。

为提高调用智能合约的安全性,仅为触发该智能合约的请求方对应的节点,设置访问权限,合约中的其他合约方没有调用该智能合约的权限。在执行智能合约的过程中,需要触发对应任务的节点时,向该节点发送通知消息的方式,激活节点执行该任务。

当然,还可以根据需要,为各合约方设置执行不同任务的权限,使得智能合约的执行过程中,不同合约方的数据保密,保证了多方计算的数据隐私。

任务列表包括智能合约中的所有合约方参与智能合约所需要的任务。任务脚本可以由面向过程的自定义脚本进行定义,例如,如表4所示:

表4

合约中的任务是根据节点发布的能力服务接口进行编写的,可以通过调用对应的能力服务接口(函数调用),使得对应的节点执行对应的任务;并且,各合约方可以被智能合约引擎(例如evm)自动唤醒并执行相关任务,无需轮询,有效提高了智能合约的执行效率,增强了数据的私密性。通过将合约需多方协同的任务完整描述至智能合约中,使得智能合约的业务逻辑的完整,而不仅仅是账本数据的状态保存和存取接口,任务和链外的业务系统的耦合度很低,因此,本身实施例中仅需要根据业务需求修改智能合约,不需要考虑各合约方的业务系统是否兼容,即可实现智能合约的升级和维护。

在步骤102中,发布者使用智能合约中第一节点对应的账户,通过第一节点发布智能合约,该发布动作将触发一笔区块链的交易,交易在全网达成共识后确定智能合约发布成功。智能合约发布成功后,可以在各个合约方的节点中保持智能合约,智能合约中数据的变化会记录在区块链中。其中,智能合约的运行环境内所有消息的共识算法可以采用pbft或raft算法。账本的记录权可以约定为当前智能合约涉及的节点,也可以通过其他方式确定账本的记录权,在此不做限定。

由于目前智能合约各合约方签署完毕后才能发布,存在定制化程度不高、效率较低,缺乏一定的灵活性,限制了智能合约的适用性。

因此,本发明实施例中,为提高智能合约的灵活性,一种可能的实现方式,包括:

所述第一节点向所述智能合约中的合约方的节点发送授权请求;

所述第一节点根据所述合约方的节点的授权结果,确定所述智能合约是否可执行。

智能合约发布成功后,不能立即运行,需要各合约方对智能合约进行确认和授权,智能合约可以通过动态签署的方式进行授权。

具体的授权方式,可以包括以下步骤:

步骤一、第一节点根据账户确定与授权请求相关的智能合约;

其中,所述节点可以为智能合约中的任一合约方的节点;所述授权请求可以为发布智能合约的节点向各合约方的节点发送的,具体的发送方式可以是点对点的发送方式,也可以为广播的方式,在此不做限定。

步骤二、第一节点查看所述智能合约中的合约信息并确认是否同意智能合约;

对于所述授权结果的发送,可以作为一笔区块链交易,将智能合约的状态同步到其他合约方的节点,标识该智能合约给相关合约方同意执行。

步骤三、第一节点向智能合约中的各合约方的节点发送授权结果。

其中,授权结果可以为“签署”或“拒绝”。授权“签署”,包括签署的账户关联的节点可以获得使用该账户的授权,运行所述合约中指定的任务。

步骤四、第一节点接收到所有合约方的授权结果,并根据所有合约方的授权结果,确定所述智能合约是否可以执行。

智能合约发布后,各合约方签署合约,只有合约中约定的所有合约方均完成“签署”,所有合作方签署完成,合约进入可执行状态,该合约才能被执行。

智能合约编写完毕后即可直接发布至区块链,而不需要所有合约方全部授权后再发布,使得发布智能合约更加便捷,提高了智能合约的建立的效率。相关合作方在合约发布后通过发送授权请求签署合约,根据所有合作方的授权结果确认所述智能合约是否可执行,确保了安全多方计算的可靠性。

如图2所示,以下以b2b2c积分互换的智能合约为实施例进行说明,下面以用第一服务器对应的业务系统a的积分换第二服务器对应的业务系统b的积分的智能合约建立的方法,包括:

步骤一、业务系统b对应的第二节点向区块链中的各节点发布积分换出接口api。

所述积分换出接口api包括可以换出业务系统b的积分的授权方,以及积分兑换的价格参数。

步骤二、业务系统a对应的第一节点编写智能合约,指定业务系统b对应的第二节点为合约方,并在智能合约中将业务系统a和业务系统b执行积分兑换的所有任务以及任务的执行关系写入智能合约。

其中,智能合约需调用第二节点发布的积分换出接口api。具体的,调用所述积分换出接口api的输入参数为积分种类标识、账户标识、拟购买数量。

步骤二、业务系统a对应的第一节点发布智能合约至区块链。

步骤四、第二节点对所述智能合约进行授权,并将授权结果发送至第一节点。

步骤五、第一节点接收到所述授权结果为签署,确认智能合约进入有效状态。

至此,关于业务系统a中的积分与业务系统b中的积分兑换的智能合约建立完毕。通过建立该合约,在业务系统a中的用户,可以直接通过该智能合约,进行业务系统a中的积分与业务系统b中的积分兑换,而不需要通过2个业务系统中的用户之间进行积分兑换,积分兑换的方式从现有的c2c,直接变为b2b的模式,使得积分兑换的业务实现更加方便,快捷,另外,由于积分换出接口api为可以换出业务系统b的积分的授权方,其他合约方或者区块链上的节点无法调用该智能合约,保证了智能合约的安全性,有利于业务的个性化定制,提高了积分的兑换效率,提高了用户体验。

下面以数据共享作为一个具体的实施例,说明本发明实施例中智能合约的建立方法,包括:合约方r、合约方t、合约方b、合约方u。合约方r为数据共享的需求方,用于获取用户信息的一致性的验证结果,以及消费能力评估的数据。其中,用户信息可以包括用户名,用户地址,用户手机号mp、用户卡号pan。

步骤一、合约方对应的节点发布能力服务接口。

在具体实施过程中,合约方t、合约方b、合约方u对应的节点向区块链中发布能力服务接口。具体的,合约方t发布的能力服务接口1,可验证用户名、mp、地址的一致性;合约方b发布的能力服务接口2,可验证用户名、pan的一致性;合约方u发布的能力服务接口3,可根据pan提供周期性消费能力评估。

步骤二、合约方r对应的节点获取合约方t、合约方b、合约方u发布的能力服务接口1-3,根据自身的需求,编写智能合约,智能合约中的合约方包括:合约方r、合约方t、合约方b、合约方u。在智能合约中,包括任务1-3。其中,任务1为合约方t对应的节点的任务,包括:验证用户名、用户手机号及地址一致性,如果成功,则向合约方b的节点发送通知消息,所述通知消息,用于通知合约方b的节点执行任务2;并将一致性结果上传至区块链。

任务2为合约方b对应的节点的任务,包括:验证用户名、mp一致性,如果成功,则向合约方u的节点发送通知消息,所述通知消息,用于通知合约方u的节点执行任务3;并将一致性结果上传至区块链。

任务3为合约方u对应的节点的任务,包括:根据pan提供最近一年的消费能力评估,将消费能力评估结果发送至区块链,并发送反馈消息至合约方r的节点,合约方r的节点将接收到的反馈消息发送至合约方r的业务系统。

需要说明的是,上述任务的说明仅为举例,可以根据实际需要,设置任务的个数,以及任务的内容,同一个节点可以执行多个任务,一个任务也可以被多个节点执行,并根据多个节点的执行结果确定一个执行结果,在此不做限定。

步骤三、合约方r对应的节点发布智能合约至区块链。

步骤四、合约方t、合约方b、合约方u对应的节点接收所述智能合约,并根据实际需要签署合约。若确定合约方t、合约方b、合约方u全部签署,则各合约方的节点确定所述智能合约进入有效状态。

现有技术的智能合约中,以以太坊为例,在触发智能合约时,智能合约的执行可以包括:合约方,为执行智能合约的相关参与者,通过合约方的外部账户发送消息,触发智能合约;合约资源集合,为智能合约执行涉及的参与者资源,比如各合约方账户、拥有的数字财产等;智能合约中的事务主要包含需要发送的数据;而智能合约中的事件则是对这些数据的描述信息。事务及事件信息被智能合约的执行节点接收后,合约资源集合中的资源状态会被更新,进而触发智能合约进行状态机判断。状态机,包括当前资源状态判断、下一步合约事务执行选择等;智能合约系统若确定事件中包含的触发条件满足时,从智能合约的自动状态机自动发出预设的数据资源,以及包括触发条件的事件;合约事务集合,为智能合约的下一步动作或行为集合,控制着智能合约的资产并对接收到的信息进行回应。

具体的,基于区块链的智能合约的执行可以包括:

步骤一、定期检查区块中的智能合约,逐条遍历每个合约内的状态机、事务以及触发条件;将条件满足的事务推送到待验证的队列中,等待共识;未满足触发条件的事务将继续存放在区块链上。

步骤二、进入最新轮验证的事务,会扩散到每一个验证节点,与普通区块链交易或事务一样,验证节点首先进行签名验证,确保事务的有效性;验证通过的事务会进入待共识集合,等大多数验证节点达成共识后,事务会成功执行并通知用户。各节点执行智能合约是相互独立的,当各节点执行智能合约完毕时,将彼此验证结果是否一致,验证通过后,将结果返回至用户。

步骤三、事务执行成功后,智能合约的状态机会判断所属合约的状态,当合约包括的所有事务都顺序执行完后,状态机会将合约的状态标记为完成,并从最新的区块中移除该合约;反之将标记为进行中,继续保存在最新的区块中等待下一轮处理,直到处理完毕;整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可攥改。

另外,由于现有智能合约中,仅存储了各合约方的账户信息,访问接口,以及访问各接口的方法。合约发布时,根据各方约定将访问接口分配给指定的合作方授权使用,各合约方通过访问接口可实现对合约内数据的存取。

各合约方执行智能合约时需要通过数据访问接口不断轮询智能合约,并根据轮询结果来判断所需完成的任务,任务的执行结果仍然需要通过智能合约的接口保存在智能合约当中。

在执行过程中,合约方的节点采用轮询机制,需要不断的至区块链中查询智能合约的状态,以确定是否可以执行所述智能合约,使得智能合约的数据可以被各合约方知晓,无法保证数据的私密性。

在具体实施过程中,合约方的节点根据智能合约中的状态,确定当前可以执行的业务,在业务处理完后再将处理后的数据上传至区块链之上,以完成对区块链中智能合约数据和状态的更新,这种方法执行效率较低。由于智能合约的状态需要各合约方主动查询,导致智能合约尽管能执行多方协作任务,但仅能串行处理,效率很低,实施操作均很困难。

另外,由于智能合约内仅包含各方的处理状态及数据存取接口,实际针对每个接口的业务处理方法均存在于各合约方自身的业务系统当中,智能合约无法确定各合约方处理智能合约的具体实现方法,节点仅根据智能合约,无法从业务逻辑的角度理解智能合约。若各合约方执行合约时业务的具体实现方法发生变化,还须对合约及各合约方自身的业务系统均做出适应性修改,修改周期长,成本大,修改困难。

如图3所示,本发明实施例提供了一种安全多方计算的方法,包括:

步骤301:第一节点根据多方计算请求,确定所述第一节点对应的合约方在处理所述多方计算请求时需执行的智能合约的任务;所述智能合约包括执行所述多方计算请求的各合约方的任务及各任务间的执行关系;所述第一节点为所述各合约方中的任一个;

步骤302:所述第一节点在所述需执行的任务处理完后,根据所述各任务间的执行关系确定第二节点;

其中,第二节点为执行所述多方计算请求的各合约方中下一任务对应的节点;

步骤303:第一节点向所述第二节点发送通知消息;所述通知消息用于指示第二节点处理所述多方计算请求。

需要说明的是,编写智能合约的第一节点为所述智能合约的请求方,该请求方可以为执行该智能合约中的合约方,也可以不是执行该智能合约的合约方,在此不做限定。

本发明实施例提供了一种安全多方计算的方法,智能合约的内容包括所有合约方执行所述智能合约的任务,而不仅仅是账本数据的状态保存和存取接口,执行智能合约时不依赖各合约方对应的业务系统,智能合约内存在多个任务,这些任务之间具有顺序逻辑关系,任务之间切换根据上一任务的执行结果驱动,因此,合约的执行过程可以通过任务驱动的方式被有序执行,链外的业务系统无需轮询接点机,实现了安全多方计算的自动化。并且,各合约方可以通过通知消息自动唤醒并执行相关任务,无需轮询,有效提高了智能合约的执行效率,增强了数据的私密性。

在步骤301中,如图4所示,第一节点根据业务系统a接收的用户的多方计算请求,执行智能合约。本发明实施例中,智能合约执行可以有两种方式,一种是解释执行,一种是编译后执行,本发明实施例不做限定。智能合约执行的环境可以命名为合约“运行环境”。运行环境可以全部在内存当中,并与其他环境进行隔离,以加强数据的安全性。合约的执行分为两个步骤:合约唤醒和合约运行。

在合约唤醒过程中,为保证智能合约仅能被智能合约的请求方调用,可以为智能合约设置调用智能合约的访问权限。具体的,所述方法还包括:

所述第一节点设置调用所述智能合约的访问权限;所述访问权限用于为所述智能合约的请求方的节点设置调用所述智能合约的权限。

在具体实施过程中,可以为所述智能合约的外部访问接口设置调用权限。通过上述方法,可以使得智能合约中除请求方以外的其他合约方或者区块链上的其他节点都无法唤醒该智能合约,加强了多方计算的安全性。

在具体实施过程中,智能合约的唤醒可以包括以下步骤:

步骤一、第一节点使用智能合约中约定的任务所关联的账户登录节点服务器;

步骤二、第一节点通过合约标识确定要执行的智能合约,并附带合约指定的参数。

当智能合约唤醒时,智能合约的运行环境可以将智能合约中的全部内容读取到内存当中,以加快任务的执行。

智能合约由多个任务组成,智能合约的触发以及任务的执行均由任务的执行结果来驱动。任务的执行结果可以通过通知消息的方式下发至执行下一任务的节点。通知消息可以包括:下一任务的执行者的账户列表;合约标识;执行的前置任务的任务结果,多方计算请求,附加数据,由当前任务的执行者的账户授权,只有当前任务的执行者可以获得该数据,保证了安全多方计算中数据的安全性。当然,下一任务的节点可以还被智能合约引擎(例如evm)自动唤醒,执行对应的任务,具体实施方式可以参考通知消息的方式,在此不再赘述。

当然,还可以根据需要,在合约执行过程中,为合约方设置执行不同任务的权限,使得智能合约的执行过程中,不同合约方的数据保密,保证了多方计算的数据隐私。

另外,合约中的任务在执行时,确定下一任务的节点后,发送所述通知消息可以是通过点对点的方式传递,因此,智能合约的任务仅在相关任务节点之间传递,其他节点不可能接触到该数据,加强了数据的私密性。

当前账户接入的接点机运行环境需检查当前账户与任务指定的账户是否一致,且该合约是否已经是签署状态,如果满足上述条件,则为当前合约生成一个实例并开始运行该任务。

当合约中的任务执行完毕时,运行环境需根据合约内容自动发出执行结果,执行结果可以以通知消息的形式发送。

在具体实施过程中,合约执行还可以包括:

第二节点根据通知消息,确定第二节点是否获得了任务中约定的账户的授权。如果满足授权条件,则运行通知消息中指定的任务。

任务的执行和执行结果上链可以为两个逻辑上分开的并行操作,不在一条逻辑链条上。合约执行任务的过程为远端执行,其运行环境确保当前节点获得了能力服务接口发布者的授权,调用该能力服务接口时,可以进行环境保护和数据隔离,保证了合约方各自的用户系统的独立性,智能合约不会知晓参与方的用户信息,提高了用户数据的安全性,通过将任务执行后返回的数据上链保存在智能合约当中,保证了安全多方计算中数据的不可篡改。

在本发明实施例中,智能合约包括智能合约中所有任务及所有任务间的执行关系,通过向执行下一任务的节点发送通知消息,实现多方的节点可以根据通知消息,以及所述智能合约,确定各自需执行的任务和执行任务的时间;相比于现有技术,每个节点无需轮询智能合约的执行状态,有效的提高了安全多方计算的执行效率。

在每个任务处理完成后,本发明实施例还可以包括:

第一节点在所述当前需执行的任务处理完后,将所述当前需执行的任务的处理结果发送至所述智能合约所属的区块链上。

在具体实施过程中,发送任务的处理结果可以通过发送事件消息的方式触发一笔区块链交易,以此将合约的执行结果记录在区块链上,确保安全多方计算的真实及可靠性。

在所述智能合约处理完成后,所述方法还包括:

请求方对应的节点接收第二节点发送的反馈消息;

其中,所述反馈消息是第二节点确定所述智能合约执行完毕后发送的。

需要说明的是,所述智能合约处理毕可以是智能合约在某一任务处理失败,导致的智能合约终止执行,具体判定智能合约处理完毕,可以在所述智能合约中的任务关联关系中写明;也可以是所述智能合约中的任务全部执行完毕后确认所述智能合约执行完毕。

通过发送反馈消息的方式,使得请求方对应的节点可以直接根据接收的反馈消息,确定所述智能合约的执行结果,而不需要通过周期性的至区块链中查询,减少了区块链的查询压力,提高了安全多方计算的实时性和便捷性。

相对于现有技术中的智能合约中需要轮询智能合约的状态以获得当前智能合约的执行情况,无法并行处理一个任务中可以多个合约方执行的场景;一种可能的实现方式,所述第二节点为多个;所述第一节点向所述多个第二节点发送通知消息之后,还包括:

所述多个第二节点分别根据所述智能合约,确定所述第一节点对应的合约方在处理所述多方计算请求时当前需执行的任务;所述多个第二节点在所述当前需执行的任务处理完后,根据所述各任务间的执行关系确定第三节点,并向所述第三节点发送通知消息;所述通知消息用于所述第三节点根据所述多个通知消息确定获胜的节点,并根据所述获胜的节点的通知消息处理所述第三节点当前所需执行的任务。

对于特定的任务,可能指定了多个合约方的节点对应的账户,或者,一个合约方中的多个账户,此时,可以在多个账户所在的节点在接收到通知消息后分别独立运行该任务,并可以根据预设规则确定该任务的获胜的节点。

在具体实施过程中,预设规则可以为完成时间优先,即最早将任务结果发布出来的节点获胜;还可以为价格低者优先,即如果存在多个节点同时完成的情况,约定按照目标节点引用的能力服务接口所定义的价格来进行排序,价低者胜;还可以根据预定的排序规则确定,例如,如果上述两个预设规则均不能区分出获胜的节点,则可以根据智能合约中该任务指定的账户顺序为准,排序靠前的为获胜的节点。

本发明实施例中,可以根据任务间的执行关系,若确定存在任务中可以多个合约方执行,通过并行处理的方式,并根据多个合约方的执行结果,优选所述执行结果,确定获胜的节点,实现了任务的多线程处理,实现了智能合约的执行的多样性,有效的提高了安全多方计算的执行效率。

结合图4,以下以b2b2c积分互换的智能合约的多方计算请求为实施例进行说明,下面以用第一节点对应的业务系统a的积分换第二节点对应的业务系统b的积分的智能合约的交易方法,包括:

步骤一、业务系统a的用户通过业务系统a确定需要积分互换,向业务系统a发送积分互换请求;

步骤二、业务系统a根据所述积分互换请求,生成调用积分互换的智能合约对应的多方计算请求,并将所述多方计算请求发送至第一节点;所述多方计算请求中标识了关联的智能合约和相关参数。

步骤三、第一节点根据所述多方计算请求校验智能合约,如果智能合约的状态有效,则生成智能合约的执行消息给第一节点的合约执行引擎。

其中,智能合约的状态有效包括智能合约已经被签署,为可以执行的状态;还包括第一节点根据智能合约的调用权限,确定第一节点对应的合约方的账户可以调用所述智能合约。

步骤四、第一节点的合约执行引擎根据智能合约自动执行,若确定需执行的任务为第二节点,则生成通知消息,并发送通知消息至关联的任务的第二节点。

步骤四、第二节点根据接收到的通知消息,传递给第二节点的合约执行引擎,启动相关任务在第二节点对应的本地执行,执行结果通过任务间消息传递给下一任务的节点,直到所有任务执行完毕。

步骤五、执行最后一个任务的节点若确定智能合约执行完成,则向第一节点的业务系统a发送执行结果;并根据合约约定的方式反馈给业务系统b。

例如,若执行最后一个任务的节点为第二节点,则第二节点向第一节点的业务系统a发送执行结果;若执行最后一个任务的节点为第一节点,则第一节点向业务系统a发送执行结果。

步骤六、第一节点根据收到的积分互换任务的返回结果,通过约定的方式反馈给业务系统a。

下面以数据共享作为一个具体的实施例,说明本发明实施例中智能合约的交易方法,其中,数据共享的智能合约中包括:合约方r、合约方t、合约方b、合约方u。合约方r为数据共享的需求方,用于获取用户信息的一致性的验证结果,以及消费能力评估的数据。其中,用户信息可以包括用户名,用户地址,用户手机号,用户卡号等。数据共享的智能合约的交易方法,可以包括以下步骤:

步骤一、合约方r的业务系统根据场景需求触发数据共享的智能合约;

步骤二、合约方r的第一节点启动并执行合约,生成通知消息给合约方t对应的第二节点;

步骤三、合约方t的各节点依照智能合约中任务执行的逻辑顺序执行对应的任务,若执行完合约方t对应的任务,并确定下一任务的执行的节点对应的合约方为合约方b;则将执行完的结果以通知消息的形式发送至合约方b对应的节点;

步骤四、合约方b的节点依照智能合约中任务执行的逻辑顺序执行对应的任务;例如,若执行完合约方b对应的任务,并确定下一任务的执行的节点对应的合约方为合约方u;则将执行完的结果以通知消息的形式发送至合约方u对应的节点;

步骤五、合约方u启动通知消息中指定的后续任务;执行完毕后,若确定智能合约中的任务全部执行完毕,则确定智能合约执行完毕;将执行的结果作为智能合约的执行结果反馈给合约方r对应的节点。

步骤六、合约方r对应的节点将所述智能合约的执行结果通过反馈消息的方式反馈给合约方r对应的业务系统。

基于相同的发明构思,如图5所示,本发明实施例提供了一种安全多方计算的装置,包括:

处理单元501,用于根据多方计算请求,确定需要调用的智能合约;所述智能合约包括执行所述多方计算请求的各合约方的任务及各任务间的执行关系;所述第一节点为所述各合约方中的任一个;根据所述智能合约,确定所述第一节点对应的合约方在处理所述多方计算请求时当前需执行的任务;在所述当前需执行的任务处理完后,根据所述各任务间的执行关系确定第二节点;所述第二节点为执行所述多方计算请求的各合约方中下一任务对应的节点;

收发单元502,用于向所述第二节点发送通知消息;所述通知消息用于指示所述第二节点处理所述多方计算请求。

一种可能的实现方式,处理单元501,具体用于:根据多方计算请求,确定需要调用的智能合约的访问权限,所述访问权限用于为所述智能合约的请求方的节点设置调用所述智能合约的权限。

一种可能的实现方式,收发单元502还用于:接收所述第二节点发送的反馈消息,所述反馈消息是所述第二节点确定所述智能合约执行完毕后发送的。

一种可能的实现方式,收发单元502,还用于:在所述当前需执行的任务处理完后,将所述当前需执行的任务的处理结果发送至所述智能合约所属的区块链上并达成共识。

一种可能的实现方式,所述第二节点为多个;所述多个第二节点分别根据所述智能合约,确定所述第一节点对应的合约方在处理所述多方计算请求时当前需执行的任务;所述多个第二节点在所述当前需执行的任务处理完后,根据所述各任务间的执行关系确定第三节点,并向所述第三节点发送通知消息;所述通知消息用于所述第三节点根据所述多个通知消息确定获胜的节点,并根据所述获胜的节点的通知消息处理所述第三节点当前所需执行的任务。

如图6所示,本发明实施例提供了一种安全多方计算的装置,包括:

处理单元601,用于编写智能合约;所述智能合约中包括各合约方的节点信息,各合约方执行所述智能合约的任务、及任务间的任务执行关系;

收发单元602,用于将所述智能合约发布在区块链上,并在所述区块链上达成共识后发布成功。

一种可能的实现方式,收发单元602,还用于向所述智能合约中的合约方的节点发送授权请求;

处理单元601,还用于根据所述合约方的节点的授权结果,确定所述智能合约是否可执行。

一种可能的实现方式,收发单元602,还用于:获取至少一个第二节点发布的至少一个能力服务接口;所述至少一个能力服务接口用于表征所述至少一个第二节点的提供的服务;

处理单元601,用于:根据所述至少一个能力服务接口以及第一节点的业务需要,确定所述智能合约的合约方,以及每个合约方的节点所需执行的任务。

一种可能的实现方式,处理单元601,还用于设置调用所述智能合约的访问权限;所述访问权限用于设置所述智能合约的请求方的节点调用所述智能合约。本发明实施例提供了一种计算设备,包括存储器和处理器,其中:

所述存储器,用于存储程序指令;

所述处理器,用于调用所述存储器中存储的程序指令,并按照获得的程序执行本发明实施例提供的智能合约的交易方法或所述的智能合约的建立方法。

本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行本发明实施例提供的智能合约的交易方法或的智能合约的建立方法。

本发明实施例提供了一种安全多方计算的方法,智能合约的内容包括所有合约方执行所述智能合约的任务,智能合约中存储的不是账本数据的状态保存和存取接口,智能合约内存在多个任务,这些任务既可以处理任务的输入数据,也可以引用区块链上节点发布的用以完成特定计算任务的能力服务接口,其任务是多方协同的任务的完整描述,是业务逻辑的完整封装,而不仅仅是账本数据的状态保存和存取接口,这些任务之间具有顺序逻辑关系,任务之间切换和执行由智能合约定义时描述的逻辑关系驱动,任务和任务之间既可以并行执行,也可以串行执行,或者并行与串行的任意组合。因此,本发明实施例中的智能合约执行智能合约时不依赖各合约方对应的业务系统,各方承担的任务可以在链外本地环境执行,本地数据不会泄露出去,实现了安全多方计算。

智能合约还可以设置触发该智能合约所需的外部访问接口的权限,加强智能合约的安全性。

合约内容可以引用链上节点发布的用以完成特定计算任务的能力接口,以实现对任务和链外系统的解耦,因此,本身实施例中仅需要根据业务需求修改智能合约,不需要考虑各合约方的业务系统是否兼容,即可实现智能合约的升级和维护。

智能合约编写完毕后即可直接发布至区块链,而不需要所有合约方全部授权后再发布,使得发布智能合约更加便捷,提高了智能合约的建立的效率。相关合作方在合约发布后通过发送授权请求签署合约,根据所有合作方的授权结果确认所述智能合约是否可执行,确保了安全多方计算的可靠性。

本发明实施例提供了一种安全多方计算的方法,智能合约的内容包括所有合约方执行所述智能合约的任务,而不仅仅是账本数据的状态保存和存取接口,执行智能合约时不依赖各合约方对应的业务系统,智能合约内存在多个任务,这些任务之间具有顺序逻辑关系,任务之间切换根据上一任务的执行结果驱动,因此,合约的执行过程可以通过任务驱动的方式被有序执行,链外的业务系统无需轮询接点机,相比于现有技术,每个节点无需轮询智能合约的执行状态,有效的提高了智能合约的执行效率,实现了安全多方计算的自动化,增强了数据的私密性。合约执行结果上链,保证了安全多方计算中数据的真实及可靠性。通过发送反馈消息的方式,使得第一节点可以直接根据接收的反馈消息,确定所述智能合约的执行结果,而不需要通过周期性的至区块链中查询,减少了区块链的查询压力,提高了安全多方计算的实时性和便捷性。相对于现有技术中的智能合约中需要轮询智能合约的状态以获得当前智能合约的执行情况,无法并行处理一个任务中可以多个合约方执行的场景;本发明实施例中,可以根据任务间的执行关系,若确定存在任务中可以多个合约方执行,通过并行处理的方式,并根据多个合约方的执行结果,优选所述执行结果,确定获胜的节点,实现了任务的多线程处理,实现了安全多方计算的执行的多样性,有效的提高了安全多方计算的执行效率。

本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1