CN110503554B - 一种智能合约处理方法、装置、区块链节点设备及介质 - Google Patents
一种智能合约处理方法、装置、区块链节点设备及介质 Download PDFInfo
- Publication number
- CN110503554B CN110503554B CN201910797544.8A CN201910797544A CN110503554B CN 110503554 B CN110503554 B CN 110503554B CN 201910797544 A CN201910797544 A CN 201910797544A CN 110503554 B CN110503554 B CN 110503554B
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- contract
- debtor
- intelligent
- value
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种智能合约处理方法、装置、区块链节点设备及可读存储介质,本方法在智能合约强制执行失败后,还通过确定第一智能合约的目标债务方,进一步找到目标债务方作为债权方的第二智能合约,之后通过根据第一智能合约和第二智能合约生成第三智能合约的方式,将债务关系中的债务方从目标债务方转移为第二智能合约的债务方,跳过了目标债务方,直接通过第三智能合约建立了第一智能合约的债权方与第二智能合约的债务方之间的债务关系。通过整合目标债务方相关的智能合约,使得债务关系在上述智能合约的处理过程得到了转移,债务关系的转移使得债务关系更加简单,加强了对债权方合法权益的保障。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种智能合约处理方法、装置、区块链节点设备及可读存储介质。
背景技术
随着近年区块链技术的快速发展,去中心化能力和独特的机制,使得存储在其中的数据基本无法被篡改,被认为最适合存储数据量小但重要的数据,例如债务方与债权方之间的交易信息,以充分保护债权方的合法权益。
在区块链技术的基础上,可借助智能合约技术将债务方和债权方之间达成的交易内容以智能合约的形式发布在区块链网络上,使其基本无法被篡改。同时,借助智能合约这一自动执行机制能够在一定程度上强制让债务方返回约定好的返还物(由于区块链记录的是交易信息,其借助智能合约变更的也只是债务方拥有物品的所有权)。
需要说明的是,可通过智能合约实现强制返回的前提为:债务方的资产清单中存在约定好的返回物或可用于替代该返回物的其它物品。因此,当债务方恶意违背约定好的交易内容,通过各种方式使其在区块链网络记录的个人资产清单中不存在足够用于强制执行的物品时,现行智能合约技术产生的智能合约也无法有效保障债权方合法权益。
因此,针对现有技术缺陷,如何通过改进技术手段来进一步加强通过智能合约对债权方合法权益的保障,是本领域技术人员亟待解决的问题。
发明内容
有鉴于此,本申请提供了一种智能合约处理方法、装置、区块链节点设备及可读存储介质,旨在通过相关智能合约之间的整合来实现债务转移,进而尽可能的减少因债务方恶意拖欠债务对债权方合法权益的损失。
为实现上述目的,本申请第一方面提供了一种智能合约处理方法,包括:
获取附加有执行失败标记的第一智能合约;所述执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记;
确定所述第一智能合约的债务方,并标记为目标债务方;
判断是否存在所述目标债务方作为债权方的第二智能合约;
若存在,则根据所述第一智能合约和所述第二智能合约生成第三智能合约;所述第三智能合约的债务方为所述第二智能合约的债务方、所述第三智能合约的债权方为所述第一智能合约的债权方;
同步所述第三智能合约至区块链网络中的每个区块链节点。
为实现上述目的,本申请第二方面提供了一种智能合约处理装置,包括
第一智能合约获取单元,用于获取附加有执行失败标记的第一智能合约;所述执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记;
目标债务方确定单元,用于确定所述第一智能合约的债务方,并标记为目标债务方;
第二智能合约存在判断单元,用于判断是否存在所述目标债务方作为债权方的第二智能合约;
第三智能合约生成单元,用于当存在所述目标债务方作为债权方的第二智能合约时,根据所述第一智能合约和所述第二智能合约生成第三智能合约;所述第三智能合约的债务方为所述第二智能合约的债务方,所述第三智能合约的债权方为所述第一智能合约的债权方;
第三智能合约同步单元,用于同步所述第三智能合约至区块链网络中的每个区块链节点。
为实现上述目的,本申请第三方面提供了一种区块链节点设备,所述区块链节点设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如上述内容给出的智能合约处理方法。
为实现上述目的,本申请第四方面提供了一种存储介质,所述可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述内容给出的智能合约处理方法。
通过以上方案可知,本申请提供了一种智能合约处理方法,包括:获取附加有执行失败标记的第一智能合约;所述执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记;确定所述第一智能合约的债务方,并标记为目标债务方;判断是否存在所述目标债务方作为债权方的第二智能合约;若存在,则根据所述第一智能合约和所述第二智能合约生成第三智能合约;所述第三智能合约的债务方为所述第二智能合约的债务方、所述第三智能合约的债权方为所述第一智能合约的债权方;同步所述第三智能合约至区块链网络中的每个区块链节点。
根据本申请提供的智能合约处理方法可以看出,在智能合约强制执行失败后,还通过确定第一智能合约的目标债务方,进一步找到目标债务方作为债权方的第二智能合约,之后通过根据第一智能合约和第二智能合约生成第三智能合约的方式,将债务关系中的债务方从目标债务方转移为第二智能合约的债务方,跳过了目标债务方,直接通过第三智能合约建立了第一智能合约的债权方与第二智能合约的债务方之间的债务关系。通过整合目标债务方相关的智能合约,使得债务关系在上述智能合约的处理过程得到了转移,债务关系的转移使得债务关系更加简单,加强了对债权方合法权益的保障。
本申请同时还提供了一种智能合约处理装置、区块链节点设备及可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不应限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请实施例的一种智能合约处理方法所适用的硬件组成框架示意图;
图2为本申请实施例提供的一种智能合约处理方法的流程图;
图3为本申请实施例提供的智能合约处理方法中一种处理第一智能合约和第二智能合约的流程图;
图4为本申请实施例提供的智能合约处理方法中另一种处理第一智能合约和第二智能合约的流程图;
图5为本申请实施例提供的一种智能合约处理装置的结构框图。
具体实施方式
本申请提供了一种智能合约处理方法、装置、区块链节点设备及可读存储介质,旨在通过相关智能合约之间的整合来实现债务转移,进而尽可能的减少因债务方恶意拖欠债务对债权方合法权益的损失。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
为便于理解本方案,首先对本申请提供的智能合约处理方法所适用的硬件组成框架进行介绍,请参见如图1所示的硬件组成框架示意图:
该硬件组成框架可以包括:区块链节点设备10,其中,区块链节点设备10可以包括:处理器11、存储器12、通信接口13、输入单元14和显示器15和通信总线16。处理器11、存储器12、通信接口13、输入单元14、显示器15,均通过通信总线16完成相互间的通信。
在本申请实施例中,该处理器11,可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现成可编程门阵列,或者其他可编程逻辑器件。该处理器11可以调用存储器12中存储的程序。具体的,处理器11可在调用存储器12中存储的程序时,至少执行以下智能合约处理方法的实施例中区块链节点设备10所执行的各项操作。
存储器12用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:
获取附加有执行失败标记的第一智能合约;执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记;
确定第一智能合约的债务方,并标记为目标债务方;
判断是否存在目标债务方作为债权方的第二智能合约;
若存在,则根据第一智能合约和第二智能合约生成第三智能合约;第三智能合约的债务方为第二智能合约的债务方、第三智能合约的债权方为第一智能合约的债权方;
同步第三智能合约至区块链网络中的每个区块链节点。
在一种可能的实现方式中,该存储器12可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如智能合约查询功能、智能合约生成功能等)所需的应用程序等;存储数据区可存储根据区块链节点设备10在正常使用过程或整个区块链网络所生成的数据,比如,用户个人数据、智能合约、交易信息、智能合约生成规则等等。
此外,存储器12可以为高速随机存取存储器、非易失性存储器等,例如至少一个磁盘存储器件或其他易失性固态存储器件,此处并不做具体限定。
该通信接口13可以为通信模块的接口,例如2G的GSM模块、3G的CDMA模块或4G的LTE模块的接口。本申请还可以包括显示器14和输入单元15等等。
当然,图1所示的区块链节点设备10的结构并不构成对本申请实施例中计算机设备的限定,在实际应用中计算机设备可以包括比图1所示的更多或更少的部件,或者组合某些部件。
其中,图1中的区块链节点设备10可以为各式终端设备,例如个人电脑、服务器等固定终端设备,手机、平板等移动终端设备,也不排除将来可能出现的诸如智能眼镜、智能手表等的智能可穿戴设备。上述给出的各式终端设备还需要满足区块链网络给出的作为一个区块链节点设备的各项要求,包括运算性能、存储性能、数据传输性能等。
在本申请实施例中,区块链节点设备10自身作为构成整个区块链网络的一个节点存在,其可以从区块链网络的其它节点设备中获取或接收来自其它节点设备的数据,因此区块链节点设备10可以获取到由任何区块链节点设备上传或生成的智能合约,并基于预设智能合约处理规则对相关的智能合约执行上述给出的相关操作,以实现本申请尽可能的保障债权方合法权益的目的。
在公有链中,每个区块链节点设备地位相同,每个区块链节点中均存储有一份完整的数据;在联盟链中,根据存储性能和运算性能的差异,将拥有较强存储性能和运算性能的区块链节点称为联盟链节点,其余则为普通节点。考虑到本申请所提供的智能合约处理方法中的各项步骤,以及时效性对债权方合法权益的影响,区块链节点设备10优选的可以为处于联盟链中的联盟链节点。
实施例一
在上述硬件组成框架的基础上,本申请通过图2提供了一种智能合约处理方法的流程图,各步骤的执行主体均为区块链节点设备10,因此下述步骤不再特意说明执行主体,包括如下步骤:
S101:获取附加有执行失败标记的第一智能合约;
其中,该执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记。简单来说,该执行失败标记是由于智能合约强制执行失败而产生并附加在相应的智能合约上的,得到即为该第一智能合约。
为实现本申请目的,本步骤首先由区块链节点设备10获取当前区块链网络中的第一智能合约,以便以第一智能合约为基础开展后续步骤。
S102:确定第一智能合约的债务方,并标记为目标债务方;
在S101的基础上,本步骤旨在根据获取到的第一智能合约,根据写在该第一智能合约中的债务方身份信息,确定该第一智能合约的债务方,并将其标记为目标债务方,以便后续基于该目标债务方查询第二智能合约。
S103:判断是否存在目标债务方作为债权方的第二智能合约;
在S102的基础上,本步骤旨在根据确定出的目标债务方,判断是否存在该目标债务方作为债权方的第二智能合约。
为便于理解本方案如何根据智能合约确定其债务方和债权方的身份,此处给出一种具体的债务方和债权方身份信息存在于智能合约中的方式:
本申请所涉及的所有智能合约均是基于债权方和债务方双方商定的债务信息生成的债务智能合约,在预设的智能合约生成规则的指导下按需生成。此处假定债务信息的具体内容为:用户A于本周一交易给用户B一个苹果,并要求用户B于本周五返回两个苹果。从中可以发现债权方为用户A,债务方为用户B,而智能合约中具体将债权方与债务方之间构成的对应关系,以Key—Value的方式体现出来,即设置Key为债务方,Value为债权方。
在此机制下,必然能够在对应的智能合约中找到一条具体为用户B—用户A的键(Key)值(Value)对,根据Key和Value各自对应的用户身份信息,就可以准确确定出谁是债务方、谁是债权方。
相应的,在此机制下,在根据第一智能合约确定目标债务方时,就可以具体变换为:在第一智能合约中查询键值对,并将该键值对中对应“键”的用户确定为目标债务方;在查询第二智能合约时,就是查询是否存在由目标债务方作为键值对中“值”的智能合约。
当然,除上述给出的键值实现方式外,还可以通过其它多种方式实现同样目的,例如限制智能合约中的各种信息明确应处于的字段,假定可要求债务方的身份信息一定要写在第一字段中、债权方的身份信息一定要写在第二字段中,以便在找债务方时直接从第一字段中查询、在找债权方时直接从第二字段中查询;还可以在不同的身份信息前增加身份标识,例如可以固定使用Client1标识债务方、使用Client2标识债权方,除此之外还有多种其它可行方式。根据实际应用场景下各种可能存在的特殊要求,可以灵活选择最合适的实现方式,此处并不做具体限定。
S104:根据第一智能合约和第二智能合约生成第三智能合约;
在S103的基础上,本步骤旨在根据查询到的第一智能合约和第二智能合约生成第三智能合约,以实现债务的转移,并借以通过债务转移的方式来使得第一智能合约的债权方的合法权益得到保障。
根据上述内容可以看出,维系第一智能合约和第二智能合约的纽带为目标债务人,该目标债务人在第一智能合约中作为债务人、在第二智能合约中作为债权人。假定该目标债务人为用户B、第一智能合约的债权人为用户A、第二智能合约的债务人为用户C,上述场景就可具体表示为:
第一智能合约记录了用户B与用户A之间的债务关系,即用户B欠用户A;
第二智能合约记录了用户C与用户B之间的债务关系,即用户C欠用户B。
而本申请根据第一智能合约与第二智能合约生成第三智能合约的前提为:第一智能合约在约定的日期无法强制用户B向用户A返还所欠物品,原因是其资产列表中没有可用于充当所欠物品的物品,因此通过查询发现还有用户C欠用户B东西时,说明用户C将返还给用户B的东西也可以作为用户B的资产。为了充分保障作为债权方的用户A的合法权益,将通过生成第三智能合约的方式将用户C与用户B之间的债务关系(用户C欠用户B)变更为用户C与用户A之间的债务关系(用户C欠用户A),以跳过存在信用缺陷的用户B(因为用户B没能使第一智能合约强制执行成功)。
进一步的,考虑到一些特殊应用场景或债务方和/或债权方的特殊要求,即使存在第二智能合约,也可能无法生成根据第一智能合约和第二智能合约生成第三智能合约,例如债务方在于债权方签订债务关系(即第一智能合约)时,不允许私自变更自身作为债权方与其它债务方签订的债务关系,则在此场景下,即使存在第二智能合约,也无法执行本步骤实现债务关系的转移。同样的原因也可能发生在第二智能合约上。
因此,为准确判别是否可以进行债务转移,本申请通过对允许进行债务转移的智能合约附加可转移标记的方式来进行标识。即在执行本步骤之前,增加判断第一智能合约和第二智能合约上是否存在可转移标记的步骤,并在确定出第一智能合约和第二智能合约上均存在可转移标记时,执行根据第一智能合约和第二智能合约生成第三智能合约的步骤。
进一步的,生成的第三智能合约是否继续附加该可转移标记以继续执行下一次债务转移操作,则可以通过判断生成该第三智能合约的第一智能合约和/或第二智能合约是否满足预设要求来实现,该预设要求可以包含多个方面,例如已执行债务转移的次数、债务方或债权方是否附加有异常标记等等,可根据所有符合实际应用场景的要求灵活制定,此处并不做具体限定。简单的,智能合约均默认附加有可转移标记,除经债务和债权双方共同确认不附加该可转移标记,基于附加有可转移标记的第一智能合约和第二智能合约生成的第三智能合约一定附加有可转移标记。
S105:同步第三智能合约至区块链网络中的每个区块链节点。
在S104的基础上,本步骤旨在将生成的第三智能合约同步至区块链网络中的每个区块链节点,以通过此种方式将第三智能合约被区块链网络认可并存储,使其生效。
由于根据第一智能合约和第二智能合约生成了第三智能合约,实现了债务的转移,将第三智能合约同步至区块链网络中的每个区块链是为了让第三智能合约中的新债务关系生效,为避免在第三智能合约生效的同时,原先的第一智能合约和第二智能合约重复生效,还需要废弃第一智能合约和第二智能合约。一种包括但不限于的实现方式可参见图2所示的流程图,图2中各步骤的执行主体仍为区块链节点设备10:
S201:根据第一智能合约和第二智能合约生成第三智能合约;
S202:对第一智能合约和第二智能合约进行废弃处理,得到废弃第一合约和废弃第二合约;
S203:同步废弃第一合约、废弃第二合约和第三智能合约至区块链网络中的每个区块链节点。
根据S201、S202和S203的描述可以看出,对第一智能合约和第二智能合约进行废弃处理的步骤,放在了S104(此处的S201)之后、S105之前,并为了使废弃第一合约和废弃第二合约也生效(替代原先的第一智能合约和第二智能合约),与生成的第三智能合约一并同步至区块链网络中的每个区块链节点。当然,借助区块链网络存在的共识机制,这三个智能合约的同步操作也可以不同时进行。
基于本实施例上述内容的描述可以看出,在智能合约强制执行失败后,本申请还通过确定第一智能合约的目标债务方,进一步找到目标债务方作为债权方的第二智能合约,之后通过根据第一智能合约和第二智能合约生成第三智能合约的方式,将债务关系中的债务方从目标债务方转移为第二智能合约的债务方,跳过了目标债务方,直接通过第三智能合约建立了第一智能合约的债权方与第二智能合约的债务方之间的债务关系。通过整合目标债务方相关的智能合约,使得债务关系在上述智能合约的处理过程得到了转移,债务关系的转移使得债务关系更加简单,加强了对债权方合法权益的保障。
实施例二
实施例一说明了在生成第三智能合约时,为避免重复生效还需要对相应的第一智能合约和第二智能合约进行废弃处理。若第一智能合约记录的债务方欠债权方的物品的价值与第二智能合约记录的等同时,债务关系可以完美的转移。以一个作业本X为例,若第一智能合约记录的是用户B欠用户A一个作业本X,第二智能合约记录的是用户C欠用户B一个作业本X,则由于物品均为作业本X,两者价值相同,则生成的第三智能合约将记录用户C欠用户A一个作用本X。且第一智能合约和第二智能合约将因不存在任何其它内容可以完美的被废弃。
但考虑到实际情况的复杂性,往往都不会价值相同进而使得第一智能合约和第二智能合约可以完美废弃,无论第一智能合约记录的价值会大一点,还是第二智能合约记录的价值会大一点,无法抵消的部分仍应按照原有债务关系存在。针对这一问题,本申请通过图3提供了一种解决方案:
S301:根据第一智能合约和第二智能合约生成第三智能合约;
S302:对第一智能合约和第二智能合约进行废弃处理,得到废弃第一合约和废弃第二合约;
S303:判断第二智能合约与第一智能合约各自记录的返回物的价值是否相同,若相同,执行S304,否则执行S305;
S304:同步废弃第一合约、第二废弃合约和第三智能合约至区块链网络中的每个区块链节点;
本步骤建立在第一智能合约的第二智能合约分别记录的返回物的价值相同的基础上,说明两者记录的返回物的价值可以完美抵消,因此在生成根据第一智能合约和第二智能合约生成第三智能合约之后,第一智能合约和第二智能合约各自的债务关系被全部转移,不存在剩余的部分。
因此,本步骤同步废弃第一合约、第二废弃合约和第三智能合约至区块链网络中的每个区块链节点,以使三者生效。
S305:计算得到第一智能合约与第二智能合约各自记录的返回物之间的价值差;
本步骤建立在第一智能合约和第二智能合约分别记录的返回物的价值不相同的基础上,为使得无法抵消的部分保留原债务关系,本步骤首先计算得到两者之间的价值差,以根据价值差指导后续智能合约的生成。
S306:新建返回物价值为价值差的第四智能合约;
本步骤建立在S305计算出的价值差大于0的情况下,价值差大于0在本申请中表示第一智能合约记录的返回物价值大于第二智能合约记录的返回物的价值。因此,生成的第四智能合约的债务方为第一智能合约的债务方,第四智能合约的债权方为第一智能合约的债权方。也就是说,通过第四智能合约还原了第一智能合约和第二智能合约无法完美抵消的部分债务。
价值差大于0表示目标债务方作为债权方的第二智能合约记录的返回物价值仍不足抵消与第一智能合约记录的返回物价值,因此将消耗第二智能合约中债务方与作为债权方的目标债务方之间的债务关系,第四智能合约则记录的是第一智能合约无法被第二智能合约抵消的部分。
为方便理解,举例说明:
假定第一智能合约记录了用户B欠用户A10箱苹果,而用户B作为债权方的第二智能合约仅记录了有用户C欠用户B8箱苹果。因此第三智能合约只能生成用户C欠用户A8箱苹果的债务关系,用户B仍欠用户A两箱苹果。因此,第四智能合约记录的就是用户B欠用户A两箱苹果的这一债务关系。
S307:同步废弃第一合约、第二废弃合约、第三智能合约和第四智能合约至区块链网络中的每个区块链节点;
与S304类似,由于还生成了第四智能合约,也需要将其同步至区块链网络中的每个区块链节点。
S308:新建返回物价值为价值差的第五智能合约;
本步骤建立在S305计算出的价值差大于0的情况下,价值差小于0表示第一智能合约记录的返回物价值小于第二智能合约记录的返回物的价值。因此,生成的第五智能合约的债务方为第二智能合约的债务方,债权人为第二智能合约的债权方。
价值差小于0表示目标债务方作为债权方的第二智能合约记录的返回物价值不仅足以抵消与第一智能合约记录的返回物价值,还有剩余。因此将全部消耗掉第一智能合约中用户B与用户A之间的债务关系。第五智能合约记录的是第二智能合约抵消掉第一智能合约后的部分返回物,即用户C与用户B之间的剩余债务关系。
为方便理解,举例说明:
假定第一智能合约记录了用户B欠用户A10箱苹果,而用户B作为债权方的第二智能合约记录了有用户C欠用户B15箱苹果。因此第三智能合约生成用户C欠用户A10箱苹果的债务关系,用户C仍欠用户B5箱苹果。因此,第五智能合约记录的就是用户C欠用户B5箱苹果的这一债务关系。
S309:同步废弃第一合约、第二废弃合约、第三智能合约和第五智能合约至区块链网络中的每个区块链节点。
与S304类似,由于还生成了第五智能合约,也需要将其同步至区块链网络中的每个区块链节点。
针对第一智能合约和第二智能合约各自记录的债务关系无法完美抵消的情况,本申请将无法抵消的部分债务关系重新生成一个新的智能合约,以使得在废弃掉原第一智能合约的第二智能合约的基础上,使得债务关系不丢失、不使得任何一个债权方的合法权益受到损伤。
在上述各实施例的基础上,考虑到有时满足要求的第二智能合约的数量可以不止一个,那么按照如何方式选取出合适的第二智能合约用于与第一智能合约生成第三智能合约,也是需要考虑到。
一种包括但不限于的实现方式可以为:
排列多个第二智能合约,得到第二智能合约队列;
每次从第二智能合约队列中选取出一个作为待使用智能合约;
根据待使用智能合约与第一智能合约生成第三智能合约。
其中,待使用智能合约的选取可以遵循预设规则,该预设规则可以为时间优先规则,即将当前队列中生成时间最早的第二智能合约选取为本次的待使用智能合约;该预设规则还可以为价值规则,即将当前队列中记录的返回物价值最大的第二智能合约选取为本次的待使用智能合约,或者将记录的返回物种类与第一智能合约最类似、最接近的第二智能合约选取为本次的待使用智能合约,等等,此处并不对该预设规则的具体内容进行限定,可根据实际应用场景下所有可能存在的特殊要求灵活制定。
进一步的,按照本申请所提供的方案生成第三智能合约,也就意味着对应的作为第一智能合约的债务人存在信用缺失行为,若信用缺失行为的次数较多,则应当可以作为评估相应用户信用度的一个因素,并用于衡量后续是否该用户建立债务关系。
一种包括但不限于的实现方式可以为:
获取每周期内新生成的所有第三智能合约,得到第三智能合约集;
统计第三智能合约集中每个第三智能合约对应的第一智能合约的债务方的出现次数;
为出现次数超过预设次数的债务方附加异常标记。
上述内容提供了一种通过附加异常标记的方式来标识相应用户出现信用缺失行为的程度的方案。其中,该预设次数可以具体为3次或5次,其大小还可根据实际应用场景灵活调整,此处并不做具体限定。
为加深对本申请方案的理解,本申请在上述各实施例的基础上,此处还结合具体的应用场景给出一个应用场景实施例:
某个线上游戏的用户交易数据使用区块链进行存储,其中存在三条智能合约,这三个智能合约中记录的债务信息如下:
智能合约1:游戏用户B欠游戏用户A100万游戏金币,约定于本周一还;
智能合约2:游戏用户C欠游戏用户D150万游戏金币,约定于本周二还;
智能合约3:游戏用户D欠游戏用户B70万游戏金币,约定于本周三还。
于本周二0时,智能合约1经判定发现:游戏用户B并未按约主动向游戏用户A返还100W游戏金币,因此强制执行从游戏用户B的金币账户中向游戏用户A转账100W游戏金币的操作。但发现游戏用户B的金币账户只有20W游戏金币,因此在将这仅有的20W游戏金币转给游戏用户A的金币账户后,智能合约1的内容变为:游戏用户B欠游戏用户A80W游戏金币,并附加有执行失败标记。因此,当前的智能合约1变为了一个第一智能合约。
为保障游戏用户A的合法虚拟财产,区块链节点根据该第一智能合约确定出失信债务方—游戏用户B。并搜寻游戏用户B作为债权方的其它智能合约,经查询发现,游戏用户B在智能合约3中作为债权方,因此将智能合约3作为第二智能合约。
根据该第二智能合约,可算作游戏用户B个人资产的游戏金币为游戏用户D将于本周三还的70万游戏金币,但仍与欠游戏用户A的80W金币有10W游戏金币的缺口,因此将执行下述操作:
为当前的智能合约1和智能合约3附加废弃标记,并同时生成智能合约4和智能合约5,其中,智能合约4记录的债务信息为:
游戏用户D欠游戏用户A70W游戏金币,约定于本周三还;
智能合约5记录的债务信息为:
游戏用户B欠游戏用户A10W游戏金币。
当之后新出现游戏用户B作为债权方的其它智能合约时,智能合约5将作为新的第一智能合约,与新出现的可作为第二智能合约的智能合约重新按照上述同样的步骤来进行债务信息的转移。
附加有废弃标记的智能合约和新生成的智能合约,都需要同步至区块链网络的每个区块链节点以使其生效。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面对本申请实施例提供的一种智能合约处理装置进行介绍,该智能合约处理装置与上文描述的一种智能合约处理方法可以相互参照。
下面请参见图5,图5为本申请实施例提供的一种智能合约处理装置的结构框图,该智能合约处理装置可以包括:
第一智能合约获取单元100,用于获取附加有执行失败标记的第一智能合约;执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记;
目标债务方确定单元200,用于确定第一智能合约的债务方,并标记为目标债务方;
第二智能合约存在判断单元300,用于判断是否存在目标债务方作为债权方的第二智能合约;
第三智能合约生成单元400,用于当存在目标债务方作为债权方的第二智能合约时,根据第一智能合约和第二智能合约生成第三智能合约;第三智能合约的债务方为第二智能合约的债务方,第三智能合约的债权方为第一智能合约的债权方;
第三智能合约同步单元500,用于同步第三智能合约至区块链网络中的每个区块链节点。
在上述实施例的基础上,作为一种优选实施方式,还包括:
智能合约废弃单元,用于在根据第一智能合约和第二智能合约生成第三智能合约之后,对第一智能合约和第二智能合约进行废弃处理,得到废弃第一合约和废弃第二合约;
废弃智能合约同步单元,用于将废弃第一合约和第二废弃合约同步至区块链网络中的每个区块链节点。
在上述实施例的基础上,作为一种优选实施方式,还包括:
价值等同判断单元,用于在对第一智能合约和第二智能合约进行废弃处理之后,判断第二智能合约与第一智能合约各自记录的返回物的价值是否相同;
价值差计算单元,用于当第二智能合约与第一智能合约各自记录的返回物的价值不同时,计算得到第一智能合约与第二智能合约各自记录的返回物之间的价值差;
第四智能合约新建及同步单元,用于当价值差大于0时,新建返回物价值为价值差的第四智能合约,并同步第四智能合约至区块链网络中的每个区块链节点;价值差大于0表示第一智能合约记录的返回物价值大于第二智能合约记录的返回物的价值;第四智能合约的债务方为第一智能合约的债务方,第四智能合约的债权方为第一智能合约的债权方;
第五智能合约新建及同步单元,用于当价值小于0时,新建返回物价值为价值差的第五智能合约,并同步第五智能合约至区块链网络中的每个区块链节点;价值差大于0表示第一智能合约记录的返回物价值小于第二智能合约记录的返回物的价值;第五智能合约的债务方为第二智能合约的债务方,债权人为第二智能合约的债权方。
在上述实施例的基础上,作为一种优选实施方式,还包括:
可转移标记附加判断单元,用于在根据第一智能合约和第二智能合约生成第三智能合约之前,判断第一智能合约和第二智能合约是否均附加有可转移标记;
第三智能合约生成执行单元,用于当均附加有可转移标记时,执行根据第一智能合约和第二智能合约生成第三智能合约的步骤。
在上述实施例的基础上,作为一种优选实施方式,还包括:
预设要求满足判断单元,用于在同步第三智能合约至区块链网络中的每个区块链节点之前,判断与第三智能合约对应的第一智能合约和/或第二智能合约是否满足预设要求;
可转移标记附加单元,用于当满足预设要求时,为第三智能合约附加可转移标记。
在上述实施例的基础上,作为一种优选实施方式,第三智能合约生成单元400包括:
第二智能合约排列子单元,用于当第二智能合约的数量大于1时,排列多个第二智能合约,得到第二智能合约队列;
待使用智能合约选取子单元,用于每次从第二智能合约队列中选取出一个作为待使用智能合约;
第三智能合约生成子单元,用于根据待使用智能合约与第一智能合约生成第三智能合约。
在上述实施例的基础上,作为一种优选实施方式,还包括:
第三智能合约集获取单元,用于获取每周期内新生成的所有第三智能合约,得到第三智能合约集;
出现次数统计单元,用于统计第三智能合约集中每个第三智能合约对应的第一智能合约的债务方的出现次数;
异常标记附加单元,用于为出现次数超过预设次数的债务方附加异常标记。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
另一方面,本申请还提供了一种区块链节点设备,该区块链节点设备可以包括处理器和存储器。该区块链节点设备中处理器和存储器之间的关系可以参考图1。
其中,该区块链节点设备中的处理器用于执行存储器中存储的程序;
区块链节点设备的存储器用于存储计算机程序,该计算机程序被处理器加载并执行时,可至少实现以下功能:
获取附加有执行失败标记的第一智能合约;执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记;
确定第一智能合约的债务方,并标记为目标债务方;
判断是否存在目标债务方作为债权方的第二智能合约;
若存在,则根据第一智能合约和第二智能合约生成第三智能合约;第三智能合约的债务方为第二智能合约的债务方、第三智能合约的债权方为第一智能合约的债权方;
同步第三智能合约至区块链网络中的每个区块链节点。
当然,根据实际作为区块链节点设备的具体设备类型,该区块链节点设备还可以包含通信接口、显示单元以及输入装置等,具体在此不加以限制。
另一方面,本申请还提供了一种存储介质,该存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,用于实现如上任意一个实施例中所描述的智能合约处理方法。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (8)
1.一种智能合约处理方法,其特征在于,包括:
获取附加有执行失败标记的第一智能合约;所述执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记;
确定所述第一智能合约的债务方,并标记为目标债务方;
判断是否存在所述目标债务方作为债权方的第二智能合约;
若存在,则根据所述第一智能合约和所述第二智能合约生成第三智能合约;所述第三智能合约的债务方为所述第二智能合约的债务方、所述第三智能合约的债权方为所述第一智能合约的债权方;
对所述第一智能合约和所述第二智能合约进行废弃处理,得到废弃第一合约和废弃第二合约;
判断所述第二智能合约与所述第一智能合约各自记录的返回物的价值是否相同;
若所述第二智能合约与所述第一智能合约各自记录的返回物的价值不同,则计算得到所述第一智能合约与所述第二智能合约各自记录的返回物之间的价值差;
当所述价值差大于0时,新建返回物价值为所述价值差的第四智能合约,并同步废弃第一合约、废弃第二合约、第三智能合约和第四智能合约至区块链网络中的每个区块链节点;所述价值差大于0表示所述第一智能合约记录的返回物价值大于所述第二智能合约记录的返回物的价值;所述第四智能合约的债务方为所述第一智能合约的债务方,所述第四智能合约的债权方为所述第一智能合约的债权方;
当所述价值差小于0时,新建返回物价值为所述价值差的第五智能合约,并同步废弃第一合约、废弃第二合约、第三智能合约和第五智能合约至区块链网络中的每个区块链节点;所述价值差小于0表示所述第一智能合约记录的返回物价值小于所述第二智能合约记录的返回物的价值,所述第五智能合约的债务方为所述第二智能合约的债务方,债权人为所述第二智能合约的债权方。
2.根据权利要求1所述的智能合约处理方法,其特征在于,在根据所述第一智能合约和所述第二智能合约生成第三智能合约之前,还包括:
判断所述第一智能合约和所述第二智能合约是否均附加有可转移标记;
若均附加有所述可转移标记,则执行所述根据所述第一智能合约和所述第二智能合约生成第三智能合约的步骤。
3.根据权利要求2所述的智能合约处理方法,其特征在于,在同步所述第三智能合约至区块链网络中的每个区块链节点之前,还包括:
判断与所述第三智能合约对应的第一智能合约和/或第二智能合约是否满足预设要求;
若满足所述预设要求,则为所述第三智能合约附加所述可转移标记。
4.根据权利要求1所述的智能合约处理方法,其特征在于,当所述第二智能合约的数量大于1时,根据所述第一智能合约和所述第二智能合约生成第三智能合约,包括:
排列多个所述第二智能合约,得到第二智能合约队列;
每次从所述第二智能合约队列中选取出一个作为待使用智能合约;
根据所述待使用智能合约与所述第一智能合约生成所述第三智能合约。
5.根据权利要求1至4任一项所述的智能合约处理方法,其特征在于,还包括:
获取每周期内新生成的所有第三智能合约,得到第三智能合约集;
统计所述第三智能合约集中每个第三智能合约对应的第一智能合约的债务方的出现次数;
为所述出现次数超过预设次数的债务方附加异常标记。
6.一种智能合约处理装置,其特征在于,
第一智能合约获取单元,用于获取附加有执行失败标记的第一智能合约;所述执行失败标记指在债务方因无足够返回物导致智能合约强制执行失败时为智能合约附加的标记;
目标债务方确定单元,用于确定所述第一智能合约的债务方,并标记为目标债务方;
第二智能合约存在判断单元,用于判断是否存在所述目标债务方作为债权方的第二智能合约;
第三智能合约生成单元,用于当存在所述目标债务方作为债权方的第二智能合约时,根据所述第一智能合约和所述第二智能合约生成第三智能合约;所述第三智能合约的债务方为所述第二智能合约的债务方,所述第三智能合约的债权方为所述第一智能合约的债权方;
智能合约废弃单元,用于对第一智能合约和第二智能合约进行废弃处理,得到废弃第一合约和废弃第二合约;
价值等同判断单元,用于判断第二智能合约与第一智能合约各自记录的返回物的价值是否相同;
价值差计算单元,用于当第二智能合约与第一智能合约各自记录的返回物的价值不同时,计算得到第一智能合约与第二智能合约各自记录的返回物之间的价值差;
第四智能合约新建及同步单元,用于当价值差大于0时,新建返回物价值为价值差的第四智能合约,并同步废弃第一合约、废弃第二合约、第三智能合约和第四智能合约至区块链网络中的每个区块链节点;价值差大于0表示第一智能合约记录的返回物价值大于第二智能合约记录的返回物的价值;第四智能合约的债务方为第一智能合约的债务方,第四智能合约的债权方为第一智能合约的债权方;
第五智能合约新建及同步单元,用于当价值小于0时,新建返回物价值为价值差的第五智能合约,并同步废弃第一合约、废弃第二合约、第三智能合约和第五智能合约至区块链网络中的每个区块链节点;价值差小于0表示第一智能合约记录的返回物价值小于第二智能合约记录的返回物的价值;第五智能合约的债务方为第二智能合约的债务方,债权人为第二智能合约的债权方。
7.一种区块链节点设备,其特征在于,所述区块链节点设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至5任一项所述的智能合约处理方法。
8.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现如权利要求1至5任一项所述的智能合约处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910797544.8A CN110503554B (zh) | 2019-08-27 | 2019-08-27 | 一种智能合约处理方法、装置、区块链节点设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910797544.8A CN110503554B (zh) | 2019-08-27 | 2019-08-27 | 一种智能合约处理方法、装置、区块链节点设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110503554A CN110503554A (zh) | 2019-11-26 |
CN110503554B true CN110503554B (zh) | 2022-04-05 |
Family
ID=68590081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910797544.8A Active CN110503554B (zh) | 2019-08-27 | 2019-08-27 | 一种智能合约处理方法、装置、区块链节点设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110503554B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111583038A (zh) * | 2020-05-08 | 2020-08-25 | 中国银行股份有限公司 | 基于区块链的三角债处理方法、装置及系统 |
CN114066446A (zh) * | 2021-11-16 | 2022-02-18 | 上海鸿米信息科技有限责任公司 | 区块链数据处理方法、装置、存储介质及区块链节点 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876615A (zh) * | 2018-06-11 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 债权数据存储方法、装置、设备及介质 |
CN109145201A (zh) * | 2018-07-26 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 一种基于区块链的信息管理方法、装置、设备及存储介质 |
CN109684335A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 基于键值对的数据结构实现方法、装置、设备和存储介质 |
CN109886680A (zh) * | 2019-01-31 | 2019-06-14 | 深圳市链联科技有限公司 | 一种基于区块链技术的信用流转方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796685A (zh) * | 2016-12-30 | 2017-05-31 | 深圳前海达闼云端智能科技有限公司 | 区块链权限控制方法、装置及节点设备 |
-
2019
- 2019-08-27 CN CN201910797544.8A patent/CN110503554B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876615A (zh) * | 2018-06-11 | 2018-11-23 | 腾讯科技(深圳)有限公司 | 债权数据存储方法、装置、设备及介质 |
CN109145201A (zh) * | 2018-07-26 | 2019-01-04 | 百度在线网络技术(北京)有限公司 | 一种基于区块链的信息管理方法、装置、设备及存储介质 |
CN109684335A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 基于键值对的数据结构实现方法、装置、设备和存储介质 |
CN109886680A (zh) * | 2019-01-31 | 2019-06-14 | 深圳市链联科技有限公司 | 一种基于区块链技术的信用流转方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110503554A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11403636B2 (en) | Blockchain-based transaction processing method and apparatus, and electronic device | |
JP6882474B2 (ja) | リプレイ攻撃の検出のためのシステム及び方法 | |
CN110471984B (zh) | 基于区块链的业务处理方法及装置、电子设备 | |
CN108389129B (zh) | 基于区块链的交易执行方法及装置、电子设备 | |
US20210158454A1 (en) | Method and device for data processing based on blockchain | |
CN110162470B (zh) | 一种区块链的测试方法和装置 | |
JP6905059B2 (ja) | リプレイ攻撃の検出のためのシステム及び方法 | |
CN112016921B (zh) | 交易处理方法、装置及设备 | |
CN110503554B (zh) | 一种智能合约处理方法、装置、区块链节点设备及介质 | |
CN112200567B (zh) | 基于区块链的资源管理方法、装置及电子设备 | |
WO2020139514A1 (en) | Blockchain-based recordkeeping method and apparatus | |
CN111899008B (zh) | 资源转移方法、装置、设备及系统 | |
US20200201684A1 (en) | Blockchain-based virtual resource allocation | |
CN112200569A (zh) | 基于区块链的数字印章使用方法、装置及电子设备 | |
CN111461885A (zh) | 共识网络管理方法、装置、计算机以及可读存储介质 | |
CN112560114A (zh) | 调用智能合约的方法及装置 | |
US20200286090A1 (en) | Blockchain-based reimbursement splitting | |
CN111597264A (zh) | 一种区块链记账方法及装置 | |
US11120513B2 (en) | Capital chain information traceability method, system, server and readable storage medium | |
CN111679902B (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN113034137A (zh) | 基于区块链的数据处理方法、装置及相关设备 | |
EP3883175A1 (en) | Blockchain-based contract terminal and method using location information | |
CN110992039A (zh) | 交易处理方法、装置及设备 | |
CN115860884A (zh) | 区块链系统中的数字资源处理方法及装置 | |
CN115660591A (zh) | 用于业务审批的流程配置方法、系统、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |