一种基于区块链的多方交易信息一致性维护方法转让专利

申请号 : CN202011081152.0

文献号 : CN111932264B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 石宁甘子荣丁勇田蕾

申请人 : 南京可信区块链与算法经济研究院有限公司

摘要 :

本申请公开一种基于区块链的多方交易信息一致性维护方法,包括:预先设置至少一种交易处理智能合约;交易处理智能合约包括交易类别对应的交易参与账户和与交易参与账户对应的交易金额分配比例,任一交易类别包括多笔交易;当发生任一交易类别时,调用对应的交易处理智能合约;检查交易参与账户和交易处理智能合约的合法性;执行交易类别里的所有交易操作;根据与交易参与账户对应的交易金额分配比例,对交易参与账户对应的交易信息同时进行清算;将清算后的交易信息更新在区块链的世界状态里。以解决目前单笔交易清算模式,如果上一笔交易清算出现错误,则会连带后续相关的交易清算错误,造成账本错乱和损失交易资产等问题。

权利要求 :

1.一种基于区块链的多方交易信息一致性维护方法,其特征在于,包括:预先设置至少一种交易处理智能合约,每种所述交易处理智能合约对应一种交易类别;所述交易处理智能合约包括所述交易类别对应的交易参与账户和与所述交易参与账户对应的交易金额分配比例,任一所述交易类别包括多笔相互关联的交易;

当发生任一所述交易类别时,调用对应的所述交易处理智能合约;

检查所述交易参与账户和所述交易处理智能合约的合法性;

如果所述交易参与账户和所述交易处理智能合约均合法,执行所述交易类别里的所有交易操作,所述交易操作包括所述交易参与账户的出账操作和入账操作;

根据与所述交易参与账户对应的所述交易金额分配比例,对所述交易参与账户对应的交易信息同时进行清算;

将清算后的所述交易信息更新在区块链的世界状态里;

如果所述交易的笔数为两笔,分别为1级交易和2级交易,所述交易参与账户包括第一账户、第二账户、第三账户、第四账户和第五账户;

所述第一账户作为所述1级交易的发起方,所述第二账户作为所述1级交易的接收方;

所述第二账户作为所述2级交易的发起方,所述第三账户、所述第四账户和所述第五账户作为所述2级交易的接收方;

所述第一账户的交易金额为足额;所述第二账户、所述第三账户、所述第四账户和所述第五账户的交易金额分别为足额与第一占比、第二占比、第三占比和第四占比的乘积;

所述根据与交易参与账户对应的交易金额分配比例,对交易参与账户对应的交易信息同时进行清算,包括:根据足额、所述第一占比、所述第二占比、所述第三占比和所述第四占比,对所述第一账户、所述第二账户、所述第三账户、所述第四账户和所述第五账户的所述交易信息同时进行清算。

2.根据权利要求1所述的基于区块链的多方交易信息一致性维护方法,其特征在于,所述交易信息包括账户余额、账户库存、订单号、交易金额、交易编号和所述交易处理智能合约的调用结果。

3.根据权利要求2所述的基于区块链的多方交易信息一致性维护方法,其特征在于,所述交易处理智能合约的所述调用结果采用私钥签名的方式记录在所述世界状态里。

4.根据权利要求3所述的基于区块链的多方交易信息一致性维护方法,其特征在于,所述交易信息以K-V集合的形式存储在所述世界状态里,每个账户对应的所有所述交易信息形成一个所述K-V集合;

所述K-V集合为[K1-V1,K2-V2,K3-V3,…,Ki-Vi],其中,i为任一正整数,所述K-V集合中的每个元素代表一种所述交易信息。

5.根据权利要求1所述的基于区块链的多方交易信息一致性维护方法,其特征在于,所述检查交易参与账户和交易处理智能合约的合法性,包括:判断所述交易参与账户的余额是否能够满足所述交易类别;

判断所述交易参与账户的签名是否有效;所述签名为所述交易参与账户的证书对相关所述交易的签名;

判断所述交易处理智能合约的标识号是否正确;

判断所述交易参与账户的身份是否合法。

6.根据权利要求1所述的基于区块链的多方交易信息一致性维护方法,其特征在于,所述如果交易参与账户和交易处理智能合约均合法,执行交易类别里的所有交易操作,包括:如果所述交易参与账户和所述交易处理智能合约均合法,执行所述交易类别里的所有交易操作;

对执行所述交易操作的过程进行计时,得到执行交易时间;

判断所述执行交易时间是否超出预设阈值时间;

如果所述执行交易时间未超出所述预设阈值时间,继续执行所述交易操作,直至所有所述交易操作全部执行完成。

7.根据权利要求6所述的基于区块链的多方交易信息一致性维护方法,其特征在于,如果所述执行交易时间超出所述预设阈值时间,查询所述交易参与账户的交易状态是否正常;

如果所述交易参与账户的所述交易状态均正常,继续执行所述交易操作,直至所有所述交易操作全部执行完成。

8.根据权利要求7所述的基于区块链的多方交易信息一致性维护方法,其特征在于,如果所述交易参与账户的所述交易状态存在异常,判断所述交易状态存在异常的所述交易参与账户是否处于冻结状态;

如果所述交易状态存在异常的所述交易参与账户处于冻结状态,向所述交易状态存在异常的所述交易参与账户发送资产解冻请求消息;

如果所述交易状态存在异常的所述交易参与账户反馈资产解冻消息,继续执行所述交易操作。

9.根据权利要求6所述的基于区块链的多方交易信息一致性维护方法,其特征在于,如果所述执行交易时间超出所述预设阈值时间,查询所述交易类别是否被撤销;

如果查询到所述交易类别未被撤销,继续执行所述交易操作。

说明书 :

一种基于区块链的多方交易信息一致性维护方法

技术领域

[0001] 本申请涉及区块链技术领域,具体的涉及一种基于区块链的多方交易信息一致性维护方法。

背景技术

[0002] 区块链技术,也被称为分布式账本技术,是一种有若干台计算机设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开、透明以及每台计算机设备均可以参与数据库记录,且各个计算机设备之间可以快速进行数据同步的特性,使得区块链技术已经在较广的领域中得到了应用。然而,由于数据传输中断或数据传输不及时,导致各个账户间的信息可能不完全相同,对于同一账户的状态认知也不相同,从而需采用对账和清分等手段保证多方账户的一致性,以保证交易资产的不可损失性。
[0003] 目前,区块链技术中采用的对账和清分的方法都是针对单笔交易进行的,即单账本清算模式。然而,随着数字资产的多样化以及数字资产状态的多样性发展,一笔交易通常会关联另外的多笔交易,如果继续采用只针对单笔交易的单账本清算模式,如果其中一笔交易清算出现错误,则会连带其他相关的多笔交易清算错误,从而造成账本错乱,甚至损失交易资产。

发明内容

[0004] 本申请提供一种基于区块链的多方交易信息一致性维护方法,以解决目前单笔交易清算模式,如果上一笔交易清算出现错误,则会连带后续相关的交易清算错误,造成账本错乱,损失交易资产等问题。
[0005] 一种基于区块链的多方交易信息一致性维护方法,包括:
[0006] 预先设置至少一种交易处理智能合约,每种所述交易处理智能合约对应一种交易类别;所述交易处理智能合约包括所述交易类别对应的交易参与账户和与所述交易参与账户对应的交易金额分配比例,任一所述交易类别包括多笔交易;
[0007] 当发生任一所述交易类别时,调用对应的所述交易处理智能合约;
[0008] 检查所述交易参与账户和所述交易处理智能合约的合法性;
[0009] 如果所述交易参与账户和所述交易处理智能合约均合法,执行所述交易类别里的所有交易操作,所述操作包括所述交易参与账户的出账操作和入账操作;
[0010] 根据与所述交易参与账户对应的所述交易金额分配比例,对所述交易参与账户对应的交易信息同时进行清算;
[0011] 将清算后的所述交易信息更新在区块链的世界状态里。
[0012] 本申请提供的基于区块链的多方交易信息一致性维护方法,将相互关联的多笔交易集成在一个交易类别内,为每个交易类别预先设置对应的交易处理智能合约,当任一交易类别发起时,可以调用对应的交易处理智能合约;交易处理智能合约内设定有交易类别内的交易参与账户处理逻辑,即交易执行逻辑,交易类别内的多笔交易按照交易处理智能合约设定的逻辑执行相应操作、清算和存储交易信息,因此,多笔关联交易的交易信息可以实现同时清算,能够避免传统的单笔交易清算模式,如果上一笔交易清算出现错误,则会连带后续相关的交易清算错误,造成账本错乱和损失交易资产的问题。

