资产类型注册、交易记录验证方法及系统
技术领域
本说明书涉及信息技术领域,特别涉及一种资产类型注册、交易记录验证方法及系统。
背景技术
依托互联网,电子交易极大便利了人们的生活和工作,但其中的隐私问题仍不容忽视。例如,在一些电子交易的场景中,实体(如,机构、公司等)开展业务使用的资产类型(如,人民币、美元、证券等),可能是该实体的商业机密,需要针对其做隐私保护,避免对外(如竞争对手)泄露。另外,资产类型的泄露可能导致该实体的更多私密信息被获取。比如,在跨境汇款或者在供应链中,通过资产类型有可能推断出实体所在的地区,进而推断出该实体的身份信息。
因此,目前希望提供一种电子交易场景中针对资产类型的隐私保护方案。
发明内容
本说明书实施例之一提供一种对象加密方法,其中,包括:生成待加密对象的标识信息的第一密文;利用公钥集合和目标私钥对环签名消息生成环签名,其中,所述环签名消息包括所述第一密文,所述公钥集合基于预设对象列表和所述第一密文得到,且当所述待加密对象属于所述预设对象列表时,所述公钥集合包括与所述目标私钥匹配的公钥。
本说明书实施例之一提供一种对象加密系统,其中,包括:第一密文生成模块,用于生成待加密对象的标识信息的第一密文;环签名生成模块,用于利用公钥集合和目标私钥对环签名消息生成环签名,其中,所述环签名消息包括所述第一密文,所述公钥集合基于预设对象列表和所述第一密文得到,且当所述待加密对象属于所述预设对象列表时,所述公钥集合包括与所述目标私钥匹配的公钥。
本说明书实施例之一提供一种对象加密装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的对象加密方法。
本说明书实施例之一提供一种对象验证方法,其中,包括:获取第一密文以及环签名,所述第一密文基于待验证对象的标识信息生成;使用公钥集合验证所述环签名,所述公钥集合基于预设对象列表和所述第一密文得到;若验证成功,则确定所述第一密文为来自预设对象列表的对象的加密结果。
本说明书实施例之一提供一种对象验证系统,其中,包括:第一获取模块,用于获取第一密文以及环签名,所述第一密文基于待验证对象的标识信息生成;环签名验证模块,用于使用公钥集合验证所述环签名,所述公钥集合基于预设对象列表和所述第一密文得到;确定模块,用于若所述环签名验证模块验证成功,则确定所述第一密文为来自预设对象列表的对象的加密结果。
本说明书实施例之一提供一种对象验证装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的对象验证方法。
本说明书实施例之一提供一种资产类型注册方法,其中,所述方法由区块链成员的用户端执行,所述区块链设置有准许资产类型列表,所述方法包括:获取待注册的资产类型;基于如本说明书任一实施例所述的对象加密方法将所述待注册的资产类型作为待加密对象,以及将所述准许资产类型列表作为预设对象列表进行处理,以获得第一密文以及环签名;至少基于所述第一密文以及环签名生成交易记录;将所述交易记录上传至区块链网络。
本说明书实施例之一提供一种资产类型注册系统,其中,包括:第二获取模块,用于获取待注册的资产类型;第一处理模块,用于基于如本说明书任一实施例所述的对象加密方法将所述待注册的资产类型作为待加密对象,以及将所述准许资产类型列表作为预设对象列表进行处理,以获得第一密文以及环签名;交易记录生成模块,用于至少基于所述第一密文以及环签名生成交易记录;交易记录上传模块,用于将所述交易记录上传至区块链网络。
本说明书实施例之一提供一种资产类型注册装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的资产类型注册方法。
本说明书实施例之一提供一种交易记录验证方法,其中,由接收交易记录的区块链节点执行,所述区块链设置有准许资产类型列表,所述交易记录包括基于资产类型生成的第一密文,以及环签名;所述方法包括:基于如本说明书任一实施例所述的对象验证方法将所述准许资产类型列表作为预设对象类型列表,对所述环签名进行验证;若验证失败,则不对所述第一密文进行登记备案。
本说明书实施例之一提供一种交易记录验证系统,其中,包括:环签名验证模块,用于基于如本说明书任一实施例所述的对象验证方法将所述准许资产类型列表作为预设对象类型列表,对所述环签名进行验证;第二处理模块,用于若所述环签名验证失败,则不对所述第一密文进行登记备案。
本说明书实施例之一提供一种交易记录验证装置,其中,包括处理器和存储设备,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的交易记录验证方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图;
图2是根据本说明书一些实施例所示的资产类型注册方法的示例性流程图;
图3是根据本说明书一些实施例所示的资产类型加密方法的示例性流程图;
图4是根据本说明书一些实施例所示的交易记录验证方法的示例性流程图;
图5是根据本说明书一些实施例所示的资产类型验证方法的示例性流程图;
图6是根据本说明书一些实施例所示的对象加密系统的示例性框图;
图7是根据本说明书一些实施例所示的对象验证系统的示例性框图;
图8是根据本说明书一些实施例所示的资产类型注册系统的示例性框图;
图9是根据本说明书一些实施例所示的交易记录验证系统的示例性框图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本说明书中的实施例可应用于电子交易场景中针对资产类型的隐私保护。在一些电子交易的场景中,需要限制实体使用的资产类型,为此可以预设准许资产类型列表,准许资产类型列表包括准许实体使用的资产类型。在一些实施例中,实体可以包括个人、团体、机构、公司等中的一种或多种。在一些实施例中,准许资产类型列表可以由扮演监管角色的实体发布,例如,由监管机构发布。需要说明的是,本说明书对资产的定义和分类不作具体限制,例如,资产类型可以包括国家或地区发行的货币(如,人民币、美元、英镑、欧元等)、虚拟货币(如,比特币、以太币、莱特币等)、证券、基金、股票、地产、房产、车产等中的一种或多种。实体上传涉及资产类型的信息时,一方面不希望暴露该信息涉及的资产类型,另一方面要证明该信息涉及的资产类型属于准许资产类型列表。为此,本说明书中的实施例提供了资产类型加密、验证方法、资产类型注册方法、交易记录验证方法及系统,通过加密隐匿资产类型,且通过构造公钥集合并生成环签名,使得可通过验证环签名来确定加密的资产类型是否为来自准许资产类型列表的资产类型的加密结果。值得说明的是,虽然本说明书主要以基于区块链的电子交易场景为例进行了描述,但本说明书的原理同样可以应用到其他电子交易场景,本说明书对此不做任何限制。
图1是根据本说明书一些实施例所示的区块链系统的应用场景示意图。如图1所示,区块链系统100可以包括区块链用户端110(可简称为用户端)、区块链网络120及网络130,其中,区块链网络120包括一个以上区块链节点(可简称为“节点”),如区块链节点120-1、120-2、120-3…120-n等。
区块链用户端110可通过网络130连接于区块链网络120。实体可以通过区块链用户端110访问区块链网络120,加入区块链网络120的实体也可称为区块链成员。在一些实施例中,区块链用户端110可以上传信息和/或数据至区块链网络120中的一个或多个区块链节点,例如上传交易记录。在一些实施例中,交易记录可以包括写入区块中的交易信息(可简称为“交易”)。在一些实施例中,区块链用户端110可以向区块链网络120中的一个或多个区块链节点发起查询,以获得存储在区块链(即分布式账本,由持续生成的区块链接而成)中的数据,如交易。
在一些实施例中,用户端可以包括各类具有信息接收和/或发送功能的设备。在一些实施例中,用户端可以包括智能电话、平板计算机、膝上型计算机、台式计算机等或其任意组合。
区块链网络120中的各个节点需要对交易进行验证和确认,进而生成新的区块(此过程可称为“记账”),同时,各节点可通过共识机制来维持存储在各节点的分布式账本的一致性。值得说明的是,区块链节点也可视为区块链网络120的用户端,不同于其他用户端,区块链节点需要参与记账。另外,实体可以通过不参与记账的用户端加入区块链网络120,也可以通过参与记账的区块链节点加入区块链网络120。
在一些实施例中,节点可以包括各类计算设备,如服务器。在一些实施例中,服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
网络130连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络130可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigBee)、近场通信(NFC)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。可以理解,网络130与区块链网络120不必具有明显的分界,在更一般的应用场景中,区块链节点与普通网络节点可以共同接入同一物理网络中,其中的区块链节点在逻辑上构成区块链网络。
图2是根据本说明书一些实施例所示的资产类型注册方法的示例性流程图。资产类型注册可以指将资产类型登记备案,在基于账户模型的区块链场景下,资产类型注册可以指将加密的资产类型(即第一密文)登记到区块链成员的账户中。在一些实施例中,该资产类型注册方法可由区块链成员的用户端执行。流程200可以包括:
步骤210,获取待注册的资产类型。在一些实施例中,步骤210可以由第二获取模块810执行。
步骤220,获得第一密文以及环签名。在一些实施例中,步骤220可以由第一处理模块820执行。
所述第一密文可通过加密待注册的资产类型的标识信息得到,如此可以隐匿资产类型,从而保护实体的隐私。所述环签名是以第一密文的为签名消息的签名,其作用可等同于被隐匿资产类型的“身份证明”,若验签成功则可证明第一密文为来自准许资产列表的资产类型的加密结果。
关于获得第一密文以及环签名的具体方式,可以参考以下图3及其相关描述。
步骤230,至少基于所述第一密文以及环签名生成交易记录。在一些实施例中,步骤230可以由交易记录生成模块830执行。
在一些实施例中,所述交易记录可以包括与交易相关的任何信息,包括但不限于账户信息、交易时间、金额、交易合同等。在一些实施例中,所述交易记录可以包括所述账户的标识信息、所述第一密文、所述环签名和第一数字签名。其中,所述账户的标识信息用于指示将加密的资产类型(即所述第一密文)注册到哪个账户。第一数字签名可以是利用所述账户的私钥对第一待签名消息生成的,所述第一待签名消息包括所述账户的标识信息、所述第一密文和所述环签名,第一数字签名可用于证明所述账户的标识信息、所述第一密文和所述环签名的来源,若利用所述账户的公钥验证第一数字签名成功,则说明所述账户的标识信息、所述第一密文和所述环签名来自所述账户且传播过程中未经篡改。在一些实施例中,所述账户的标识信息可以包括账户地址,该地址可对应于所述账户的公钥。
在一些实施例中,所述交易记录可以包括更多信息。例如,在区块链场景中,准许资产类型列表可以由区块链管理员的用户端发布,区块链管理员可以负责监管区块链成员要注册的资产类型。基于此,区块链成员的用户端可以将待注册的资产类型和所述第一密文发送给区块链管理员的用户端。区块链管理员的用户端接收到待注册的资产类型和第一密文后,验证接收到的第一密文是否为接收到的资产类型的标识信息的加密结果,若通过验证,则向区块链成员的用户端返回第二数字签名。相应地,区块链成员的用户端生成的交易记录还可以包括所述第二数字签名。其中,所述第二数字签名可以是利用区块链管理员的私钥对第二待签名消息生成的,所述第二待签名消息包括所述账户的标识信息和所述第一密文。所述第二数字签名的作用在于,若验签成功,则表明区块链管理员已知晓待注册的资产类型并批准可将加密的资产类型(即所述第一密文)注册到所述账户上。在一些实施例中,区块链成员的用户端在生成第一数字签名时,可以将来自区块链管理员用户端的第二数字签名也加入到第一待签名消息中。
仅作为示例,所述交易记录可表示为(a, E, R; Sig'; Sig),其中,a表示所述账户的标识信息,E表示所述第一密文,R表示所述环签名,Sig'表示由区块链管理员的用户端生成的第二数字签名,Sig表示由区块链成员的用户端生成的第一数字签名。
步骤240,将所述交易记录上传至区块链网络。在一些实施例中,步骤240可以由交易记录上传模块840执行。
在一些实施例中,所述区块链成员的用户端可以向区块链网络120中的节点广播所述交易记录。区块链网络120中的区块链节点接收到交易记录后对交易记录中的内容进行验证,若验证成功,可以将其写入新的区块。关于验证交易记录的更多细节,可以参考图4及其相关描述。
图3是根据本说明书一些实施例所示的资产类型加密方法的示例性流程图。在区块链场景下,该加密方法可以由区块链成员的用户端实现。需要说明的是,该加密方法也可以在其他电子交易场景下实现,以:隐匿资产类型;并使得通过验证环签名可以确定加密的资产类型是否为来自准许资产列表的资产类型的加密结果。如图3所示,流程300可以包括:
步骤310,生成待加密资产类型的标识信息的第一密文。在一些实施例中,步骤310可以由第一密文生成模块610执行。
在一些实施例中,第一密文可以按Pedersen承诺协议。Pedersen承诺的密文满足E=t1G+t2H,其中E表示密文,G、H均为椭圆曲线上一点,G可称为第一基点,H可称为第二基点,t1和t2均为整数。需要说明的是,本说明书涉及的椭圆曲线上的基点可以预先确定好后全局统一使用,例如,此处的第一基点G还可以用于生成公私钥对。
在一些实施例中,第一密文可以按E=r*Pk+sn_k*H计算,其中,E表示第一密文,r表示随机数,Pk表示第一公钥,sn_k表示所述待验证资产类型的标识信息(整数,如编号),H表示椭圆曲线上的一点。应当理解,第一公钥Pk满足Pk=PrG,其中Pr表示与第一公钥匹配的第一私钥,Pr可以取整数。值得注意的是,由于随机数的存在,对于同一资产类型,生成的第一密文因随机数的不同而不同,因此在该随机数不发生泄露的情况下能有效保证难以由第一密文推测出资产类型。另外,按E=r*Pk+sn_k*H计算第一密文时,区块链成员的用户端可以向区块链管理员的用户端提供随机数r、待注册的资产类型(对应sn_k)以及第一密文E,区块链管理员的用户端基于接收到的随机数r、所述账户的公钥Pk、待注册的资产类型的标识信息sn_k和第二基点H,计算第一密文,将计算出的第一密文与接收到的第一密文比对,若两者一致,则说明区块链成员的用户端提供的随机数r、待注册的资产类型(对应sn_k)以及第一密文E是可靠的。
步骤320,利用公钥集合和目标私钥对环签名消息生成环签名,其中,环签名消息可以包括第一密文,在其他实施例中,环签名消息还可以包括其他信息,如账户的标识信息。公钥集合基于准许资产类型列表和第一密文得到,且当待加密资产类型属于准许资产类型列表时,公钥集合包括与目标私钥匹配的公钥。在一些实施例中,步骤320可以由环签名生成模块620执行。
环签名是一种可以实现签名者无条件匿名的签名方案,其具备以下特性:签名阶段需要用到公钥集合和签名者的私钥(即目标私钥),若要生成正确的环签名(验签成功的必要条件),需要保证公钥集合包括与目标私钥匹配的公钥;验签阶段验签者无法推测出环签名是利用公钥集合中哪一个公钥对应的私钥生成的。由此,基于准许资产类型列表和第一密文(即加密的资产类型)构建公钥集合,其中准许资产类型列表和第一密文都是可公开的,将公钥集合与准许资产类型列表和待加密资产类型建立联系。进而,使得公钥集合与目标私钥的关系受待加密资产类型相对准许资产类型列表的归属关系影响,具体地,当待加密资产类型属于准许资产类型列表时,公钥集合包括与目标私钥匹配的公钥,从而可生成正确的环签名。应当理解,鉴于公钥集合与目标私钥的关系受待加密资产类型相对准许资产类型列表的归属关系影响,当待加密资产类型属于准许资产类型列表时,公钥集合包括与目标私钥匹配的公钥(进而生成正确的环签名),暗含了当待加密资产类型不属于准许资产类型列表时,公钥集合不包括与目标私钥匹配的公钥或公钥集合包括与目标私钥匹配的公钥的概率可忽略(进而无法生成正确的环签名或生成正确环签名的概率可忽略)。如此,在环签名验证成功的情况下,可以认为待加密资产类型(即后文所述待验证资产类型)属于准许资产类型列表。
在一些实施例中,公钥集合通过以下方式获得:将准许资产类型列表中的资产类型的标识信息分别进行第一运算,以获得准许资产类型密文列表;分别计算第一密文与准许资产类型密文列表中各密文的差值,公钥集合中包括各差值。其中,所述第一运算使得,当待加密资产类型的标识信息属于准许资产类型列表时,公钥集合包括与目标私钥匹配的公钥。仅作为示例,当第一密文按E=r*Pk+sn_k*H计算时,所述第一运算包括按sn_i*H计算,以获得准许资产类型密文列表中的各密文,其中,sn_i表示准许资产类型列表中的资产类型的标识信息,H即用于生成第一密文的第二基点。可以得出,当待验证资产类型属于准许资产类型列表,即存在sn_i=sn_k时,公钥集合包括r*Pk,此时目标私钥取r*Pr,即使得公钥集合包括目标私钥。
不难理解,图3所示的流程还可以应用于其他需要隐匿某对象,并证明被隐匿的对象来自预设对象列表的任意场景。例如,所述预设对象列表除可以是前述的准许资产类型列表以外,还可以是人员名单、商品列表、车辆列表、地址列表等等,相应地需要隐匿的对象来自于所述预设对象列表。
图4是根据本说明书一些实施例所示的交易记录验证方法的示例性流程图。在一些实施例中,该交易记录验证方法可由接收交易记录的区块链节点执行,所述交易记录包括基于资产类型生成的第一密文,以及环签名。如图4所示,流程400可以包括:
步骤410,对交易记录中的环签名进行验证。在一些实施例中,步骤410可以由环签名验证模块910执行。
对交易记录中的环签名进行验证,其目的在于确定所述第一密文是否为来自准许资产类型列表的资产类型的加密结果。
关于环签名验证的更多细节,可以参考图5及其相关描述。
步骤420,若环签名验证失败,则不对交易记录中的第一密文进行登记备案。在一些实施例中,步骤420可以由第二处理模块920执行。
在一些实施例中,除了第一密文外,区块链节点还可以对交易记录中的其他内容进行验证。例如,可以利用所述账户的公钥对所述第一数字签名进行验证,若验签成功则可确定第一数字签名对应的签名消息(即第一待签名消息)是否来自所述区块链成员的用户端且传播过程中未经篡改。又如,可以利用区块链管理员的公钥对所述第二数字签名进行验证,若验签成功则表明区块链管理员已知晓待注册的资产类型并批准可将加密的资产类型(即所述第一密文)注册到所述账户上。需要注意的是,任一项验证失败的情况下都可以不对交易记录进行登记备案。
在一些实施例中,若交易记录验证成功,区块链节点可以将交易记录中的第一密文登记(即注册)到区块链成员的账户中。
在一些实施例中,验证和/或注册的相关流程可以通过智能合约实现。例如,可以将用于实现验证和/或注册的相关流程的智能合约预先部署到区块链中,相应地,所述交易记录中可以包括该智能合约的地址,当区块链节点接收到所述交易记录后,可以根据所述交易记录中的地址调用智能合约,从而实现验证和/或注册的相关流程。
图5是根据本说明书一些实施例所示的资产类型验证方法的示例性流程图。在区块链场景下,该资产类型验证方法可以由区块链节点的用户端实现。需要说明的是,该资产类型验证方法也可以在其他电子交易场景下实现,以确定加密的资产类型(即第一密文)是否为来自准许资产类型列表的资产类型的加密结果。
步骤510,获取第一密文以及环签名,所述第一密文基于待验证资产类型的标识信息生成。在一些实施例中,步骤510可以由第一获取模块710执行。
步骤520,使用公钥集合验证所述环签名,所述公钥集合基于准许资产类型列表和所述第一密文得到。在一些实施例中,步骤520可以由环签名验证模块720执行。
在一些实施例中,由于准许资产类型列表和所述第一密文是公开的,可以在验证时基于准许资产类型列表和所述第一密文计算所述公钥集合。在一些实施例中,所述环签名可以包括所述公钥集合,在验证时从所述环签名中提取所述公钥集合。关于公钥集合的构造过程可以参见图3中的相关说明。在一些实施例中,可以基于所述公钥集合、环签名消息(如,第一密文)以及环签名进行验证,检验所述环签名是否为所述环签名消息对应于所述公钥集合的有效签名。
步骤530,若验证成功,则确定所述第一密文为来自准许资产类型列表的资产类型的加密结果。在一些实施例中,步骤530可以由确定模块730执行。
根据前述内容,在环签名验证成功的情况下,可以认为待验证资产类型属于准许资产类型列表,即所述第一密文为来自准许资产类型列表的资产类型的加密结果。同时,环签名验证成功不会暴露签名者的私钥(即目标私钥)对应公钥集合中的哪个公钥,也就不会暴露第一密文对应的资产类型为准许资产类型列表中的哪个资产类型。
不难理解,图5所示的流程还可以应用到验证其他的隐匿对象是否来自预设对象列表的任意场景。例如,所述预设对象列表除可以是前述的准许资产类型列表以外,还可以是人员名单、商品列表、车辆列表、地址列表等等。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图6是根据本说明书一些实施例所示的对象加密系统的示例性框图。如图6所示,对象加密系统600可以包括第一密文生成模块610和环签名生成模块620。
第一密文生成模块610可以用于生成待加密对象的标识信息的第一密文。
环签名生成模块620可以用于利用公钥集合和目标私钥对环签名消息生成环签名,其中,所述环签名消息包括所述第一密文,所述公钥集合基于预设对象列表和所述第一密文得到,且当所述待加密对象属于所述准许对象列表时,所述公钥集合包括与所述目标私钥匹配的公钥。
关于对象加密系统600及其模块的更多细节,可以参考图3及其相关描述。
图7是根据本说明书一些实施例所示的对象验证系统的示例性框图。如图7所示,对象验证系统700可以包括第一获取模块710、环签名验证模块720和确定模块730。
第一获取模块710可以用于获取第一密文以及环签名,所述第一密文可基于待验证对象的标识信息生成。
环签名验证模块720可以用于使用公钥集合验证所述环签名,所述公钥集合可基于预设对象列表和所述第一密文得到。
确定模块730可以用于若所述环签名验证模块验证成功,则确定所述第一密文为来自预设对象列表的对象的加密结果。
关于对象验证系统700及其模块的更多细节,可以参考图5及其相关描述。
图8是根据本说明书一些实施例所示的资产类型注册系统的示例性框图。如图8所示,资产类型注册系统800可以包括第二获取模块810、第一处理模块820、交易记录生成模块830和交易记录上传模块840。
第二获取模块810可以用于获取待注册的资产类型。
第一处理模块820可以用于获得第一密文以及环签名。关于第一处理模块820获得第一密文以及环签名的具体方式,可以参考图3及其相关描述。
交易记录生成模块830可以用于至少基于所述第一密文以及环签名生成交易记录。
交易记录上传模块840可以用于将所述交易记录上传至区块链网络。
关于资产类型注册系统800及其模块的更多细节,可以参考图2及其相关描述。
图9是根据本说明书一些实施例所示的交易记录验证系统的示例性框图。如图9所示,交易记录验证系统900可以包括环签名验证模块910和第二处理模块920。
环签名验证模块910可以用于对交易记录中的环签名进行验证。关于环签名验证模块910的验证环签名的具体方式,可以参考图5及其相关描述。
第二处理模块920可以用于若环签名验证失败,则不对交易记录中的第一密文进行登记备案。
关于交易记录验证系统900及其模块的更多细节,可以参考图4及其相关描述。
应当理解,图6至图9所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,图8中披露的交易记录生成模块830和交易记录上传模块840可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。又如,第一处理模块820可以包括对象加密系统600。又如,环签名验证模块910可以包括对象验证系统700。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过加密隐匿资产类型,且通过构造公钥集合并生成环签名,使得可通过验证环签名来确定证明加密的资产类型为来自准许资产类型列表的资产类型的加密结果,环签名的验证也不会暴露加密的资产类型对应准许资产类型列表中的哪个资产类型;(2)由于随机数的存在,对于同一资产类型,生成的第一密文因随机数的不同而不同,因此在该随机数不发生泄露的情况下能有效保证难以由第一密文推测出资产类型。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、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)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。