CN116346349A - 基于区块链和nft的数字盲盒管理方法及系统 - Google Patents
基于区块链和nft的数字盲盒管理方法及系统 Download PDFInfo
- Publication number
- CN116346349A CN116346349A CN202310198817.3A CN202310198817A CN116346349A CN 116346349 A CN116346349 A CN 116346349A CN 202310198817 A CN202310198817 A CN 202310198817A CN 116346349 A CN116346349 A CN 116346349A
- Authority
- CN
- China
- Prior art keywords
- blind
- box
- user
- nft
- blockchain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007726 management method Methods 0.000 title claims abstract description 32
- 238000005266 casting Methods 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 24
- 238000012795 verification Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及区块链技术领域,特别涉及到一种基于区块链和NFT的数字盲盒管理方法及系统。方法包括:当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存;响应用户的开盲盒请求,在当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数,读取当前用户保存在区块链智能合约中的开盲盒凭据,在当前用户的用户端中根据区块链随机数、当前时间戳、开盲盒凭据通过哈希运算得到凭据哈希值作为链上随机源,所述凭据哈希值用于在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户。本发明在NFT盲盒销售铸造中实现区块链的随机性,为NFT铸造销售提供更好的用户体验。
Description
技术领域
本发明涉及区块链技术领域,特别涉及到一种基于区块链和NFT的数字盲盒管理方法及系统。
背景技术
区块链是开源的,区块链的链上数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明,用户账号使用公钥表示,私钥是由随机数生成的,公钥是通过算法从私钥推导出来,但不能从公钥推导出私钥,公钥与私钥是成对存在的,它们的作用是:公钥加密,私钥解密;私钥签名,公钥验签。一般区块链把公钥作为链上的地址或者账号。
在区块链领域,NFT(Non-Fungible Token)是一种通过智能合约技术实现资产凭证,以ERC721标准为例,NFT具备唯一性,同时具有创建、转让、销毁等功能。NFT作为一种非同质化通证可以应用于艺术品版权、游戏道具、票据等资产的确权。NFT可以在区块链上进行流通和交易。NFT作为一种资产凭证,具有唯一性的特点,同时具备自我描述能力,在智能合约上存在一个metadata的字段可以对该NFT进行描述。
盲盒,是指消费者不能提前得知具体产品款式的玩具盒子,具有随机属性。只有消费者打开才会知道自己抽到了什么款式的产品。盲盒包含多个不同的系列,每个系列中一整盒对应的初始盲盒数量有所不同,且每个整盒中的盲盒都是不重复的。盲盒被抽走后不会自动补充,直到整盒被抽完。而数字盲盒是指采用上述盲盒玩法的数字形式的娱乐消费品。
区块链+NFT的数字盲盒玩法已经成为当下的潮流,但是,区块链由于链上智能合约执行输入输出是确定性的,因此区块链链上计算并没有随机性函数,同时区块链记账需要得到各节点确认,因此也难以实现随机数。在NFT项目销售的时候为追求销售市场效果,往往需要在铸造NFT的时刻才知道用户铸造哪一个数字对象,这就是所谓“开盲盒”。而通常盲盒是不在区块链链上计算实现的,因此开盲盒的公平公正性往往受到质疑,如何确保高度的随机性成为一个难题。
发明内容
本发明的目的是利用哈希运算的不可逆特性、区块链智能合约技术,提供一种实现NFT智能合约链上计算得到随机性的方法,为实现本发明的目的,采用以下技术方案:
本发明提出一种基于区块链和NFT的数字盲盒管理方法,包括盲盒预售阶段和开盲盒阶段,在盲盒预售阶段,当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存。
在开盲盒阶段,响应用户的开盲盒请求,在当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数,读取当前用户保存在区块链智能合约中的开盲盒凭据,在当前用户的用户端中根据区块链随机数、当前时间戳、开盲盒凭据通过哈希运算得到凭据哈希值作为链上随机源,所述凭据哈希值用于在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户。
在一些实施例中,所述在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户,包括:
将凭据哈希值转换为int256类型后对区块链智能合约中预设的盲盒总数进行取余数,把得到的余数作为盲盒数组索引进行盲盒选取并铸造NFT给用户。
在一些实施例中,所述把得到的余数作为盲盒数组索引进行盲盒选取并铸造NFT给用户,包括:
检查当前得到的盲盒数组索引所对应的盲盒是否已经被开出,若已经被开出则对盲盒数组索引加1,再检查所对应的盲盒是否已经被开出,以此类推,若超出盲盒数组索引最大值,则环回到盲盒数组索引0,再检查盲盒是否已经被开出,直到成功开出一个盲盒为止。
在一些实施例中,所述当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存,包括:
当用户购买盲盒时在当前用户的用户端中生成一个链下随机数并由用户持有;
由所述链下随机数、当前时间戳、当前用户地址通过哈希运算得到第一哈希值并由用户持有;
由所述链下随机数、第一哈希值通过哈希运算得到第二哈希值作为开盲盒凭据并发送至区块链智能合约中进行保存。
在一些实施例中,在得到凭据哈希值之后,在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户之前还包括:
对开盲盒凭据进行验证以确认当前开盲盒请求用户的合法性。
在一些实施例中,所述对开盲盒凭据进行验证以确认当前开盲盒请求用户的合法性的方法包括:
接收用户在客户端中输入的待验证链下随机数和待验证第一哈希值,对输入的待验证链下随机数和待验证第一哈希值进行哈希运算得到验证哈希值,判断验证哈希值与用户在区块链智能合约中保存的开盲盒凭据是否相等,若相等则验证通过并执行在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户的步骤,若不相等,则验证不通过,开盲盒失败。
在一些实施例中,所述当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数,包括:
在区块链中读取当前时间戳、区块高度、上一个区块哈希值、上一个区块的交易数量,对当前时间戳、区块高度、上一个区块哈希值、上一个区块的交易数量进行哈希运算得到哈希值作为区块链随机数。
基于同一发明构思,本申请示例性实施例还提供了一种基于区块链和NFT的数字盲盒管理系统,包括:
开盲盒凭据生成模块,用于在盲盒预售阶段,当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存;
区块链随机数接收模块,用于在开盲盒阶段,响应用户的开盲盒请求,在当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数;
读取模块,用于读取当前用户保存在区块链智能合约中的开盲盒凭据;
凭据哈希值生成模块,用于在当前用户的用户端中根据区块链随机数、当前时间戳、开盲盒凭据通过哈希运算得到凭据哈希值作为链上随机源,所述凭据哈希值用于在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户。
基于同一发明构思,本申请示例性实施例还提供了一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述中任意一项所述的一种基于区块链和NFT的数字盲盒管理方法。
基于同一发明构思,本申请示例性实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述中任意一项所述的一种基于区块链和NFT的数字盲盒管理方法。
相对于现有技术,本申请的优势如下:
本发明方法在NFT盲盒销售铸造过程中实现区块链的随机性,为NFT铸造销售提供更好的用户体验,同时也为区块链的链上随机性提供创新方法,用增加链下随机因子加入到链上计算的思路实现链上随机性。
本发明通过在盲盒预售阶段用户购买盲盒时引入开盲盒凭据,一方面可以用于增加开盲盒阶段的随机性,另一方面,可以用于在开盲盒阶段对盲盒认购合法用户的鉴别,且鉴别的效率和准确率高,增强安全性,即同时解决了增强随机性和安全性的问题。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一种基于区块链和NFT的数字盲盒管理方法的流程图;
图2为本申请实施例一种基于区块链和NFT的数字盲盒管理方法的详细流程图;
图3为本申请实施例中在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户的流程图;
图4为本申请实施例中当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存的流程图;
图5为本申请实施例中对开盲盒凭据进行验证以确认当前开盲盒请求用户的合法性的流程图;
图6为本申请实施例中把得到的余数作为盲盒数组索引进行盲盒选取并铸造NFT给用户的流程图;
图7为本申请实施例一种基于区块链和NFT的数字盲盒管理系统的结构示意图;
图8为本申请实施例一种电子设备的示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的。仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本申请所称的“用户端”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
本申请所称的区块链,除非明文指定,包括公链、私链、联盟链等多种实现形式,其具有分布式加密存储的特点,通过开放接口给本申请的客户端或服务器调用而执行相应的指令,完成相应的任务。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
本申请即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本申请的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
发明概述:
在现有技术中,由于区块链本质上是一种公开的分布式帐本技术,通常在记录在区块链上的信息都是公开的,所有区块链节点应该都可以获得某个区块链记录的信息,每一个参与区块链交易记录的节点都需要对记账的交易数据、智能合约一切交易行为都需要在其他节点得到重复验证,任何打包数据是确定性,所以在智能合约的内在并不能出现传统意义的随机性功能,区块链由于链上智能合约执行输入输出是确定性的,因此区块链链上计算并没有随机性函数,同时区块链记账需要得到各节点确认,因此也难以实现随机数。在NFT项目销售的时候为追求销售市场效果,往往需要在铸造NFT的时刻才知道用户铸造哪一个数字对象,这就是所谓“开盲盒”。而通常盲盒是不在区块链链上计算实现的,因此开盲盒的公平公正性往往受到质疑。如何确保高度的随机性成为一个难题。
为了解决上述问题,本申请通过引入两阶段(包括盲盒预售阶段和开盲盒阶段)提交随机性多因子因素,实现在智能合约内的随机性。
为此,本申请实施例第一方面提供了一种基于区块链和NFT的数字盲盒管理方法,如图1、图2所示,方法包括以下步骤:
步骤S1,盲盒预售阶段:
步骤S11,当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存。
可以理解的是,在区块链上部署有符合NFT规范的智能合约,具体可以采用ERC721或ERC1155规范。具体地,区块链网络具备智能合约的功能,采用联盟链的方式,智能合约部署在区块链上,且其满足ERC721标准协议,可以用于根据开出的盲盒信息铸造出NFT。
并且,在智能合约中加入了如下盲盒特性和数据结构:
N:盲盒的总数量,这个需要公开给盲盒的购买用户。例如N=15,表示盲盒的总数量为15个。
Box[N]数组:待开盲盒的集合,用于存储待售的数字资产对象数组。以盲盒的总数量N为15个为例,则Box[N]数组中存储下标为0-14的盲盒。
Boxed[N]数组:为存储已经开出的盲盒数字资产对象数组,Boxed[N]数组用于存储哪些下标的盲盒已经被开出。
user_hash[N]数组:为一记录所有在盲盒预售阶段参与购买盲盒的用户的开盲盒凭据数组。
可以理解的是,用户购买后并不能立即开出盲盒,需要等待时间进行开盲盒动作,等到盲盒预售阶段结束后,NFT智能合约进入后续的开盲盒阶段,此时买家用户可以发起开盲盒请求并通过提交多因子来开盲盒铸造NFT。
步骤S2,开盲盒阶段:
步骤S21,响应用户的开盲盒请求,在当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数。
可以理解的是,通过引入一个区块链随机数是为了在开盲盒的过程中多了一些随机不可控因子,更加彰显公平公正性。
步骤S22,读取当前用户保存在区块链智能合约中的开盲盒凭据。
可以理解的是,开盲盒凭据是由用户在盲盒预售阶段购买盲盒时所生成的,每一个用户对应唯一的一个开盲盒凭据,且保存在开盲盒凭据数组user_hash[N]中。
步骤S23,在当前用户的用户端中根据区块链随机数、当前时间戳、开盲盒凭据通过哈希运算得到凭据哈希值作为链上随机源,其中,所述凭据哈希值用于在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户。
下面举例说明:假设n代表当前是第n号购买盲盒用户,Base_Hash代表区块链随机数,user_hash[n]代表用户n保存在区块链智能合约中的开盲盒凭据,index_hash[n]代表用户n的凭据哈希值,hash()为哈希算法,则可以用以下式子表示index_hash[n]的生成过程:index_hash[n]=hash(Base_Hash+当前时间戳+user_hash[n])。
在一些实施例中,如图3所示,步骤S23中所述在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户,包括:
步骤S231,将凭据哈希值转换为int256类型后对区块链智能合约中预设的盲盒总数进行取余数。
举例说明:如图6所示,假设md代表余数,则表达式为:md=int256(index_hash[n])%N。
步骤S232,把得到的余数作为盲盒数组索引进行盲盒选取并铸造NFT给用户。
在一些实施例中,在步骤S232中,所述把得到的余数作为盲盒数组索引进行盲盒选取并铸造NFT给用户,包括:
检查当前得到的盲盒数组索引所对应的盲盒是否已经被开出,若已经被开出则对盲盒数组索引加1,再检查所对应的盲盒是否已经被开出,以此类推,若超出盲盒数组索引最大值,则环回到盲盒数组索引0,再检查盲盒是否已经被开出,直到成功开出一个盲盒为止。
本发明通过把余数作为索引的方式能够进一步保持高度的随机性。
整体的思路是,设置两个数组集合,分别为Box[N]数组和Boxed[N]数组,其中,Box[N]数组为存储待售的数字资产对象数组,Boxed[N]数组为存储已经开出的盲盒数字资产对象数组,将得到的余数作为数组索引首先查看在Boxed[N]数组中对应的值是否为0,如果不是0,则代表该索引所对应的盲盒已经被开出,此时对索引加1,再查看在Boxed[N]数组中对应的值是否为0,如果超出数组索引最大值,则环回到数组索引0,以此类推。如果索引在Boxed[N]数组中对应的值是0,则代表索引所对应的盲盒未被开出,此时开出索引在Box[N]数组中所对应的数字盲盒给用户,并对索引在Boxed[N]数组中对应的值做标记使其不为0。
举例说明:假设盲盒的总数N=15,即盲盒总量为15个,Box[N]数组中存储下标为0-14的盲盒,Boxed[N]数组则用于存储哪些下标的盲盒已经被开出。
在把凭据哈希值转换为int256类型后,必然是一个int256的数字,然后对15取余运算得到一个小于15的余数,假设得到的余数为14,把14作为索引,如果Boxed[N]数组中的Boxed[14]的值不等于0,表示索引N′=14所对应的盲盒已经被开出,此时需要执行N′=14+1=15,而15已经超出0~14的数组索引范围,所以需要环回到N′=0,如果Boxed[N′]=Boxed[0]的值=0,表示索引N′=0所对应的盲盒未被开出,此时开出盲盒为Box[N′]=Box[0],即开出Box[N]数组中的Box[0]所对应的盲盒给用户,同时需要标记Boxed[N]数组中的Boxed[0]=Box,开盲盒结束;如果Boxed[0]值不等于0,表示索引N′=0所对应的盲盒已经被开出,此时我们仍然需要继续执行N′=0+1=1,再查看Boxed[1]是否等于0,如果不为0,表示仍然继续判断下一个N′=1+1=2......以上过程持续直到找到一个未开出的盲盒为止。
在一些实施例中,如图4所示,在步骤S11中所述当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存,具体包括以下步骤:
步骤S111,当用户购买盲盒时在当前用户的用户端中生成一个链下随机数并由用户持有。以此得到一个只有用户自己知道的链下随机数,且明示用户不得泄露给他人。
应当理解的是,生成链下随机数的随机算法可以自定义,例如,限于成本考虑可以采用“线性同余法”的伪随机数算法实现。本领域技术人员也可以根据实际需要采用其它的随机算法,本实施例在此不做具体的限定。
步骤S112,由所述链下随机数、当前时间戳、当前用户地址通过哈希运算得到第一哈希值并由用户持有。以此得到一个只有用户自己知道的第一哈希值,且明示用户不得泄露给他人。
步骤S113,由所述链下随机数、第一哈希值通过哈希运算得到第二哈希值作为开盲盒凭据并发送至区块链智能合约中进行保存。
举例说明:
假设n为当前是第n号购买盲盒用户,即用户n,Kn代表用户n的用户端生成的一个链下随机数,UserAddress代表当前购买盲盒的用户地址,Hn代表用户n通过哈希运算组合多因子得到的第一哈希值,user_hash[N]数组中的user_hash[n]代表用户n的开盲盒凭据,hash()是哈希算法,则可以用以下式子表示Hn的生成过程:Hn=hash(Kn+UserAddress+当前时间戳)。而user_hash[n]的生成过程为:user_hash[n]=hash(Hn,Kn)。
值得注意的是,本实施例所述的哈希算法一般可以采用安全散列算法(SHA)实现,或者基于区块链本身的哈希算法。本领域技术人员可以根据实际需要而设置。
在一些实施例中,在得到凭据哈希值之后,在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户之前还包括:
步骤S230,对开盲盒凭据进行验证以确认当前开盲盒请求用户的合法性。
在一些实施例中,如图5所示,步骤S230中所述对开盲盒凭据进行验证以确认当前开盲盒请求用户的合法性的方法包括:
步骤S2301,接收用户在客户端中输入的待验证链下随机数和待验证第一哈希值。
步骤S2302,对输入的待验证链下随机数和待验证第一哈希值进行哈希运算得到验证哈希值。
步骤S2303,判断验证哈希值与用户在区块链智能合约中保存的开盲盒凭据是否相等,若相等则验证通过并执行在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户的步骤,若不相等,则验证不通过,开盲盒失败。
举例说明:如图6所示,Kn1代表用户n在用户端输入的一个待验证链下随机数,Hn1代表用户n在用户端输入的待验证第一哈希值,此时验证user_hash[n]==hash(Hn1,Kn1),其中user_hash[n]是在盲盒预售阶段存储在区块链中的user_hash[N]数组中的,如果相等,说明用户输入的待验证链下随机数和待验证第一哈希值都是正确的,验证通过,代表是合法的用户。
应当理解的是,在此无需担心用户n的开盲盒凭据user_hash[n]是否会泄露,由于在预售阶段第一哈希值是由用户端产生的链下随机数、用户购买盲盒的用户地址、当时时间戳通过哈希运算得到的,而且只有用户自己知道并持有,除非非法用户得到了链下随机数和时间戳以及地址匹配,否则无法从哈希值反推user_hash[n]得到链下随机数和第一哈希值,从而可以确认输入正确的链下随机数、第一哈希值的当前地址用户是合法的盲盒预售购买用户。
在一些实施例中,所述在当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数,具体包括以下步骤:
在区块链中读取当前时间戳、区块高度、上一个区块哈希值、上一个区块的交易数量,对当前时间戳、区块高度、上一个区块哈希值、上一个区块的交易数量进行哈希运算得到哈希值作为区块链随机数。
举例说明:用Base_Hash代表区块链随机数,hash()为哈希算法,则Base_Hash=hash(当前时间戳+区块高度+上一个区块哈希值+上一个区块的交易数量)。
本申请实施例第二方面提出一种基于区块链和NFT的数字盲盒管理系统,见图7,是本发明一实施例对应提供的一种基于区块链和NFT的数字盲盒管理系统的结构示意图,与上述本发明实施例提供的一种基于区块链和NFT的数字盲盒管理方法相对应,由于本发明实施例提供的一种基于区块链和NFT的数字盲盒管理系统与上述本发明实施例提供的一种基于区块链和NFT的数字盲盒管理方法相对应,因此在前述一种基于区块链和NFT的数字盲盒管理方法的实施方式也适用于本实施例提供的一种基于区块链和NFT的数字盲盒管理系统。
具体地,所述一种基于区块链和NFT的数字盲盒管理系统,包括:
开盲盒凭据生成模块,用于在盲盒预售阶段,当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存。
区块链随机数接收模块,用于在开盲盒阶段,响应用户的开盲盒请求,在当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数。
读取模块,用于读取当前用户保存在区块链智能合约中的开盲盒凭据。
凭据哈希值生成模块,用于在当前用户的用户端中根据区块链随机数、当前时间戳、开盲盒凭据通过哈希运算得到凭据哈希值作为链上随机源,所述凭据哈希值用于在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户。
参见图8,本申请实施例还对应提供一种电子设备以及一种计算机可读存储介质。
如图8所示是本发明一实施例提供的一种电子设备的示意图。该实施例的电子设备包括:处理器11、存储器12以及存储在所述存储器中并可在所述处理器11上运行的计算机程序。所述处理器11执行所述计算机程序时实现上述一种基于区块链和NFT的数字盲盒管理方法实施例中的步骤。或者,所述处理器11执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器11执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备中的执行过程。
所述电子设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器11可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分。
所述存储器12可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述电子设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统121、至少一个功能所需的应用程序122(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述电子设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的系统实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于区块链和NFT的数字盲盒管理方法,包括盲盒预售阶段和开盲盒阶段,其特征在于:
在盲盒预售阶段,当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存;
在开盲盒阶段,响应用户的开盲盒请求,在当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数,读取当前用户保存在区块链智能合约中的开盲盒凭据,在当前用户的用户端中根据区块链随机数、当前时间戳、开盲盒凭据通过哈希运算得到凭据哈希值作为链上随机源,所述凭据哈希值用于在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户。
2.根据权利要求1所述的一种基于区块链和NFT的数字盲盒管理方法,其特征在于:所述在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户,包括:
将凭据哈希值转换为int256类型后对区块链智能合约中预设的盲盒总数进行取余数,把得到的余数作为盲盒数组索引进行盲盒选取并铸造NFT给用户。
3.根据权利要求2所述的一种基于区块链和NFT的数字盲盒管理方法,其特征在于:所述把得到的余数作为盲盒数组索引进行盲盒选取并铸造NFT给用户,包括:
检查当前得到的盲盒数组索引所对应的盲盒是否已经被开出,若已经被开出则对盲盒数组索引加1,再检查所对应的盲盒是否已经被开出,以此类推,若超出盲盒数组索引最大值,则环回到盲盒数组索引0,再检查盲盒是否已经被开出,直到成功开出一个盲盒为止。
4.根据权利要求1所述的一种基于区块链和NFT的数字盲盒管理方法,其特征在于:所述当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存,包括:
当用户购买盲盒时在当前用户的用户端中生成一个链下随机数并由用户持有;
由所述链下随机数、当前时间戳、当前用户地址通过哈希运算得到第一哈希值并由用户持有;
由所述链下随机数、第一哈希值通过哈希运算得到第二哈希值作为开盲盒凭据并发送至区块链智能合约中进行保存。
5.根据权利要求4所述的一种基于区块链和NFT的数字盲盒管理方法,其特征在于:在得到凭据哈希值之后,在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户之前还包括:
对开盲盒凭据进行验证以确认当前开盲盒请求用户的合法性。
6.根据权利要求5所述的一种基于区块链和NFT的数字盲盒管理方法,其特征在于:所述对开盲盒凭据进行验证以确认当前开盲盒请求用户的合法性的方法包括:
接收用户在客户端中输入的待验证链下随机数和待验证第一哈希值,对输入的待验证链下随机数和待验证第一哈希值进行哈希运算得到验证哈希值,判断验证哈希值与用户在区块链智能合约中保存的开盲盒凭据是否相等,若相等则验证通过并执行在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户的步骤,若不相等,则验证不通过,开盲盒失败。
7.根据权利要求1所述的一种基于区块链和NFT的数字盲盒管理方法,其特征在于:所述当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数,包括:
在区块链中读取当前时间戳、区块高度、上一个区块哈希值、上一个区块的交易数量,对当前时间戳、区块高度、上一个区块哈希值、上一个区块的交易数量进行哈希运算得到哈希值作为区块链随机数。
8.一种基于区块链和NFT的数字盲盒管理系统,其特征在于,包括:
开盲盒凭据生成模块,用于在盲盒预售阶段,当用户购买盲盒时在当前用户的用户端中生成一个开盲盒凭据并发送至区块链智能合约中进行保存;
区块链随机数接收模块,用于在开盲盒阶段,响应用户的开盲盒请求,在当前用户的用户端接收区块链中基于该次开盲盒请求所生成的一个区块链随机数;
读取模块,用于读取当前用户保存在区块链智能合约中的开盲盒凭据;
凭据哈希值生成模块,用于在当前用户的用户端中根据区块链随机数、当前时间戳、开盲盒凭据通过哈希运算得到凭据哈希值作为链上随机源,所述凭据哈希值用于在区块链智能合约中根据预设的开盲盒规则进行盲盒选取并铸造NFT给用户。
9.一种电子设备,其特征在于:包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的一种基于区块链和NFT的数字盲盒管理方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的一种基于区块链和NFT的数字盲盒管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310198817.3A CN116346349B (zh) | 2023-03-03 | 2023-03-03 | 基于区块链和nft的数字盲盒管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310198817.3A CN116346349B (zh) | 2023-03-03 | 2023-03-03 | 基于区块链和nft的数字盲盒管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116346349A true CN116346349A (zh) | 2023-06-27 |
CN116346349B CN116346349B (zh) | 2023-10-20 |
Family
ID=86879961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310198817.3A Active CN116346349B (zh) | 2023-03-03 | 2023-03-03 | 基于区块链和nft的数字盲盒管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116346349B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113271346A (zh) * | 2021-04-30 | 2021-08-17 | 复旦大学 | 一种基于区块链的盲盒出售平台 |
CN113962778A (zh) * | 2021-10-29 | 2022-01-21 | 中国工商银行股份有限公司 | 基于区块链的盲盒配置方法和盲盒出售系统 |
JP7043672B1 (ja) * | 2021-10-08 | 2022-03-29 | チームラボ株式会社 | 非代替性トークンを利用したコンテンツ出力システム、方法及びプログラム |
CN114328754A (zh) * | 2022-03-04 | 2022-04-12 | 中科计算技术创新研究院 | 盲盒管理方法、盲盒管理节点及数字盲盒系统 |
CN115085909A (zh) * | 2022-05-09 | 2022-09-20 | 北京红洞科技有限公司 | 一种随机数生成方法、装置、计算机设备及介质 |
-
2023
- 2023-03-03 CN CN202310198817.3A patent/CN116346349B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113271346A (zh) * | 2021-04-30 | 2021-08-17 | 复旦大学 | 一种基于区块链的盲盒出售平台 |
JP7043672B1 (ja) * | 2021-10-08 | 2022-03-29 | チームラボ株式会社 | 非代替性トークンを利用したコンテンツ出力システム、方法及びプログラム |
CN113962778A (zh) * | 2021-10-29 | 2022-01-21 | 中国工商银行股份有限公司 | 基于区块链的盲盒配置方法和盲盒出售系统 |
CN114328754A (zh) * | 2022-03-04 | 2022-04-12 | 中科计算技术创新研究院 | 盲盒管理方法、盲盒管理节点及数字盲盒系统 |
CN115085909A (zh) * | 2022-05-09 | 2022-09-20 | 北京红洞科技有限公司 | 一种随机数生成方法、装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116346349B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108898389B (zh) | 基于区块链的内容验证方法及装置、电子设备 | |
CN110046996B (zh) | 数据处理方法和装置 | |
US20160162897A1 (en) | System and method for user authentication using crypto-currency transactions as access tokens | |
CN112003858B (zh) | 基于区块链的平台对接的方法、电子装置和存储介质 | |
CN108665946A (zh) | 一种业务数据的访问方法和装置 | |
CN112600841A (zh) | 基于区块链的信用记录共享方法及装置、电子设备 | |
JPWO2018158936A1 (ja) | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム | |
CN112765268B (zh) | 基于区块链的数据隐私保护方法、装置及设备 | |
CN108737106A (zh) | 区块链系统上用户验证方法、装置、终端设备及存储介质 | |
JP2004229308A (ja) | 電子チップの不正行為に対する保護の非対称暗号通信法 | |
CN111985007A (zh) | 一种基于区块链的合同签署与执行方法及装置 | |
CN111683082A (zh) | 一种基于区块链的数据共享方法、系统及电子设备 | |
CN108880789B (zh) | 硬件产品防伪溯源方法、节点设备及系统 | |
CN113988857A (zh) | Nft交易方法、交易系统、计算机可读存储介质及终端设备 | |
CN109993528A (zh) | 一种用于管理委托任务的方法与设备 | |
KR102333811B1 (ko) | 블록체인 기반의 카드 결제 처리 시스템 및 방법 | |
CN114708093A (zh) | 基于区块链的数字资源处理方法和装置 | |
CN116346349B (zh) | 基于区块链和nft的数字盲盒管理方法及系统 | |
CN114268447A (zh) | 一种文件传输方法、装置、电子设备和计算机可读介质 | |
CN116488822B (zh) | 一种数字盲盒认购合法用户的鉴别方法及系统 | |
WO2022205959A1 (zh) | 在区块链中发送交易和执行交易的方法和装置 | |
CN113904774A (zh) | 一种区块链地址认证方法、装置及计算机设备 | |
KR20220056036A (ko) | 일반 연산 검증용 영지식 증명 서킷 기반 가상머신을 구현하기 위한 거래 수행장치 | |
CN112598411A (zh) | 可撤回的隐私授权转账方法、设备和存储介质 | |
CN110941745A (zh) | 电子合同管理方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |