基于区块链的资产管理方法、系统、服务器及存储介质转让专利

申请号 : CN202311082007.8

文献号 : CN116797376B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李浩天郝增张彤龙凯国

申请人 : 杭州字节方舟科技有限公司

摘要 :

本发明提供基于区块链的资产管理方法、系统、服务器及存储介质,方法包括:获取用户端发送的管理信息,判断管理信息中的证明信息是否有效,若有效,将管理信息进行广播,其中,管理信息包括管理请求和相应的证明信息;判断是否完成了管理信息的广播工作,若是,将管理请求发送给资产管理端;接收资产管理端发送的预拨款资金,基于证明信息对预拨款资金进行共识;若共识成功,向资产管理端发送表征可以使资产管理端自动将预拨款资金发送给相应用户的拨款指令;若没有共识成功,基于管理请求相对应的证明信息生成调整信息,向资产管理端发送调整信息以调整资产管理端发送给相应用户的预拨款资金。本申请可降低资产管理中报销工作的风险。

权利要求 :

1.基于区块链的资产管理方法,其特征在于,所述方法包括:

获取用户端发送的管理信息,判断所述管理信息中的证明信息是否有效,若有效,将所述管理信息进行广播,其中,所述管理信息包括管理请求和相应的证明信息,所述管理请求表征某个用户请求报销某段时间内某些东西的报销金额,所述证明信息表征用于证明报销请求真实性的转账记录、发票或者购买记录中至少一种方式的信息;

判断是否完成了所述管理信息的广播工作,若是,将所述管理请求发送给资产管理端;

接收所述资产管理端发送的表征所述资产管理端根据所述管理请求拨出相应的预拨款资金,基于所述证明信息对所述预拨款资金进行共识;

若共识成功,向所述资产管理端发送表征可以使资产管理端自动将所述预拨款资金发送给相应用户的拨款指令;

若没有共识成功,基于所述管理请求相对应的证明信息生成调整信息,向所述资产管理端发送所述调整信息以调整所述资产管理端发送给相应用户的预拨款资金;

其中,判断所述管理信息中的证明信息是否有效包括:获取所述证明信息包含的所有方式,所有方式包括章印、转账时间或者转账方中的一种;采用所有方式对应的验证有效性的方法来验证所述证明信息包含的所有方式是否都有效,若都有效,所述管理信息中的证明信息有效;否则,所述管理信息中的证明信息无效。

2.根据权利要求1所述的方法,其特征在于,将所述管理信息进行广播包括:

获取所述管理信息中证明信息的证明格式,判断所述证明格式是否为预设格式,若是,采用优化策略传播方式将所述管理信息在所有节点中进行广播,其中,所述优化策略传播方式为分层广播、选择信任节点以及限制广播范围中的任意一种;

若否,使用所述证明格式对应的预设转换模型将所述证明信息转换为预设格式的新证明信息,采用优化策略传播方式将所述新证明信息和相应的管理请求在所有节点中进行广播,其中,所述新证明信息和相应的管理请求组成新管理信息。

3.根据权利要求1所述的方法,其特征在于,判断是否完成了所述管理信息的广播工作包括:每间隔固定时间获取每个节点所对应的内存池状态,基于所述内存池状态获取已进行广播的节点数量,判断所述节点数量是否大于预设节点数量,若大于,则完成了所述管理信息的广播工作,其中,所述预设节点数量不小于所有节点总数量的半数;

否则,没有完成所述管理信息的广播工作。

4.根据权利要求3所述的方法,其特征在于,所述方法包括:

若没有完成所述管理信息的广播工作,获取当前进行广播的广播时间,判断所述广播时间是否小于预设的参考广播时间,若不小于,生成表征停止根据所述管理信息进行资产管理的报警信号;

若小于,继续等待下一次获取每个节点所对应的内存池状态。

5.根据权利要求2所述的方法,其特征在于,基于所述证明信息对所述预拨款资金进行共识包括:每个节点基于获取到的证明信息获取相应的所述证明信息中的金额总值,基于共识机制判断所述金额总值是否等于预拨款资金,若等于,所述节点在对应的区块中存储与所述预拨款资金对应的区块数据;

若不等于,所述节点在对应的区块中不存储与所述预拨款资金对应的区块数据;

判断预设达标数量个节点对应的区块的区块高度是否都相同,若都相同,则所述共识成功;

若不都相同,则所述共识不成功。

6.根据权利要求5所述的方法,其特征在于,基于所述管理请求相对应的证明信息生成调整信息包括:将所述预拨款资金减去所述金额总值以得到预拨款差值,判断所述预拨款差值是否大于零,若大于零,将所述预拨款差值作为所述资产管理端在所述预拨款资金的基础上应该少发送给相应用户的第一调整信息;

若小于零,将所述预拨款差值作为所述资产管理端在所述预拨款资金的基础上应该多发送给相应用户的第二调整信息。

7.根据权利要求1所述的方法,其特征在于,若没有共识成功还包括生成预警信号,将所述预警信号发送给资产管理端,并统计生成预警信号的次数。

8.基于区块链的资产管理系统,其特征在于,所述系统包括区块链端,其中,所述区块链端包括:信息接收模块、广播模块、信息输出模块和共识模块;

所述信息接收模块,用于获取用户端发送的管理信息,判断所述管理信息中的证明信息是否有效;

所述广播模块,用于若证明信息有效,将所述管理信息进行广播,其中,所述管理信息包括管理请求和相应的证明信息,所述管理请求表征某个用户请求报销某段时间内某些东西的报销金额,所述证明信息表征用于证明报销请求真实性的转账记录、发票或者购买记录中至少一种方式的信息;判断是否完成了所述管理信息的广播工作;

所述信息输出模块,用于若完成了所述管理信息的广播工作,将所述管理请求发送给资产管理端;

所述共识模块,用于接收所述资产管理端发送的表征所述资产管理端根据所述管理请求拨出相应的预拨款资金,基于所述证明信息对所述预拨款资金进行共识;

所述信息输出模块,还用于若共识成功,向所述资产管理端发送表征可以使资产管理端自动将所述预拨款资金发送给相应用户的拨款指令;若没有共识成功,基于所述管理请求相对应的证明信息生成调整信息,向所述资产管理端发送所述调整信息以调整所述资产管理端发送给相应用户的预拨款资金;

其中,判断所述管理信息中的证明信息是否有效包括:获取所述证明信息包含的所有方式,所有方式包括章印、转账时间或者转账方中的一种;采用所有方式对应的验证有效性的方法来验证所述证明信息包含的所有方式是否都有效,若都有效,所述管理信息中的证明信息有效;否则,所述管理信息中的证明信息无效。

9.一种服务器,其特征在于,所述服务器包括:处理器和存储器,所述存储器上存储有能在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任意一项所述的基于区块链的资产管理方法。

10.一种计算机可读存储介质,其上存储有能在处理器上运行的计算机程序,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至7中任意一项所述的基于区块链的资产管理方法。

说明书 :

基于区块链的资产管理方法、系统、服务器及存储介质

技术领域

[0001] 本申请涉及区块链技术领域,特别涉及基于区块链的资产管理方法、系统、服务器及存储介质。

背景技术

[0002] 企业的资产管理工作是指对企业的各类资产进行有效管理和控制,起到保护企业的财产安全、提高资产利用效率、降低运营成本、增强企业的竞争力等目的。其中,管理和控制不仅包括合理的规划,而且也包括精准的报销。再好的规划若遇到混乱的资产报销也无法较好地完成对企业的资产管理工作,因此合理的规划和精准的报销是较好完成企业资产管理工作不可或缺的一部分。
[0003] 传统资产管理工作中的报销部分都是通过有报销需求的人员将报销请求和相关的证明材料发送给对应的工作人员,由工作人员根据该报销请求和相关的证明材料完成报销工作,然而这一过程中证明材料或者报销请求存在着被篡改或者伪造的可能性,难以有效保障最终报销结果的真实性,导致资产管理中报销工作具有风险。
[0004] 现阶段主要是将资产管理工作部署到区块链中减少发生证明材料被篡改或者伪造情况,来间接降低资产管理工作的风险。即有报销需求的人员先将相关的证明资料直接存储在区块链中,以减少通过介入其它人员增加证明资料被篡改的可能性;再将报销请求发送给对应的资产管理端,这样资产管理端通过主动向区块链查找相关的证明资料来完成资产管理中的报销工作,从而达到上述目的。
[0005] 然而一旦遇到报销请求数量增加的情况,现有方法会使资产管理端同时面对多个报销请求,一方面会无形给到资产管理端接收请求的压力,增大资产管理端崩溃的几率,无法有效实现降低资产管理工作的风险这一目的;另一方面也会给到资产管理端处理报销工作的压力,增加资产管理端处理过程中出现错误的几率,也无法有效实现降低资产管理工作的风险这一目的。

发明内容

