基于区块链的资产转移方法及装置、电子设备与流程

文档序号:16320415发布日期:2018-12-19 05:39阅读:168来源:国知局
基于区块链的资产转移方法及装置、电子设备与流程

本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的资产转移方法及装置、电子设备。

背景技术

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。



技术实现要素:

本说明书提出一种基于区块链的资产转移方法,应用于所述区块链中的节点设备,包括:

接收资产转移者发送的资产转移交易;其中,所述资产转移交易包括:至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算生成的承诺值;以及,用于对所述承诺值进行零知识证明的零知识证据;

基于所述零知识证据对所述承诺值进行零知识证明,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同;

如果是,将与所述输出资产对象对应的承诺值发布至所述区块链进行存证。

本说明书还提出一种基于区块链的资产转移装置,应用于所述区块链中的节点设备,包括:

接收模块,接收资产转移者发送的资产转移交易;其中,所述资产转移交易包括:至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算生成的承诺值;以及,用于对所述承诺值进行零知识证明的零知识证据;

验证模块,基于所述零知识证据对所述承诺值进行零知识证明,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同;

存证模块,如果是,将与所述输出资产对象对应的承诺值发布至所述区块链进行存证。

本说明书还提出一种电子设备,包括:

处理器;

用于存储机器可执行指令的存储器;

其中,通过读取并执行所述存储器存储的与基于区块链的基于区块链的资产转移的控制逻辑对应的机器可执行指令,所述处理器被促使:

接收资产转移者发送的资产转移交易;其中,所述资产转移交易包括:至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算生成的承诺值;以及,用于对所述承诺值进行零知识证明的零知识证据;

基于所述零知识证据对所述承诺值进行零知识证明,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同;

如果是,将与所述输出资产对象对应的承诺值发布至所述区块链进行存证。

通过以上实施例,一方面,由于上述资产转移交易中仅携带至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算得到的承诺值作为输入数据输入至承诺函数进行计算生成的承诺值,并不会将上述输出资产对象的资产类型以明文的形式携带在资产转移交易中,使得区块链可以隐藏资产转移者转出的资产对象的资产类型,保护资产转移者的隐私;

另一方面,由于上述资产转移交易中还携带了用于对上述承诺值进行零知识证明的零知识证据,使得区块链中的节点设备可以在隐藏资产转移者转出的资产对象的资产类型的前提下,对上述零知识证据进行零知识证明,来验证上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

附图说明

图1是一示例性实施例提供的一种基于区块链的资产转移方法的流程图。

图2是一示例性实施例提供的一种电子设备的结构示意图。

图3是一示例性实施例提供的一种基于区块链的资产转移装置的框图。

具体实施方式

零知识证明(zeroknowledgeproof),是一种密码学技术。利用该技术,一个证明者能够在不向验证者提供任何敏感的信息的情况下,使验证者(有一个或多个)相信某个论断是正确的。

而本说明书中旨在公开一种,通过将零知识证明(zeroknowledgeproof)算法与区块链的资产发布机制进行有机结合,使得区块链中的节点设备,可以在隐藏资产转移者转出的资产类型的前提下,能够正常验证验证上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同的技术方案。

在实现时,在区块链上转移已经持有的资产对象时,通常采用utxo(unspenttransactionoutput未花费交易输出)模型,通过在区块链中发布一笔资产转移交易,来触发销毁资产转出方已经持有的资产对象,并为资产转入方重新创建一笔新的资产对象,来完成资产对象在不同持有者之间的转移。

其中,上述资产转移交易中的输入资产对象,即为资产转出方已经持有的资产对象,而上述资产转移交易中的输出资产对象,即为需要为资产转入方重新创建的资产对象。

而资产转移者需要在区块链上转移已经持有的资产对象时,可以将上述输出资产对象的作为输入数据(输入数据中也可以包含其它类型的需要隐藏的信息;比如,资产接收方的公钥),输入至承诺函数进行计算,得到承诺值;以及,还可以基于区块链搭载的零知识证明算法,生成用于对上述承诺值进行零知识证明的零知识证据(proof)。然后,资产转移者可以基于上述承诺值和上述零知识证据,来构建资产转移交易,并通过将上述资产转移交易在区块链中进行发送,来完成资产对象的转移。

而区块链中的节点设备在收到上述资产转移交易时,可以获取上述资产转移交易中携带的上述承诺值,以及上述零知识证据,然后可以通过上述零知识证明算法,基于上述零知识证据对上述承诺值进行零知识证明,来验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

如果经过验证确认上述资产转移交易的输入资产对象与输出资产对象的资产类型相同,将与上述输出资产对象对应的承诺值发布至上述区块链进行存证,来完成资产对象在不同持有者之间的转移。

在以上技术方案中,一方面,由于上述资产转移交易中仅携带至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算得到的承诺值作为输入数据输入至承诺函数进行计算生成的承诺值,并不会将上述输出资产对象的资产类型以明文的形式携带在资产转移交易中,使得区块链可以隐藏资产转移者转出的资产对象的资产类型,保护资产转移者的隐私;

另一方面,由于上述资产转移交易中还携带了用于对上述承诺值进行零知识证明的零知识证据,使得区块链中的节点设备可以在隐藏资产转移者转出的资产对象的资产类型的前提下,对上述零知识证据进行零知识证明,来验证上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

下面通过具体实施例并结合具体的应用场景对本说明书进行描述。

请参考图1,图1是本说明书一实施例提供的一种基于区块链的资产转移方法,应用于区块链中的节点设备,执行以下步骤:

步骤102,接收资产转移者发送的资产转移交易;其中,所述资产转移交易包括:至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算生成的承诺值;以及,用于对所述承诺值进行零知识证明的零知识证据;

步骤104,基于所述零知识证据对所述承诺值进行零知识证明,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同;

步骤106,如果是,将与所述输出资产对象对应的承诺值发布至所述区块链进行存证。

在本说明书描述的区块链,具体可以包括所支持的对象中能够涵盖资产对象的任意类型的区块链网络。

例如,在传统的区块链中,所支持的对象通常仅包括账户对象和合约对象,而在本说明书中,可以对区块链所支持的对象进行扩展,在区块链现有支持的诸如账户对象和合约对象的基础上,进一步扩展出一种资产对象。

其中,需要说明的是,本说明书描述的区块链的类型,不进行特别限定,可以是联盟链,也可以联盟链以外的其它类型的区块链(比如私有链、公有链等)。

上述合约对象,具体可以包括由区块链中的目标成员发布在区块链,并在区块链的分布式数据库(即区块链账本)中收录,用于对区块链支持的资产对象进行管理的智能合约程序。接入区块链的用户可以通过调用上述合约对象的方式,在区块链上创建一笔资产对象,以及在区块链上完成持有的资产对象的在线管理。

例如,在一个例子中,上述区块链具体可以是一个由若干作为联盟成员的金融机构构成的联盟链,这种情况下,区块链中的目标成员则可以是该联盟链中,具有资产对象创建权限的作为联盟成员的金融机构。通过该联盟链可以搭建一个分布式的智能合约平台,该智能合约平台的运营方,可以对该智能合约平台所支持的对象类型进行扩展,在现有支持的诸如账户对象和合约对象的基础上,进一步扩展出一种资产对象,使得作为联盟成员的金融机构,可以通过在区块链上发布智能合约(合约对象)的形式,在平台中创建一种新增的资产类型,进而接入区块链的用户,可以通过调用该智能合约来创建一笔资产对象以及完成持有的资产对象的在线管理。

上述资产对象,可以包括智能资产对象;智能资产对象用于维护智能资产,该智能资产对应于用户在现实世界中的任意类型的真实资产,且通过智能资产对象使得该智能资产能够适用于在区块链中进行处理,譬如特别适用于通过区块链中的智能合约等方式对该智能资产对象进行处理。其中,智能资产对应于用户在现实世界中的真实资产的类型,在本说明书中不进行特别限定;

例如,以上述区块链为由若干金融机构构成的联盟链为例,在实际应用中,用户任意形式的线下资产;比如,资金、房产、股票、贷款合同、票据、应收账款等均可以由管理该联盟链上的节点设备的金融机构,包装成数字资产的形式,创建并发布在该联盟链的分布式数据库中。

在本说明书中所描述的交易,是指用户通过区块链的客户端创建,并需要最终发布至区块链的分布式数据库中的一笔数据。

其中,区块链中的交易,存在狭义的交易以及广义的交易之分。狭义的交易是指用户向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指用户向区块链发布的一笔具有业务意图的业务数据;例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线业务(比如,虚拟资产业务、租房业务、车辆调度业务、保险理赔业务、信用服务、医疗服务等),而在这类联盟链中,交易可以是用户在联盟链中发布的一笔具有业务意图的业务消息或者业务请求。

需要说明的是,上述区块链搭载的共识算法,在本说明书中不进行特别限定;在实际应用中,具体可以采用拜占庭容错(byzantinefaulttolerance)系列算法作为共识算法,也可以采用非拜占庭容错系列算法作为共识算法。

其中,所谓拜占庭容错算法,是指在由若干个节点设备组成的分布式网络中,需要考虑拜占庭节点(即作恶节点)的分布式容错算法;例如,pbft算法;如果采用拜占庭容错算法在区块链网络中进行共识处理时,会认为区块链中同时存在作恶节点和故障节点。而相应的,所谓非拜占庭容错算法,是指在由若干个节点设备组成的分布式网络中,不考虑拜占庭节点的分布式容错算法;例如,raft算法等等;如果采用非拜占庭容错算法在区块链网络中进行共识处理时,会认为区块链中不存在作恶节点,而只存在故障节点。

在示出的一种实施方式中,上述区块链具体可以是一个由若干可信的金融机构作为联盟成员构成的联盟链。而该联盟链中具有资产对象发布权限的金融机构,可以通过在联盟链上发布智能合约(合约对象)的形式,在平台中创建一种新增的资产类型,并可以在联盟链中对该新增的资产类型进行公开发布。

其中,金融机构在联盟链里发布智能合约的具体过程,在本说明书中不再进行详述,本领域技术人员可以参考相关技术中的记载;

例如,在实际应用中,金融机构可以基于持有的私钥,向联盟链发布一笔交易的形式,向联盟链发布创建完成的智能合约。而联盟链中各联盟成员在通过管理的节点设备收到其它金融机构发布的交易时,可以基于联盟链的共识算法,对最近一段时间内联盟链中发布的交易进行共识处理,并在共识处理完成后,将该交易发布的智能合约收录至联盟链的分布式数据库中。

金融机构发布在联盟链中的与新增的资产类型对应的智能合约中,可以预先声明用于创建资产对象的执行程序。金融机构可以作为资产发布者可以通过调用上述智能合约中声明的执行程序,来在线创建一笔或者多笔资产对象,然后将创建的资产对象发布给特定的资产持有方进行持有。

而资产持有方可以作为资产转移者,通过构建资产转移交易,并将该资产转移交易向区块链进行发送,将持有的资产对象转移给其它持有方进行持有。

其中,上述资产转移交易中的输入资产对象,即为资产转出方已经持有的资产对象,而上述资产转移交易中的输出资产对象,即为需要为资产转入方重新创建的资产对象。

需要说明的是,在实际应用中,在一些基于区块链搭建的数字资产系统中,通常仅会允许一些可信的资产发布方,发布特定的一种或者多种类型的资产对象;

例如,在基于区块链的外汇兑换系统中,能够在区块链上发布的数字资产可能包括多种类型的外汇资产;而一些信誉高的金融机构可作为资产发布方,可能仅允许在区块链上发布特定的一种或者多种外汇资产,以提供流动性。比如,某银行的香港分行作为资产发布方,可能只允许在外汇兑换系统中发布香港在岸的港币资产、香港在岸的美元资产。

而且,出于隐私保护的目的,资产转移者在进行资产转移的过程中,可能还需要对被转移的资产对象的资产类型、以及与被转移的资产对象相关的其它形式的隐私数据进行隐藏;

例如,除了可能需要对被转移的目标资产对象的资产类型进行隐藏以外,还可能需要对被转移的目标资产对象的资产数量、以及资产转移者的身份进行隐藏。

基于此,在本说明书中,资产转移者在区块链上转移持有的资产对象时,可以不再将被转移的资产对象的资产类型等隐私数据,直接携带在构建的资产转移交易中,上述资产转移者可以作为零知识证明的证明方,至少将上述输出资产对象的的资产类型作为输入数据,输入至承诺函数进行计算得到承诺值,并采用区块链搭载的零知识证明算法,生成用于对上述承诺值进行零知识证明的零知识证据,然后将生成的上述承诺值以及上述零知识证据,携带在构建出的资产转移交易中在区块链进行发送,来完成资产对象的转移。

1)承诺值的生成

上述承诺函数,是一种在密码学、安全、隐私保护领域经常使用的,用于在不泄露原始数据情况下对原始数据进行承诺的单向函数。承诺函数的输出值称为承诺值(或者简称承诺)。基于单向函数的特性,将原始数据输入承诺函数计算得到承诺值后,从承诺值无法通过反向计算还原出原始数据。同时,无法找到两个不同的原始数据,使得它们的承诺值相等。

例如,在示出的一种实现方式中,上述承诺函数通常可以采用哈希函数;在这种情况下,上述承诺值则可以是至少将需要发布的该目标资产对象的资产类型作为输入数据,输入至哈希函数进行计算得到的哈希值。

需要说明的是,在本说明书中,在基于承诺函数计算上述承诺值时所采用的输入数据的具体内容,通常取决于在转移资产对象时需要隐藏的内容。

在实际应用中,承诺函数的输入数据除了可以包含需要隐藏的被转移的资产对象的资产类型以外,还可以包含诸如被转移资产对象的资产数量、上述被转移资产对象的接收方公钥(接收方可以是资产转移者,也可以是第三方)、以及还可以包含生成的随机数,等等,在本说明书中不再进行一一列举。

2)零知识证据的生成

在本说明书中,区块链搭载的零知识证据算法的算法类型,在本说明书中不进行特别限定;

例如,在示出的一种实施方式中,区块链可以搭载诸如zksnark算法、zkstark算法等通用的零知识证明算法;比如,在实现时,可以将zksnark算法、zkstark算法等零知识证明算法的算法逻辑相关的执行代码,植入智能合约发布到区块链中;进而,后续可以通过调用智能合约,执行智能合约中植入的零知识证明算法的算法逻辑相关的执行代码,来完成proof的生成,以及proof的零知识验证等零知识证明过程。

其中,区块链搭载的零知识算法,通常可以包括密钥生成算法、proof生成算法、以及proof验证算法。密钥生成算法负责计算生成证明密钥(可以作为生成proof的输入数据)和验证密钥(可以作为验证proof的输入数据);proof生成算法负责生成proof;而proof验证算法则负责验证proof,得到true或者false的验证结果。

例如,以zksnark算法为例,zksnark算法由g、p、v三种算法组成。g算法为一个密钥生成器,负责生成证明密钥和验证密钥;p算法负责生成proof,v算法负责对p算法生成的proof进行验证,得到true或者false的验证结果。

其中,需要说明的是,资产转移者在基于区块链搭载的零知识证据生成算法计算proof时,所采用的输入数据的具体内容,通常取决于最终需要进行零知识证明的论断。

在本说明书中,最终需要进行零知识证明的论断具体可以包括,上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

当然,最终需要进行零知识证明的论断的具体内容,通常取决于用户的具体需求,在实际应用中,最终需要进行零知识证明的论断也可以包括除了以上描述的论断以外的其它论断,在本说明书中不再进行一一列举。

