掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法和验证方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 20:01:23


数据处理方法和验证方法、装置、电子设备和存储介质

技术领域

本公开涉及区块链技术领域,更具体地说,涉及一种数据处理方法、数据验证方法、装置、电子设备、计算机可读存储介质和计算机程序产品。

背景技术

NFT(Non-Fungible Token,非同质化代币)是一种基于区块链技术的数字资产权利凭证,即,表示数字资产的唯一加密货币令牌。当数字资产被创造成NFT后,它将被永久储存在区块链上,独一无二,且不可更改。随着区块链技术的发展,越来越多的艺术家、音乐家和内容创作者正在以NFT的形式出售他们的作品。

NFT作为可证明的唯一令牌,即使简化为简单的JPEG格式,也代表其所有者的可追溯价值。NFT的前景是具体的,Web 2.0降低了互联网用户之间的社交互动成本,并很快对用户的在线/离线互动产生了影响。而Web 3.0通过将验证过程包含在智能合约中,解决了信任问题。随着NFT市场蓬勃发展,NFT像野火一样蔓延,并通过社交媒体、娱乐等落地应用并得到广泛的普及。

然而,NFT还处于初期发展阶段,还有很多问题没有完善,比如,有人未经原创同意,盗取别人的艺术作品,做成NFT在各种平台售卖。例如,欺诈者利用睡眠创造(SleepMinting)技术伪造他人有价值的NFT,欺诈其他人购买。目前尚未有能够有效地防止或验证NFT盗取或伪造行为的方法。

发明内容

本公开提供一种数据处理方法、数据验证方法、装置、电子设备、计算机可读存储介质和计算机程序产品,以至少解决上述相关技术中的未能有效地防止或验证NFT盗取或伪造行为的问题。

根据本公开实施例的第一方面,提供一种数据处理方法,包括:获取目标NFT的元数据对应的第一标识信息,所述第一标识信息是所述目标NFT的元数据存储至区块链之后得到的标识信息,其中,所述目标NFT的元数据至少包括与所述目标NFT关联的证书信息数据对应的标识信息、以及用于对所述目标NFT进行验证的证书验证合约的地址,所述证书信息数据对应的标识信息是所述证书信息数据存储至区块链之后得到的标识信息;调用NFT创建合约以基于所述第一标识信息创建所述目标NFT;获取与所述目标NFT关联的证书NFT的元数据对应的第二标识信息,其中,所述证书NFT的元数据至少包括所述NFT创建合约相关信息以及所述证书信息数据,所述第二标识信息是所述证书NFT的元数据存储至区块链之后得到的标识信息;调用证书创建合约以基于所述第二标识信息创建所述证书NFT,其中,所述证书创建合约与所述证书验证合约对应。

根据本公开实施例的第二方面,提供一种数据验证方法,包括:调用证书验证合约以基于目标NFT的元数据和与所述目标NFT关联的证书NFT的元数据对所述目标NFT进行验证;输出验证结果;其中,所述目标NFT由NFT创建合约基于所述目标NFT的元数据对应的第一标识信息创建而成,所述证书NFT由与所述证书验证合约对应的证书创建合约基于所述证书NFT的元数据对应的第二标识信息创建而成,所述目标NFT的元数据至少包括与所述目标NFT关联的证书信息数据对应的标识信息、以及用于对所述目标NFT进行验证的证书验证合约的地址,所述证书NFT的元数据至少包括所述NFT创建合约相关信息以及所述证书信息数据,所述第一标识信息是所述目标NFT的元数据存储至区块链之后得到的标识信息,所述证书信息数据对应的标识信息是所述证书信息数据存储至区块链之后得到的标识信息,所述第二标识信息是所述证书NFT的元数据存储至区块链之后得到的标识信息。

根据本公开实施例的第三方面,提供一种数据处理装置,包括:第一标识信息获取单元,被配置为获取目标NFT的元数据对应的第一标识信息,所述第一标识信息是所述目标NFT的元数据存储至区块链之后得到的标识信息,其中,所述目标NFT的元数据至少包括与所述目标NFT相关的证书信息数据对应的标识信息、以及用于对所述目标NFT进行验证的证书验证合约的地址,所述证书信息数据对应的标识信息是所述证书信息数据存储至区块链之后得到的标识信息;目标NFT创建单元,被配置为调用NFT创建合约以基于所述第一标识信息创建所述目标NFT;第二标识信息获取单元,被配置为获取与所述目标NFT关联的证书NFT的元数据对应的第二标识信息,其中,所述证书NFT的元数据至少包括所述NFT创建合约相关信息以及所述证书信息数据,所述第二标识信息是所述证书NFT的元数据存储至区块链之后得到的标识信息;证书NFT创建单元,被配置为调用证书创建合约以基于所述第二标识信息创建所述证书NFT,其中,所述证书创建合约与所述证书验证合约对应。

根据本公开实施例的第四方面,提供一种数据验证装置,其特征在于,包括:目标NFT验证单元,被配置为调用证书验证合约以基于目标NFT的元数据和与所述目标NFT关联的证书NFT的元数据对所述目标NFT进行验证;验证结果输出单元,被配置为输出验证结果;其中,所述目标NFT由NFT创建合约基于所述目标NFT的元数据对应的第一标识信息创建而成,所述证书NFT由与所述证书验证合约对应的证书创建合约基于所述证书NFT的元数据对应的第二标识信息创建而成,所述目标NFT的元数据至少包括与所述目标NFT关联的证书信息数据对应的标识信息、以及用于对所述目标NFT进行验证的证书验证合约的地址,所述证书NFT的元数据至少包括所述NFT创建合约相关信息以及所述证书信息数据,所述第一标识信息是所述目标NFT的元数据存储至区块链之后得到的标识信息,所述证书信息数据对应的标识信息是所述证书信息数据存储至区块链之后得到的标识信息,所述第二标识信息是所述证书NFT的元数据存储至区块链之后得到的标识信息。

根据本公开实施例的第五方面,提供一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行根据本公开的数据处理方法或数据验证方法。

根据本公开实施例的第六方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令被至少一个处理器运行时,促使所述至少一个处理器执行根据本公开的数据处理方法或数据验证方法。

根据本公开实施例的第七方面,提供一种计算机程序产品,包括计算机指令,所述计算机指令被至少一个处理器执行时实现根据本公开的数据处理方法或数据验证方法。

本公开的实施例提供的技术方案至少带来以下有益效果:

根据本公开的数据处理方法和数据验证方法,通过证书创建合约基于与目标NFT关联的证书信息数据来创建与目标NFT关联的证书NFT,并通过证书验证合约来利用与目标NFT关联的证书NFT对目标NFT进行验证,也就是说,通过一对智能合约(即,证书创建合约和证书验证合约)为目标NFT创建一个防伪的证书NFT,并利用证书NFT来对目标NFT的真实性进行验证,保证NFT创建过程的真实性,防止类似SleepMinting等的欺诈行为,保护NFT创造人和NFT收藏者的权益。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是示出相关技术的NFT创建流程图;

图2是根据本公开的示例性实施例的数据处理和验证的构思框图;

图3是示出根据本公开的示例性实施例的数据处理方法的流程图;

图4是示出根据本公开的示例性实施例的目标NFT的元数据的示意图;

图5是示出根据本公开的示例性实施例的证书NFT的元数据的示意图;

图6是示出根据本公开的示例性实施例的数据验证方法的流程图;

图7是示出根据本公开的示例性实施例的带证书的NFT的具体创建过程的流程图;

图8是示出根据本公开的示例性实施例的带证书的NFT的具体验证过程的流程图;

图9是示出根据本公开的示例性实施例的数据处理装置的框图;

图10是示出根据本公开的示例性实施例的数据验证装置的框图;

图11是根据本公开的示例性实施例的电子设备1100的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。

目前,可通过符合一些通用协议(例如,ERC-721协议等)的智能合约来创造NFT。图1是示出相关技术的NFT创建流程图。参照图1,在步骤101,NFT创造人可将NFT标的(数字文件)上传到中心化的云存储或去中心化的区块链(例如,IPFS或AR等),获取NFT标的对应的标识信息,例如,token(即,令牌或唯一标识)。这里,数字文件可以是图片、视频、音频、数字(虚拟)艺术品等任何可数字化的文件。在步骤102,NFT创造人可基于NFT标的对应的标识信息,组织NFT的元数据,存储到去中心化的区块链(例如,IPFS或AR等)中,获取NFT的元数据对应的标识信息,例如,token。在步骤103,通过智能合约基于NFT的元数据对应的标识信息创建NFT。具体地说,智能合约可针对NFT的元数据对应的标识信息,生成唯一标识信息,例如,token,该唯一标识信息即为NFT。这里,token可以是通过哈希算法得到的一个哈希值,由于哈希算法具有单向性和抗碰撞性的特点,每个哈希值就能唯一对应一个原内容,无法被篡改,因此,每个token可用于唯一标识对应的数据。

SleepMinting是一种通过智能合约的编写伪造NFT创造人和NFT创建流程的NFT伪造方式。例如,欺诈者通过拷贝著名艺术家创作的NFT的原始文件,并以著名艺术家的名义创建一个NFT,同时伪造交易记录,将该NFT看上去是从著名艺术家的账户中交易出来的,进而欺诈其他人购买该NFT。也就是说,欺诈者可通过编写一个带漏洞的智能合约来绕过创造人(即,著名艺术家)的账户,以创造人名义伪造了一个NFT。

由于NFT创建合约是由开发人员自行编写,作为开发人员的欺诈者主观编写后门,无法控制欺诈者的个人行为。对此,如果将通用协议(例如,ERC-721协议)升级加入数据审计相关内容,可以防御此类SleepMinting欺诈。此外,如果NFT交易平台加入数据校验,防御此类SleepMinting欺诈的NFT上架平台,但是无法防止利用SleepMinting欺诈来创建NFT。

为了解决上述问题,本公开提供了一种数据处理方法和数据验证方法,通过一对智能合约(即,一个智能合约用于为目标NFT创建相关的证书数据的证书NFT,另一个智能合约用于验证证书数据的有效性),为目标NFT创建一个防伪的证书NFT,并利用证书NFT来对目标NFT的真实性进行验证,也就是说,可以通过NFT的方式来保护目标NFT,从而保证NFT创建过程的真实性,防止类似SleepMinting等的欺诈行为,保护NFT创造人和NFT收藏者的权益。本公开利用区块链技术的不可篡改的特点,将证书NFT的证书信息数据保存,使得证书NFT可用于对目标NFT的真实性进行验证。

下面,将参照图2至图11来详细描述根据本公开的数据处理方法和装置以及数据验证方法和装置。

图2是根据本公开的示例性实施例的数据处理和验证的构思框图。

参照图2,针对数据处理过程,首先,用户(例如,NFT创造人)通过区块链(例如,以太坊等)中的NFT创建合约,基于用于验证目标NFT的数据,创建目标NFT。即,用户授权NFT创建合约创建目标NFT。这里,NFT创建合约是指用于创建NFT的智能合约。目标NFT可指NFT创造人对其NFT标的(例如,图片、视频等的数字文件)创建的NFT。另外,NFT创造人不等同于NFT创建人,NFT创造人可以是NFT创建人来创建NFT,也可以授权NFT创建人来创建NFT。随后,在目标NFT创建完成后,用户(例如,NFT创造人)通过区块链中的证书创建合约,基于用于验证目标NFT的数据以及目标NFT相关信息,创建与目标NFT相关的证书NFT。即,用户授权证书创建合约创建证书NFT。这里,证书创建合约是指用于创建证书NFT的智能合约。目标NFT和证书NFT在创建完成后,都会存入NFT创造人的账户中。

由于在目标NFT的创建过程和证书NFT的创建过程使用到唯一标识彼此的信息,也就是说,目标NFT的创建过程使用了能够唯一标识证书信息的信息,证书NFT的创建过程中使用了能够唯一标识目标NFT的信息,因此,目标NFT可以与其证书NFT关联,并且证书NFT可用于验证目标NFT的真实性。此外,在证书NFT的创建过程中,证书创建合约可通过与第三方预言机(例如,Chainlink预言机网络等)的交互,从存储证书NFT的元数据的区块链(例如,IPFS、AR等)获取证书NFT的元数据并验证其正确性,以保证创建的证书NFT确为目标NFT的证书NFT。这里,第三方预言机是指将区块链的链下数据与链上智能合约连接的服务器。由于证书创建合约所在的区块链与存储证书NFT的元数据的区块链是不同链,因此,证书创建合约无法直接获取到证书NFT的元数据,需要通过第三方预言机来获取证书NFT的元数据。

针对数据验证过程,用户可通过客户端调用证书验证合约来对目标NFT进行验证。例如,用户在交易平台看到目标NFT及其相关信息时,可通过客户端(例如,浏览器)使用web3.js调用证书验证合约,将目标NFT的相关信息输入证书验证合约,证书验证合约可基于目标NFT的相关信息,通过与第三方预言机(例如,Chainlink预言机网络等)的交互,从存储目标NFT的元数据和与目标NFT相关的证书NFT的元数据的区块链(例如,IPFS、AR等)获取目标NFT的元数据和证书NFT的元数据,从而基于目标NFT的元数据和证书NFT的元数据对目标NFT的真实性进行验证。这里,NFT创建过程中使用的证书创建合约和NFT验证过程中使用证书验证合约是一对智能合约。由于证书验证合约所在的区块链与存储目标NFT的元数据和证书NFT的元数据的区块链是不同链,因此,证书验证合约无法直接获取到目标NFT的元数据和证书NFT的元数据,需要通过第三方预言机来获取证书NFT的元数据。

因此,通过本公开的上述数据处理过程和数据验证过程,可利用一对智能合约(证书创建合约和证书验证合约)为目标NFT创建一个防伪的证书NFT,并通过证书NFT的相关数据验证目标NFT的真实性,防止NFT欺诈。

图3是示出根据本公开的示例性实施例的数据处理方法的流程图。

参照图3,在步骤301,可获取目标NFT的元数据对应的第一标识信息。这里,目标NFT可指NFT创造人对其NFT标的(例如,图片、视频等的数字文件)创建的NFT。

根据本公开的示例性实施例,目标NFT的元数据可包括NFT标的对应的标识信息以及任何与NFT标的相关的描述信息。这里,NFT标的对应的标识信息可以是NFT标的存储至区块链或云存储之后得到的标识信息,用于指示NFT标的存储地址。当然,目标NFT的元数据不限于上述信息。

根据本公开的示例性实施例,为了生成带证书的目标NFT,目标NFT的元数据至少需要包括用于验证目标NFT的数据。例如,目标NFT的元数据还可包括,但不限于,与目标NFT关联的证书信息数据对应的标识信息、以及用于对目标NFT进行验证的证书验证合约的地址。这里,证书信息数据可包括由证书验证合约用于对目标NFT进行验证的数据。证书信息数据对应的标识信息可以是证书信息数据存储至区块链之后得到的标识信息,用于指示证书信息数据存储地址。证书验证合约的地址是指证书验证合约在区块链中的存储地址。这里,标识信息可以是,但不限于,由哈希算法生成的一种哈希值,称为token,用于唯一标识对应数据。

图4是示出根据本公开的示例性实施例的目标NFT的元数据的示意图。

参照图4,目标NFT的元数据可包括与NFT标的对应的标识信息、与NFT标的对应的描述信息、证书验证合约地址以及证书信息数据对应的标识信息。

根据本公开的示例性实施例,证书信息数据可包括,但不限于,以下项中的至少一项:NFT标的地址、NFT创建合约地址、证书验证合约地址、NFT创造人账户地址、NFT创造人公钥、NFT创造人签名和NFT创造人签名到期时间。这里,NFT标的地址是指NFT标的在区块链或云存储中的存储地址。NFT创建合约地址是指NFT创建合约在区块链中的存储地址。证书验证合约地址是指证书验证合约在区块链中的存储地址。NFT创造人账户地址是指目标NFT和其证书NFT在创建完成后存储的地址。NFT创造人公钥的哈希值是NFT创造人账户地址,并可用于NFT创造人加密或解密。NFT创造人签名通过利用NFT创造人私钥对证书信息数据中除NFT创造人签名之外的其它证书信息数据进行加密得到。也就是说,可利用NFT创造人私钥对不包括NFT创造人签名的证书信息数据(json数据)整体加密,然后,将加密后得到的NFT创造人签名添加到证书信息数据(json数据)中。这样,通过使用非对称加密的方式确认NFT创造人授权证书创建合约,将证书创建合约与NFT创造人绑定。因此,NFT创造人签名到期时间是指NFT创造人授权的签名失效时间,也就是说,在NFT创造人签名到期时间后,NFT创造人签名失效。当然,本公开的证书信息数据不限于上述数据,可根据需要包括希望验证的其它证书信息数据,以用于后续由证书验证合约用于对目标NFT进行验证。

返回参照图3,在步骤302,可调用NFT创建合约以基于第一标识信息创建目标NFT。具体地说,NFT创建合约在接收到第一标识信息后,可对第一标识信息生成一个用于标识第一标识信息的标识信息(例如,token),生成的这个标识信息就是目标NFT。在目标NFT创建完成后,NFT创建合约会将目标NFT存入NFT创造人账户中。

在步骤303,可获取与目标NFT相关的证书NFT的元数据对应的第二标识信息。这里,为了使证书NFT能够用于对目标NFT进行验证,证书NFT的元数据可至少包括NFT创建合约相关信息以及证书信息数据。NFT创建合约相关信息是指与NFT创建合约创建目标NFT的事件相关的信息。证书NFT的元数据对应的第二标识信息可以是证书NFT的元数据存储至区块链之后得到的标识信息,用于指示证书NFT的元数据的存储地址。

图5是示出根据本公开的示例性实施例的证书NFT的元数据的示意图。

参照图5,证书NFT的元数据可包括NFT创建合约相关信息以及证书信息数据。根据本公开的示例性实施例,NFT创建合约相关信息可包括,但不限于,NFT创建合约的地址以及目标NFT在NFT创建合约中的数字标识(例如,token ID)。当NFT创建合约创建了目标NFT(即,目标token)之后,NFT创建合约会通用使用数字标识(即,token ID)对该目标NFT进行标记并记录。例如,该目标NFT是在该NFT创建合约创建的第100个NFT,则可用100来标记该目标NFT,因此,该目标NFT的token ID则为100。也就是说,NFT创建合约和token ID可以唯一标识一个NFT。因此,NFT创建合约相关信息可包括NFT创建合约的地址以及目标NFT在NFT创建合约中的数字标识,从而唯一标识目标NFT。当然,NFT创建合约相关信息不限于此,例如,NFT创建合约相关信息可不包括目标NFT在NFT创建合约中的数字标识,而是包括目标NFT的标识信息(token),即目标NFT本身的token值,等等。

返回参照图3,在步骤304,可调用证书创建合约以基于第二标识信息创建证书NFT,其中,证书创建合约是与证书验证合约对应的合约。具体地说,证书创建合约在接收到第二标识信息后,可对第二标识信息生成一个用于标识第二标识信息的标识信息(例如,token),生成的这个标识信息就是证书NFT。在证书NFT创建完成后,证书创建合约会将证书NFT存入NFT创造人账户中。

根据本公开的示例性实施例,证书创建合约在创建证书NFT之前,会先对证书NFT的元数据进行验证,在证书NFT的元数据被验证正确无误后,才使用第二标识信息创建证书NFT,从而保证创建的证书NFT确为目标NFT的证书NFT。

根据本公开的示例性实施例,可对与证书NFT的元数据相关的至少一项数据进行验证,并在每一项数据都被验证正确的情况下,则证书NFT的元数据被验证正确,从而开始创建证书NFT。一旦有验证的数据不正确,则终止创建证书NFT。例如,可验证证书验证合约地址、第二标识信息和证书NFT创造人中的至少一项。

根据本公开的示例性实施例,可验证证书NFT的元数据中的证书验证合约地址是否正确,从而防止证书NFT错误创建或创建后的证书NFT无法用于验证。这是因为如果证书NFT的元数据中的证书验证合约地址不正确,则说明该证书验证合约与创建证书NFT的证书创建合约不对应,这将导致证书NFT错误创建或创建后的证书NFT无法用于验证。由于证书创建合约和证书验证合约是一对合约,如果证书验证合约地址正确,则证书创建合约地址也正确,因此只需验证可证书验证合约地址的正确性即可。通过第三方预言机,基于证书NFT的元数据对应的第二标识信息查询存储证书NFT的元数据的区块链,来获得证书NFT的元数据中的证书验证合约地址。在获取到证书NFT的元数据中的证书验证合约地址后,可基于实际证书验证合约地址,验证证书NFT的元数据中的证书验证合约地址的正确性。由于证书创建合约和证书验证合约为一对合约,因此,证书创建合约可确定实际证书验证合约的地址,即,实际证书验证合约地址通过证书创建合约的地址确定。例如,在证书NFT的元数据中的证书验证合约地址与实际证书验证合约地址一致的情况下,则确定证书NFT的元数据中的证书验证合约地址正确。否则,确定证书NFT的元数据中的证书验证合约地址错误,并终止创建证书NFT。

根据本公开的示例性实施例,可验证证书NFT的元数据对应的第二标识信息是否在证书创建合约中被使用过,从而防止一个证书NFT对应多个NFT标的的情况。这是因为如果第二标识信息在证书创建合约中已被使用过,则说明该证书NFT已对应其它NFT标的,这将导致证书NFT对应多个NFT标的,丧失验证可靠性。也就是说,证书NFT的元数据应该对应一个唯一标识信息,因此可在证书创建合约的创建记录中查询第二标识信息是否在证书创建合约之前的创建中使用过,如果确定第二标识信息未被使用过,则确定第二标识信息正确。否则,确定第二标识信息错误,并终止创建证书NFT。

根据本公开的示例性实施例,可验证证书NFT创造人是否正确,即,验证证书NFT创造人是否是NFT创造人(即,目标NFT的创造人)本人,从而防止非NFT创造人伪造证书NFT。这是因此目标NFT的创造人和证书NFT的创造人应该是同一人(即,NFT创造人),否则可能存在非NFT创造人伪造证书NFT的情况。根据本公开的示例性实施例,可通过验证(1)证书NFT创建账户地址是否是当前证书NFT创造人本人的账户地址以及(2)证书NFT创建账户地址是否是NFT创造人的账户地址,来验证证书NFT创造人是否是NFT创造人本人。如果以上两项都验证通过,则确定证书NFT创造人是NFT创造人本人,否则,确定证书NFT创造人不是NFT创造人本人,并终止创建证书NFT。因此,可通过验证证书NFT创建账户地址的正确性以及证书NFT的元数据中的NFT创造人公钥与证书NFT创建账户地址的一致性,验证证书NFT创建人的正确性。

例如,可通过非对称加密的方式(例如,证书NFT创建账户私钥签名且证书创建合约公钥解密的方式),确定证书NFT创建账户地址是否是证书NFT创建人的账户地址。例如,证书创建合约将预定信息发送给证书NFT创建账户,证书NFT创建账户使用私钥对预定信息进行加密签名,并将签名发送给证书创建合约,证书创建合约使用公钥对签名进行解密,并验证解密后的数据是否与预定信息一致,如果一致,则确定证书NFT创建账户地址是证书NFT创建人的账户地址,如果不一致或未收到签名,则确定证书NFT创建账户地址不是证书NFT创造人的账户地址。在确定证书NFT创建账户地址是证书NFT创造人的账户地址的情况下,基于证书NFT的元数据中的NFT创造人公钥得到NFT创造人账户地址,并将NFT创造人账户地址与证书NFT创建账户地址进行比对;在NFT创造人账户地址与证书NFT创建账户地址一致的情况下,确定证书NFT创造人正确,否则,确定证书NFT创造人错误。

当然,本公开不限于上述验证证书NFT的元数据的正确性的过程,还可利用任何可能的方法或数据来验证证书NFT的元数据的正确性。

图6是示出根据本公开的示例性实施例的数据验证方法的流程图。当根据本公开的图3所示的数据处理方法创建出带证书NFT的目标NFT之后,用户可通过根据本公开的图6所示的数据验证方法对目标NFT进行验证,以验证目标NFT的真实性。

参照图7,在步骤601,可调用证书验证合约以基于目标NFT的元数据和与目标NFT关联的证书NFT的元数据对目标NFT进行验证;在步骤602,可输出验证结果。

根据本公开的示例性实施例,可将NFT创建合约相关信息输入证书验证合约,并通过证书验证合约,基于NFT创建合约相关信息,获取目标NFT的元数据和证书NFT的元数据。这里,NFT创建合约相关信息是指与NFT创建合约创建目标NFT的事件相关的信息。例如,NFT创建合约相关信息可包括,但不限于,NFT创建合约的地址以及目标NFT在NFT创建合约中的数字标识(例如,token ID)。本公开对NFT创建合约相关信息的内容不作限制,例如,NFT创建合约相关信息还可包括目标NFT对应的标识信息或者目标NFT的标的对应的标识信息等,或者也可用这些标识信息来代替数字标识。

根据本公开的示例性实施例,可通过所述证书验证合约与第三方预言机(例如,Chainlink预言机网络)通信,利用所述第三方预言机基于NFT创建合约相关信息,从存储目标NFT的元数据的区块链(例如,IPFS、AR等)获取目标NFT的元数据。具体地说,证书验证合约和第三方预言机在同一区块链,证书验证合约可通过将包含NFT创建合约相关信息的元数据获取请求发布,在第三方预言机从链上获取到该元数据获取请求后,基于NFT创建合约相关信息从存储目标NFT的元数据的区块链(与证书验证合约和第三方预言机不在同一区块链)获取目标NFT的元数据,并将获取到的目标NFT的元数据发布上链,证书验证合约可从链上获取目标NFT的元数据。

根据本公开的示例性实施例,可通过证书验证合约与第三方预言机(例如,Chainlink预言机网络)通信,利用第三方预言机基于第二标识信息,从存储证书NFT的元数据的区块链获取证书NFT的元数据。具体地说,证书验证合约和第三方预言机在同一区块链,证书验证合约可通过将包含第二标识信息的元数据获取请求发布,在第三方预言机从链上获取到该元数据获取请求后,基于第二标识信息从存储证书NFT的元数据的区块链(与证书验证合约和第三方预言机不在同一区块链)获取证书NFT的元数据,并将获取到的证书NFT的元数据发布上链,证书验证合约可从链上获取证书NFT的元数据。

根据本公开的示例性实施例,基于NFT创建合约相关信息,从证书创建合约中获取证书NFT的元数据对应的标识信息,即,第二标识信息;并通过第三方预言机,基于第二标识信息,从存储证书NFT的元数据的区块链(例如,IPFS、AR等)获取证书NFT的元数据。

根据本公开的示例性实施例,可对目标NFT的元数据中的至少一项数据和证书NFT的元数据中的至少一项数据分别进行验证,验证过的每一项数据都正确,则可确定目标NFT是真的,即,可确定目标NFT是由目标NFT元数据上交易记录的NFT创造人创建或授权创建的,并输出指示目标NFT真实的验证结果。一旦检测出有一项数据不正确,则可确定目标NFT由他人伪造,并输出指示目标NFT的真实性存在风险的提示。本公开对每项数据的验证过程的顺序不作限制。例如,可对每项数据同时执行验证。又例如,可对每项数据依次验证,只要有数据验证不通过,则终止验证,并输出验证结果。又例如,可先对目标NFT的元数据中的至少一项数据进行验证,在验证通过的情况下,再对证书NFT的元数据中的至少一项数据进行验证。又例如,可先对证书NFT的元数据中的至少一项数据进行验证,在验证通过的情况下,再对目标NFT的元数据中的至少一项数据进行验证。

根据本公开的示例性实施例,可基于目标NFT的元数据对目标NFT进行第一验证;在第一验证通过的情况下,基于证书NFT的元数据对目标NFT进行第二验证。

根据本公开的示例性实施例,第一验证可包括对目标NFT的元数据中的至少一项数据分别进行验证,若至少一项数据的验证结果中有结果为不通过,则输出指示目标NFT的真实性存在风险的验证结果。

例如,第一验证所验证的数据可包括,但不限于,以下项中的至少一项:目标NFT的元数据中的证书验证合约地址和目标NFT的元数据中的NFT创造人账户地址。(1)在验证所述目标NFT的元数据中的证书验证合约地址时,可验证目标NFT的元数据中的证书验证合约地址与被调用的证书验证合约地址的一致性。若目标NFT的元数据中的证书验证合约地址与被调用的证书验证合约地址一致,说明目标NFT的元数据中的证书验证合约地址正确,则目标NFT的元数据中的证书验证合约地址的验证结果为通过。如果不一致,说明目标NFT的元数据中的证书验证合约地址不正确,则目标NFT的元数据中的证书验证合约地址的验证结果为不通过,并输出目标NFT的真实性存在风险的验证结果。(2)在验证目标NFT的元数据中的NFT创造人账户地址时,可验证目标NFT的元数据中的NFT创造人账户地址与交易记录中的NFT创造人账户地址(即,交易记录中的创造记录中的“to”指向的地址)的一致性。若目标NFT的元数据中的NFT创造人账户地址与交易记录中的NFT创造人账户地址一致,说明目标NFT的元数据中的NFT创造人账户地址正确,则目标NFT的元数据中的NFT创造人账户地址的验证结果为通过。如果不一致,说明目标NFT的元数据中的NFT创造人账户地址不正确,则目标NFT的元数据中的NFT创造人账户地址的验证结果为不通过,并输出目标NFT的真实性存在风险的验证结果。本公开的第一验证不限于上述验证过程,还可根据需要或设置包括对目标NFT的元数据中的其它数据的验证过程。

根据本公开的示例性实施例,第二验证可包括对证书NFT的元数据中的至少一项数据分别进行验证,若至少一项数据的验证结果中有一项数据的验证结果为不通过,则输出指示所述证书NFT的真实性存在风险的验证结果。

例如,第二验证所验证的数据可包括,但不限于,以下项中的至少一项:NFT创造人公钥、NFT创造人签名、NFT创造人签名到期时间、NFT标的地址、NFT创建合约地址和证书验证合约地址。(1)在验证NFT创造人公钥时,可基于证书NFT的元数据中的NFT创造人公钥得到NFT创造人账户地址,并验证得到的NFT创造人账户地址与目标NFT的元数据中的NFT创造人账户地址的一致性,以判断证书NFT上的公钥是否是NFT创造人的。这里,NFT创造人公钥的哈希值可为推导NFT创造人账户地址,因此,可通过对NFT创造人公钥进行哈希推导得到NFT创造人账户地址。若得到的NFT创造人账户地址与目标NFT的元数据中的NFT创造人账户地址一致,说明证书NFT上的公钥是NFT创造人的,则确定所述证书NFT的元数据中的NFT创造人公钥的验证结果为通过。如果不一致,说明证书NFT上的公钥不是NFT创造人的,则确定所述证书NFT的元数据中的NFT创造人公钥的验证结果为不通过,并输出目标NFT的真实性存在风险的验证结果。(2)在验证NFT创造人签名时,使用证书NFT的元数据中的NFT创造人公钥对证书NFT的元数据中的NFT创造人签名进行解密,并验证解密后得到的数据与证书信息数据中除NFT创造人签名之外的其它证书信息数据的一致性(例如,将解密后得到的数据与其它证书信息数据进行逐项对比),以验证证书NFT的元数据是否是NFT创造人授权过的。若解密后每一项数据都与其它证书信息数据中的对应项数据一致,说明证书NFT的元数据是NFT创造人授权过的,则证书NFT的元数据中的NFT创造人签名的验证结果为通过。如果不一致,说明证书NFT的元数据不是NFT创造人授权过的,则证书NFT的元数据中的NFT创造人签名的验证结果为不通过,并输出目标NFT的真实性存在风险的验证结果。(3)在验证NFT创造人签名到期时间时,验证证书NFT的元数据中的NFT创造人签名到期时间与目标NFT的创建时间或上链时间的匹配性,以验证是否有过期创建的情况。当NFT创建合约完成目标NFT的创建后,在区块链上记录与创建时间或上链时间相关的信息,若创建时间或上链时间是在NFT创造人签名到期时间之内,即,两者匹配,则说明目标NFT是在NFT创造人授权的有效时间内创建,因此目标NFT的创建是NFT创造人授权的,则证书NFT的元数据中的NFT创造人签名到期时间的验证结果为通过。若创建时间或上链时间超过在NFT创造人签名到期时间,即,两者不匹配,则说明目标NFT是在NFT创造人授权的有效时间之外创建,说明目标NFT的创建不是NFT创造人授权的,则证书NFT的元数据中的NFT创造人签名到期时间的验证结果为不通过,并输出目标NFT的真实性存在风险的验证结果。(4)在验证NFT标的地址时,验证证书NFT的元数据中的NFT标的地址与目标NFT的元数据中的NFT标的地址的一致性,以验证证书NFT对应的NFT标的是否正确。若证书NFT的元数据中的NFT标的地址与目标NFT的元数据中的NFT标的地址一致,说明证书NFT对应的NFT标的正确,则证书NFT的元数据中的NFT标的地址的验证结果为通过。如果不一致,说明证书NFT对应的NFT标的不正确,则证书NFT的元数据中的NFT标的地址的验证结果为不通过,并输出目标NFT的真实性存在风险的验证结果。(5)在验证NFT创建合约地址时,验证证书NFT的元数据中的NFT创建合约地址与目标NFT的元数据中的NFT创建合约地址的一致性,以验证验证证书NFT对应的目标NFT是否由NFT创建合约创建。若证书NFT的元数据中的NFT创建合约地址与目标NFT的元数据中的NFT创建合约地址一致,说明验证证书NFT对应的目标NFT是由NFT创建合约创建,则证书NFT的元数据中的NFT创建合约地址的验证结果为通过。如果不一致,说明验证证书NFT对应的目标NFT不是由NFT创建合约创建,则证书NFT的元数据中的NFT创建合约地址的验证结果为不通过,并输出目标NFT的真实性存在风险的验证结果。(6)在验证证书验证合约地址时,验证证书NFT的元数据中的证书验证合约地址与目标NFT的元数据中的证书验证合约地址的一致性,以验证证书NFT是否由目标NFT指定的证书验证合约来进行验证。若证书NFT的元数据中的证书验证合约地址与目标NFT的元数据中的证书验证合约地址一致,说明证书NFT是由目标NFT指定的证书验证合约来进行验证,则证书NFT的元数据中的证书验证合约地址的验证结果为通过。如果不一致,说明证书NFT不是由目标NFT指定的证书验证合约来进行验证,则证书NFT的元数据中的证书验证合约地址的验证结果为不通过,并输出目标NFT的真实性存在风险的验证结果。本公开的第二验证不限于上述验证过程,还可根据需要或设置,跳过上述部分验证过程(例如,用户发起验证时传入NFT标的地址,则需要执行验证(4),否则可不执行验证(4)),或者增加对证书NFT的元数据中的其它数据的验证过程。

根据本公开的数据处理方法和数据验证方法,可通过证书创建合约基于与目标NFT关联的证书信息数据来创建与目标NFT关联的证书NFT,并通过证书验证合约来利用与目标NFT关联的证书NFT对目标NFT进行验证,也就是说,通过一对智能合约(即,证书创建合约和证书验证合约)为目标NFT创建一个防伪的证书NFT,并通过证书NFT对目标NFT进行验证,从而保证目标NFT的真实性,防止类似SleepMinting等的欺诈行为。

下面,参照图7和图8具体描述根据本公开的示例性的创建带证书的NFT和对应的证书验证的过程。

图7是示出根据本公开的示例性实施例的带证书的NFT的具体创建过程的流程图。

参照图7,在步骤701,可将NFT标的(例如,图片、视频等的数字文件)上传至区块链(例如,但不限于,IPFS或AR等)或云存储等,获得NFT标的对应的token(可称为第一token)。

在步骤702,可组织证书信息数据,并将证书信息数据上传至区块链(例如,但不限于,IPFS或AR等),获得证书信息数据对应的token(可称为第二token)。证书信息数据可包括,但不限于,以下项中的至少一项:NFT标的地址、NFT创建合约地址、证书验证合约地址、NFT创造人账户地址、NFT创造人公钥、NFT创造人签名和NFT创造人签名到期时间。

此外,本公开对步骤701和702的执行顺序不作限制,例如,可先执行步骤701,再执行步骤702,或先执行步骤702,再执行步骤701,或同时执行。

在步骤703,可组织目标NFT的元数据,并将目标NFT的元数据上传至区块链(例如,但不限于,IPFS或AR等),获得目标NFT的元数据对应的token(可称为第三token)。这里,目标NFT的元数据可包括,但不限于,与NFT标的相关的描述信息、第一token、第二token以及用于对目标NFT进行验证的验证证书合约的地址。

在步骤704,可将获得的第三token传入区块链(例如,但不限于,以太坊等)中的NFT创建合约,NFT创建合约基于第三token生成对应的token(可称为第四token)。第四token即为目标NFT,即,目标NFT创建完成。目标NFT创建完成后,可被存入NFT创造人的账户中。此外,目标NFT创建完成时,还可获得目标NFT在NFT创建合约中的token ID。

在步骤705,可组织证书NFT的元数据,并将证书NFT的元数据上传至区块链(例如,但不限于,IPFS或AR等),得到证书NFT的元数据对应的token(可称为第五token)。这里,证书NFT的元数据可包括,但不限于,NFT创建合约地址、token ID以及证书信息数据。

在步骤706,将获得的第五token传入区块链中的证书创建合约,证书创建合约对证书NFT的元数据的正确性进行验证。例如,证书创建合约可从,但不限于,从以下方面对证书NFT的元数据的正确性进行验证:(1)验证证书NFT的元数据中的证书验证合约地址是否正确,以防止证书错误创建和创建后的证书无法验证。(2)验证证书NFT的元数据对应的token(即,第五token)是否在证书创建合约中被使用过,以防止一个证书对应多个目标NFT。(3)验证证书NFT创造人是否是NFT创造人,以防止非NFT创造人伪造证书NFT。一旦有一项数据验证不通过,则在步骤707,终止创建证书NFT。

在步骤708,在验证证书NFT的元数据正确无误的情况下,证书创建合约基于第五token生成对应的token(可称为第六token)。第六token即为证书NFT,即,证书NFT创建完成。证书NFT创建完成后,可被存入NFT创造人的账户中。

图8是示出根据本公开的示例性实施例的带证书的NFT的具体验证过程的流程图。

参照图8,在步骤801,可通过客户端(例如,浏览器、应用等)使用web3.js调用证书验证合约,并将NFT创建合约地址和目标NFT在NFT创建合约中的token ID输入证书验证合约。

在步骤802,证书验证合约可通过Chainlink第三方预言机,基于NFT创建合约地址和目标NFT在NFT创建合约中的token ID从存储目标NFT的元数据的区块链(例如,IPFS或AR等),读取目标NFT的元数据。

在步骤803,证书验证合约可基于NFT创建合约地址和目标NFT在NFT创建合约中的token ID,从证书NFT创建合约中获取证书NFT的元数据对应的token(即,图7中的第五token),并通过Chainlink第三方预言机,基于该token,从存储目标NFT的元数据的区块链(例如,IPFS或AR等),读取证书NFT的元数据。本公开对步骤802和803的执行顺序不做限制,例如,可同时执行,又例如,可先执行步骤802再执行步骤803,又例如,可先执行步骤803再执行步骤802。

在步骤804,证书验证合约可对目标NFT的元数据执行验证。例如,但不限于,可分别对目标NFT的元数据中的证书验证合约地址以及NFT创造人账户地址执行验证。一旦有一项数据验证不通过,则在步骤805,输出指示目标NFT存在欺诈风险的验证结果。

在步骤806,在对证书NFT的元数据的验证通过的情况下,证书验证合约可对证书NFT的元数据执行验证。例如,但不限于,可分别对证书NFT的元数据中的NFT标的地址、NFT创建合约地址、证书验证合约地址、NFT创造人账户地址、NFT创造人公钥、NFT创造人签名和NFT创造人签名到期时间分别进行验证。一旦有一项数据验证不通过,则在步骤805,输出指示目标NFT存在欺诈风险的验证结果。

在步骤807,在对证书NFT的元数据的验证通过的情况下,输出指示目标NFT是真实的验证结果。

图9是示出根据本公开的示例性实施例的数据处理装置的框图。

参照图9,根据本公开的示例性实施例的数据处理装置900可包括第一标识信息获取单元901、目标NFT创建单元902、第二标识信息获取单元903和证书NFT创建单元904。

第一标识信息获取单元901可获取目标NFT的元数据对应的第一标识信息。这里,目标NFT可指NFT创造人对其NFT标的(例如,图片、视频等的数字文件)创建的NFT。

根据本公开的示例性实施例,目标NFT的元数据可包括NFT标的对应的标识信息以及任何与NFT标的相关的描述信息。这里,NFT标的对应的标识信息可以是NFT标的存储至区块链或云存储之后得到的标识信息,用于指示NFT标的存储地址。当然,目标NFT的元数据不限于上述信息。

根据本公开的示例性实施例,为了生成带证书的目标NFT,目标NFT的元数据至少需要包括用于验证目标NFT的数据。例如,目标NFT的元数据还可包括,但不限于,与目标NFT关联的证书信息数据对应的标识信息、以及用于对目标NFT进行验证的证书验证合约的地址。这里,证书信息数据可包括由证书验证合约用于对目标NFT进行验证的数据。证书信息数据对应的标识信息可以是证书信息数据存储至区块链之后得到的标识信息,用于指示证书信息数据存储地址。证书验证合约的地址是指证书验证合约在区块链中的存储地址。

根据本公开的示例性实施例,证书信息数据可包括,但不限于,以下项中的至少一项:NFT标的地址、NFT创建合约地址、证书验证合约地址、NFT创造人账户地址、NFT创造人公钥、NFT创造人签名和NFT创造人签名到期时间。当然,本公开的证书信息数据不限于上述数据,可根据需要包括希望验证的其它证书信息数据,以用于后续由证书验证合约用于对目标NFT进行验证。

目标NFT创建单元902可调用NFT创建合约以基于第一标识信息创建目标NFT。具体地说,目标NFT创建单元902可通过NFT创建合约对第一标识信息生成一个用于标识第一标识信息的标识信息(例如,token),生成的这个标识信息就是目标NFT。在目标NFT创建完成后,目标NFT创建单元902可通过NFT创建合约将目标NFT存入NFT创造人账户中。

第二标识信息获取单元903可获取与目标NFT相关的证书NFT的元数据对应的第二标识信息。这里,为了使证书NFT能够用于对目标NFT进行验证,证书NFT的元数据可至少包括NFT创建合约相关信息以及证书信息数据。NFT创建合约相关信息是指与NFT创建合约创建目标NFT的事件相关的信息。证书NFT的元数据对应的第二标识信息可以是证书NFT的元数据存储至区块链之后得到的标识信息,用于指示证书NFT的元数据的存储地址。

根据本公开的示例性实施例,NFT创建合约相关信息可包括,但不限于,NFT创建合约的地址以及目标NFT在NFT创建合约中的数字标识(例如,token ID)。当然,NFT创建合约相关信息不限于此,例如,NFT创建合约相关信息可不包括目标NFT在NFT创建合约中的数字标识,而是包括目标NFT的标识信息(token),即目标NFT本身的token值,等等。

证书NFT创建单元904可调用证书创建合约以基于第二标识信息创建证书NFT,其中,证书创建合约是与证书验证合约对应的合约。具体地说,证书NFT创建单元904可通过证书创建合约对第二标识信息生成一个用于标识第二标识信息的标识信息(例如,token),生成的这个标识信息就是证书NFT。在证书NFT创建完成后,证书NFT创建单元904可通过证书创建合约将证书NFT存入NFT创造人账户中。

根据本公开的示例性实施例,证书NFT创建单元904可通过证书创建合约在创建证书NFT之前,先对证书NFT的元数据进行验证,在证书NFT的元数据被验证正确无误后,才使用第二标识信息创建证书NFT,从而保证创建的证书NFT确为目标NFT的证书NFT。

根据本公开的示例性实施例,证书NFT创建单元904可对与证书NFT的元数据相关的至少一项数据进行验证,并在验每一项数据都被验证正确的情况下,则证书NFT的元数据被验证正确,从而开始创建证书NFT。一旦有验证的数据不正确,则终止创建证书NFT。例如,证书NFT创建单元904可验证证书验证合约地址、第二标识信息和证书NFT创造人中的至少一项。根据本公开的示例性实施例,证书NFT创建单元904可验证证书NFT的元数据中的证书验证合约地址是否正确,从而防止证书NFT错误创建或创建后的证书NFT无法用于验证。这是因为如果证书NFT的元数据中的证书验证合约地址不正确,则说明该证书验证合约与创建证书NFT的证书创建合约不对应,这将导致证书NFT错误创建或创建后的证书NFT无法用于验证。可通过第三方预言机,基于证书NFT的元数据对应的第二标识信息查询存储证书NFT的元数据的区块链,来获得证书NFT的元数据中的证书验证合约地址。在获取到证书NFT的元数据中的证书验证合约地址后,可基于实际证书验证合约地址,验证证书NFT的元数据中的证书验证合约地址的正确性。由于证书创建合约和证书验证合约为一对合约,因此,证书创建合约可确定实际证书验证合约的地址,即,实际证书验证合约地址通过证书创建合约的地址确定。例如,在证书NFT的元数据中的证书验证合约地址与实际证书验证合约地址一致的情况下,则确定证书NFT的元数据中的证书验证合约地址正确。否则,确定证书NFT的元数据中的证书验证合约地址错误,并终止创建证书NFT。

根据本公开的示例性实施例,证书NFT创建单元404可验证证书NFT的元数据对应的第二标识是否在证书创建合约中被使用过,从而防止一个证书NFT对应多个NFT标的的情况。这是因为如果第二标识信息在证书创建合约中已被使用过,则说明该证书NFT已对应其它NFT标的,这将导致证书NFT对应多个NFT标的,丧失验证可靠性。也就是说,证书NFT的元数据应该对应一个唯一标识信息,因此可在证书创建合约的创建记录中查询第二标识信息是否在证书创建合约之前的创建中使用过,如果确定第二标识信息未被使用过,则确定第二标识信息正确。否则,确定第二标识信息错误,并终止创建证书NFT。

根据本公开的示例性实施例,证书NFT创建单元904可验证证书NFT创造人是否正确,即,验证证书NFT创造人是否是NFT创造人(即,目标NFT的创造人)本人,从而防止非NFT创造人伪造证书NFT。这是因此目标NFT的创造人和证书NFT的创造人应该是同一人(即,NFT创造人),否则可能存在非NFT创造人伪造证书NFT的情况。根据本公开的示例性实施例,证书NFT创建单元904可通过验证(1)证书NFT创建账户地址是否是当前证书NFT创造人本人的账户地址以及(2)证书NFT创建账户地址是否是NFT创造人的账户地址,来验证证书NFT创造人是否是NFT创造人本人。如果以上两项都验证通过,则确定证书NFT创造人是NFT创造人本人,否则,确定证书NFT创造人不是NFT创造人本人,并终止创建证书NFT。因此,可通过验证证书NFT创建账户地址的正确性以及证书NFT的元数据中的NFT创造人公钥与证书NFT创建账户地址的一致性,验证证书NFT创建人的正确性。

例如,可通过非对称加密的方式(例如,证书NFT创建账户私钥签名且证书创建合约公钥解密的方式),确定证书NFT创建账户地址是否是证书NFT创建人的账户地址。在确定证书NFT创建账户地址是证书NFT创造人的账户地址的情况下,基于证书NFT的元数据中的NFT创造人公钥推导出NFT创造人账户地址,并验证推导出的NFT创造人账户地址与证书NFT创建账户地址的一致性;在确定推导出的NFT创造人账户地址与证书NFT创建账户地址一致的情况下,确定证书NFT创造人正确,否则,确定证书NFT创造人错误。

当然,本公开不限于上述验证证书NFT的元数据的正确性的过程,还可利用任何可能的方法或数据来验证证书NFT的元数据的正确性。

图10是示出根据本公开的示例性实施例的数据验证装置的框图。

参照图10,根据本公开的示例性实施例的数据验证装置1000可包括目标NFT验证单元1001和验证结果输出单元1002。

目标NFT验证单元1001可调用证书验证合约以基于目标NFT的元数据和与目标NFT关联的证书NFT的元数据对目标NFT进行验证。验证结果输出单元1002可输出验证结果。

根据本公开的示例性实施例,目标NFT验证单元1001可将NFT创建合约相关信息输入证书验证合约,并通过证书验证合约,基于NFT创建合约相关信息,获取目标NFT的元数据和证书NFT的元数据。这里,NFT创建合约相关信息是指与NFT创建合约创建目标NFT的事件相关的信息。例如,NFT创建合约相关信息可包括,但不限于,NFT创建合约的地址以及目标NFT在NFT创建合约中的数字标识(例如,token ID)。本公开对NFT创建合约相关信息的内容不作限制,例如,NFT创建合约相关信息还可包括目标NFT对应的标识信息或者目标NFT的标的对应的标识信息等,或者也可用这些标识信息来代替数字标识。根据本公开的示例性实施例,目标NFT验证单元1001可通过证书验证合约与第三方预言机(例如,Chainlink预言机网络)通信,利用第三方预言机基于NFT创建合约相关信息,从存储目标NFT的元数据的区块链(例如,IPFS、AR等)获取目标NFT的元数据。目标NFT验证单元1001可通过证书验证合约与第三方预言机(例如,Chainlink预言机网络)通信,利用第三方预言机基于所述第二标识信息,从存储证书NFT的元数据的区块链获取证书NFT的元数据。

根据本公开的示例性实施例,目标NFT验证单元1001可基于NFT创建合约相关信息,从证书创建合约中获取证书NFT的元数据对应的标识信息,即,第二标识信息;并通过第三方预言机,基于第二标识信息,从存储证书NFT的元数据的区块链(例如,IPFS、AR等)获取证书NFT的元数据。

根据本公开的示例性实施例,目标NFT验证单元1001可对目标NFT的元数据中的至少一项数据和证书NFT的元数据中的至少一项数据分别进行验证,验证过的每一项数据都正确,则可确定目标NFT是真的,即,可确定目标NFT是由目标NFT元数据上交易记录的NFT创造人创建或授权创建的,并验证结果输出单元1102可输出指示目标NFT真实的验证结果。一旦检测出有一项数据不正确,则目标NFT验证单元1101可确定目标NFT由他人伪造,并验证结果输出单元1102可输出指示目标NFT的真实性存在风险的提示。

根据本公开的示例性实施例,目标NFT验证单元1001可基于目标NFT的元数据对目标NFT进行第一验证;在第一验证通过的情况下,基于证书NFT的元数据对目标NFT进行第二验证。

根据本公开的示例性实施例,目标NFT验证单元1001执行的第一验证可包括对目标NFT的元数据中的至少一项数据分别进行验证,若至少一项数据的验证结果中有结果为不通过,验证结果输出单元1002输出指示目标NFT的真实性存在风险的验证结果。

例如,目标NFT验证单元1001执行的第一验证所验证的数据可包括,但不限于,以下项中的至少一项:目标NFT的元数据中的证书验证合约地址和目标NFT的元数据中的NFT创造人账户地址。(1)目标NFT验证单元1001验证目标NFT的元数据中的证书验证合约地址与被调用的证书验证合约地址的一致性。若目标NFT的元数据中的证书验证合约地址与被调用的证书验证合约地址一致,说明目标NFT的元数据中的证书验证合约地址正确,则目标NFT的元数据中的证书验证合约地址的验证结果为通过。如果不一致,说明目标NFT的元数据中的证书验证合约地址不正确,则目标NFT的元数据中的证书验证合约地址的验证结果为不通过,并验证结果输出单元1002输出目标NFT的真实性存在风险的验证结果。(2)目标NFT验证单元1001验证目标NFT的元数据中的NFT创造人账户地址与交易记录中的NFT创造人账户地址(即,交易记录中的创造记录中的“to”指向的地址)的一致性。若目标NFT的元数据中的NFT创造人账户地址与交易记录中的NFT创造人账户地址一致,说明目标NFT的元数据中的NFT创造人账户地址正确,则目标NFT的元数据中的NFT创造人账户地址的验证结果为通过。如果不一致,说明目标NFT的元数据中的NFT创造人账户地址不正确,则目标NFT的元数据中的NFT创造人账户地址的验证结果为不通过,并验证结果输出单元1002输出目标NFT的真实性存在风险的验证结果。本公开的第一验证不限于上述验证过程,还可根据需要或设置包括对目标NFT的元数据中的其它数据的验证过程。

根据本公开的示例性实施例,目标NFT验证单元1001执行的第二验证可包括对证书NFT的元数据中的至少一项数据分别进行验证,若至少一项数据的验证结果中有一项数据的验证结果为不通过,,验证结果输出单元1002输出指示目标NFT的真实性存在风险的验证结果。

例如,目标NFT验证单元1001执行的第二验证所验证的数据可包括,但不限于,以下项中的至少一项:NFT创造人公钥、NFT创造人签名、NFT创造人签名到期时间、NFT标的地址、NFT创建合约地址和证书验证合约地址。(1)目标NFT验证单元1001基于证书NFT的元数据中的NFT创造人公钥得到NFT创造人账户地址,并验证得到的NFT创造人账户地址与目标NFT的元数据中的NFT创造人账户地址的一致性,以判断证书NFT上的公钥是否是NFT创造人的。这里,NFT创造人公钥的哈希值可为推导NFT创造人账户地址,因此,可通过对NFT创造人公钥进行哈希推导得到NFT创造人账户地址。若得到的NFT创造人账户地址与目标NFT的元数据中的NFT创造人账户地址一致,说明证书NFT上的公钥是NFT创造人的,则确定所述证书NFT的元数据中的NFT创造人公钥的验证结果为通过通过。如果不一致,说明证书NFT上的公钥不是NFT创造人的,则确定所述证书NFT的元数据中的NFT创造人公钥的验证结果为不通过,验证结果输出单元1002输出目标NFT的真实性存在风险的验证结果。(2)目标NFT验证单元1001使用证书NFT的元数据中的NFT创造人公钥对证书NFT的元数据中的NFT创造人签名进行解密,并验证解密后得到的数据与证书信息数据中除NFT创造人签名之外的其它证书信息数据的一致性(例如,将解密后得到的数据与其它证书信息数据进行逐项对比),以验证证书NFT的元数据是否是NFT创造人授权过的。若解密后每一项数据都与其它证书信息数据中的对应项数据一致,说明证书NFT的元数据是NFT创造人授权过的,则证书NFT的元数据中的NFT创造人签名的验证结果为通过。如果不一致,否则,说明证书NFT的元数据不是NFT创造人授权过的,则证书NFT的元数据中的NFT创造人签名的验证结果为不通过,验证结果输出单元1002输出目标NFT的真实性存在风险的验证结果。(3)目标NFT验证单元1001验证证书NFT的元数据中的NFT创造人签名到期时间与目标NFT的创建时间或上链时间的匹配性,以验证是否有过期创建的情况。当NFT创建合约完成目标NFT的创建后,在区块链上记录与创建时间或上链时间相关的信息,若创建时间或上链时间是在NFT创造人签名到期时间之内,即,两者匹配,则说明目标NFT是在NFT创造人授权的有效时间内创建,因此目标NFT的创建是NFT创造人授权的,验证通过。若创建时间或上链时间超过在NFT创造人签名到期时间,即,两者不匹配,则说明目标NFT是在NFT创造人授权的有效时间之外创建,因此目标NFT的创建不是NFT创造人授权的,则证书NFT的元数据中的NFT创造人签名到期时间的验证结果为不通过,验证结果输出单元1002输出目标NFT的真实性存在风险的验证结果。(4)目标NFT验证单元1001验证证书NFT的元数据中的NFT标的地址与目标NFT的元数据中的NFT标的地址的一致性,以验证证书NFT对应的NFT标的是否正确。若证书NFT的元数据中的NFT标的地址与目标NFT的元数据中的NFT标的地址一致,说明证书NFT对应的NFT标的正确,则证书NFT的元数据中的NFT标的地址的验证结果为通过。如果不一致,说明证书NFT对应的NFT标的不正确,则证书NFT的元数据中的NFT标的地址的验证结果为不通过,验证结果输出单元1002输出目标NFT的真实性存在风险的验证结果。(5)目标NFT验证单元1001验证证书NFT的元数据中的NFT创建合约地址与目标NFT的元数据中的NFT创建合约地址的一致性,以验证验证证书NFT对应的目标NFT是否由NFT创建合约创建。若证书NFT的元数据中的NFT创建合约地址与目标NFT的元数据中的NFT创建合约地址一致,说明验证证书NFT对应的目标NFT是由NFT创建合约创建,则证书NFT的元数据中的NFT创建合约地址的验证结果为通过。如果不一致,说明验证证书NFT对应的目标NFT不是由NFT创建合约创建,则证书NFT的元数据中的NFT创建合约地址的验证结果为不通过,,验证结果输出单元1002输出目标NFT的真实性存在风险的验证结果。(6)目标NFT验证单元1001验证证书NFT的元数据中的证书验证合约地址与目标NFT的元数据中的证书验证合约地址的一致性,以验证证书NFT是否由目标NFT指定的证书验证合约来进行验证。若证书NFT的元数据中的证书验证合约地址与目标NFT的元数据中的证书验证合约地址一致,说明证书NFT是由目标NFT指定的证书验证合约来进行验证,则证书NFT的元数据中的证书验证合约地址的验证结果为通过。如果不一致,说明证书NFT不是由目标NFT指定的证书验证合约来进行验证,则证书NFT的元数据中的证书验证合约地址的验证结果为不通过,验证结果输出单元1002输出目标NFT的真实性存在风险的验证结果。本公开的第一验证不限于上述验证过程,还可根据需要或设置,跳过上述部分验证过程(例如,用户发起验证时传入NFT标的地址,则需要执行验证(4),否则可不执行验证(4)),或者增加对证书NFT的元数据中的其它数据的验证过程。

图11是根据本公开的示例性实施例的电子设备1100的框图。

参照图11,电子设备11包括至少一个存储器1101和至少一个处理器1102,所述至少一个存储器1101中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器1102执行时,执行根据本公开的示例性实施例的数据处理方法和数据验证方法。

作为示例,电子设备1100可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备1100并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备1100还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。

在电子设备1100中,处理器1102可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。

处理器1102可运行存储在存储器1101中的指令或代码,其中,存储器1101还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。

存储器1101可与处理器1102集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器1101可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器1101和处理器1102可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器1102能够读取存储在存储器中的文件。

此外,电子设备1100还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备1100的所有组件可经由总线和/或网络而彼此连接。

根据本公开的示例性实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的数据处理方法和数据验证方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。

根据本公开的示例性实施例,还可提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成根据本公开的示例性实施例的数据处理方法和数据验证方法。

根据本公开的数据处理方法和数据验证方法,可通过一对智能合约为目标NFT创建一个防伪的证书NFT,并利用证书NFT来对目标NFT的真实性进行验证,保证NFT创建过程的真实性,防止类似SleepMinting等的欺诈行为,保护NFT创造人和NFT收藏者的权益。

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

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

相关技术
  • 温度调节设备的缺氟检测控制方法、装置、系统和空调
  • 电子膨胀阀开度调节方法、装置、控制设备和空调系统
  • 空调器控制方法及装置、空调器、计算机设备、存储介质
  • 一种空调节能控制方法、系统、计算机设备及计算机可读存储介质
  • 空调节能控制方法、系统、计算机设备及可读存储介质
技术分类

06120116550506