首页 / 专利库 / 银行与财务事项 / 智能合约 / 基于区块链智能合约的资产管理方法及节点

基于智能合约的资产管理方法及节点

阅读:202发布:2022-01-28

专利汇可以提供基于智能合约的资产管理方法及节点专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 区 块 链 智能合约 的资产管理方法,该方法用于区块链,区块链的所有 节点 上保存相同的智能合约,方法包括:第一节点生成资产交易 请求 ,并在区块链中广播资产交易请求,资产交易请求中至少包含执行第一智能合约的交易请求;记账节点接收到资产交易请求后,根据共识机制确认交易并生成第一区块数据,在区块链中广播第一区块数据,使得区块链中的所有节点都能接收到第一区块数据,第一区块数据中至少包含执行第一智能合约的交易请求;对于每一个节点,根据接收到的第一区块数据包含的执行第一智能合约的交易请求完成交易过程,能够有效解决基于中心化节点进行资产交易带来的交易逻辑不透明、数据差异问题、效率低及成本高的问题。,下面是基于智能合约的资产管理方法及节点专利的具体信息内容。

1. 一种基于智能合约的资产管理方法,其特征在于,所述方法应用于区块链中, 所述区块链由多个节点连接而成,所有节点上保存相同的智能合约,所述方法包括: 第一节点生成资产交易请求,并在所述区块链中广播所述资产交易请求,所述资产交 易请求中至少包含执行第一智能合约的交易请求,所述第一节点为所述区块链中的任意一 个节点; 记账节点接收到所述资产交易请求后,基于共识机制确认交易并生成第一区块数据, 在所述区块链中广播所述第一区块数据,使得所述区块链中的所有节点都能接收到所述第 一区块数据,所述第一区块数据中至少包含所述执行第一智能合约的交易请求; 对于所述所有节点中的每一个节点,根据接收到的所述第一区块数据包含的所述执行 第一智能合约的交易请求完成交易过程。
2. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 若需要部署第二智能合约,则所述第一节点生成部署交易请求,并在所述区块链中广 播所述部署交易请求,所述部署交易请求中包含所述第二智能合约的代码; 所述记账节点接收到所述部署交易请求后,基于共识机制确认交易,并生成第二区块 数据,在所述区块链中广播所述第二区块数据,使得所述区块链中的所有节点都能接收到 所述第二区块数据,所述第二区块数据中至少包含所述部署第二智能合约的交易请求以及 为所述第二智能合约分配的唯一地址; 对于所述所有节点中的每一个节点,接收到所述第二区块数据后,保存所述第二区块 数据中的第二智能合约的地址及代码,以实现第二智能合约在区块链中所有节点上的部 署。
3. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 若需要删除第三智能合约,则所述第一节点生成一个资产交易请求,并在所述区块链 中广播所述资产交易请求,所述资产交易请求中包含所述删除第三智能合约的交易请求; 所述记账节点接收到所述资产交易请求后,基于共识机制确认交易并生成第三区块数 据,在所述区块链中广播所述第三区块数据,使得所述区块链中的所有节点都能接收到所 述第三区块数据,所述第三区块数据中包含所述删除第三智能合约的交易请求; 对于所述所有节点中的每一个节点,接收到所述第三区块数据后,利用所述第三区块 数据中所述删除第三智能合约的交易请求获取所述第三智能合约的地址,并删除所述第三 智能合约的代码,以实现所述第三智能合约的删除。
4. 根据权利要求1至3任意一项所述的方法,其特征在于,所述资产交易请求及所述第 一区块数据中还包括第一接口名称及交易参数; 则所述根据接收到的所述第一区块数据包含的所述执行第一智能合约的交易请求完 成交易过程,包括: 利用所述第一区块数据中的所述执行第一智能合约的交易请求得到第一智能合约的 地址,从本地数据中获取所述第一智能合约的代码; 将所述交易参数输入所述第一接口名称对应的接口,运行所述第一智能合约的代码; 将运行所述第一智能合约的代码得到的运行结果保存至所述本地数据中,以完成交易 过程。
5. -种节点,其特征在于,所述节点为区块链中的任意一个节点,所述区块链由多个节 点连接而成,且所述区块链的所有节点都保存相同的智能合约,所述节点包括: 请求生成模块,用于生成资产交易请求,并在所述区块链中广播所述资产交易请求,所 述资产交易请求中至少包含执行第一智能合约的交易请求; 记账模块,用于若所述节点作为记账节点使用,则在接收到所述资产交易请求后,基于 共识机制确认交易并生成第一区块数据,在所述区块链中广播所述第一区块数据,使得所 述区块链中的所有节点都能接收到所述第一区块数据,所述第一区块数据中至少包含所述 执行第一智能合约的交易请求; 交易模块,用于若接收到所述第一区块数据,则根据所述第一区块数据包含的所述执 行第一智能合约的交易请求完成交易过程。
6. 根据权利要求5所述的节点,其特征在于,所述请求生成模块还用于若需要部署第二 智能合约,则生成部署交易请求,并在所述区块链中广播所述部署交易请求,所述部署交易 请求中包含所述第二智能合约的代码; 若所述节点作为记账节点使用,则所述记账模块还用于接收到所述部署交易请求后, 基于共识机制确认交易,并生成第二区块数据,在所述区块链中广播所述第二区块数据,使 得所述区块链中的所有节点都能接收到所述第二区块数据,所述第二区块数据中至少包含 所述部署第二智能合约的交易请求以及为所述第二智能合约分配的唯一地址; 所述节点还包括: 保存模块,用于若接收到所述第二区块数据,则保存所述第二区块数据中的第二智能 合约的地址及代码,以实现第二智能合约的部署。
7. 根据权利要求5所述的节点,其特征在于,所述请求生成模块还用于若需要删除第三 智能合约,则所述第一节点生成一个资产交易请求,并在所述区块链中广播所述资产交易 请求,所述资产交易请求中包含所述删除第三智能合约的交易请求; 若所述节点作为记账节点使用,则所述记账模块还用于接收到所述资产交易请求后, 基于共识机制确认交易并生成第三区块数据,在所述区块链中广播所述第三区块数据,使 得所述区块链中的所有节点都能接收到所述第三区块数据,所述第三区块数据中包含所述 删除第三智能合约的交易请求; 所述节点还包括: 删除模块,用于若接收到所述第三区块数据,则利用所述第三区块数据中所述删除第 三智能合约的交易请求获取所述第三智能合约的地址,并删除所述第三智能合约的代码, 以实现所述第三智能合约的删除。
8. 根据权利要求5至7任意一项所述的节点,其特征在于,所述资产交易请求及所述第 一区块数据中还包括第一接口名称及交易参数; 则所述交易模块包括: 获取模块,用于利用所述第一区块数据中的所述执行第一智能合约的交易请求得到第 一智能合约的地址,从本地数据中获取所述第一智能合约的代码; 运行模块,用于将所述交易参数输入所述第一接口名称对应的接口,运行所述第一智 能合约的代码; 结果保存模块,用于将运行所述第一智能合约的代码得到的运行结果保存至所述本地 数据中,以完成交易过程。

