具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
图1是一示例性实施例提供的一种资产转移方法的流程图。如图1所示,该方法可以包括以下步骤:
步骤102,第一区块链成员接收到付款方与收款方之间第一数额的资产转移请求。
在一实施例中,本说明书中的“资产”可以包括任意类型,比如现金、证券、股票等,再比如设备、车辆、房产、货物等,本说明书并不对此进行限制。
在一实施例中,资产转移请求可由所述第一区块链成员发起;换言之,第一区块链成员可以通过发起资产转移请求,并基于本说明书的资产转移方案,将自身在第一锚点处存托的区块链资产转移为第二区块链成员在第二锚点处存托的区块链资产,并进而实现付款方与收款方之间的资产转移。譬如,由付款方向第一区块链成员支付链外资产,第一区块链成员向第二区块链成员转移相应的区块链资产,而第二区块链成员向收款方支付链外资产,最终相当于付款方向收款方支付了链外资产。
在一实施例中,资产转移请求可由所述区块链中的其他成员(比如第二区块链成员)发起;换言之,由其他成员可以通过发起资产转移请求,并基于本说明书的资产转移方案,将第一区块链在第一锚点处存托的区块链资产转移为第二区块链成员在第二锚点处存托的区块链资产,并进而实现付款方与收款方之间的资产转移。
步骤104,所述第一区块链成员确定与所述收款方对应的第二区块链成员、位于所述第一区块链成员与所述第二区块链成员之间的若干中继区块链成员,其中相邻区块链成员分别持有同一锚点发行的区块链资产。
在一实施例中,区块链上可以包括若干区块链节点,这些区块链节点可以包括区块链成员(或简称为成员,即member)和锚点(anchor)。其中,锚点的角色可以由区块链成员来承担,或者锚点可以与区块链成员无关、即锚点的角色并不一定由区块链成员承担。
在一实施例中,区块链成员可以为支持资产转移业务的金融机构或者其他形式的组织或平台等,本说明书并不对此进行限制。
在一实施例中,锚点用于对区块链上的区块链资产与区块链之外的链外资产之间进行锚定,使得链外资产能够通过锚点兑换为等价的区块链资产,也可以将区块链资产通过锚点兑换为等价的链外资产,从而实现区块链资产与链外资产之间的一一映射。例如,区块链成员可以将链外资产存托于锚点处,并获取和持有该锚点在区块链内对应发行的区块链资产;同时,区块链成员之间还可以对持有的区块链资产进行相互转移,而各个区块链成员对于各个锚点所发行的区块链资产的持有情况及其变化情况可以被登记在区块链的区块链账本上,以便于对区块链资产的统一管理。
步骤106,所述第一区块链成员根据各个中继区块链成员发布的资产转移条件,发起用于资产转移的合约操作,在所述用于资产转移的合约操作生效后,在同一原子事务内完成下述操作:每一中继区块链成员根据自身与上游的邻居区块链成员分别持有的由第一锚点发行的区块链资产,接收上游的邻居区块链成员转入的由所述第一锚点发行的第一数额的区块链资产,以及根据自身与下游的邻居区块链成员分别持有的由第二锚点发行的区块链资产,向下游的邻居区块链成员转出由所述第二锚点发行的第二数额的区块链资产;其中,所述资产转移条件用于指示相应的中继区块链成员在所述第一锚点处的转入资产与在所述第二锚点处的转出资产之间的数值关系,以使所述第一数额与所述第二数额之间符合所述数值关系。
在一实施例中,由于区块链中采用统一的区块链账本,且该区块链账本登记了各个成员对各个锚点发行的区块链资产的持有情况,使得上述用于资产转移的合约操作被发起后,可以基于该合约操作对第一区块链成员、第二区块链成员和各个中继区块链成员的区块链余额实现统一变化,实现了协同多家不同机构完成同一事务,并使得上述资产转移操作在同一原子事务内完成,而无需在各个成员之间依次串行实施资产转移,极大地提升了资产流转效率,使得实时、准实时或接近实时的资产流转成为可能。
在一实施例中,通过将资产转移条件发布于区块链中,可以利用区块链中的信息不可篡改、可追溯的特性,使得区块链账本中登记的资产转移条件具有足够的可靠性,可以被所有的区块链成员及锚点所信赖,因而能够作为转账、支付等各种资产转移场景下的操作依据。
在一实施例中,第一区块链成员与第二区块链成员之间可能存在一个中继区块链成员,则第一区块链成员为该中继区块链成员上游的邻居区块链成员、第二区块链成员为该中继区块链成员下游的邻居区块链成员,其中第一区块链成员与该中继区块链成员均持有第一锚点发行的区块链资产、该中继区块链成员与第二区块链成员均持有第二锚点发行的区块链资产。因此,如果通过该中继区块链成员实现资产转移,需要满足该中继区块链成员发布的资产转移条件:如果第一区块链成员将第一数额的由第一锚点发行的区块链资产转移给中继区块链成员,且中继区块链成员将第二数额的由第二锚点发行的区块链资产转移给第二区块链成员,那么该第一数额与第二数额之间应当符合资产转移条件所定义的数值关系。
在一实施例中,第一区块链成员与第二区块链成员之间可能存在多个中继区块链成员,比如第一区块链成员-第一中继区块链成员-第二中继区块链成员-第三中继区块链成员-第二区块链成员。对于第一中继区块链成员而言,上游的邻居区块链成员为第一区块链成员、下游的邻居区块链成员为第二中继区块链成员;对于第二中继区块链成员而言,上游的邻居区块链成员为第一中继区块链成员、下游的邻居区块链成员为第三中继区块链成员;对于第三中继区块链成员而言,上游的邻居区块链成员为第二中继区块链成员、下游的邻居区块链成员为第二区块链成员;第一区块链成员和第一中继区块链成员均持有第一锚点发行的区块链资产、第一中继区块链成员和第二中继区块链成员均持有第二锚点发行的区块链资产、第二中继区块链成员和第三中继区块链成员均持有第三锚点发行的区块链资产、第三中继区块链成员和第二区块链成员均持有第四锚点发行的区块链资产。其中,第一中继区块链成员、第二中继区块链成员和第三中继区块链成员可以分别发布相应的资产转移条件,比如第一中继区块链成员发布第一资产转移条件、第二中继区块链成员发布第二资产转移条件、第三中继区块链成员发布第三资产转移条件,其中分别包含第一中继区块链成员、第二中继区块链成员和第三中继区块链成员所定义的数值关系。因此,如果通过上述中继区块链成员实现资产转移,需要满足相应的第一资产转移条件、第二资产转移条件和第三资产转移条件:
如果第一区块链成员将第一数额的由第一锚点发行的区块链资产转移给第一中继区块链成员,且第一中继区块链成员将第二数额的由第二锚点发行的区块链资产转移给第二中继区块链成员,那么该第一数额与第二数额之间应当符合第一资产转移条件所定义的数值关系;
如果第一中继区块链成员将第二数额的由第二锚点发行的区块链资产转移给第二中继区块链成员,且第二中继区块链成员将第三数额的由第三锚点发行的区块链资产转移给第三中继区块链成员,那么该第二数额与第三数额之间应当符合第二资产转移条件所定义的数值关系;
如果第二中继区块链成员将第三数额的由第三锚点发行的区块链资产转移给第三中继区块链成员,且第三中继区块链成员将第四数额的由第四锚点发行的区块链资产转移给第二区块链成员,那么该第三数额与第四数额之间应当符合第三资产转移条件所定义的数值关系。
类似地,在其他实施例中,还可能存在其他数量的中继区块链成员,通过获取每一中继区块链成员所发布的资产转移条件,并确保资产转移过程中满足这些中继区块链成员发布的资产转移条件,即可确保资产转移顺利完成。
在一实施例中,所述资产转移条件可以包括:所述转出资产与所述转入资产的数额之比为预设比值。例如,通过设定转出资产与转入资产的数额之比为99.90%,表明中继区块链成员在资产转移过程中需要收取资产总额0.10%的费用;当然,中继区块链成员可以根据实际需求对该预设比值进行设置。
在一实施例中,所述资产转移条件包括:所述转出资产的数额比所述转入资产的数额减少预设数值。例如,通过设定转出资产的数额比转入资产的数额减少100元,表明中继区块链成员在资产转移过程中需要收取100/笔的费用;当然,中继区块链成员可以根据实际需求对该预设数值进行设置。
在一实施例中,所述资产转移条件定义的数值关系与下述维度中至少之一相关:所述转入资产的资产类型、所述转出资产的资产类型、所述第一锚点与所述第二锚点是否为相同锚点、所述第一锚点的管理方、所述第二锚点的管理方、所述第一数额所处的数值范围、所述付款方所属的类别、所述收款方所属的类别。换言之,中继区块链成员可以对上述一种或多种维度进行组合、形成相应的若干资产转移场景,并针对不同资产转移场景设定相应的资产转移条件(不同资产转移条件定义的数值关系可以单独设定、互不干扰),从而在不同场景下收取不同额度的资产转移费用。
在一实施例中,当第一锚点与第二锚点不同、第一锚点处的转入资产与第二锚点处的转出资产的资产类型相同时,资产转移条件相当于设定了在第一锚点与第二锚点之间实施资产转移的流动性费用。
在一实施例中,当第一锚点与第二锚点为同一锚点、转入资产与转出资产的资产类型不同时,资产转移条件相当于设定了在该锚点处实施资产兑换的汇率。
在一实施例中,当第一锚点与第二锚点不同、第一锚点处的转入资产与第二锚点处的转出资产的资产类型不同时,资产转移条件相当于设定了在第一锚点与第二锚点之间实施资产转移的流动性费用和汇率。
在一实施例中,本说明书的资产转移方案可以应用于各种资产转移场景,比如境内资产转移、跨境资产转移等,本说明书并不对此进行限制。
在一实施例中,本说明书涉及的区块链可以为联盟链,且参与资产转移的各个成员为该联盟链的联盟成员,而该联盟链还可以包含更多的其他联盟成员,本说明书并不对此进行限制。
图2是一示例性实施例提供的另一种资产转移方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤202,区块链成员创建资产转移条件,所述资产转移条件用于指示:在实施资产转移时,所述区块链成员的转入资产与转出资产之间的数值关系。
在一实施例中,当第一锚点与第二锚点不同、第一锚点处的转入资产与第二锚点处的转出资产的资产类型相同时,资产转移条件相当于设定了在第一锚点与第二锚点之间实施资产转移的流动性费用。
在一实施例中,当第一锚点与第二锚点为同一锚点、转入资产与转出资产的资产类型不同时,资产转移条件相当于设定了在该锚点处实施资产兑换的汇率。
在一实施例中,当第一锚点与第二锚点不同、第一锚点处的转入资产与第二锚点处的转出资产的资产类型不同时,资产转移条件相当于设定了在第一锚点与第二锚点之间实施资产转移的流动性费用和汇率。
在一实施例中,所述资产转移条件定义的数值关系与下述维度中至少之一相关:所述转入资产的资产类型、所述转出资产的资产类型、所述第一锚点与所述第二锚点是否为相同锚点、所述第一锚点的管理方、所述第二锚点的管理方、所述第一数额所处的数值范围、所述付款方所属的类别、所述收款方所属的类别。换言之,中继区块链成员可以对上述一种或多种维度进行组合、形成相应的若干资产转移场景,并针对不同资产转移场景设定相应的资产转移条件(不同资产转移条件定义的数值关系可以单独设定、互不干扰),从而在不同场景下收取不同额度的资产转移费用。
步骤204,所述区块链成员在区块链中发布所述资产转移条件,以在所述区块链成员作为中继区块链成员被用于实现付款方与收款方之间的资产转移,且所述区块链成员与作为上游邻居的第一区块链成员分别持有的由第一锚点发行的区块链资产、与作为下游邻居的第二区块链成员分别持有的由第二锚点发行的区块链资产时,使所述区块链成员收到的所述第一区块链成员转入的由所述第一锚点发行的区块链资产、向所述第二区块链成员转出的由所述第二锚点发行的区块链资产之间符合所述资产转移条件指示的数值关系。
在一实施例中,当所述区块链成员持有的由所述第一锚点、所述第二锚点发行的剩余资产满足预设条件时,所述区块链成员可以创建所述资产转移条件,以用于实现第一锚点与第二锚点之间的资产转移操作;其中,所述预设条件包括:所述区块链成员持有的由所述第二锚点发行的剩余资产不小于第一预设数额、以确保该区块链成员有足够的数额用于从第二锚点转出资产,且所述区块链成员针对所述第一锚点的剩余可转入额度不小于第二预设数额、以确保该区块链成员能够接收足够数额的由第一锚点发行的资产。
其中,根据区块链成员对第一锚点的信任程度,可以针对第一锚点设定相应的最大可信资产额度:当最大可信资产额度越高时,表明区块链成员对该第一锚点的信任程度越大,即区块链成员相信该第一锚点能够将该最大可信资产额度的区块链资产兑换为链外资产。而根据区块链成员对第一锚点设定的最大可信资产额度、区块链成员已经持有的由第一锚点发行的区块链资产的数额,可以确定相应的剩余可转入额度(即最大可信资产额度与已持有的区块链资产的数额之差)。类似地,区块链成员也可以对第二锚点或其他锚点设定相应的最大可信资产额度,此处不再赘述。
需要指出的是:以第一锚点为例。当第一锚点支持多种资产类型时,区块链成员可以分别针对各种资产类型设定相应的最大可信资产额度;以及,区块链成员还可以针对该第一锚点设定相应的最大可信资产总额度,从而分别通过各种资产类型对应的最大可信资产额度和所有资产类型对应的最大可信资产总额度,实现可靠的资产管理。
在一实施例中,随着区块链成员持有的第一锚点、第二锚点发行的资产变化,该区块链成员持有的所述第一锚点、所述第二锚点发行的剩余区块链资产可能在满足预设条件与不满足预设条件之间发生反复变化;其中,当从满足预设条件变化为不满足预设条件时,所述区块链成员可以将所述资产转移条件设为失效状态、使得区块链成员无法基于该资产转移条件实施相应的资产转移操作,以及当从不满足预设条件变化为满足预设条件时,所述区块链成员可以将所述资产转移条件设为有效状态、使得区块链成员能够基于该资产转移条件实施相应的资产转移操作。
为了便于理解,下面以“汇款”过程为例,对本说明书一个或多个实施例的技术方案进行说明。图3是一示例性实施例的一种汇款场景的示意图;如图3所示,假定第三方支付平台在A处运营有钱包1、在B处运营有钱包2,其中A处的用户1在钱包1开设有客户资金账户1、B处的用户2在钱包2开设有客户资金账户2,基于本说明书的资金流转方案可以在用户1与用户2之间实现快速汇款。
在一实施例中,假定如图3所示的钱包1、钱包2与银行1、银行2、银行3等均为同一区块链的成员(member),而该区块链中可以包括如图3所示的锚点1、锚点2、锚点3等若干锚点。其中,锚点的角色可以由成员承担,比如图3中的锚点1~锚点3分别对应于上述的银行1~银行3,当然成员可以不承担锚点的角色、而锚点也并不一定为成员,即成员与锚点之间并不存在必然的一一对应关系。钱包1~2和银行1~3等成员、锚点1~3等均为区块链中的节点,这些节点实现该区块链内的分布式记账。
为了通过区块链内的各个成员实现用户1与用户2之间的汇款,钱包1~2、银行1~3等需要预先加入对应于“汇款”业务的合约,比如此处称之为汇款合约。每一成员均可以在各个锚点处存托任意数额的资金,而相应的锚点可以在区块链中发行对应的区块链资产,并由存托该资金的成员持有该区块链资产,以构成该成员的区块链余额;例如,当钱包1在锚点1处存托1000元链外资产后,锚点1可以发行1000元的区块链资产,并由钱包1持有该1000元的区块链资产。同时,不同成员之间可以对持有的区块链资产进行转移,比如银行1虽然仅在锚点2处存托了1000元链外资产,但是银行1从银行2或其他成员处获得了锚点2发行的1000元区块链资产,因而银行1实际上可以持有由锚点2发行的2000元的区块链资产。假定钱包1持有的区块链余额为由锚点1发行的1000元区块链资产,银行1持有的区块链余额为由锚点2发行的2000元区块链资产,银行2持有的区块链余额为由锚点1发行的1000元区块链资产、由锚点2发行的1000元区块链资产、由锚点3发行的3000元区块链资产,银行3持有的区块链余额为由锚点3发行的1000元区块链资产等;在加入汇款合约后,各个成员将受到该汇款合约的约束,使得每一成员持有的区块链余额均被登记于区块链的区块链账本中。区块链由多个记账节点(一般大于四个)维护一个统一的分布式账本,账本上记录各个成员持有的区块链余额的情况;记账节点通过节点间广播和共识算法使得所有节点处记录的账本内容一致、均为区块链内的全量记账信息,因而可以认为区块链中所有节点采用了统一的账本、即上述的区块链账本。由于区块链中的信息不可篡改、可追溯的特性,使得区块链账本中登记的信息具有足够的可靠性,可以被所有成员及锚点所信赖,因而能够作为转账、支付等各种资金流转场景下的操作依据。
同时,各个成员需要在区块链账本中记录自身对各个锚点的信任情况,以用于后续的路由确定过程中。比如图3所示,虽然钱包2并未持有锚点3发行的区块链资产,但是由于钱包2将该锚点3设定为可信锚点,因而图3中采用“区块链余额为0”的方式表达了该信任情况,表明钱包2愿意接收锚点3发行的区块链资产(比如由其他成员汇入),而锚点1则可能属于钱包2的不可信锚点,表明钱包2不愿意接收锚点1发行的区块链资产。
在本说明书中,成员对于锚点的“信任”可以表现为:成员对锚点的信任程度越高时,允许持有该锚点发行的区块链资产的额度越高。例如,当银行1针对锚点1设定的额度为2000元时,表明银行1认为持有该锚点1发行的区块链资产不超过2000元的情况下,可以确定锚点1能够对该区块链资产进行兑换为链外资产,否则可能存在资产灭失风险。上述的“信任”可以被称为trustline,比如银行1针对锚点1设定的额度为2000元,即银行1针对锚点1设定的trustline为2000元。其中,当同一锚点可以支持多种类型的资产时,成员可以分别针对不同类型的资产设定相应的trustline;例如,银行1针对锚点1可以设定对应于港币的trustline1为2000元,对应于美元的trustline2为1000元,不同的trustline之间相互独立。当成员针对同一锚点设定了多个trustline时,这些trustline之间虽然相互独立,但是可以受到一总额度的约束,从而分别通过各个trustline的独立额度与总额度实现有效的风险控制。
在图3所示的实施例中,暂不考虑多种资产的情况,而假定转移的资产均为同一种货币。其中,钱包1仅针对锚点1设定了trustline-QB1-1=1500元,银行1针对锚点1设定了trustline-YH1-1=3000元、针对锚点2设定了trustline-YH1-2=2000元,银行2针对锚点1设定了trustline-YH2-1=1200元、针对锚点2设定了trustline-YH2-2=1800元、针对锚点3设定了trustline-YH2-3=3500元,银行3针对锚点2设定了trustline-YH3-2=1000元、针对锚点3设定了trustline-YH3-3=2000元,钱包2针对锚点2设定了trustline-QB2-2=3000元、针对锚点3设定了trustline-QB2-3=2000元。各个成员针对各个锚点设定的trustline被记录于区块链账本中,以供需要时进行查询并据此控制资产转移。
同时,各个区块链成员可以根据自身所希望支持的汇款场景,设定相应的汇款费用。以银行1为例,银行1分别在锚点1、锚点2处存托有区块链余额,则银行1可以支持在锚点1与锚点2之间的汇款操作,并针对该汇款操作设定相应的汇款费用。假定银行1希望支持从锚点1向锚点2的汇款操作,相当于锚点1可以接收款项、锚点2可以汇出款项,从而相当于从锚点1向锚点2实施了汇款;那么,银行1需要确保满足下述条件:
1)银行1持有的由锚点1发行的区块链资产小于设定的trustline-YH1-1;
2)银行1持有的由锚点2发行的区块链资产大于0。
在图3所示的实施例中,由于银行1持有的由锚点1发行的区块链资产为0<trustline-YH1-1、持有的由锚点2发行的区块链资产为2000>0,因而满足上述的条件1)和条件2),可以设定相应的汇款费用,比如汇款费用为手续费=100元/笔。
类似地,银行1可以设定从锚点2向锚点1实施汇款操作的汇款费用。但是,由于银行1持有的由锚点2发行的区块链资产为2000=trustline-YH1-2、持有的由锚点1发行的区块链资产为0,因而不满足上述的条件1)和条件2),无法设定相应的汇款费用;或者,虽然可以设定汇款费用,但是银行1无法基于该汇款费用实施锚点2向锚点1的汇款操作。
类似地,其他区块链成员同样可以确定自身持有的由各个锚点发行的区块链资产是否满足上述的条件1)和条件2),从而在同时满足这2个条件的情况下,对相应锚点之间的汇款操作设定相应的汇款费用,此处不再一一赘述。
在图3所示的汇款场景中,用户1可以向钱包1发起汇款请求,并在汇款请求中指明所需汇出的资金数额以及收款人;例如,假定用户1设定资金数额为1000元、收款人为用户2。除了由用户1发起汇款请求之外,在其他场景中还可以采用其他方式触发汇款流程,比如由用户1发起资金数额为1000元、收款人为用户2的支付请求,再比如由用户2发起资金数额为1000元、付款人为用户1的收款请求等,本说明书并不对此进行限制。
而钱包1可以确认用户1对应的客资账户1中余额充足,并向钱包2确认作为收款人的用户2存在。当余额充足且用户2存在时,钱包1可以对用户1向用户2发起的汇款事件实施合规检查。例如,钱包1可以向用户1提供材料提交入口,由用户1提供针对汇款事件的待检查材料;其中,用户1可以事先提交可用于所有汇款事件的静态材料(比如用户1的身份证照片等),而在每次汇款时提交针对相应的汇款事件的动态材料(比如近期汇款记录等),以提升汇款效率。其中,钱包1针对汇款事件的合规检查可以包括KYC(Know Your Customer,了解你的客户)检查、AML(Anti-Money Laundering,反洗钱)检查等多种类型中至少之一,本说明书并不对此进行限制。
然后,钱包1可以通过发起“路由请求”合约操作,确定从钱包1向钱包2实施汇款的汇款路由。汇款路由包括作为最上游成员的钱包1、作为最下游成员的钱包2,以及两者之间的若干中继成员。在基于本说明书的技术方案时,需要借助于汇款路由中各个成员持有的由区块链上锚点发行的区块链资产,并通过区块链资产之间的流转,呈现出“汇款资金(如用户1希望汇出的1000元)从钱包1流转至钱包2”的效果,从而最终由钱包2将汇款资金提供至用户2。
汇款资金在汇款路由中的各个成员之间实现流转时,可以具体划分为若干次在相邻成员之间的资金流转;例如,当汇款路由为“钱包1-中继成员-钱包2”时,包括“钱包1-中继成员”与“中继成员-钱包2”两对相邻成员,涉及到从钱包1流转至中继成员、从中继成员流转至钱包2共2次资金流转。其中,在每对相邻成员之间,需要通过区块链中的锚点来实现资金流转,并具体涉及到两个条件:条件(1)相邻成员中的上游成员持有某一锚点发行的区块链资产不小于汇款数额;条件(2)相邻成员中的下游成员针对该锚点设定了trustline,且下游成员已持有的由该锚点发行的区块链资产与汇款数额之和不大于trustline所设定的额度。换言之,上游成员与下游成员之间存在关联锚点,上游成员在该关联锚点处具有足够的区块链资产供资金流转、下游成员愿意接收由该关联锚点发行的区块链资金。
以钱包1与银行1为例:钱包1持有锚点1发行的区块链资产为1000元、不小于汇款数额1000元;而银行1针对锚点1设定了trustline-YH1-1=2000元,并且银行1持有锚点1发行的区块链资产为0元、与汇款数额1000元之和为1000元<2000元,因而该锚点1属于钱包1与银行1之间的关联锚点,钱包1与银行1可以基于该锚点1实现资产转移。
以钱包1与银行2为例:钱包1持有锚点1发行的区块链资产为1000元、不小于汇款数额1000元;银行2针对锚点1设定了trustline-YH2-1=1200元,而银行2持有锚点1发行的区块链资产为1000元、与汇款数额1000元之和为2000元>1200元,因而该锚点1并不属于钱包1与银行2之间的关联锚点,钱包1与银行2无法基于该锚点1实现资产转移。
类似地,可以基于上述方式分别确定出区块链内各个成员之间是否满足条件(1)与条件(2),从而确定出可以依次串联起钱包1与钱包2的若干中继成员,得到完整的汇款路由。
图4是一示例性实施例的一种确定出汇款路由的示意图;如图4所示,汇款路由可以包括钱包1-银行1-钱包2,钱包1与银行1之间的关联锚点为锚点1、银行1与钱包2之间的关联锚点为锚点2。因此,钱包1可以从区块链中读取银行1预先设定的从锚点1向锚点2实施汇款的汇款费用,比如上述的100元/笔。
在一实施例中,钱包1可能同时确定出多条汇款路由,可以根据一定条件进行选取最终采用的汇款路由,比如该条件可以包括:路径最短、费用最低等,本说明书并不对此进行限制。或者,钱包1可以将多条汇款路由、每条汇款路由涉及的路径长度和汇款费用等告知用户1,由用户1进行选择。
在一实施例中,汇款路由中可能包含多个中继成员,比如钱包1-银行2-银行3-钱包2(并不对应于图3所示的实施例),则钱包1需要分别确定银行2设定的汇款费用和银行3设定的汇款费用,并将这两项汇款费用之和作为完整的汇款费用。例如,银行2设定的汇款费用为100元/笔、银行3设定的汇款费用为150元/笔,则完整的汇款费用为250元。
在一实施例中,钱包1还可以针对各个中继成员发起合规检查请求,以使得各个中继成员同步或异步实施合规检查;当合规检查的结果均为合格时,钱包1发起“汇款”合约操作,在汇款路由的各个成员之间实施资金流转、完成汇款操作。
图5是一示例性实施例的一种实施汇款操作的示意图;如图5所示,汇款操作可以包括3个步骤:
在步骤①中,由钱包1可以从用户1对应的客资账户1中扣除1000元、转移至钱包1的自有账户1中。
在步骤②中,钱包1与银行1之间通过锚点1实现资金流转,其中钱包1持有的由锚点1发行的区块链资产向银行1流转1000元,使得钱包1持有的由锚点1发行的区块链资产由1000元减少为0元、银行1持有的由锚点1发行的区块链资产由0元增加至1000元。如上文所述,由于银行1针对锚点1设定的trustline-YH1-1=2000>0+1000,因而能够在锚点1处实现上述的资金转移。
以及,银行1与钱包2之间通过锚点2实现资金流转,由于银行1设定的汇款费用为100元/笔,因而银行1持有的由锚点2发行的区块链资产向钱包2流转900元(1000元-100元=900元),使得银行1持有的由锚点2发行的区块链资产由2000元减少至1100元、钱包2持有的由锚点2发行的区块链资产由1000元增加至1900元。如上文所述,由于钱包2针对锚点2设定的trustline-QB2-2=3000>1000+1000,因而能够在锚点2处实现上述的资金转移。
在步骤③中,钱包2可以从自有账户2向用户2开设于该钱包2处的客资账户2转入900元。
在上述钱包1与银行1、银行1与钱包2之间的资金流转过程中:由于钱包1的自有账户1中增加了来自用户1的客资账户1转入的1000元、钱包1持有的由锚点1发行的区块链资产减少1000,相当于钱包1的资金流转净额为0元;由于银行1持有的由锚点1发行的区块链资产增加1000元、持有的由锚点2发行的区块链资产减少900元,相当于银行1在资金流转过程中收取了100元的汇款费用;由于钱包2持有的由锚点2发行的区块链资产增加900元,相当于用户1汇出的1000元在银行1扣除了100元的汇款费用后、剩余的900经过汇款路由流转至该钱包2的区块链余额中,而钱包2持有的由锚点2发行的区块链资产增加900元、从自有账户2支出900元,相当于最终钱包2的资金流转净额为0元、用户2获得了来自用户1的900元汇款。
在上述图3-5所示的实施例中,资产转移的过程中转入、转出的资产均为相同类型;而在一些实施例中,可能涉及到不同类型资产的转移操作。图6是一示例性实施例提供的一种涉及多类型资产的资产转移示意图。如图6所示,假定银行1支持多种类型的资产,譬如L1、L2等;相应地,当银行1信任锚点1时,可以针对该锚点1发行的各种类型的资产分别设定相应的trustline,以分别表示面对各种资产类型时对该锚点1的信任程度。例如,银行1可以针对锚点1所支持的L1类型的资产,设定相应的trustline-YH1-1-L1=2000元,针对锚点1所支持的L2类型的资产,设定相应的trustline-YH1-1-L2=4000元,其中L1、L2类型的资产之间存在兑换比例为1:2,即L1类型的1元相当于L2类型的2元。
类似地,钱包1同样支持多种类型的资产,譬如上述的L1、L2等;同时,钱包1可以针对锚点1所支持的L1类型的资产,设定相应的trustline-QB1-1-L1=1500元,针对锚点1所支持的L2类型的资产,设定相应的trustline-QB1-1-L2=3000元。
在一实施例中,用户1可以向钱包1发起合约操作,以将客资账户1中的1000元L1类型的资产转换为L2类型的资产。钱包1可以根据各个区块链成员对各个锚点发行的区块链资产的持有情况、trustline设定情况、资产转移费用等,确定出恰当的资产转移路由,具体可以参考图3-5所示的实施例中确定汇款路由的过程,此处不再赘述。
假定钱包1选取的汇款路由为钱包1(L1)-银行1(L1)-银行1(L2)-钱包1(L2),即通过钱包1、银行1分别持有的由锚点1发行的L1、L2类型的区块链资产,实现资产转移。其中,由于仅涉及到锚点1,且涉及到L1、L2类型的资产转移,因而相当于在锚点1处实现的资产兑换。
图7是一示例性实施例的一种实施资产转移操作的示意图;如图7所示,资产转移操作可以包括3个步骤:
在步骤①中,由钱包1可以从用户1对应的客资账户1-L1中扣除1000元、转移至钱包1的自有账户1-L1中。
在步骤②中,钱包1与银行1之间通过锚点1实现资金流转,其中钱包1持有的由锚点1发行、L1类型的区块链资产向银行1流转1000元,使得钱包1持有的由锚点1发行、L1类型的区块链资产由1000元减少为0元、银行1持有的由锚点1发行的区块链资产由0元增加至1000元。如上文所述,由于银行1针对锚点1设定的trustline-YH1-1-L1=2000>1000,因而能够在锚点1处实现上述的资产转移。
以及,银行1与钱包1之间通过锚点1实现资金流转,由于银行1设定的资产转移费用为FX=0.10%,并且L1、L2类型的资产之间存在兑换比例为1:2,因而银行1持有的由锚点1发行、L2类型的区块链资产向钱包1流转1998元(1000元×2×(1-0.10%)=1998元),使得银行1持有的由锚点1发行、L2类型的区块链资产由3000元减少至1002元、钱包1持有的由锚点1发行、L2类型的区块链资产由500元增加至2498元。如上文所述,由于钱包2针对锚点2设定的trustline-QB1-1-L2=3000>2498,因而能够在锚点2处实现上述的资产转移。
在步骤③中,钱包1可以从自有账户1-L2向用户1开设于该钱包1处的客资账户1-L2转入1998元。
在上述钱包1与银行1之间的资金流转过程中:由于钱包1的自有账户1-L1中增加了来自用户1的客资账户1-L1转入的1000元L1类型资产,而钱包1持有的由锚点1发行、L1类型的区块链资产减少1000元L1类型资产,相当于钱包1的资金流转净额为0元;由于银行1持有的由锚点1发行、L1类型的区块链资产增加1000元L1类型资产,而持有的由锚点1发行、L2类型的区块链资产减少1998元L2类型资产,相当于银行1在资金流转过程中收取了2元L2类型的资产转移费用;由于钱包1持有的由锚点1发行、L2类型的区块链资产增加1998元,相当于用户1汇出的1000元L1类型资产在银行1扣除了2元L2类型的资产转移费用后、剩余的1998元L2类型资产经过汇款路由流转至该钱包1的区块链余额中,而钱包1持有的由锚点1发行的L2类型的区块链资产增加1998元、从自有账户1-L2支出1998元L2类型资产,相当于最终钱包1的资金流转净额为0元、用户1获得了1998元L2类型资产;换言之,用户1使用1000元L1类型的资产,兑换了1998元L2类型的资产。
在一些场景中,可以结合图3-5、图6-7所示的实施例,即同时涉及多个锚点之间的资产转移,且不同锚点处的资产类型不同,从而既涉及多个锚点之间的资产流动,又涉及资产流动过程中的类型兑换。相应地,区块链成员可以分别设定资产流动过程中的费用(类似于图3-5中的手续费)、资产兑换过程中的费用(类似图6-7中的资产转移费用),或者区块链成员可以设定同时作用于资产流动与兑换过程的总费用。
图8是一示例性实施例提供的一种设备的示意结构图。请参考图8,在硬件层面,该设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。处理器802从非易失性存储器810中读取对应的计算机程序到内存808中然后运行,在逻辑层面上形成资产转移装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图9,在软件实施方式中,该资产转移装置可以包括:
接收单元91,使第一区块链成员接收到付款方与收款方之间第一数额的资产转移请求;
确定单元92,使所述第一区块链成员确定与所述收款方对应的第二区块链成员、位于所述第一区块链成员与所述第二区块链成员之间的若干中继区块链成员,其中相邻区块链成员分别持有同一锚点发行的区块链资产;
发起单元93,使所述第一区块链成员根据各个中继区块链成员发布的资产转移条件,发起用于资产转移的合约操作,在所述用于资产转移的合约操作生效后,在同一原子事务内完成下述操作:每一中继区块链成员根据自身与上游的邻居区块链成员分别持有的由第一锚点发行的区块链资产,接收上游的邻居区块链成员转入的由所述第一锚点发行的第一数额的区块链资产,以及根据自身与下游的邻居区块链成员分别持有的由第二锚点发行的区块链资产,向下游的邻居区块链成员转出由所述第二锚点发行的第二数额的区块链资产;其中,所述资产转移条件用于指示相应的中继区块链成员在所述第一锚点处的转入资产与在所述第二锚点处的转出资产之间的数值关系,以使所述第一数额与所述第二数额之间符合所述数值关系。
可选的,所述资产转移条件包括:所述转出资产与所述转入资产的数额之比为预设比值。
可选的,所述资产转移条件包括:所述转出资产的数额比所述转入资产的数额减少预设数值。
可选的,所述资产转移条件定义的数值关系与下述维度中至少之一相关:
所述转入资产的资产类型、所述转出资产的资产类型、所述第一锚点与所述第二锚点是否为相同锚点、所述第一锚点的管理方、所述第二锚点的管理方、所述第一数额所处的数值范围、所述付款方所属的类别、所述收款方所属的类别。
图10是一示例性实施例提供的另一种设备的示意结构图。请参考图10,在硬件层面,该设备包括处理器1002、内部总线1004、网络接口1006、内存1008以及非易失性存储器1010,当然还可能包括其他业务所需要的硬件。处理器1002从非易失性存储器1010中读取对应的计算机程序到内存1008中然后运行,在逻辑层面上形成资产转移装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图11,在软件实施方式中,该资产转移装置可以包括:
创建单元1101,使区块链成员创建资产转移条件,所述资产转移条件用于指示:在实施资产转移时,所述区块链成员在第一锚点处的转入资产与在第二锚点处的转出资产之间的数值关系;
发布单元1102,使所述区块链成员在区块链中发布所述资产转移条件,以在所述区块链成员作为中继区块链成员被用于实现付款方与收款方之间的资产转移,且所述区块链成员与作为上游邻居的第一区块链成员分别持有的由第一锚点发行的区块链资产、与作为下游邻居的第二区块链成员分别持有的由第二锚点发行的区块链资产时,使所述区块链成员收到的所述第一区块链成员转入的由所述第二锚点发行的区块链资产、向所述第二区块链成员转出的由所述第二锚点发行的区块链资产之间符合所述资产转移条件指示的数值关系。
可选的,所述创建单元1101具体用于:
当所述区块链成员持有的由所述第一锚点、所述第二锚点发行的剩余资产满足预设条件时,使所述区块链成员创建所述资产转移条件;
其中,所述预设条件包括:所述区块链成员持有的由所述第二锚点发行的剩余资产不小于第一预设数额,且所述区块链成员针对所述第一锚点的剩余可转入额度不小于第二预设数额。
可选的,还包括:
设定单元1103,当所述区块链成员持有的由所述第一锚点、所述第二锚点发行的剩余资产变化为不满足预设条件时,使所述区块链成员将所述资产转移条件设为失效状态。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。