虚拟资产交易方法、装置、电子设备和可读存储介质
文献发布时间:2023-06-19 16:12:48
技术领域
本发明涉及信息处理技术领域,具体涉及一种虚拟资产交易方法、装置、电子设备和计算机可读存储介质。
背景技术
NFT(Non-Fungible Token,非同质化代币),通常是指开发者在以太坊平台上根据如ERC721或ERC1155等标准/协议所发行的代币,它的特性为不可分割、不可替代、独一无二的,简单来说,采用如ERC721或ERC1155等标准/协议而发行的代币就叫做NFT。一切现实中的物品都可转化区块链中的NFT代币,因此随着近年来区块链技术的快速发展,基于区块链中的NFT进行的交易也越来越多。
现有NFT虚拟资产,往往是由单个用户通过私钥交易进行购买及转让的。但是,本申请实施例的发明人在实际应用过程中发现:有些NFT虚拟资产往往售价非常昂贵,单个用户无法承受资金购买;同时NFT虚拟资产购买后的权益也往往只能单个用户所有,如NFT的虚拟资产使用权等。
可见,现有NFT虚拟资产交易存在由于价格过高而导致无法交易、以及NFT虚拟资产权益只能单个用户享有的问题。
发明内容
本发明实施例提供一种虚拟资产交易方法、装置、电子设备和计算机可读存储介质,可以避免现有NFT虚拟资产交易存在由于价格过高而导致无法交易、以及NFT虚拟资产权益只能单个用户享有的问题。
第一方面,本申请实施例提供一种虚拟资产交易方法,包括:
基于预设的第一合约账号生成目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额;
基于所述众筹提案信息,确定向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;
将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;
当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。
第二方面,本申请实施例还提供一种虚拟资产交易装置,包括:
生成单元,用于基于预设的第一合约账号生成目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额;
确定单元,用于基于所述众筹提案信息,确定向所述第一合约账号用于存入购买所述目标虚拟资产的资金的目标购买者;
加入单元,用于将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;
交易单元,用于当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。
在一些实施例中,所述虚拟资产交易装置还包括创建单元,所述基于预设的第一合约账号生成目标虚拟资产的众筹提案信息之前,所述创建单元具体用于:
获取第一持有者的账号创建请求,其中,所述账号创建请求携带有所述第一持有者的区块链地址、所述第一持有者的第一私钥对应的密钥;
基于所述账号创建请求生成第一合约账号,其中,所述第一合约账号的持有者密钥列表中包含所述第一私钥对应的密钥。
在一些实施例中于,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之后,所述交易单元具体用于:
获取所述持有者密钥列表中任一密钥对应的第二持有者对所述目标虚拟资产的第一转让请求;
获取所述持有者密钥列表对应的各持有者对所述第一转让请求的同意投票结果;
基于所述同意投票结果,确定所述第一转让请求的同意金额;
当所述同意金额符合预设条件时,生成所述目标虚拟资产的售卖提案信息,其中,所述售卖提案信息包括所述目标虚拟资产的目标售卖金额。
在一些实施例中,所述已筹集金额包括所述目标购买者的目标出资金额,所述当所述同意金额符合预设条件时,生成所述目标虚拟资产的售卖提案信息之后,所述交易单元具体用于:
基于所述售卖提案信息和预设的第二合约账号,向所述第一合约账号存入所述目标售卖金额的资金;
将所述目标虚拟资产由所述第一合约账号转让至所述第二合约账号;
根据所述目标众筹金额、所述目标出资金额和所述目标售卖金额,确定所述目标购买者的账号提现金额;
按照所述账号提现金额,将所述目标售卖金额的资金由所述第一合约账号提现至所述目标购买者的区块链地址。
在一些实施例中,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之后,所述交易单元具体用于:
基于所述持有者密钥列表中任一密钥对应的第三持有者对所述目标虚拟资产的第二转让请求,生成所述目标虚拟资产的转让请求信息,其中,所述转让请求信息包括所述第三持有者对所述目标虚拟资产的转让金额;
确定向所述第一合约账号存入所述转让金额的资金的受让者;
将所述受让者的第二私钥对应的密钥加入所述持有者密钥列表中;
将所述第三持有者的第三私钥对应的密钥从所述持有者密钥列表中删除。
在一些实施例中,所述虚拟资产交易装置还包括使用单元,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之后,所述使用单元具体用于:
获取所述持有者密钥列表任一密钥对应的第四持有者对所述目标虚拟资产的使用请求,其中,所述使用请求携带有采用所述第四持有者的第四私钥对所述第四持有者的声明数据进行签名后的目标验证凭证;
通过所述目标虚拟资产的服务提供方,获取所述目标验证凭证的验证结果;
当所述验证结果为验证通过时,通过所述服务提供方向所述第四持有者提供所述目标虚拟资产的使用权益。
在一些实施例中,所述使用单元具体用于:
向所述服务提供方发送所述目标验证凭证;
通过所述服务提供方,向预设的凭证发行者查询所述目标验证凭证的有效性,得到所述验证结果。
在一些实施例中,所述目标购买者包括多个,每个所述目标购买者的目标出资金额相同,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之前,所述交易单元具体用于:
确定所述目标购买者的数量;
当所述目标购买者的数量达到预设数量时,确定所述已筹集金额达到所述目标众筹金额。
在一些实施例中,所述目标购买者包括多个,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之前,所述交易单元具体用于:
将各所述目标购买者的目标出资金额累加,得到所述第一合约账号内的已筹集金额;
若所述已筹集金额大于或等于所述目标众筹金额,则确定所述第一合约账号内的已筹集金额达到所述目标众筹金额。
在一些实施例中,所述确定单元具体用于:
接收意向购买者针对所述众筹提案信息的购买请求,其中,所述购买请求携带有所述意向购买者对所述目标虚拟资产的出资金额;
确定所述已筹集金额是否小于所述目标众筹金额;
若所述已筹集金额小于所述目标众筹金额,则将所述意向购买者的出资金额的资金存入所述第一合约账号,并将所述意向购买者确定为所述目标购买者。
第三方面,本申请实施例还提供一种电子设备,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种虚拟资产交易方法中的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种虚拟资产交易方法中的步骤。
本申请实施例通过基于预设第一合约账号生成的目标虚拟资产的众筹提案信息,确定向第一合约账号存入用于购买目标虚拟资产的资金的目标购买者;将目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;并在第一合约账号内的已筹集金额达到目标虚拟资产的目标众筹金额时,将目标虚拟资产设置为第一合约账号的虚拟资产,此时第一合约账号成功购买目标虚拟资产,第一合约账号成为目标虚拟资产的控制者;一方面,由于向第一合约账号存入用于购买目标虚拟资产的资金的用户(即目标购买者)可以有多个,因此可以实现目标虚拟资产进行众筹购买;由此,可以避免现有NFT虚拟资产交易存在由于价格过高而导致无法交易的问题;另一方面,由于目标虚拟资产被第一合约账号成功购买后,第一合约账号成为目标虚拟资产的控制者,而所有密钥已加入第一合约账号的持有者密钥列表中的目标购买者,都成为第一合约账号的持有者,因此使得多个持有者可以同时享有目标虚拟资产的使用、转让等权益;由此,可以避免NFT虚拟资产权益只能单个用户享有的问题。可见,本申请实施例解决了现有NFT虚拟资产交易存在由于价格过高而导致无法交易、以及NFT虚拟资产权益只能单个用户享有的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的虚拟资产交易方法的一种实施例流程示意图;
图2是本申请实施例中VC系统交互的场景示意图;
图3是本申请实施例中实现虚拟资产交易所采用的区块链智能合约的一种架构示意图;
图4是本申请实施例中提供的目标虚拟资产进行转让的一种流程示意图;
图5是本申请实施例中提供的目标虚拟资产进行转让的另一种流程示意图;
图6是本申请实施例中提供的目标虚拟资产进行使用的一种流程示意图;
图7是本申请实施例提供的虚拟资产交易装置的结构示意图;
图8是本申请实施例提供的电子设备的结构示意图;
图9是本申请实施例提供的虚拟交易资产系统的一种示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。同时,在本申请实施例的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
本申请实施例提供一种虚拟资产交易方法、装置、电子设备和计算机可读存储介质。
具体地,本申请实施例虚拟资产交易方法可以由电子设备执行,其中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、触控屏幕、游戏机、或者个人电脑(Personal Computer,PC)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
例如,该电子设备可以是移动终端,该移动终端可以通过网络基于预设的第一合约账号生成目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额;基于所述众筹提案信息,确定向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。
其中,该虚拟资产交易装置具体可以集成在电子设备中,在一些实施例中,该虚拟资产交易装置还可以集成在多个电子设备中,比如,虚拟资产交易装置可以集成在多个服务器中,由多个服务器来实现本申请的虚拟资产交易方法。又如,虚拟资产交易装置可以集成在多个终端中,由多个终端来实现本申请的虚拟资产交易方法。
在一些实施例中,服务器也可以以终端的形式来实现,比如,可以将个人电脑设置为服务器来集成该虚拟资产交易装置,由个人电脑设置成的服务器来实现本申请的虚拟资产交易方法。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
参照图1和图3,图1是本申请实施例提供的虚拟资产交易方法的一种流程示意图,本申请实施例中以虚拟资产交易基于区块链的智能合约为例,说明本申请实施例中提供的虚拟资产交易方法。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。例如,可以先执行步骤103再执行步骤104,或者先执行步骤104再执行步骤102,又或者步骤103和步骤104同时执行。在本实施例中,该虚拟资产交易方法包括步骤101~104,其中:
101、基于预设的第一合约账号生成目标虚拟资产的众筹提案信息。
其中,众筹提案信息可以包括目标虚拟资产的众筹提案编号、目标虚拟资产的资产编号、目标虚拟资产的售卖合约地址(即目标虚拟资产当前所属的DID账号,也即当前出售目标虚拟资产的DID账号)、目标虚拟资产的目标众筹金额、众筹提案的众筹投票详情(暂时为空)、目标虚拟资产已经筹集到的购买金额(暂时为空)、众筹提案是否成功(暂时为未成功)等信息。
其中,预设的第一合约账号是DID账号,本申请实施例中DID账号为区块链账户。区块链账户有着三大要素:私有密钥(private key,简称私钥)、公开密钥(public key,简称公钥)、地址。私钥、公钥是密码学里非对称加密算法的内容。顾名思义,公钥是可以公开的,而私钥则要进行安全保管。私钥是由随机种子生成的,公钥是将私钥通过算法推导出来。由于公钥太长,为了简便实用,就出现了“地址”,地址是公钥推导出来的。这些推导过程是单向不可逆的,即:地址不能推出公钥,公钥不能推出私钥。
其中,虚拟资产可以是现实中的物品转化成的区块链中的NFT代币,例如游戏虚拟道具转换成的区块链中的NFT代币。每个虚拟资产对应一个资产编号,如资产编号为“10010”。
其中,目标虚拟资产是第一合约账号需购买的虚拟资产。
为了使得多个用户可以同时众筹购买同一虚拟资产,本申请实施例中的第一合约账号的持有者可以有多个。在步骤101之前,还可以创建用于购买目标虚拟资产的第一合约账号,示例性地,创建第一合约账号具体可以包括如下步骤a1~a2:
a1、获取第一持有者的账号创建请求。
其中,所述账号创建请求携带有所述第一持有者的区块链地址、所述第一持有者的第一私钥对应的密钥、以及其他参数等信息。
其中,第一私钥对应的密钥可以是第一私钥,也可以是由第一私钥推到得到的密钥,比如第一私钥推导得到公钥,即可以将第一私钥直接作为第一私钥对应的密钥、也可以将第一私钥对应的公钥作为第一私钥对应的密钥。同理,后文中,如第二私钥对应的密钥、第三私钥对应的密钥等类推适用,例如,第二私钥对应的密钥可以将第二私钥直接作为第二私钥对应的密钥、也可以将第二私钥对应的公钥作为第二私钥对应的密钥;第三私钥对应的密钥可以将第三私钥直接作为第三私钥对应的密钥、也可以将第三私钥对应的公钥作为第三私钥对应的密钥。
示例性,可以在可验证声明(Verifiable Credential,VC)系统中创建第一合约账号。
分布式身份标识(Decentralized Identifiers,DID)是一种去中心化的可验证的数字标识符,具有分布式、自主可控、跨链复用等特点。实体可自主完成DID账号的注册、解析、更新或者撤销操作。DID账号具体解析为DID Document,DID Document包括DID账号的唯一标识码,公钥列表和公钥的详细信息(持有者、加密算法、密钥状态等),以及DID账号的持有者的其他属性描述。
VC提供了一种规范来描述实体所具有的某些属性,实现基于证据的信任。DID持有者,可以通过VC向其他实体(个人、组织、具体事物等)证明自己的某些属性是可信的。
如图2所示,图2是本申请实施例中VC系统交互的场景示意图,该VC系统包括发行者(Issuer)、持有者(Holder,即用户)、验证者(Verifier,即服务提供方)、标识符注册机构(Verifiable Data Registry)。其中:
发行者Issuer是拥有用户数据并能开具VC的实体,如政府、银行、大学等机构和组织。
持有者Holder是向发行者请求、收到、持有VC的实体;开具的VC可以自我保存,方便以后再次使用,例如保存在钱包里。持有者可以向验证者出示VC,以供验证者验证持有者的身份。
验证者Verifier接收VC并进行验证,由此可以提供给出示VC的持有者某种类型的服务。
标识符注册机构是用于维护DID的数据库,如某条区块链、分布式账本。
为了更好地理解本申请实施例虚拟资产交易方法的交易过程,先介绍VC系统的交互过程。如图2所示,在VC系统中,主要包括如下几部分交互过程:
1、持有者Holder在申请身份VC之前向标识符注册机构(如区块链网络)注册DID账号,该DID账号的文档包括DID账号的唯一标识码和持有者Holder私钥对应的公钥。(即在区块链注册并保存DID)。
2、持有者Holder向发行者Issuer(如学校等机构或组织)申请身份VC。
3、发行者Issuer查询持有者Holder在标识符注册机构中注册的DID账号,以验证持有者Holder的用户身份的和有效性,并验证持有者Holder的DID账号是否注册、是否有效。
4、发行者Issuer验证持有者Holder通过后,给持有者Holder发行一个身份VC,持有者Holder本地保存好身份VC。
5、持有者Holder向验证者Verifier(如购物网站)提供身份VC请求验证。
6、验证者Verifier在标识符注册机构验证持有者Holder及发行者Issuer的有效性(如验证持有者Holder是不是在标识符注册机构注册,发行者Issuer是不是身份发行者)。
7、验证者Verifier验证持有者Holder和发行者Issuer通过后,确定持有者Holder的有效性,验证者Verifier向持有者Holder提供服务(如持有者Holder可在购物网站购物)。
其中,第一持有者是指向标识符注册机构申请注册第一合约账号的持有者Holder,具体是指向标识符注册机构申请注册第一合约账号的持有者Holder的区块链账户。
其中,第一私钥是指第一持有者的私钥。
本文中以第一合约账号是DID账号、第一合约账号的持有者密钥列表是DID账号的公钥列表、第一私钥对应的密钥是第一私钥对应的公钥为例进行说明。
示例性地,如图2所示,步骤a1中,第一持有者向VC系统中的标识符注册机构发送携带有第一持有者的区块链地址(如“0x2c7536e3605d9c”)、及第一持有者的第一私钥对应的公钥(如“4e3b81af9c2234cad09d679ce6035ed139234”)等信息的账号创建请求。
a2、基于所述账号创建请求生成第一合约账号,其中,所述第一合约账号的持有者密钥列表中包含所述第一私钥对应的密钥。
其中,第一合约账号是第一持有者在标识符注册机构注册的DID账号。
其中,持有者密钥列表是指第一合约账号的密钥列表,用于关联存储第一合约账号的持有者的区块链地址和第一合约账号的持有者私钥对应的密钥。其中,持有者密钥列表具体可以是第一合约账号的公钥列表,具体用于关联存储第一合约账号的持有者的区块链地址和第一合约账号的持有者私钥对应的公钥。
示例性地,如图2所示,标识符注册机构在接收到第一持有者发送的账号创建请求后,生成一个新DID账号(如“did:crowdfunding:0x8688f14154d2ab5E05229a7C3FB2393d02e68E06”),并将第一私钥对应的公钥和第一持有者的区块链地址关联存储至该新DID账号的公钥列表中;标识符注册机构中保存该新DID账号的区块链地址及其公钥列表;至此,完成第一合约账号的创建,该新DID账号作为第一合约账号。
示例性地,如图3所示,在区块链智能合约架构中,步骤a1~a2的实现具体包括如下执行步骤:
1、用户(即第一持有者)对区块链发起部署合约交易,输入参数包括新DID账号的默认控制者controller(即第一持有者的区块链地址),默认控制者公钥publicKey(即第一持有者私钥对应的公钥),其他参数otherParams。
2、保存默认控制者公钥publicKey(即第一持有者私钥对应的公钥)到新DID账号的持有者公钥列表中。其中,第一持有者同样需要向第一合约账号存入用于购买目标虚拟资产的资金,第一持有者的私钥对应的公钥才会添加到新DID账号的持有者公钥列表中,第一持有者同样是目标虚拟资产的目标购买者。
4、保存新DID账号的DID文档的其他数据信息otherParams,并完成新DID账号(即第一合约账号)的创建。
请参照图3,图3是本申请实施例中实现虚拟资产交易所采用的区块链智能合约的一种架构示意图,在第一合约账号创建完成后,基于区块链智能合约,用户采用第一合约账号创建用于多个持有者共同购买一个虚拟资产的众筹提案。例如,此时,在步骤101中,可以通过第一持有者基于第一合约账号输入待购买的目标虚拟资产的售卖合约地址(如“0xF57B2c51dED3A29e6891aba85459d600256Cf317”)、目标虚拟资产的目标众筹金额(如“99ETH”)、目标虚拟资产的资产编号(如“10010”)等信息,从而发起对目标虚拟资产的众筹提案;众筹提案发起成功后,将返回一个众筹提案编号,从而得到包括目标虚拟资产的众筹提案编号、资产编号、售卖合约地址、目标众筹金额等众筹提案信息。示例性地,如图3所示,在区块链智能合约架构中,步骤101的实现具体包括如下执行步骤:
1、智能合约判断众筹提案发起用户必须是持有者公钥列表中对应的持有者。
2、新建一个唯一提案编号。
3、新建一个众筹提案,众筹提案内容包括众筹提案编号(proposalId)、目标虚拟资产的售卖合约地址(nftSellContract)、目标虚拟资产的目标众筹金额(nftPrice)、目标虚拟资产的资产编号(nftCoinId)、众筹提案的众筹投票详情(voteList,暂时为空)、目标虚拟资产已经筹集到的购买金额(hasFundAmount,暂时为空)、提案是否成功(ifSuccess,暂时为未成功)。
4、返回提案编号给用户。
102、基于所述众筹提案信息,确定向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者。
其中,目标购买者是指参与众筹购买目标虚拟资产的用户。
步骤102中确定目标购买者的方式有多种,示例性地,包括:
(1)将向第一合约账号存入购买目标虚拟资产的资金的用户,直接确定为目标购买者。此时,步骤102具体可以包括如下步骤1021A~1022A:
1021A、确定向第一合约账号存入购买目标虚拟资产的资金的意向购买者、以及意向购买者在第一合约账号中的存入金额。
1022A、将向第一合约账号存入购买目标虚拟资产的资金的意向购买者,确定为目标购买者;并将意向购买者在第一合约账号中的存入金额,作为目标购买者对目标虚拟资产的目标出资金额。
(2)在检测到有意向购买者向第一合约账号存入购买目标虚拟资产的资金时,先检测第一合约账号中用于购买目标虚拟资产的已筹集金额是否已达到目标众筹金额;当已筹集金额未达到目标众筹金额时,再将意向购买者确定为目标购买者。此时,步骤102具体可以包括如下步骤1021B~1023B:
1021B、接收意向购买者针对所述众筹提案信息的购买请求。
其中,意向购买者是指发出购买目标虚拟资产请求的区块链账户。
其中,购买请求可以携带有意向购买者对目标虚拟资产的出资金额、目标虚拟资产的众筹提案编号、意向购买者的区块链地址、意向购买者的公钥等信息。
示例性地,在步骤101生成目标虚拟资产的众筹提案信息之后,各区块链账号可以查看到目标虚拟资产的众筹提案信息。意向购买者在查看到目标虚拟资产的众筹提案信息后,在确保账户钱包金额足够且账户授权合约能进行资产转移情况下,可以向第一合约账号发起交易;具体地,意向购买者输入目标虚拟资产的众筹提案编号、意向购买者的区块链地址、意向购买者的公钥、意向购买者的出资金额等信息,从而发起对目标虚拟资产的购买请求。
1022B、确定所述众筹提案的已筹集金额是否小于所述目标众筹金额。
1023B、若所述已筹集金额小于所述目标众筹金额,则将所述意向购买者的出资金额存入所述第一合约账号,并将所述意向购买者确定为所述目标购买者。
其中,已筹集金额是指第一合约账号中针对目标虚拟资产已经筹集到的购买金额。
示例性地,每次确定目标购买者时,都会将购买请求的携带的相关信息保存到目标虚拟资产的众筹提案中,并累加目标购买者的出资金额,作为第一合约账号内的已筹集金额。步骤1022B中,直接检测已累加的目标购买者的出资金额是否小于目标众筹金额。
若已累加的目标购买者的出资金额小于目标众筹金额,则可以确定已筹集金额小于目标众筹金额,步骤1023B中可以直接将意向购买者确定为目标购买者,并将意向购买者的出资金额的资金作为目标购买者的目标出资金额的资金,存入第一合约账号。
若已累加的目标购买者的出资金额大于或等于目标众筹金额,则可以确定已筹集金额大于或等于目标众筹金额,证明众筹提案已经众筹完成,不作进一步处理或向意向购买者发送购买失败的提示信息。
103、将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中。
其中,持有者密钥列表是用于存储目标购买者的密钥的列表,具体可以是用于存储第一合约账号的持有者的公钥的列表。
示例性地,在确定目标购买者之后,可以将目标购买者的公钥和目标购买者的区块链地址关联存储至持有者密钥列表中。此时,目标购买者成为了持有者密钥列表对应的第一合约账号的持有者之一,目标购买者也就成为了第一合约账号的控制者,从而便于目标购买者后续对目标虚拟资产进行使用、转让等。
104、当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。
其中,已筹集金额达到目标众筹金额可以具体可以是已筹集金额大于或等于目标众筹金额。
示例性地,如图3所示,可以通过调用区块链的智能合约中的ERC721或ERC1155接口功能,实现将目标虚拟资产转移到第一合约账号,从而实现将目标虚拟资产设置第一合约账号的虚拟资产。
通过基于预设第一合约账号生成的目标虚拟资产的众筹提案信息,确定向第一合约账号存入用于购买目标虚拟资产的资金的目标购买者;将目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;并在第一合约账号内的已筹集金额达到目标虚拟资产的目标众筹金额时,将目标虚拟资产设置为第一合约账号的虚拟资产,此时第一合约账号成功购买目标虚拟资产,第一合约账号成为目标虚拟资产的控制者;一方面,由于向第一合约账号存入用于购买目标虚拟资产的资金的用户(即目标购买者)可以有多个,因此可以实现目标虚拟资产进行众筹购买;由此,可以避免现有NFT虚拟资产交易存在由于价格过高而导致无法交易的问题;另一方面,由于目标虚拟资产被第一合约账号成功购买后,第一合约账号成为目标虚拟资产的控制者,而所有密钥已加入第一合约账号的持有者密钥列表中的目标购买者,都成为第一合约账号的持有者,实现一个DID账号由多个用户控制,使得同一虚拟资产可以由多个用户同时享有,实现同一虚拟资产的权益可由多个用户享受;因此使得多个持有者可以同时享有目标虚拟资产的使用、转让等权益;由此,可以避免NFT虚拟资产权益只能单个用户享有的问题。可见,本申请实施例解决了现有NFT虚拟资产交易存在由于价格过高而导致无法交易、以及NFT虚拟资产权益只能单个用户享有的问题。
为了判定第一合约账号内的已筹集金额是否已经足以购买目标虚拟资产,以确定是否进行第一合约账号购买目标虚拟资产的交易。在步骤104之前还可以进一步包括:确定第一合约账号内的已筹集金额是否达到目标众筹金额。“确定第一合约账号内的已筹集金额是否达到目标众筹金额”的方式有多种,示例性地,包括:
(一)目标购买者包括多个,第一合约账号限制了每个目标购买者购买目标虚拟资产的金额相同。此时,可以通过检测目标购买者的数量是否达到预设数量来判定已筹集金额是否达到目标众筹金额,“确定第一合约账号内的已筹集金额是否达到目标众筹金额”具体可以包括如下步骤b1~b2:
b1、确定所述目标购买者的数量。
b2、当所述目标购买者的数量达到预设数量时,确定所述已筹集金额达到所述目标众筹金额。
例如,目标虚拟资产的目标众筹金额为99元,第一合约账号限制了每个目标购买者只能购买33元,则预设数量为99/33=3人,当检测到目标购买者的数量达到3人时,可以直接确定已筹集金额达到目标众筹金额。
由于每个目标购买者购买目标虚拟资产的金额相同,通过确定目标购买者的数量是否达到预设数量,来确定已筹集金额是否达到目标众筹金额,可以快速地确定已筹集金额是否达到目标众筹金额。
(二)无论第一合约账号是否限制每个目标购买者购买目标虚拟资产的金额,直接将各目标购买者的目标出资金额累加作为已筹集金额,并与目标众筹金额进行对比,以确定已筹集金额是否达到目标众筹金额。此时,“确定第一合约账号内的已筹集金额是否达到目标众筹金额”具体可以包括如下步骤c1~c2:
c1、将各所述目标购买者的目标出资金额累加,得到所述第一合约账号内的已筹集金额。
c2、若所述已筹集金额大于或等于所述目标众筹金额,则确定所述第一合约账号内的已筹集金额达到所述目标众筹金额。
例如,在生成目标虚拟资产的众筹提案信息之后,向第一合约账号存入目标虚拟资产的目标出资金额的资金的目标购买者有:区块链账户1、2、3,区块链账户1、2、3分别向第一合约账号存入的资金分别为:20元、30元、49元。假设目标虚拟资产的目标众筹金额为99元,由于各目标购买者(即区块链账户1、2、3)的目标出资金额(分别为20元、30元、49元)累加,得到第一合约账号内的已筹集金额(即99元),等于目标虚拟资产的目标众筹金额99元;因此,可以确定第一合约账号内的已筹集金额达到目标众筹金额。
示例性地,如图3所示,在区块链智能合约架构中,步骤102~104的实现具体包括如下执行步骤:
1、判断当前的众筹提案存在,且未结束。通过众筹提案编号(proposalId)获取到提案详情,若详情存在且为成功,则继续。
2、调用区块链的智能合约中ERC20接口,转移目标购买者的目标出资金额的资金到第一合约账号内。其中,ERC20接口是用于进行虚拟货币交易的接口。
3、若目标购买者尚未加入到第一合约账号的持有者密钥列表(controllerMap)中,则可将目标购买者区块链地址及公钥到持有者密钥列表,目标购买者成为第一合约账号的控制者。
4、新建一个用户投票,投票内容包括,众筹提案编号(proposalId)、目标购买者的目标出资金额(fundAmount)、目标购买者的区块链地址。将用户投票保存到众筹提案内,并累加目标虚拟资产已经筹集到的购买金额(hasFundAmount,即已筹集金额)。
5、判断已筹集金额是否已经达到上线,例如上述众筹提案的资产编号“10010”,是否已经筹集到超过目标虚拟资产的目标众筹金额“99元”。
6、若超过99元,则设置众筹提案成功,并调用售卖合约地址的购买接口,以完成目标虚拟资产的众筹购买。
7、NFT合约会扣减第一合约账号内的已筹集金额(99元),将已筹集金额转让给售卖人(其他用户/也可能是DID账号),NFT合约的转让接口将目标虚拟资产转让给第一合约账号。
进一步地,目标虚拟资产归属第一合约账号之后,对应密钥在第一合约账号的持有者密钥列表中的持有者(简称为“第一合约账号的持有者”)还可以对目标虚拟资产进行转让操作。其中,第一合约账号的持有者对目标虚拟资产进行转让操作的方式有多种,示例性地,包括:
一)一个持有者发起转让交易的请求,多个持有者同意后,全部转让目标虚拟资产。此时,如图4所示“对目标虚拟资产进行转让操作”,具体可以包括如下步骤401~404,其中:
401、获取所述持有者密钥列表中任一密钥对应的第二持有者对所述目标虚拟资产的第一转让请求。
其中,第一转让请求是指在需对目标虚拟资产全部转让时,第二持有者对目标虚拟资产发起的转让请求。
其中,第二持有者是指持有者密钥列表对应的各持有者中,转让目标虚拟资产的持有者。
示例性地,持有者密钥列表对应的任一持有者都可以发起转让目标虚拟资产的转让请求,任一持有者(即第二持有者)输入目标虚拟资产的众筹提案编号、目标虚拟资产的售卖合约地址、目标虚拟资产的资产编号、目标虚拟资产的目标售卖金额等转让请求信息,从而发起对目标虚拟资产进行转让的第一转让请求。
示例性地,如图3所示,在区块链智能合约架构中,步401的实现具体包括如下执行步骤:
1、判断原先的众筹提案存在。
2、判断转让交易发起者(即第二持有者)必须是持有者密钥列表(controllerMap)中对应的持有者。
3、新建一个递增的唯一提案编号。
4、新建一个售卖提案,售卖提案内容包括:售卖提案编号(lastProposalId)、众筹提案编号(crowdfundingProposalId)、售卖合约地址(nftSellContract)、目标售卖价格(nftSellPrice)、资产编号(nftCoinId)、第一合约账号的持有者中的投票用户地址列表(voteAddressList,暂时为空)、同意金额(hasAgreeUserCoinTotal,暂时未0),售卖提案是否成功(ifSuccess,暂时未成功)。
402、获取所述持有者密钥列表对应的各持有者对所述第一转让请求的同意投票结果。
其中,同意投票结果用于指示持有者密钥列表对应的各持有者是否同意转让目标虚拟资产。
例如,第一合约账号的持有者密钥列表对应的持有者分别为:用户A、用户B和用户C,各持有者对第一转让请求的同意投票结果为:用户A同意转让目标虚拟资产、用户B同意转让目标虚拟资产、用户C不同意转让目标虚拟资产。
403、基于所述同意投票结果,确定所述第一转让请求的同意金额。
其中,同意金额是指同意转让目标虚拟资产的持有者的出资金额的总和。
例如,第一合约账号众筹购买目标虚拟资产的目标众筹金额为99元,持有者密钥列表对应的持有者分别为:用户A、用户B和用户C,针对目标虚拟资产用户A、B、C目标出资金额分别为:29元、50元、20元,若A和用户B同意转让目标虚拟资产、用户C不同意转让目标虚拟资产,则第一转让请求的同意金额为79元。
404、当所述同意金额符合预设条件时,生成所述目标虚拟资产的售卖提案信息。
其中,售卖提案信息是指目标虚拟资产的售卖提案的相关信息,所述售卖提案信息可以包括目标虚拟资产的售卖提案编号、目标虚拟资产的目标售卖金额、目标虚拟资产的众筹提案编号、目标虚拟资产的售卖合约地址、目标虚拟资产的资产编号等信息。
其中,预设条件可以是同意金额大于或等于目标众筹金额的一半,或者是同意金额大于或等于目标众筹金额的三分之二等等,具体可以根据实际业务场景需求而设置,此处对预设条件的具体设置形式不做限制。
例如,预设条件为同意金额大于或等于目标众筹金额的一半,若第一合约账号众筹购买目标虚拟资产的目标众筹金额为99元、第一转让请求的同意金额为79元,则同意金额大于目标众筹金额的一半,因此可以将第二持有者输入目标虚拟资产的众筹提案编号、目标虚拟资产的售卖合约地址、目标虚拟资产的资产编号、目标虚拟资产的目标售卖金额等信息,作为目标虚拟资产的售卖提案信息。
示例性地,以预设条件为同意金额大于或等于目标众筹金额的一半为例,如图3所示,在区块链智能合约架构中,步402~404的实现具体包括如下执行步骤:
1、判断转让交易发起者(即第二持有者)必须是持有者密钥列表(controllerMap)中对应的持有者。
2、通过众筹提案内容,获取目标购买者的目标出资金额。
3、保存第一合约账号的持有者中的投票用户的区块链地址、同意金额到售卖提案内容中。例如,用户B的目标出资金额为“50元”,若用户B投票,则保存已经同意的金额“50”。
4、判断同意金额是否达到目标众筹金额的一半。如,目标虚拟资产的目标众筹金额为99元,同意金额为50元,则判断同意金额50≥99/2。
5、若同意金额达到目标众筹金额的一半,设置售卖提案成功。
6、调用售卖合约地址的出售接口,输入售卖的目标虚拟资产的资产编号、目标售卖金额等信息,以寄售目标虚拟资产,等待用户购买。
通过获取所述持有者密钥列表中任一密钥对应的第二持有者对目标虚拟资产的第一转让请求,并获取持有者密钥列表对应的各持有者对第一转让请求的同意投票结果,确定第一转让请求的同意金额;当同意金额符合预设条件时生成目标虚拟资产的售卖提案信息,可以实现目标虚拟资产可以由多个持有者进行转让或售卖。
当生成目标虚拟资产的售卖提案信息之后,除第一合约账号外的其他DID账号即可购买目标虚拟资产。此外,其他DID账号从第一合约账号购买目标虚拟资产成功后,第一合约账号的持有者密钥列表中各持有者还可以提现目标虚拟资产售卖后所得到的资金。即,步骤404生成目标虚拟资产的售卖提案信息之后,还可以包括如下步骤d1~d4:
d1、基于所述售卖提案信息和预设的第二合约账号,向所述第一合约账号存入所述目标售卖金额的资金。
其中,第二合约账号是在标识符注册机构注册的DID账号。
其中,目标售卖金额是指目标虚拟资产由第一合约账号转让给第二合约账号的出售价格。
其他DID账号(如第二合约账号)购买目标虚拟资产的过程与上述步骤101~104的过程(即第一合约账号购买目标虚拟资产的过程)类似,可以参照上述的相关说明,为简化表述,此处不再赘述。
d2、将所述目标虚拟资产由所述第一合约账号转让至所述第二合约账号。
示例性地,将目标虚拟资产所属的区块链地址由第一合约账号的区块链地址调整为第二合约账号的区块链地址。
d3、根据所述目标众筹金额、所述目标出资金额和所述目标售卖金额,确定所述目标购买者的账号提现金额。
其中,已筹集金额包括目标购买者的目标出资金额。
其中,账号提现金额是指目标虚拟资产由第一合约账号转让给第二合约账号之后,目标售卖金额中目标购买者可提现的金额。
示例性地,目标购买者可以按照众筹提案时的出资比例提现目标售卖金额的资金。此时,此时步骤d3具体可以包括:根据目标众筹金额和目标购买者的目标出资金额,确定目标购买者在众筹提案时的出资比例;根据目标购买者在众筹提案时的出资比例、目标售卖金额,确定目标购买者的账号提现金额。
例如,第一合约账号众筹购买目标虚拟资产的目标众筹金额为99元,持有者密钥列表对应的持有者(即各目标购买者)分别为:用户A、用户B和用户C,针对目标虚拟资产用户A、B、C目标出资金额分别为:29元、50元、20元。首先,可以计算出目标购买者(用户A、B、C)在众筹提案时的出资比例分别为:29/99、50/99、20/99。假设目标虚拟资产由第一合约账号转让给第二合约账号的目标售卖金额为198,则目标购买者(用户A、B、C)的账号提现金额分别为:58元、100元、40元。
d4、按照所述账号提现金额,将所述目标售卖金额的资金由所述第一合约账号提现至所述目标购买者的区块链地址。
示例性地,如图3所示,在区块链智能合约架构中,步d1~d4的实现具体包括如下执行步骤:
1、判断转让交易发起者(即第二持有者)必须是持有者密钥列表(controllerMap)中对应的持有者。
2、判断售卖提案必须是存在且已经成功。
3、通过售卖合约查询售卖是否已经售卖成功,即目标虚拟资产的持有者将不再是第一合约账号。
4、通过众筹提案内容,获取目标购买者的目标出资金额,并计算目标购买者的出资比例。
5、根据目标购买者的出资比例,换算目标购买者可提现的账号提现金额。例如,目标虚拟资产NFT的目标售卖价格为199元、目标购买者(用户B)在众筹购买时的目标出资金额为50元、目标虚拟资产NFT原先购买目标众筹金额为99元,则用户B将可提现100.5ETH。
6、第一合约账号将调用ERC20接口转让账号提现金额只目标购买者,目标购买者提现成功。
通过目标众筹金额、目标出资金额和目标售卖金额,确定目标购买者的账号提现金额,并按照账号提现金额,将目标售卖金额的资金由第一合约账号提现至目标购买者的区块链地址,使得目标购买者可以与出资金额等比例地享有售卖提现金额,提高了虚拟资产的买卖公平性。
二)一个持有者发起转让交易的请求,无需其他持有者同意,即可转让该持有者拥有的目标虚拟资产部分。此时,如图5所示,“对目标虚拟资产进行转让操作”,具体可以包括如下步骤501~504,其中:
501、基于所述持有者密钥列表中任一密钥对应的第三持有者对所述目标虚拟资产的第二转让请求,生成所述目标虚拟资产的转让请求信息。
其中,第三持有者是指持有者密钥列表对应的各持有者中,转让目标虚拟资产的持有者。第二持有者和第三持有者的区别在于:第二持有者是申请转让全部目标虚拟资产的持有者,第三持有者是申请转让其持有目标虚拟资产部分的持有者。
其中,所述转让请求信息可以包括第三持有者对目标虚拟资产的转让金额(即第三持有者的持有金额)、目标虚拟资产的众筹提案编号、目标虚拟资产的售卖合约地址、目标虚拟资产的资产编号等信息。
其中,第二转让请求是指第三持有者在需对其持有的目标虚拟资产转让时,对目标虚拟资产发起的转让请求。
示例性地,在区块链智能合约架构中,第三持有者通过输入目标虚拟资产的众筹提案编号、目标虚拟资产的售卖合约地址、目标虚拟资产的资产编号、第三持有者的持有金额等转让请求信息,从而发起对目标虚拟资产进行转让的第二转让请求,从而生成第三持有者的转让提案。其中,第三持有者的持有金额的转让提案的内容包括:目标虚拟资产的众筹提案编号、第三持有者的持有金额目标虚拟资产的售卖合约地址、目标虚拟资产的资产编号等信息。从而,可以得到目标虚拟资产的转让请求信息。
502、确定向所述第一合约账号存入所述转让金额的资金的受让者。
其中,受让者是指受让第三持有者所持有的目标虚拟资产部分的区块链账户。
步骤502中确定受让者的方式与步骤102中确定目标购买者的方式类似,具体可以参照上述相关说明,此处不再赘述。
503、将所述受让者的第二私钥对应的密钥加入所述持有者密钥列表中。
步骤503的实现与步骤103的实现类似,具体可以参照上述相关说明,此处不再赘述。
504、将所述第三持有者的第三私钥对应的密钥从所述持有者密钥列表中删除。
其中,第三私钥第三持有者的私钥。
通过将受让者的第二私钥对应的密钥加入持有者密钥列表中,并将受让者的第二私钥对应的密钥加入持有者密钥列表中,可以使得目标虚拟资产只转让单个用户享受的份额,避免了一部分用户想要出售目标虚拟资产、一部分用户不想出售目标虚拟资产的问题,保证了用户的虚拟资产的正常交易。
进一步地,目标虚拟资产归属第一合约账号之后,第一合约账号的持有者还可以对目标虚拟资产进行使用操作。示例性地,如图6所示,“第一合约账号的持有者对目标虚拟资产进行使用操作”,具体可以包括如下步骤601~603:
601、获取所述持有者密钥列表任一密钥对应的第四持有者对所述目标虚拟资产的使用请求。
其中,所述使用请求携带有采用所述第四持有者的第四私钥对所述第四持有者的声明数据进行签名后的目标验证凭证。
其中,第四持有者的声明数据具体可以包括目标虚拟资产的售卖合约地址、目标虚拟资产的资产编号、第一合约账号等信息。
其中,第四持有者是指持有者密钥列表对应的各持有者中,发起对目标虚拟资产进行使用的请求的持有者。
其中,第四私钥是指第四持有者的私钥。
其中,目标验证凭证是指采用第四私钥对第四持有者的声明数据进行签名后所得到的验证凭证。
示例性地,如图2所示,首先,第四持有者可以将目标虚拟资产的售卖合约地址、目标虚拟资产的资产编号等信息作为第四持有者的声明数据,采用第四私钥对第四持有者的声明数据进行签名,得到第四持有者的目标验证凭证。然后,第四持有者向目标虚拟资产的服务提供方发送携带有目标验证凭证的、对目标虚拟资产进行使用的使用请求。通过服务提供方,可以接收到第四持有者发送的使用请求。
602、通过所述目标虚拟资产的服务提供方,获取所述目标验证凭证的验证结果。
服务提供方在接收到第四持有者发送的使用请求后,会对目标验证凭证进行验证,以确定第四持有者的身份真实性和有效性、以及目标虚拟资产的真实性和有效性,得到验证结果。如图2所示,示例性地,通过目标虚拟资产的服务提供方验证目标验证凭证的过程,具体可以包括:向所述服务提供方发送所述目标验证凭证;通过所述服务提供方,向预设的凭证发行者查询所述目标验证凭证的有效性,得到所述验证结果。
603、当所述验证结果为验证通过时,通过所述服务提供方向所述第四持有者提供所述目标虚拟资产的使用权益。
示例性地,如图3所示,在区块链智能合约架构中,步骤601~603的实现具体包括如下执行步骤:
1、持有者密钥列表对应的用户(即第四持有者)可使用自己的私钥,签名生成一个NFT持有证明的目标验证凭证。具体地,将目标虚拟资产的资产编号(nffcoinId)、目标虚拟资产的合约地址(nftContractAddr),第一合约账号的区块链地址作为声明数据,使用第四持有者的私钥privateKey对声明数据进行签名,最终生成自证明的VC(即目标验证凭证)。
2、第四持有者将目标验证凭证出示给验证者(如游戏方、购物网站)等能使用目标虚拟资产的网站或应用。
3、验证者验证目标验证凭证,其验证流程具体可以如下:
3.1、从第一合约账号的持有者密钥列表获取第四持有者的密钥。
3.2、通过从持有者密钥列表获取第四持有者的密钥,验证目标验证凭证的签名是否正确。
3.3、若上述目标验证凭证的签名有效,验证者继续查询目标虚拟资产的合约地址(nftContractAddr),以查询目标虚拟资产的持有者是不是第一合约账号。
3.4、若目标虚拟资产的持有者是第一合约账号,且第四持有者的签名正确,则说明第四持有者是该目标虚拟资产的控制者/持有者,验证通过。
4、若目标验证凭证验证通过,第四持有者即可在验证者处享受目标虚拟资产的使用权益。
通过获取持有者密钥列表任一密钥对应的第四持有者对目标虚拟资产的使用请求;通过目标虚拟资产的服务提供方,获取目标验证凭证的验证结果;当验证结果为验证通过时,通过服务提供方向第四持有者提供目标虚拟资产的使用权益;由于只要验证通过,持有者密钥列表任一密钥对应的持有者都可以享受目标虚拟资产的使用权益,故使得同一虚拟资产可以由多个用户共同享受使用权益,避免了NFT虚拟资产权益只能单个用户享有的问题。
如图9所示,为了更好地实施以上方法,本发明实施例还提供一种虚拟资产交易系统,该虚拟资产交易系统包括交易管理端、用户端、服务提供方。
其中,交易管理端具体可以是如图2所示VC系统中的标识符注册机构(如区块链网络)。
其中,用户端具体可以是如图2所示VC系统中的持有者终端。
其中,服务提供方具体可以是如图2所示VC系统中的验证者终端。
其中,交易管理端具体可以用于执行如下应用于交易管理端的虚拟资产交易方法,该应用于交易管理端的虚拟资产交易方法包括:
接收所述用户端发送的目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额、用于购买所述目标虚拟资产的第一合约账号、以及向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;
基于所述众筹提案信息,确定向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;
将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;
当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。
进一步地,该应用于交易管理端的虚拟资产交易方法具体包括:
接收所述用户端发送的第一持有者的账号创建请求,其中,所述账号创建请求携带有所述第一持有者的区块链地址、所述第一持有者的第一私钥对应的密钥;
响应于所述账号创建请求,基于所述账号创建请求生成第一合约账号,其中,所述第一合约账号的持有者密钥列表中包含所述第一私钥对应的密钥。
进一步地,该应用于交易管理端的虚拟资产交易方法具体包括:
接收所述用户端发送的第一转让请求,其中,所述第一转让请求是所述持有者密钥列表中任一密钥对应的第二持有者对所述目标虚拟资产的转让请求;
响应于所述第一转让请求,获取所述持有者密钥列表对应的各持有者对所述第一转让请求的同意投票结果;
基于所述同意投票结果,确定所述第一转让请求的同意金额;
当所述同意金额符合预设条件时,生成所述目标虚拟资产的售卖提案信息,其中,所述售卖提案信息包括所述目标虚拟资产的目标售卖金额。
进一步地,所述已筹集金额包括所述目标购买者的目标出资金额,该应用于交易管理端的虚拟资产交易方法具体包括:
接收所述用户端发送的受让信息,其中,所述受让信息包括所述售卖提案信息、以及向所述第一合约账号存入所述目标售卖金额的资金的第二合约账号;
将所述目标虚拟资产由所述第一合约账号转让至所述第二合约账号;
根据所述目标众筹金额、所述目标出资金额和所述目标售卖金额,确定所述目标购买者的账号提现金额;
按照所述账号提现金额,将所述目标售卖金额的资金由所述第一合约账号提现至所述目标购买者的区块链地址。
进一步地,该应用于交易管理端的虚拟资产交易方法具体包括:
接收所述用户端发送的第二转让请求,其中,所述第二转让请求携带有所述目标虚拟资产的转让请求信息,所述第二转让请求是所述持有者密钥列表中任一密钥对应的第三持有者对所述目标虚拟资产的转让请求,所述转让请求信息包括所述第三持有者对所述目标虚拟资产的转让金额;
响应于所述第二转让请求,确定向所述第一合约账号存入所述转让金额的资金的受让者;
将所述受让者的第二私钥对应的密钥加入所述持有者密钥列表中;
将所述第三持有者的第三私钥对应的密钥从所述持有者密钥列表中删除。
进一步地,所述目标购买者包括多个,每个所述目标购买者的目标出资金额相同,该应用于交易管理端的虚拟资产交易方法具体包括:确定所述目标购买者的数量;
当所述目标购买者的数量达到预设数量时,确定所述已筹集金额达到所述目标众筹金额。
进一步地,所述目标购买者包括多个,该应用于交易管理端的虚拟资产交易方法具体包括:
将各所述目标购买者的目标出资金额累加,得到所述第一合约账号内的已筹集金额;
若所述已筹集金额大于或等于所述目标众筹金额,则确定所述第一合约账号内的已筹集金额达到所述目标众筹金额。
进一步地,该应用于交易管理端的虚拟资产交易方法具体包括:
接收所述用户端针对所述众筹提案信息触发的购买请求,其中,所述购买请求携带有意向购买者对所述目标虚拟资产的出资金额;
响应于所述购买请求,确定所述已筹集金额是否小于所述目标众筹金额;
若所述已筹集金额小于所述目标众筹金额,则将所述意向购买者的出资金额的资金存入所述第一合约账号,并将所述意向购买者确定为所述目标购买者。
其中,用户端具体可以用于执行如下应用于用户端的虚拟资产交易方法,该应用于用户端的虚拟资产交易方法包括:
向所述交易管理端发送目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额、用于购买所述目标虚拟资产的第一合约账号、以及向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;
接收所述交易管理端基于所述众筹提案信息反馈的第一结果信息,其中,所述第一结果信息用于指示所述目标购买者的密钥已加入所述第一合约账号的持有者密钥列表中;
接收当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,所述交易管理端反馈的第二结果信息,其中,所述第二结果信息用于指示所述目标虚拟资产已设置为所述第一合约账号的虚拟资产。
进一步地,该应用于用户端的虚拟资产交易方法具体包括:
向所述交易管理端发送第一持有者的账号创建请求,以触发所述交易管理端基于所述账号创建请求生成第一合约账号;其中,所述账号创建请求携带有所述第一持有者的区块链地址、所述第一持有者的第一私钥对应的密钥;其中,所述第一合约账号的持有者密钥列表中包含所述第一私钥对应的密钥。
进一步地,该应用于用户端的虚拟资产交易方法具体包括:
向所述交易管理端发送第一转让请求,以触发所述交易管理端获取所述持有者密钥列表对应的各持有者对所述第一转让请求的同意投票结果;基于所述同意投票结果,确定所述第一转让请求的同意金额;当所述同意金额符合预设条件时,生成所述目标虚拟资产的售卖提案信息;其中,所述第一转让请求是所述持有者密钥列表中任一密钥对应的第二持有者对所述目标虚拟资产的转让请求;其中,所述售卖提案信息包括所述目标虚拟资产的目标售卖金额。
进一步地,该应用于用户端的虚拟资产交易方法具体包括:
向所述交易管理端发送受让信息,以触发所述交易管理端将所述目标虚拟资产由所述第一合约账号转让至所述第二合约账号;根据所述目标众筹金额、所述目标出资金额和所述目标售卖金额,确定所述目标购买者的账号提现金额;按照所述账号提现金额,将所述目标售卖金额的资金由所述第一合约账号提现至所述目标购买者的区块链地址;其中,所述受让信息包括所述售卖提案信息、以及向所述第一合约账号存入所述目标售卖金额的资金的第二合约账号。
进一步地,该应用于用户端的虚拟资产交易方法具体包括:
向所述交易管理端发送第二转让请求,以触发所述交易管理端确定向所述第一合约账号存入所述转让金额的资金的受让者;将所述受让者的第二私钥对应的密钥加入所述持有者密钥列表中;将所述第三持有者的第三私钥对应的密钥从所述持有者密钥列表中删除;其中,所述第二转让请求携带有所述目标虚拟资产的转让请求信息,所述第二转让请求是所述持有者密钥列表中任一密钥对应的第三持有者对所述目标虚拟资产的转让请求,所述转让请求信息包括所述第三持有者对所述目标虚拟资产的转让金额。
进一步地,该应用于用户端的虚拟资产交易方法具体包括:
向所述服务提供方发送所述持有者密钥列表任一密钥对应的第四持有者对所述目标虚拟资产的使用请求,其中,所述使用请求携带有采用所述第四持有者的第四私钥对所述第四持有者的声明数据进行签名后的目标验证凭证;
接收当所述目标验证凭证的验证结果为验证通过时,所述服务提供方响应于所述使用请求向所述第四持有者提供的所述目标虚拟资产的使用权益。
进一步地,该应用于用户端的虚拟资产交易方法具体包括:
向所述服务提供方发送所述目标验证凭证,以触发所述服务提供方,向预设的凭证发行者查询所述目标验证凭证的有效性,得到所述验证结果。
进一步地,所述目标购买者包括多个,每个所述目标购买者的目标出资金额相同,该应用于用户端的虚拟资产交易方法具体包括:
向所述交易管理端发送目标虚拟资产的众筹提案信息,以触发所述交易管理端确定所述目标购买者的数量;当所述目标购买者的数量达到预设数量时,确定所述已筹集金额达到所述目标众筹金额。
进一步地,所述目标购买者包括多个,该应用于用户端的虚拟资产交易方法具体包括:
向所述交易管理端发送目标虚拟资产的众筹提案信息,以触发所述交易管理端将各所述目标购买者的目标出资金额累加,得到所述第一合约账号内的已筹集金额;若所述已筹集金额大于或等于所述目标众筹金额,则确定所述第一合约账号内的已筹集金额达到所述目标众筹金额。
进一步地,该应用于用户端的虚拟资产交易方法具体包括:
向所述交易管理端发送针对所述众筹提案信息触发的购买请求,以触发所述交易管理端确定所述已筹集金额是否小于所述目标众筹金额;若所述已筹集金额小于所述目标众筹金额,则将所述意向购买者的出资金额的资金存入所述第一合约账号,并将所述意向购买者确定为所述目标购买者;其中,所述购买请求携带有意向购买者对所述目标虚拟资产的出资金额。
具体地,该应用于交易管理端的虚拟资产交易方法的具体实现、该应用于用户端的虚拟资产交易方法的具体实现及有益效果,可以参考上述图1至图6所示的虚拟资产交易方法的相关说明,为简化表述,此处不再赘述。
为了更好地实施以上方法,本发明实施例还提供一种虚拟资产交易装置,该虚拟资产交易装置具体可以集成在电子设备中,比如,计算机设备,该计算机设备可以为终端、服务器等设备。
其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以虚拟资产交易装置具体集成在智能手机为例,对本发明实施例的方法进行详细说明。
例如,如图7所示,该虚拟资产交易装置可以包括:
生成单元701,用于基于预设的第一合约账号生成目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额;
确定单元702,用于基于所述众筹提案信息,确定向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;
加入单元703,用于将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;
交易单元704,用于当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。
在一些实施例中,所述虚拟资产交易装置还包括创建单元(图中未示出),所述基于预设的第一合约账号生成目标虚拟资产的众筹提案信息之前,所述创建单元具体用于:
获取第一持有者的账号创建请求,其中,所述账号创建请求携带有所述第一持有者的区块链地址、所述第一持有者的第一私钥对应的密钥;
基于所述账号创建请求生成第一合约账号,其中,所述第一合约账号的持有者密钥列表中包含所述第一私钥对应的密钥。
在一些实施例中于,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之后,所述交易单元704具体用于:
获取所述持有者密钥列表中任一密钥对应的第二持有者对所述目标虚拟资产的第一转让请求;
获取所述持有者密钥列表对应的各持有者对所述第一转让请求的同意投票结果;
基于所述同意投票结果,确定所述第一转让请求的同意金额;
当所述同意金额符合预设条件时,生成所述目标虚拟资产的售卖提案信息,其中,所述售卖提案信息包括所述目标虚拟资产的目标售卖金额。
在一些实施例中,所述已筹集金额包括所述目标购买者的目标出资金额,所述当所述同意金额符合预设条件时,生成所述目标虚拟资产的售卖提案信息之后,所述交易单元704具体用于:
基于所述售卖提案信息和预设的第二合约账号,向所述第一合约账号存入所述目标售卖金额的资金;
将所述目标虚拟资产由所述第一合约账号转让至所述第二合约账号;
根据所述目标众筹金额、所述目标出资金额和所述目标售卖金额,确定所述目标购买者的账号提现金额;
按照所述账号提现金额,将所述目标售卖金额的资金由所述第一合约账号提现至所述目标购买者的区块链地址。
在一些实施例中,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之后,所述交易单元704具体用于:
基于所述持有者密钥列表中任一密钥对应的第三持有者对所述目标虚拟资产的第二转让请求,生成所述目标虚拟资产的转让请求信息,其中,所述转让请求信息包括所述第三持有者对所述目标虚拟资产的转让金额;
确定向所述第一合约账号存入所述转让金额的资金的受让者;
将所述受让者的第二私钥对应的密钥加入所述持有者密钥列表中;
将所述第三持有者的第三私钥对应的密钥从所述持有者密钥列表中删除。
在一些实施例中,所述虚拟资产交易装置还包括使用单元(图中未示出),所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之后,所述使用单元具体用于:
获取所述持有者密钥列表任一密钥对应的第四持有者对所述目标虚拟资产的使用请求,其中,所述使用请求携带有采用所述第四持有者的第四私钥对所述第四持有者的声明数据进行签名后的目标验证凭证;
通过所述目标虚拟资产的服务提供方,获取所述目标验证凭证的验证结果;
当所述验证结果为验证通过时,通过所述服务提供方向所述第四持有者提供所述目标虚拟资产的使用权益。
在一些实施例中,所述使用单元具体用于:
向所述服务提供方发送所述目标验证凭证;
通过所述服务提供方,向预设的凭证发行者查询所述目标验证凭证的有效性,得到所述验证结果。
在一些实施例中,所述目标购买者包括多个,每个所述目标购买者的目标出资金额相同,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之前,所述交易704单元具体用于:
确定所述目标购买者的数量;
当所述目标购买者的数量达到预设数量时,确定所述已筹集金额达到所述目标众筹金额。
在一些实施例中,所述目标购买者包括多个,所述当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产之前,所述交易单元704具体用于:
将各所述目标购买者的目标出资金额累加,得到所述第一合约账号内的已筹集金额;
若所述已筹集金额大于或等于所述目标众筹金额,则确定所述第一合约账号内的已筹集金额达到所述目标众筹金额。
在一些实施例中,所述确定单元702具体用于:
接收意向购买者针对所述众筹提案信息的购买请求,其中,所述购买请求携带有所述意向购买者对所述目标虚拟资产的出资金额;
确定所述已筹集金额是否小于所述目标众筹金额;
若所述已筹集金额小于所述目标众筹金额,则将所述意向购买者的出资金额的资金存入所述第一合约账号,并将所述意向购买者确定为所述目标购买者。
由上可知,本实施例的虚拟资产交易装置可以由生成单元701基于预设的第一合约账号生成目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额;由确定单元702基于所述众筹提案信息,确定向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;由加入单元703将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;由交易单元704当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。一方面,由于向第一合约账号存入用于购买目标虚拟资产的资金的用户(即目标购买者)可以有多个,因此可以实现目标虚拟资产进行众筹购买;由此,可以避免现有NFT虚拟资产交易存在由于价格过高而导致无法交易的问题;另一方面,由于目标虚拟资产被第一合约账号成功购买后,第一合约账号成为目标虚拟资产的控制者,而所有密钥已加入第一合约账号的持有者密钥列表中的目标购买者,都成为第一合约账号的持有者,因此使得多个持有者可以同时享有目标虚拟资产的使用、转让等权益;由此,可以避免NFT虚拟资产权益只能单个用户享有的问题。可见,本申请实施例解决了现有NFT虚拟资产交易存在由于价格过高而导致无法交易、以及NFT虚拟资产权益只能单个用户享有的问题。
相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图8所示,图8为本申请实施例提供的电子设备的结构示意图。该电子设备800包括有一个或者一个以上处理核心的处理器801、有一个或一个以上计算机可读存储介质的存储器802及存储在存储器802上并可在处理器上运行的计算机程序。其中,处理器801与存储器802电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器801是电子设备800的控制中心,利用各种接口和线路连接整个电子设备800的各个部分,通过运行或加载存储在存储器802内的软件程序和/或模块,以及调用存储在存储器802内的数据,执行电子设备800的各种功能和处理数据,从而对电子设备800进行整体监控。
在本申请实施例中,电子设备800中的处理器801会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现各种功能:
基于预设的第一合约账号生成目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额;
基于所述众筹提案信息,确定向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;
将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;
当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图8所示,电子设备800还包括:触控显示屏803、射频电路804、音频电路805、输入单元806以及电源807。其中,处理器801分别与触控显示屏803、射频电路804、音频电路805、输入单元806以及电源807电性连接。本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏803可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏803可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器801,并能接收处理器801发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器801以确定触摸事件的类型,随后处理器801根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏803而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏803也可以作为输入单元806的一部分实现输入功能。
射频电路804可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
音频电路805可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路805可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路805接收后转换为音频数据,再将音频数据输出处理器801处理后,经射频电路804以发送给比如另一电子设备,或者将音频数据输出至存储器802以便进一步处理。音频电路805还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
输入单元806可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源807用于给电子设备800的各个部件供电。可选的,电源807可以通过电源管理系统与处理器801逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源807还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图8中未示出,电子设备800还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的电子设备,可以基于预设第一合约账号生成的目标虚拟资产的众筹提案信息,确定向第一合约账号存入用于购买目标虚拟资产的资金的目标购买者;将目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;并在第一合约账号内的已筹集金额达到目标虚拟资产的目标众筹金额时,将目标虚拟资产设置为第一合约账号的虚拟资产,此时第一合约账号成功购买目标虚拟资产,第一合约账号成为目标虚拟资产的控制者;一方面,由于向第一合约账号存入用于购买目标虚拟资产的资金的用户(即目标购买者)可以有多个,因此可以实现目标虚拟资产进行众筹购买;由此,本实施例提供的电子设备可以避免现有NFT虚拟资产交易存在由于价格过高而导致无法交易的问题;另一方面,由于目标虚拟资产被第一合约账号成功购买后,第一合约账号成为目标虚拟资产的控制者,而所有密钥已加入第一合约账号的持有者密钥列表中的目标购买者,都成为第一合约账号的持有者,因此使得多个持有者可以同时享有目标虚拟资产的使用、转让等权益;由此,本实施例提供的电子设备可以避免NFT虚拟资产权益只能单个用户享有的问题。可见,本实施例提供的电子设备解决了现有NFT虚拟资产交易存在由于价格过高而导致无法交易、以及NFT虚拟资产权益只能单个用户享有的问题。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种虚拟资产交易方法中的步骤。例如,该计算机程序可以执行如下步骤:
基于预设的第一合约账号生成目标虚拟资产的众筹提案信息,其中,所述众筹提案信息包括所述目标虚拟资产的目标众筹金额;
基于所述众筹提案信息,确定向所述第一合约账号存入用于购买所述目标虚拟资产的资金的目标购买者;
将所述目标购买者的密钥加入所述第一合约账号的持有者密钥列表中;
当所述第一合约账号内的已筹集金额达到所述目标众筹金额时,将所述目标虚拟资产设置为所述第一合约账号的虚拟资产。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种虚拟资产交易方法中的步骤,因此,可以实现本申请实施例所提供的任一种虚拟资产交易方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种虚拟资产交易方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
- 虚拟资产交易方法、装置、电子设备和可读存储介质
- 资产交易方法、装置、电子设备及可读存储介质