CN114331428A - 一种非同质化通证分配方法及装置 - Google Patents
一种非同质化通证分配方法及装置 Download PDFInfo
- Publication number
- CN114331428A CN114331428A CN202111552915.XA CN202111552915A CN114331428A CN 114331428 A CN114331428 A CN 114331428A CN 202111552915 A CN202111552915 A CN 202111552915A CN 114331428 A CN114331428 A CN 114331428A
- Authority
- CN
- China
- Prior art keywords
- account
- transaction
- holding
- certificate
- homogeneous
- 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.)
- Pending
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 132
- 238000000034 method Methods 0.000 title claims abstract description 118
- 230000004044 response Effects 0.000 claims abstract description 67
- 230000000977 initiatory effect Effects 0.000 claims description 34
- 238000003860 storage Methods 0.000 claims description 13
- 238000000265 homogenisation Methods 0.000 claims description 9
- 230000036961 partial effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 230000002147 killing effect Effects 0.000 description 15
- 230000000694 effects Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000006872 improvement Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 101100186947 Caenorhabditis elegans nft-1 gene Proteins 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 238000010422 painting Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书提供一种非同质化通证分配方法及装置。所述方法包括:服务端响应于通证持有方发起的通证发行请求,基于通证持有方的主账户向区块链网络发起通证发行交易;区块链网络响应于通证发行交易创建对应于主账户的一组代持账户,并将发行的一组非同质化通证记录在这组代持账户中;服务端响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向区块链网络发起通证分配交易;通证获取请求无法在通证分配时刻之前发起,或者在该时刻之前发起的通证获取请求无效;区块链网络响应于通证分配交易,从所述一组代持账户中确定目标代持账户,并将目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
Description
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种非同质化通证分配方法及装置。
背景技术
非同质化通证(Non-Fungible Token,下称NFT)是一种不可分割的数字化通证,不同的非同质化通证之间不可互相替代。作为链下资产的映射,非同质化通证可以在区块链上发行。
非同质化通证可以基于区块链技术在不同账户之间转移(或称流转)。例如,作为链下资产所有者的通证持有方可以在链上发行非同质化通证,被发行的非同质化通证可以由该通证持有方的持有方账户所持有;相应地,通证获取方可以向区块链系统请求获取非同质化通证,并由区块链系统将非同质化通证从持有方账户转移至通证获取方的获取方账户。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种非同质化通证分配方法及装置。
为实现上述目地,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种非同质化通证分配方法,包括:
服务端响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起通证发行交易,所述通证发行交易用于发行一组非同质化通证;
所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
所述服务端响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
根据本说明书一个或多个实施例的第二方面,提出了一种非同质化通证分配方法,包括:
响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起用于发行一组非同质化通证的通证发行交易,以由所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易,以由所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效。
根据本说明书一个或多个实施例的第三方面,提出了一种非同质化通证分配方法,包括:
接收服务端基于通证持有方的主账户发起的通证发行交易,所述通证发行交易用于发行一组非同质化通证;
响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
接收所述服务端响应于通证获取请求发起的通证分配交易,所述通证获取请求由通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
根据本说明书一个或多个实施例的第四方面,提出了一种非同质化通证分配系统,包括服务端和区块链网络,其中:
所述服务端响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起通证发行交易,所述通证发行交易用于发行一组非同质化通证;
所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
所述服务端响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
根据本说明书一个或多个实施例的第五方面,提出了一种非同质化通证分配装置,包括:
发行交易发起单元,用于响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起用于发行一组非同质化通证的通证发行交易,以由所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
通证发行单元,用于响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易,以由所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效。
根据本说明书一个或多个实施例的第六方面,提出了一种非同质化通证分配装置,包括:
发行交易接收单元,用于接收服务端基于通证持有方的主账户发起的通证发行交易,所述通证发行交易用于发行一组非同质化通证;
通证发行单元,用于响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
分配交易接收单元,接收所述服务端响应于通证获取请求发起的通证分配交易,所述通证获取请求由通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
通证分配单元,用于响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
根据本说明书一个或多个实施例的第七方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面、第二方面或第三方面所述的方法。
根据本说明书一个或多个实施例的第八方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面、第二方面或第三方面所述方法的步骤。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一实施例中的通证交易平台的示意图;
图2是本说明书一实施例中一种非同质化通证分配方法的流程图;
图3是本说明书一实施例中一种账户关系的示意图;
图4是本说明书一实施例中另一种账户关系的示意图;
图5是本说明书一实施例中另一种非同质化通证分配方法的流程图;
图6是本说明书一实施例中又一种非同质化通证分配方法的流程图;
图7是本说明书一实施例中一种非同质化通证分配过程的交互流程图;
图8是本说明书一实施例中另一种非同质化通证分配过程的交互流程图;
图9是本说明书一示例性中电子设备的结构示意图;
图10是本说明书一示例性中一种非同质化通证分配装置的框图;
图11是本说明书一示例性中另一种非同质化通证分配装置的框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
在通过区块链系统转移非同质化通证的过程中,可能存在高并发场景,例如多个通证获取方可能在短时间内分别请求获取有限数量的非同质化通证,甚至多个通证获取方分别请求获取同一非同质化通证等。在这类高并发场景下,区块链系统可以分别响应于各个通证获取请求,为相应的获取方账户分配非同质化通证。
但是,由于同一通证持有方所持有的多个非同质化通证通常被记录在同一持有方账户中,且同一账户在同一时刻仅能够被区块链系统所执行的一笔交易所操作,因此上述多个通证获取请求也仅能够被区块链网络依次顺序执行。换言之,非同质化通证的上述持有方式导致区块链系统对于通证获取请求的响应过程并发性较弱,非同质化通证的分配效率较低,因此通证获取方往往需要等待较长时间才能够获知分配结果,用户体验较差。
针对上述技术问题,本说明书提出一种非同质化通证的分配方法,以提高通证获取请求响应过程的并发性,从而提升非同质化通证的分配效率。下面结合附图对上述方法分别进行说明,其中,为描述简洁,下文的解释性语句中将非同质化通证称为“NFT”。
图1是一示例性实施例提供的通证交易平台的示意图,本公开所述实施例可以应用于该平台。如图1所示,该平台可以包括网络10、服务器11、区块链网络12、若干电子设备,比如手机13、手机14和手机15等。其中,上述服务器11和区块链网络12可以构成区块链系统。
服务器11可以为包含一独立主机的物理服务器,或者该服务器11可以为主机集群承载的虚拟服务器、云服务器等。在运行过程中,服务器11可以运行某一应用的服务器侧的程序,以实现该应用的相关功能。比如当该服务器11运行上述通证交易平台的程序时,可以实现为该平台的服务端。而在本说明书一个或多个实施例的技术方案中,可由服务器11通过与区块链网络12和手机13-15上运行的客户端进行配合,以实现该平台中的非同质化通证分配方案。网络10可以包括多种类型的有线或无线网络。
其中,手机12-14只是用户可以使用的一种类型的电子设备。实际上,用户显然还可以使用诸如下述类型的电子设备:平板设备、笔记本电脑、掌上电脑(PDAs,PersonalDigital Assistants)、可穿戴设备(如智能眼镜、智能手表等)等,本说明书一个或多个实施例并不对此进行限制。在运行过程中,电子设备可以运行某一应用的客户端侧的程序,以实现该应用的相关功能,比如当电子设备运行上述通证交易平台的程序时,可以实现为该平台的客户端,例如手机13可以实现为通证持有方对应的卖家客户端、手机14和手机15可以实现为通证获取方对应的买家客户端。其中,上述通证持有方可以为卖家、个人或机构,上述通证获取方可以为个人或机构等,不再赘述。
在本公开所述实施例中的NFT可以理解为区块链系统发行的数据,该数据可以代表实体或非实体的资产,如房产、车辆、画作、音乐、视频等。任一NFT可以唯一对应于至少一个资产,该NFT可以视为其所对应资产在链上的映射。上述NFT可以被以链上数据的形式保存在区块链中。
其中,NFT的所有权可以进行转移,如将任一NFT的所有权由通证持有方转移至通证获取方,NFT的所有权的转移可以用于表征其所对应资产的所有权的转移。本公开所述的NFT分配方法,即可视为NFT的所有权的转移方法。上述所有权的转移过程可以视为针对NFT的交易过程,相应地,通证持有方可以视为该NFT的卖家,通证获取方可以视为该NFT的买家。
上述通证交易平台,可以是指用于撮合交易双方进行通证交易的中心化平台,其具体可以基于上述服务器11实现。例如,通证交易平台可以是资产拍卖平台,提供资产拍卖交易的撮合服务。通常,通证持有方可以请求通证交易平台将待交易的通证进行发布,交易对方(即所述通证持有方和通证获取方)可以通过通证交易平台,了解待交易的资产的通证并通过交易获得该通证。此处需要说明地,由于通证交易平台是线上平台,因此,通证获取方通过交易获得通证,实际上可以是指获得该通证所对应资产的所有权。
在本公开所述实施例中,网络平台不仅可以实现NFT分配功能,还可以作为诸多其他功能的集成化功能平台,比如创建通证持有方账户、发行NFT、创建代持账户、确定目标待执账户等,本说明书一个或多个实施例并不对此进行限制。
图2是本说明书一实施例中合约部署方法的流程图。如图1所示,该方法可以包括以下步骤:
步骤202,服务端响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起通证发行交易,所述通证发行交易用于发行一组非同质化通证。
在本公开实施例中,通证持有方可以预先在通证交易平台中注册持有方的主账户。例如,通证持有方可以向服务端发起主账户注册请求,并提供身份证明信息(如经营许可证、工商执照等)等必要信息,以由服务端为通证持有方生成持有方标识,并在区块链网络上创建针对该持有方的主账户。其中,上述持有方标识可以为卖家ID、账户昵称等,该标识可以由通证持有方自行指定或由服务端分配;相应的主账户可以根据持有方标识按照预设规则生成,本公开实施例对于持有方标识和持有方的主账户的生成方式并不进行限制。
另外,对于成功注册的主账户,服务端可以维护该账户对应的持有方标识与该账户的主账户地址之间的对应关系。例如,可以采用表1所示的账户映射表进行记录:
表1
完成上述账户注册的通证持有方,即在通证交易平台上拥有合法账户。此后,通证持有方可以向服务端发起针对资产的通证发行请求,以通过服务端在其连接的区块链网络上发行待分配的NFT。
在一实施例中,服务端还可以维护已注册主账户的各个通证持有方的持有方公钥。通证持有方可以使用自身的持有方私钥对所发起的通证发行请求进行签名,相应地,服务端可以在接收到任一通证发行请求之后,使用相应的持有方公钥对该请求进行验签,并在验签通过的情况下再响应该请求,以保证被发行的NFT在区块链系统中的合法性。
响应于通证持有方发起的上述通证发行请求,服务端可以基于该通证持有方的主账户向区块链网络发起通证发行交易,该交易用于发行一组(即多个)NFT。
在另一实施例中,上述通证发行请求中可以携带通证持有方的持有方标识,从而服务端可以根据本地维护的(持有方标识与主账户的主账户地址之间的)上述对应关系确定持有方标识所对应主账户的主账户地址,如通过查询上述账户映射表确定该主账户地址,从而确定上述需要生成哪个主账户对应的NFT。
其中,上述通证持有方可以是相应资产的所有方,如画作的创作者、房产的所有者等,或者,通证持有方也可以是资产的所有方所委托的代理方,如上述房产的所有者所委托的中介机构等,本公开实施例对此并不进行限制。通证持有方所发起的上述通证发行请求中可以携带上述资产的描述信息,所述描述信息用于唯一确定该资产。例如,若上述资产为实体画作,其描述信息可以包括该画作的照片、扫描图像等,还可以包括该画作的创作时间、创作者签名、材质信息等,不再赘述。需要说明的是,上述通证发行请求中可以携带待分配的多个资产的描述信息,以用于生成相应的一组NFT。
步骤204,所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同。
在一实施例中,服务端发起的通证发行交易中可以包含通证持有方所对应主账户的主账户地址。区块链系统可以同时实现针对多个通证持有方的多组NFT的分配,为避免不同通证持有方所对应的NFT产生混乱,可以将各个主账户与其相应的一组代持账户进行关联。例如,服务端可以将查询到的该主账户地址记录在所发起的通证发行交易中,如记录在该交易的from字段中,以通过该主账户地址向区块链网络指定相应的主账户。在这种情况下,区块链网络可以创建一组代持账户,并在各个代持账户中分别记录上述主账户地址,或者将各个代持账户地址记录在相应的主账户中。再例如,服务端也可以确定上述同一通证发行交易中包含的主账户地址和一组代持账户地址,并将上述主账户地址和代持账户地址之间的对应关系记录在智能合约的合约账户中。通过上述方式,能够在链上实现主账户和代持账户的关联,实现了不同主账户(及其分别对应的代持账户)之间的隔离,从而避免账户和NFT的混乱。
其中,区块链网络可以通过多种方式生成所述一组代持账户。例如,服务端可以自行生成一组代持账户地址,并将生成的这组代持账户地址包含在自身发起的通证发行交易中。如服务端可以响应于前述通证发行请求,根据该请求中携带的资产的描述信息和/或主账户地址生成一组代持账户地址,或者根据上述描述信息生成所述一组NFT,进而基于这组NFT生成一组代持账户地址。在这种情况下,区块链网络可以根据通证发行交易中包含的各个代持账户地址分别创建相应的代持账户。所述一组代持账户地址可以由服务端生成,不仅有助于减少区块链网络的计算负担,而且能够减少服务端与区块链网络之间的数据交互量,从而可以一定程度上提升NFT的发行效率。
再例如,所述一组代持账户的一组代持账户地址也可以由区块链网络生成。如服务端可以通过前述方式生成一组NFT,并将该组NFT包含在自身发起的通证发行交易中。在这种情况下,区块链网络可以根据这组NFT生成相应的一组代持账户地址,并根据生成的代持账户地址分别创建相应的代持账户。区块链网络生成所述一组代持账户地址,具体可以由区块链网络中的各个区块链节点分别生成。例如,各个区块链节点中可以部署包含代持账户地址的生成逻辑的智能合约,从而区块链节点可以分别执行智能合约以生成所述一组代持账户地址。再例如,上述生成逻辑也可以部署在区块链节点的链代码中,从而各区块链节点可以分别执行自身的链代码以生成所述一组代持账户地址。
上述方式创建的一组代持账户用于持有上述一组NFT,其中的各个代持账户均对应于同一主账户。其中,所述一组代持账户中的各个代持账户可以分别持有一个或多个NFT,且各个代持账户所持有的NFT互不相同。在各个代持账户分别持有一个NFT的情况下,区块链网络所创建代持账户的数量与所发行NFT的数量相等,此时账户与NFT之间的持有管理可参见图3。在至少一个代持账户持有多个NFT(即部分或全部代持账户持有多个非同质化)的情况下,区块链网络所创建代持账户的数量小于所发行NFT的数量,此时账户与NFT之间的持有管理可参见图4。
由图3和图4可见,通证持有方的主账户对应于一组(共n个)代持账户:代持账户1、代持账户2、…、代持账户n。其中,图3所示的各个代持账户分别持有一个NFT,如代持账户1持有NFT-1、代持账户2持有NFT-2等。图4所示的代持账户1持有一个NFT:NFT-1,代持账户2持有两个NFT:NFT-2-1和NFT-2-2,代持账户3持有两个NFT:NFT-3-1和NFT-3-2等。当然,图4中的代持账户1也可以持有多个NFT,图中未示出。
在一实施例中,对于发行的一组NFT,服务端可以维护该组NFT的中各个NFT的分配状态。例如,在由服务端生成所述一组NFT的情况下,服务端一方面可以发起包含该组NFT的通证发行交易,另一方面可以发起上述通证发行交易。此后,服务端可以生成并维护通证状态表,该表可以用于记录所述一组NFT的分配状态。
表2
如表2所示,该通证状态表中除记录各个NFT的分配状态之外,还可以记录各个NFT的对应的主账户、代持账户和/或备注信息等,其中上述备注信息可以为NFT的发行时刻、对应的通证、实际被分配时刻等相关信息。表2中的NFT-1示例性的处于已分配状态,但可以理解的是,新生成的该表中各个NFT的状态应当都为未分配状态。
根据该通证状态表,服务端可以查询NFT的状态,还可以查询任一NFT所处的代持账户等信息,不再赘述。
另外,所述主账户也可以同时对应于多组代持账户和相应的多组NFT,本公开实施例仅针对一个用户账户对应的一组NFT进行方案说明。如卖家可以同时售卖m款商品,任一款商品包括n件,则区块链网络可以通过上述方式分别发行m组NFT,任一组中的任一NFT对应于某款商品中的一件商品。
步骤206,所述服务端响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效。
针对被发行的所述一组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已分配完毕后不会再接收到通证分配交易,有效避免通证分配交易的无效处理。
在一实施例中,服务端处可以维护有所述一组代持账户的代持账户地址,例如可以维护有表2所示的完整通证状态表,或者仅维护有该表中的“代持账户”和“NFT”两列。在这种情况下,服务端向区块链网络发起的通证分配交易可以包含目标代持账户地址和相应的NFT。例如,服务端可以从尚未被分配的NFT中确定至少一个NFT,以及持有所述至少一个NFT的所述目标代持账户的目标代持账户地址;然后向区块链网络发起通证分配交易,该交易中可以包含确定出的所述目标代持账户地址和所述至少一个NFT。通过该方式,由服务端提前确定将哪个NFT分配给哪个通证获取方,并由区块链网络完成NFT的实际分配过程,有助于简化区块链网络的处理逻辑。
其中,通证获取方向服务端发起的通证获取请求中可以包含通证获取方的获取方账户的账户地址,从而服务端可以将该账户地址包含在通证分配交易中。或者,服务端处也可以维护各个通证获取方的获取方账户的账户标识和账户地址之间的对应关系,从而服务端可以根据通证获取请求中包含的获取方账户的账户标识确定相应的账户地址,并将该账户地址包含在通证分配交易中。通证分配交易中包含的上述账户地址,能够用于告知区块链网络将目标NFT分配至哪个获取方账户。
步骤208,所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
在上述实施例中,通过为用户账创建多个代持账户,并由各个代持账户分别持有不同的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是否已经被分配。
对应于前述实施例的记载,本公开还提出另一种非同质化通证分配方法,该方法应用于服务端。如图5所示,该可以包括下述步骤502-504:
步骤502,响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起用于发行一组非同质化通证的通证发行交易,以由所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同。
步骤504,响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易,以由所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效。
在一实施例中,所述向区块链网络发起用于发行一组非同质化通证的通证发行交易,包括:
确定当前时刻尚未被分配的非同质化通证;
在尚未被分配的非同质化通证满足所述通证分配请求的分配需求的情况下,向区块链网络发起用于发行一组非同质化通证的通证发行交易。
在一实施例中,所述确定当前时刻尚未被分配的非同质化通证,包括:通过查询自身维护的通证状态表确定当前时刻尚未被分配的非同质化通证,所述通证状态表用于记录所述一组非同质化通证的分配状态;
所述方法还包括:在发起所述通证分配交易后,更新所述通证状态表中记录的所述分配状态。
在一实施例中,服务端本地维护有所述一组代持账户的代持账户地址,所述向区块链网络发起用于发行一组非同质化通证的通证发行交易,包括:
从尚未被分配的非同质化通证中确定所述至少一个非同质化通证,以及持有所述至少一个非同质化通证的所述目标代持账户的目标代持账户地址;
向所述区块链网络发起用于发行一组非同质化通证的通证分配交易,所述通证分配交易中包含所述目标代持账户地址和所述至少一个非同质化通证。
对应于前述实施例的记载,本公开还提出又一种非同质化通证分配方法,该方法应用于区块链网络。如图6所示,该可以包括下述步骤602-608:
步骤602,接收服务端基于通证持有方的主账户发起的通证发行交易,所述通证发行交易用于发行一组非同质化通证。
步骤604,响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同。
步骤606,接收所述服务端响应于通证获取请求发起的通证分配交易,所述通证获取请求由通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效。
步骤608,响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
在一实施例中,所述通证发行交易中包含所述主账户的主账户地址,所述创建对应于所述主账户的一组代持账户,包括:
创建一组代持账户,并在各个代持账户中分别记录所述主账户地址。
在一实施例中,所述创建一组代持账户,包括:
在所述通证发行交易中包含由所述服务端生成的一组代持账户地址的情况下,根据各个代持账户地址分别创建相应的代持账户;或者,
根据所述一组非同质化通证生成相应的一组代持账户地址,并根据生成的代持账户地址分别创建相应的代持账户。
在一实施例中,所述通证分配交易中包含所述通证获取方的获取方账户的账户地址,所述将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方,包括:
将所述目标代持账户中的至少一个非同质化通证写入所述获取方账户,并将所述至少一个非同质化通证从所述目标代持账户中删除;或者,
在所述目标代持账户中记录有非同质化通证的分配状态的情况下,将所述目标代持账户中的至少一个非同质化通证写入所述获取方账户,并将所述分配状态由未分配状态更新为已分配状态。
上述服务端和区块链网络通过与通证持有方的配合,能够在区块链系统中发行待分配的NFT;通过与通证获取方配合,能够并行响应至少一个通证获取方发起的至少一个通证获取请求,并将各个NFT分别分配至相应的获取方账户。上述各方在NFT的发行和分配过程中的具体参与方式,可以参见前述各个实施例的记载,此处不再赘述。
下面结合图7,以通证持有方为卖家客户端、通证获取方为买家客户端为例,对发行并通过“秒杀”活动分配NFT的过程进行详细说明。如图7所示,上述过程可以包括以下步骤702-734。其中,步骤702-720是在区块链系统中发行一组NFT的过程,步骤724-734是为买家账户分配NFT的过程。下面分别进行说明:
【发行NFT的过程】
步骤702,卖家客户端向服务端发起主账户注册请求。
要基于区块链系统(包括服务端和区块链网络)实现预设功能,卖家客户端可以预先在区块链系统中注册主账户。例如,卖家客户端可以先向服务端发起主账户注册请求,并提供身份证明信息等必要信息,其中,上述必要信息可以包含在主账户注册请求中或者与该请求关联发送至服务端。
步骤704,服务端为卖家客户端生成卖家标识和主账户地址。
其中,为便于卖家管理,服务端可以根据上述必要信息生成具有统一规格的卖家标识。或者,为增加卖家标识的可读性,上述卖家标识也可以为商铺名称、卖家昵称等。此时,服务端可以按照预设规则生成上述卖家标识对应的主账户地址。
再或者,上述卖家表示还可以为卖家指定的自定义标识,此时服务端可以根据该自定义标识生成主账户地址,而无需生成卖家标识。
步骤706,服务端向区块链网络发起主账户注册交易。
进一步地,服务端可以向区块链网络发起针对该主账户地址的主账户注册交易。其中,该交易中可以包含前述步骤生成的上述主账户地址。
步骤708,区块链网络响应于主账户注册交易为卖家客户端创建主账户。
响应于上述主账户注册交易,区块链网络可以在对该交易共识通过的情况下,执行该交易以在区块链网络中创建卖家客户端的主账户,该账户的账户地址即为上述主账户地址。
步骤710,服务端记录卖家客户端的卖家标识和主账户的主账户地址。
服务端可以在本地记录卖家标识和主账户地址之间的对应关系,具体可参见前述表1,此处不再赘述。其中,为保证所记录主账户地址与区块链网络中创建的主账户的一致性,服务端可以在接收到区块链网络返回的主账户创建成功消息的情况下,记录上述对应关系(此时步骤710在步骤708之后执行)。或者,也可以由服务端在生成卖家标识和主账户地址之后即记录二者之间的对应关系,本公开实施例对此并不进行限制。
在服务端生成上述卖家标识的情况下,服务端还可以将上述卖家标识下发至卖家客户端,以便卖家客户端基于该标识与服务端进行交互。而服务端可以通过卖家标识区分不同的卖家客户端。
上述是针对卖家客户端的账户注册过程进行的说明,实际上,买家客户端也可以在区块链系统中注册买家账户,具体规程与上述过程类似,不再赘述。
另外,对于在其他平台注册的账户,服务端也可以在获取到相关各方的账户授权信息的情况下,将该这类账户作为上述主账户和/或买家账户,不再赘述。
步骤712,卖家客户端向服务端发起通证发行请求。
卖家客户端可向服务端发起针对待分配资产的通证发行请求,该通证发行请求中可以携带卖家标识以及上述资产的描述信息。其中,上述待分配资产的数量可以为多个,相应地,上述描述信息可以包括各个资产的描述信息。
步骤714,服务端生成一组NFT和相应的一组代持账户。
在一实施例中,服务端还可以维护已注册主账户的各个卖家客户端的持有方公钥。卖家客户端可以使用自身的持有方私钥对所发起的上述通证发行请求进行签名,相应地,服务端可以在接收到任一通证发行请求之后,可以使用相应的持有方公钥对该请求进行验签,并在验签通过的情况下再响应该请求,以保证被发行的NFT在区块链系统中的合法性。此后,服务端可以仅响应于验签通过的通证发行请求开展下述实施例。
响应于接收到的通证发行请求,服务端可以根据上述各个资产的描述信息生成一组NFT,并进一步生成分别对应于各个NFT的代持账户。其中,基于任一资产的描述信息,可以采用ERC20、ERC223或ERC721等数字化凭证协议生成相应的NFT,该NFT即对应于该资产。基于上述数字化凭证协议生成NFT以及根据NFT生成代持账户地址的具体过程,可以参见相关技术中的记载,此处不再赘述。
基于通证发行请求中携带的卖家标识,服务端可以根据自身维护的卖家标识和主账户地址之间的对应关系,确定该卖家标识对应的主账户地址。
步骤716,服务端向区块链网络发起通证发行交易。
进而,服务端可以向区块链网络发起针对上述资产的通证发行交易。该通证发行交易中可以包含上述主账户地址,如可以将该主账户地址记录在该合约的from字段中。该通证发行交易中还可以包含生成的所述一组NFT和一组代持账户,如可以将二者记录在该合约的data字段中。考虑到上述各个代持账户地址根据NFT生成,所以该交易中还可以指定各个NFT与各个代持账户地址之间的对应关系。
步骤718,区块链网络创建一组代持账户,并在各个代持账户中分别记录不同的NFT。
响应于接收到的通证发行交易,区块链网络可以根据该合约中记录的一组代持账户地址创建一组代持账户,并在各个代持账户中分别记录不同的NFT。
其中,各个代持账户可以分别持有至少一个NFT。在各个代持账户分别持有一个NFT的情况下,代持账户的数量与NFT的数量相同,可参见图3所示;而在各个代持账户分别持有多个NFT或者部分代持账户持有多个NFT的情况下,代持账户的数量小于NFT的数量,可参见图4所示。
步骤720,服务端生成并维护通证状态表。
另外,服务端可以生成并维护通证状态表,该表可以用于记录所述一组NFT的分配状态。其中,为保证所记录的通证的分配状态与区块链网络中NFT的实际分配状态严格一致,服务端可以在接收到区块链网络返回的通证发行成功消息的情况下生成上述状态表(步骤710在步骤718之后执行)。或者,也可以由服务端在发起上述通证发行交易的情况下生成上述状态表,本公开实施例对此并不进行限制。
至此,区块链系统完成针对NFT的发行过程。
【分配NFT的过程】
步骤722,卖家客户端向服务端发起通证获取请求。
此后,买家客户端可以针对被发行的一组NFT发起“秒杀”活动,参与该活动的各个通证获取方可以通过发起通证获取请求获取区块链系统分配的NFT。其中,任一买家客户端发起的通证获取请求中包含该客户端所对应买家账户的买家账户地址。
“秒杀”活动存在预定义的通证分配时刻(下称秒杀时刻),该秒杀时刻可以由卖家客户端指定或者由服务端设置。在上述秒杀时刻之前发起的通证获取请求是无效请求,只有在上述秒杀时刻或者秒杀时刻之后发起的通证获取请求才是有效请求,本公开所述实施例中的区块链系统只会响应于有效请求为相应的买家账户成功分配目标NFT。
例如,服务端可以向买家客户端指定上述秒杀时刻,以(通过买家客户端中的预设逻辑)控制买家客户端无法在该时刻之前发起通证获取请求;再例如,服务端也可以不响应在秒杀时刻之前接收到的通证获取请求;或对于在秒杀时刻之前接收到的通证获取请求,服务端可以直接向相应的卖家客户端返回分配失败消息。又例如,对于在秒杀时刻之前接收到通证获取请求,服务端也可以将该通证获取请求的发起时刻记录在通证分配交易中,以由区块链网络根据该发起时刻拒绝执行该交易。下面针对秒杀时刻之后发起的某一通证获取请求进行说明。
在一实施例中,“秒杀”活动还可以对同一买家客户端发起的通证获取请求进行数量限制,以限制同一买家获取到的NFT数量。以限制数量为一个为例,若接收到同一用户账户发送的多个通证获取请求,则可以将其中秒杀时刻之后发起的首个通证获取请求作为有效请求处理,而其他请求均作为无效请求处理,从而避免该买家获取到多个NFT。
步骤724,服务端查询通证状态表以确定目标代持账户和目标NFT。
为避免区块链网络在NFT已经分配完毕的情况下仍然接收到通证分配交易,从而无效响应该交易,服务端可以在接收到通证获取请求之后,确定当前时刻尚未被分配的NFT能够满足通证获取请求的分配需求,并在满足的情况下再向区块链网络发起通证分配交易。
承接于前述实施例,在区块链本地维护有上述通证状态表的情况下,服务端可以通过查询该表,从尚未被分配的NFT中确定目标NFT和相应的目标NFT。例如,在每个通证获取请求仅限请求一个NFT(即该请求的分配需求等于一)的情况下,服务端可以查询按序查询通证状态表,并将查询到的首个尚未被分配的NFT作为目标NFT,或者从查询到的多个尚未被分配的NFT中随机选取一个作为目标NFT。
再例如,在每个通证获取请求可以请求两个NFT(即该请求的分配需求大于一)的情况下,服务端可以遍历各个代持账户。在如图3所示场景下,若NFT-1和NFT-2已经被分配,其余NFT尚未被分配,则服务端在尚未被分配的NFT-3~NFT-n中选取任意两个NFT作为目标NFT。如将NFT-3和NFT-4作为目标NFT,相应的代持账户3和代持账户4为目标代持账户。又在如图4所示的场景下,若NFT-1和NFT-2-1已经被分配,其余NFT尚未被分配,则服务端可以在尚未被分配的NFT-2-2~NFT-n-2中选取任意两个NFT作为目标NFT。如可以将NFT-2-2和NFT-3-1作为目标NFT,相应的代持账户2和代持账户3为目标代持账户;或者,也可以将NFT-3-1和NFT-3-2作为目标NFT,相应的代持账户3为目标代持账户,不再赘述。
为避免遍历结果表明当前时刻尚未被分配的NFT无法满足通证获取请求的获取需求这一情况发生,服务端也可以实时统计上述通证状态表中尚未被分配的NFT的总量,如将该总数记录在该状态表的统计字段中。从而服务端响应于通证获取请求,可以先根据当前时刻的上述总量确定是否能够满足通证获取请求的获取需求,并仅在能够满足的情况下进行后续的遍历过程。
步骤726,服务端向区块链网络发起通证分配交易。
在确定上述目标NFT和目标代持账户之后,服务端可以向区块链网络发起包含买家账户地址、目标NFT和目标代持账户地址的通证分配交易。
步骤728,服务端更新通证状态表。
在发起上述通证分配交易的情况下,服务端还可以相应的更新上述RR状态表。例如,可以将该表中记录的目标NFT的分配状态由未分配状态更新为已分配状态。而在该表中记录有尚未被分配的NFT的总量的情况下,服务端还可以更换新该总量,如确定目标NFT的数量,并在上述总量中减去该数量。
步骤730,区块链网络为买家账户分配目标NFT。
根据通证分配交易中包含的买家账户地址、目标NFT和目标代持账户地址,区块链网络可以将记录在目标代持账户中的目标NFT写入买家账户,以实现对目标NFT的分配。
为避免对同一NFT的重复分配,可以删除目标代持账户中记录的目标NFT;或者,在目标代持账户中记录有目标NFT的分配状态的情况下,可以将代持账户中记录的该分配状态由未分配状态更新为已分配状态。
另外,买家账户中也可以记录被分配的目标NFT的第二分配状态(前述分配状态可视为第一分配状态),所述第二分配状态可以用于表征目标NFT是否被从该卖家账户进一步分配至其他账户。便服务端后续可以根据第二分配状态确定目标NFT是否由买家账户所持有,即是否被进一步分配至其他账户,并在该目标NFT由该买家账户所持有的情况下,可以进一步将NFT分配至其他账户从。通过上述方式,可以实现对目标NFT的多次分配,如用户账户可以对通过“秒杀”活动获取的NFT进行二次转赠或二次售卖。
步骤732,区块链网络向服务端返回通证分配结果。
此时,区块链网络可以向服务端返回通证分配结果,该结果可以包括目标NFT和用户账户之间的对应关系,以告知服务端上述目标NFT被分配后被哪个账户所持有。相应地,服务端可以将该对应关系维护在本地,如记录在上述通证状态表的“备注”一列中。
步骤734,服务端向买家客户端返回秒杀成功消息。
服务端可以向买家客户端返回秒杀成功消息,该消息中可以包含上述目标NFT,以便告知买家其参与的秒杀过程秒杀成功,即成功获取到区块链系统分配的目标NFT。
至此,完成“秒杀”活动中针对NFT的分配过程。上述过程仅是针对任一通证获取请求作出的说明,实际上,因为所发行的一组NFT并非仅由一个主账户所持有,而是由该主账户对应的多个代持账户分别持有,所以区块链系统在同一时刻可以分别执行多笔通证分配交易、分别操作多个代持账户实现对目标NFT的并行分配。相对于相关技术中仅有一个买家账户持有一组NFT、区块链系统按序依次处理各个通证获取请求(即串行分配NFT),显著提升了区块链系统在处理通证获取请求时的并发性,从而缩短了NFT的分配耗时,提升了分配效率。
在发行NFT的过程中,也可以由区块链网络生成NFT和代持账户;另外,服务端也可以不维护上述通证状态表,并在分配NFT的过程中由区块链网络确定目标NFT和目标代持账户,下面结合图8进行说明。如图8所示,上述过程可以包括以下步骤802-832。其中,步骤802-818是在区块链系统中发行一组NFT的过程,步骤820-832是为买家账户分配NFT的过程。下面分别进行说明:
【发行NFT的过程】
步骤802,通证持有方向服务端发起主账户注册请求。
步骤804,服务端为通证持有方生成卖家标识。
上述步骤802-804可以参见图7实施例中步骤702-704的记载,此处不再赘述。
步骤806,服务端向区块链网络发起主账户注册交易。
服务端发起的主账户注册交易中可以包含上述卖家标识和/或生成主账户所需的必要信息。
步骤808,区块链网络响应于主账户注册交易生成主账户地址,并为通证持有方创建相应的主账户。
响应于上述主账户注册交易,区块链网络可以在对该交易共识通过的情况下,根据上述卖家标识和/或必要信息,按照预设规则生成主账户地址,然后在区块链网络中创建通证持有方的主账户,该账户的账户地址即为上述主账户地址。
其中,区块链网络可以调用并执行智能合约生成上述主账户地址以及创建主账户。例如,可以调用第一智能合约生成主账户地址,被生成的主账户地址可以被记录在该合约的合约账户中。进而,区块链网络可以将第一智能合约的合约地址作为函数入参调用第二智能合约,以由第二智能合约获取第一智能合约的合约账户中记录的主账户地址,并进一步创建相应的主账户。再例如,区块链网络也可以调用并执行第三智能合约,以完成生成主账户地址和创建相应的主账户的完整过程。当然,生成主账户地址和创建相应的主账户的具体逻辑也可以通过区块链的链代码实现,如区块链节点可以通过执行链代码中的上述逻辑实现主账户地址的生成以及主账户的创建,具体过程可以参见相关技术中的记载,此处不再赘述。
步骤810,区块链网络向服务端返回主账户地址。
步骤812,服务端维护卖家标识和主账户地址的对应关系。
步骤814,通证持有方向服务端发起通证发行请求。
步骤816,服务端向区块链网络发起通证发行交易。
区块链网络可以将所创建主账户的主账户地址返回至服务端,以由服务端维护买家标识和主账户地址之间的对应关系。进而,通证持有方可向服务端发起针对待分配资产的通证发行请求,该通证发行请求中可以携带卖家标识以及待分配资产的描述信息。
相应地,服务端可以根据上述对应关系确定卖家账户的主账户地址,并向区块链网络发起包含该主账户地址的通证发行交易。上述各步骤的具体可以参见前述步骤710-716的记载,此处不再赘述。
步骤818,区块链网络生成一组NFT和相应的一组代持账户。
步骤820,区块链网络创建一组代持账户,并在各个代持账户中分别记录不同的NFT。
与步骤808类似地,区块链网络生成一组NFT和一组代持账户的过程,也可以通过执行智能合约或者链代码实现。创建一组代持账户并分别记录不同的NFT的过程,可以参见前述步骤718的记载,此处不再赘述。
在一实施例中,在步骤812之后,可以不执行上述步骤814-820,而执行前述步骤714-718,即由服务端生成一组NFT和一组代持账户,不再赘述。
至此,区块链系统完成针对NFT的发行过程。
【分配NFT的过程】
步骤822,通证持有方向服务端发起通证获取请求。
步骤824,服务端向区块链网络发起通证分配交易。
秒杀时刻之后,通证持有方可以向服务端发起针对NFT的通证获取请求,该请求中包含通证持有方所对应买家账户的买家账户地址。响应于该请求,服务端可以向区块链网络发起相应的通证分配交易,该通证分配交易中包含上述卖家账户的地址。
步骤826,服务端遍历各个代持账户以确定目标代持账户和目标NFT。
响应于接收到的通证分配交易,区块链网络可以遍历已经创建的各个代持账户以确定目标代持账户和目标NFT。在遍历过程中,若当前代持账户持有尚未被分配的NFT且数量满足通证分配交易的分配需求,则将当前代持账户确定为目标代持账户;而若当前代持账户持有尚未被分配的NFT但数量仅满足所述通证分配交易的部分分配需求,则继续遍历,并将当前代持账户和继续遍历出的满足通证分配交易的剩余分配需求的代持账户共同确定为目标代持账户。
例如,每个通证获取请求可以请求获取一个NFT。区块链网络可以便利各个代持账户,并从代持账户中所持有的尚未被分配的NFT中选取目标NFT,相应地,持有待目标NFT的代持账户即为目标代持账户。
再例如,每个通证获取请求也可以请求获取多个NFT。以请求链各个NFT为例:在如图3所示场景下,若NFT-1和NFT-2已经被分配,其余NFT尚未被分配,则服务端在确定代持账户3中的NFT-2尚未被分配的情况下,可以将代持账户3作为目标代持账户并进一步遍历代持账户4,进而在确定该账户持有的NFT-4尚未被分配的情况下,将代持账户4也作为目标代持账户。通过上述遍历过程,服务端可以确定代持账户3和代持账户4为目标代持账户,相应的NFT-3和NFT-4为目标NFT。
又在如图4所示的场景下,若NFT-1和NFT-2-1已经被分配,其余NFT尚未被分配,则服务端在确定代持账户2中的NFT-2-2尚未被分配的情况下,可以将代持账户2作为目标代持账户并进一步遍历代持账户3;在确定代持账户3中的NFT-3-2尚未被分配的情况下,可以将该代持账户3作为目标代持账户并停止遍历——当前确定出的目标NFT(NFT-2-2和NFT-3-1)的数量已经满足通证获取请求的获取请求。可见,上述过程可以确定目标代持账户分别为代持账户2和代持账户3,而目标NFT分别为NFT-2-2和NFT-3-1。
在上述遍历过程中,遍历顺序和目标NFT的确定原则并非固定,可以根据实际情况进行调整。而且与前述实施例类似地,上述遍历过程可以通过执行智能合约或者链代码的形式实现,不再赘述。
步骤828,区块链网络为买家账户分配目标NFT。
步骤830,区块链网络向服务端返回通证分配结果。
步骤832,服务端向买家客户端返回秒杀成功消息。
步骤828-832的具体实施方式可以参见前述步骤730-734的记载,此处不再赘述。
图9是一示例性实施例提供的一种设备的示意结构图。请参考图9,在硬件层面,该设备包括处理器902、内部总线904、网络接口906、内存908以及非易失性存储器910,当然还可能包括其他功能所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器902从非易失性存储器910中读取对应的计算机程序到内存908中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图10,在一软件实施方式中,提出一种非同质化通证分配装置,包括:
发行交易发起单元1001,用于响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起用于发行一组非同质化通证的通证发行交易,以由所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
通证发行单元1002,用于响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易,以由所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
在一实施例中,所述发行交易发起单元1001还用于:
确定当前时刻尚未被分配的非同质化通证;
在尚未被分配的非同质化通证满足所述通证分配请求的分配需求的情况下,向区块链网络发起用于发行一组非同质化通证的通证发行交易。
在一实施例中,所述发行交易发起单元1001还用于:通过查询自身维护的通证状态表确定当前时刻尚未被分配的非同质化通证,所述通证状态表用于记录所述一组非同质化通证的分配状态;
所述装置还包括状态更新单元1003,用于在发起所述通证分配交易后,更新所述通证状态表中记录的所述分配状态。
在一实施例中,服务端本地维护有所述一组代持账户的代持账户地址,所述发行交易发起单元1001还用于:
从尚未被分配的非同质化通证中确定所述至少一个非同质化通证,以及持有所述至少一个非同质化通证的所述目标代持账户的目标代持账户地址;
向所述区块链网络发起用于发行一组非同质化通证的通证分配交易,所述通证分配交易中包含所述目标代持账户地址和所述至少一个非同质化通证。
请参考图11,在另一软件实施方式中,提出一种非同质化通证分配装置,包括:
发行交易接收单元1101,用于接收服务端基于通证持有方的主账户发起的通证发行交易,所述通证发行交易用于发行一组非同质化通证;
通证发行单元1102,用于响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
分配交易接收单元1103,用于接收所述服务端响应于通证获取请求发起的通证分配交易,所述通证获取请求由通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
通证分配单元1104,用于响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
在一实施例中,所述通证发行交易中包含所述主账户的主账户地址,所述通证发行单元1102还用于:
创建一组代持账户,并在各个代持账户中分别记录所述主账户地址。
在一实施例中,所述通证发行单元1102还用于:
在所述通证发行交易中包含由所述服务端生成的一组代持账户地址的情况下,根据各个代持账户地址分别创建相应的代持账户;或者,
根据所述一组非同质化通证生成相应的一组代持账户地址,并根据生成的代持账户地址分别创建相应的代持账户。
在一实施例中,所述通证分配交易中包含所述通证获取方的获取方账户的账户地址,所述通证分配单元1104还用于:
将所述目标代持账户中的至少一个非同质化通证写入所述获取方账户,并将所述至少一个非同质化通证从所述目标代持账户中删除;或者,
在所述目标代持账户中记录有非同质化通证的分配状态的情况下,将所述目标代持账户中的至少一个非同质化通证写入所述获取方账户,并将所述分配状态由未分配状态更新为已分配状态。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本申请不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性地,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。
Claims (23)
1.一种非同质化通证分配方法,包括:
服务端响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起通证发行交易,所述通证发行交易用于发行一组非同质化通证;
所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
所述服务端响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
2.根据权利要求1所述的方法,所述通证发行交易中包含所述主账户的主账户地址,所述区块链网络创建对应于所述主账户的一组代持账户,包括:
所述区块链网络创建一组代持账户,并在各个代持账户中分别记录所述主账户地址。
3.根据权利要求2所述的方法,所述区块链网络创建一组代持账户,包括:
在所述通证发行交易中包含一组代持账户地址的情况下,所述区块链网络根据各个代持账户地址分别创建相应的代持账户,其中所述一组代持账户地址由所述服务端生成;或者,
所述区块链网络根据所述一组非同质化通证生成相应的一组代持账户地址,并根据生成的代持账户地址分别创建相应的代持账户。
4.根据权利要求1所述的方法,所述服务端向所述区块链网络发起通证分配交易,包括:
所述服务端确定当前时刻尚未被分配的非同质化通证;
在尚未被分配的非同质化通证满足所述通证分配请求的分配需求的情况下,所述服务端向所述区块链网络发起通证分配交易。
5.根据权利要求4所述的方法,
所述服务端确定当前时刻尚未被分配的非同质化通证,包括:所述服务端通过查询自身维护的通证状态表确定当前时刻尚未被分配的非同质化通证,所述通证状态表用于记录所述一组非同质化通证的分配状态;
所述方法还包括:所述服务端在发起所述通证分配交易后,更新所述通证状态表中记录的所述分配状态。
6.根据权利要求1所述的方法,所述服务端维护有所述一组代持账户的代持账户地址,所述服务端向所述区块链网络发起通证分配交易,包括:
所述服务端从尚未被分配的非同质化通证中确定所述至少一个非同质化通证,以及持有所述至少一个非同质化通证的所述目标代持账户的目标代持账户地址;
所述服务端向所述区块链网络发起通证分配交易,所述通证分配交易中包含所述目标代持账户地址和所述至少一个非同质化通证。
7.根据权利要求1所述的方法,所述区块链网络从所述一组代持账户中确定目标代持账户,包括:
所述区块链网络从持有尚未被分配的非同质化通证的代持账户中选取目标代持账户。
8.根据权利要求7所述的方法,所述区块链网络从持有尚未被分配的非同质化通证的代持账户中选取目标代持账户,包括:
依次遍历各个代持账户;
若当前代持账户持有尚未被分配的非同质化通证且数量满足所述通证分配交易的分配需求,则将当前代持账户确定为所述目标代持账户;
若当前代持账户持有尚未被分配的非同质化通证但数量仅满足所述通证分配交易的部分分配需求,则继续遍历,并将当前代持账户和继续遍历出的满足所述通证分配交易的剩余分配需求的代持账户共同确定为所述目标代持账户。
9.根据权利要求1所述的方法,所述通证分配交易中包含所述通证获取方的获取方账户的账户地址,所述区块链网络将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方,包括:
所述区块链网络将所述目标代持账户中的至少一个非同质化通证写入所述获取方账户,并将所述至少一个非同质化通证从所述目标代持账户中删除;或者,
所述区块链网络在所述目标代持账户中记录有非同质化通证的分配状态的情况下,将所述目标代持账户中的至少一个非同质化通证写入所述获取方账户,并将所述分配状态由未分配状态更新为已分配状态。
10.根据权利要求1所述的方法,所述一组代持账户中的各个代持账户分别持有一个或多个非同质化通证。
11.一种非同质化通证分配方法,包括:
响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起用于发行一组非同质化通证的通证发行交易,以由所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易,以由所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效。
12.根据权利要求11所述的方法,所述向区块链网络发起用于发行一组非同质化通证的通证发行交易,包括:
确定当前时刻尚未被分配的非同质化通证;
在尚未被分配的非同质化通证满足所述通证分配请求的分配需求的情况下,向区块链网络发起用于发行一组非同质化通证的通证发行交易。
13.根据权利要求12所述的方法,
所述确定当前时刻尚未被分配的非同质化通证,包括:通过查询自身维护的通证状态表确定当前时刻尚未被分配的非同质化通证,所述通证状态表用于记录所述一组非同质化通证的分配状态;
所述方法还包括:在发起所述通证分配交易后,更新所述通证状态表中记录的所述分配状态。
14.根据权利要求11所述的方法,服务端本地维护有所述一组代持账户的代持账户地址,所述向区块链网络发起用于发行一组非同质化通证的通证发行交易,包括:
从尚未被分配的非同质化通证中确定所述至少一个非同质化通证,以及持有所述至少一个非同质化通证的所述目标代持账户的目标代持账户地址;
向所述区块链网络发起用于发行一组非同质化通证的通证分配交易,所述通证分配交易中包含所述目标代持账户地址和所述至少一个非同质化通证。
15.一种非同质化通证分配方法,包括:
接收服务端基于通证持有方的主账户发起的通证发行交易,所述通证发行交易用于发行一组非同质化通证;
响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
接收所述服务端响应于通证获取请求发起的通证分配交易,所述通证获取请求由通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
16.根据权利要求15所述的方法,所述通证发行交易中包含所述主账户的主账户地址,所述创建对应于所述主账户的一组代持账户,包括:
创建一组代持账户,并在各个代持账户中分别记录所述主账户地址。
17.根据权利要求16所述的方法,所述创建一组代持账户,包括:
在所述通证发行交易中包含由所述服务端生成的一组代持账户地址的情况下,根据各个代持账户地址分别创建相应的代持账户;或者,
根据所述一组非同质化通证生成相应的一组代持账户地址,并根据生成的代持账户地址分别创建相应的代持账户。
18.根据权利要求15所述的方法,所述通证分配交易中包含所述通证获取方的获取方账户的账户地址,所述将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方,包括:
将所述目标代持账户中的至少一个非同质化通证写入所述获取方账户,并将所述至少一个非同质化通证从所述目标代持账户中删除;或者,
在所述目标代持账户中记录有非同质化通证的分配状态的情况下,将所述目标代持账户中的至少一个非同质化通证写入所述获取方账户,并将所述分配状态由未分配状态更新为已分配状态。
19.一种非同质化通证分配系统,包括服务端和区块链网络,其中:
所述服务端响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起通证发行交易,所述通证发行交易用于发行一组非同质化通证;
所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
所述服务端响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
20.一种非同质化通证分配装置,包括:
发行交易发起单元,用于响应于通证持有方发起的通证发行请求,基于所述通证持有方的主账户向区块链网络发起用于发行一组非同质化通证的通证发行交易,以由所述区块链网络响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
通证发行单元,用于响应于通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起的通证获取请求,向所述区块链网络发起通证分配交易,以由所述区块链网络响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方;其中,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效。
21.一种非同质化通证分配装置,包括:
发行交易接收单元,用于接收服务端基于通证持有方的主账户发起的通证发行交易,所述通证发行交易用于发行一组非同质化通证;
通证发行单元,用于响应于所述通证发行交易,创建对应于所述主账户的一组代持账户,并将所述一组非同质化通证记录在所述一组代持账户中,其中各个代持账户持有的非同质化通证互不相同;
分配交易接收单元,接收所述服务端响应于通证获取请求发起的通证分配交易,所述通证获取请求由通证获取方在预定义的通证分配时刻之后针对所述一组非同质化通证发起,所述通证获取请求无法在所述通证分配时刻之前发起,或者在所述通证分配时刻之前发起的通证获取请求无效;
通证分配单元,用于响应于所述通证分配交易,从所述一组代持账户中确定目标代持账户,并将所述目标代持账户中的至少一个非同质化通证分配至所述通证获取方。
22.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-18中任一项所述的方法。
23.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-18中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111552915.XA CN114331428A (zh) | 2021-12-17 | 2021-12-17 | 一种非同质化通证分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111552915.XA CN114331428A (zh) | 2021-12-17 | 2021-12-17 | 一种非同质化通证分配方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114331428A true CN114331428A (zh) | 2022-04-12 |
Family
ID=81052824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111552915.XA Pending CN114331428A (zh) | 2021-12-17 | 2021-12-17 | 一种非同质化通证分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114331428A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115345617A (zh) * | 2022-10-19 | 2022-11-15 | 浙江毫微米科技有限公司 | 一种非同质化通证的生成方法及装置 |
CN116436702A (zh) * | 2023-06-13 | 2023-07-14 | 浙江毫微米科技有限公司 | 基于非同质化通证的访问方法、装置、计算机和存储介质 |
JP7324357B1 (ja) | 2022-12-21 | 2023-08-09 | Kddi株式会社 | 情報処理装置及び情報処理方法 |
-
2021
- 2021-12-17 CN CN202111552915.XA patent/CN114331428A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115345617A (zh) * | 2022-10-19 | 2022-11-15 | 浙江毫微米科技有限公司 | 一种非同质化通证的生成方法及装置 |
JP7324357B1 (ja) | 2022-12-21 | 2023-08-09 | Kddi株式会社 | 情報処理装置及び情報処理方法 |
JP2024089259A (ja) * | 2022-12-21 | 2024-07-03 | Kddi株式会社 | 情報処理装置及び情報処理方法 |
CN116436702A (zh) * | 2023-06-13 | 2023-07-14 | 浙江毫微米科技有限公司 | 基于非同质化通证的访问方法、装置、计算机和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230281192A1 (en) | Method of generating globally verifiable unique identifiers using a scalable interlinked blockchain structure | |
JP6880188B2 (ja) | データアクセスのための方法、システム、および装置 | |
CN110020902B (zh) | 跨链存证方法及访问方法、装置、电子设备 | |
JP6754495B2 (ja) | ブロックチェーンを介したアイデンティティと証明書の保護及び検証とのための方法及びシステム | |
CN111213340B (zh) | 选择用于密码功能的证明委托并使其安全 | |
CN114331428A (zh) | 一种非同质化通证分配方法及装置 | |
US20200042984A1 (en) | Digital Contracts in Blockchain Environments | |
WO2022161181A1 (zh) | 基于区块链的数据处理的方法、装置及电子设备 | |
US20150180872A1 (en) | System and method for hierarchical resource permissions and role management in a multitenant environment | |
CN110032571A (zh) | 业务流程处理方法、装置、存储介质及计算设备 | |
TWI727281B (zh) | 基於區塊鏈的資料處理方法及裝置、電子設備 | |
JP2019511059A (ja) | リスク情報を出力し、リスク情報を構築するための方法及びデバイス | |
WO2022008996A1 (en) | Privacy preserving architecture for permissioned blockchains | |
US11968301B2 (en) | Decentralized asset identifiers for cross-blockchain networks | |
US11361324B2 (en) | Blockchain-issued verifiable credentials for portable trusted asset claims | |
WO2020019799A1 (zh) | 对象选取方法及装置、电子设备 | |
CN110060153B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN108985930A (zh) | 信息处理方法及装置、区块链节点及存储介质 | |
US20220004647A1 (en) | Blockchain implementation to securely store information off-chain | |
TW202029093A (zh) | 基於區塊鏈的發票作廢方法和裝置、電子設備 | |
JP2023538497A (ja) | 編集可能なブロックチェーン | |
CN110033367A (zh) | 基于区块链的合同记录方法及装置、电子设备 | |
CN116961876A (zh) | 用于区块链的虚拟资源管理方法、装置、设备及存储介质 | |
CN112650748A (zh) | 业务线索分配方法、装置、电子设备及可读存储介质 | |
US11620364B2 (en) | Layered-infrastructure blockchain-based system for software license distribution |
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 |