例如,最终需要进行零知识证明的论断具体可以包括,上述资产转移交易的输入资产对象与输出资产对象的资产数量是否相同,等等。

在这种情况下,基于以上需要零知识证明的论断,资产转移者在基于零知识证据生成算法计算proof时,所采用的输入数据的具体内容,则至少需要包括通过承诺函数计算得到的承诺值,上述输入资产对象的资产类型、以及上述输出资产对象的资产类型。

也即,资产转移者至少需要将上述承诺值,上述输入资产对象的资产类型、以及上述输出资产对象的资产类型,输入至零知识证据生成算法进行计算,来生成用于对上述承诺值进行零知识证明的proof。

其中,需要说明的是,由于一笔资产对象的转移,是指将一笔由资产转移房持有的已经在区块链中发布并且存证的资产对象,转移给另外一个资产持有方进行持有;

因此,在进行零知识证明时,除了需要验证上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同以外,通常也需要验证上述输入资产对象是否对应一笔已经在区块链中发布并且存证的资产对象;

也即,只有上述资产转移交易中的输入资产对象是一笔已经“上链”的已有资产对象,本次交易对象的转移操作才能够正常执行;否则,会认为本次资产转移是一笔非法的资产转移(即将一笔不存在的资产转移给另一个持有者)。

基于此,在本说明书中,最终需要进行零知识证明的论断具体可以包括,上述输入资产对象的承诺值是否对应一笔已经在区块链上存证的资产对象;以及上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

在这种情况下,基于以上需要零知识证明的论断,资产转移者在基于零知识证据生成算法计算proof时,所采用的输入数据的具体内容,除了需要包括通过承诺函数计算得到的承诺值,上述输入资产对象的资产类型、以及上述输出资产对象的资产类型以外,还需要包括上述输入资产对象的承诺值。

其中,需要说明的是,上述资产转移者在区块链发布上述目标资产对象时,除了可以在交易中对所发布的目标资产对象的资产类型进行隐藏以外,在实际应用中,上述区块链也可以对上述输入资产对象的相关信息进行有选择的隐藏(即对转出的资产对象进行隐藏)。

在这种情况下,如果上述区块链支持隐藏上述输入资产对象的相关信息,资产转移者在基于零知识证据生成算法计算proof时,所采用的输入数据的具体内容,可以包括通过承诺函数计算得到的承诺值,上述输入资产对象的资产类型、上述输出资产对象的资产类型以外,以及与上述输入资产对象的承诺值对应的标识信息。

也即,在这种情况下,资产转移者至少需要将上述承诺值,上述输入资产对象的资产类型、上述输出资产对象的资产类型,以及上述输入资产对象的承诺值、或者与上述输入资产对象的承诺值对应的标识信息输入至零知识证据生成算法进行计算,来生成用于对上述承诺值进行零知识证明的proof。

其中,上述标识信息用于唯一标识一笔输入资产对象的承诺值。而为了实现输入资产对象的信息隐藏,上述输入资产对象的承诺值与承诺值的标识信息之间的对应关系,可以仅由上述输入资产对象的持有者进行维护。

例如,在一种实现方式中,上述标识信息具体可以是与承诺值的编号,承诺值与承诺值的编号之间的对应关系,可以仅由上述输入资产对象的持有者进行维护,进而将将承诺值的编号上链进行公开,也仅有上述输入资产对象的持有者能够获知与该编号对应的承诺值,而其它的资产持有者仅能获知到该编号对应一笔链上已有的资产对象,并不能获知到该资产对象的具体信息,从而可以达到隐藏上述输入资产对象的效果。

当然,如果上述区块链不支持隐藏上述输入资产对象的相关信息,资产转移者在基于零知识证据生成算法计算proof时,所采用的输入数据的具体内容,可以包括通过承诺函数计算得到的承诺值,上述输入资产对象的资产类型、上述输出资产对象的资产类型以外,以及与上述输入资产对象的原始承诺值。

在以下实施例中,将以区块链支持隐藏输入交易对象的相关信息进行说明。

3)针对承诺值的零知识验证

当区块链中的节点设备(比如参与共识的节点设备)接收到上述资产转移者发送的资产转移交易时,可以获取上述资产转移交易中携带的proof和承诺值等信息,基于上述proof发起对上述承诺值的零知识证明,以确认上述输入资产对象的承诺值的标识信息是否对应一笔已在区块链上存证的资产对象的承诺值;以及,上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

具体地,上述节点设备作为零知识证明的验证方,可以至少将上述proof和上述承诺值,作为零知识验证算法的输入数据,输入至零知识证据验证算法中进行计算,然后基于零知识证据验证算法的输出结果,来确定上述标识信息是否对应一笔已在区块链上存证的资产对象的承诺值(仅能获知是否与链上的一笔资产对象的承诺值相对应,而并不能获知具体是和哪一笔资产对象的承诺值对应);以及,上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同;

例如,以zksnark算法为例,在对proof进行零知识验证时,可以将上述proof和上述承诺值作为输入数据输入zksnark算法中的v算法进行计算;如果v算法输出结果为true,表示需要零知识证明的以上论断为真,此时上述标识信息对应已在区块链上存证的一笔资产对象的承诺值;并且,上述资产转移交易的输入资产对象与输出资产对象的资产类型相同;反之,v算法输出结果为false,表示需要零知识证明的以上论断为假,此时上述输入资产对象的承诺值对应的标识信息并不对应已在区块链上存证的资产对象的承诺值(即输入资产对象可能是一笔并不存在的资产对象);或者,上述资产转移交易的输入资产对象与输出资产对象的资产类型不相同。

其中,需要说明的是,将上述proof和上述承诺值作为输入数据输入上述零知识证据验证算法进行零知识证明的具体算法逻辑,在本说明书中不再进行详述,本领域技术人员在将本说明书的技术方案付诸实现时,可以参考相关技术中的记载。

4)承诺值发布存证

在本说明书中,当上述节点设备通过零知识证明,确定上述标识信息对应已在区块链上存证的资产对象的承诺值;并且,上述资产转移交易的输入资产对象与输出资产对象的资产类型相同,此时该笔资产转移交易为合法交易:

一方面,可以将上述资产转移交易中携带的,与上述输出资产对象对应的承诺值发布至区块链进行存证;例如,该节点设备可以将该承诺值记录到区块链的分布式数据库中;

另一方面,由于上述输入资产对象,为上述资产转移方已经持有的资产对象,区块链中已经存证了与该资产对象对应的承诺值,因此实现对该笔资产对象的“匿名销毁”,上述节点设备可以将与上述输入资产对象的承诺值对应的标识信息也发布至区块链进行存证,以指示该标识信息所指示的输入资产对象,已经转移给其它资产持有方进行持有。

由于上述标识信息与上述输入资产对象的承诺值之间的对应关系,仅由上述资产转移者持有,其它资产持有方仅能获知该标识信息代表一笔已经上链的资产对象,并无法获知到该标识信息具体代表的是哪一笔已有资产,因此可以达到匿名隐藏转出的资产对象的效果。

当然,如果上述节点设备通过零知识证明,确定上述标识信息并对应任何一笔已在区块链上存证的资产对象的承诺值;或者,上述资产转移交易的输入资产对象与输出资产对象的资产类型并不相同,表明上述资产转移交易可能是一笔非法的交易,在这种情况下,该节点设备可以直接对上述资产转移交易进行丢弃处理,同时可以向上述资产转移方返回一个转移失败的提示消息;例如,该提示消息具体可以是一条“被转移资产不存在,请核实”;或者,“转移资产类型不符,请核实”的文本提示。

在以上技术方案中,一方面,由于上述资产转移交易中仅携带至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算得到的承诺值作为输入数据输入至承诺函数进行计算生成的承诺值,并不会将上述输出资产对象的资产类型以明文的形式携带在资产转移交易中,使得区块链可以隐藏资产转移者转出的资产对象的资产类型,保护资产转移者的隐私;

另一方面,由于上述资产转移交易中还携带了用于对上述承诺值进行零知识证明的零知识证据,使得区块链中的节点设备可以在隐藏资产转移者转出的资产对象的资产类型的前提下,对上述零知识证据进行零知识证明,来验证上述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

与上述方法实施例相对应,本说明书还提供了一种基于区块链的资产转移装置的实施例。本说明书的基于区块链的资产转移装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书的基于区块链的资产转移装置所在电子设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

图3是本说明书一示例性实施例示出的一种基于区块链的资产转移装置的框图。

请参考图3,所述基于区块链的资产转移装置30可以应用在前述图3所示的电子设备中,包括有:接收模块301、验证模块302和存证模块303。

其中,接收模块301,接收资产转移者发送的资产转移交易;其中,所述资产转移交易包括:至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算生成的承诺值;以及,用于对所述承诺值进行零知识证明的零知识证据;

验证模块302,基于所述零知识证据对所述承诺值进行零知识证明,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同;

存证模块303,如果是,将与所述输出资产对象对应的承诺值发布至所述区块链进行存证。

在本实施例中,所述存证模块302:

如果是,将与所述输入资产对象的承诺值对应的标识信息发布至所述区块链进行存证。在本实施例中,所述零知识证据,由所述资产转移者至少将所述承诺值、所述输入资产对象的资产类型、以及所述输出资产对象的资产类型作为输入数据,输入至所述区块链搭载的零知识证据生成算法进行计算生成。

在本实施例中,所述区块链支持隐藏所述输入资产对象的相关信息;

所述零知识证据生成算法的输入数据包括所述承诺值、所述输入资产对象的资产类型、所述输出资产对象的资产类型、以及与上述输入资产对象的承诺值对应的标识信息。

在本实施例中,所述验证模块302,

基于所述零知识证据对所述承诺值进行零知识证明,验证所述标识信息是否对应已在区块链上存证的资产对象的承诺值;以及,资产转移者验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

在本实施例中,所述验证模块302:

至少将所述零知识证据,以及所述承诺值,作为零知识证据验证算法的输入数据,输入至零知识证据验证算法进行计算;

基于所述零知识证据验证算法的输出结果,验证所述标识信息是否对应已在区块链上存证的资产对象的承诺值;以及,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

在本实施例中,所述承诺函数为哈希函数;所述区块链搭建的零知识证明算法为zksnark算法,或者zkstark算法。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的资产转移的控制逻辑对应的机器可执行指令,所述处理器被促使:

接收资产转移者发送的资产转移交易;其中,所述资产转移交易包括:至少将所述资产转移交易的输出资产对象的资产类型作为输入数据输入至承诺函数进行计算生成的承诺值;以及,用于对所述承诺值进行零知识证明的零知识证据;

基于所述零知识证据对所述承诺值进行零知识证明,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同;

如果是,将与所述输出资产对象对应的承诺值发布至所述区块链进行存证。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的资产转移的控制逻辑对应的机器可执行指令,所述处理器还被促使:

如果是,将与所述输入资产对象的承诺值对应的标识信息发布至所述区块链进行存证。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的资产转移的控制逻辑对应的机器可执行指令,所述处理器还被促使:

基于所述零知识证据对所述承诺值进行零知识证明,验证所述标识信息是否对应已在区块链上存证的资产对象的承诺值;以及,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的资产转移的控制逻辑对应的机器可执行指令,所述处理器还被促使:

至少将所述零知识证据,以及所述承诺值,作为零知识证据验证算法的输入数据,输入至零知识证据验证算法进行计算;

基于所述零知识证据验证算法的输出结果,验证所述标识信息是否对应已在区块链上存证的资产对象的承诺值;以及,验证所述资产转移交易的输入资产对象与输出资产对象的资产类型是否相同。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

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