附图说明

[0013] 为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014] 图1为本申请实施例提供的一种基于区块链的多方交易信息一致性维护方法流程图;
[0015] 图2为图1所示基于区块链的多方交易信息一致性维护方法的第一种交易类别执行过程示意图;
[0016] 图3为图1所示基于区块链的多方交易信息一致性维护方法的第二种交易类别执行过程示意图;
[0017] 图4为图2所示交易类别执行过程的清算示意图;
[0018] 图5为图3所示交易类别执行过程的清算示意图;
[0019] 图6为图1所示步骤S4的详细流程图。

具体实施方式

[0020] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0021] 图1为本申请实施例提供的一种基于区块链的多方交易信息一致性维护方法流程图。如图1所示,本申请实施例提供一种基于区块链的多方交易信息一致性维护方法,包括如下步骤:
[0022] S1,预先设置至少一种交易处理智能合约,每种交易处理智能合约对应一种交易类别。如果区块链中存在多种类别的交易,则存在多个交易处理智能合约。如图1所示,交易类别1、交易类别2…交易类别m分别对应交易处理智能合约1、交易处理智能合约2…交易处理智能合约m,m可以是任一正整数;每个交易类别均可以包括多笔交易,可以是1级交易、2级交易…n级交易,n可以是任一正整数。交易处理智能合约内设置有交易类别对应的交易参与账户和与交易参与账户对应的交易金额分配比例,交易参与账户和交易金额分配比例可以看作是交易类别对应的交易执行逻辑。
[0023] S2,当发生任一交易类别时,调用对应的交易处理智能合约。图2为图1所示基于区块链的多方交易信息一致性维护方法的第一种交易类别执行过程示意图。如图2所示,如果交易类别是转账交易;此转账交易类别可以包括1级交易和2级交易;第一账户作为1级交易的发起方,第二账户作为1级交易的接收方;第二账户作为2级交易的发起方,第三账户、第四账户和第五账户作为2级交易的接收方。调用与此转账交易类别对应的转账交易处理智能合约,转账交易处理智能合约内设置的交易参与账户则为第一账户、第二账户、第三账户、第四账户和第五账户,交易金额分配比例为第一账户的交易金额为足额,第二账户、第三账户、第四账户和第五账户的交易金额分别为足额与第一占比、第二占比、第三占比和第四占比的乘积。如图2所示,第一占比、第二占比、第三占比和第四占比可以分别为50%、10%、20%和20%,只要满足第一占比、第二占比、第三占比和第四占比之和为1即可。图2所示交易类别可以理解为,第一账户作为客户方对第二账户进行货款支付的转账交易,第二账户接收到货款后还需要对上一级材料供应商第三账户、第四账户和第五账户进行材料费用的支付转账交易。所以,2级交易需要在1级交易之后进行。又由于2级交易的金额基于1级交易的金额,所以1级交易和2级交易属于关联交易,在最后的清算步骤,可以将两笔交易的交易金额一起进行清算。
[0024] 进一步的,图3为图1所示基于区块链的多方交易信息一致性维护方法的第二种交易类别执行过程示意图。如图3所示,交易类别可以为转账交易,相比较于图2所示的交易类别,图3所示的交易类别可以进一步包括3级交易,3级交易的发起方可以是第四账户和第五账户,3级交易的接收方为第六账户和第七账户。交易金额分配比例具体可以为第一账户的交易金额为足额,第二账户、第三账户、第四账户、第五账户、第六账户和第七账户的交易金额分别为足额的50%、10%、10%、10%、10%和10%。
[0025] 需要说明的是,图2和图3所示的交易参与账户和交易金额分配比例只是示意性的,不作为本申请的限定。
[0026] S3,检查交易参与账户和交易处理智能合约的合法性。具体可以包括如下步骤:
[0027] S31,判断交易参与账户的余额是否能够满足交易类别。由于每种交易类别都包括多笔交易,所以,此处需要判断每个交易参与账户的余额是否能够满足对应的交易,以确保交易类别里的所有交易均能够正常进行。
[0028] S32,判断交易参与账户的签名是否有效。同理,由于每种交易类别都包括多笔交易,所以,每个交易参与账户的证书对相关的交易进行签名均应该是有效的,以反映每个交易参与账户的有效性。
[0029] S33,判断交易处理智能合约的标识号是否正确。由于存在多个交易处理智能合约,所以相应的每个交易处理智能合约需要设置标识号,可以方便交易智能合约的调用,所以在调用交易处理智能合约之前,需要确认标识号的正确性。
[0030] S34,判断交易参与账户的身份是否合法。
[0031] 需要说明的是,步骤S31-S34可以是并列执行的,需要每个步骤的判断结果均是“是”,才能判定交易参与账户和交易处理智能合约是合法的,只要任意一项判断结果是“否”,步骤S3的检查结果都是不合法,整个交易类别终止执行。
[0032] S4,如果交易参与账户和交易处理智能合约均合法,执行交易类别里的所有交易操作,交易操作可以包括交易参与账户的出账操作和入账操作。如图2所示,如果交易类别是转账交易,则交易类别的操作包括:第一账户出账足额、第二账户入账足额、第二账户出账50%*足额、第三账户入账10%*足额、第四账户入账20%*足额及第五账户入账20%*足额。如图3所示的交易类别,操作具体包括:第一账户出账足额、第二账户入账足额、第二账户出账50%*足额、第三账户入账10%*足额、第四账户入账20%*足额、第五账户入账20%*足额、第四账户出账10%*足额、第五账户出账10%*足额、第六账户入账10%*足额及第七账户入账10%*足额。
[0033] S5,根据与交易参与账户对应的交易金额分配比例,对交易参与账户对应的交易信息同时进行清算。图4为图2所示交易类别执行过程的清算示意图。如图4所示,根据第一账户的足额、第二账户的50%*足额、第三账户的10%*额、第四账户的20%*足额及第五账户的20%*足额,对第一账户、第二账户、第三账户、第四账户和第五账户的所有交易信息同时进行清算。图5为图3所示交易类别执行过程的清算示意图。如图5所示的交易类别对应的交易金额分配比例为:第一账户、第二账户、第三账户、第四账户、第五账户、第六账户和第七账户的交易金额分别为总额与100%、50%、10%、10%、10%、10%和10%。
[0034] S6,将清算后的交易信息更新在区块链的世界状态里。交易信息可以包括账户余额、账户库存、订单号、交易金额、交易编号和交易处理智能合约的调用结果。交易处理智能合约的调用结果可以采用私钥签名的方式记录在世界状态里。私钥签名可以确保交易处理智能合约的调用结果不易被篡改或伪造,能够增加存储的安全性。
[0035] 交易信息可以K-V集合的形式存储在世界状态里,每个账户对应的所有交易信息形成一个K-V集合。账户的所有信息都可以存储在称为世界状态的对象中,世界状态代表了当前账本所有账户的最新值,用户可以直接根据账户获取最新的账户信息最新值,而不需要遍历整个区块文件进行计算。K-V集合可以表示为[K1-V1,K2-V2,K3-V3,…,Ki-Vi],其中,i为任一正整数,K-V集合中的每个元素代表一种交易信息。举例说明,K1-V1代表账户余额,K2-V2代表账户库存,K3-V3代表订单号,K4-V4代表交易金额,K5-V5代表交易编号,K6-V6代表交易处理智能合约的调用结果。K-V集合的每个元素可以实现逐条记录,容易追溯,在清算的过程中,清晰明了,不易混淆,能够在确保清算和存储的交易信息准确性的同时,提高清算和存储的效率。
[0036] 本申请实施例提供的基于区块链的多方交易信息一致性维护方法,将相互关联的多笔交易集成在一个交易类别内,为每个交易类别预先设置对应的交易处理智能合约,当任一交易类别发起时,可以调用对应的交易处理智能合约;交易处理智能合约内设定有交易类别内的交易参与账户处理逻辑,即交易执行逻辑,交易类别内的多笔交易按照交易处理智能合约设定的逻辑执行相应交易操作、清算和存储交易信息,因此,多笔关联交易的交易信息可以实现同时清算,能够避免传统的单笔交易清算模式,当上一笔交易清算出现错误时,连带后续相关的交易清算错误,造成账本错乱和损失交易资产的问题。
[0037] 图6为图1所示步骤S4的详细流程图。如图6所示,如果交易参与账户和交易处理智能合约均合法,执行交易类别里的所有交易操作,可以具体包括如下步骤:
[0038] S41,如果交易参与账户和交易处理智能合约均合法,执行交易类别里的所有交易操作。
[0039] S42,对执行交易操作的过程进行计时,得到执行交易时间。当所有交易操作执行完成时,停止计时。
[0040] S43,判断执行交易时间是否超出预设阈值时间。预设阈值时间可以是设定在交易处理智能合约内的,用于对执行交易时间进行监控。通常一种交易类别的执行交易时间会在一个固定范围内波动,当交易发生异常情况时,执行交易时间会发生较大波动,因此设定一个阈值时间可以及时发现异常的交易情况,以对异常情况进行针对性处理,保证交易能够顺利执行。对执行交易时间是否超出预设阈值时间的判断可以设定一个固定频率进行,例如,可以是每秒进行一次判断,或者每0.5秒进行一次判断,可以根据具体情况进行设定。
[0041] 如果执行交易时间未超出预设阈值时间,继续执行交易操作,直至所有交易操作全部执行完成。
[0042] S44,如果执行交易时间超出预设阈值时间,查询交易参与账户的交易状态是否正常。
[0043] 如果交易参与账户的交易状态均正常,继续执行交易操作,直至所有交易操作全部执行完成。
[0044] S44′,如果执行交易时间超出预设阈值时间,查询交易类别是否被撤销。
[0045] 如果查询到交易未被撤销,继续执行交易操作。如果查询到交易类别已经被撤销,则交易终止。
[0046] 如果执行交易时间超出预设阈值时间,则表示交易过程发生了异常情况,需要对异常情况进行查询。可以首先查询交易参与账户是否处在正常的交易状态,也可以首先查询交易是否被撤销。所以步骤S44和步骤S44′可以同时进行,互不影响。也可以设定先后顺序,或者择一执行。
[0047] S45,如果交易参与账户的交易状态存在异常,判断交易状态存在异常的交易参与账户是否处于冻结状态。交易参与账户的异常交易状态可以包括多种,例如账户被冻结或者账本记录错误的账户余额、账户库存导致的账户余额不足以及账户库存不足等。比较常见的是账户的资产临时被冻结的情况,所以本步骤首先确认交易状态异常账户的资产是否被冻结。
[0048] S46,如果交易状态存在异常的交易参与账户处于冻结状态,向交易状态存在异常的交易参与账户发送资产解冻请求消息,交易状态存在异常的交易参与账户接收到资产解冻请求后对资产进行解冻,同时会发出资产解冻的反馈消息。如果交易状态存在异常的交易参与账户反馈资产解冻消息,继续执行交易操作。
[0049] 本实施例提供了步骤S4的详细步骤,列举了几种可能遇到的情况进行判断,例如账户被冻结或交易被撤销的情况,本申请不做具体限定。本说明书中各个实施例之间相同相似的部分互相参见即可。