[0006] 为了降低资产管理中报销工作的风险,本申请实施例提供了基于区块链的资产管理方法、系统、服务器及存储介质。
[0007] 第一方面,本实施例提供了基于区块链的资产管理方法,所述方法包括:
[0008] 获取用户端发送的管理信息,判断所述管理信息中的证明信息是否有效,若有效,将所述管理信息进行广播,其中,所述管理信息包括管理请求和相应的证明信息;
[0009] 判断是否完成了所述管理信息的广播工作,若是,将所述管理请求发送给资产管理端;
[0010] 接收所述资产管理端发送的表征所述资产管理端根据所述管理请求拨出相应的预拨款资金,基于所述证明信息对所述预拨款资金进行共识;
[0011] 若共识成功,向所述资产管理端发送表征可以使资产管理端自动将所述预拨款资金发送给相应用户的拨款指令;
[0012] 若没有共识成功,基于所述管理请求相对应的证明信息生成调整信息,向所述资产管理端发送所述调整信息以调整所述资产管理端发送给相应用户的预拨款资金。
[0013] 在其中的一些实施例中,将所述管理信息进行广播包括:
[0014] 获取所述管理信息中证明信息的证明格式,判断所述证明格式是否为预设格式,若是,采用优化策略传播方式将所述管理信息在所有节点中进行广播,其中,所述优化策略传播方式为分层广播、选择信任节点以及限制广播范围中的任意一种;
[0015] 若否,使用所述证明格式对应的预设转换模型将所述证明信息转换为预设格式的新证明信息,采用优化策略传播方式将所述新证明信息和相应的管理请求在所有节点中进行广播,其中,所述新证明信息和相应的管理请求组成新管理信息。
[0016] 在其中的一些实施例中,判断是否完成了所述管理信息的广播工作包括:
[0017] 每间隔固定时间获取每个节点所对应的内存池状态,基于所述内存池状态获取已进行广播的节点数量,判断所述节点数量是否大于预设节点数量,若大于,则完成了所述管理信息的广播工作,其中,所述预设节点数量不小于所有节点总数量的半数;
[0018] 否则,没有完成所述管理信息的广播工作。
[0019] 在其中的一些实施例中,所述方法包括:
[0020] 若没有完成所述管理信息的广播工作,获取当前进行广播的广播时间,判断所述广播时间是否小于预设的参考广播时间,若不小于,生成表征停止根据所述管理信息进行资产管理的报警信号;
[0021] 若小于,继续等待下一次获取每个节点所对应的内存池状态。
[0022] 在其中的一些实施例中,基于所述证明信息对所述预拨款资金进行共识包括:
[0023] 每个节点基于获取到的证明信息获取相应的所述证明信息中的金额总值,基于共识机制判断所述金额总值是否等于预拨款资金,若等于,所述节点在对应的区块中存储与所述预拨款资金对应的区块数据;
[0024] 若不等于,所述节点在对应的区块中不存储与所述预拨款资金对应的区块数据;
[0025] 判断预设达标数量个节点对应的区块的区块高度是否都相同,若都相同,则所述共识成功;
[0026] 若不都相同,则所述共识不成功。
[0027] 在其中的一些实施例中,基于所述管理请求相对应的证明信息生成调整信息包括:
[0028] 将所述预拨款资金减去所述金额总值以得到预拨款差值,判断所述预拨款差值是否大于零,若大于零,将所述预拨款差值作为所述资产管理端在所述预拨款资金的基础上应该少发送给相应用户的第一调整信息;
[0029] 若小于零,将所述预拨款差值作为所述资产管理端在所述预拨款资金的基础上应该多发送给相应用户的第二调整信息。
[0030] 在其中的一些实施例中,若没有共识成功还包括生成预警信号,将所述预警信号发送给资产管理端,并统计生成预警信号的次数。
[0031] 第二方面,本实施例提供了基于区块链的资产管理系统,所述系统包括区块链端,其中,所述区块链端包括:信息接收模块、广播模块、信息输出模块和共识模块;
[0032] 所述信息接收模块,用于获取用户端发送的管理信息,判断所述管理信息中的证明信息是否有效;
[0033] 所述广播模块,用于若证明信息有效,将所述管理信息进行广播,其中,所述管理信息包括管理请求和相应的证明信息;判断是否完成了所述管理信息的广播工作;
[0034] 所述信息输出模块,用于若完成了所述管理信息的广播工作,将所述管理请求发送给资产管理端;
[0035] 所述共识模块,用于接收所述资产管理端发送的表征所述资产管理端根据所述管理请求拨出相应的预拨款资金,基于所述证明信息对所述预拨款资金进行共识;
[0036] 所述信息输出模块,还用于若共识成功,向所述资产管理端发送表征可以使资产管理端自动将所述预拨款资金发送给相应用户的拨款指令;若没有共识成功,基于所述管理请求相对应的证明信息生成调整信息,向所述资产管理端发送所述调整信息以调整所述资产管理端发送给相应用户的预拨款资金。
[0037] 第三方面,本实施例提供了一种服务器,所述服务器包括处理器和存储器,所述存储器上存储有能在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的基于区块链的资产管理方法。
[0038] 第四方面,本申请实施例提供了一种存储介质,其上存储有能在处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的基于区块链的资产管理方法。
[0039] 通过采用上述方法,本申请的区块链端先获取用户端发送的包含管理请求和相应的证明信息的管理信息,然后判断该管理信息中的证明信息是否有效,只有在证明信息有效的情况下,才将该管理信息进行广播,这样区块链端在将管理信息进行广播之前先主动核实了其中证明信息是否有效,不向节点传播无效的管理信息,为后续核实预拨款资金是否正确做准备。在将管理信息广播后,还判断是否完成了管理信息的广播工作,只有在区块链端完成了管理信息的广播后,区块链端才将管理请求发送给资产管理端,确保后续在接收到资产管理端发送的预拨款资金后,区块链端可以正常有序地基于广播后的管理信息进行共识,减少因为没有完成广播工作的情况下,而进行后续的管理信息发送与接收预拨款资金等无用的工作,毕竟没有完成广播之前而进行共识操作得到的共识结果没有可靠性。
[0040] 区块链端会接收资产管理端发送的表征资产管理端根据管理请求拨出相应的预拨款资金,并基于已经广播的证明信息来进行共识,区块链端若共识成功,则表明资产管理端自动划分到拨款单元的预拨款金额是准确的,那么区块链端会向资产管理端发送一个拨款指令,使得资产管理端中只有拨款单元动作,将其里面的预拨款资金发送给对应的管理请求中的用户,从而准确地完成资产管理工作,这样即使用户端和资产管理端在受到外界恶意进攻时,也会因为区块链端自身校验证明信息的有效性、广播和共识等操作,降低区块链端受到外界恶意攻击的影响,降低资产管理中报销工作的风险。
[0041] 区块链端若共识没有成功,则表明资产管理端可能受到了外界恶意攻击,自动划分到拨款单元的预拨款金额是不准确的,即资产管理端打算拨发给相应用户的报销金额与该用户请求报销的金额不同。基于管理请求相对应的证明信息生成调整信息,向资产管理端发送调整信息以调整资产管理端发送给相应用户的预拨款资金。这样即使用户端和资产管理端在受到外界恶意进攻时,也会因为区块链端自身校验证明信息的有效性、广播和共识等操作,在共识不成功的情况下,向管理资产端发送一个调整信息,使得资产管理端调整发送给相应用户的预拨款资金,准确进行资产管理,降低资产管理中报销工作的风险。

附图说明

[0042] 图1是本实施例提供的基于区块链的资产管理方法框图。
[0043] 图2是本申请实施例提供的将管理信息进行广播方法的框图。
[0044] 图3是本申请实施例提供的基于证明信息对预拨款资金进行共识方法的框图。
[0045] 图4是本实施例提供的基于区块链的资产管理系统框架图。
[0046] 图5是本实施例提供的服务器的结构框图。

具体实施方式

[0047] 为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。然而,本领域的普通技术人员应该明白,可以在没有这些细节的情况下实施本申请。对于本领域的普通技术人员来说,显然可以对本申请所公开的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请不限于所示的实施例,而是符合与本申请所要求保护的范围一致的最广泛范围。
[0048] 下面结合说明书附图对本申请实施例作进一步详细描述。
[0049] 区块链就是一个又一个区块组成的链条。每一个区块中保存了一定的信息,他们按照各自产生的时间顺序连接成链条。这个链条被保存在所有的服务器中,只要整个系统中有一台服务器可以工作,整条区块链就是安全的。这些服务器在区块链系统中被称为节点,每个节点都可以参与到区块链的维护和管理中。节点是区块链的基本组成部分,他们通过互相通信、交换数据、验证信息等方式,共同形成了区块链网络,他们为整个区块链系统提供存储空间和算力支持。如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,因此篡改区块链中的信息是一件极其困难的事。相比于传统的网路,区块链具有两大核心特点:一是数据难以篡改、二是去中心化。
[0050] 图1是本实施例提供的基于区块链的资产管理方法框图。如图1所示,基于区块链的资产管理方法包括以下步骤:
[0051] 步骤S100,获取用户端发送的管理信息,判断管理信息中的证明信息是否有效,若有效,将管理信息进行广播,其中,管理信息包括管理请求和相应的证明信息。
[0052] 进行资产管理工作需要用户端、区块链端和资产管理端这三方共同参与。其中,用户端主要用于辅助用户来向区块链端传递管理信息;资产管理方主要用于向用户拨发相应的资金;区块链端主要用于保障用户提供的管理信息不被其它方篡改,以及核对资产管理方准备拨发给相应用户的资金是否正确。用户端、区块链端和资产管理端这三端之间设有通信连接通道,根据该通道可以实现彼此之间的通信。
[0053] 一个管理信息包括一个管理请求和相应的一组证明信息。其中,管理请求表征某个用户请求报销某段时间内某些东西的报销金额,该报销金额是用户该次请求报销的总金额,一个管理请求一一对应有唯一确定的用户。证明信息表征用于证明报销请求真实性的转账记录、发票或者购买记录等至少一种方式的信息,一组证明信息中至少包括一种方式的信息,且一组证明信息中至少包括一个证明子信息,每个子证明信息都对应一种报销金额的实际用途。比如,一个管理信息包括用户A请求报销2023年6月6日购买办公用品300元的管理请求,和一组用于购买纸张100元的子证明信息和购买打印墨盒200元的子证明信息,那么与该管理请求相应的一组证明信息包括两个子证明信息。若这两个子证明信息都属于上述某一种方式的信息,那么该组证明信息中包括一种方式的信息;若这两个子证明信息属于不同方式的信息,那么该组证明信息中包括两种方式的信息。
[0054] 每个用户都对应有各自的用户端,用户通过在自己的用户端输入管理信息使得该用户端获取到管理信息。每个用户端都与区块链端建立有通信连接,这样一旦用户端接收到管理信息后,就通过建立的通信连接通道自动将管理信息发送给区块链端,以使区块链端获取到用户端发送的管理信息。由于管理信息中的管理请求已经携带有表征该管理信息的来源,因此区块链端可以区分出获取的每个管理信息,即每个管理信息都对应的是哪个用户。每个用户都有各自对应的用户端,且区块链分布式特点使得区块链端可以同时接收多个用户端发送的管理信息,这样当有多个用户同时发送管理信息时,区块链端可以同时接收到这些用户端发送的管理信息,而无需让这些用户端采用排队等待的方式来发送管理信息,使得一旦用户端与区块链端建立通信通道后,就可以基于该通道快速将管理信息发送给区块链端。
[0055] 区块链端在获取到管理信息后,通过查看管理信息中证明信息所包含的子证明信息可以得到该证明信息包含的所有方式,其中,所有方式至少包括章印、转账时间或者转账方中的一种。若证明信息有采用转账记录方式,通过查看管理信息可以得到证明信息的转账时间和转账方;若证明信息有采用发票方式,通过查看管理信息可以得到证明信息的转账方或者转账方和章印;若证明信息有采用购买记录,通过查看管理信息可以得到证明信息的转账时间和转账方。本申请默认为证明信息中的章印都是真实的章印,若子证明信息采用发票方式,且该子证明信息中没有章印,那么无需考虑转账方是否有效,该子证明信息都是无效的。对于转账方的有效性核查可通过查看该转账方对应的属性是否与管理请求中所购买的属性一致,且是否属于规定的采买属性,若属性一致且属于规定的采买属性,则该转账方有效;否则,则该转账方无效。比如转账方对应的属性为办公用品商家,且管理请求中所购买物品也属于办公用品,且办公用品属于规定的采买属性,那么该转账方有效。其中,规定的采买属性包括但不限于办公用品、公共用品、清洁用品。对于转账时间的有效性核查可通过判断该转账时间是否为工作日且是否与管理请求的时间一致,若该转账时间是工作日且与管理请求的时间一致,那么该转账时间有效;否则,该转账时间无效。
[0056] 首先通过查看管理信息中的证明信息可以得到该证明信息包括哪些子证明信息,然后通过每个子证明信息所对应的方式可以得到该证明信息包含的所有方式,接着采用上述不同方式验证有效性的方法来验证该证明信息包含的所有方式,若所有方式都有效,那么该管理信息中的证明信息有效;否则,该管理信息中的证明信息无效。只有在证明信息有效的情况下,才将该管理信息进行广播,这样区块链端在将管理信息进行广播之前先主动核实了其中证明信息是否有效,不向节点传播无效的管理信息,为后续核实预拨款资金是否正确做准备。
[0057] 图2是本申请实施例提供的将管理信息进行广播方法的框图。如图2所示,将管理信息进行广播包括以下步骤:
[0058] 步骤S101,获取管理信息中证明信息的证明格式,判断证明格式是否为预设格式,若是,采用优化策略传播方式将管理信息在所有节点中进行广播,其中,优化策略传播方式为分层广播、选择信任节点以及限制广播范围中的任意一种。
[0059] 步骤S102,若否,使用证明格式对应的预设转换模型将证明信息转换为预设格式的新证明信息,采用优化策略传播方式将新证明信息和相应的管理请求在所有节点中进行广播,其中,新证明信息和相应的管理请求组成新管理信息。
[0060] 证明信息中每个子证明信息可以是图片格式、pdf格式、word格式中的任意一种证明格式,通过查看接收到的每个子证明信息的后缀,就可以获取到管理信息中证明信息的证明格式,一组证明信息的证明格式至少有一种。预设格式可以是上述图片格式、pdf格式、word格式中的一种,考虑到pdf格式和word格式中也是放置对应的照片,在相同信息量的情况下,图片格式对应的证明信息在传输过程中需要更少的流量,本实施例优先将图片格式作为预设格式。若一组证明信息中的证明格式只有预设格式,那么该证明格式就是预设格式;若一组证明信息中的证明格式有除了预设格式之外的其它证明格式,那么该证明格式不是预设格式。
[0061] 在证明格式是预设格式的情况下,接收管理信息的节点就采用分层广播、选择信任节点、限制广播范围中的任意一种优化策略传播方式来将管理信息向区块链端的其它节点进行广播。其中,分层广播是通过将网络划分为不同的层级,先向相邻的节点进行广播,这样逐渐扩大广播范围来实现整个广播。选择信任节点是在网络中选择具有更高宽带、更强计算能力、更可靠网络连接等特定的节点作为信任节点,并将其设置为广播的起点。限制广播范围是指限制每次广播的范围。通过采用上述优化策略传播方式来提高将管理信息广播给所有节点的速度。
[0062] 在证明格式不是预设格式的情况下,接收管理信息的节点先通过证明格式对应的预设转换模型将证明信息转换为预设格式的新证明信息。其中,预设转换模型具体可以是部署在区块链端,且能够实现将其它不是预设格式的证明格式转换为预设格式的第三方格式转换工具或者软件,也可以是部署在区块链端的一个智能合约,在该智能合约中设有各种证明格式转换为预设格式的相应程序,其它证明格式的证明信息经过该智能合约就可以得到属于预设格式的新证明信息。新证明信息和相应的管理请求组成了新管理信息,从而接收管理信息的节点就采用分层广播、选择信任节点、限制广播范围中的任意一种优化策略传播方式来将转换后的新管理信息向区块链端的其它节点进行广播。这样在将管理信息进行广播之前先将管理信息中的证明信息进行格式上的统一,一方面相较于使用没有统一前的证明格式将所有管理信息进行广播,可以节省广播过程中消耗的流量,缓解区块链端的压力;另一方面相较于先将未进行格式转换的管理信息进行广播,再使用各个节点部署的智能合约进行格式转换,会减少智能合约的部署数量,解区块链端的压力。
[0063] 步骤S200,判断是否完成了管理信息的广播工作,若是,将管理请求发送给资产管理端。
[0064] 待将管理信息进行广播后,还需要进一步判断是否完成了管理信息的广播工作,只有在区块链端完成了管理信息的广播后,区块链端才将管理请求发送给资产管理端,确保后续在接收到资产管理端发送的预拨款资金后,区块链端可以正常有序地基于广播后的管理信息进行共识,减少因为没有完成广播工作的情况下,而进行后续的管理信息发送与接收预拨款资金等无用的工作,毕竟没有完成广播之前而进行共识操作得到的共识结果没有可靠性。其中,判断是否完成了管理信息的广播工作包括以下步骤:
[0065] 步骤S201,每间隔固定时间获取每个节点所对应的内存池状态,基于内存池状态获取已进行广播的节点数量,判断节点数量是否大于预设节点数量,若大于,则完成了管理信息的广播工作,其中,预设节点数量不小于所有节点总数量的半数。
[0066] 步骤S202,否则,没有完成管理信息的广播工作。
[0067] 区块链中的每个节点都有一个内存池来维护还未被打包进区块的交易,当一个节点收到广播后的管理信息后,会将其加入内存池。上述内存池状态具体为存储有广播的管理信息这一第一状态,或者是不存储有广播的管理信息这一第二状态,每间隔固定时间来查看每个节点所对应的内存池中是否有该管理信息,就可以获取到每个节点所对应的内存池状态,通过统计处于第一状态的内存池的数量来得到已进行广播的节点数量。区块链端中总的节点的数量是已知的。上述预设节点数量不小于区块链端所有节点总数量的半数。若处于第一状态的节点数量大于预设节点数量,表明区块链端完成了广播工作,可以将管理请求发送给资产管理端。
[0068] 若处于第一状态的节点数量不大于预设节点数量,表明区块链端还没有完成广播工作,此时可获取当前进行广播的广播时间,判断广播时间是否小于预设的参考广播时间,若不小于,生成表征停止根据管理信息进行资产管理的报警信号。若小于,继续等待下一次获取每个节点所对应的内存池状态。
[0069] 区块链端存储有进行一次广播所期待的参考广播时间,该参考广播时间表征区块链端所允许的最长广播时间。上述广播时间表征区块链端对一个管理信息进行广播实际所花费的时间。若广播时间不小于参考广播时间,表明区块链端对这个管理信息进行广播的时间已经超过所允许的最长广播时间,该次广播可能存在异常,生成表征停止根据管理信息进行资产管理的报警信号,区块链端不再进行广播,也不再将管理请求发送给资产管理端,根据该报警信号使工作人员及时了解到资产管理工作的情况,知道没有完成该次资产管理工作。若广播时间小于参考广播时间,表明区块链端对这个管理信息进行广播的时间还没有超过所允许的最长广播时间,可以继续等待固定时间后来下一次获取每个节点所对应的内存池状态,并继续判断是否完成了管理信息的广播工作。这样只要还没有完成管理信息的广播工作,且广播时间也小于参考广播时间,就继续等待下一次获取每个节点所对应的内存池状态,尽可能在最大程度上完成对管理信息的广播工作。
[0070] 步骤S300,接收资产管理端发送的表征资产管理端根据管理请求拨出相应的预拨款资金,基于证明信息对预拨款资金进行共识。
[0071] 资产管理端在接收到区块链端发送的管理请求后,资产管理端中的资产管理单元就根据该管理请求中表达的报销金额自动划分到用于拨款的拨款单元中,该拨款单元只受区块链端发送的拨款指令或者调整信息控制。拨款单元中存储有资金后,会自动向区块链端发送表征资产管理端根据管理请求拨出相应的预拨款资金。区块链端在接收到预拨款资金后自动向所有节点进行广播,使区块链端的节点根据接收到证明信息对预拨款资金进行共识。图3是本申请实施例提供的基于证明信息对预拨款资金进行共识方法的框图。如图3所示,基于证明信息对预拨款资金进行共识包括以下步骤:
[0072] 步骤S301,每个节点基于获取到的证明信息获取相应的证明信息中的金额总值,基于共识机制判断金额总值是否等于预拨款资金,若等于,节点在对应的区块中存储与预拨款资金对应的区块数据。
[0073] 步骤S302,若不等于,节点在对应的区块中不存储与预拨款资金对应的区块数据。
[0074] 步骤S303,判断预设达标数量个节点对应的区块的区块高度是否都相同,若都相同,则共识成功。
[0075] 步骤S304,若不都相同,则共识不成功。
[0076] 若区块链端的某个节点没有当前管理信息中的一组证明信息,可通过向附近存储有当前管理信息中的一组证明信息的节点,来获取当前管理信息中的一组证明信息,使得区块链端的每个节点都有当前管理信息中的一组证明信息,通过读取该组证明信息中的每个子证明信息,可以获取到每个子证明信息对应的子金额,接着将该组证明信息中所有子证明信息对应的子金额进行叠加就可以得到证明信息中的金额总值。在区块链端存储有共识机制,区块链端的所有节点都基于该共识机制公平诚实地将金额总值与接收到的预拨款资金进行数值上的比较。若该节点判定这两者在数值上相等,那么该节点就在对应的区块中存储与预拨款资金表征的数值一致或者互为相反数的区块数据。若该节点判定这两者在数值上不相等,那么该节点无动作,即在对应的区块中不存储与预拨款资金表征的数值一致或者互为相反数的区块数据。每个区块在完成一次数据的存储工作,都会使区块的高度增加一个高度。
[0077] 上述预设达标数量是步骤S301中共识机制设定的数量,其中预设达标数量至少不小于可进行共识的节点数量的一半,通过获取每个节点对应区块高度,然后统计属于相同区块高度对应的第一节点数量,若第一节点数量中最大的那个数量不小于预设达标数量,则表明有预设达标数量个节点对应的区块的区块高度都相同,那么区块链端对预拨款资金进行共识成功。若第一节点数量中最大的那个数量小于预设达标数量,则表明没有预设达标数量个节点对应的区块的区块高度都相同,那么区块链端对与预拨款资金进行共识不成功。这样仅通过区块链中节点对应的区块的区块高度属于相同的数量和预设达标数量进行比较,就可以简单直观地判断对预拨款资金进行共识是否成功。
[0078] 步骤S400,若共识成功,向资产管理端发送表征可以使资产管理端自动将预拨款资金发送给相应用户的拨款指令。
[0079] 步骤S500,若没有共识成功,基于管理请求相对应的证明信息生成调整信息,向资产管理端发送调整信息以调整资产管理端发送给相应用户的预拨款资金。
[0080] 区块链端若共识成功,则表明资产管理端自动划分到拨款单元的预拨款金额是准确的,那么区块链端会向资产管理端发送一个拨款指令,使得资产管理端中只有拨款单元动作,将其里面的预拨款资金发送给对应的管理请求中的用户,从而准确地完成资产管理工作,这样即使用户端和资产管理端在受到外界恶意进攻时,也会因为区块链端自身校验证明信息的有效性、广播和共识等操作,降低区块链端受到外界恶意攻击的影响,降低资产管理中报销工作的风险。
[0081] 区块链端若没有共识成功,则表明资产管理端可能受到了外界恶意攻击,自动划分到拨款单元的预拨款金额是不准确的,即资产管理端打算拨发给相应用户的报销金额与该用户请求报销的金额不同。区块链端会通过计算证明信息表征的金额与预拨款资金之间的差值,从而生成调整信息,将该调整信息发送给资产管理端中的拨款单元,使得拨款单元根据该调整信息表征的数值决定是要求资产管理端再次向拨款单元自动划分调整信息表征的金额,还是将自身拨款单元中存储的金额移出该调整信息表征的金额,把移出的金额归还给资产管理端中的资产管理单元。待将拨款单元中的金额进行调整之后,拨款单元中最后存储的金额就是资产管理端需要发送给对应的管理请求中的用户。这样即使用户端和资产管理端在受到外界恶意进攻时,也会因为区块链端自身校验证明信息的有效性、广播和共识等操作,在共识不成功的情况下,向管理资产端发送一个调整信息,使得资产管理端调整发送给相应用户的预拨款资金,准确进行资产管理,降低资产管理中报销工作的风险。
[0082] 其中,基于管理请求相对应的证明信息生成调整信息包括:将预拨款资金减去金额总值以得到预拨款差值,判断预拨款差值是否大于零,若大于零,将预拨款差值作为资产管理端在预拨款资金的基础上应该少发送给相应用户的第一调整信息;若小于零,将预拨款差值作为资产管理端在预拨款资金的基础上应该多发送给相应用户的第二调整信息。调整信息包括第一调整信息和第二调整信息。即预拨款差值大于零,表明拨款单元中的金额大于实际需要发送给对应管理请求中用户的金额,那么区块链端生成的第一调整信息就是让拨款单元根据该调整信息表征的数值,将自身拨款单元中存储的金额移出该调整信息表征的金额,把移出的金额归还给资产管理端中的资产管理单元的一个信息。预拨款差值小于零,表明拨款单元中的金额小于实际需要发送给对应管理请求中用户的金额,那么区块链端生成的第二调整信息就是让拨款单元根据该调整信息表征的数值要求资产管理端再次向拨款单元自动划分调整信息表征的金额的一个信息。资产管理端的拨款单元在接收到第一调整信息或者第二调整信息后都会做出相应的动作,从而准确完成资产管理工作。
[0083] 另外,若区块链端没有共识成功,区块链端还生成预警信号,将预警信号发送给资产管理端,起到让资产管理端及时了解到自身根据管理请求做出的拨款数量是否准确的一个作用。区块链端还统计生成预警信号的次数,便于根据该次数来为后续评价资产管理端自身安全性提供参考。
[0084] 图4是本实施例提供的基于区块链的资产管理系统框架图。如图4所示,一种基于区块链的资产管理系统包括区块链端,区块链端包括信息接收模块、广播模块、信息输出模块和共识模块。
[0085] 其中,信息接收模块,用于获取用户端发送的管理信息,判断管理信息中的证明信息是否有效。广播模块,用于若证明信息有效,将管理信息进行广播,其中,管理信息包括管理请求和相应的证明信息;判断是否完成了管理信息的广播工作。信息输出模块,用于若完成了管理信息的广播工作,将管理请求发送给资产管理端。共识模块,用于接收资产管理端发送的表征资产管理端根据管理请求拨出相应的预拨款资金,基于证明信息对预拨款资金进行共识。信息输出模块,还用于若共识成功,向资产管理端发送表征可以使资产管理端自动将预拨款资金发送给相应用户的拨款指令;若没有共识成功,基于管理请求相对应的证明信息生成调整信息,向资产管理端发送调整信息以调整资产管理端发送给相应用户的预拨款资金。
[0086] 上述信息接收模块、广播模块、信息输出模块和共识模块所执行的其它功能以及各个功能的技术细节均与前面描述的基于区块链的资产管理方法中对应的特征相同或相似,故在此不再赘述。
[0087] 图5是本实施例提供的服务器的结构框图。如图5所示,该服务器包括处理器51和存储器52,其中,存储器52上存储有能在处理器51上运行的计算机程序53,该计算机程序53被处理器执行时实现本申请实施例提供的基于区块链的资产管理方法。
[0088] 存储器52可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器,或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器、只读光盘或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器52在一些实施例中可以是内部存储单元。
[0089] 处理器51可以是中央处理器,通用处理器,数据信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。用于运行存储器52中存储的程序代码或处理数据。
[0090] 处理器51和存储器52通过总线连接。总线可包括一通路,在上述组件之间传送信息。总线可以是外设部件互连标准总线或扩展工业标准结构总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0091] 图5仅示出了具有存储器52、处理器51、总线的服务器,本领域可以理解的是,图5所示的结构并不构成对服务器的限定,既可以是总线型结构,也可以是星形结构,服务器还可以包括比图示更多或者更少的部件,或者组合某些部件,或者不同的部件部署。其它现有的或今后可能出现的电子设备如可适用,也应包含在保护范围内,并以引用方式包含于此。
[0092] 本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述基于区块链的资产管理方法实施例中相关内容。
[0093] 应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确地说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。
[0094] 以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。