说明书全文

基于智能合约的资产管理方法及节点

技术领域

[0001] 本发明涉及互联网技术领域,尤其涉及一种基于区块链智能合约的资产管理方法 及节点。

背景技术

[0002] 现有的资产交易是基于中心化节点的,然而基于中心化节点的资产交易具有以下 问题:
[0003] (1)交易逻辑不透明:每个节点执行自定义的交易过程,互相不了解其他节点的交 易逻辑,且交易逻辑在每个节点上分别运行,交易过程无法监管,交易容易被伪造。
[0004] (2)数据差异问题:每个节点的交易技术实现是不同的,各有各的技术架构,因此, 每个节点产生的数据结构格式是不同的,节点与节点之间互相通信时需要转换格式,且需 要对数据进行复杂的对账,以保证交易各方的数据一致性,数据交互方式及对账方式特别 复杂。
[0005] (3)效率低:由于各个节点的交易逻辑的执行过程不一致,数据格式不一致,交易 的执行、确认、数据对账流程较长,通常需要超过一天以上的时间,效率特别低。
[0006] (4)技术差异带来的成本问题:由于每个节点都需要根据自己的情况设计、开发、 测试并部署一套交易系统,带来的开发成本和维护成本较高。
[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] 结果保存模块,用于将运行所述第一智能合约的代码得到的运行结果保存至所述 本地数据中,以完成交易过程。
[0043]本发明提供一种基于区块链智能合约的资产管理方法,该方法应用于区块链中, 该区块链由多个节点连接而成,且每个节点上保存的智能合约相同,该方法包括:第一节点 生成资产交易请求,并在该区块链中广播该资产交易请求,该资产交易请求中至少包含执 行第一智能合约的交易请求,且该第一节点为区块链中的任意一个节点,区块链中的记账 节点接收到该资产交易请求后,基于共识机制确认交易并生成第一区块数据,在该区块链 中广播该第一区块数据,使得区块链中的所有节点都能够接收到该第一区块数据,对于区 块链的每一个节点,根据接收到的第一区块数据包含的执行第一智能合约的交易请求完成 交易过程。通过在区块链中的所有节点上设置相同的智能合约,使得所有节点的交易逻辑 相同,公开透明,交易过程容易监管,避免交易被伪造,且由于相同的智能合约具备相同的 数据格式,使得所有节点上的数据格式一致。通过在区块链中广播包含执行第一智能合约 的交易请求,使得区块链中的所有节点上都将基于第一智能合约进行交易过程,产生相同 的交易结果,使得所有节点上的数据都相同,避免复杂的对账过程。且基于上述方法,能够 有效缩短交易的执行、确认、数据对账所需要的时间,有效提高效率。此外,由于各个节点上 的智能合约相同,避免对每一个节点分别设置交易系统带来的开发成本及维护成本高的问 题,能够有效节约成本。附图说明
[0044] 图1为本发明实施例中区块链的示意图;
[0045] 图2为本发明第一实施例中基于区块链智能合约的资产管理方法的流程示意图;
[0046] 图3为本发明第二实施例中基于区块链智能合约的资产管理方法的流程示意图; [0047]图4为本发明第三实施例中基于区块链智能合约的资产管理方法的流程示意图; [0048]图5为本发明图2所示步骤203的细化步骤的流程示意图;
[0049] 图6为本发明第四实施例中节点的功能模块的示意图;
[0050] 图7为本发明第五实施例中节点的功能模块的示意图。[0051 ]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0052]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。 [0053]由于现有技术中基于中心化节点进行资产交易带来的交易逻辑不透明、数据差异 问题、效率低及成本高的技术问题。
[0054]为了解决上述问题,本发明提出一种基于区块链智能合约的资产管理方法及节 点,使得能够实现去中心化的资产管理,通过在区块链中的所有节点上设置相同的智能合 约,使得所有节点的交易逻辑相同,公开透明,交易过程容易监管,避免交易被伪造,且由于 相同的智能合约具备相同的数据格式,使得所有节点上的数据格式一致。通过在区块链中 广播包含执行第一智能合约的交易请求的第一区块数据,使得区块链中的所有节点上都将 基于第一智能合约进行交易过程,产生相同的交易结果,使得所有节点上的数据都相同,避 免复杂的对账过程。且基于上述方法,由于所有节点上具有相同的智能合约,能够有效缩短 交易的执行、确认、数据对账所需要的时间,有效提高效率,且避免对每一个节点分别设置 交易系统带来的开发成本及维护成本高的问题,能够有效节约成本。
[0055] 请参阅图1,为本发明实施例中区块链的示意图,该区块链由多个节点连接而成, 具体的,节点之间可以通过P2P对等网络连接。
[0056] 其中,区块链是一种去中心化的分布式账本数据库,区块链中的所有节点中都保 存了一个或多个智能合约,且所有节点上保存的智能合约的个数及种类是相同的,且对于 每一种智能合约,都具有唯一的地址,该地址用于唯一的标识一种智能合约。
[0057] 其中,智能合约是一套以数字形式定义和实现的契约,区块链上的智能合约是指 可运行的计算机代码,这些代码能够实现资产的交易过程,例如资产的发行、申购、转让、赎 回等等。
[0058] 在本发明实施例中,资产包括但不限于金融领域里的定期理财产品、债券、实物、 凭证,信息实体等等产品,资产的价值可以用法币定义(法币是指法律认定的货币),也可以 由具体的业务场景下的合作伙伴共同定义,资产可具有总数量上限、有效期限等属性。且资 产由特定机构创建发行,可以在区块链上申购、转让等,以保持流通,在达到资产的有限期 后,可以赎回到发行机构,兑现为法币或者其他形式的其他资产。
[0059] 可以理解的是,使用到上述区块链的对象包括机构及用户,其中,机构是指加入到 区块链中,能够独立运行的成员,机构拥有一定的资产以及自己的用户群,且在资产交易的 场景里,有两种色的机构:发行机构和代销机构。
[0060] 其中,发行机构拥有发行资产权限,可以在区块链中创建和发行一定份额的资产, 代销机构需要与发行机构达成商务协议后,才可以把资产销售给用户,也可以代理自己的 用户,将资产转让给其他机构。
[0061] 其中,用户是特指和代销机构有签约关系的个人用户,代销机构管理用户的资料 和资产。
[0062] 请参阅图2,为本发明第一实施例中基于区块链智能合约的资产管理方法,该方法 可应用于图1所示的区块链,该方法包括:
[0063] 步骤201、第一节点生成资产交易请求,并在所述区块链中广播所述资产交易请 求,所述资产交易请求中至少包含执行第一智能合约的交易请求,所述第一节点为所述区 块链中的任意一个节点;
[0064] 在本发明实施例中,在区块链的任意一个节点上都可以触发交易的过程,为了方 便描述,将触发交易的过程的节点称为第一节点,其可以为区块链中的任意一个节点。
[0065] 交易人员可以在第一节点上设置交易,且第一节点将生成资产交易请求,并在该 区块链中广播该资产交易请求,其中,资产交易请求中至少包含执行第一智能合约的交易 请求,此外,该资产交易请求中还可以包括第一接口名称、交易参数。区块链返回该交易的 唯一 ID。
[0066] 需要说明的是,在区块链中广播该资产交易请求具体包括:第一节点向与其连接 的节点发送所述资产交易请求,且接收到该资产交易请求的节点保存该资产交易请求,并 判断与其连接的节点中是否有下一级节点,若有下一级节点,则将接收到的资产交易请求 转发给下一级节点,若没有下一级节点,则不需要转发,使得区块链中的所有节点都能够获 取到该资产交易请求。例如,基于图1所示的区块链的示意图,在区块链中包含节点1至6,第 一节点为节点1,与其连接的节点包含节点2、3、4,在节点2、3、4中,节点3还与节点5和6连 接,因此,第一节点在区块链中广播资产交易请求时,节点1先将资产交易请求发送给节点 2、3、4,由于节点2和4由于不再连接其他节点,因此,节点2和4将保存该资产交易请求且不 进行转发,由于节点3连接节点5和节点6,因此,节点3将保存该资产交易请求并将该资产交 易请求转发给节点5和节点6。由于节点5和节点6不再连接其他节点,因此,节点5和节点6将 保存该资产交易请求,且不进行转发,通过上述方式,能够有效实现资产交易请求在区块链 中的广播。可以理解的是,为了确保所有节点中的数据相同,第一节点(节点1)也将保存该 资产交易请求。
[0067] 可以理解的是,上述仅是基于资产交易请求描述广播的过程,在实际应用中,对于 其他请求,例如部署交易请求等等,该其他请求在区块链中的广播过程与资产交易请求的 广播过程相似。
[0068] 步骤202、记账节点接收到所述资产交易请求后,基于共识机制确认交易并生成第 一区块数据,在所述区块链中广播所述第一区块数据,使得所述区块链中的所有节点都能 接收到所述第一区块数据,所述第一区块数据中至少包含所述执行第一智能合约的交易请 求;
[0069] 在本发明实施例中,区块链中的任意一个节点都可以作为记账节点使用,该记账 节点用于进行交易确认及生成区块数据,且同一时刻,区块链中仅有一个记账节点,例如, 若当前时刻记账节点为节点5,下一个时刻记账节点可以变为节点7。
[0070] 其中,记账节点是基于预先设置的记账节点的确认逻辑及机制确定的。
[0071] 在本发明实施例中,区域链中的所有节点都能够获取到第一节点广播的资产交易 请求,并保存该资产交易请求,并对资产交易请求进行数据处理
[0072] 其中,记账节点对接收到的资产交易请求进行数据处理包括:基于共识机制确认 交易并生成第一区块数据,并在区块链中广播该第一区块数据,使得区块链中的所有节点 都能够接收到该第一区块数据,且该第一区块数据中至少包含执行第一智能合约的交易请 求。此外,该第一区块数据中还可以包括第一接口名称、交易参数、此次交易的ID。
[0073] 其中,记账节点包含交易列表,在根据资产交易请求完成确认交易之后,将此次交 易纳入该交易列表中,且是基于该交易列表生成第一区块数据,该第一区块数据中包含当 前正在进行的交易。因此,第一区块数据中除了包含此次交易之外,还可以包含其他的交 易。
[0074] 步骤203、对于所述所有节点中的每一个节点,根据接收到的所述第一区块数据包 含的所述执行第一智能合约的交易请求完成交易过程。
[0075] 在本发明实施例中,记账节点在区块链中广播第一区块数据之后,区块链中的每 一个节点都将接收到该第一区块数据。且区块链中的所有节点中的每一个节点都将根据接 收到的第一区块数据包含的执行第一智能合约的交易请求完成交易过程。即区块链中的所 有节点都将执行步骤203,以确保所有节点中保存的数据相同。
[0076]需要说明的是,上述第一节点和记账节点可以是同一个节点,也可以是不同的节 点,因此,步骤202中,记账节点接收资产交易请求有两种含义,一种是:若记账节点和第一 节点不是同一个节点,则该记账节点接收第一节点广播的资产交易请求。另一种是:若该记 账节点和第一节点是同一个节点,则该记账节点获取其自身生成的资产交易请求。
[0077]可以理解的是,记账节点在生成第一区块数据之后,也需要执行步骤203,以确保 所有节点中的数据保持一致。
[0078]在本发明实施例中,第一节点生成资产交易请求后,将在该区块链中广播该资产 交易请求,该资产交易请求中至少包含执行第一智能合约的交易请求,区块链中的记账节 点接收到该资产交易请求后,基于共识机制确认交易并生成第一区块数据,在该区块链中 广播该第一区块数据,使得区块链中的所有节点都能够接收到该第一区块数据,对于区块 链中的所有节点中的每一个节点,根据接收到的第一区块数据包含的执行第一智能合约的 交易请求完成交易过程。通过在区块链中的所有节点上设置相同的智能合约,使得所有节 点的交易逻辑相同,公开透明,交易过程容易监管,避免交易被伪造,且由于相同的智能合 约具备相同的数据格式,使得所有节点上的数据格式一致。通过在区块链中广播包含执行 第一智能合约的交易请求的第一区块数据,使得区块链中的所有节点上都将基于第一智能 合约进行交易过程,产生相同的交易结果,使得所有节点上的数据都相同,避免复杂的对账 过程。且基于上述方法,能够有效缩短交易的执行、确认、数据对账所需要的时间,有效提高 效率。此外,由于各个节点上的智能合约相同,避免对每一个节点分别设置交易系统带来的 开发成本及维护成本高的问题,能够有效节约成本。
[0079] 在本发明实施例中,除了可以基于区块链中节点内的智能合约实现交易之外,还 可以对智能合约进行部署及删除,下面将分别进行介绍。
[0080] 请参阅图3,为本发明实施例中第二实施例中基于区块链智能合约的资产管理方 法的流程示意图,该方法包括:
[0081] 步骤301、若需要部署第二智能合约,则所述第一节点生成部署交易请求,并在所 述区块链中广播所述部署交易请求,所述部署交易请求中包含所述第二智能合约的代码;
[0082] 在本发明实施例中,部署人员可以将智能合约部署到区块链的所有节点上,以该 智能合约为第二智能合约为例进行说明,需要先由开发人员编写该第二智能合约的代码, 并进行编译和测试,在完成编译和测试之后,由部署人员在区块链中的任意一个节点(该任 意一个节点称为第一节点)上调用智能合约的安装接口,且该第一节点接收到该调用指令 之后,将生成部署交易请求,该部署交易请求中包含该第二智能合约的代码,且第一节点将 在区块链中广播该部署交易请求,使得区块链中的所有节点都将获取到该部署交易请求, 且区块链中的记账节点在获取到该部署交易请求之后将对其进行数据处理(如步骤302)。
[0083] 步骤302、所述记账节点接收到所述部署交易请求后,基于共识机制确认交易,并 生成第二区块数据,在所述区块链中广播所述第二区块数据,使得所述区块链中的所有节 点都能接收到所述第二区块数据,所述第二区块数据中至少包含所述部署第二智能合约的 交易请求以及为所述第二智能合约分配的唯一地址;
[0084] 步骤303、对于所述所有节点中的每一个节点,接收到所述第二区块数据后,保存 所述第二区块数据中的第二智能合约的地址及代码,以实现第二智能合约在区块链中所有 节点上的部署。
[0085] 在本发明实施例中,记账节点在接收到该部署交易请求后,基于共识机制确认交 易,记账节点将生成第二区块数据,并为该第二智能合约分配地址,该地址为该第二智能合 约的唯一地址,用于标识作用,且在区块链中广播该第二区块数据,使得该区块链中的所有 节点都能接收到该第二区块数据,其中,该第二区块数据中包含需要部署的第二智能合约 的地址及代码。
[0086] 且对于区块链的每一个节点,在接收到该第二区块数据后,将保存该第二区块数 据中的第二智能合约的地址及代码,以实现第二智能合约在区块链中所有节点上的部署。
[0087] 在本发明实施例中,若需要部署第二智能合约,第一节点将生成部署交易请求,并 在区块链中广播该部署交易请求,该部署交易请求中包含第二智能合约的代码,记账节点 接收到该部署交易请求后,基于共识机制确认交易,并生成第二区块数据,且在区块链中广 播该第二区块数据,使得区块链中的所有节点都能够接收到该第二区块数据,且对于每一 个接收到该第二区块数据的节点,将保存该第二区块数据中的第二智能合约的地址及代 码,通过上述方式,能够有效实现第二智能合约在区块链中所有节点上的部署。
[0088]请参阅图4,为本发明实施例中第三实施例中基于区块链智能合约的资产管理方 法的流程示意图,该方法包括:
[0089] 步骤401、若需要删除第三智能合约,则所述第一节点生成一个资产交易请求,并 在所述区块链中广播所述资产交易请求,所述资产交易请求中包含所述删除第三智能合约 的交易请求;
[0090] 步骤402、所述记账节点接收到所述资产交易请求后,基于共识机制确认交易并生 成第三区块数据,在所述区块链中广播所述第三区块数据,使得所述区块链中的所有节点 都能接收到所述第三区块数据,所述第三区块数据中包含所述删除第三智能合约的交易请 求;
[0091] 步骤403、对于所述所有节点中的每一个节点,接收到所述第三区块数据后,利用 所述第三区块数据中所述删除第三智能合约的交易请求获取所述第三智能合约的地址,并 删除所述第三智能合约的代码,以实现所述第三智能合约的删除。
[0092]在本发明实施例中,智能合约的管理者决定删除第三智能合约时,可以在区块链 的任意一个节点(以第一节点进行说明)生成一个资产交易请求,所述资产交易请求中包含 所述删除第三智能合约的交易请求,且第一节点在检查到该资产交易请求后,将在区块链 中广播该资产交易请求,该资产交易请求中包含删除第三智能合约的交易请求。
[0093] 且在广播资产交易请求后,区块链中的所有节点都将接收到该资产交易请求,区 块链中的记账节点在获取到该资产交易请求后,将对该资产交易请求进行数据处理(如步 骤402)。
[0094] 其中,记账节点接收到所述删除交易请求后,基于共识机制确认交易并生成第三 区块数据,且在区块链中广播该第三区块数据,使得区块链中的所有节点都能接收到第三 区块数据,其中,第三区块数据中包含删除第三智能合约的交易请求;
[0095] 在本发明实施例中,对于区块链中的每一个节点,接收到该第三区块数据后,利用 该第三区块数据中删除第三智能合约的交易请求获取该第三智能合约的地址,并基于该地 址删除该第三智能合约的代码,以实现第三智能合约的删除。由于所有的节点都将执行该 第三智能合约的删除,将使得区块链中所有节点上智能合约的个数及种类保持一致。
[0096] 通过上述方式,能够有效的实现智能合约的删除。
[0097] 在本发明实施例中,上述的资产交易请求、部署交易请求及删除交易请求、第一区 块数据、第二区块数据及第三区块数据中还可以包含接口名称及交易参数,且还可以包含 此次交易的ID,基于该交易的ID可以唯一确定一个交易,其中,交易参数可以是空参数,也 可以是非空参数。
[0098] 基于上述图2至图4,请参阅图5,为本发明图2所示步骤203的细化步骤的流程示意 图,包括:
[0099]步骤501、利用所述第一区块数据中的所述执行第一智能合约的交易请求得到第 一智能合约的地址,从本地数据中获取所述第一智能合约的代码;
[0100]步骤502、将所述交易参数输入所述第一接口名称对应的接口,运行所述第一智能 合约的代码;
[0101] 步骤503、将运行所述第一智能合约的代码得到的运行结果保存至所述本地数据 中,以完成交易过程。
[0102] 在本发明实施例中,资产交易请求及所述第一区块数据中还包括第一接口名称及 交易参数,则每一个接收到第一区块数据的节点,将利用该第一区块数据中执行第一智能 合约的交易请求从本地数据中获取该第一智能合约的代码,其中,区块链中的每一个节点 中都已经部署了该第一智能合约,且在本地数据中保存了该第一智能合约的地址及代码, 可以基于第一智能合约的地址获取该第一智能合约的代码。
[0103] 在获取到第一智能合约的代码之后,将第一区块数据中的交易数据输入第一接口 名称对应的接口,并运行该第一智能合约的代码,以开始交易过程,且将运行该第一智能合 约的代码得到的运行结果保存至本地数据中,以完成交易过程。
[0104] 通过上述方式,区块链中的每一个节点都可以完成交易过程。
[0105] 请参阅图6,为本发明第四实施例中节点的功能模块的示意图,所述节点为区块链 中的任意一个节点,所述区块链由多个节点连接而成,且所述区块链的所有节点都保存相 同的智能合约。
[0106] 下面将介绍区块链中每一个节点的结构,需要说明的是,若需要实现图2至图5所 示实施例中的技术方案,需要区块链中的所有节点共同合作实现,图6所示实施例中仅描述 单个节点所包含的功能模块。
[0107] 区块链中的所有的节点都包含相同的功能模块,且对于每一个节点,都包含:请求 生成模块601、记账模块602及交易模块603。
[0108] 请求生成模块601,用于生成资产交易请求,并在所述区块链中广播所述资产交易 请求,所述资产交易请求中至少包含执行第一智能合约的交易请求;
[0109] 记账模块602,用于若所述节点作为记账节点使用,则在接收到所述资产交易请求 后,基于共识机制确认交易并生成第一区块数据,在所述区块链中广播所述第一区块数据, 使得所述区块链中的所有节点都能接收到所述第一区块数据,所述第一区块数据中至少包 含所述执行第一智能合约的交易请求;
[0110] 交易模块603,用于若接收到所述第一区块数据,则根据所述第一区块数据包含的 所述执行第一智能合约的交易请求完成交易过程。
[0111] 在本发明实施例中,通过在区块链中的所有节点上设置相同的智能合约,使得所 有节点的交易逻辑相同,公开透明,交易过程容易监管,避免交易被伪造,且由于相同的智 能合约具备相同的数据格式,使得所有节点上的数据格式一致。通过在区块链中广播包含 执行第一智能合约的交易请求的第一区块数据,使得区块链中的所有节点上都将基于第一 智能合约进行交易过程,产生相同的交易结果,使得所有节点上的数据都相同,避免复杂的 对账过程。且基于上述方法,能够有效缩短交易的执行、确认、数据对账所需要的时间,有效 提高效率。此外,由于各个节点上的智能合约相同,避免对每一个节点分别设置交易系统带 来的开发成本及维护成本高的问题,能够有效节约成本。
[0112]请参阅图7,为本发明第五实施例中节点的功能模块的示意图,包括:如图6所示第 四实施例中的请求生成模块601、记账模块602及交易模块603,且与图6所示实施例中描述 的内容相似,此处不做赘述。
[0113]在本发明实施例中,所述请求生成模块601还用于若需要部署第二智能合约,则生 成部署交易请求,并在所述区块链中广播所述部署交易请求,所述部署交易请求中包含所 述第二智能合约的代码;
[0114]若所述节点作为记账节点使用,则所述记账模块602还用于接收到所述部署交易 请求后,基于共识机制确认交易,并生成第二区块数据,在所述区块链中广播所述第二区块 数据,使得所述区块链中的所有节点都能接收到所述第二区块数据,所述第二区块数据中 至少包含所述部署第二智能合约的交易请求以及为所述第二智能合约分配的唯一地址;
[0115] 所述节点还包括:
[0116] 保存模块701,用于若接收到所述第二区块数据,则保存所述第二区块数据中的第 二智能合约的地址及代码,以实现第二智能合约的部署。
[0117]进一步的,所述请求生成模块601还用于若需要删除第三智能合约,则所述第一节 点生成一个资产交易请求,并在所述区块链中广播所述资产交易请求,所述资产交易请求 中包含所述删除第三智能合约的交易请求;
[0118] 若所述节点作为记账节点使用,则所述记账模块602还接收到所述资产交易请求 后,基于共识机制确认交易并生成第三区块数据,在所述区块链中广播所述第三区块数据, 使得所述区块链中的所有节点都能接收到所述第三区块数据,所述第三区块数据中包含所 述删除第三智能合约的交易请求;
[0119] 所述节点还包括:
[0120]删除模块702,用于若接收到所述第三区块数据,则利用所述第三区块数据中所述 删除第三智能合约的交易请求获取所述第三智能合约的地址,并删除所述第三智能合约的 代码,以实现所述第三智能合约的删除。
[0121] 在本发明实施例中,所述资产交易请求及所述第一区块数据中还包括第一接口名 称及交易参数;
[0122] 则所述交易模块603包括:
[0123] 获取模块703,用于利用所述第一区块数据中的所述执行第一智能合约的交易请 求得到第一智能合约的地址,从本地数据中获取所述第一智能合约的代码;
[0124] 运行模块704,用于将所述交易参数输入所述第一接口名称对应的接口,运行所述 第一智能合约的代码;
[0125] 结果保存模块705,用于将运行所述第一智能合约的代码得到的运行结果保存至 所述本地数据中,以完成交易过程。
[0126] 在本发明实施例中,区块链中的每一个节点都有支持实现交易、部署合约及删除 合约的模块,使得区块链上所有节点能够保持数据的一致性。
[0127] 为了更好的理解本发明实施例中上述图2至图7所示的技术方案,下面将介绍区块 链中的数据定义及接口,其中区块链中的所有节点都包含相同的接口。
[0128] (1)智能合约数据定义:
[0129] 资产数据:资产的唯一ID,资产名称,发行总量,有效期,价格。每个发行机构可以 发行多个资产。
[0130] 智能合约样例代码
[0132] 第一级为发行机构的地址(有多个)为主键
[0133] 第二级为资产的id为主键
[0134] 若需要记录多个发行机构,及每个机构发行的多个产品(智能合约),可使用以下 代码:
[0135] mapping(address = >mapping(int = >product)publie productOf;
[0136] (2)资产交易数据:
[0137] 资产交易数据为两级结构,第一级结构是机构地址维度,按机构地址为主键。第二 级结构为交易维度,以交易的唯一ID为主键,记录了一笔交易中各机构地址发生的资产转 移数量。这样的设计是便于以机构地址维度的查询和统计。
[0138] 智能合约样例代码:
[0140] (3)资产交易的智能合约接口:
[0141] 1)、发行接口
[0142] function publish(int productID,string name,int current,int max,string startdate, string enddate);
[0143] 参数说明:
[0144]
[0146] 实现流程:
[0147] 1.智能合约对传入的数据,先检查有效性;
[0148] 2 ·将传入参数封装为Product结构体
[0149] 3.以product ID为主键,设置到ProductOf资产数据对象里。
[0150] 2)申购接口
[0151] function buy(address from,address receiver, string transationID,int productID,int current,int count)
[0152] 参数说明:
[0153]
[0154] 实现逻辑:
[0155] 减少发行者名下对应资产的待售份额,给接受者增加购买到的份额。
[0156] 1:资产的出售者,根据product ID,查询资产信息,判断是否还有足够的剩余资产 可以出售。
[0157] 2:如有足够的剩余资产可以出售,则从总量中减去本次交易的份额数量。如不足 够,则终止流程。
[0158] 3:在交易管理数据,接受者的地址对应的交易数据列表里,增加一项交易,记录对 应交易id,资产ID,份额,价格,日期,资产的状态为有效。
[0159] 3)、转让接口
[0160] function transfer(address from,address receiver , string inputTransationID, string outputTransationID,int productID,int current,int count)
[0161] 参数说明:
[0162]
[0163] 实现逻辑:
[0164] 出售者对应的份额置为无效,接受者的份额增加。
[0165] 1 :在交易管理数据,出售者的地址对应的交易数据列表里,根据input Transation ID找到对应的交易记录(这条交易记录可能产生于申购或者他人转让),判断 状态是否有效,如无效拒绝交易,接口调用返回,如有效,则将其置为(已转让)。
[0166] 2:在交易管理数据,接受者的地址对应的交易数据列表里,增加一项交易记录,记 录对应交易id为outputTransationID,资产ID,份额,价格,日期,和出售者方对应的一笔交 易相同,资广的状态为有效。
[0167] 4)赎回接口
[0168] function redemption(address from,address receiver,string inputTransationID,int productID,int current,int count)
[0169] 参数说明: 「01701
[0171] 实现逻辑:
[0172] 资产拥有者其中的一笔资产到期,则发起赎回操作,将资产转回到发行机构,发行 机构根据商业规则进行结算。
[0173] 1:根据地址from和交易的标识input Transation ID在交易数据列表中找到对应 的资产交易,将其状态置为(赎回)。
[0174] 2:在地址为receiver的发行机构对应的交易列表中,增加一个交易记录,记录对 应交易id为outputTransationID,资产ID,份额,价格,日期,和赎回方对应的一笔交易相 同,资产的状态为(赎回)。
[0175] 5)、查询接口
[0176] 1.根据交易id查询一笔交易
[0177] function getTransaction(string transactionld,out ProductTransaction transaction)
[0178]输入:交易id
[0179]输出:产品交易的详情数据
[0180] 2.根据机构地址查询机构的交易列表
[0181] function getTransactionList(address owner , out maptransactionList);
[0182] 输入:机构的地址 [0183]输出:交易列表数据
[0184]业务层根据交易列表数据,进行遍历,对其中状态为有效的,进行统计,得到机构 拥有的某个资产的总量值。
[0185] 6)删除接口
[0186] 删除接口的功能不是指删除某一个交易或资产,而是删除智能合约本身。
[0187] 需要说明的是,上述发行接口、申购接口、转让接口、赎回接口都是用于资产交易 的接口,其具体的使用可以应用于上述图2所示的实施例中,即资产交易请求可以是资产发 行交易请求、资产申购交易请求、资产转让交易请求、资产赎回交易请求,且均可以按照图2 所示的实施例完成交易过程。
[0188] 其中,删除接口用于删除智能合约,其可应用于图4所示实施例中,以实现智能合 约的删除。
[0189] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方 法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下 前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做 出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质 (如R0M/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,月艮 务器,空调器,或者网络设备等)执行本发明各个实施例的方法。
[0190]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发 明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技 术领域,均同理包括在本发明的专利保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