资产类型一致性证据生成、交易、交易验证方法及系统与流程

文档序号:21275167发布日期:2020-06-26 23:12阅读:245来源:国知局
资产类型一致性证据生成、交易、交易验证方法及系统与流程

本说明书实施例涉及信息技术领域,特别涉及资产类型一致性证据生成、交易、交易验证方法及系统。



背景技术:

实体(如,机构、公司等)开展业务使用的资产类型(如,人民币、美元、证券等),可能是该实体的商业机密,需要针对其做隐私保护,避免对外(如竞争对手)泄露。另外,资产类型的泄露可能导致该实体的更多私密信息被获取。比如,在跨境汇款或者在供应链中,通过资产类型有可能推断出实体所在的地区,进而推断出该实体的身份信息。为了防止隐私泄露,实体在交易过程中会将资产类型的密文上链。出于更严格的隐私保护要求,即便实体采用公共的加密算法加密同一资产类型的标识信息,也会因各实体使用不同的私密值(如,随机数)来生成该资产类型的密文,使得各实体针对同一资产类型的密文有所不同。

有鉴于此,希望在保护数据隐私的前提下,提供一种能够公开验证交易双方的资产类型密文是否基于同一资产类型生成的方案,以确保交易双方针对同一资产类型进行交易。



技术实现要素:

本说明书实施例之一提供一种资产类型一致性证据生成方法,其中,所述方法由交易发起方的设备执行,其包括:生成目标资产类型的参考密文;生成第一私钥,其中,对所述目标资产类型的第一验证密文和所述参考密文进行目标运算的结果为与所述第一私钥匹配的第一公钥,所述第一验证密文与所述交易发起方对应,所述目标运算满足:对同一对象的参考密文和验证密文进行所述目标运算的结果为与私钥匹配的公钥,该私钥由用于生成该同一对象的密文的私密值得到;使用所述第一私钥对第一签名消息生成第一数字签名,其中,所述第一签名消息包括所述第一验证密文和所述参考密文;获得使用第二私钥对第二签名消息生成的第二数字签名,其中,所述第二签名消息包括所述目标资产类型的第二验证密文和所述参考密文,所述第二验证密文与交易接收方对应,对所述第二验证密文和所述参考密文进行所述目标运算的结果为与所述第二私钥匹配的第二公钥;获得包含所述第一验证密文、所述第二验证密文、所述参考密文、所述第一数字签名和所述第二数字签名的证据,以证明所述第一验证密文、所述第二验证密文与所述参考密文基于同一资产类型得到。

本说明书实施例之一提供一种资产类型一致性证据生成系统,其中,所述系统在交易发起方的设备上实现,其包括:参考密文生成模块,用于生成目标资产类型的参考密文;第一私钥生成模块,用于生成第一私钥,其中,对所述目标资产类型的第一验证密文和所述参考密文进行目标运算的结果为与所述第一私钥匹配的第一公钥,所述第一验证密文与所述交易发起方对应,所述目标运算满足:对同一对象的参考密文和验证密文进行所述目标运算的结果为与私钥匹配的公钥,该私钥由用于生成该同一对象的密文的私密值得到;第一数字签名模块,用于使用所述第一私钥对第一签名消息生成第一数字签名,其中,所述第一签名消息包括所述第一验证密文和所述参考密文;第二数字签名获得模块,用于获得使用第二私钥对第二签名消息生成的第二数字签名,其中,所述第二签名消息包括所述目标资产类型的第二验证密文和所述参考密文,所述第二验证密文与交易接收方对应,对所述第二验证密文和所述参考密文进行所述目标运算的结果为与所述第二私钥匹配的第二公钥;资产类型一致性证据获得模块,用于获得包含所述第一验证密文、所述第二验证密文、所述参考密文、所述第一数字签名和所述第二数字签名的证据,以证明所述第一验证密文、所述第二验证密文与所述参考密文基于同一资产类型得到。

本说明书实施例之一提供一种资产类型一致性证据生成装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的由交易发起方的设备执行的资产类型一致性证据生成方法。

本说明书实施例之一提供一种资产类型一致性证据生成方法,其中,所述方法由交易接收方的设备执行,其包括:接收来自交易发起方的目标资产类型的参考密文;生成第二私钥,其中,对所述目标资产类型的第二验证密文和所述参考密文进行目标运算的结果为与所述第二私钥匹配的第二公钥,所述第二验证密文与所述交易接收方对应,所述目标运算满足:对同一对象的参考密文和验证密文进行所述目标运算的结果为与私钥匹配的公钥,该私钥由用于生成该同一对象的密文的私密值得到;使用所述第二私钥对第二签名消息生成第二数字签名,其中,所述第二签名消息包括所述第二验证密文和所述参考密文;将所述第二验证密文和所述第二数字签名发送给所述交易发起方的设备,以使所述交易发起方的设备获得包含所述目标资产类型的第一验证密文、所述第二验证密文、所述参考密文、第一数字签名和所述第二数字签名的证据,其中,所述第一验证密文与所述交易发起方对应,所述第一数字签名是使用第一私钥对第一签名消息生成的,所述第一签名消息包括所述第二验证密文和所述参考密文,所述证据用于证明所述第一验证密文、所述第二验证密文与所述参考密文基于同一资产类型得到。

本说明书实施例之一提供一种资产类型一致性证据生成系统,其中,所述系统在交易接收方的设备上实现,其包括:参考密文接收模块,用于接收来自交易发起方的目标资产类型的参考密文;第二私钥生成模块,用于生成第二私钥,其中,对所述目标资产类型的第二验证密文和所述参考密文进行目标运算的结果为与所述第二私钥匹配的第二公钥,所述第二验证密文与所述交易接收方对应,所述目标运算满足:对同一对象的参考密文和验证密文进行所述目标运算的结果为与私钥匹配的公钥,该私钥由用于生成该同一对象的密文的私密值得到;第二数字签名模块,用于使用所述第二私钥对第二签名消息生成第二数字签名,其中,所述第二签名消息包括所述第二验证密文和所述参考密文;发送模块,用于将所述第二验证密文和所述第二数字签名发送给所述交易发起方的设备,以使所述交易发起方的设备获得包含所述目标资产类型的第一验证密文、所述第二验证密文、所述参考密文、第一数字签名和所述第二数字签名的证据,其中,所述第一验证密文与所述交易发起方对应,所述第一数字签名是使用第一私钥对第一签名消息生成的,所述第一签名消息包括所述第二验证密文和所述参考密文,所述证据用于证明所述第一验证密文、所述第二验证密文与所述参考密文基于同一资产类型得到。

本说明书实施例之一提供一种资产类型一致性证据生成装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的由交易接收方的设备执行的资产类型一致性证据生成方法。

本说明书实施例之一提供一种交易方法,其中,包括:通过如本说明书任一实施例所述的资产类型一致性证据生成方法,获得用于证明交易双方对应的验证密文与参考密文基于同一资产类型得到的证据;利用交易发起方或交易接收方的私钥对第三签名消息生成第三数字签名,所述第三待签名消息包括交易双方账户的标识信息和所述证据;将所述第三签名消息和所述第三数字签名上传至区块链网络。

本说明书实施例之一提供一种交易系统,其中,包括:获得模块,用于通过如本说明书任一实施例所述的资产类型一致性证据生成方法,获得用于证明交易双方对应的验证密文与参考密文基于同一资产类型得到的证据;第三数字签名模块,用于利用交易发起方或交易接收方的私钥对第三签名消息生成第三数字签名,所述第三待签名消息包括交易双方账户的标识信息和所述证据;上传模块,用于将所述第三签名消息和所述第三数字签名上传至区块链网络。

本说明书实施例之一提供一种交易装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的交易方法。

本说明书实施例之一提供一种交易验证方法,其中,包括:接收第三签名消息和第三数字签名,所述第三签名消息包括参考密文、与交易发起方对应的第一验证密文及第一数字签名、与交易接收方对应的第二验证密文及第二数字签名;基于交易发起方或交易接收方的公钥和所述第三签名消息,验证所述第三数字签名;当所述第三数字签名通过验证时:将所述参考密文和所述第一验证密文进行目标运算,得到用于验证所述第一数字签名的第一公钥,基于所述参考密文和所述第一验证密文得到用于验证所述第一数字签名的第一签名消息,基于所述第一公钥和所述第一签名消息验证所述第一数字签名;和/或,将所述参考密文和所述第二验证密文进行所述目标运算,得到用于验证所述第二数字签名的第二公钥,基于所述参考密文和所述第二验证密文得到用于验证所述第二数字签名的第二签名消息,基于所述第二公钥和所述第二签名消息验证所述第二数字签名;若所述第一数字签名和所述第二数字签名通过验证,则确定所述第一验证密文、所述第二验证密文与所述参考密文基于同一资产类型得到。

本说明书实施例之一提供交易验证系统,其中,包括:接收模块,用于接收第三签名消息和第三数字签名,所述第三签名消息包括参考密文、与交易发起方对应的第一验证密文及第一数字签名、与交易接收方对应的第二验证密文及第二数字签名;第一验证模块,用于基于交易发起方或交易接收方的公钥和所述第三签名消息,验证所述第三数字签名;第二验证模块,用于当所述第三数字签名通过验证时:将所述参考密文和所述第一验证密文进行目标运算,得到用于验证所述第一数字签名的第一公钥,基于所述参考密文和所述第一验证密文得到用于验证所述第一数字签名的第一签名消息,基于所述第一公钥和所述第一签名消息验证所述第一数字签名;和/或,将所述参考密文和所述第二验证密文进行所述目标运算,得到用于验证所述第二数字签名的第二公钥,基于所述参考密文和所述第二验证密文得到用于验证所述第二数字签名的第二签名消息,基于所述第二公钥和所述第二签名消息验证所述第二数字签名;确定模块,用于:若所述第一数字签名和所述第二数字签名通过验证,则确定所述第一验证密文、所述第二验证密文与所述参考密文基于同一资产类型得到。

本说明书实施例之一提供一种交易验证装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的交易验证方法。

本说明书实施例之一提供一种对象一致性证据生成方法,其中,所述方法由事务的任一参与方的设备执行,其包括:获得目标对象的参考密文;生成目标私钥,其中,对所述目标对象的验证密文和所述参考密文进行目标运算的结果为与所述目标私钥匹配的目标公钥,所述目标运算满足:对同一对象的参考密文和验证密文进行所述目标运算的结果为与私钥匹配的公钥,该私钥由用于生成该同一对象的密文的私密值得到;使用所述目标私钥对目标签名消息生成目标数字签名,其中,所述目标签名消息包括所述验证密文和所述参考密文;获得至少包含所述验证密文、所述参考密文和所述目标数字签名的证据,以至少证明所述验证密文与所述参考密文基于同一对象得到。

