一种区块链财务支付管理方法及系统与流程

文档序号:25344474发布日期:2021-06-08 11:13阅读:75来源:国知局
一种区块链财务支付管理方法及系统与流程

1.本发明涉及区块链技术领域,特别涉及一种区块链财务支付管理方法及系统。


背景技术:

2.区块链通过密码学的手段为每个参与者建立对应的数字身份。每个参与者的数字身份由一对非对称公私钥对构成,其中公钥可通过私钥生成。参与者利用私钥对信息签名后发送至区块链,区块链根据签名恢复出公钥,并基于公钥(或者其摘要)识别参与者,进一步对参与者的操作进行鉴权。
3.公有区块链在处理参与者提供的信息时,需要消耗一定的手续费,通常是区块链中的代币。只有参与者具有足额的代币储备,才能够将信息记入区块链。然而,上述限制过于简单,无法适应更复杂的应用场景。当区块链技术被应用于特定行业中时,其参与者往往是行业中的企业、机构等。出于安全性、性能等因素,需要对区块链中参与者的财务支付进行更为细致的管理。
4.目前,针对上述应用场景,已提出一些财务支付管理方案。现有方案的种类及不足之处如下:
5.第一、通过隔离的方式实现访问财务支付权限的控制。具体的实施方法包括但不限于:建立虚拟专用网络,能够连接到网络内节点的参与者则具有财务支付权限;在区块链外围建立网关,只有通过网关才能连接到区块链网络中,并在网关进行财务支付权限管理。此类方案的关键之处是,财务支付权限管理由外部设施承担,不直接在区块链中进行。应用此类方案需要承担外部设施失效、作恶等风险,因此此类方案大多用于参与者之间的信任度较高的场景中。
6.第二、使用智能合约进行财务支付权限管理。此方案的关键是财务支付权限管理智能合约。该智能合约中保存了身份及权限信息,其他智能合约在执行的过程中通过调用该智能合约的接口,实现权限的鉴定。此方案中的财务支付信息和鉴权逻辑均在智能合约层面实现,因此无法对低于智能合约层面的财务支付权限(例如发送交易、获取区块链状态等)进行控制。应用此类方案需要承担交易洪水攻击(记录大量无用交易在区块链中)等风险。
7.因此,如何解决上述问题,实现对区块链中的财务支付进行全方位的配置,不仅限于智能合约层面,也不需要借助外部设施,是本领域技术人员需要解决的技术问题。
8.基于此,本发明设计了一种区块链财务支付管理方法及系统以解决上述问题。


技术实现要素:

9.为实现上述目的,本发明提供如下技术方案:
10.一种区块链财务支付管理方法及系统,所述方法包括:识别用户发送的财务变更交易;其中,所述财务支付交易的内容包括发起者、使用财务支付用户、需变更财务支付第三方以及对应的变更财务支付值;判断所述财务变更交易中的所述发起者是否具有财务变
更权限;若所述发起者具有财务变更权限,则将所述变更财务支付用户的每个需变更财务支付的财务支付值修改为对应的变更财务支付值,并将执行后的所述财务变更交易记录到区块中;对所述区块中的交易进行共识,当所述共识通过后所述区块中对应的财务变更交易生效。
11.更进一步的、所述判断所述财务变更交易中的所述发起者是否具有财务变更财务,包括:从区块链中获取最新区块,并从所述最新区块中获取校验信息作为mpt树的根;利用所述mpt树的根构造mpt树,并从所述mpt树中获取所述发起者对应的财务支付信息;根据所述财务支付信息判断所述财务变更交易中的所述发起者是否具有财务变更权限。
12.更进一步的、所述判断所述财务变更交易中的所述发起者是否具有财务变更权限,包括:调用智能合约接口从数据库中获取所述发起者对应的财务支付信息;根据所述财务支付信息判断所述财务变更交易中的所述发起者是否具有财务变更权限。
13.更进一步的、对所述区块中的交易进行共识,当所述共识通过后所述区块中对应的财务变更交易生效,包括:接收到所述区块时,提取所述区块中的全部交易;在接收到的所述区块的父区块的基础上构建临时区块,并在所述临时区块中依次执行各所述交易;当全部所述交易执行完成后,判断所述临时区块中的权限校验信息是否与接收到的所述区块中的权限校验信息一致;若一致,则所述区块中的交易校验通过,并进行共识,当所述共识通过,所述区块中对应的财务变更交易生效。
14.更进一步的、所述识别用户发送的财务变更交易,包括:接收用户发送的交易;判断所述交易是否具有财务变更交易设定标识;若具有,则确定所述交易为财务变更交易。
15.更进一步的、区块链中财务保存的方式,包括:利用数据摘要算法对每个权限信息进行处理,生成每个所述权限信息对应的校验信息;在区块结构中增加所述校验信息的关键字段,用于记录每个区块对应的权限信息。
16.更进一步的、识别模块,用于识别用户发送的财务变更交易;其中,所述财务变更交易的内容包括发起者、变更权限用户、需变更财务支付第三方以及对应的变更权限值;判断模块,用于判断所述财务变更交易中的所述发起者是否具有财务变更权限;财务变更执行模块,用于若所述发起者具有财务变更权限,则将所述变更权限用户的每个需变更权限的权限值修改为对应的变更权限值,并将执行后的所述财务变更交易记录到区块中;共识模块,用于对所述区块中的交易进行共识,当所述共识通过后所述区块中对应的财务变更交易生效。
17.更进一步的、所述判断模块,包括:权限读取单元,用于从区块链中获取最新区块;校验信息获取单元,用于从所述最新区块中获取校验信息作为mpt树的根;第一权限信息获取单元,用于利用所述mpt树的根构造mpt树,并从所述mpt树中获取所述发起者对应的权限信息;第一判断单元,用于根据所述权限信息判断所述财务变更交易中的所述发起者是否具有财务变更权限。
18.更进一步的、所述判断模块,包括:第二权限信息获取单元,用于调用智能合约接口从数据库中获取所述发起者对应的权限信息;第二判断单元,用于根据所述权限信息判断所述财务变更交易中的所述发起者是否具有财务变更权限。
19.一种区块链财务支付管理方法及系统与现有技术相比,本发明的有益效果是:
20.本发明每一次对财务支付进行的操作,均需要全网达成共识才会生效。每一次操
作均会打包记录在区块链中,便于审计。由于深度集成在区块链中,因此在实施的过程中,能够对区块链中的财务支付进行全方位的配置,不仅限于智能合约层面,也不需要借助外部设施。
附图说明
21.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1为本发明实施例所提供的区块链财务支付管理方法的流程图;
23.图2为本发明实施例所提供的区块链权限支付管理系统的结构框图。
具体实施方式
24.本发明的核心是提供一种区块链财务支付管理方法及系统,其财务支付管理直接在区块链中进行,无需借助外部设施,且深度集成到区块链中,能够对区块链进行全方位的财务支付控制,对财务的变更需经过全网共识,并记录在区块链中,使变更记录不可篡改,便于审计。
25.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.请参考图1,图1为本发明实施例所提供的区块链财务支付管理方法的流程图;该方法可以包括:s100、识别用户发送的财务变更交易;其中,财务变更交易的内容包括发起者、变更财务用户、需变更财务以及对应的变更财务值。
27.由于本实施例提供的区块链财务支付管理方法要求深度集成到区块链中,能够对区块链进行全方位的财务支付控制,以便克服现有技术中仅能在智能合约层面实现区块链财务支付管理(即无法对低于智能合约层面的权限,例如发送交易、获取区块链状态等进行控制)或者是依靠外部设施。因此本实施例在区块链中增加了一种新的交易类型即财务变更交易,对应于财务支付的操作。每当区块链收到财务的变更请求时,会产生对应的财务变更交易。该财务。
28.变更交易可以与普通交易类似,在执行之后会记录在区块中即将支付信息的更改历史记录在区块链中,以便审计。同时可以像普通交易那样产生回执(receipt),以便用户可以根据回执确定财务变更交易是否成功,即该回执可以使用户及时了解到财务变更交易的执行情况。本实施例通过财务变更交易实现财务支付信息的改动操作包括:增加、删除、修改等。实施例中涉及到的权限可以包括财务支付管理、部署合约以及发送普通交易,实际并不局限于上述三种,甚至可以包括具有限制(如有效期)的复杂权限。
29.进一步,本实施例并不限定通过向区块链中发送该财务变更交易的方式,例如可以是通过外部调用接口发送财务变更交易,或者是通过智能合约接口发送财务变更交易。具体的,用户可通过调用该外部接口来操作财务支付信息。或者是用户通过调用智能合约
接口,使智能合约在执行的过程中,由智能合约虚拟机来操作财务支付信息。借助智能合约接口,可实现利用智能合约进行财务支付的自动化配置。当然如无需自动化配置,也可不提供具有该功能的智能合约接口。区块链上的其他智能合约,可通过合约间的消息调用,直接变更、获取财务支付信息。外部用户的访问接口可以为jsonrpc。以下以jsonrpc接口为例说明财务变更交易请求的具体形式。
30.jsonrpc接口请求示例:
31.{"jsonrpc":"2.0","method":"get_permission","params":["0x1234567890123456789012345678901234567890"],"id":1}
[0032]
jsonrpc接口响应示例:
[0033]
{"jsonrpc":"2.0","id":1,"result":{"change_permission":false,"deploy_contract":true,"send_transaction":false}}
[0034]
由于该财务变更交易与其它普通交易类似,因此需要使得区块链能够识别出该权限变更交易。本实施例并不限定具体的识别方法。例如可以通过在财务变更交易中添加特殊的标识使之与普通交易进行区分,也可以是通过发送该财务变更交易对应的特定接口的地址等唯一标识信息使之与普通交易进行区分。本实施例并不限定标识的种类和形式,只要是可以与财务变更交易具有唯一对应关系即可。即可选的,识别用户发送的财务变更交易可以包括;接收用户发送的交易;判断交易是否具有财务变更交易设定标识;若具有,则确定交易为财务变更交易。
[0035]
具体的,本实施例并不限定财务变更交易设定标识的形式。例如可以是在交易中添加特殊标识位;或者是根据调用的智能合约的地址等。例如,用户可直接发送交易,调用财务支付智能合约中的接口。可根据调用合约的地址,区分该交易是否是财务变更交易。或用户发送财务变更交易到区块链,该交易有特殊的标识,从而区块链能够识别出该交易的操作为财务变更。
[0036]
本实施例并不对财务变更交易中包含的内容以及内容格式等进行限定,用户可以根据实际情况进行设定。但是该财务变更交易至少需要包含,财务变更交易的发起者,变更权限用户(即要变更的用户,可以使用外部账户地址来表示),需变更财务(即要变更的权限的项目,例如部署合约、发送交易等),变更财务值(即要变更的权限的值,例如可以用true或false表示)。
[0037]
s110、判断财务变更交易中的发起者是否具有财务变更财务。
[0038]
具体的,步骤s110和s120为对财务变更交易具体的执行过程。其中步骤s110主要是判断财务变更交易发起者是否合法,即发起者是否有权限执行区块链财务的变更修改操作。仅仅当财务变更交易发起者合法时,才会执行具体的变更操作。当财务变更交易发起者不合法时,则财务变更交易失败。本实施例并不限定具体的判断过程,该过程与财务支付信息的保存形式等有关。即在区块链这样一个应用场景中如何对权限进行保存,例如如何维持一个权限表。为了进一步保证财务支付管理的可靠性,可以对财务支付信息的变更记录通过密码学手段进行保护,无法被篡改。也便于对审计。例如使用一种密码学的可验证的数据结构来保存财务支付信息。该数据结构在保存原始数据之外,提供了校验信息。校验信息具有如下特性:
[0039]
第一:相同的原始数据具有相同的校验信息。
[0040]
第二:难以根据校验信息构造出与之匹配的原始数据。
[0041]
其中,信息字段通常使用密码学中的摘要算法来产生。财务支付信息的校验信息作为关键字段,包括在区块结构中。关键字段的意义是:该字段会被编码到区块数据中,并用于产生区块的哈希。通过上述设计,财务支付信息的变化会导致其校验信息的变化,校验信息的变化会导致区块数据及其哈希的变化。因此,可通过区块哈希快速检查财务支付信息是否正确,使财务支付信息难以被篡改。可使用任何能够导致区块哈希发生确定性改变的方法来实现,例如通过trie来实现。优选的,区块链中权限保存的方式可以包括:利用数据摘要算法对每个财务支付信息进行处理,生成每个财务支付信息对应的校验信息;在区块结构中增加所述校验信息的关键字段,用于记录每个区块对应的财务支付信息。这样每个区块中对应的校验信息(即该区块对应关键字段的数据)的变化会导致该区块数据及其哈希的变化。因此,可通过区块哈希快速检查财务支付信息是否正确,使财务支付信息难以被改。下面列举一种可选的实施例。
[0042]
判断财务变更交易中的发起者是否具有财务变更财务可以包括:从区块链中获取最新区块,并从最新区块中获取校验信息作为mpt树的根;利用mpt树的根构造mpt树,并从mpt树中获取发起者对应的财务支付信息;根据财务支付信息判断财务变更交易中的发起者是否具有财务变更财务。其中,该种判断方式对应的财务支付信息的保存形式可以如下:使用mpt(merkle patricia trie)树保存权限数据,并使用其根节点的哈希作为权限数据的校验信息。在区块结构中新增区块字段(例如permissions字段),用于保存权限数据的校验信息。权限数据的结构可以是基于用户的列表、基于组的列表等,在此不做限制。涉及到的权限可以根据区块链的特性进行配置,如发送交易、部署合约、调用只读接口等,具体不做限制。此时按照区块链的特性,可获取在某一区块中的财务支付信息,具体步骤如下:
[0043]
1、从数据库中获取指定的区块(可以根据区块编号或区块哈希来确定指定的区块,这里的指定的区块可以是最新区块)。
[0044]
2、从区块关键字段中得到permissions字段的值。
[0045]
3、根据permissions的值构造一棵merkle patricia trie树。
[0046]
4、从merkle patriciatrie树中获取发起者对应的财务支付信息。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1