CN118052638A - 基于区块链的虚拟资源转移方法以及相关设备 - Google Patents
基于区块链的虚拟资源转移方法以及相关设备 Download PDFInfo
- Publication number
- CN118052638A CN118052638A CN202211429986.5A CN202211429986A CN118052638A CN 118052638 A CN118052638 A CN 118052638A CN 202211429986 A CN202211429986 A CN 202211429986A CN 118052638 A CN118052638 A CN 118052638A
- Authority
- CN
- China
- Prior art keywords
- virtual
- resource
- virtual resource
- timestamp
- resources
- 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
- 238000012546 transfer Methods 0.000 title claims abstract description 296
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012545 processing Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004927 fusion Effects 0.000 claims description 9
- 230000009286 beneficial effect Effects 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 238000005259 measurement Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了一种基于区块链的虚拟资源转移方法以及相关设备,可以获取第一客户端发送的资源转移信息;调用区块链外的预言机任务节点获取链下当前的第一时间戳;基于第一时间戳将第一虚拟资源账号中资源数量下的虚拟资源转移到智能合约中;当检测到第二客户端发送的虚拟资源获取请求时,调用预言机任务节点获取链下当前的第二时间戳;根据第一时间戳和第二时间戳确定当前第二虚拟资源账号可获取到的虚拟资源的目标资源数量;从智能合约中提取目标资源数量的虚拟资源;将目标资源数量下的虚拟资源转移到第二虚拟资源账号中。本申请可以在区块出块时间不稳定的场景下准确地进行时间度量,提高了收款方获取资金的稳定性,有利于维护收款方的利益。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种基于区块链的虚拟资源转移方法以及相关设备。
背景技术
区块链是一种带有数据“散列验证”功能的数据库。区块也即数据块,可以按照时间顺序将数据区块组合成一种链式结构,并利用密码学算法,以分布式记账的方式,集体维护数据库的可靠性。所有数据块按时间顺序相连,从而形成区块链;在使用安全支付系统时通常需要结合区块链进行使用。
在目前的相关技术中,通过区块链进行数字资产的转移,通常是在流支付协议中以区块高度作为链上的时间度量,进而进行链上资金的流式支付,但是在出块时间不稳定的链上,这种支付方式下收款方获得资金的时间不确定,这样可能会损害收款对象的权益。
发明内容
本申请实施例提供一种基于区块链的虚拟资源转移方法以及相关设备,相关设备可以包括基于区块链的虚拟资源转移装置、电子设备、计算机可读存储介质和计算机程序产品,可以在区块出块时间不稳定的场景下准确地进行时间度量,提高了收款方获取资金的稳定性,有利于维护收款方的利益。
本申请实施例提供一种基于区块链的虚拟资源转移方法,适用于所述区块链中的任意节点,包括:
获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;
通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;
基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;
根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;
从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
相应的,本申请实施例提供一种基于区块链的虚拟资源转移装置,适用于所述区块链中的任意节点,包括:
第一获取单元,用于获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;
第二获取单元,用于通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;
第一转移单元,用于基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
第三获取单元,用于当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;
确定单元,用于根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;
第二转移单元,用于从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选的,在本申请的一些实施例中,所述资源转移信息还包括资源转移对应的预设结束时间戳;
所述确定单元可以包括第一确定子单元、计算子单元和第二确定子单元,如下:
所述第一确定子单元,用于根据所述第一时间戳和所述预设结束时间戳,确定资源转移总时长;
计算子单元,用于根据所述资源转移总时长和所述资源数量,计算资源转移率;
第二确定子单元,用于基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
可选的,在本申请的一些实施例中,所述第二确定子单元具体可以用于对所述第一时间戳和所述第二时间戳进行差值运算,得到资源已转移时长;将所述资源转移率和所述资源已转移时长进行融合运算,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
可选的,在本申请的一些实施例中,所述第二获取单元可以包括签名子单元和第一获取子单元,如下:
所述签名子单元,用于基于所述第一客户端对应的密钥,对所述资源转移信息进行签名处理;
第一获取子单元,用于当所述资源转移信息签名完成时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
可选的,在本申请的一些实施例中,所述第三获取单元可以包括签名验证子单元和第二获取子单元,如下:
所述签名验证子单元,用于当检测到第二客户端发送的虚拟资源获取请求时,基于所述第二客户端对应的密钥,对所述资源转移信息进行签名验证处理;
第二获取子单元,用于当签名验证通过时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳。
可选的,在本申请的一些实施例中,所述第二获取单元具体可以用于当所述区块链的出块时间不满足预设时间稳定性条件时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
可选的,在本申请的一些实施例中,所述第一转移单元具体可以用于基于所述第一时间戳,触发通过区块链上所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移通道,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
所述第二转移单元可以包括提取子单元和转移子单元,如下:
所述提取子单元,用于从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;
转移子单元,用于通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选的,在本申请的一些实施例中,所述转移子单元具体可以用于当所述资源转移通道未过期时,通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选的,在本申请的一些实施例中,所述基于区块链的虚拟资源转移装置还可以包括取消单元,如下:
所述取消单元,用于当所述资源转移通道过期时,停止所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移操作;响应于目标虚拟资源账号向所述资源转移通道发送的资源获取请求,确定属于所述目标虚拟资源账号的目标虚拟资源,并向所述目标虚拟资源账号转移所述目标虚拟资源,所述目标虚拟资源账号为所述第一虚拟资源账号或所述第二虚拟资源账号;在所述目标虚拟资源转移完成后,取消所述资源转移通道。
本申请实施例提供的一种电子设备,包括处理器和存储器,所述存储器存储有多条指令,所述处理器加载所述指令,以执行本申请实施例提供的基于区块链的虚拟资源转移方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本申请实施例提供的基于区块链的虚拟资源转移方法中的步骤。
此外,本申请实施例还提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现本申请实施例提供的基于区块链的虚拟资源转移方法中的步骤。
本申请实施例提供了一种基于区块链的虚拟资源转移方法以及相关设备,可以获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。本申请可以将待转移的虚拟资源预先存储在链上的智能合约中,通过引入链下的预言机,来传递链下当前的时间戳,这样能够在区块出块时间不稳定的场景下准确地进行时间度量,且只有在用户从链上的智能合约中取出资金时才进行虚拟资源结算,提高了收款方获取资金的稳定性,有利于维护收款方的利益。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的基于区块链的虚拟资源转移方法的场景示意图;
图1b是本申请实施例提供的区块链系统的结构示意图;
图1c是本申请实施例提供的区块链系统的另一结构示意图;
图1d是本申请实施例提供的基于区块链的虚拟资源转移方法的流程图;
图1e是本申请实施例提供的基于区块链的虚拟资源转移方法的另一流程图;
图2是本申请实施例提供的基于区块链的虚拟资源转移方法的另一流程图;
图3是本申请实施例提供的基于区块链的虚拟资源转移装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种基于区块链的虚拟资源转移方法以及相关设备,相关设备可以包括基于区块链的虚拟资源转移装置、电子设备、计算机可读存储介质和计算机程序产品。该基于区块链的虚拟资源转移装置具体可以集成在电子设备中,该电子设备可以是终端或服务器等设备。
具体地,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
如图1a所示,以终端和服务器共同执行基于区块链的虚拟资源转移方法为例。本申请实施例提供的基于区块链的虚拟资源转移系统包括第一终端10、服务器11和第二终端12等;第一终端10与服务器11之间通过网络连接,第二终端12与服务器11之间也通过网络连接,比如,通过有线或无线网络连接等,其中,基于区块链的虚拟资源转移装置可以集成在服务器中。
其中,服务器11,可以用于:获取第一终端10中第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;当检测到第二终端12中的第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。其中,服务器11可以是单台服务器,也可以是由多个服务器组成的服务器集群或云服务器。本申请所公开的基于区块链的虚拟资源转移方法或装置,其中多个服务器可组成为一区块链,而服务器为区块链上的节点。
其中,第一终端10,可以用于:向服务器11发送资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,以通过服务器11进行虚拟资源转移。其中,第一终端10可以包括平板电脑、笔记本电脑、或个人计算机(PC,Personal Computer)等。第一终端10上还可以设置客户端,该客户端可以是应用程序客户端或浏览器客户端等等。
其中,第二终端12,可以用于:向服务器11发送虚拟资源获取请求,以通过服务器11进行虚拟资源结算。其中,第二终端12可以包括平板电脑、笔记本电脑、或个人计算机(PC,Personal Computer)等。第二终端12上还可以设置客户端,该客户端可以是应用程序客户端或浏览器客户端等等。
需要说明的是,本申请实施例提供的基于区块链的虚拟资源转移系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接成的分布式系统。
以分布式系统为区块链系统为例,参见图1b,图1b是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点200(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端300形成,节点之间形成组成的点对点(Peer To Peer,P2P)网络,P2P协议是一个运行在传输控制协议(Transmission ControlProtocol,TCP)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1b示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
参见图1c,图1c是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从基于区块链的虚拟资源转移装置的角度进行描述,该基于区块链的虚拟资源转移装置具体可以集成在电子设备中,该电子设备可以是服务器或终端等设备。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景。
本申请提供的基于区块链的虚拟资源转移方法可以应用于薪水发放、租金、停车费等场景。
如图1d所示,该基于区块链的虚拟资源转移方法的具体流程可以如下:
101、获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号。
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
其中,第一客户端具体可以是打款方(也即支出方)对应的客户端;资源转移信息可以包括第一客户端执行目标业务交易所需支付给第二虚拟资源账号的虚拟资源的资源数量,此外,资源转移信息具体还可以包括交易平台、交易内容、交易互动方、交易时间以及目标业务交易的标识等信息。
其中,交易平台可以包括社交应用程序或支付应用程序等。具体地,交易平台可以是区块链小程序。交易内容可以包括交易的种类或者交易的性质,例如餐饮、娱乐等。交易互动方可以包括与第一客户端关联的互动方(例如消费者)、与第二客户端关联的互动方(例如商家)。交易时间可以为交易发生的具体时间。
其中,目标业务交易的标识用于唯一地指示该目标业务交易。具体地,该目标业务交易的标识可以为目标业务交易的编号、该目标业务交易的名称全称、该目标业务交易的名称缩写等标识中的一种或多种标识。
具体场景下,目标业务交易可以是指第二客户端为第一客户端提供目标业务后,第一客户端为该目标业务支付所需的费用的过程,目标业务可以是指出售的商品或所提供的业务服务。
其中,第一虚拟资源账号可以为第一客户端对应的用户的虚拟资源账号,第二虚拟资源账号可以为第二客户端对应的用户的虚拟资源账号。第一虚拟资源账号和第二虚拟资源账号可以用于执行区块链上虚拟资源的交易(即链上交易)过程中的相关操作,链上交易是指在区块链网络中进行数字资产的交易。
其中,资源转移信息中包含的需要转移的虚拟资源的资源数量可以为目标业务交易中的交易金额。
具体地,本实施例中,虚拟资源具体可以是数字资产,数字资产是指以电子数据形式存在的资产。数字资产可包括但不限于:电子票据、游戏资源(如游戏装备等)等。数字资产可以用于支付等交易,涉及数字资产的交易即为数字资产交易。数字资产可依托于区块链技术进行维持、存储。
在一实施例中,可以将本申请应用于联盟链,联盟链为用于机构间的区块链。具体地,联盟链,只针对特定某个群体的成员和有限的第三方,内部指定多个预选的节点为记账对象,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程,其他第三方可以通过该区块链开放的API(Application Programming Interface,应用程序编程接口)进行限定查询。
联盟链的成员机构具有针对区块链的数据处理权限。数据处理权限为对目标区块链的链上数据的处理权限,例如,数据处理权限可以包括数据写入权限,数据读取权限,数据删除权限,数据修改权限,等等。
在目前的相关技术中,一般通过区块号用于流支付协议的时间标记进行链上资金的流式支付,虽然这个方案在区块出块时间稳定的区块链上能够较好的工作,但是在一些出块时间不稳定的区块链上,其链上支付的时间差异较大。
其中,出块是指区块链系统通过共识后在区块链上生成区块。出块时间具体是指打包和发布区块所需的时间。
具体地,在流支付协议中以区块高度(也即区块号)作为链上的时间度量的方案分析如下:
由于链上的区块出块时间不固定,因此支付流可能不会像最初设计的时间进行运行。假设d是以秒为单位的支付流的总时间间隔,t是之前区块链的平均出块时间,t1是在总时间间隔d内的平均出块时间,根据上述数据能够得到以下的场景:
1、t<t1,则收款方将晚于预期时间获得资金;
2、t>t1,则收款方将早于预期时间获得资金。
基于以上的分析,在区块链的出块时间较为稳定的情况下,以区块号作为链上的时间度量是一种简单和高效的实现方式,但是在区块链出块时间不稳定的情况下,收款方获得资金的时间不确定,可能和预计收款的时间不同,这样会损害收款对象的权益。
而本申请提供的基于区块链的虚拟资源转移方法能够改变长期金融承诺的支付方式,通过链上的智能合约(具体即流支付合约),支付方可以提前将虚拟资源存储在智能合约中,不需要资金所有者在固定时间段调用链上的数字资产转移接口,且在操作复杂度上较为友好。比如,在公司发放月薪的场景中,基于该方法,支付方不需要分次进行薪资发放的支付动作。
而且,本申请的虚拟资源转移方法可以通过在链上流支付合约中引入链下的去中心化预言机来传递当前的链下时间,以去中心化预言机合约输入的链下时间作为当前的链上时间,这样能够较好地解决流支付协议在出块时间不稳定区块链场景下链上时间计量的问题。
102、通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
具体地,本实施例中,智能合约可以是链上流支付合约,即区块链上的流支付合约。
智能合约是一种旨在以信息化方式传播、验证或执行合约的计算机协议,本质上就是一段计算机执行的程序。将合约的触发条件,执行的事项等详细的合约内容,以代码的形式储存在区块链网络中,满足触发条件即可准确自动执行交易,没有第三方的参与,这样确保智能合约执行的公平公正可靠。但是智能合约无法从真实世界获取外部数据,也即智能合约无法与真实世界进行数据交互。
区块链是一个确定性的、封闭的系统环境,只能获取到链内的数据,而不能获取到链外真实世界的数据,区块链与现实世界是割裂的。本实施例中,可以利用与区块链节点连接的预言机任务节点(简称预言机),来获取当前的链下时间,再将该链下时间作为当前的链上时间。
其中,预言机获取到的第一时间戳具体为区块链外当前的时间信息,该时间信息可以视为支付流开始的时间戳,也即第一虚拟资源账号与第二虚拟资源账号之间的这笔交易的开始时间。
智能合约为计算机化的协议,可以执行某个合约的条款,具体地,智能合约可以通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,并根据实际的业务需求代码完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的虚拟资源转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
本实施例中,可以通过预言机任务节点获取区块链外的数据(即第一时间戳),将第一时间戳反馈给区块链上的智能合约,以触发智能合约执行规定的交易事件。具体地,若区块链上的智能合约有时间访问需求,则可以发送时间访问指令给预言机,以调用预言机进行外部数据访问,获取当前的链下时间,通过预言机将现实世界的数据输入到区块链上,提高了数据交互的安全性。
可选地,本实施例中,步骤“通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳”,可以包括:
当所述区块链的出块时间不满足预设时间稳定性条件时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
其中,预设时间稳定性条件可以根据实际情况进行设置,本实施例对此不作限制。例如,预设时间稳定性条件具体可以是区块链在目标时间段内的平均出块时间、与区块链在历史时间段内的平均出块时间的时间差小于预设时间差,预设时间差可以根据实际情况设置,如可以设置为1秒等。其中,目标时间段具体可以指当天,也可以是当前时间的前两个小时,历史时间段可以是昨天,也可以是最近一周,本实施例对此不作具体限制。
可选地,本实施例中,步骤“通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳”,可以包括:
基于所述第一客户端对应的密钥,对所述资源转移信息进行签名处理;
当所述资源转移信息签名完成时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
其中,第一客户端对应的密钥,具体可以是第一客户端对应的用户的私钥。具体地,本实施例可以通过数字签名,对区块链的交易信息(也即资源转移信息)进行验证,以确定第一客户端的合法性;其中,数字签名是交易的发起方利用自身的私钥对资源转移信息进行签名得到的。另外,使用数字签名,还可以防止资源转移信息被篡改,保证数据的安全性。
具体场景中,用户可以通过第一客户端,生成一个私钥,并同时生成一个或多个公钥。根据该公钥可以生成真实账户地址,具体也即第一虚拟资源账号对应的链上地址,该真实账户地址可以用于数字资产交易。例如,用户A发起向用户B的转账,可以通过数字资产服务使用用户A的私钥对资源转移信息进行签名,再将签名后的资源转移信息进行上链,上链后的资源转移信息需要使用用户A的公钥解密,来验证第一客户端的合法性,验证通过后,才能基于解密后的资源转移信息进行交易,该交易过程可以包括获取链下当前的第一时间戳、以及将第一虚拟资源账号中的虚拟资源转移到智能合约中存储等。
其中,确定第一客户端的合法性,具体是指:验证资源转移信息的真实性。如果资源转移信息具有真实性,则可以确定第一客户端具有合法性;如果资源转移信息不具有真实性,则可以确定第一客户端不具有合法性。
其中,数字资产服务具体可以是链下的服务。
可选地,本实施例中,在验证第一客户端的合法性之前,可以根据第一客户端输入的资源转移信息生成区块链中的区块。具体地,在使用用户A的私钥对资源转移信息进行签名后,可以对资源转移信息进行上链,生成区块,生成的区块记录有资源转移信息。随后,区块链所在节点根据区块链节点系统中其他节点的节点标识,将新生成的区块分别发送给其所在的区块链节点系统中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
103、基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储。
具体地,本实施例中,可以先将第一虚拟资源账号中需要转移给第二虚拟资源账号的虚拟资源存储到智能合约中,当第二虚拟资源账号对应的第二客户端发送虚拟资源获取请求时,再从智能合约中提取相应的虚拟资源转移给第二虚拟资源账号;这样第一虚拟资源账号不需要在固定时间段调用链上的数字资产转移接口进行虚拟资源转移。
104、当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳。
其中,第二客户端具体为第二虚拟资源账号对应用户所处的客户端。虚拟资源获取请求为第二客户端发送的虚拟资源结算请求,该虚拟资源结算请求指示从智能合约中提取属于第二虚拟资源账号的虚拟资源。
其中,第二时间戳具体可以为交易结算时对应的时间戳,也即第一虚拟资源账号和第二虚拟资源账号之间交易的结算时间。
可选地,本实施例中,步骤“当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳”,可以包括:
当检测到第二客户端发送的虚拟资源获取请求时,基于所述第二客户端对应的密钥,对所述资源转移信息进行签名验证处理;
当签名验证通过时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳。
具体地,虚拟资源获取请求可以包括第二客户端对应的密钥,第二客户端对应的密钥可以是第二客户端对应的用户的私钥。
具体场景中,第二客户端可以对应一个私钥和一个公钥,根据该公钥可以生成第二客户端对应的用户的真实账户地址,也即第二虚拟资源账号对应的链上地址,该真实账户地址可以用于数字资产交易。
本实施例中,可以通过数字资产服务使用第二客户端的私钥对资源转移信息进行签名,得到签名信息,再对签名信息进行上链,上链后的签名信息需要使用第二客户端对应的公钥进行验证处理,以确定第二客户端的合法性。若验证通过,则说明第二客户端为该资源转移信息的交易对象,即第二客户端具有合法性。
105、根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
可选地,本实施例中,所述资源转移信息还包括资源转移对应的预设结束时间戳;
步骤“根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量”,可以包括:
根据所述第一时间戳和所述预设结束时间戳,确定资源转移总时长;
根据所述资源转移总时长和所述资源数量,计算资源转移率;
基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
其中,预设结束时间戳可以根据实际情况进行设置,本实施例对此不作限制。比如,预设结束时间戳可以设置为当天的24点整。
其中,第一时间戳具体为支付流开始的时间戳,基于预设结束时间戳和第一时间戳之间的时间差,可以确定资源转移总时长;具体地,资源转移总时长为预设结束时间戳和第一时间戳之间的时间差。
其中。资源转移率具体为单位时间需要转移的虚拟资源数量。具体地,资源转移率可以通过对该资源数量和资源转移总时长进行相除得到。
可选地,本实施例中,步骤“基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量”,可以包括:
对所述第一时间戳和所述第二时间戳进行差值运算,得到资源已转移时长;
将所述资源转移率和所述资源已转移时长进行融合运算,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
其中,第二时间戳具体为交易结算时对应的时间戳;资源已转移时长可以为第二时间戳和第一时间戳之间的时间差,资源已转移时长具体可以是交易开始时间和交易结算时间之间的时长。
其中,资源转移率和资源已转移时长之间的融合运算的方式有多种,比如,该融合运算具体可以是相乘等。通过对资源转移率和资源已转移时长进行相乘,可以得到当前第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
在一具体场景中,第一客户端对应的用户A在凌晨零点时开始向第二客户端对应的用户B进行资源转移,也即支付流的开始时间戳为凌晨零点,另外,其资源转移信息指示第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量为100,且资源转移对应的预设结束时间戳为当天24点整。该资源转移过程具体可以是先将第一虚拟资源账号中需要转移给第二虚拟资源账号的虚拟资源存储到智能合约中,当第二虚拟资源账号对应的第二客户端发送虚拟资源获取请求时,再从智能合约中提取相应的虚拟资源转移给第二虚拟资源账号。若用户B在中午12点的时候请求资源结算,则第二时间戳可以是中午12点,这样可以得到资源已转移时长为12小时,根据资源转移总时长(1天,即24小时)和总共需要转移的资源数量100,可以确定资源转移率为100/24,基于资源转移率100/24和资源已转移时长12小时,可以确定当前(也即中午12点)用户B可获取到的虚拟资源的目标资源数量为50。
106、从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选地,本实施例中,步骤“基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储”,可以包括:
基于所述第一时间戳,触发通过区块链上所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移通道,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
步骤“从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中”,可以包括:
从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;
通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
其中,资源转移通道具体为支付通道,资源转移通道可以用于连接资源转移过程中的两个互动者——第一虚拟资源账号和第二虚拟资源账号,连接这两个互动者的资源转移通道实质上是一个普通的多签名钱包。
具体地,第一客户端可以发起转移通道创建请求,该转移通道创建请求指示创建第一虚拟资源账号和第二虚拟资源账号之间的资源转移通道,该转移通道创建请求可以携带资源转移信息;基于所述转移通道创建请求,对所述资源转移信息进行上链处理,以在所述区块链上创建所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移通道。
其中,创建资源转移通道,具体也即互动方创建一个多签名钱包,并向该钱包充入虚拟资源,钱包接收到的这笔虚拟资源的数量就成为这个资源转移通道的余额;这笔交易需要广播到网络中并记录到区块链上,以表明资源转移通道开启。
可选地,本实施例中,步骤“通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中”,可以包括:
当所述资源转移通道未过期时,通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选地,本实施例中,所述基于区块链的虚拟资源转移方法还可以包括:
当所述资源转移通道过期时,停止所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移操作;
响应于目标虚拟资源账号向所述资源转移通道发送的资源获取请求,确定属于所述目标虚拟资源账号的目标虚拟资源,并向所述目标虚拟资源账号转移所述目标虚拟资源,所述目标虚拟资源账号为所述第一虚拟资源账号或所述第二虚拟资源账号;
在所述目标虚拟资源转移完成后,取消所述资源转移通道。
其中,资源转移通道过期具体也即资源转移通道不处于预设有效使用期限内,预设有效使用期限可以根据实际情况设置。
其中,当链上的资源转移通道到期时,资源转移通道停止资金支付操作。第一客户端对应的用户A和第二客户端对应的用户B可以向链上的资源转移通道发起交易请求取回属于自己的资金,最后资源转移通道取消。
本申请提供的基于区块链的虚拟资源转移方法可以依托于trustSQL开放链资产发行平台。
本申请可以在区块链上通过去中心化预言机获取链下当前时间作为链上时间的计量,通过链上支付流中的相关信息(具体也即资源转移信息)持续进行数字资产的转移,并且最后只有在用户从链上支付流中取出资金才进行结算,解决区块链出块时间不稳定导致链上流支付协议出现较大误差的问题。
如图1e所示,为本申请的基于区块链的虚拟资源转移方法的流程图。图1e中包括区块链小程序、数字资产服务、链上支付流合约、预言机合约以及链下预言机节点1至n(即上述实施例中的预言机任务节点),n为正整数,其中,用户A对应的第一客户端运行于一终端设备上,用户B对应的第二客户端运行于另一终端设备上,运行于终端设备上的第一客户端和第二客户端之间进行数字资产交易。
其中,数字资产转移的具体过程描述如下:
1.首先用户A通过在第一客户端的区块链小程序上向用户B发起支付通道建立请求(该支付通道建立请求指示创建第一虚拟资源账号和第二虚拟资源账号之间的资源转移通道A->B),该支付通道建立请求可以携带相关的支付流信息(也即资源转移信息),区块链小程序转发该支付通道建立请求到数字资产服务。数字资产服务使用用户A的私钥对创建支付通道交易进行签名,也即对资源转移信息进行签名,然后,对创建支付通道交易上链,即对资源转移信息进行上链,调用区块链上的流支付合约创建支付流接口,以创建支付通道,最后链上的流支付合约将链上支付通道的创建结果返回给数字资产服务,数字资产服务再将其转发给区块链小程序,以在区块链小程序中进行链上支付通道创建结果的显示。
2.在对资源转移信息进行上链时,链上流支付合约还可以请求链下预言机合约获取当前链下的时间戳,预言机合约请求链下预言机节点共识,返回当前链下时间戳(即上述实施例中的第一时间戳),支付通道随着链下时间戳的增加,支付通道持续在区块链上进行数字资产的转移,将用户A对应的第一虚拟资源账号中需要向用户B对应的第二虚拟资源账号转移的一定资源数量下的虚拟资源提取出来,将提取出来的虚拟资源转移到流支付合约中存储。
3.当用户B在第二客户端的区块链小程序上发起针对支付流的资金取出请求时,区块链小程序将该资金取出请求转发给数字资产服务。数字资产服务使用用户B的私钥对上链交易(即前面所说的资源转移信息)进行签名;签名验证通过后,数字资产服务调用链上的流支付合约请求取出数字资产,进行交易结算,同时流支付合约结算时请求去中心化预言机合约获取当前链下的时间戳(即上述实施例中的第二时间戳);根据第二时间戳和第一时间戳,链上支付通道进行数字资产的结算,确定当前用户B可获取到的虚拟资源的目标资源数量,然后,从智能合约中提取目标资源数量下的虚拟资源进行链上数字资产转移,以将目标资源数量下的虚拟资源从智能合约转移到用户B对应的第二虚拟资源账号中。
其中,数字资产的结算过程可以用式子payment rate*(current timestamp-starting timestamp)表示,current timestamp表示第二时间戳,starting timestamp表示第一时间戳,payment rate表示资源转移率,关于结算的具体过程可以参考上述实施例,此处不在赘述。
其中,链上流支付合约完成资金结算后向用户B的链上地址(即第二虚拟资源账号)转移数字资产,最后返回链上资金结算结果,用户B在区块链小程序前端能够看到自身账户数字资产的变更结果。此外,若链上支付通道到期,则支付通道停止资金计费。
其中,相关的支付流信息的结构体如下所示:
*sender:支付流实例资金拥有地址(也即第一虚拟资源账号对应的链上地址)
*recipient:支付流资金的发送地址(也即第二虚拟资源账号对应的链上地址)
*tokenAddress:支付流资金的地址
*balance:支付流中的剩余资产数量
*timeframe:如下面定义
-start:支付流开始的时间戳(即第一时间戳)
-stop:支付流结束的时间戳(即资源转移的预设结束时间戳)
*rate:如下面定义
-payment:支付流从sender到recipient的资金数额
-interval:每隔多长时间从sender到recipient支付的payment资金数额(也即上述实施例中的资源转移率)
本申请提供的去中心化预言机流支付协议方案,可以通过在链上流支付合约中引入链下的去中心化预言机来传递当前链下的当前时间,以去中心化预言机合约输入的链下时间作为当前的链上时间,该方案能够较好的解决流支付协议在出块时间不稳定区块链场景下链上时间计量的问题。
具体地,本申请可以实现链上资金每时每刻实时进行支付,不需要定期进行链下资金转移的触发动作。链上支付流中的资金只有在取出时才会进行结算,只需一笔交易即可完成链上周期性的支付操作。其中,链上资金每时每刻实时进行支付,具体是指实际上只是会在交易结算的时候对链上支付通道中的虚拟资源进行一个按时间比例的支付,流支付效果的体现在收款方每时每刻都在接收资金。
由上可知,本实施例可以获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。本申请可以将待转移的虚拟资源预先存储在链上的智能合约中,通过引入链下的预言机,来传递链下当前的时间戳,这样能够在区块出块时间不稳定的场景下准确地进行时间度量,且只有在用户从链上的智能合约中取出资金时才进行虚拟资源结算,提高了收款方获取资金的稳定性,有利于维护收款方的利益。
根据前面实施例所描述的方法,以下将以该基于区块链的虚拟资源转移装置具体集成在服务器举例作进一步详细说明。
本申请实施例提供一种基于区块链的虚拟资源转移方法,如图2所示,该基于区块链的虚拟资源转移方法的具体流程可以如下:
201、服务器获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量、以及资源转移对应的预设结束时间戳,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号。
其中,第一客户端具体可以是打款方(也即支出方)对应的客户端;资源转移信息可以包括第一客户端执行目标业务交易所需支付给第二虚拟资源账号的虚拟资源的资源数量,此外,资源转移信息具体还可以包括交易平台、交易内容、交易互动方、交易时间以及目标业务交易的标识等信息。
其中,第一虚拟资源账号可以为第一客户端对应的用户的虚拟资源账号,第二虚拟资源账号可以为第二客户端对应的用户的虚拟资源账号。第一虚拟资源账号和第二虚拟资源账号可以用于执行区块链上虚拟资源的交易(即链上交易)过程中的相关操作,链上交易是指在区块链网络中进行数字资产的交易。
202、服务器通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
具体地,本实施例中,智能合约可以是链上流支付合约,即区块链上的流支付合约。
其中,预言机获取到的第一时间戳具体为区块链外当前的时间信息,该时间信息可以视为支付流开始的时间戳,也即第一虚拟资源账号与第二虚拟资源账号之间的这笔交易的开始时间。
本实施例中,可以通过预言机任务节点获取区块链外的数据(即第一时间戳),将第一时间戳反馈给区块链上的智能合约,以触发智能合约执行规定的交易事件。具体地,若区块链上的智能合约有时间访问需求,则可以发送时间访问指令给预言机,以调用预言机进行外部数据访问,获取当前的链下时间,通过预言机将现实世界的数据输入到区块链上,提高了数据交互的安全性。
可选地,本实施例中,步骤“通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳”,可以包括:
当所述区块链的出块时间不满足预设时间稳定性条件时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
其中,预设时间稳定性条件可以根据实际情况进行设置,本实施例对此不作限制。例如,预设时间稳定性条件具体可以是区块链在目标时间段内的平均出块时间、与区块链在历史时间段内的平均出块时间的时间差小于预设时间差,预设时间差可以根据实际情况设置,如可以设置为1秒等。其中,目标时间段具体可以指当天,也可以是当前时间的前两个小时,历史时间段可以是昨天,也可以是最近一周,本实施例对此不作具体限制。
可选地,本实施例中,步骤“通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳”,可以包括:
基于所述第一客户端对应的密钥,对所述资源转移信息进行签名处理;
当所述资源转移信息签名完成时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
其中,第一客户端对应的密钥,具体可以是第一客户端对应的用户的私钥。具体地,本实施例可以通过数字签名,对区块链的交易信息(也即资源转移信息)进行验证,以确定第一客户端的合法性;其中,数字签名是交易的发起方利用自身的私钥对资源转移信息进行签名得到的。另外,使用数字签名,还可以防止资源转移信息被篡改,保证数据的安全性。
203、服务器基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储。
具体地,本实施例中,可以先将第一虚拟资源账号中需要转移给第二虚拟资源账号的虚拟资源存储到智能合约中,当第二虚拟资源账号对应的第二客户端发送虚拟资源获取请求时,再从智能合约中提取相应的虚拟资源转移给第二虚拟资源账号;这样第一虚拟资源账号不需要在固定时间段调用链上的数字资产转移接口进行虚拟资源转移。
204、当检测到第二客户端发送的虚拟资源获取请求时,服务器通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳。
其中,第二客户端具体为第二虚拟资源账号对应用户所处的客户端。虚拟资源获取请求为第二客户端发送的虚拟资源结算请求,该虚拟资源结算请求指示从智能合约中提取属于第二虚拟资源账号的虚拟资源。
其中,第二时间戳具体可以为交易结算时对应的时间戳,也即第一虚拟资源账号和第二虚拟资源账号之间交易的结算时间。
可选地,本实施例中,步骤“当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳”,可以包括:
当检测到第二客户端发送的虚拟资源获取请求时,基于所述第二客户端对应的密钥,对所述资源转移信息进行签名验证处理;
当签名验证通过时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳。
具体场景中,第二客户端可以对应一个私钥和一个公钥,根据该公钥可以生成第二客户端对应的用户的真实账户地址,也即第二虚拟资源账号对应的链上地址,该真实账户地址可以用于数字资产交易。
本实施例中,可以通过数字资产服务使用第二客户端的私钥对资源转移信息进行签名,得到签名信息,再对签名信息进行上链,上链后的签名信息需要使用第二客户端对应的公钥进行验证处理,以确定第二客户端的合法性。若验证通过,则说明第二客户端为该资源转移信息的交易对象,即第二客户端具有合法性。
205、服务器根据所述第一时间戳和所述预设结束时间戳,确定资源转移总时长。
其中,预设结束时间戳可以根据实际情况进行设置,本实施例对此不作限制。比如,预设结束时间戳可以设置为当天的24点整。
其中,第一时间戳具体为支付流开始的时间戳,基于预设结束时间戳和第一时间戳之间的时间差,可以确定资源转移总时长;具体地,资源转移总时长为预设结束时间戳和第一时间戳之间的时间差。
206、服务器根据所述资源转移总时长和所述资源数量,计算资源转移率。
其中。资源转移率具体为单位时间需要转移的虚拟资源数量。具体地,资源转移率可以通过对该资源数量和资源转移总时长进行相除得到。
207、服务器基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
可选地,本实施例中,步骤“基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量”,可以包括:
对所述第一时间戳和所述第二时间戳进行差值运算,得到资源已转移时长;
将所述资源转移率和所述资源已转移时长进行融合运算,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
其中,第二时间戳具体为交易结算时对应的时间戳;资源已转移时长可以为第二时间戳和第一时间戳之间的时间差,资源已转移时长具体可以是交易开始时间和交易结算时间之间的时长。
其中,资源转移率和资源已转移时长之间的融合运算的方式有多种,比如,该融合运算具体可以是相乘等。通过对资源转移率和资源已转移时长进行相乘,可以得到当前第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
208、服务器从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选地,本实施例中,步骤“基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储”,可以包括:
基于所述第一时间戳,触发通过区块链上所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移通道,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
步骤“从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中”,可以包括:
从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;
通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
其中,资源转移通道具体为支付通道,资源转移通道可以用于连接资源转移过程中的两个互动者——第一虚拟资源账号和第二虚拟资源账号,连接这两个互动者的资源转移通道实质上是一个普通的多签名钱包。
具体地,第一客户端可以发起转移通道创建请求,该转移通道创建请求指示创建第一虚拟资源账号和第二虚拟资源账号之间的资源转移通道,该转移通道创建请求可以携带资源转移信息;基于所述转移通道创建请求,对所述资源转移信息进行上链处理,以在所述区块链上创建所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移通道。
其中,创建资源转移通道,具体也即互动方创建一个多签名钱包,并向该钱包充入虚拟资源,钱包接收到的这笔虚拟资源的数量就成为这个资源转移通道的余额;这笔交易需要广播到网络中并记录到区块链上,以表明资源转移通道开启。
本申请提供的去中心化预言机流支付协议方案,可以通过在链上流支付合约中引入链下的去中心化预言机来传递当前链下的当前时间,以去中心化预言机合约输入的链下时间作为当前的链上时间,该方案能够较好的解决流支付协议在出块时间不稳定区块链场景下链上时间计量的问题。
由上可知,本实施例可以通过服务器获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量、以及资源转移对应的预设结束时间戳,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;根据所述第一时间戳和所述预设结束时间戳,确定资源转移总时长;根据所述资源转移总时长和所述资源数量,计算资源转移率;基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
本申请可以将待转移的虚拟资源预先存储在链上的智能合约中,通过引入链下的预言机,来传递链下当前的时间戳,这样能够在区块出块时间不稳定的场景下准确地进行时间度量,且只有在用户从链上的智能合约中取出资金时才进行虚拟资源结算,提高了收款方获取资金的稳定性,有利于维护收款方的利益。
为了更好地实施以上方法,本申请实施例还提供一种基于区块链的虚拟资源转移装置,如图3所示,该基于区块链的虚拟资源转移装置可以包括第一获取单元301、第二获取单元302、第一转移单元303、第三获取单元304、确定单元305以及第二转移单元306,如下:
(1)第一获取单元301;
第一获取单元,用于获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号。
(2)第二获取单元302;
第二获取单元,用于通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
可选的,在本申请的一些实施例中,所述第二获取单元可以包括签名子单元和第一获取子单元,如下:
所述签名子单元,用于基于所述第一客户端对应的密钥,对所述资源转移信息进行签名处理;
第一获取子单元,用于当所述资源转移信息签名完成时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
可选的,在本申请的一些实施例中,所述第二获取单元具体可以用于当所述区块链的出块时间不满足预设时间稳定性条件时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
(3)第一转移单元303;
第一转移单元,用于基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储。
(4)第三获取单元304;
第三获取单元,用于当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳。
可选的,在本申请的一些实施例中,所述第三获取单元可以包括签名验证子单元和第二获取子单元,如下:
所述签名验证子单元,用于当检测到第二客户端发送的虚拟资源获取请求时,基于所述第二客户端对应的密钥,对所述资源转移信息进行签名验证处理;
第二获取子单元,用于当签名验证通过时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳。
(5)确定单元305;
确定单元,用于根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
可选的,在本申请的一些实施例中,所述资源转移信息还包括资源转移对应的预设结束时间戳;
所述确定单元可以包括第一确定子单元、计算子单元和第二确定子单元,如下:
所述第一确定子单元,用于根据所述第一时间戳和所述预设结束时间戳,确定资源转移总时长;
计算子单元,用于根据所述资源转移总时长和所述资源数量,计算资源转移率;
第二确定子单元,用于基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
可选的,在本申请的一些实施例中,所述第二确定子单元具体可以用于对所述第一时间戳和所述第二时间戳进行差值运算,得到资源已转移时长;将所述资源转移率和所述资源已转移时长进行融合运算,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
(6)第二转移单元306;
第二转移单元,用于从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选的,在本申请的一些实施例中,所述第一转移单元具体可以用于基于所述第一时间戳,触发通过区块链上所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移通道,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
所述第二转移单元可以包括提取子单元和转移子单元,如下:
所述提取子单元,用于从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;
转移子单元,用于通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选的,在本申请的一些实施例中,所述转移子单元具体可以用于当所述资源转移通道未过期时,通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
可选的,在本申请的一些实施例中,所述基于区块链的虚拟资源转移装置还可以包括取消单元,如下:
所述取消单元,用于当所述资源转移通道过期时,停止所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移操作;响应于目标虚拟资源账号向所述资源转移通道发送的资源获取请求,确定属于所述目标虚拟资源账号的目标虚拟资源,并向所述目标虚拟资源账号转移所述目标虚拟资源,所述目标虚拟资源账号为所述第一虚拟资源账号或所述第二虚拟资源账号;在所述目标虚拟资源转移完成后,取消所述资源转移通道。
由上可知,本实施例可以由第一获取单元301获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;由第二获取单元302通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;通过第一转移单元303基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;当检测到第二客户端发送的虚拟资源获取请求时,由第三获取单元304通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;通过确定单元305根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;通过第二转移单元306从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。本申请可以将待转移的虚拟资源预先存储在链上的智能合约中,通过引入链下的预言机,来传递链下当前的时间戳,这样能够在区块出块时间不稳定的场景下准确地进行时间度量,且只有在用户从链上的智能合约中取出资金时才进行虚拟资源结算,提高了收款方获取资金的稳定性,有利于维护收款方的利益。
本申请实施例还提供一种电子设备,如图4所示,其示出了本申请实施例所涉及的电子设备的结构示意图,该电子设备可以是终端或者服务器等,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,该电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例可以获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。本申请可以将待转移的虚拟资源预先存储在链上的智能合约中,通过引入链下的预言机,来传递链下当前的时间戳,这样能够在区块出块时间不稳定的场景下准确地进行时间度量,且只有在用户从链上的智能合约中取出资金时才进行虚拟资源结算,提高了收款方获取资金的稳定性,有利于维护收款方的利益。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种基于区块链的虚拟资源转移方法中的步骤。例如,该指令可以执行如下步骤:
获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请实施例所提供的任一种基于区块链的虚拟资源转移方法中的步骤,因此,可以实现本申请实施例所提供的任一种基于区块链的虚拟资源转移方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于区块链的虚拟资源转移方面的各种可选实现方式中提供的方法。
以上对本申请实施例所提供的一种基于区块链的虚拟资源转移方法以及相关设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种基于区块链的虚拟资源转移方法,其特征在于,适用于所述区块链中的任意节点,所述方法包括:
获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;
通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;
基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;
根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;
从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
2.根据权利要求1所述的方法,其特征在于,所述资源转移信息还包括资源转移对应的预设结束时间戳;
所述根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量,包括:
根据所述第一时间戳和所述预设结束时间戳,确定资源转移总时长;
根据所述资源转移总时长和所述资源数量,计算资源转移率;
基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
3.根据权利要求2所述的方法,其特征在于,所述基于所述资源转移率、所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量,包括:
对所述第一时间戳和所述第二时间戳进行差值运算,得到资源已转移时长;
将所述资源转移率和所述资源已转移时长进行融合运算,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量。
4.根据权利要求1所述的方法,其特征在于,所述通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳,包括:
基于所述第一客户端对应的密钥,对所述资源转移信息进行签名处理;
当所述资源转移信息签名完成时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
5.根据权利要求1所述的方法,其特征在于,所述当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳,包括:
当检测到第二客户端发送的虚拟资源获取请求时,基于所述第二客户端对应的密钥,对所述资源转移信息进行签名验证处理;
当签名验证通过时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳。
6.根据权利要求1所述的方法,其特征在于,所述通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳,包括:
当所述区块链的出块时间不满足预设时间稳定性条件时,通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳。
7.根据权利要求1所述的方法,其特征在于,所述基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储,包括:
基于所述第一时间戳,触发通过区块链上所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移通道,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
所述从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中,包括:
从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;
通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
8.根据权利要求7所述的方法,其特征在于,所述通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中,包括:
当所述资源转移通道未过期时,通过所述资源转移通道将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述资源转移通道过期时,停止所述第一虚拟资源账号和所述第二虚拟资源账号之间的资源转移操作;
响应于目标虚拟资源账号向所述资源转移通道发送的资源获取请求,确定属于所述目标虚拟资源账号的目标虚拟资源,并向所述目标虚拟资源账号转移所述目标虚拟资源,所述目标虚拟资源账号为所述第一虚拟资源账号或所述第二虚拟资源账号;
在所述目标虚拟资源转移完成后,取消所述资源转移通道。
10.一种基于区块链的虚拟资源转移装置,其特征在于,适用于所述区块链中的任意节点,所述方法包括:
第一获取单元,用于获取第一客户端发送的资源转移信息,所述资源转移信息包括第一虚拟资源账号需要向第二虚拟资源账号转移的虚拟资源的资源数量,所述第一虚拟资源账号和所述第二虚拟资源账号为所述区块链支持的虚拟资源账号;
第二获取单元,用于通过所述区块链上的智能合约调用所述区块链外的预言机任务节点获取链下当前的第一时间戳;
第一转移单元,用于基于所述第一时间戳,将所述第一虚拟资源账号中所述资源数量下的虚拟资源转移到所述智能合约中存储;
第三获取单元,用于当检测到第二客户端发送的虚拟资源获取请求时,通过所述智能合约调用所述预言机任务节点获取链下当前的第二时间戳;
确定单元,用于根据所述第一时间戳和所述第二时间戳,确定当前所述第二虚拟资源账号可获取到的虚拟资源的目标资源数量;
第二转移单元,用于从所述智能合约存储的所述第一虚拟资源账号下的虚拟资源中提取当前待转移的所述目标资源数量的虚拟资源;将提取到的所述目标资源数量下的虚拟资源转移到所述第二虚拟资源账号中。
11.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至9任一项所述的基于区块链的虚拟资源转移方法中的操作。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的基于区块链的虚拟资源转移方法中的步骤。
13.一种计算机程序产品,包括计算机程序或指令,其特征在于,该计算机程序或指令被处理器执行时实现权利要求1至9任一项所述的基于区块链的虚拟资源转移方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211429986.5A CN118052638A (zh) | 2022-11-15 | 2022-11-15 | 基于区块链的虚拟资源转移方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211429986.5A CN118052638A (zh) | 2022-11-15 | 2022-11-15 | 基于区块链的虚拟资源转移方法以及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118052638A true CN118052638A (zh) | 2024-05-17 |
Family
ID=91043626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211429986.5A Pending CN118052638A (zh) | 2022-11-15 | 2022-11-15 | 基于区块链的虚拟资源转移方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118052638A (zh) |
-
2022
- 2022-11-15 CN CN202211429986.5A patent/CN118052638A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669832B2 (en) | Blockchain-implemented method and system for access control on remote internet-enabled resources | |
TWI640937B (zh) | Online payment method and equipment | |
CN112200571B (zh) | 基于区块链的资源发放方法、装置及电子设备 | |
CN109961365B (zh) | 一种基于区块链智能合约的收账记录处理方法及系统 | |
Ferrer-Gomila et al. | A fair contract signing protocol with blockchain support | |
CN111309745B (zh) | 虚拟资源处理方法、装置、电子设备及存储介质 | |
CN112613877B (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN110033370B (zh) | 账户创建方法及装置、电子设备、存储介质 | |
CN112200568B (zh) | 基于区块链的账户创建方法、装置及电子设备 | |
CN111966538B (zh) | 一种区块链数据的恢复方法和装置 | |
CN110008716A (zh) | 区块链交易方法及装置、电子设备、存储介质 | |
CN112200567A (zh) | 基于区块链的资源管理方法、装置及电子设备 | |
CN111738725A (zh) | 跨境资源转移真实性审核方法、装置及电子设备 | |
CN109726249B (zh) | 一种去中心化芯片研发交易数据存储方法及系统 | |
CN111967994B (zh) | 一种智能合约的创建方法和装置 | |
CN112200572A (zh) | 基于区块链的资源发放方法、装置及电子设备 | |
CN112015576A (zh) | 一种智能合约的调用方法和装置 | |
CN111640002A (zh) | 一种基于区块链的货押贷款方法和装置 | |
CN113553378A (zh) | 一种区块链数据的删除方法和装置 | |
CN110378693B (zh) | 基于联盟区块链的分布式能源弱中心化交易管理系统 | |
CN110009323A (zh) | 区块链交易方法及装置、电子设备、存储介质 | |
CN110009492A (zh) | 区块链交易方法及装置、电子设备、存储介质 | |
CN112015577A (zh) | 一种智能合约的调用方法和装置 | |
CN118052638A (zh) | 基于区块链的虚拟资源转移方法以及相关设备 | |
CN113469820A (zh) | 基于区块链的资产管理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |