基于区块链的事务处理方法、装置、电子设备及介质转让专利

申请号 : CN202211253085.5

文献号 : CN115357346B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 肖伟

申请人 : 北京百度网讯科技有限公司

摘要 :

本公开提供了一种基于区块链的事务处理方法、装置、电子设备及介质,涉及人工智能领域,具体涉及区块链领域,可适用于UTXO精度调整场景。具体实现方案为:响应于目标用户节点发起的转账事务请求,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额;根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理。本公开可以在不影响用户的UTXO持有量的情况下,实现对UTXO精度的调整,保证了用户体验。

权利要求 :

1.一种基于区块链的事务处理方法,所述方法包括:

响应于目标用户节点发起的转账事务请求,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;

在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额;

根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理;

其中,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度,包括:确定所述可用UTXO数额所属区块的参考区块高度;基于预设的区块高度与实际精度之间的关联关系,根据所述参考区块高度确定所述可用UTXO数额的实际精度;

其中,在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额,包括:基于所述实际精度、所述期望精度和所述可用UTXO数额,确定所述新的UTXO数额;将所述期望精度作为所述新的UTXO数额的UTXO精度;

其中,基于所述实际精度、所述期望精度和所述可用UTXO数额,确定所述新的UTXO数额,包括:确定所述期望精度和所述实际精度之间的精度差值;根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额。

2.根据权利要求1所述的方法,所述方法还包括:

响应于区块链网络中调整UTXO精度的投票提案事务,获取投票结果;

若所述投票结果为投票通过,则从所述投票提案事务中提取所述期望精度;

将提取的所述期望精度写入区块链网络中,并将所述期望精度所属的区块高度作为期望精度所关联的区块高度。

3.根据权利要求1所述的方法,其中,根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额,包括:基于如下公式,根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额:U2 =U1 

其中,所述U2表示所述新的UTXO数额;U1表示所述可用UTXO数额;Pnew表示所述期望精度;Pold表示所述实际精度; 表示所述精度差值;Pnew和Pold均为正整数。

4.根据权利要求1所述的方法,其中,根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理,包括:根据所述转账事务请求确定所述期望精度下的所需UTXO数额;

根据所述所需UTXO数额和所述新的UTXO数额确定剩余UTXO数额;

将所述所需UTXO数额从所述目标用户账户中转出,并将所述剩余UTXO数额返回所述目标用户账户。

5.根据权利要求1所述的方法,所述方法还包括:

响应于目标用户节点发起的查询事务请求,确定目标用户账户中的可用UTXO数额;

确定所述可用UTXO数额所属区块的参考区块高度,基于区块高度与实际精度之间的关联关系,确定所述可用UTXO数额的实际精度;

在所述实际精度与期望精度不一致的情况下,基于所述期望精度、所述实际精度以及所述可用UTXO数额,确定所述期望精度下的新的UTXO数额。

6.一种基于区块链的事务处理装置,所述装置包括:

精度确定模块,用于响应于目标用户节点发起的转账事务请求,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;

精度调整模块,用于在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额;

转账处理模块,用于根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理;

其中,精度确定模块,包括:区块高度确定子模块,用于确定所述可用UTXO数额所属区块的参考区块高度;实际精度确定子模块,用于基于预设的区块高度与实际精度之间的关联关系,根据所述参考区块高度确定所述可用UTXO数额的实际精度;

其中,精度调整模块,包括:数额确定子模块,用于基于所述实际精度、所述期望精度和所述可用UTXO数额,确定所述新的UTXO数额;精度确定子模块,用于将所述期望精度作为所述新的UTXO数额的UTXO精度;

其中,数额确定子模块,包括:精度差值确定单元,用于确定所述期望精度和所述实际精度之间的精度差值;数额确定单元,用于根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额。

7.根据权利要求6所述的装置,所述装置还包括:

投票结果确定模块,用于响应于区块链网络中调整UTXO精度的投票提案事务,获取投票结果;

期望精度提取模块,用于若所述投票结果为投票通过,则从所述投票提案事务中提取所述期望精度;

信息关联模块,用于将提取的所述期望精度写入区块链网络中,并将所述期望精度所属的区块高度作为期望精度所关联的区块高度。

8.根据权利要求6所述的装置,其中,UTXO数额确定单元具体用于:基于如下公式,根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额:U2=U1

其中,所述U2表示所述新的UTXO数额;U1表示所述可用UTXO数额;Pnew表示所述期望精度;Pold表示所述实际精度; 表示所述精度差值;Pnew和Pold均为正整数。

9.根据权利要求6所述的装置,其中,转账处理模块,包括:所需UTXO数额确定子模块,用于根据所述转账事务请求确定所述期望精度下的所需UTXO数额;

剩余UTXO数额确定子模块,用于根据所述所需UTXO数额和所述新的UTXO数额确定剩余UTXO数额;

转账处理子模块,用于将所述所需UTXO数额从所述目标用户账户中转出,并将所述剩余UTXO数额返回所述目标用户账户。

10.根据权利要求6所述的装置,所述装置还包括:

数额查询模块,用于响应于目标用户节点发起的查询事务请求,确定目标用户账户中的可用UTXO数额;

精度查询模块,用于确定所述可用UTXO数额所属区块的参考区块高度,基于区块高度与实际精度之间的关联关系,确定所述可用UTXO数额的实际精度;

数额确定模块,用于在所述实际精度与期望精度不一致的情况下,基于所述期望精度、所述实际精度以及所述可用UTXO数额,确定所述期望精度下的新的UTXO数额。

11.一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑5中任一项所述的基于区块链的事务处理方法。

12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1‑5中任一项所述的基于区块链的事务处理方法。

说明书 :

基于区块链的事务处理方法、装置、电子设备及介质

技术领域

[0001] 本公开涉及人工智能领域,具体涉及区块链领域,可用于UTXO精度调整场景。

背景技术

[0002] UTXO(Unspent Transaction Output,未花费的交易输出)包括UTXO精度和UTXO数额。其中,UTXO精度是指UTXO的最小切割单位,UTXO数额是指在最小切割单位下区块中的UTXO数量。
[0003] 随着交易业务的发展,往往需要对UTXO精度进行调整。在调整UTXO精度过程中,保证用户的UTXO持有量不变,对于保证用户体验具有重要意义。

发明内容

[0004] 本公开提供了一种基于区块链的事务处理方法、装置、电子设备及介质。
[0005] 根据本公开的一方面,提供了一种基于区块链的事务处理方法,该方法包括:
[0006] 响应于目标用户节点发起的转账事务请求,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;
[0007] 在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额;
[0008] 根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理。
[0009] 根据本公开的另一方面,提供了一种基于区块链的事务处理装置,包括:
[0010] 精度确定模块,用于响应于目标用户节点发起的转账事务请求,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;
[0011] 精度调整模块,用于在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额;
[0012] 转账处理模块,用于根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理。
[0013] 根据本公开的另一方面,提供了一种电子设备,该电子设备包括:
[0014] 至少一个处理器;以及
[0015] 与所述至少一个处理器通信连接的存储器;其中,
[0016] 所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的基于区块链的事务处理方法。
[0017] 根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行本公开任一实施例所述的基于区块链的事务处理方法。
[0018] 根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任一实施例所述的基于区块链的事务处理方法。
[0019] 根据本公开的技术,可以在不影响用户的UTXO持有量的情况下,实现对UTXO精度的调整,保证了用户体验。
[0020] 应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0021] 附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0022] 图1是根据本公开实施例提供的一种基于区块链的事务处理方法的流程图;
[0023] 图2是根据本公开实施例提供的另一种基于区块链的事务处理方法的流程图;
[0024] 图3是根据本公开实施例提供的另一种基于区块链的事务处理方法的流程图;
[0025] 图4是根据本公开实施例提供的一种基于区块链的事务处理装置的结构示意图;
[0026] 图5是用来实现本公开实施例的基于区块链的事务处理方法的电子设备的框图。

具体实施方式

[0027] 以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0028] 图1是根据本公开实施例提供的一种基于区块链的事务处理方法的流程图,本公开实施例适用于对UTXO精度进行调整的情况。该方法可以由基于区块链的事务处理装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于承载服务访问基于区块链的事务处理功能的电子设备中。如图1所示,本实施例的基于区块链的事务处理方法可以包括:
[0029] S101,响应于目标用户节点发起的转账事务请求,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;
[0030] S102,在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额;
[0031] S103,根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理。
[0032] 其中,转账事务请求由目标用户节点产生,并发送到区块链网络。其中,目标用户节点可以向区块链网络发起转账事务请求。目标用户节点既可以是区块链网络中的区块链节点,也可以不是区块链节点。目标用户节点是否为区块链节点具体根据实际情况确定,在这里不作限定。
[0033] 可选的,转账事务请求包括目标用户账户。其中,目标用户账户属于目标用户节点。转账事务请求用于请求区块链网络中的区块链节点对目标用户账户的可用UTXO进行转账处理。
[0034] 其中,可用UTXO包括可用UTXO数额和可用UTXO数额的实际精度。可用UTXO数额和可用UTXO数额的实际精度记录在区块链网络的区块中,可被区块链节点获取。
[0035] 可以知道的是,可用UTXO数额是指在实际精度下目标用户账户中的UTXO数额。实际精度是指区块链网络中正在生效的UTXO精度,也就是正在生效的最小切割单位。通俗来讲,UTXO精度规定了UTXO持有量的小数点后面的位数,例如,在UTXO精度为2的情况下,UTXO持有量可以表示为100.00。再如,在UTXO精度为3的情况下,UTXO持有量则表示为100.000。
[0036] 区块链节点获取目标用户节点发起的转账事务请求,根据转账事务请求确定目标用户账户。区块链节点确定目标用户账户中可用UTXO数额,并确定可用UTXO数额的实际精度。
[0037] 区块链节点确定实际精度与期望精度是否一致。其中,期望精度是指期望生效的UTXO精度。随着交易业务发展,实际精度可能不再适应交易业务,这种情况下一般需要对实际精度进行调整,可选的,将实际精度调整为期望精度。
[0038] 区块链节点确定实际精度与期望精度是否一致,实际上是确定期望精度是否已经对目标用户账户生效。换言之,确定是否已经将目标用户账户的UTXO精度调整为期望精度。期望精度既可能和实际精度一致也可能不一致,期望精度与实际精度是否一致根据实际情况确定,在这里不作限定。
[0039] 若实际精度与期望精度不一致,表明期望精度尚未对目标用户账户中的可用UTXO数额生效;若实际精度与期望精度一致,表明期望精度已经对目标用户账户中的可用UTXO数额生效,目标用户账户中可用UTXO数额已经与期望精度相对应。
[0040] 在实际精度与期望精度不一致的情况下,区块链节点需要对目标用户账户的UTXO精度进行调整。可选的,区块链节点将目标用户账户的UTXO精度调整为期望精度。在实际精度与期望精度一致的情况下,区块链节点则无需对目标用户账户的UTXO精度进行调整[0041] 可以知道的是,目标用户账户的UTXO持有量由目标用户账户中可用UTXO数额和可用UTXO数额的实际精度共同确定。为了保证用户体验,在对目标用户账户的UTXO精度进行调整的过程中,需要保持目标用户账户的UTXO持有量不变。将可用UTXO数额和可用UTXO数额的实际精度确定的目标用户账户的UTXO持有量,称为第一UTXO持有量;将期望精度下的新的UTXO数额和期望精度确定的目标用户账户的UTXO持有量,称为第二UTXO持有量。保持目标用户账户的UTXO持有量不变,也就是需要保证第一UTXO持有量与第二UTXO持有量相等。
[0042] 区块链节点基于实际精度和期望精度,对可用UTXO数额进行调整,得到期望精度下的新的UTXO数额。新的UTXO数额与可用UTXO数额之间的相对大小关系,与实际精度和期望精度之间的相对大小关系相关。在UTXO持有量不变的情况下,UTXO的最小分割单位越小,分割出的UTXO数额越多。
[0043] 在区块链节点将目标用户账户的UTXO精度调整为期望精度以后,可以确定期望精度下的新的UTXO数额。区块链节点根据新的UTXO数额和转账事务请求,进行数字资产转账处理。其中,数字资产是是目标用户账户拥有或控制的,以电子数据形式存在的非货币性资产。
[0044] 值得注意的是,区块链节点只在目标用户节点发起的转账事务请求,且目标用户账户中可用UTXO数额的实际精度与期望精度不一致的情况下才对目标用户账户的UTXO精度进行调整,也就是说,本公开实施例中UTXO精度的调整是在转账事务请求的处理过程中进行的。
[0045] 且本公开实施例仅对发起转账事务请求对应的目标用户账户中的UTXO精度进行调整,而非对区块链网络中全部用户账户的UTXO精度进行调整。UTXO精度作为区块链网络的系统参数,对区块链网络中全部用户账户的UTXO精度进行调整,区块链网络数据处理压力巨大,可能会造成网络拥堵。仅对发起转账事务请求对应的目标用户账户中的UTXO精度进行调整可以分散UTXO精度调整压力,避免网络拥堵,减少对业务服务的影响。
[0046] 本公开实施例中通过确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;在实际精度与期望精度不一致的情况下,基于实际精度和期望精度对可用UTXO数额进行调整得到期望精度下的新的UTXO数额;根据新的UTXO数额和转账事务请求,进行数字资产转账处理。可以在不影响目标用户账户的UTXO持有量的情况下,实现对UTXO精度的调整,保证了用户体验。本公开实施例在转账事务请求的处理过程中,对目标用户账户的UTXO精度进行调整,分散了区块链网络的数据处理压力,避免了网络拥堵,减少了对业务服务的影响,进一步保证了用户体验。
[0047] 在一个可选的实施例中,根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理,包括:根据所述转账事务请求确定所述期望精度下的所需UTXO数额;根据所述所需UTXO数额和所述新的UTXO数额确定剩余UTXO数额;将所述所需UTXO数额从所述目标用户账户中转出,并将所述剩余UTXO数额返回所述目标用户账户。
[0048] 其中,所需UTXO数额是指需要从目标用户账户转出的UTXO数额。所需UTXO数额与期望精度相对应。新的UTXO数额是指目标用户账户中期望精度下全部的UTXO数额。
[0049] 可以知道的是,UTXO的转账交易由交易输出和交易输入组成,具体的,是将期望精度下的新的UTXO数额分成所需UTXO数额和剩余UTXO数额。其中,所需UTXO数额作为交易输出,从目标用户账户中转出;剩余UTXO数额作为交易输入,返回目标用户账户。
[0050] 可选的,转账事务请求还包括:期望精度下所需UTXO数额。
[0051] 区块链节点根据转账事务请求,确定期望精度下的所需UTXO数额。可选的,区块链节点确定新的UTXO数额是否大于等于所需UTXO数额,若新的UTXO数额大于等于所需UTXO数额,表明目标用户账户中的新的UTXO数额足以支持转账交易,区块链节点则根据所需UTXO数额和新的UTXO数额确定剩余UTXO数额。区块链节点将所需UTXO数额从目标用户账户中转出,并将剩余UTXO数额转入目标用户账户。
[0052] 若新的UTXO数额小于所需UTXO数额,表明目标用户账户中的新的UTXO数额不足以支持转账交易,区块链节点生成转账交易失败信息,并将转账交易失败信息反馈给目标用户节点。
[0053] 上述技术方案,基于期望精度下的新的UTXO数额和转账事务请求,实现了期望精度下的UTXO转账交易,减少了对业务服务的影响,同时保证了转账交易的准确性。
[0054] 图2是根据本公开实施例提供的另一种基于区块链的事务处理方法的流程图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的,本公开实施例对操作“确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度”进行了细化。
[0055] 参见图2,本实施例提供的基于区块链的事务处理方法包括:
[0056] S201,响应于目标用户节点发起的转账事务请求,确定所述可用UTXO数额所属区块的参考区块高度。
[0057] 可以知道的是,可用UTXO数额在区块链网络中分散存储于不同区块。不同区块通过区块高度进行区分。
[0058] 参考区块高度是指目标用户账户的可用UTXO数额所属区块的区块高度。其中,区块高度可以根据区块生成时间确定。参考区块高度用于确定可用UTXO数额的实际精度。
[0059] 区块链节点响应于目标用户节点发起的转账事务请求,确定可用UTXO数额所属区块的参考区块高度。
[0060] S202,基于预设的区块高度与实际精度之间的关联关系,根据所述参考区块高度确定所述可用UTXO数额的实际精度。
[0061] 其中,预设的区块高度与实际精度之间的关联关系,根据实际情况预先确定。预设的区块高度与实际精度之间的关联关系,用于记录区块高度与实际精度之间的对应关系。
[0062] 可选的,预设的区块高度与实际精度之间的关联关系为区块高度和实际精度构成的对组(pair)。也就是将区块高度和实际精度合成一组数据。
[0063] 区块链节点基于预设的区块高度与实际精度之间的关联关系,根据参考区块高度确定可用UTXO数额的实际精度。
[0064] S203,在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额。
[0065] S204,根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理。
[0066] 本公开实施例中,通过区块链节点确定可用UTXO数额所属区块的参考区块高度,基于预设的区块高度与实际精度之间的关联关系,根据参考区块高度确定可用UTXO数额的实际精度,并将实际精度用于确定期望精度下的新的UTXO数额,为对目标用户账户的UTXO精度进行调整提供了数据支持。本公开实施例通过设置预设的区块高度与实际精度之间的关联关系,使得区块链节点根据参考区块高度即可确定可用UTXO数额的实际精度,可以在不破坏区块链原有数据结构情况下调整UTXO精度。
[0067] 在一个可选的实施例中,所述方法还包括:响应于区块链网络中调整UTXO精度的投票提案事务,获取投票结果;若所述投票结果为投票通过,则从所述投票提案事务中提取所述期望精度;将提取的所述期望精度写入区块链网络中,并将所述期望精度所属的区块高度作为期望精度所关联的区块高度。
[0068] 由于UTXO精度为区块链网络的系统参数,调整UTXO精度需要在区块链网络中发起调整UTXO精度的投票提案事务。其中,投票提案事务用于控制区块链网络中的区块链节点对是否调整UTXO精度进行投票表决。
[0069] 区块链节点响应于区块链网络中调整UTXO精度的投票提案事务,获取投票结果。可选的,投票提案事务包括投票生效比例阈值。投票结果根据通过票比例值和投票生效比例阈值确定。具体的,若通过票比例值大于等于投票生效比例阈值,则确定投票结果为投票通过;相对的,若通过票比例值小于投票生效比例阈值,则确定投票结果为投票不通过。
[0070] 其中,通过票比例值是指通过票数占全部票数的比例。投票生效比例阈值用于确定投票提案事务是否可以生效。在投票提案事务可以生效的情况下,才可以调整UTXO精度。其中,投票生效比例阈值根据实际业务需求确定,在这里不作限定。示例性的,投票生效比例阈值可以为50%。
[0071] 可选的,投票提案事务还包括期望精度。在投票结果为投票通过的情况下,区块链节点从投票提案事务中提取期望精度,并将提取的期望精度写入区块链网络中。其中,将提取的期望精度写入区块链网络中,也就是将期望精度进行上链存储,将期望精度写入区块。区块链节点将期望精度所属的区块高度作为期望精度所关联的区块高度。
[0072] 可以理解的是,期望精度和实际精度是相对而言的,一般来说,将期望精度写入区块链网络之后,期望精度生效成为实际精度。期望精度和期望精度所属的区块高度,可以用于确定预设的区块高度与实际精度之间的关联关系。
[0073] 上述技术方案,通过向区块链网络发起调整UTXO精度的投票提案事务,控制区块链网络中的区块链节点对投票提案事务进行投票表决,在投票结果为投票通过的情况下,将投票提案事务中的期望精度写入区块链网络,保证了UTXO精度的可追溯性,为在处理转账事务请求过程中调整UTXO精度提供了数据支持。
[0074] 在一个可选的实施例中,所述方法还包括:响应于目标用户节点发起的查询事务请求,确定目标用户账户中的可用UTXO数额;确定所述可用UTXO数额所属区块的参考区块高度,基于区块高度与实际精度之间的关联关系,确定所述可用UTXO数额的实际精度;在所述实际精度与期望精度不一致的情况下,基于所述期望精度、所述实际精度以及所述可用UTXO数额,确定所述期望精度下的新的UTXO数额。
[0075] 其中,查询事务请求由目标用户节点产生,并发送到区块链网络。查询事务请求用于请求区块链网络中的区块链节点对目标用户账户的可用UTXO进行查询处理。
[0076] 如上所述,可用UTXO包括可用UTXO数额和可用UTXO数额的实际精度。可用UTXO数额和可用UTXO数额的实际精度共同确定UTXO持有量。在UTXO持有量保持不变的情况下,不同的实际精度对应不同的可用UTXO数额。
[0077] 区块链节点响应于目标用户节点发起的查询事务请求,确定目标用户账户中的可用UTXO数额。可以知道的是,UTXO数额只有在关联到UTXO精度的情况下才具有参考意义。不考虑UTXO精度仅关注UTXO数额不具有参考意义。区块链节点在确定可用UTXO数额以后,还需要进一步确定可用UTXO数额的实际精度。
[0078] 具体的,区块链节点确定可用UTXO数额所属区块的参考区块高度,基于区块高度与实际精度之间的关联关系,确定可用UTXO数额的实际精度。在实际精度与期望精度不一致的情况下,区块链节点基于期望精度、实际精度以及可用UTXO数额,确定期望精度下的新的UTXO数额。
[0079] 可选的,区块链节点将期望精度下的新的UTXO数额,作为查询事务请求的请求处理结果反馈给目标用户节点。
[0080] 值得注意的是,本公开实施例中区块链节点在处理查询事务请求的过程中,并不对目标用户账户中的UTXO精度进行调整,这是因为查询事务请求并不写入区块链网络,区块链节点在处理查询事务请求的过程中仅仅对UTXO 精度进行换算,确定期望精度下的新的UTXO数额。将期望精度下的新的UTXO数额作为请求处理结果反馈给目标用户节点。
[0081] 上述技术方案,支持目标用户节点基于查询事务请求,查询目标用户账户中期望精度下的新的UTXO数额,提高UTXO数额查询准确性,便于用户及时掌握不同UTXO精度下的最新UTXO数额,有利于提高用户体验。
[0082] 图3是根据本公开实施例提供的另一种基于区块链的事务处理方法的流程图;本实施例是在上述实施例的基础上提出的一种可选方案。具体的,本公开实施例对操作“在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额”进行了细化。
[0083] 参见图3,本实施例提供的基于区块链的事务处理方法包括:
[0084] S301,响应于目标用户节点发起的转账事务请求,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度。
[0085] S302,基于所述实际精度、所述期望精度和所述可用UTXO数额,确定所述新的UTXO数额。
[0086] 可以理解的是,为了保证用户体验,在对目标用户账户的UTXO精度进行调整的过程中,需要保持目标用户账户的UTXO持有量不变。在UTXO持有量保持不变的情况下,不同的UTXO精度对应不同的UTXO数额。
[0087] 其中,可用UTXO数额与实际精度对应。新的UTXO数额与期望精度对应。
[0088] 基于实际精度和实际精度下的可用UTXO数额可以确定UTXO持有量。在已知UTXO持有量和期望精度的情况下,可以确定期望精度下的新的UTXO数额。
[0089] S303,将所述期望精度作为所述新的UTXO数额的UTXO精度。
[0090] 如上所述,UTXO数额只有在关联到UTXO精度的情况下才具有参考意义。不考虑UTXO精度仅关注UTXO数额不具有参考意义。区块链节点将期望精度作为新的UTXO数额的UTXO精度。
[0091] S304,根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理。
[0092] 本公开实施例中,区块链节点基于实际精度、期望精度和实际精度下的可用UTXO数额,确定新的UTXO数额,将期望精度作为新的UTXO数额的UTXO精度,为在处理转账事务请求的过程中对区块链网络的中UTXO精度进行调整提供了数据支持。
[0093] 在一个可选的实施例中,基于所述实际精度、所述期望精度和所述可用UTXO数额,确定所述新的UTXO数额,包括:确定所述期望精度和所述实际精度之间的精度差值;根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额。
[0094] 其中,精度差值根据期望精度和实际精度确定。精度差值可以反映UTXO精度的精度变化。精度差值用于确定期望精度下的新的UTXO数额。
[0095] 区块链节点确定期望精度和实际精度之间的精度差值。根据精度差值和可用UTXO数额确定期望精度下的新的UTXO数额。上述技术方案,基于实际精度、期望精度和实际精度下的可用UTXO数额,确定期望精度下的新的UTXO数额,并将期望精度下的新的UTXO数额用于UTXO转账交易,保证了转账交易准确性。
[0096] 在一个可选的实施例中,根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额,包括:基于如下公式,根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额:U2 =U1
[0097] 其中,所述U2表示所述新的UTXO数额;U1表示所述可用UTXO数额;Pnew表示所述期望精度;Pold表示所述实际精度。 表示所述精度差值。其中,   均为正整数。上述技术方案为确定期望精度下新的UTXO数额提供了一种具体有效的计算方法,为对目标用户账户的UTXO精度进行调整提供了数据支持。
[0098] 图4是根据本公开实施例提供的一种基于区块链的事务处理装置的结构示意图。本公开实施例适用于对UTXO精度进行调整的情况。该装置可以采用软件和/或硬件来实现,该装置可以实现本公开任意实施例所述的基于区块链的事务处理方法。如图4所示,该基于区块链的事务处理装置400包括:
[0099] 精度确定模块401,用于响应于目标用户节点发起的转账事务请求,确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;
[0100] 精度调整模块402,用于在所述实际精度与期望精度不一致的情况下,基于所述实际精度和所述期望精度对所述可用UTXO数额进行调整得到所述期望精度下的新的UTXO数额;
[0101] 转账处理模块403,用于根据所述新的UTXO数额和所述转账事务请求,进行数字资产转账处理。
[0102] 本公开实施例中通过确定目标用户账户中的可用UTXO数额,并确定可用UTXO数额的实际精度;在实际精度与期望精度不一致的情况下,基于实际精度和期望精度对可用UTXO数额进行调整得到期望精度下的新的UTXO数额;根据新的UTXO数额和转账事务请求,进行数字资产转账处理。可以在不影响目标用户账户的UTXO持有量的情况下,实现对UTXO精度的调整,保证了用户体验。本公开实施例在转账事务请求的处理过程中,对目标用户账户的UTXO精度进行调整,分散了区块链网络的数据处理压力,避免了网络拥堵,减少了对业务服务的影响,进一步保证了用户体验。
[0103] 可选的,精度确定模块,包括:区块高度确定子模块,用于确定所述可用UTXO数额所属区块的参考区块高度;实际精度确定子模块,用于基于预设的区块高度与实际精度之间的关联关系,根据所述参考区块高度确定所述可用UTXO数额的实际精度。
[0104] 可选的,所述装置还包括:投票结果确定模块,用于响应于区块链网络中调整UTXO精度的投票提案事务,获取投票结果;期望精度提取模块,用于若所述投票结果为投票通过,则从所述投票提案事务中提取所述期望精度;信息关联模块,用于将提取的所述期望精度写入区块链网络中,并将所述期望精度所属的区块高度作为期望精度所关联的区块高度。
[0105] 可选的,精度调整模块,包括:数额确定子模块,用于基于所述实际精度、所述期望精度和所述可用UTXO数额,确定所述新的UTXO数额;精度确定子模块,用于将所述期望精度作为所述新的UTXO数额的UTXO精度。
[0106] 可选的,数额确定子模块,包括:精度差值确定单元,用于确定所述期望精度和所述实际精度之间的精度差值;数额确定单元,用于根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额。
[0107] 可选的,UTXO数额确定单元具体用于:基于如下公式,根据所述精度差值和所述可用UTXO数额,确定所述新的UTXO数额:
[0108] U2 =U1
[0109] 其中,所述U2表示所述新的UTXO数额;U1表示所述可用UTXO数额;Pnew表示所述期望精度;Pold表示所述实际精度; 表示所述精度差值;Pnew和Pold均为正整数。
[0110] 可选的,转账处理模块,包括:所需UTXO数额确定子模块,用于根据所述转账事务请求确定所述期望精度下的所需UTXO数额;剩余UTXO数额确定子模块,用于根据所述所需UTXO数额和所述新的UTXO数额确定剩余UTXO数额;转账处理子模块,用于将所述所需UTXO数额从所述目标用户账户中转出,并将所述剩余UTXO数额返回所述目标用户账户。
[0111] 可选的,所述装置还包括:数额查询模块,用于响应于目标用户节点发起的查询事务请求,确定目标用户账户中的可用UTXO数额;精度查询模块,用于确定所述可用UTXO数额所属区块的参考区块高度,基于区块高度与实际精度之间的关联关系,确定所述可用UTXO数额的实际精度;数额确定模块,用于在所述实际精度与期望精度不一致的情况下,基于所述期望精度、所述实际精度以及所述可用UTXO数额,确定所述期望精度下的新的UTXO数额。
[0112] 本公开实施例所提供的基于区块链的事务处理装置可执行本公开任意实施例所提供的基于区块链的事务处理方法,具备执行基于区块链的事务处理方法相应的功能模块和有益效果。
[0113] 本公开的技术方案中,所涉及的目标用户账户信息的收集、存储、使用、加工、传输、提供和公开等,均符合相关法律法规的规定,且不违背公序良俗。
[0114] 根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0115] 图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0116] 如图5所示,电子设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储电子设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口
505也连接至总线504。
[0117] 电子设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许电子设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0118] 计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如基于区块链的事务处理方法。例如,在一些实施例中,基于区块链的事务处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到电子设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的基于区块链的事务处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于区块链的事务处理方法。
[0119] 本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0120] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程基于区块链的事务处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0121] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD‑ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0122] 为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0123] 可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
[0124] 计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0125] 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
[0126] 云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
[0127] 应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
[0128] 上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。