本说明书实施例之一提供一种对象一致性证据生成系统,其中,所述系统在事务的任一参与方的设备上实现,其包括:参考密文获得模块,用于获得目标对象的参考密文;私钥生成模块,用于生成目标私钥,其中,对所述目标对象的验证密文和所述参考密文进行目标运算的结果为与所述目标私钥匹配的目标公钥,所述目标运算满足:对同一对象的参考密文和验证密文进行所述目标运算的结果为与私钥匹配的公钥,该私钥由用于生成该同一对象的密文的私密值得到;数字签名模块,用于使用所述目标私钥对目标签名消息生成目标数字签名,其中,所述目标签名消息包括所述验证密文和所述参考密文;对象一致性证据获得模块,用于获得至少包含所述验证密文、所述参考密文和所述目标数字签名的证据,以至少证明所述验证密文与所述参考密文基于同一对象得到。

本说明书实施例之一提供一种对象一致性证据生成装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的对象一致性证据生成方法。

附图说明

本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:

图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图;

图2是根据本说明书一些实施例所示的资产类型一致性证据生成方法的示例性流程图;

图3是根据本说明书一些实施例所示的资产类型一致性证据生成方法的示例性流程图;

图4是根据本说明书一些实施例所示的交易方法的示例性流程图;

图5是根据本说明书一些实施例所示的交易验证方法的示例性流程图;

图6是根据本说明书一些实施例所示的对象一致性证据生成方法的示例性流程图;

图7是根据本说明书一些实施例所示的资产类型一致性证据生成系统的示例性框图;

图8是根据本说明书一些实施例所示的资产类型一致性证据生成系统的示例性框图;

图9是根据本说明书一些实施例所示的交易系统的示例性框图;

图10是根据本说明书一些实施例所示的交易验证系统的示例性框图;

图11是根据本说明书一些实施例所示的对象一致性证据生成系统的示例性框图。

具体实施方式

为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。

应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。

如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。

本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。

本说明书中的实施例可以在依托区块链的电子交易场景中提供有关资产类型一致性的零知识证明。即,交易发起方可以在不向作为验证方的区块链节点提供任何有用信息(如,用于生成资产类型密文的私密值、交易资产对应的资产类型的标识信息)的情况下,使区块链节点确信交易双方对应的资产类型密文(即后文中的验证密文)基于同一资产类型得到。

图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图。如图1所示,区块链系统100可以包括区块链用户端110(可简称为用户端)、区块链网络120及网络130,其中,区块链网络120包括一个以上区块链节点(可简称为“节点”),如区块链节点-1、120-2、120-3…120-n等。

区块链用户端110可通过网络130连接于区块链网络120。实体可以通过区块链用户端110访问区块链网络120,加入区块链网络120的实体也可称为区块链成员。在一些实施例中,区块链用户端110可以上传信息和/或数据至区块链网络120中的一个或多个区块链节点,例如上传交易记录。在一些实施例中,交易记录可以包括写入区块中的交易信息(可简称为“交易”)。在一些实施例中,区块链用户端110可以向区块链网络120中的一个或多个区块链节点发起查询,以获得存储在区块链(即分布式账本,由持续生成的区块链接而成)中的数据,如交易。

在一些实施例中,交易发起方的用户端可以将用于证明资产类型一致性(即,交易双方的验证密文基于同一资产类型得到)的证据附在交易中并上传至区块链网络120,以使节点在至少通过对资产类型一致性的验证后执行预期的后续流程,例如,将交易写入区块、更新交易双方的账户等等。

在一些实施例中,用户端可以包括各类具有信息接收和/或发送功能的设备。在一些实施例中,用户端可以包括智能电话、平板计算机、个人计算机、服务器等或其任意组合。

区块链网络120中的各个节点需要对交易进行验证和确认,进而生成新的区块(此过程可称为“记账”),同时,各节点可通过共识机制来维持存储在各节点的分布式账本的一致性。值得说明的是,区块链节点也可视为区块链网络120的用户端,不同于其他用户端,区块链节点需要参与记账。另外,实体可以通过不参与记账的用户端加入区块链网络120,也可以通过参与记账的区块链节点加入区块链网络120。

在一些实施例中,节点可以验证交易中的证据,以确认交易双方对应的验证密文是否基于同一资产类型得到。若未通过有关资产类型一致性的验证,即确定交易双方对应的验证密文不是基于同一资产类型得到,则节点可以拒绝执行预期的后续流程,例如,将交易写入区块、更新交易双方的账户等等。应当理解,除了对资产类型一致性的验证外,对交易的验证还可以包括其他验证,如对金额合法性的验证等。在一些实施例中,节点可以在通过对交易的多项验证后执行预期的后续流程。关于交易验证的更多细节,可以参考图5及其相关描述。

在一些实施例中,节点可以包括各类计算设备,如服务器。

在一些实施例中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。

网络130连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络130可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络(zigbee)、近场通信(nfc)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。可以理解,网络130与区块链网络120不必具有明显的分界,在更一般的应用场景中,区块链节点与普通网络节点可以共同接入同一物理网络中,其中的区块链节点在逻辑上构成区块链网络。

图2是根据本说明书一些实施例所示的资产类型一致性证据生成方法的示例性流程图。流程200可以由事务的交易发起方的设备执行,交易发起方的设备可作为用户端(区块链用户端110或区块链节点)连接至区块链网络120。如图2所示,流程200可以包括:

步骤210,生成目标资产类型的参考密文。在一些实施例中,步骤210可以由参考密文生成模块710实现。

应当理解,区块链网络120中的用户端可以采用公共的加密算法生成资产类型的验证密文以及参考密文。

步骤220,生成第一私钥。在一些实施例中,步骤220可以由第一私钥生成模块720实现。

其中,对目标资产类型的第一验证密文和参考密文进行目标运算的结果为与第一私钥匹配的第一公钥,该第一验证密文与交易发起方对应。

本说明书中提及的目标运算满足:对同一对象的参考密文和验证密文进行目标运算的结果为与私钥匹配的公钥,该私钥由用于生成该同一对象的密文的私密值得到。基于此,如果使用该私钥生成数字签名,只有使用与之匹配的公钥才可成功验签,即目标运算限制了获得可成功验签的公钥的前提为:验证密文与参考密文基于同一对象(资产类型)得到。

在步骤220中,由用于生成目标资产类型的第一验证密文和/或参考密文的私密值可得到第一私钥,只有使用与之匹配的第一公钥才可成功验证步骤230中使用第一私钥生成的第一数字签名。应当理解,私密值可指任一交易方(交易发起方或交易接收方)用于生成资产类型的密文且不对外公开的值,因为私密值的泄露会带来泄露密文对应的明文(即资产类型的标识信息)的风险。

仅作为示例,验证密文以及参考密文可以是基于pedersen承诺协议得到的。下面介绍pedersen承诺协议的相关知识:基于pedersen承诺协议的密文满足c=r1*g+r2*h,其中,g、h为椭圆曲线上的生成元(也可称为基点),r1、r2均为整数,r1*g、r2*h和c仍然是该椭圆曲线上的一点。

需要说明的是,本说明书中涉及椭圆曲线的运算与四则运算有着类似的性质,因此借鉴了四则运算的表示方法(如,加、减、乘、+、-、*),但这并不意味着这些涉及椭圆曲线的运算可以等同于四则运算。另外,在本说明书实施例中,区块链网络120中的用户端可以具有一些公共的参数,例如,椭圆曲线方程的参数、g、h等等。其中,g、h中的任一个可以作为公钥的生成参数,不妨将公钥的生成参数记为g,即,若私钥为r,则r*g为与私钥r匹配的公钥。

在一些实施例中,任一交易方(交易发起方或交易接收方)的验证密文以及参考密文分别包括与g对应的第一部分和与h对应的第二部分,其中,第一验证密文的第一部分基于第一生成元以及与交易发起方对应的私密值得到,第二验证密文的第一部分基于第一生成元和与交易接收方对应的私密值得到,第一验证密文、第二验证密文以及参考密文的第二部分相等且分别基于第二生成元和目标资产类型的标识信息得到。相应地,目标运算可以是求差值。如此,只有对同一资产类型的验证密文和参考密文求差值,使得两者的第二部分抵消,才能得到验签的公钥(展开形式包含公钥生成参数g)。

例如,任一交易方(交易发起方或交易接收方)的验证密文可按c_x=r_x*pk_x+sn*h计算,其中,c_x表示该交易方的验证密文,r_x表示随机数(视为该交易方的私密值),pk_x表示该交易方的公钥,sn表示目标资产类型的标识信息。值得注意的是,鉴于pk_x=pr_x*g,其中pr_x表示该交易方的私钥(为该交易方的另一私密值),按c_x=r_x*pk_x+sn*h计算出的验证密文实质上是一种基于pedersen承诺协议的密文。

由此可知,交易发起方的第一验证密文c_a=r_a*pk_a+sn*h,其中,r_a表示第一随机数(视为交易发起方的私密值),pk_a表示交易发起方的公钥(满足pk_a=pr_a*g,其中pr_a表示交易发起方的私钥)。

当验证密文按c_x=r_x*pk_x+sn*h计算时,参考密文可以按c0=r0*g+sn*h计算,其中,c0表示参考密文,r0表示第三随机数,r0可视为限制在交易发起方和交易接收方之间共享的私密值。基于此,目标运算可以指对验证密文和参考密文求差值(c_x-c0或c0-c_x)。应当理解,由于验证密文和参考密文基于同一资产类型得到,两者共同包含的sn*h在求差值的过程中会抵消,可以得到c_x-c0=(r_x*pr_x-r0)*g或c0-c_x=(r0-r_x*pr_x)*g,其中,r_x*pr_x-r0(或r0-r_x*pr_x)可视为私钥。举例说明,若第一验证密文c_a=r_a*pk_a+sn*h且参考密文c0=r0*g+sn*h,则第一公钥可以是c_a-c0(或c0-c_a),交易发起方的设备可以计算r_a*pr_a-r0(或r0-r_a*pr_a)得到第一私钥。

步骤230,使用第一私钥对第一签名消息生成第一数字签名。其中,第一签名消息包括第一验证密文和参考密文。在一些实施例中,步骤230可以由第一数字签名模块730实现。

步骤240,获得使用第二私钥对第二签名消息生成的第二数字签名。其中,第二签名消息包括第二验证密文和参考密文,第二验证密文与交易接收方对应,对第二验证密文和参考密文进行所述目标运算的结果为与第二私钥匹配的第二公钥。在一些实施例中,步骤240可以由第二数字签名获得模块740实现。

步骤250,获得包含第一验证密文、第二验证密文、参考密文、第一数字签名和第二数字签名的证据,以证明第一验证密文、第二验证密文与参考密文基于同一资产类型得到。在一些实施例中,步骤250可以由资产类型一致性证据获得模块750实现。

应当理解,第一验证密文可用于更新交易发起方的账户,第二验证密文可用于更新交易接收方的账户。

第一数字签名与参考密文、第一验证密文是互相关联的,当第一数字签名通过验证时可证明关联的第一验证密文与参考密文未经过篡改且两者基于同一资产类型得到。类似地,第二数字签名与参考密文、第二验证密文是互相关联的,当第二数字签名通过验证时可证明关联的第二验证密文与参考密文未经过篡改且两者基于同一资产类型得到。进而,包含第一验证密文、第二验证密文、参考密文、第一数字签名和第二数字签名的证据(以下简称为资产类型一致性证据)可以证明第一验证密文、第二验证密文与参考密文基于同一资产类型得到。当第一数字签名和第二数字签名均通过验证(即资产类型一致性证据通过验证)时,可以确认第一验证密文、第二验证密文与参考密文基于同一资产类型得到。

交易发起方的设备在获得资产类型一致性证据后,可以将资产类型一致性证据附加在交易中并将交易上传至区块链网络120,以证明第一验证密文和第二验证密文基于同一资产类型得到。

关于验证资产类型一致性证据的更多细节,可以参考图5及其相关描述。

在一些实施例中,考虑到交易接收方的账户可能尚未注册目标资产类型,交易发起方的设备可以生成交易接收方的第二验证密文。当然,交易发起方的设备可以将第二验证密文以及用于生成第二验证密文的私密值发送给交易接收方的设备。在一些实施例中,交易发起方的设备还可以基于生成的第二验证密文以及参考密文生成第二数字签名,以证明第二验证密文与参考密文基于同一资产类型得到。

在一些实施例中,交易发起方的设备可以将参考密文发送给交易接收方的设备,以使交易接收方的设备生成用于证明第二验证密文与参考密文基于同一资产类型得到的第二数字签名。

在一些实施例中,交易接收方的设备可以对接收到的参考密文进行验证。基于此,当参考密文至少基于第三随机数生成(如,按c0=r0*g+sn*h计算)时,交易发起方的设备可以将该第三随机数发送给交易接收方的设备。交易接收方的设备可以基于第三随机数和目标资产类型的标识信息生成对比参考密文,并比较接收到的参考密文和该对比参考密文,两者若相同,则通过验证,否则未通过验证。当未通过对接收到的参考密文的验证时,交易接收方的设备可以拒绝执行后续流程,例如,不再生成第二私钥。

第三随机数的泄露可能导致目标资产类型的泄密,例如,攻击者在获知第三随机数的情况下(尤其是在还获知包含目标资产类型的资产类型列表的情况下)可以尝试将多个资产类型的标识信息分别代入参考密文的计算式,若发现计算出的某个结果与可公开的参考密文一致时,则可确定该结果对应的资产类型即目标资产类型。有鉴于此,交易发起方的设备可将该第三随机数加密传输给交易接收方的设备。具体地,交易发起方的设备可使用交易接收方的公钥加密包含第三随机数的消息,并将经加密的消息发送给交易接收方的设备,使得交易接收方的设备可以使用交易发起方的私钥解密出第三随机数。

在一些实施例中,交易发起方的设备可以将目标资产类型的标识信息加密传输给交易接收方的设备。尽管交易接收方的设备可以通过加密一个或多个资产类型的标识信息筛选出目标资产类型,但显然由交易发起方告知交易接收方目标资产类型的标识信息是更为直接有效的方式。

前述实施例可以进行适当的组合,例如,交易发起方的设备可以将消息序列(c0,r0,sn;c_a,p_a)发送给交易接收方的设备,其中,c0表示参考密文,r0表示第三随机数,sn表示目标资产类型的标识信息,c_a表示第一验证密文,p_a表示第一数字签名。其中,可以至少对r0和sn进行加密处理以防止目标资产类型的泄密,例如,可以将利用交易接收方的公钥对消息序列进行加密,并将经加密的消息序列发送给交易接收方的设备。

图3是根据本说明书一些实施例所示的资产类型一致性证据生成方法的示例性流程图。流程300可以由交易接收方的设备执行,交易接收方的设备可作为用户端(区块链用户端110或区块链节点)连接至区块链网络120。如图3所示,流程300可以包括:

步骤310,接收来自交易发起方的目标资产类型的参考密文。在一些实施例中,步骤310可以由参考密文接收模块810实现。

在一些实施例中,交易接收方的设备可以对接收到的参考密文进行验证,若未通过验证,则不执行后续流程,例如,不再生成第二私钥。具体地,结合前述实施例,交易接收方的设备可以基于第三随机数r0和目标资产类型的标识信息sn计算(如,按c'=r0*g+sn*h计算)得到对比参考密文c'。进而,交易接收方的设备比较对比文参考密文和参考密文,两者若相同,则通过验证,否则未通过验证。

步骤320,生成第二私钥。在一些实施例中,步骤320可以由第二私钥生成模块820实现。

其中,对目标资产类型的第二验证密文和参考密文进行目标运算的结果为与第二私钥匹配的第二公钥,该第二验证密文与交易接收方对应。关于目标运算的更多细节,可以参考流程200中的相关描述。

参考前述实施例,当第二验证密文c_b=r_b*pk_b+sn*h且参考密文c0=r0*g+sn*h时,第二公钥可以是c_b-c0(或c0-c_b),交易接收方的设备可以计算r_b*pr_b-r0(或r0-r_b*pr_b)得到第二私钥。其中,r_b表示第二随机数(视为交易接收方的私密值),pk_b表示交易接收方的公钥(满足pk_b=pr_b*g,其中pr_b表示交易接收方的私钥)。

步骤330,使用第二私钥对第二签名消息生成第二数字签名。其中,第二签名消息包括第二验证密文和参考密文。在一些实施例中,步骤330可以由第二数字签名模块830实现。

当第二数字签名通过验证时可证明关联的第二验证密文与参考密文未经过篡改且两者基于同一资产类型得到。

步骤340,将第二验证密文和第二数字签名发送给交易发起方的设备,以使交易发起方的设备获得资产类型一致性证据。在一些实施例中,步骤340可以由发送模块840实现。

关于资产类型一致性证据的更多细节,可以在流程200的相关描述中找到,这里不再赘述。

在一些实施例中,交易接收方的设备可以接收来自交易发起方的消息序列(c0,r0,sn;c_a,p_a),其中,c0表示参考密文,r0表示用于生成参考密文的第三随机数,sn表示目标资产类型的标识信息,c_a表示第一验证密文,p_a第一数字签名。进而,交易接收方的设备可以按c'=r0*g+sn*h计算得到对比参考密文c'。若c'=c0,则交易接收方的设备可以计算r_b*pr_b与r0的差值得到第二私钥,利用第二私钥对第二签名消息生成第二数字签名。

关于流程300的更多细节,可以在流程200及其相关描述中找到,这里不再赘述。

在一些实施例中,交易接收方的设备还可以接收来自交易发起方的第一验证密文和第一数字签名,以获得资产类型一致性证据。

图4是根据本说明书一些实施例所示的交易方法的示例性流程图。流程400可以由流程200(或流程300)中交易发起方或交易接收方的设备执行。应当理解,当流程400由流程200(或流程300)中交易接收方的设备的执行时,流程200(或流程300)中的交易接收方是作为再次发起针对目标资产类型的交易的一方。如图4所示,流程400可以包括:

步骤410,获得用于证明交易双方对应的验证密文与参考密文基于同一资产类型得到的资产类型一致性证据。在一些实施例中,步骤410可以由获得模块910实现。

关于资产类型一致性证据的更多内容,可以在图2、图3及其相关描述中找到,这里不再赘述。

步骤420,利用交易发起方或交易接收方的私钥对第三签名消息生成第三数字签名。其中,第三待签名消息包括交易双方账户的标识信息和资产类型一致性证据。在一些实施例中,步骤420可以由第三数字签名模块920实现。

步骤430,将第三签名消息和第三数字签名上传至区块链网络120。在一些实施例中,步骤430可以由上传模块930实现。

在一些实施例中,第三签名消息可以包括更多内容。例如,第三签名消息还可以包括交易金额(可以是加密形式)、金额合法性证据等等,其中,金额合法性证据用于证明金额数值的合法性。会造成交易出现异常的情况是不被允许(即不合法)的,如以下几种情况:1.交易发起方的账户余额小于交易金额,此时交易发起方的账户是不具备支付能力的;2.交易金额的数值为负,此时会造成账户金额的增减与预期的相反,即账户金额不增反减或不减反增。

在一些实施例中,可以采用各种支持零知识证明的加密算法加密交易金额,例如,基于pedersen承诺协议的加密算法、哈希算法加密、同态加密算法等等。在一些实施例中,当采用基于pedersen承诺协议加密交易金额时,可以利用零知识证明技术“环签名机密交易”和“bulletproof”生成金额合法性证据。在一些实施例中,当采用哈希算法加密交易金额时,可以利用零知识证明技术“zksnark”生成金额合法性证据。

图5是根据本说明书一些实施例所示的交易验证方法的示例性流程图。流程500可以由区块链节点执行。如图5所示,流程500可以包括:

步骤510,接收第三签名消息和第三数字签名,该第三签名消息包括参考密文、与交易发起方对应的第一验证密文及第一数字签名、与交易接收方对应的第二验证密文及第二数字签名。在一些实施例中,步骤510可以由接收模块1010实现。

步骤520,基于交易发起方或交易接收方的公钥和第三签名消息,验证第三数字签名。在一些实施例中,步骤520可以由第一验证模块1020实现。

通过验证第三数字签名可以确定:1.签名者是否为交易方(流程200/300中的交易发起方或交易接收方);2.第三签名消息是否经过篡改。

当第三数字签名通过验证时,说明签名者确实为交易方且第三签名消息没有经过篡改,则区块链节点可以继续执行步骤530。当第三数字签名未通过验证时,区块链节点可以拒绝执行后续流程(如步骤530),即认为交易验证未通过。

步骤530,基于第一公钥和第一签名消息验证第一数字签名;和/或,基于第二公钥和第二签名消息验证第二数字签名。在一些实施例中,步骤530可以由第二验证模块1030实现。

其中,第二验证模块1030可将参考密文和第一验证密文进行目标运算,得到用于验证第一数字签名的第一公钥,以及可基于参考密文和第一验证密文得到用于验证第一数字签名的第一签名消息。类似地,第二验证模块1030可将参考密文和第二验证密文进行目标运算,得到用于验证第二数字签名的第二公钥,以及可基于参考密文和第二验证密文得到用于验证第二数字签名的第二签名消息。

若第一数字签名和第二数字签名通过验证,则区块链节点可以执行步骤540。若第一数字签名或第二签名消息未通过验证,则区块链节点可以执行步骤550。在一些实施例中,步骤540和步骤550可以由确定模块1040实现。

应当理解,步骤530的具体实现方式不受限制,例如,可以默认先验证第一数字签名和第二数字签名中的任一个,若先验证的数字签名未通过验证,则不再验证第一数字签名和第二数字签名中的另一个。

步骤540,确定第一验证密文、第二验证密文与参考密文基于同一资产类型得到。

步骤550,确定第一验证密文、第二验证密文与参考密文不是基于同一资产类型得到并拒绝执行后续流程。

若区块链节点接收到的第一数字签名和第二数字签名均通过验证,则说明交易双方对应的验证密文与参考密文基于同一资产类型得到,即第一验证密文和第二验证密文基于同一资产类型得到。否则,说明第一验证密文和第二验证密文不是基于同一资产类型得到。

交易验证通过的前提是第一数字签名和第二数字签名(当然,还有第三数字签名)均通过验证。若区块链节点通过交易验证,则可继续执行预期的后续流程。例如,可以将包括第三签名消息和第三数字签名的交易写入区块。又如,将基于交易双方对应的验证密文更新交易双方的账户,具体地,可以从第三签名消息中确定交易金额e(t),进而将交易发起方的账户中与第一验证密文对应的余额减少e(t)且将交易发起方的账户中与第二验证密文对应的余额增加e(t)。否则,可拒绝执行预期的后续流程。

根据流程400中的相关内容,第三签名消息还可以包括金额合法性证据,相应地,区块链节点通过对第三数字签名的验证后还可以对金额合法性证据进行验证。应当理解,金额合法性证据和第一数字签名/第二数字签名的验证顺序是可选的,当金额合法性证据、第一数字签名和第二数字签名中的任一项未通过验证时,区块链节点都可以拒绝执行后续流程。

在一些实施例中,当第一数字签名和第二数字签名(当然,还有第三数字签名)通过验证时,说明第一验证密文和第二验证密文基于同一资产类型(即目标资产类型)得到,区块链节点可以关联记录交易发起方的标识信息、交易接收方的标识信息、第一验证密文和第二验证密文。如此,当通过验证的历史交易中的任一交易方再次针对目标资产类型发起交易时,可向区块链节点提供第一验证密文和第二验证密文。区块链节点确认交易发起方和交易接收方的身份无误后,在本地查找是否保存有包含交易发起方的标识信息、交易接收方的标识信息、第一验证密文和第二验证密文的关联记录。若存有关联记录,说明在历史交易中已经成功验证过第一验证密文和第二验证密文的一致性,则区块链节点验证交易时可以省去对第一数字签名和第二数字签名的验证,当然再次发起交易的一方也不必再向区块链节点提供第一数字签名和第二数字签名。

在一些实施例中,区块链节点保存的关联记录可以包括更多内容。例如,区块链节点可以保存消息序列(a,b;c0,c_a,c_b;p_a,p_b),其中,a表示交易发起方的标识信息,c_a表示第一验证密文,p_b表示第一数字签名,b表示交易接收方的标识信息,c_b表示第二验证密文,p_b表示第二数字签名,c0表示参考密文。

在一些实施例中,区块链节点可以为保存的关联记录生成对应的id,并将该id反馈给交易方。如此,当交易双方再次针对目标资产类型进行新交易时,发起新交易的一方的设备可以将id提供给区块链节点,区块链节点根据接收到的id查找记录的交易双方的验证密文,并基于查找到的验证密文更新交易双方的账户。

值得说明的是,本说明书中的一个或多个步骤还可以通过调用智能合约实现。由于智能合约具有必须执行、不可篡改、可追溯等特性,可以保证相应步骤按预期执行且留下可追溯的存证。

虽然本说明书主要围绕针对同一资产类型的交易进行了描述,但是,本说明书中的原理可以更普遍地应用于针对同一对象的多方事务。这里的多方事务可以指具备以下特点的事务:1.需要两个以上参与方共同参与事务;2.各参与方需要针对同一对象(称为目标对象)参与事务;3.针对任一参与方,需要基于与该参与方对应的对象密文公开记录目标对象相关的事务信息,以防止发生隐私泄露。仅作为示例,这里的多方事务可以包括同类型数据的交换、同类型数据的协同更新等等。

图6是根据本说明书一些实施例所示的对象一致性证据生成方法的示例性流程图。流程600可以由多方事务的任一参与方(以下称为参与方x)的设备执行,具体地,在交易中参与方x可以指交易发起方或交易接收方。如图6所示,流程600可以包括:

步骤610,获得目标对象的参考密文。在一些实施例中,步骤610可以由参考密文获得模块1110实现。

步骤620,生成目标私钥。在一些实施例中,步骤620可以由私钥生成模块1120实现。

其中,对目标对象的验证密文和参考密文进行目标运算的结果为与目标私钥匹配的目标公钥,该目标运算满足:对同一对象的参考密文和验证密文进行目标运算的结果为与私钥匹配的公钥,该私钥由用于生成该同一对象的密文的私密值得到。应当理解,该验证密文(可记为c_x)与参与方x对应,可用于公开记录与参与方x对应的目标对象相关的事务信息。

步骤630,使用目标私钥对目标签名消息生成目标数字签名,该目标签名消息包括验证密文(c_x)和参考密文。在一些实施例中,步骤630可以由数字签名模块1130实现。

步骤640,获得至少包含验证密文(c_x)、参考密文和目标数字签名的证据,以至少证明验证密文(c_x)与参考密文基于同一对象得到。在一些实施例中,步骤640可以由对象一致性证据获得模块1140实现。

任一参与方对应的目标数字签名可用于证明该参与方对应的验证密文与参考密文基于同一对象得到。因此,可用于证明各参与方对应的验证密文与参考密文基于同一对象得到的证据(以下简称为对象一致性证据)包含:参考密文、各参与方对应的验证密文以及各参与方对应的目标数字签名。

任一参与方可以将包含对象一致性证据的消息发送给验证方的设备,以使验证方的设备通过验证对象一致性证据确认各参与方对应的验证密文是否基于同一对象得到。若验证方的设备确认各参与方对应的验证密文基于同一对象得到,则可以基于各参与方对应的验证密文记录与各参与方对应的目标对象相关的事务信息。

应当理解,关于流程600的更多细节可以参考流程200、流程300及其相关描述。例如,关于目标私钥(公钥)的更多细节,可以参考第一/第二私钥(公钥)的相关描述。又如,关于目标签名消息和目标数字签名的更多细节,可以参考第一/第二签名消息和第一/第二数字签名的相关描述。又如,关于对象一致性证据的更多细节,可以参考资产类型一致性证据的相关描述。

应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。

图7是根据本说明书一些实施例所示的资产类型一致性证据生成系统的示例性框图。系统700可以在交易发起方的设备上实现。如图7所示,系统700可以包括参考密文生成模块710、第一私钥生成模块720、第一数字签名模块730、第二数字签名获得模块740和资产类型一致性证据获得模块750。

参考密文生成模块710可以用于生成目标资产类型的参考密文。

第一私钥生成模块720可以用于生成第一私钥。

第一数字签名模块730可以用于使用所述第一私钥对第一签名消息生成第一数字签名。

第二数字签名获得模块740可以用于获得使用第二私钥对第二签名消息生成的第二数字签名。

资产类型一致性证据获得模块750可以用于获得包含第一验证密文、第二验证密文、参考密文、第一数字签名和第二数字签名的证据,以证明第一验证密文、第二验证密文与参考密文基于同一资产类型得到。

关于系统700及其模块的更多细节,可以参考图2及其相关描述。

图8是根据本说明书一些实施例所示的资产类型一致性证据生成系统的示例性框图。系统800可以在交易接收方的设备上实现。如图8所示,系统800可以包括参考密文接收模块810、第二私钥生成模块820、第二数字签名模块830和发送模块840。

参考密文接收模块810可以用于接收来自交易发起方的目标资产类型的参考密文。

第二私钥生成模块820可以用于生成第二私钥。

第二数字签名模块830可以用于使用第二私钥对第二签名消息生成第二数字签名。

发送模块840可以用于将第二验证密文和第二数字签名发送给交易发起方的设备,以使交易发起方的设备获得资产类型一致性证据。

关于系统800及其模块的更多细节,可以参考图3及其相关描述。

图9是根据本说明书一些实施例所示的交易系统的示例性框图。系统900可以在流程200(或流程300)中交易发起方或交易接收方的设备上实现。如图9所示,系统900可以包括获得模块910、第三数字签名模块920和上传模块930。

获得模块910可以用于获得用于证明交易双方对应的验证密文与参考密文基于同一资产类型得到的资产类型一致性证据。

第三数字签名模块920可以用于利用交易发起方或交易接收方的私钥对第三签名消息生成第三数字签名。

上传模块930可以用于将第三签名消息和第三数字签名上传至区块链网络120。

关于系统900及其模块的更多细节,可以参考图4及其相关描述。

图10根据本说明书一些实施例所示的交易验证系统的示例性框图。系统1000可以在区块链节点上实现。如图10所示,系统1000可以包括接收模块1010、第一验证模块1020、第二验证模块1030和确定模块1040。

接收模块1010可以用于接收第三签名消息和第三数字签名,该第三签名消息包括参考密文、与交易发起方对应的第一验证密文及第一数字签名、与交易接收方对应的第二验证密文及第二数字签名。

第一验证模块1020可以用于基于交易发起方或交易接收方的公钥和所述第三签名消息,验证第三数字签名。

第二验证模块1030可以用于在第三数字签名通过验证时:基于第一公钥和第一签名消息验证第一数字签名;和/或,基于第二公钥和第二签名消息验证第二数字签名。

确定模块1040可以用于:若第一数字签名和第二数字签名通过验证,则确定第一验证密文、第二验证密文与参考密文基于同一资产类型得到;若第一数字签名或第二数字签名未通过验证,则确定第一验证密文、第二验证密文与参考密文不是基于同一资产类型得到并拒绝执行后续流程。

关于系统1000及其模块的更多细节,可以参考图5及其相关描述。

图11是根据本说明书一些实施例所示的对象一致性证据生成系统的示例性框图。系统1100可以在多方事务的任一参与方(以下称为参与方x)的设备上实现。如图11所示,系统1100可以包括参考密文获得模块1110、私钥生成模块1120、数字签名模块1130和对象一致性证据获得模块1140。

参考密文获得模块1110可以用于获得目标对象的参考密文。

私钥生成模块1120可以用于生成目标私钥。

数字签名模块1130可以用于使用目标私钥对目标签名消息生成目标数字签名,该目标签名消息包括验证密文(c_x)和参考密文。

对象一致性证据获得模块1140可以用于获得至少包含验证密文(c_x)、参考密文和目标数字签名的证据,以至少证明验证密文与参考密文基于同一对象得到。

关于系统1100的更多细节,可以参考图6及其相关描述。

应当理解,图7~11所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。

需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,图10中披露的第二验证模块1030和确定模块1040可以是一个系统中的不同模块,也可以是一个模块实现这两个模块的功能。诸如此类的变形,均在本说明书的保护范围之内。

本说明书实施例可能带来的有益效果包括但不限于:(1)在保护交易方用于生成验证密文的私密值的前提下,通过引入参考密文设计了一种可公开地、零知识地验证交易双方对应的验证密文是否基于同一资产类型得到的方案;(2)在完成一次有关资产类型一致性的验证后记录本次验证的相关信息,可以避免重复验证;(3)可以通过智能合约实现一个或多个步骤,以保证相应步骤按预期执行且留下可追溯的存证。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。

同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。

本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。

最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

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