具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
目前的区块链系统通常包括两种主流的交易模型;其中,一种是以比特币系统为代表的UTXO(Unspent Transaction Output,未花费的交易输出)模型;而另外一种则是以以太坊(Ethereum)系统为代表的账户模型。
在账户模型中,有一个重要的概念就是账户(Account)。以以太坊为例,以太坊通常将账户划分为外部账户和合约账户两类;外部账户就是由用户直接控制的账户,也称之为用户账户;而合约账户则是由用户通过外部账户创建的,包含合约代码的账户(即智能合约)。
对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
账户的结构体通常包括Balance,Nonce,Code和Storage等字段;其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
Code字段,用于维护该账户的合约代码;在实际应用中,Code字段中通常仅维护合约代码的hash值;因而,Code字段通常也称之为Codehash字段。
Storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。
在可编程的区块链中,通常可以支持将现实世界中的实体资产,转化为区块链上的数字资产。而将上述实体资产转化为上述数字资产,通常是指将该实体资产与区块链上的数字资产进行“锚定”,作为这些虚拟资产的价值支撑,进而在区块链上产生与实体资产的价值匹配,且能够在区块链上的区块链账户之间进行流通的数字资产的过程。
在实现时,可以对区块链支持的账户类型进行扩展,在区块链支持的账户类型的基础上,再扩展出一种资产账户(也称之为资产对象);例如,可以在区块链支持的外部账户、合约账户的基础上,再扩展出一种资产账户;扩展出的该资产账户,可以作为持有与现实世界中的实体资产价值锚定的数字资产的媒介。
对于接入区块链的用户而言,除了可以在区块链上完成用户账户、智能合约的创建以外,也可以在区块链上创建一笔与现实世界的实体资产价值匹配的数字资产,在区块链上进行流通;例如,用户可以将持有的货币、房产、股票等实体资产,转换为价值匹配的数字资产在区块链上流通。
或者,也可以对区块链支持的账户类型进行扩展,在区块链支持的账户类型的基础上,再扩展出一种资金账户(也称之为资金对象);例如,可以在区块链支持的外部账户、合约账户的基础上,再扩展出一种资产账户;扩展出的该资金账户,可以作为持有现实世界中的货币的媒介,并且可以与现实世界中的资金账户(例如:储蓄账户、信用账户等)进行价值锚定。
其中,对于上述资产账户和上述资金账户而言,具体也可以通过一个结构体,来维护该资产账户或该资金账户的账户状态。该资产账户或该资金账户的结构体所包含的内容,可以与上述账户的结构体相同。
然而,基于上述账户的结构体,在区块链上创建的用于持有数字资产的资产账户,只能通过其中的Balance字段维护该资产账户持有的数字资产的资产数额,而无法维护与该资产账户持有的数字资产相关的其他信息;在区块链上创建的用于持有货币的资金账户,只能通过其中的Balance字段维护该资金账户持有的货币的资金数额,而无法维护与该资金账户持有的货币相关的其他信息。因此,对于经常涉及不同的交易币种等问题的实际的商业场景而言,该资产账户和该资金账户的适用性较差。
为了解决上述问题,本说明书提出了一种区块链中的资产账户结构,基于该资产账户结构,在区块链上创建的资产账户,可以与不同币种的货币进行价值锚定,并且可以与价值锚定的不同币种的货币进行自由兑换。
在实现时,可以对区块链支持的账户类型进行扩展,在区块链支持的账户类型的基础上,再扩展出一种资产账户;扩展出的资产账户可以用于持有在区块链上创建的数字资产。
其中,上述数字资产可以与现实世界中的货币进行价值锚定。在这种情况下,对于持有该数字资产的上述资产账户而言,该资产账户的账户结构可以包括:用于填充该数字资产价值锚定的货币的币种信息的字段(称为第一字段);以及,用于填充该数字资产与价值锚定的货币之间的兑换关系的字段(称为第二字段)。
在第一种实现方式中,用户(称为购买方)在使用上述资产账户,针对需要购买的某一数字商品(称为目标数字商品)进行商品支付时,可以发起针对该目标数字商品的购买交易(称为第一购买交易),并将该第一购买交易发布至区块链,从而使该区块链中的节点设备可以接收到该第一购买交易;其中,该目标数字商品的价格可以由某一货币(称为目标货币)标定;例如,假设该目标数字商品的价格为100元人民币,则说明该目标数字商品的价格由人民币标定;该第一购买交易可以包括用于进行商品支付的资产账户(称为第一资产账户)的账户标识;该第一资产账户可以是该购买方的资产账户,即该购买方具有该第一资产账户的使用权限。
上述区块链中的节点设备在接收到上述第一购买交易时,可以对该第一购买交易进行响应,获取上述第一资产账户中的上述第一字段中填充的币种信息,并确定与该币种信息对应的货币是否匹配上述目标货币。如果是,说明该第一资产账户持有的数字资产(称为目标数字资产)与该目标货币价值锚定,因此可以使用该第一资产账户针对上述目标数字商品进行商品支付,此时,可以进一步获取该第一资产账户中的上述第二字段中填充的兑换关系,并基于该兑换关系,计算与该目标数字商品的价格价值锚定的该目标数字资产的资产数额(称为目标资产数额),即基于该兑换关系,将与该目标数字商品的价格对应的该目标货币的资金数额,换算为该目标资产数额。例如,假设上述目标数字商品的价格为100元人民币;进一步假设上述目标数字资产为虚拟积分,上述第一资产账户中的上述第二字段中的兑换关系为100:1,则可以计算得到与该目标数字商品的价格价值锚定的虚拟积分的积分数量为10000。
在计算得到上述目标资产数额的情况下,可以进一步从上述第一资产账户向另一资产账户(称为第二资产账户),转移与该目标资产数额对应的上述目标数字资产,以完成针对上述目标数字商品的商品支付。需要说明的是,该第二资产账户为该目标数字商品的出售方的资产账户,即该出售方具有该第二资产账户的使用权限;并且,该第二资产账户也用于持有该目标数字资产,即与该第二资产账户中的上述第一字段中的币种信息对应的货币也与上述目标货币匹配。
在第二种实现方式中,上述购买方在针对上述目标数字商品进行商品支付时,可以发起针对该目标数字商品的购买交易,并将该购买交易发布至区块链,从而使该区块链中的节点设备可以接收到该购买交易;其中,该目标数字商品的价格可以由上述目标货币标定;该购买交易可以包括该购买方的用户标识。
上述区块链中的节点设备在接收到上述购买交易时,可以对该购买交易进行响应,获取与上述用户标识对应的上述第一资产账户;其中,与该第一资产账户中的上述第一字段中的币种信息对应的货币与上述目标货币匹配,即该第一资产账户持有的上述目标数字资产与该目标货币价值锚定,因此可以使用该第一资产账户针对上述目标数字商品进行商品支付。
在这种情况下,可以进一步获取上述第一资产账户中的上述第二字段中填充的兑换关系,并基于该兑换关系,计算与上述目标数字商品的价格价值锚定的上述目标数字资产的上述目标资产数额,即基于该兑换关系,将与该目标数字商品的价格对应的该目标货币的资金数额,换算为该目标资产数额。后续,可以进一步从该第一资产账户向第二资产账户转移与该目标资产数额对应的该目标数字资产,以完成针对该目标数字商品的商品支付。需要说明的是,该第二资产账户为该目标数字商品的出售方的资产账户,即该出售方具有该第二资产账户的使用权限;并且,该第二资产账户也用于持有该目标数字资产,即与该第二资产账户中的上述第一字段中的币种信息对应的货币也与该目标货币匹配。
此外,本说明书还提出了一种区块链中的资金账户结构,基于该资金账户结构,在区块链上创建的资金账户,可以持有不同币种的货币,并且可以利用与所持有的货币对应的信用额度进行支付。
在实现时,可以对区块链支持的账户类型进行扩展,在区块链支持的账户类型的基础上,再扩展出一种资金账户;扩展出的资金账户可以用于持有货币。
对于持有上述货币的上述资金账户而言,该资金账户的账户结构可以包括:用于填充该货币的币种信息的字段(称为第一字段);以及,用于填充与该货币对应的信用额度的字段(称为第二字段)。
在上述第一种实现方式中,上述购买方在使用上述资金账户,针对上述目标数字商品进行商品支付时,可以发起针对该目标数字商品的购买交易(称为第二购买交易),并将该第二购买交易发布至区块链,从而使该区块链中的节点设备可以接收到该第二购买交易;其中,该第二购买交易可以包括用于进行商品支付的资金账户(称为第一资金账户)的账户标识;该第一资金账户可以是该购买方的资金账户,即该购买方具有该第一资金账户的使用权限。
上述区块链中的节点设备在接收到上述第二购买交易时,可以对该第二购买交易进行响应,获取上述第一资金账户中的上述第一字段中填充的币种信息,并确定与该币种信息对应的货币是否与上述目标货币匹配。如果是,说明该第一资金账户持有的货币包括该目标货币,因此可以使用该第一资金账户针对上述目标数字商品进行商品支付,此时,可以进一步从该第一资金账户向另一资金账户(称为第二资金账户),转移与该目标数字商品的价格对应的该目标货币,以完成针对该目标数字商品的商品支付。需要说明的是,该第二资金账户为该目标数字商品的出售方的资金账户,且该第二资金账户也用于持有该目标货币,即与该第二资金账户中的上述第一字段中的币种信息对应的货币也与该目标货币匹配。
在上述第二种实现方式中,上述区块链中的节点设备在对上述购买交易进行响应时,可以先确定上述购买方需要使用的针对上述目标数字商品进行商品支付的支付账户,是上述资产账户,还是上述资金账户。
如果上述支付账户为上述资产账户,可以获取与上述用户标识对应的上述第一资产账户,并基于该第一资产账户进行商品支付。
如果上述支付账户为上述资金账户,可以获取与上述用户标识对应的上述第一资金账户;其中,与该第一资金账户中的上述第一字段中的币种信息对应的货币与上述目标货币匹配,即该第一资金账户持有的货币包括该目标货币,因此可以使用该第一资金账户针对上述目标数字商品进行商品支付。
在这种情况下,可以进一步从上述第一资金账户向上述第二资金账户转移与上述目标数字商品的价格对应的上述目标货币,以完成针对该目标数字商品的商品支付。需要说明的是,该第二资金账户为该目标数字商品的出售方的资金账户,且该第二资金账户也用于持有该目标货币,即与该第二资金账户中的上述第一字段中的币种信息对应的货币也与该目标货币匹配。
由此可见,对于采用上述账户结构,在区块链上创建的用于持有数字资产的资产账户而言,一方面,可以通过在该资产账户中的上述第一字段中填充不同的币种信息,使得该资产账户持有的数字资产可以与不同币种的货币进行价值锚定;另一方面,可以根据该资产账户中的上述第二字段中填充的兑换关系,在该资产账户持有的数字资产与价值锚定的货币之间进行兑换。也即,相当于为该资产账户赋予了可以与不同币种的货币进行价值锚定,并且可以与价值锚定的不同币种的货币进行自由兑换的能力,从而使该资产账户可以适用于交易币种存在差异的不同的商业场景,提高在利用该资产账户接入不同的商业场景时的灵活性。
而对于采用上述账户结构,在区块链上创建的用于持有货币的资金账户而言,一方面,可以通过在该资金账户中的上述第一字段中填充不同的币种信息,使得该资金账户可以持有不同币种的货币;另一方面,可以根据该资金账户中的上述第二字段中填充的信用额度,利用与所持有的货币对应的信用额度进行支付。也即,相当于为该资金账户赋予了持有不同币种的货币,并且可以利用与所持有的货币对应的信用额度进行支付的能力,从而使得该资金账户可以适用于交易币种、支付模式存在差异的不同的商业场景,提高在利用该资金账户接入不同的商业场景时的灵活性。
下面从创建资金账户、创建资产账户、基于资产账户或资金账户进行商品支付这3个方面对本说明书进行详细说明。
(1)创建资金账户
在实际应用中,对于一些基于账户模型的架构而衍生出的区块链模型,还可以对区块链支持的账户类型,进行进一步的扩展。
因此,在上述基于区块链的资产管理方法中,可以对区块链支持的账户类型进行扩展,在区块链支持的账户类型的基础上,再扩展出一种资金账户;扩展出的该资金账户可以用于持有货币。
对于持有上述货币的上述资金账户而言,该资金账户的账户结构可以包括:用于填充该货币的币种信息的字段(称为第一字段);以及,用于填充与该货币对应的信用额度的字段(称为第二字段)。
需要说明的是,上述资金账户中的上述第一字段、上述第二字段等字段,可以是对传统的账户的结构体中的Balance字段进行扩展,扩展出的多个字段,即该资金账户的账户结构中仍然可以包括Nonce、Code、Storage等字段。或者,该资金账户的账户结构也可以不包括Balance、Nonce、Code、Storage等字段,而仅包括该第一字段、该第二字段等字段。
在实际应用中,对于链外产生的数据而言,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由加入区块链的设备(也可称为区块链中的节点)对该交易进行共识,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
因此,为了触发在上述区块链上创建上述资金账户的流程,可以向该区块链发布一笔用于在该区块链上创建该资金账户的交易(称为资产创建交易)。上述区块链中的节点设备可以接收到发布至该区块链的该资产创建交易,并对该资产创建交易进行响应,以在该区块链上创建该资金账户。
其中,上述资产创建交易可以包括上述资金账户价值锚定的信用账户的账户标识;该信用账户可以是链外的信用账户。链外的信用账户即为不在区块链上的信用账户。
需要说明的是,由于上述资金账户与上述信用账户价值锚定,因此该资金账户和该信用账户可以共享该信用账户持有的货币(称为目标货币)的币种信息,以及该信用账户的与该目标货币对应的信用额度。
在实现时,上述信用账户可以包括需要在区块链上创建资金账户的用户的链外的信用账户。具体地,该信用账户可以包括该用户在与上述区块链对接的链外支付系统上开通的信用账户。例如,假设该链外支付系统是由资产管理方提供的链外支付系统,该资产管理方是银行,则该资金账户可以包括该用户在该银行处开通的资金账户。
其中,上述链外支付系统即为不包含区块链的支付系统;该链外支付系统可以是由上述资产管理方提供的链外支付系统,也可以是由可信的第三方提供的链外支付系统。
在实际应用中,对于UTXO模型而言,区块链支持的交易类型仅包括转账交易;对于账户模型而言,区块链支持的交易类型包括转账交易、智能合约创建交易和智能合约调用交易。
因此,可以对区块链支持的交易类型进行扩展,在区块链支持的交易类型的基础上,再扩展出一种新的交易类型(即上述资产创建交易);扩展出的该资产创建交易,可以是独立于转账交易、智能合约创建交易或智能合约调用交易的交易类型,用于在区块链上创建上述资金账户。在这种情况下,上述区块链中的节点设备对该资产创建交易进行响应,运行与该资产创建交易对应的区块链的原生代码,实现该原生代码指示的逻辑。
或者,也可以预先在上述区块链上部署智能合约;其中,该智能合约可以用于在该区块链上创建上述资金账户。相应地,可以将用于调用该智能合约的上述智能合约调用交易作为上述资产创建交易。在这种情况下,上述区块链中的节点设备对该资产创建交易进行响应,调用该智能合约,运行该智能合约中的合约代码,实现该合约代码指示的逻辑。
上述区块链中的节点设备在对上述资产创建交易进行响应时,由于该资产创建交易中包括上述资金账户价值锚定的上述信用账户的账户标识,因此,可以根据该账户标识确定对应的该信用账户,并获取该信用账户持有的上述目标货币的币种信息,以及该信用账户的与该目标货币对应的信用额度。
在实际应用中,由于上述信用账户可以包括在上述链外支付系统上开通的信用账户,因此,可以由该链外支付系统维护该信用账户的账户标识、信用额度、信用已使用额、持有的货币的币种信息和资金数额等账户信息;其中,该信用账户持有的货币的资金数额也可以称为该信用账户的账户余额。
在实际应用中,区块链上部署的智能合约,通常只能访问区块链上存储的数据内容;而在一些基于智能合约技术实现的复杂的业务场景中,智能合约可能还需要访问链外的数据实体上存储的外部数据。在这种情况下,区块链上部署的智能合约,可以通过Oracle预言机,来访问链外的数据实体上的数据,进而实现智能合约与真实世界的数据实体之间的数据交互;其中,链外的数据实体,可以包括诸如部署在链外的中心化的服务器或者数据中心,等等。
因此,在上述资产创建交易为上述新的交易类型时,可以运行与该资产创建交易对应的区块链的原生代码,生成用于获取与上述账户标识对应的上述信用账户的账户信息的指示信息,并将该指示信息在上述区块链中进行存储。上述链外支付系统在获取到该区块链中存储的该指示信息时,可以对该指示信息进行响应,将该该信用账户的账户信息发布至该区块链进行存储,从而使该区块链中的节点设备可以从该区块链中获取到该链外支付系统维护的该信用账户的账户信息。
或者,在上述资产创建交易为上述智能合约调用交易时,可以运行部署在上述区块链上的与该资产创建交易对应的智能合约中的合约代码,由该智能合约通过Oracle预言机,来访问上述链外支付系统中的数据,以获取该链外支付系统维护的与上述账户标识对应的上述信用账户的账户信息。
上述区块链中的节点设备在获取到上述目标货币的币种信息,以及上述信用账户的与该目标货币对应的信用额度的情况下,可以进一步在上述区块链上创建用于持有该目标货币的资金账户,并将获取到的该目标货币的币种信息填充至该资金账户中的上述第一字段,以及将获取到的该信用额度填充至该资金账户中的上述第二字段。
在示出的一种实施方式中,在上述区块链上创建上述资金账户之前,可以先由与上述区块链对接的链外支付系统对上述信用账户进行冻结,并生成对应的冻结凭证;其中,该冻结凭证可以用于合法性校验。在这种情况下,上述资产创建交易还可以包括该链外支付系统对该信用账户进行冻结的该冻结凭证。
在实现时,为了在上述区块链上创建上述资金账户,可以先对上述冻结凭证进行合法性校验,并在校验通过时,再在该区块链上创建该资金账户。
在实际应用中,针对上述冻结凭证的合法性校验可以基于实际的需求进行设计。
举例来说,对上述冻结凭证进行的合法性校验,可以包括以下示出的任意一种或多种校验方式:校验该冻结凭证中的数字签名是否合法,该数字签名可以是上述链外支付系统在生成该冻结凭证时对该冻结凭证进行签名处理得到的数字签名;校验该冻结凭证中的资金数额与该链外支付系统冻结的上述信用账户持有的上述目标货币的资金数额是否相同;校验该冻结凭证中的信用额度与该链外支付系统冻结的该信用账户的与该目标货币对应的信用额度是否相同;校验该冻结凭证是否在有效期内;等等。
在示出的一种实施方式中,上述链外支付系统在对上述信用账户进行冻结时,可以对该信用账户本身进行冻结,此时,冻结后的该信用账户无法再使用;或者,可以对该信用账户的部分进行冻结,此时,该信用账户的被冻结的部分无法再使用,但未被冻结的部分仍可以正常使用。
举例来说,假设某一信用账户的信用额度为1万元人民币,持有的资金数额为2000元人民币,则可以仅冻结该信用账户的8000元人民币的信用额度和1000元人民币的资金数额,该信用账户的剩余的2000元人民币的信用额度和1000元人民币的资金数额仍可以正常使用。
在这种情况下,在步骤304中,在获取上述信用账户的与上述目标货币对应的信用额度时,具体可以获取上述链外支付系统针对该信用账户,冻结的与该目标货币对应的信用额度。也即,填充至上述资金账户中的上述第二字段中的信用额度,为该链外支付系统针对该信用账户,冻结的与该目标货币对应的信用额度。
进一步地,在示出的一种实施方式中,在上述区块链上创建的资金账户的账户结构还可以包括:用于填充与该资金账户持有的货币对应的信用已使用额的字段(称为第三字段)。
在实际应用中,对于某一信用账户而言,假设该信用账户的信用额度为1万元人民币,则说明最多可以使用该账户的信用额度支付1万元人民币;进一步假设使用该账户的信用额度进行支付的资金数额为1000元人民币,则该信用账户的信用已使用额即为1000元人民币。
上述区块链中的节点设备在对上述资产创建交易进行响应时,还可以获取上述链外支付系统针对上述信用账户,冻结的与上述目标货币对应的信用已使用额,并将获取到的该信用已使用额填充至在该区块链上创建的上述资金账户中的上述第三字段。
再进一步地,在示出的一种实施方式中,在上述区块链上创建的资金账户的账户结构还可以包括:用于填充该资金账户持有的货币的资金数额的字段(称为第四字段)。
上述区块链中的节点设备在对上述资产创建交易进行响应时,还可以获取上述链外支付系统冻结的上述信用账户持有的上述目标货币的资金数额,并将获取到的该资金数额填充至在该区块链上创建的上述资金账户中的上述第四字段。
在实际应用中,上述资产管理方或者在区块链上创建了上述资金账户的用户,还可以在需要对该资金账户持有的上述目标货币的相关信息进行更改时,通过上述链外支付系统再次对上述信用账户的信用额度、信用已使用额或资金数额进行冻结,或者通过该链外支付系统对该信用账户的信用额度、信用已使用额或资金数额进行解冻,并将针对该资金账户的账户更改交易发布至该区块链。
其中,上述账户更改交易可以包括上述链外支付系统再次冻结的上述信用账户的信用额度、信用已使用额或资金数额,或者可以包括该链外支付系统解冻的该信用账户的信用额度、信用已使用额或资金数额。
需要说明的是,与上述资产创建交易类似地,上述账户更改交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
后续,上述区块链中的节点设备在接收到上述账户更改交易时,可以对该账户更改交易进行响应,基于该账户更改交易中的信用额度、信用已使用额或资金数额,对上述资金账户中的上述第二字段、上述第三字段或上述第四字段中填充的数据进行更新。
具体地,在该账户更改交易包括上述链外支付系统再次冻结的上述信用账户的信用额度时,可以计算再次冻结的该信用账户的信用额度与该资金账户中的该第二字段中填充的信用额度的和值,并将该资金账户中的该第二字段中填充的信用额度替换为该和值。或者,在该账户更改交易包括该链外支付系统解冻的该信用账户的信用额度时,可以计算该资金账户中的该第二字段中填充的信用额度与解冻的该信用账户的信用额度的差值,并将该资金账户中的该第二字段中填充的信用额度替换为该差值。
在另一种实施方式中,可以由上述链外支付系统维护在该链外支付系统上开通的信用账户的账户标识、信用额度、信用已使用额、持有的货币的币种信息和资金数额等账户信息。
在这种情况下,上述链外支付系统可以在所维护的上述信用账户的与上述目标货币对应的信用额度更新时,将用于更新该信用额度的账户更新交易发布至上述区块链。
其中,上述账户更新交易可以包括上述信用账户的与上述目标货币对应的信用额度的更新信息。
上述区块链中的节点设备在接收到上述账户更新交易时,可以对该账户更新交易进行响应,基于该账户更新交易中的上述信用额度的更新信息,对在该区块链上创建的上述资金账户中的上述第二字段中填充的信用额度进行更新,从而可以保证上述信用账户中的信用额度与该资金账户中的信用额度进行同步更新。
举例来说,假设上述信用额度的更新信息包括更新后的上述信用账户的与该信用账户持有的上述目标货币对应的信用额度,则可以将该资金账户中的该第二字段中填充的信用额度,替换为更新后的该信用额度;假设上述信用额度的更新信息包括该信用账户的与该信用账户持有的该目标货币对应的信用额度的变化值,则可以将该资金账户中的该第二字段中填充的信用额度,加上该信用额度的变化值。
进一步地,在示出的一种实施方式中,在上述区块链上创建的资金账户的账户结构还可以包括:用于填充与该资金账户持有的货币对应的信用已使用额的第三字段。
上述区块链中的节点设备在对上述资产创建交易进行响应时,还可以获取上述链外支付系统冻结的上述信用账户的与上述目标货币对应的信用已使用额,并将获取到的该信用账户的与该目标货币对应的信用已使用额填充至在该区块链上创建的上述资金账户中的上述第三字段。
与上述信用额度的更新过程类似地,上述信用账户中的信用已使用额与该资金账户中的信用已使用额进行同步更新。
举例来说,上述账户更新交易还可以包括上述信用账户的与该信用账户持有的上述目标货币对应的信用已使用额的更新信息。上述区块链中的节点设备在接收到该账户更新交易时,可以对该账户更新交易进行响应,基于该账户更新交易中的该信用已使用额的更新信息,对在该区块链上创建的上述资金账户中的上述第三字段中填充的信用已使用额进行更新。
再进一步地,在示出的一种实施方式中,在上述区块链上创建的资金账户的账户结构还可以包括:用于填充该资金账户持有的货币的资金数额的第四字段。
上述区块链中的节点设备在对上述资产创建交易进行响应时,还可以获取上述链外支付系统冻结的上述信用账户持有的上述目标货币的资金数额,并将获取到的该信用账户持有的该目标货币的资金数额填充至在该区块链上创建的上述资金账户中的上述第四字段。
与上述信用额度的更新过程类似地,上述信用账户中的资金数额与该资金账户中的资金数额进行同步更新。
举例来说,上述账户更新交易还可以包括上述信用账户持有的上述目标货币的资金数额的更新信息。上述区块链中的节点设备在接收到该账户更新交易时,可以对该账户更新交易进行响应,基于该账户更新交易中的该资金数额的更新信息,对在该区块链上创建的上述资金账户中的上述第四字段中填充的资金数额进行更新。
请参考图1,图1是本说明书一示例性实施例示出的一种在区块链上创建的资金账户的示意图。
如图1所示,上述资金账户用于持有货币;该资金账户的账户结构可以包括:用于填充该货币的币种信息的第一字段(即图1中的“币种”字段);用于填充与该货币对应的信用额度的第二字段(即图1中的“信用额度”字段);用于填充与该货币对应的信用已使用额的第三字段(即图1中的“信用已使用额”字段);用于填充该货币的资金数额的第四字段(即图1中的“余额”字段)。
下面对本说明书中的实施例进行举例说明。
假设链外的支付系统对链外的信用账户进行了冻结;其中,冻结的该信用账户的信用额度为1万元人民币,冻结的该信用账户的信用已使用额为2000元人民币,冻结的该信用账户持有的货币的资金数额为1000元人民币。
区块链中的节点设备可以接收用于创建资金账户的资产创建交易;其中,该资金账户与上述信用账户价值锚定,该资金账户用于持有目标货币(即该信用账户持有的货币),该资产创建交易中包括该信用账户的账户标识和冻结凭证。
该区块链中的节点设备在接收到该资产创建交易时,可以对该资产创建交易进行响应,获取冻结的该信用账户的信用额度、信用已使用额和持有的货币的资金数额。在这种情况下,该区块链中的节点设备可以在对该冻结凭证的合法性校验通过后,在该区块链上创建该资金账户,并在该资金账户的第一字段中填充“人民币”作为该目标货币的币种信息,在该资金账户的第二字段中填充“10000”作为与该目标货币对应的信用额度,在该资金账户的第三字段中填充“2000”作为与该目标货币对应的信用已使用额,在该资金账户的第四字段中填充“1000”作为该资金账户持有的该目标货币的资金数额。
(2)创建资产账户
(a)在一种实现方式中,可以对区块链支持的账户类型进行扩展,在区块链支持的账户类型的基础上,再扩展出一种资产账户;扩展出的该资产账户可以用于持有在区块链上创建的数字资产。
其中,上述数字资产可以与现实世界中的货币(例如:人民币、美元、英镑等)进行价值锚定。在这种情况下,对于持有该数字资产的上述资产账户而言,该资产账户的账户结构可以包括:用于填充该数字资产价值锚定的货币的币种信息的字段(称为第一字段);以及,用于填充该数字资产与价值锚定的货币之间的兑换关系的字段(称为第二字段)。
需要说明的是,上述资产账户中的上述第一字段、上述第二字段等字段,可以是对传统的账户的结构体中的Balance字段进行扩展,扩展出的多个字段,也即,该资产账户的账户结构中仍然可以包括Nonce、Code、Storage等字段。或者,该资产账户的账户结构也可以不包括Balance、Nonce、Code、Storage等字段,而仅包括该第一字段、该第二字段等字段。
为了触发在上述区块链上创建上述资产账户的流程,可以向该区块链发布一笔用于在该区块链上创建该资产账户的交易(称为资产创建交易)。上述区块链中的节点设备可以接收到发布至该区块链的该资产创建交易,并对该资产创建交易进行响应,以在该区块链上创建该资产账户。
其中,上述资产账户可以用于持有在该区块链上创建的某一数字资产(称为目标数字资产);上述资产创建交易可以包括该目标数字资产价值锚定的货币(称为目标货币)的币种信息。
上述区块链中的节点设备在对上述资产创建交易进行响应时,由于该资产创建交易中包括上述目标数字资产价值锚定的上述目标货币的币种信息,因此,可以确定该目标数字资产与该目标货币之间的兑换关系。
需要说明的是,与(1)中的资产创建交易类似地,上述资产创建交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
在示出的一种实施方式中,可以由与上述区块链对接的链外支付系统维护数字资产与货币之间的兑换关系。在这种情况下,为了确定上述目标数字资产与上述目标货币之间的兑换关系,可以获取该链外支付系统维护的该目标数字资产与该目标货币之间的兑换关系。
其中,上述链外支付系统即为不包含区块链的支付系统;该链外支付系统可以是由上述资产管理方提供的链外支付系统,也可以是由可信的第三方提供的链外支付系统。
在上述资产创建交易为上述新的交易类型时,可以运行与该资产创建交易对应的区块链的原生代码,生成用于获取上述兑换关系的指示信息,并将该指示信息在上述区块链中进行存储。上述链外支付系统在获取到该区块链中存储的该指示信息时,可以对该指示信息进行响应,将其维护的该兑换关系发布至该区块链进行存储,从而使该区块链中的节点设备可以从该区块链中获取到该链外支付系统维护的该兑换关系。
或者,在上述资产创建交易为上述智能合约调用交易时,可以运行部署在上述区块链上的与该资产创建交易对应的智能合约中的合约代码,由该智能合约通过Oracle预言机,来访问上述链外支付系统中的数据,以获取该链外支付系统维护的上述兑换关系。
在示出的一种实施方式中,数字资产与货币之间的兑换关系,可以包括与单位数量的该货币价值锚定的该数字资产的资产数额。
举例来说,假设上述目标数字资产为虚拟积分,上述目标货币为美元,则该目标数字资产与该目标货币之间的兑换关系,可以包括与1美元价值锚定的虚拟积分的积分数量。
在实现时,可以由与上述区块链对接的链外支付系统维护上述目标数字资产与作为基准货币的某一货币之间的兑换关系,以及各种货币与该基准货币之间的汇率信息(即单位数量的该基准货币可以兑换的各种货币的资金数额)。在这种情况下,该链外支付系统可以基于上述目标货币与该基准货币之间的汇率信息,以及该目标数字资产与该基准货币之间的兑换关系,计算该目标数字资产与该目标货币之间的兑换关系;后续,该链外支付系统可以将计算得到的该兑换关系发布至该区块链进行存储,从而使该区块链中的节点设备可以从该区块链中获取到计算得到的该兑换关系;或者,可以由用于在该区块链上创建上述资产账户的智能合约通过Oracle预言机,来访问上述链外支付系统中的数据,以获取计算得到的该兑换关系。
或者,可以由上述智能合约通过Oracle预言机,来访问上述链外支付系统中的数据,以获取上述目标货币与该基准货币之间的汇率信息,以及上述目标数字资产与该基准货币之间的兑换关系,并基于获取到的汇率信息和兑换关系,计算该目标数字资产与该目标货币之间的兑换关系。
举例来说,假设上述目标数字资产为虚拟积分,上述基准货币为人民币,上述目标货币为美元,该目标数字资产与人民币之间的兑换关系为100:1(即100虚拟积分与1元人民币价值锚定),1人民币可以兑换数量为A的美元,则该目标数字资产与美元之间的兑换关系为100×A。
在示出的一种实施方式中,由于不同货币之间的汇率信息通常会随时间而发生变化,因此上述目标数字资产与上述目标货币之间的兑换关系也会随之变化。在这种情况下,与上述区块链对接的链外支付系统可以在其维护的上述目标数字资产与上述目标货币之间的兑换关系更新时,将用于更新该兑换关系的兑换关系更新交易发布至上述区块链;其中,该兑换关系更新交易可以包括该兑换关系的更新信息。
需要说明的是,与上述资产创建交易类似地,上述兑换关系更新交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
后续,上述区块链中的节点设备在接收到上述兑换关系更新交易时,可以对该兑换关系更新交易进行响应,基于该兑换关系更新交易中的上述兑换关系的更新信息,对上述资产账户中的上述第二字段中填充的兑换关系进行更新。
举例来说,假设上述兑换关系的更新信息包括更新后的上述兑换关系,则可以将上述资产账户中的上述第二字段中填充的兑换关系,替换为更新后的该兑换关系。
或者,假设上述兑换关系的更新信息包括该兑换关系的变化值,则可以计算该资产账户中的该第二字段中填充的兑换关系与该兑换关系的变化值之和,并将该资产账户中的该第二字段中填充的兑换关系,替换为计算得到的和值。
需要说明的是,上述兑换关系更新交易可以是针对一个或多个特定的资产账户的兑换关系更新交易。
举例来说,该兑换关系更新交易中还可以包括需要更新的资产账户的账户地址。在这种情况下,可以基于该兑换关系更新交易中的上述兑换关系的更新信息,对该资产账户中的上述第二字段中填充的兑换关系进行更新。
或者,上述兑换关系更新交易可以是针对在上述区块链上创建的所有资产账户的兑换关系更新交易。在这种情况下,可以遍历在该区块链上创建的所有资产账户,以确定上述第二字段中填充的兑换关系为上述目标数字资产与上述目标货币的兑换关系的资产账户,并基于该兑换关系更新交易中的上述兑换关系的更新信息,分别对确定出的各个资产账户中的上述第二字段中填充的兑换关系进行更新。
上述区块链中的节点设备在确定了上述目标数字资产与上述目标货币之间的兑换关系的情况下,可以进一步在上述区块链上创建用于持有该目标数字资产的上述资产账户,并将该目标货币的币种信息填充至该资产账户中的上述第一字段,以及将该目标数字资产与该目标货币之间的兑换关系填充至该资产账户中的上述第二字段。
需要说明的是,对于上述资产账户而言,该资产账户持有的数字货币可以与多种货币进行价值锚定;相应地,该资产账户中可以维护所持有的数字货币与价值锚定的多种货币的兑换关系。在这种情况下,该资产账户中的上述第一字段中的币种信息,与该资产账户中上述第二字段中的兑换关系之间,存在一一对应的关系。
举例来说,假设某一资产账户持有的数字货币与人民币和美元进行价值锚定,则该资产账户中的上述第一字段中填充的币种信息包括:与人民币对应的币种信息,以及与美元对应的币种信息;该资产账户中的上述第二字段中填充的兑换关系包括:所持有的数字资产与人民币之间的兑换关系,以及所持有的数字资产与美元之间的兑换关系。
在示出的一种实施方式中,在上述区块链上创建上述资产账户之前,可以先由与上述区块链对接的链外支付系统对链外的资金账户持有的上述目标货币进行冻结,并生成对应的冻结凭证;其中,该冻结凭证可以用于合法性校验。在这种情况下,上述资产创建交易还可以包括该链外支付系统对该资金账户持有的该目标货币进行冻结的该冻结凭证。
需要说明的是,步骤306中的链外支付系统,与步骤304中的链外支付系统可以是同一个链外支付系统,也可以是不同的链外支付系统。
在实现时,上述资金账户可以包括上述需要在区块链上创建资产账户的用户的链外的资金账户。具体地,该资金账户可以包括该用户在上述链外支付系统上开通的资金账户。例如,假设该链外支付系统是由上述资产管理方提供的链外支付系统,该资产管理方是银行,则该资金账户可以包括该用户在该银行处开通的资金账户。
为了在上述区块链上创建上述资产账户,可以先对上述冻结凭证进行合法性校验,并在校验通过时,再在该区块链上创建该资产账户。
在实际应用中,针对上述冻结凭证的合法性校验可以基于实际的需求进行设计。
举例来说,对上述冻结凭证进行的合法性校验,可以包括以下示出的任意一种或多种校验方式:校验该冻结凭证中的数字签名是否合法,该数字签名可以是上述链外支付系统在生成该冻结凭证时对该冻结凭证进行签名处理得到的数字签名;校验该冻结凭证中的资金数额与该链外支付系统冻结的上述资金账户持有的上述目标货币的资金数额是否相同;校验该冻结凭证是否在有效期内;等等。
在示出的一种实施方式中,上述资产创建交易还可以包括上述目标货币的资金数额,该资金数额的该目标货币可以兑换成上述资产账户持有的上述目标数字货币;其中,该资金账户持有的该目标货币的资金数额也可以称为该资金账户的账户余额。具体地,该目标货币的资金数额可以是上述链外支付系统冻结的上述资金账户持有的该目标货币的资金数额。
相应地,在区块链上创建的资产账户的账户结构还可以包括:用于填充该资产账户持有的数字资产的资产数额的字段(称为第三字段);其中,该资产账户持有的数字资产的资产数额也可以称为该资产账户的账户余额。
在这种情况下,上述区块链中的节点设备在对上述资产创建交易进行响应时,还可以基于上述目标数字资产与上述目标货币之间的兑换关系,将该资产创建交易中的该目标货币的资金数额,换算为该目标数字资产的资产数额,并将换算出的该目标数字资产的资产数额填充至上述资产账户中的上述第三字段。
需要说明的是,上述链外支付系统在对上述资金账户持有的上述目标货币进行冻结时,可以对该资金账户本身进行冻结,此时,冻结后的该资金账户无法再使用,冻结的该目标货币的资金数额即为该资金账户持有的该目标货币的资金数额的全部;或者,可以对该资金账户持有的该目标货币的部分进行冻结,此时,该资金账户持有的该目标货币的被冻结的部分无法再使用,但未被冻结的部分仍可以正常使用。
举例来说,假设某一资金账户的账户余额为2000元人民币,则可以仅冻结该资金账户中的1500元人民币,该资金账户中的剩余的500元人民币仍可以正常使用。
在实际应用中,冻结的上述资金账户持有的上述目标货币可以视为上述资产账户持有的上述目标数字资产的备付金。
在示出的一种实施方式中,上述资产管理方或者在区块链上创建了上述资产账户的用户,还可以在需要对该资产账户持有的上述目标数字资产进行兑换时,将针对该资产账户的资产兑换交易发布至上述区块链;其中,该资产兑换交易可以包括待兑换的该目标数字资产的资产数额。
需要说明的是,与上述资产创建交易类似地,上述资产兑换交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
后续,上述区块链中的节点设备在接收到该资产兑换交易时,可以对该资产兑换交易进行响应,一方面,可以基于该资产兑换交易中的上述目标数字资产的资产数额,对上述资产账户中上述第三字段中填充的资产数额进行更新。具体地,可以计算该资产账户中的该第三字段中填充的资产数额与该资产兑换交易中的该目标数字资产的资产数额之差,并将该资产账户中的该第三字段中填充的资产数额,替换为计算得到的差值。
另一方面,可以基于该资产账户中的上述第二字段中填充的兑换关系,将上述目标数字资产的资产数额,换算为上述目标货币的资金数额,从而使上述链外支付系统可以从已经冻结的上述资金账户持有的该目标货币中,解冻出换算出的与该资金数额对应的该目标货币。具体地,可以将换算出的该资金数额发布至该区块链进行存储,从而使该链外支付系统可以获取该区块链中存储的该资金数额,并从已经冻结的该资金账户持有的该目标货币中,解冻出与该资金数额对应的该目标货币。
在实际应用中,上述资产管理方或者上述在区块链上创建了上述资产账户的用户,还可以在需要对该资产账户持有的上述目标数字资产进行充值时,通过上述链外支付系统再次对在该区块链上创建的上述资金账户持有的上述目标货币进行冻结,并将针对该资产账户的资产充值交易发布至该区块链;其中,该资产充值交易可以包括该链外支付系统再次冻结的该资金账户持有的该目标货币的资金数额。
上述区块链中的节点设备在接收到上述资产充值交易时,可以对该资产充值交易进行响应,基于上述资产账户中的上述第二字段中填充的兑换关系,将该资产充值交易中的该目标货币的资金数额,换算为该目标数字资产的资产数额,并基于换算出的该目标数字资产的资产数额,对该资产账户中的上述第三字段中填充的资产数额进行更新。
举例来说,可以计算换算出的上述目标数字资产的资产数额与上述资产账户中的上述第三字段中填充的资产数额的和值,并将该资产账户中的该第三字段中填充的资产数额替换为该和值。
需要说明的是,与上述资产创建交易类似地,上述资产充值交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
在示出的一种实施方式中,为了便于识别资产账户持有的数字资产的种类,在区块链上创建的资产账户的账户结构还可以包括:用于填充该资产账户持有的数字资产的资产标识的字段(称为第四字段)。
请参考图2,图2是本说明书一示例性实施例示出的一种在区块链上创建的资产账户的示意图。
如图2所示,上述资产账户用于持有在区块链上创建的数字资产;该资产账户的账户结构可以包括:用于填充该数字资产价值锚定的货币的币种信息的第一字段(即图2中的“币种”字段);用于填充该数字资产与价值锚定的货币之间的兑换关系的第二字段(即图2中的“兑换关系”字段);用于填充该数字资产的资产数额的第三字段(即图2中的“余额”字段);用于填充该数字资产的资产标识的第四字段(即图2中的“资产标识”字段)。
下面对本说明书中的实施例进行举例说明。
假设链外的支付系统对链外的资金账户持有的目标货币进行了冻结;其中,冻结的该目标货币的资金数额为100元人民币。
区块链中的节点设备可以接收用于创建资产账户的资产创建交易;其中,该资产账户用于持有在该区块链上创建的目标数字资产,该目标数字资产与该目标货币价值锚定,该资产创建交易中包括该目标货币的币种信息、冻结的该目标货币的资金数额和冻结凭证。
该区块链中的节点设备在接收到该资产创建交易时,可以对该资产创建交易进行响应,从该链外的支付系统处获取该目标数字资产与该目标货币之间的兑换关系,其中,假设该目标数字资产与该目标货币之间的兑换关系为100:1,并基于该目标数字资产与该目标货币之间的兑换关系,将冻结的该目标货币的资金数额换算为该目标数字资产的资产数额,其中,换算出的该目标数字资产的资产数额为100×100=10000。在这种情况下,该区块链中的节点设备可以在对该冻结凭证的合法性校验通过后,在该区块链上创建该资产账户,并在该资产账户的第一字段中填充“人民币”作为该目标货币的币种信息,在该资产账户的第二字段中填充“100:1”作为该目标数字资产与该目标货币之间的兑换关系,在该资产账户的第三字段中填充“10000”作为该资产账户持有的该目标数字资产的资产数额,在该资产账户的第四字段中填充该目标数字资产的资产标识(例如:“A类虚拟积分”)。
(b)在另一种实现方式中,除了可以在区块链支持的账户类型的基础上,再扩展出一种资金账户之外,还可以再扩展出一种资产账户;扩展出的该资产账户可以用于持有在区块链上创建的数字资产。
其中,上述资产账户的账户结构可以包括:用于填充该资产账户持有的数字资产的资产数额的字段(称为第一字段)。
需要说明的是,上述资产账户中的上述第一字段等字段,可以是对传统的账户的结构体中的Balance字段进行扩展,扩展出的多个字段,也即,该资产账户的账户结构中仍然可以包括Nonce、Code、Storage等字段。或者,该资产账户的账户结构也可以不包括Balance、Nonce、Code、Storage等字段,而仅包括该第一字段等字段。
为了触发在上述区块链上创建上述资产账户的流程,可以向该区块链发布一笔用于在该区块链上创建该资产账户的交易(称为资产创建交易)。上述区块链中的节点设备可以接收到发布至该区块链的该资产创建交易,并对该资产创建交易进行响应,以在该区块链上创建该资产账户。
其中,上述资产账户可以用于持有在该区块链上创建的某一数字资产(称为目标数字资产);上述资产创建交易可以包括该资产账户价值锚定的资金账户的账户标识。
需要说明的是,由于上述资产账户与上述资金账户价值锚定,因此该资产账户和该资金账户可以共享该资金账户持有的货币(称为目标货币)的相关信息。
上述区块链中的节点设备在对上述资产创建交易进行响应时,由于该资产创建包括上述资金账户的账户标识,因此可以先获取与该账户标识对应的该资金账户,再确定该资金账户持有的上述目标货币的资金数额,并计算与该资金数额的该目标货币价值匹配的上述目标数字资产的资产数额;其中,该资金账户持有的该目标货币的资金数额也可以称为该资金账户的账户余额。
需要说明的是,与(1)中的资产创建交易类似地,上述资产创建交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
在示出的一种实施方式中,由于上述资产账户和上述资金账户可以共享该资金账户持有的上述目标货币的相关信息,因此,该资产账户的账户结构还可以包括:用于填充该目标货币的币种信息的字段(称为第二字段)。在这种情况下,可以确定该目标货币的币种信息,并将该目标货币的币种信息填充至该资产账户中的该第二字段。
在示出的一种实施方式中,由于上述资金账户的账户结构可以包括上述第一字段;其中,该第一字段用于填充该资金账户持有的货币的币种信息,因此可以将该资金账户中的该第一字段中填充的币种信息,确定为上述目标货币的币种信息。
在示出的一种实施方式中,由于上述资产账户和上述资金账户可以共享该资金账户持有的上述目标货币的相关信息,因此,该资产账户的账户结构还可以包括:用于填充上述目标数字资产与该目标货币之间的兑换关系的字段(称为第三字段);其中,该资产账户持有的该目标数字资产的资产数额也可以称为该资产账户的账户余额。
在这种情况下,一方面,可以确定上述目标数字资产与上述目标货币之间的兑换关系,并将确定出的该兑换关系填充至上述资产账户中的上述第三字段。
另一方面,在计算与上述资金数额的上述目标货币价值匹配的上述目标数字资产的资产数额时,可以基于该目标数字资产与该目标货币之间的兑换关系,将该目标货币的该资金金额换算为该目标数字资产的资产数额。
在示出的一种实施方式中,可以由与上述区块链对接的链外支付系统维护数字资产与货币之间的兑换关系。在这种情况下,为了确定上述目标数字资产与上述目标货币之间的兑换关系,可以获取该链外支付系统维护的该目标数字资产与该目标货币之间的兑换关系。
其中,上述链外支付系统即为不包含区块链的支付系统;该链外支付系统可以是由上述资产管理方提供的链外支付系统,也可以是由可信的第三方提供的链外支付系统。
在上述资产创建交易为上述新的交易类型时,可以运行与该资产创建交易对应的区块链的原生代码,生成用于获取上述兑换关系的指示信息,并将该指示信息在上述区块链中进行存储。上述链外支付系统在获取到该区块链中存储的该指示信息时,可以对该指示信息进行响应,将其维护的该兑换关系发布至该区块链进行存储,从而使该区块链中的节点设备可以从该区块链中获取到该链外支付系统维护的该兑换关系。
或者,在上述资产创建交易为上述智能合约调用交易时,可以运行部署在上述区块链上的与该资产创建交易对应的智能合约中的合约代码,由该智能合约通过Oracle预言机,来访问上述链外支付系统中的数据,以获取该链外支付系统维护的上述兑换关系。
在示出的一种实施方式中,数字资产与货币之间的兑换关系,可以包括与单位数量的该货币价值锚定的该数字资产的资产数额。
在实现时,可以由与上述区块链对接的链外支付系统维护上述目标数字资产与作为基准货币的某一货币之间的兑换关系,以及各种货币与该基准货币之间的汇率信息(即单位数量的该基准货币可以兑换的各种货币的资金数额)。在这种情况下,该链外支付系统可以基于上述目标货币与该基准货币之间的汇率信息,以及该目标数字资产与该基准货币之间的兑换关系,计算该目标数字资产与该目标货币之间的兑换关系;后续,该链外支付系统可以将计算得到的该兑换关系发布至该区块链进行存储,从而使该区块链中的节点设备可以从该区块链中获取到计算得到的该兑换关系;或者,可以由用于在该区块链上创建上述资产账户的智能合约通过Oracle预言机,来访问上述链外支付系统中的数据,以获取计算得到的该兑换关系。
或者,可以由上述智能合约通过Oracle预言机,来访问上述链外支付系统中的数据,以获取上述目标货币与该基准货币之间的汇率信息,以及上述目标数字资产与该基准货币之间的兑换关系,并基于获取到的汇率信息和兑换关系,计算该目标数字资产与该目标货币之间的兑换关系。
在示出的一种实施方式中,由于不同货币之间的汇率信息通常会随时间而发生变化,因此上述目标数字资产与上述目标货币之间的兑换关系也会随之变化。在这种情况下,与上述区块链对接的链外支付系统可以在其维护的上述目标数字资产与上述目标货币之间的兑换关系更新时,将用于更新该兑换关系的兑换关系更新交易发布至上述区块链;其中,该兑换关系更新交易可以包括该兑换关系的更新信息。
需要说明的是,与上述资产创建交易类似地,上述兑换关系更新交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
后续,上述区块链中的节点设备在接收到上述兑换关系更新交易时,可以对该兑换关系更新交易进行响应,基于该兑换关系更新交易中的上述兑换关系的更新信息,对上述资产账户中的上述第三字段中填充的兑换关系进行更新。
需要说明的是,上述兑换关系更新交易可以是针对一个或多个特定的资产账户的兑换关系更新交易。
在示出的一种实施方式中,在上述区块链上创建上述资产账户之前,可以先对上述资金账户持有的上述目标货币进行冻结。在这种情况下,上述区块链中的节点设备在计算与上述资金数额的上述目标货币价值匹配的上述目标数字资产的资产数额时,可以基于该目标数字资产与该目标货币之间的兑换关系,将该冻结的上述资金账户持有的该目标货币的资金数额,换算为该目标数字资产的资产数额。
需要说明的是,在对上述资金账户持有的上述目标货币进行冻结时,可以对该资金账户本身进行冻结,此时,冻结后的该资金账户无法再使用,冻结的该目标货币的资金数额即为该资金账户持有的该目标货币的资金数额的全部;或者,可以对该资金账户持有的该目标货币的部分进行冻结,此时,该资金账户持有的该目标货币的被冻结的部分无法再使用,但未被冻结的部分仍可以正常使用。
在实际应用中,冻结的上述资金账户持有的上述目标货币可以视为上述资产账户持有的上述目标数字资产的备付金。
上述区块链中的节点设备在计算得到了上述目标数字资产的资产数额的情况下,可以进一步在上述区块链上创建用于持有该目标数字资产的资产账户,并将该资金数额填充至该资产账户中的上述第一字段。
在示出的一种实施方式中,上述资产管理方或者在区块链上创建了上述资产账户的用户,还可以在需要对该资产账户持有的上述目标数字资产进行兑换时,将针对该资产账户的资产兑换交易发布至上述区块链;其中,该资产兑换交易可以包括待兑换的该目标数字资产的资产数额。
需要说明的是,与上述资产创建交易类似地,上述资产兑换交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
后续,上述区块链中的节点设备在接收到该资产兑换交易时,可以对该资产兑换交易进行响应,一方面,可以基于该资产兑换交易中的上述目标数字资产的资产数额,对上述资产账户中上述第三字段中填充的资产数额进行更新。具体地,可以计算该资产账户中的该第三字段中填充的资产数额与该资产兑换交易中的该目标数字资产的资产数额之差,并将该资产账户中的该第三字段中填充的资产数额,替换为计算得到的差值。
另一方面,可以基于该资产账户中的上述第三字段中填充的兑换关系,将上述目标数字资产的资产数额,换算为上述目标货币的资金数额,从而可以从已经冻结的上述资金账户持有的该目标货币中,解冻出换算出的与该资金数额对应的该目标货币。
在实际应用中,上述资产管理方或者上述在区块链上创建了上述资产账户的用户,还可以在需要对该资产账户持有的上述目标数字资产进行充值时,再次对在该区块链上创建的上述资金账户持有的上述目标货币进行冻结,并将针对该资产账户的资产充值交易发布至该区块链;其中,该资产充值交易可以包括再次冻结的该资金账户持有的该目标货币的资金数额。
上述区块链中的节点设备在接收到上述资产充值交易时,可以对该资产充值交易进行响应,基于上述资产账户中的上述第三字段中填充的兑换关系,将该资产充值交易中的该目标货币的资金数额,换算为该目标数字资产的资产数额,并基于换算出的该目标数字资产的资产数额,对该资产账户中的上述第一字段中填充的资产数额进行更新。
需要说明的是,与上述资产创建交易类似地,上述资产充值交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
在示出的一种实施方式中,为了便于识别资产账户持有的数字资产的种类,在区块链上创建的资产账户的账户结构还可以包括:用于填充该资产账户持有的数字资产的资产标识的字段(称为第四字段)。
(3)基于资产账户或资金账户进行商品支付
(a)在一种实现方式中,请参考图3,图3是本说明书一示例性实施例示出的一种基于区块链的资产管理方法的流程图。
在上述基于区块链的资产管理方法中,可以基于(2)中在区块链上创建的,用于持有数字资产的资产账户进行商品支付;该方法可以包括以下步骤:
步骤302:接收购买方发起的针对目标数字商品的第一购买交易;其中,所述目标数字商品的价格由目标货币标定;所述第一购买交易包括用于进行商品支付的第一资产账户的账户标识。
为了触发商品支付的流程,用户(称为购买方)在使用上述资产账户,针对需要购买的某一数字商品(称为目标数字商品)进行商品支付时,可以发起针对该目标数字商品的购买交易(称为第一购买交易),并将该第一购买交易发布至区块链,从而使该区块链中的节点设备可以接收到该第一购买交易。
其中,一方面,数字商品可以包括手机充值卡、网络游戏道具等可以数字化的商品;上述目标数字商品的价格可以由某一货币(称为目标货币)标定。例如,假设该目标数字商品的价格为100元人民币,则说明该目标数字商品的价格由人民币标定。
另一方面,上述第一购买交易可以包括用于进行商品支付的资产账户(称为第一资产账户)的账户标识。该第一资产账户可以是上述购买方的资产账户,即该购买方具有该第一资产账户的使用权限。
在实际应用中,上述资产账户的账户标识可以是该资产账户的账户地址、该资产账户的账户密钥等,能够唯一标识该资产账户的信息。
需要说明的是,与(1)中的资产创建交易类似地,上述第一购买交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
步骤304:响应于所述第一购买交易,获取所述第一资产账户中的所述第一字段中填充的币种信息,并确定与所述币种信息对应的货币是否匹配所述目标货币;如果是,进一步获取所述第一资产账户中的所述第二字段中填充的兑换关系,并基于所述兑换关系,计算与所述目标数字商品的价格价值锚定的目标数字资产的目标资产数额。
上述区块链中的节点设备在接收到上述第一购买交易时,可以对该第一购买交易进行响应;由于该第一购买交易包括上述第一资产账户的账户标识,因此可以先获取与该账户标识对应的该第一资产账户,再获取该第一资产账户中的上述第一字段中填充的币种信息,并确定与该币种信息对应的货币是否匹配上述目标货币。
如果与上述币种信息对应的货币与上述目标货币匹配,说明上述第一资产账户持有的数字资产(称为目标数字资产)与该目标货币价值锚定,因此可以使用该第一资产账户针对上述目标数字商品进行商品支付。在这种情况下,可以进一步获取该第一资产账户中的上述第二字段中填充的兑换关系,并基于该兑换关系,计算与该目标数字商品的价格价值锚定的该目标数字资产的资产数额(称为目标资产数额),即基于该兑换关系,将与该目标数字商品的价格对应的该目标货币的资金数额,换算为该目标资产数额。例如,假设上述目标数字商品的价格为50元人民币;进一步假设上述目标数字资产为虚拟积分,上述第一资产账户中的上述第二字段中的兑换关系为100:1,则可以计算得到与该目标数字商品的价格价值锚定的虚拟积分的积分数量为5000。
需要说明的是,由于上述第一资产账户持有的数字货币可以与多种货币进行价值锚定,因此,在确定与上述币种信息对应的货币是否匹配上述目标货币时,可以确定该第一资产账户中的上述第一字段中填充的多种币种信息,是否包含该目标货币的币种信息。如果这多种币种信息包含该目标货币的币种信息,可以认为与该第一资产账户中的该第一字段中填充的币种信息对应的货币,与该目标货币匹配。
而在获取上述第一资产账户中的上述第二字段中填充的兑换关系时,可以获取其中的上述目标数字资产与上述目标货币之间的兑换关系。
步骤306:从所述第一资产账户向第二资产账户转移与所述目标资产数额对应的所述目标数字资产,以完成针对所述目标数字商品的商品支付;其中,所述第二资产账户为所述目标数字商品的出售方的用于持有所述目标数字资产的资产账户。
在计算得到上述目标资产数额的情况下,可以进一步从上述第一资产账户向另一资产账户(称为第二资产账户),转移与该目标资产数额对应的上述目标数字资产,以完成针对上述目标数字商品的商品支付。
需要说明的是,上述第二资产账户为上述目标数字商品的出售方的资产账户,即该出售方具有该第二资产账户的使用权限;并且,该第二资产账户也用于持有上述目标数字资产,即与该第二资产账户中的上述第一字段中的币种信息对应的货币也与上述目标货币匹配。
在示出的一种实施方式中,在从上述第一资产账户向上述第二资产账户转移与上述目标资产数额对应的上述目标数字资产时,可以基于该目标资产数额,对该第一资产账户和该第二资产账户中的上述第三字段中填充的资产数额分别进行更新,以完成针对上述目标数字商品的商品支付。
具体地,一方面,可以计算上述第一资产账户中的上述第三字段中填充的资产数额与上述目标资产数额的差值,并将该第一资产账户中的该第三字段中填充的资产数额,替换为计算得到的差值。
另一方面,可以计算上述目标资产数额与上述第二资产账户中的上述第三字段中填充的资产数额的和值,并将该第二资产账户中的该第三字段中填充的资产数额,替换为计算得到的和值。
以如图1所示的资产账户为例,假设上述目标数字商品的价格为50元人民币,则在该资产账户为上述第一资产账户时,可以将该第一资产账户中的上述第三字段中填充的资产数额更新为5000;在该资产账户为上述第二资产账户时,可以将该第二资产账户中的上述第三字段中填充的资产数额更新为15000。
在上述基于区块链的资产管理方法中,还可以基于(1)中在区块链上创建的用于持有货币的资金账户进行商品支付;如图4所示的流程图,该方法还可以包括以下步骤:
步骤308:接收购买方发起的针对所述目标数字商品的第二购买交易;其中,所述第二购买交易包括用于进行商品支付的第一资金账户的账户标识。
上述购买方在使用上述资金账户,针对上述目标数字商品进行商品支付时,可以发起针对该目标数字商品的购买交易(称为第二购买交易),并将该第二购买交易发布至区块链,从而使该区块链中的节点设备可以接收到该第二购买交易。
其中,该第二购买交易可以包括用于进行商品支付的资金账户(称为第一资金账户)的账户标识;该第一资金账户可以是该购买方的资金账户,即该购买方具有该第一资金账户的使用权限。
需要说明的是,与上述第一购买交易类似地,上述第二购买交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
在实际应用中,上述购买方可以基于上述第一资产账户和上述第一资金账户购买相同的数字商品,也可以购买不同的数字商品,即步骤308和302中的目标数字商品可以相同,也可以不同;本说明书对此不作限制。
步骤310:响应于所述第二购买交易,获取所述第一资金账户中的所述第一字段中填充的币种信息,并确定与所述币种信息对应的货币是否匹配所述目标货币;如果是,进一步从所述第一资金账户向第二资金账户转移与所述目标数字商品的价格对应的所述目标货币的目标资金数额,以完成针对所述目标数字商品的商品支付;其中,所述第二资金账户为所述目标数字商品的出售方的用于持有所述目标货币的资金账户。
上述区块链中的节点设备在接收到上述第二购买交易时,可以对该第二购买交易进行响应,获取上述第一资金账户中的上述第一字段中填充的币种信息,并确定与该币种信息对应的货币是否匹配上述目标货币。
如果与上述币种信息对应的货币与上述目标货币匹配,说明上述第一资金账户持有的货币包括该目标货币,因此可以使用该第一资金账户针对上述目标数字商品进行商品支付,此时,可以进一步从该第一资金账户向另一资金账户(称为第二资金账户),转移与该目标数字商品的价格对应的该目标货币,以完成针对该目标数字商品的商品支付。
需要说明的是,上述第二资金账户为上述目标数字商品的出售方的资金账户,且该第二资金账户也用于持有上述目标货币,即与该第二资金账户中的上述第一字段中的币种信息对应的货币也与该目标货币匹配。
在示出的一种实施方式中,在从上述第一资金账户向上述第二资金账户转移与上述目标数字商品的价格对应的上述目标货币时,可以先确定与该目标数字商品的价格对应的该目标货币的资金数额(称为目标资金数额),是否超过该第一资金账户中的上述第二字段中填充的信用额度与该第一资金账户中的上述第三字段中填充的信用已使用额的差值。
如果上述目标资金数额未超过上述差值,说明上述第一资金账户的剩余的信用额度足以针对上述目标数字商品进行商品支付,因此后续,可以基于该目标资金数额,对该第一资金账户和上述第二资金账户中的上述第三字段中填充的信用已使用额分别进行更新,以完成针对该目标数字商品的商品支付。
具体地,一方面,可以计算上述目标资金数额与上述第一资金账户中的上述第三字段中填充的信用已使用额的和值,并将该第一资金账户中的该第三字段中填充的信用已使用额,替换为计算得到的和值。
另一方面,可以计算上述第二资金账户中的上述第三字段中填充的信用已使用额与上述目标资金数额的差值,并将该第二资金账户中的该第三字段中填充的信用已使用额,替换为计算得到的差值。
在示出的另一种实施方式中,在从上述第一资金账户向上述第二资金账户转移与上述目标数字商品的价格对应的上述目标货币时,可以先确定上述目标资金数额与该第一资金账户中的上述第四字段中填充的资金数额的第一差值,是否超过该第一资金账户中的上述第二字段中填充的信用额度与该第一资金账户中的上述第三字段中填充的信用已使用额的第二差值。
如果上述第一差值未超过上述第二差值,说明上述第一资金账户的剩余的资金数额和信用额度足以针对上述目标数字商品进行商品支付,因此后续,可以基于该目标资金数额,对该第一资金账户和上述第二资金账户中的上述第三字段中填充的信用已使用额,以及该第一资金账户和上述第二资金账户中的上述第四字段中填充的资金数额分别进行更新,以完成针对该目标数字商品的商品支付。
具体地,如果上述第一差值小于或等于0,说明上述目标资金数额未超过上述第一资金账户的余额,即可以仅使用该第一资金账户的余额针对上述目标数字商品进行商品支付,因此一方面,可以计算该第一资金账户中的上述第四字段中填充的资金数额与该目标资金数额的差值,并将该第一资金账户中的该第四字段中填充的资金数额,替换为计算得到的差值;另一方面,可以计算该目标资金数额与上述第二资金账户中的上述第四字段中填充的资金数额的和值,并将该第二资金账户中的该第四字段中填充的资金数额,替换为计算得到的和值;此时,可以不对该第一资金账户中的上述第三字段中填充的信用已使用额进行更新。
如果上述第一差值大于0,说明上述目标资金数额超过上述第一资金账户的余额,即需要使用该第一资金账户的余额和剩余的信用额度针对上述目标数字商品进行商品支付,因此一方面,可以直接将该第一资金账户中的上述第四字段中填充的资金数额更新为0,并计算该第一差值的绝对值与该第一资金账户中的上述第三字段中填充的信用已使用额的和值,并将该第一资金账户中的该第三字段中填充的信用已使用额,替换为计算得到的和值;另一方面,可以计算该目标资金数额与上述第二资金账户中的上述第四字段中填充的资金数额的和值,并将该第二资金账户中的该第四字段中填充的资金数额,替换为计算得到的和值。
以如图2所示的资金账户为例,假设上述目标数字商品的价格为50元人民币,则在该资金账户为上述第一资金账户时,可以将该第一资金账户中的上述第四字段中填充的资金数额更新为950;在该资金账户为上述第二资金账户时,可以将该第二资金账户中的上述第四字段中填充的资金数额更新为1050。
在另一个例子中,假设上述目标数字商品的价格为2000元人民币,则在该资金账户为上述第一资金账户时,可以将该第一资金账户中的上述第四字段中填充的资金数额更新为0,并将该第一资金账户中的上述第三字段中填充的信用已使用额更新为4000;在该资金账户为上述第二资金账户时,可以将该第二资金账户中的上述第四字段中填充的资金数额更新为3000。
(b)在另一种实现方式中,请参考图5,图5是本说明书一示例性实施例示出的另一种基于区块链的资产管理方法的流程图。
在上述基于区块链的资产管理方法中,可以基于(2)中在区块链上创建的,用于持有数字资产的资产账户进行商品支付;该方法可以包括以下步骤:
步骤502:接收购买方发起的针对目标数字商品的购买交易;其中,所述目标数字商品的价格由目标货币标定;所述购买交易包括所述购买方的用户标识。
为了触发商品支付的流程,上述购买方在针对上述目标数字商品进行商品支付时,可以发起针对该目标数字商品的购买交易,并将该购买交易发布至区块链,从而使该区块链中的节点设备可以接收到该购买交易。
其中,该目标数字商品的价格由上述目标货币标定;该购买交易可以包括该购买方的用户标识。
在实际应用中,上述购买方的用户标识可以是该购买方的登录账户、该购买方的手机号码或身份证号、该购买方的指纹、人脸等生物特征等,能够唯一标识该购买方的信息。
需要说明的是,与(1)中的资产创建交易类似地,上述购买交易可以是扩展出的区块链支持的新的交易类型,也可以是智能合约调用交易;本说明书在此不再赘述。
步骤504:响应于所述购买交易,获取与所述用户标识对应的第一资产账户;其中,与所述第一资产账户中的所述第一字段中填充的币种信息对应的货币与所述目标货币匹配。
上述区块链中的节点设备在接收到上述第一购买交易时,可以对该第一购买交易进行响应,获取与上述用户标识对应的上述第一资产账户。
其中,与上述第一资产账户中的上述第一字段中的币种信息对应的货币与上述目标货币匹配,即该第一资产账户持有的上述目标数字资产与该目标货币价值锚定,因此可以使用该第一资产账户针对上述目标数字商品进行商品支付。
需要说明的是,由于上述第一资产账户持有的数字货币可以与多种货币进行价值锚定,因此,针对任一资产账户,可以确定该资产账户中的上述第一字段中填充的多种币种信息,是否包含该目标货币的币种信息。如果这多种币种信息包含该目标货币的币种信息,可以认为与该资产账户中的该第一字段中的币种信息对应的货币与该目标货币匹配,即可以将该资产账户作为上述第一资产账户。
步骤506:获取所述第一资产账户中的所述第二字段中填充的兑换关系,并基于所述兑换关系,计算与所述目标数字商品的价格价值锚定的目标数字资产的目标资产数额,再从所述第一资产账户向第二资产账户转移与所述目标资产数额对应的所述目标数字资产,以完成针对所述目标数字商品的商品支付;其中,所述第二资产账户为所述目标数字商品的出售方的用于持有所述目标数字资产的资产账户。
在获取了上述第一资产账户的情况下,可以进一步获取该第一资产账户中的上述第二字段中填充的兑换关系,并基于该兑换关系,计算与上述目标数字商品的价格价值锚定的上述目标数字资产的上述目标资产数额,即基于该兑换关系,将与该目标数字商品的价格对应的该目标货币的资金数额,换算为该目标资产数额。后续,可以进一步从该第一资产账户向上述第二资产账户转移与该目标资产数额对应的该目标数字资产,以完成针对该目标数字商品的商品支付。
需要说明的是,一方面,在获取上述第一资产账户中的上述第二字段中填充的兑换关系时,可以获取其中的上述目标数字资产与上述目标货币之间的兑换关系。
另一方面,上述第二资产账户为上述目标数字商品的出售方的资产账户,即该出售方具有该第二资产账户的使用权限;并且,该第二资产账户也用于持有上述目标数字资产,即与该第二资产账户中的上述第一字段中的币种信息对应的货币也与上述目标货币匹配。
在示出的一种实施方式中,在从上述第一资产账户向上述第二资产账户转移与上述目标资产数额对应的上述目标数字资产时,可以基于该目标资产数额,对该第一资产账户和该第二资产账户中的上述第三字段中填充的资产数额分别进行更新,以完成针对上述目标数字商品的商品支付。
具体地,一方面,可以计算上述第一资产账户中的上述第三字段中填充的资产数额与上述目标资产数额的差值,并将该第一资产账户中的该第三字段中填充的资产数额,替换为计算得到的差值。
另一方面,可以计算上述目标资产数额与上述第二资产账户中的上述第三字段中填充的资产数额的和值,并将该第二资产账户中的该第三字段中填充的资产数额,替换为计算得到的和值。
在上述基于区块链的资产管理方法中,还可以基于(1)中在区块链上创建的用于持有货币的资金账户进行商品支付;如图6所示的流程图,该方法具体可以包括以下步骤:
步骤502:接收购买方发起的针对目标数字商品的购买交易;其中,所述目标数字商品的价格由目标货币标定;所述购买交易包括所述购买方的用户标识。
步骤508:响应于所述购买交易,确定用于针对所述目标数字商品进行商品支付的支付账户是否为所述资产账户或所述资金账户。
在实际应用中,上述购买方可以指定用于针对上述目标数字商品进行商品支付的支付账户,即该购买方可以指定使用上述资产账户或上述资金账户,针对该目标数字商品进行商品支付。
因此,上述区块链中的节点设备在接收到上述第一购买交易时,可以对该第一购买交易进行响应,先确定上述购买方需要使用的针对上述目标数字商品进行商品支付的支付账户,是上述资产账户,还是上述资金账户。
如果上述支付账户为上述资产账户,可以继续执行下述步骤504至506。
如果上述支付账户为上述资金账户,可以继续执行下述步骤510至512。
步骤504:获取与所述用户标识对应的第一资产账户;其中,与所述第一资产账户中的所述第一字段中填充的币种信息对应的货币与所述目标货币匹配。
步骤506:获取所述第一资产账户中的所述第二字段中填充的兑换关系,并基于所述兑换关系,计算与所述目标数字商品的价格价值锚定的目标数字资产的目标资产数额,再从所述第一资产账户向第二资产账户转移与所述目标资产数额对应的所述目标数字资产,以完成针对所述目标数字商品的商品支付;其中,所述第二资产账户为所述目标数字商品的出售方的用于持有所述目标数字资产的资产账户。
步骤510:获取与所述用户标识对应的第一资金账户;其中,与所述第一资金账户中的所述第一字段中填充的币种信息对应的货币与所述目标货币匹配。
如果上述支付账户为上述资金账户,可以获取与上述用户标识对应的上述第一资金账户;其中,与该第一资金账户中的上述第一字段中的币种信息对应的货币与上述目标货币匹配,即该第一资金账户持有的货币包括该目标货币,因此可以使用该第一资金账户针对上述目标数字商品进行商品支付。
步骤512:从所述第一资金账户向第二资金账户转移与所述目标数字商品的价格对应的所述目标货币,以完成针对所述目标数字商品的商品支付;其中,所述第二资金账户为所述目标数字商品的出售方的用于持有所述目标货币的资金账户。
在获取了上述第一资金账户的情况下,可以进一步从上述第一资金账户向上述第二资金账户转移与上述目标数字商品的价格对应的上述目标货币的上述目标资金数额,以完成针对该目标数字商品的商品支付。
需要说明的是,上述第二资金账户为上述目标数字商品的出售方的资金账户,且该第二资金账户也用于持有上述目标货币,即与该第二资金账户中的上述第一字段中的币种信息对应的货币也与该目标货币匹配。
在示出的一种实施方式中,在从上述第一资金账户向上述第二资金账户转移与上述目标数字商品的价格对应的上述目标货币时,可以先确定与该目标数字商品的价格对应的该目标货币的资金数额(称为目标资金数额),是否超过该第一资金账户中的上述第二字段中填充的信用额度与该第一资金账户中的上述第三字段中填充的信用已使用额的差值。
如果上述目标资金数额未超过上述差值,说明上述第一资金账户的剩余的信用额度足以针对上述目标数字商品进行商品支付,因此后续,可以基于该目标资金数额,对该第一资金账户和上述第二资金账户中的上述第三字段中填充的信用已使用额分别进行更新,以完成针对该目标数字商品的商品支付。
具体地,一方面,可以计算上述目标资金数额与上述第一资金账户中的上述第三字段中填充的信用已使用额的和值,并将该第一资金账户中的该第三字段中填充的信用已使用额,替换为计算得到的和值。
另一方面,可以计算上述第二资金账户中的上述第三字段中填充的信用已使用额与上述目标资金数额的差值,并将该第二资金账户中的该第三字段中填充的信用已使用额,替换为计算得到的差值。
在示出的另一种实施方式中,在从上述第一资金账户向上述第二资金账户转移与上述目标数字商品的价格对应的上述目标货币时,可以先确定上述目标资金数额与该第一资金账户中的上述第四字段中填充的资金数额的第一差值,是否超过该第一资金账户中的上述第二字段中填充的信用额度与该第一资金账户中的上述第三字段中填充的信用已使用额的第二差值。
如果上述第一差值未超过上述第二差值,说明上述第一资金账户的剩余的资金数额和信用额度足以针对上述目标数字商品进行商品支付,因此后续,可以基于该目标资金数额,对该第一资金账户和上述第二资金账户中的上述第三字段中填充的信用已使用额,以及该第一资金账户和上述第二资金账户中的上述第四字段中填充的资金数额分别进行更新,以完成针对该目标数字商品的商品支付。
具体地,如果上述第一差值小于或等于0,说明上述目标资金数额未超过上述第一资金账户的余额,即可以仅使用该第一资金账户的余额针对上述目标数字商品进行商品支付,因此一方面,可以计算该第一资金账户中的上述第四字段中填充的资金数额与该目标资金数额的差值,并将该第一资金账户中的该第四字段中填充的资金数额,替换为计算得到的差值;另一方面,可以计算该目标资金数额与上述第二资金账户中的上述第四字段中填充的资金数额的和值,并将该第二资金账户中的该第四字段中填充的资金数额,替换为计算得到的和值;此时,可以不对该第一资金账户中的上述第三字段中填充的信用已使用额进行更新。
如果上述第一差值大于0,说明上述目标资金数额超过上述第一资金账户的余额,即需要使用该第一资金账户的余额和剩余的信用额度针对上述目标数字商品进行商品支付,因此一方面,可以直接将该第一资金账户中的上述第四字段中填充的资金数额更新为0,并计算该第一差值的绝对值与该第一资金账户中的上述第三字段中填充的信用已使用额的和值,并将该第一资金账户中的该第三字段中填充的信用已使用额,替换为计算得到的和值;另一方面,可以计算该目标资金数额与上述第二资金账户中的上述第四字段中填充的资金数额的和值,并将该第二资金账户中的该第四字段中填充的资金数额,替换为计算得到的和值。
在上述技术方案中,对于在区块链上创建的用于持有数字资产的资产账户而言,由于该资产账户的账户结构中可以包括第一字段和第二字段,其中,该第一字段用于填充该数字资产价值锚定的货币的币种信息,该第二字段用于填充该数字资产与价值锚定的货币之间的兑换关系,因此,相当于为该资产账户赋予了可以与不同币种的货币进行价值锚定,并且可以与价值锚定的不同币种的货币进行自由兑换的能力,从而使该资产账户可以适用于交易币种存在差异的不同的商业场景,提高在利用该资产账户接入不同的商业场景时的灵活性。
与前述基于区块链的资产管理方法的实施例相对应,本说明书还提供了基于区块链的资产管理装置的实施例。
本说明书基于区块链的资产管理装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本说明书基于区块链的资产管理装置所在电子设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该基于区块链的资产管理的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图8,图8是本说明书一示例性实施例示出的一种基于区块链的资产管理装置的框图。该基于区块链的资产管理装置80可以应用于如图7所示的电子设备,该电子设备可以作为区块链中的节点设备;所述区块链支持的账户类型包括资产账户;所述资产账户用于持有在所述区块链上创建的数字资产;所述资产账户的账户结构包括第一字段和第二字段;所述第一字段用于填充所述数字资产价值锚定的货币的币种信息;所述第二字段用于填充所述数字资产与价值锚定的货币之间的兑换关系;该基于区块链的资产管理装置80可以包括:
接收模块801,接收购买方发起的针对目标数字商品的第一购买交易;其中,所述目标数字商品的价格由目标货币标定;所述第一购买交易包括用于进行商品支付的第一资产账户的账户标识;
获取模块802,响应于所述第一购买交易,获取所述第一资产账户中的所述第一字段中填充的币种信息,并确定与所述币种信息对应的货币是否匹配所述目标货币;如果是,进一步获取所述第一资产账户中的所述第二字段中填充的兑换关系,并基于所述兑换关系,计算与所述目标数字商品的价格价值锚定的目标数字资产的目标资产数额;以及,
支付模块803,从所述第一资产账户向第二资产账户转移与所述目标资产数额对应的所述目标数字资产,以完成针对所述目标数字商品的商品支付;其中,所述第二资产账户为所述目标数字商品的出售方的用于持有所述目标数字资产的资产账户。
请参考图9,图9是本说明书一示例性实施例示出的另一种基于区块链的资产管理装置的框图。该基于区块链的资产管理装置90也可以应用于如图7所示的电子设备,该电子设备可以作为区块链中的节点设备;所述区块链支持的账户类型包括资产账户;所述资产账户用于持有在所述区块链上创建的数字资产;所述资产账户的账户结构包括第一字段和第二字段;所述第一字段用于填充所述数字资产价值锚定的货币的币种信息;所述第二字段用于填充所述数字资产与价值锚定的货币之间的兑换关系;该基于区块链的资产管理装置90可以包括:
接收模块901,接收购买方发起的针对目标数字商品的购买交易;其中,所述目标数字商品的价格由目标货币标定;所述购买交易包括所述购买方的用户标识;
获取模块902,响应于所述购买交易,获取与所述用户标识对应的第一资产账户;其中,与所述第一资产账户中的所述第一字段中填充的币种信息对应的货币与所述目标货币匹配;以及,
支付模块903,获取所述第一资产账户中的所述第二字段中填充的兑换关系,并基于所述兑换关系,计算与所述目标数字商品的价格价值锚定的目标数字资产的目标资产数额,再从所述第一资产账户向第二资产账户转移与所述目标资产数额对应的所述目标数字资产,以完成针对所述目标数字商品的商品支付;其中,所述第二资产账户为所述目标数字商品的出售方的用于持有所述目标数字资产的资产账户。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。