基于随机见证的图式账本创建方法和装置.pdf

上传人:小*** 文档编号:10148910 上传时间:2021-06-05 格式:PDF 页数:23 大小:777.31KB
收藏 版权申诉 举报 下载
基于随机见证的图式账本创建方法和装置.pdf_第1页
第1页 / 共23页
基于随机见证的图式账本创建方法和装置.pdf_第2页
第2页 / 共23页
基于随机见证的图式账本创建方法和装置.pdf_第3页
第3页 / 共23页
文档描述:

《基于随机见证的图式账本创建方法和装置.pdf》由会员分享,可在线阅读,更多相关《基于随机见证的图式账本创建方法和装置.pdf(23页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010809483.5 (22)申请日 2020.08.12 (71)申请人 北京大学 地址 100871 北京市海淀区颐和园路5号 (72)发明人 黄罡马新建吴仪景翔 朱晓旻 (74)专利代理机构 北京润泽恒知识产权代理有 限公司 11319 代理人 莎日娜 (51)Int.Cl. G06Q 40/04(2012.01) G06F 16/901(2019.01) G06F 16/27(2019.01) G06F 21/64(2013.01) H04L 9/32(2006.。

2、01) H04L 29/08(2006.01) (54)发明名称 一种基于随机见证的图式账本创建方法和 装置 (57)摘要 本申请提供了一种基于随机见证的图式账 本创建方法和装置, 涉及分布式账本技术领域。 应用于分布式账本系统; 所述分布式账本系统包 括委员会节点维护的全局知识单链, 以及所述委 员会节点和普通节点维护的DAG结构。 旨在提供 一种基于可验证的基本账本信息创建的账本方 法, 以使分布式账本中每个节点的DAG结构的图 式账本都是可信赖的, 结合基于全局知识对写入 图式账本的区块进行随机见证, 保证写入图式账 本的区块都是安全的, 进而保证随机见证的分布 式账本的安全性。 权利要。

3、求书3页 说明书15页 附图4页 CN 112116470 A 2020.12.22 CN 112116470 A 1.一种基于随机见证的图式账本创建方法, 其特征在于, 应用于分布式账本系统; 所述 分布式账本系统包括委员会节点维护的全局知识单链, 以及所述委员会节点和普通节点维 护的DAG结构; 所述方法包括: 第一节点根据创建账本的操作指令, 生成创建账本请求; 其中, 所述第一节点为所述分 布式账本系统中的任意节点; 所述第一节点将所述创建账本请求广播给所述分布式账本系统中的所有节点; 所述委员会节点对接收的所述创建账本请求进行验证; 所述委员会节点在所述创建账本请求通过验证时, 根据。

4、所述创建账本请求, 在所述全 局知识单链中写入最新全局知识区块; 所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统中的剖通节点; 所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块, 创建 DAG结构的账本。 2.根据权利要求1所述的方法, 其特征在于, 所述方法还包括: 所述第一节点利用管理员私钥, 对所述创建账本请求进行数字签名; 所述创建账本请 求包括DAG结构的账本名称; 所述委员会节点对接收的所述创建账本请求进行验证, 包括: 从所述全局知识单链的创世区块获取管理员公钥; 根据所述管理员公钥, 验证所述创建账本请求的数字签名; 遍历所述全局知识单链, 获取。

5、账本列表; 基于所述DAG结构的账本名称, 在所述账本列表中对所述创建账本请求进行同名账本 验证; 所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块, 创建 DAG结构的账本, 包括: 所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块, 在本地 创建所述DAG结构的创世区块; 所述创世区块包括所述DAG结构的账本名称。 3.根据权利要求1所述的方法, 其特征在于, 所述方法还包括: 将所述分布式账本系统中达到预设的产块条件的任意节点, 确定为产块节点; 所述产块节点打包收集的交易集, 得到业务交易区块体; 所述产块节点根据基于所述全局知识单链获得的全局知识,。

6、 在所述分布式账本系统中 确定见证节点; 所述产块节点和所述见证节点对所述业务交易区块体进行随机见证; 所述产块节点在所述业务交易区块体通过随机见证时, 获得与所述区块体对应的业务 交易区块; 所述产块节点在本地的DAG结构中写入所述业务交易区块; 所述见证节点在本地的DAG结构中备份所述业务交易区块。 4.根据权利要求3所述的方法, 其特征在于, 所述产块节点在本地的DAG结构中写入所 述业务交易区块, 包括: 在本地的DAG结构中确定第一前驱区块; 所述第一前驱区块是所述产块节点生成的上 一个区块或者创世区块; 权利要求书 1/3 页 2 CN 112116470 A 2 在本地的DAG结。

7、构的多个末端区块中选择除所述第一前驱区块外的任意的末端区块作 为第二前驱区块; 将所述业务交易区块与所述第一前驱区块和所述第二前驱区块分别连接; 所述见证节点在本地的DAG结构中备份所述业务交易区块, 包括: 在本地的DAG结构中确定第三前驱区块; 所述第三前驱区块是所述产块节点生成的上 一个区块或者创世区块; 在本地的DAG结构的多个末端区块中选择除所述第三前驱区块外的任意的末端区块作 为第四前驱区块; 将所述业务交易区块的备份区块与所述第三前驱区块和所述第四前驱区块分别连接。 5.根据权利要求3所述的方法, 其特征在于, 所述产块节点根据基于所述全局知识单链 获得的全局知识, 在所述分布式。

8、账本系统中确定见证节点, 包括: 所述委员会节点遍历所述全局知识单链中的所有区块, 获得全局知识, 并将所述全局 知识对应的全局知识区块广播给所述分布式账本系统中的所有节点; 所述全局知识包括可 用节点列表和随机种子; 所述产块节点根据本地私钥和所述随机种子生成随机序列; 所述产块节点基于所述随机序列, 在所述可用节点列表中确定见证节点。 6.根据权利要求3所述的方法, 其特征在于, 创建DAG结构的账本后, 所述方法还包括: 将所述DAG结构的账本名称和所述DAG结构的存储区域存储至本地存储系统; 所述产块节点在本地的DAG结构中写入所述业务交易区块, 包括: 根据存储数据的操作指令, 确定。

9、所述业务交易区块待写入的目标账本名称; 根据所述哈希表和所述目标账本名称, 确定所述业务交易区块待写入的目标DAG结构; 在所述目标DAG结构写入所述业务交易区块。 7.一种基于随机见证的图式账本创建装置, 其特征在于, 应用于分布式账本系统; 所述 分布式账本系统包括委员会节点维护的全局知识单链, 以及所述委员会节点和普通节点维 护的DAG结构; 所述装置包括: 创建账本请求模块, 用于使第一节点根据创建账本的操作指令, 生成创建账本请求; 其 中, 所述第一节点为所述分布式账本系统中的任意节点; 创建账本请求广播模块, 用于使所述第一节点将所述创建账本请求广播给所述分布式 账本系统中的所有。

10、节点; 创建账本请求验证模块, 用于使所述委员会节点对接收的所述创建账本请求进行验 证; 创建账本区块生成模块, 用于使所述委员会节点在所述创建账本请求通过验证时, 根 据所述创建账本请求, 在所述全局知识单链中写入最新全局知识区块; 全局知识区块广播模块, 用于使所述委员会节点将所述最新全局知识区块广播给所述 分布式账本系统中的所有节点; 账本创建模块, 用于使所述分布式账本系统中的所有节点中的每个节点根据所述最新 全局知识区块, 创建DAG结构的账本。 8.根据权利要求7所述的装置, 其特征在于, 所述装置还包括: 创建账本请求签名模块, 用于使所述第一节点利用管理员私钥, 对所述创建账本。

11、请求 权利要求书 2/3 页 3 CN 112116470 A 3 进行数字签名; 所述创建账本请求包括DAG结构的账本名称; 所述创建账本请求验证模块包括: 公钥获取子模块, 用于从所述全局知识单链的创世区块获取管理员公钥; 数字签名验证子模块, 用于根据所述管理员公钥, 验证所述创建账本请求的数字签名; 账本列表获取子模块, 用于遍历所述全局知识单链, 获取账本列表; 账本名称验证子模块, 用于基于所述DAG结构的账本名称, 在所述账本列表中对所述创 建账本请求进行同名账本验证; 所述账本创建模块包括: 创世区块创建子模块, 用于使所述分布式账本系统中的所有节点中的每个节点根据所 述最新全。

12、局知识区块, 在本地创建所述DAG结构的创世区块; 所述创世区块包括所述DAG结 构的账本名称。 9.根据权利要求7所述的装置, 其特征在于, 所述装置还包括: 产块节点确定模块, 用于将所述分布式账本系统中达到预设的产块条件的任意节点, 确定为产块节点; 业务交易区块生成模块, 用于使所述产块节点打包收集的交易集, 得到业务交易区块 体; 见证节点确定模块, 用于使所述产块节点根据基于所述全局知识单链获得的全局知 识, 在所述分布式账本系统中确定见证节点; 共识模块, 用于使所述产块节点和所述见证节点对所述业务交易区块体进行随机见 证; 业务交易区块获得模块, 用于使所述产块节点在所述业务交。

13、易区块体通过随机见证 时, 获得与所述区块体对应的业务交易区块; 账本数据写入模块, 用于使所述产块节点在本地的DAG结构中写入所述业务交易区块; 账本数据备份模块, 用于使所述见证节点在本地的DAG结构中备份所述业务交易区块。 10.权利要求9所述的装置, 其特征在于, 所述账本数据写入模块包括: 第一前驱区块确定子模块, 用于在本地的DAG结构中确定第一前驱区块; 所述第一前驱 区块是所述产块节点生成的上一个区块或者创世区块; 第二前驱区块确定子模块, 用于在本地的DAG结构的多个末端区块中选择除所述第一 前驱区块外的任意的末端区块作为第二前驱区块; 账本数据写入子模块, 用于将所述业务交。

14、易区块业务业务交易区块与所述第一前驱区 块和所述第二前驱区块分别连接; 所述账本数据备份模块包括: 第三前驱区块确定子模块, 用于在本地的DAG结构中确定第三前驱区块; 所述第三前驱 区块是所述产块节点生成的上一个区块或者创世区块; 第四前驱区块确定子模块, 用于在本地的DAG结构的多个末端区块中选择除所述第三 前驱区块外的任意的末端区块作为第四前驱区块; 账本数据备份子模块, 用于将所述业务交易区块的备份区块与所述第三前驱区块和所 述第四前驱区块分别连接。 权利要求书 3/3 页 4 CN 112116470 A 4 一种基于随机见证的图式账本创建方法和装置 技术领域 0001 本申请涉及分。

15、布式账本技术领域, 特别是涉及一种基于随机见证的图式账本创建 方法和装置。 背景技术 0002 2008年, 一位自称中本聪的匿名人士提出比特币(Bitcoin), 紧接着, 以区块链技 术(blockchain technology)为主的分布式账本技术(distributed ledger technology) 相继问世。 分布式账本技术本质上是一种在多站点、 多地理位置或者多机构之间共享资产 的数据库。 分布式账本技术由于其去中心化、 去信任化和防篡改的特点逐渐受到关广泛注 和应用。 0003 以比特币为代表的第一代区块链技术主要采用节点状态机复制, 即全网所有节点 都对指令和数据达成。

16、一致, 但完整数据的数据传输过程将会占用大量网络流量开销, 每个 节点的数据一致更会导致分布式账本难以扩展, 吞吐率难以增加。 0004 为提高分布式账本的吞吐率, 提出随机见证机制。 随机见证机制是在系统的所有 节点中选择部分节点对区块数据进行见证, 进而使账本系统可以并行产块, 提供账本系统 的吞吐率。 但随机见证机制导致每一份数据只被系统中的部分节点的账本存储, 而存储数 据的每个节点的账本是否是安全可靠的并不能确认, 目前基于随机见证的账本存储数据容 易被篡改, 安全性较低。 发明内容 0005 本申请实施例提出的一种基于随机见证的图式账本创建方法和装置, 旨在提供一 种基于可验证的基。

17、本账本信息创建的账本方法, 以使分布式账本中每个节点的DAG结构的 图式账本都是可信赖的, 结合基于全局知识对写入图式账本的区块进行随机见证, 保证写 入图式账本的区块都是安全的, 进而保证随机见证的分布式账本的安全性。 0006 本申请实施例第一方面提供一种基于随机见证的图式账本创建方法, 应用于分布 式账本系统; 所述分布式账本系统包括委员会节点维护的全局知识单链, 以及所述委员会 节点和普通节点维护的DAG结构; 所述方法包括: 0007 第一节点根据创建账本的操作指令, 生成创建账本请求; 其中, 所述第一节点为所 述分布式账本系统中的任意节点; 0008 所述第一节点将所述创建账本请。

18、求广播给所述分布式账本系统中的所有节点; 0009 所述委员会节点对接收的所述创建账本请求进行验证; 0010 所述委员会节点在所述创建账本请求通过验证时, 根据所述创建账本请求, 在所 述全局知识单链中写入最新全局知识区块; 0011 所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统中的剖通 节点; 0012 所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块, 创 说明书 1/15 页 5 CN 112116470 A 5 建DAG结构的账本。 0013 可选地, 所述方法还包括: 0014 所述第一节点利用管理员私钥, 对所述创建账本请求进行数字签名; 所述创。

19、建账 本请求包括DAG结构的账本名称; 0015 所述委员会节点对接收的所述创建账本请求进行验证, 包括: 0016 从所述全局知识单链的创世区块获取管理员公钥; 0017 根据所述管理员公钥, 验证所述创建账本请求的数字签名; 0018 遍历所述全局知识单链, 获取账本列表; 0019 基于所述DAG结构的账本名称, 在所述账本列表中对所述创建账本请求进行同名 账本验证; 0020 所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块, 创 建DAG结构的账本, 包括: 0021 所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块, 在 本地创建所述DAG结构的。

20、创世区块; 所述创世区块包括所述DAG结构的账本名称。 0022 可选地, 所述方法还包括: 0023 将所述分布式账本系统中达到预设的产块条件的任意节点, 确定为产块节点; 0024 所述产块节点打包收集的交易集, 得到业务交易区块体; 0025 所述产块节点根据基于所述全局知识单链获得的全局知识, 在所述分布式账本系 统中确定见证节点; 0026 所述产块节点和所述见证节点对所述业务交易区块体进行随机见证; 0027 所述产块节点在所述业务交易区块体通过随机见证时, 获得与所述区块体对应的 业务交易区块; 0028 所述产块节点在本地的DAG结构中写入所述业务交易区块; 0029 所述见证。

21、节点在本地的DAG结构中备份所述业务交易区块。 0030 可选地, 所述产块节点在本地的DAG结构中写入所述业务交易区块, 包括: 0031 在本地的DAG结构中确定第一前驱区块; 所述第一前驱区块是所述产块节点生成 的上一个区块或者创世区块; 0032 在本地的DAG结构的多个末端区块中选择除所述第一前驱区块外的任意的末端区 块作为第二前驱区块; 0033 将所述业务交易区块与所述第一前驱区块和所述第二前驱区块分别连接; 0034 所述见证节点在本地的DAG结构中备份所述业务交易区块, 包括: 0035 在本地的DAG结构中确定第三前驱区块; 所述第三前驱区块是所述产块节点生成 的上一个区块。

22、或者创世区块; 0036 在本地的DAG结构的多个末端区块中选择除所述第三前驱区块外的任意的末端区 块作为第四前驱区块; 0037 将所述业务交易区块的备份区块与所述第三前驱区块和所述第四前驱区块分别 连接。 0038 可选地, 所述产块节点根据基于所述全局知识单链获得的全局知识, 在所述分布 式账本系统中确定见证节点, 包括: 说明书 2/15 页 6 CN 112116470 A 6 0039 所述委员会节点遍历所述全局知识单链中的所有区块, 获得全局知识, 并将所述 全局知识对应的全局知识区块广播给所述分布式账本系统中的所有节点; 所述全局知识包 括可用节点列表和随机种子; 0040 所。

23、述产块节点根据本地私钥和所述随机种子生成随机序列; 0041 所述产块节点基于所述随机序列, 在所述可用节点列表中确定见证节点。 0042 可选地, 创建DAG结构的账本后, 所述方法还包括: 0043 将所述DAG结构的账本名称和所述DAG结构的存储区域存储至本地存储系统; 0044 所述产块节点在本地的DAG结构中写入所述业务交易区块, 包括: 0045 根据存储数据的操作指令, 确定所述业务交易区块待写入的目标账本名称; 0046 根据所述哈希表和所述目标账本名称, 确定所述业务交易区块待写入的目标DAG 结构; 0047 在所述目标DAG结构写入所述业务交易区块。 0048 本申请实施。

24、例第二方面提供一种基于随机见证的图式账本创建装置, 应用于分布 式账本系统; 所述分布式账本系统包括委员会节点维护的全局知识单链, 以及所述委员会 节点和普通节点维护的DAG结构; 所述装置包括: 0049 创建账本请求模块, 用于使第一节点根据创建账本的操作指令, 生成创建账本请 求; 其中, 所述第一节点为所述分布式账本系统中的任意节点; 0050 创建账本请求广播模块, 用于使所述第一节点将所述创建账本请求广播给所述分 布式账本系统中的所有节点; 0051 创建账本请求验证模块, 用于使所述委员会节点对接收的所述创建账本请求进行 验证; 0052 创建账本区块生成模块, 用于使所述委员会。

25、节点在所述创建账本请求通过验证 时, 根据所述创建账本请求, 在所述全局知识单链中写入最新全局知识区块; 0053 全局知识区块广播模块, 用于使所述委员会节点将所述最新全局知识区块广播给 所述分布式账本系统中的所有节点; 0054 账本创建模块, 用于使所述分布式账本系统中的所有节点中的每个节点根据所述 最新全局知识区块, 创建DAG结构的账本。 0055 可选地, 所述装置还包括: 0056 创建账本请求签名模块, 用于使所述第一节点利用管理员私钥, 对所述创建账本 请求进行数字签名; 所述创建账本请求包括DAG结构的账本名称; 0057 所述创建账本请求验证模块包括: 0058 公钥获取。

26、子模块, 用于从所述全局知识单链的创世区块获取管理员公钥; 0059 数字签名验证子模块, 用于根据所述管理员公钥, 验证所述创建账本请求的数字 签名; 0060 账本列表获取子模块, 用于遍历所述全局知识单链, 获取账本列表; 0061 账本名称验证子模块, 用于基于所述DAG结构的账本名称, 在所述账本列表中对所 述创建账本请求进行同名账本验证; 0062 所述账本创建模块包括: 0063 创世区块创建子模块, 用于使所述分布式账本系统中的所有节点中的每个节点根 说明书 3/15 页 7 CN 112116470 A 7 据所述最新全局知识区块, 在本地创建所述DAG结构的创世区块; 所述。

27、创世区块包括所述 DAG结构的账本名称。 0064 可选地, 所述装置还包括: 0065 产块节点确定模块, 用于将所述分布式账本系统中达到预设的产块条件的任意节 点, 确定为产块节点; 0066 业务交易区块生成模块, 用于使所述产块节点打包收集的交易集, 得到业务交易 区块体; 0067 见证节点确定模块, 用于使所述产块节点根据基于所述全局知识单链获得的全局 知识, 在所述分布式账本系统中确定见证节点; 0068 见证见证模块, 用于使所述产块节点和所述见证节点对所述业务交易区块体进行 随机见证; 0069 业务交易区块获得模块, 用于使所述产块节点在所述业务交易区块体通过随机见 证时,。

28、 获得与所述区块体对应的业务交易区块; 0070 账本数据写入模块, 用于使所述产块节点在本地的DAG结构中写入所述业务交易 区块; 0071 账本数据备份模块, 用于使所述见证节点在本地的DAG结构中备份所述业务交易 区块。 0072 可选地, 所述账本数据写入模块包括: 0073 第一前驱区块确定子模块, 用于在本地的DAG结构中确定第一前驱区块; 所述第一 前驱区块是所述产块节点生成的上一个区块或者创世区块; 0074 第二前驱区块确定子模块, 用于在本地的DAG结构的多个末端区块中选择除所述 第一前驱区块外的任意的末端区块作为第二前驱区块; 0075 账本数据写入子模块, 用于将所述业。

29、务交易区块与所述第一前驱区块和所述第二 前驱区块分别连接; 0076 所述账本数据备份模块包括: 0077 第三前驱区块确定子模块, 用于在本地的DAG结构中确定第三前驱区块; 所述第三 前驱区块是所述产块节点生成的上一个区块或者创世区块; 0078 第四前驱区块确定子模块, 用于在本地的DAG结构的多个末端区块中选择除所述 第三前驱区块外的任意的末端区块作为第四前驱区块; 0079 账本数据备份子模块, 用于将所述业务交易区块的备份区块与所述第三前驱区块 和所述第四前驱区块分别连接。 0080 本申请实施例第三方面提供一种可读存储介质, 其上存储有计算机程序, 该计算 机程序被处理器执行时,。

30、 实现如本申请第一方面所述的方法中的步骤。 0081 本申请实施例第四方面提供一种电子设备, 包括存储器、 处理器及存储在存储器 上并可在处理器上运行的计算机程序, 所述处理器执行所述计算机程序时, 实现本申请第 一方面所述的方法的步骤。 0082 本申请通过委员会节点验证账本创建请求, 委员会节点是通过选举得到的可信赖 的多个节点, 保证节点创建的每一个DAG结构的图式账本都是可靠的。 委员会节点还负责节 点的授权、 注册、 注销等维护, 并基于维护节点的信息生成全局知识区块, 采用状态机复制 说明书 4/15 页 8 CN 112116470 A 8 的见证机制, 全部的委员会节点对产生的。

31、所有全局知识区块进行见证、 备份, 共同维护全局 知识单链, 保证了全局知识的可靠性。 分布式账本的产块节点基于安全可靠的全局知识中 的随机种子和本地的私钥, 选择对产生的新区块进行见证的见证节点, 防止恶意节点对新 区块的恶意见证, 保证了对新区块进行验证的节点的安全性, 产块节点和见证节点将新区 块写入本地的DAG结构, 以使同一时间分布式账本系统可以有多个区块同时写入账本, 保证 了分布式账本系统的写入速率, 同时DAG结构是随机见证的, 每个节点不必备份全部的交易 数据, 所以分布式账本是可扩展的。 因此, 基于随机见证的图式账本创建方法, 在安全可靠 的DAG结构的图式账本中写入安全。

32、可靠的业务交易区块, 既能保证分布式账本中记录交易 数据的图式账本是可扩展的, 写入速率高, 又能保证图式账本中生成的区块进过了安全可 靠的随机见证, 保证写入图式账本的区块的难以篡改性, 适用于大数据存证服务场景。 附图说明 0083 为了更清楚地说明本申请实施例的技术方案, 下面将对本申请实施例的描述中所 需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本申请的一些实施 例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可以根据这些附图 获得其他的附图。 0084 图1是本申请实施例提出的基于随机见证的图式账本创建方法的步骤流程图; 0085 图2是本。

33、申请实施例中节点的结构示意图; 0086 图3是本申请实施例中委员会节点根据创建账本请求生成最新全局知识区块的流 程图; 0087 图4本申请实施例将新区块写入DAG结构的示意图; 0088 图5是本申请实施例提出的基于随机见证的图式账本创建装置的示意图。 具体实施方式 0089 下面将结合本申请实施例中的附图, 对本申请实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例是本申请的一部分实施例, 而不是全部的实施例。 基于本 申请中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实 施例, 都属于本申请保护的范围。 0090 大数据存证服务场景的特点:。

34、 0091 大数据环境中数据总量多、 数据类型多、 生成速度极快, 因此在大数据环境下的分 布式账本应具备: 高吞吐率和可拓展性。 数据存证指的是将电子数据以备份的形式存放在 服务器, 换言之利用分布式账本维护一个线性增长的日志, 因此, 进行数据存证的分布式账 本应具备: 安全性和抗抵赖、 抗篡改的特性。 0092 以比特币为代表的基于状态机复制的分布式账本, 即系统中的所有节点都会对系 统生成的每个区块进行验证和存储的分布式账本, 能够确保分布式账本的数据一致, 实现 分布式账本防篡改、 防抵赖、 防伪造的功能, 但由于系统的每个节点都会对系统生成的每个 区块进行验证和存储, 导致了分布式。

35、账本节点数量与整个分布式账本的存储总量无关, 只 有分别增加系统中每个节点的存储空间, 才能扩展分布式账本整体的存储空间, 换言之简 单的增加分布式账本系统的节点数量, 不仅不能增加分布式账本整体的存储空间, 还会因 说明书 5/15 页 9 CN 112116470 A 9 为网络延迟, 造成吞吐率的瓶颈。 而大数据环境的数据总量多、 数据类型多、 生成速度快, 很 难由单一节点完整存储, 因此, 即使基于状态机复制的分布式账本具有防篡改、 防抵赖等特 性, 也不适用于大数据存证服务场景。 0093 应用于分布式账本系统; 所述分布式账本系统包括委员会节点维护的全局知识单 链, 以及所述委员。

36、会节点和普通节点维护的DAG结构; 0094 委员会节点维护全局知识单链指的是, 委员会节点生成的区块在通过全部委员会 节点的验证后, 写入全局知识单链。 委员会节点和普通节点维护的DAG结构指的是, 委员会 节点和普通节点都能够将采集的交易数据(存证数据)打包, 生成交易数据区块, 在交易数 据区块通过随机见证后, 写入DAG结构的图式账本。 0095 鉴于上述问题, 本申请的分布式账本使用DAG结构对交易数据(存证数据)进行存 储, 特别地, 本申请根据分布式账本中新节点注册、 新节点加入参与随机见证的节点集合、 节点的注销、 节点移除参与随机见证的节点集合等信息, 生成全局知识单链。 由。

37、于上述新节 点注册、 新节点加入参与随机见证的节点集合、 节点的注销、 节点移除参与随机见证的节点 集合都会通过委员会节点的验证, 所有的委员还会根据验证结果, 生成相应的区块, 以共同 维护一条全局知识单链, 所以全局知识单链中的区块数据难以篡改, 进而全局知识单链的 区块中记录的上述节点的管理信息数据是安全可靠的, 保证了分布式账本系统中的所有节 点都是通过授权, 是合法的节点。 利用本申请实施例提出的安全的节点对生成的区块进行 随机见证, 完成DAG结构的并行产块, 在提高图式账本存储交易数据的吞吐率的同时, 为数 据安全提供了基础。 0096 本申请的分布式账本基于通过授权的安全可靠的。

38、节点, 创建DAG结构的具体步骤 如下: 0097 如图1所示, 图1是本申请实施例提出的基于随机见证的图式账本创建方法的步骤 流程图。 0098 步骤S101: 第一节点根据创建账本的操作指令, 生成创建账本请求; 其中, 所述第 一节点为所述分布式账本系统中的任意节点; 0099 委员会节点是在分布式账本系统中选择的任意节点, 具体可以基于密码学的抽签 算法确定委员会节点, 也可以在部署分布式账本系统的节点的各个机构选择任意节点, 再 将各个机构选择的任意节点组合, 得到委员会节点。 普通节点是分布式账本系统中除委员 会节点外的其他节点。 0100 第一节点是接收到用户输入的创建账本的操作。

39、的节点。 0101 用户可以在任意节点执行创建账本的操作, 接收到创建账本的操作的节点生成相 应的创建账本请求。 0102 具体地, 创建账本的操作包括输入待创建的账本的名称, 输入管理员私钥, 输入管 理员私钥包括但不限于插入私钥U盾等操作。 0103 所述第一节点利用管理员私钥, 对所述创建账本请求进行数字签名; 所述创建账 本请求包括DAG结构的账本名称; 0104 在生成创建账本请求后, 第一节点还会利用管理员私钥对创建账本进行数字签 名。 0105 本申请所指的节点是: 多个可信赖的机构的每个机构设置的多个部署了分布式账 说明书 6/15 页 10 CN 112116470 A 10。

40、 本的计算机服务器, 并对每个节点设置可以唯一标识节点的节点ID。 0106 如图2所示, 图2是本申请实施例中节点的结构示意图。 各个节点在分布式账本中 是对等的, 借助P2P网络进行多种方式的通信。 节点由应用层、 协议层、 数据层和网络层组 成。 应用层用于分布式账本系统对外提供服务, 例如在业务系统工作时采集存证数据并向 账本(DAG结构)写入存证数据、 提供检索服务, 以在分布式账本中检索得到用户需求的存证 数据等。 协议层用于存储分布式账本系统的共识协议、 节点授权等。 数据层用于存储DAG结 构的图式账本、 全局知识单链等账本数据、 节点实名认证的凭证(凭证)、 P2P组网所需凭。

41、证 (凭证)、 节点注册的数字签名和节点的公钥私钥(凭证)等。 网络层用于负责节点之间的通 信, 存储P2P网络通信协议、 提供节点路由、 节点发现、 点对点通信、 广播或组播等功能。 0107 节点实名认证的凭证是指证明节点由可信赖的机构部署的计算机服务器的凭证。 0108 步骤S102: 所述第一节点将所述创建账本请求广播给所述分布式账本系统中的所 有节点; 0109 创建账本请求是第一节点生成的请求委员会节点对待创建的账本进行验证的消 息, 具体可以通过第一节点网络层的P2P网络实现创建账本请求的广播。 0110 普通节点和委员会节点都会收到节点注册请求, 普通节点可以继续广播普通节 点。

42、, 委员会节点则对接收的节点注册请求进行验证。 0111 步骤S103: 所述委员会节点对接收的所述创建账本请求进行验证; 0112 步骤S104: 所述委员会节点在所述创建账本请求通过验证时, 根据所述创建账本 请求, 在所述全局知识单链中写入最新全局知识区块; 0113 所有的委员会节点收到创建账本请求都会进行验证, 并对验证结果签名, 将具有 签名的验证结果发送给本轮产生全局知识单链中的新区块的提案节点, 提案节点接收到所 有委员会返回的验证结果后, 识别验证结果是否具有签名, 在所有验证结果都具有签名并 且验证结果都是通过验证时, 提案节点打包待创建账本请求中的数据, 生成最新全局知识。

43、 区块(全局知识单链中的新区块)。 分布式账本系统基于pBFT(Practical Byzantine Fault Tolerance)共识算法在委员会节点中选举出提案节点, 提案节点是产生全局知识单链的当 前区块的节点。 即, 每一轮产生新的全局知识区块, 都会在委员会节点中选择任意的节点作 为全局知识单链的产块节点(提案节点), 由提案节点生成最新的全局知识区块, 其他委员 会节点对最新的全局知识区块见证, 并在本地备份最新的全局知识区块。 0114 如图3所示, 图3是本申请实施例中委员会节点根据创建账本请求生成最新全局知 识区块的流程图。 图3中创建账本请求的内容表示的是创世区块中存储。

44、的部分信息。 委员会 节点从全局知识单链的创世区块获取管理员公钥, 基于公钥验证创建账本请求, 在创建账 本请求通过验证时, 生成最新全局知识区块, 最新全局知识区块的区块体中记录的是待创 建账本的基本信息, 委员会节点一方面将生成的新全局知识区块连接到全局知识单链中, 另一方面将新全局知识区块广播给分布式账本中的所有节点。 由此可见, 节点是基于经过 验证的账本创建操作, 在本地创建新的DAG结构, 保证了节点具有的DAG结构都是安全的。 0115 具体地, 委员会节点验证创建账本请求的步骤如下: 0116 步骤S103-1: 从所述全局知识单链的创世区块获取管理员公钥; 0117 管理员公。

45、钥在分布式账本系统初始化时, 写入全局知识单链的创世区块。 账本(全 局知识单链)中第一个被构造的区块成为该账本的创世区块。 说明书 7/15 页 11 CN 112116470 A 11 0118 步骤S103-2: 根据所述管理员公钥, 验证所述创建账本请求的数字签名; 0119 发起用户在第一节点利用管理员私钥, 计算创建账本请求的加密哈希值, 将创建 账本请求的加密哈希值发送给其他委员会节点, 其他委员会节点利用获取的管理员公钥计 算创建账本请求的解密哈希值, 检查加密哈希值和解密哈希值是否相等, 在加密哈希值和 解密哈希值相等时, 创建账本请求的数字签名通过验证。 0120 步骤S1。

46、03-3: 遍历所述全局知识单链, 获取账本列表; 0121 具体地, 分布式账本系统将节点现有的DAG结构产块的间隔时间设置为委员会节 点获取账本列表的更新周期; 每隔更新周期, 获取全局知识单链的每个区块记载的账本创 建信息; 叠加获取的多个账本创建信息, 获得账本列表。 0122 账本列表可以与可用节点列表、 随机种共同组成全局知识。 0123 可用节点列表是遍历全局知识单链中记录新节点注册、 新节点加入参与随机见证 的节点集合、 节点的注销、 节点移除参与随机见证的节点集合的信息的区块得到的。 0124 委员机会节点可以采用全局知识单链中的任意区块的哈希值作为随机种子。 0125 步骤。

47、S103-4: 基于所述DAG结构的账本名称, 在所述账本列表中对所述创建账本请 求进行同名账本验证; 0126 检查是否存在重名账本能防止重名的DAG造成冲突。 0127 步骤S105: 所述委员会节点将所述最新全局知识区块广播给所述分布式账本系统 中的普通节点; 0128 委员会节点本身就具有最新全局知识区块(生成或者验证时存储在本地的)。 0129 步骤S106: 所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知 识区块, 创建DAG结构的账本。 0130 所述分布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块, 创 建DAG结构的账本, 包括: 0131 所述分。

48、布式账本系统中的所有节点中的每个节点根据所述最新全局知识区块, 在 本地创建所述DAG结构的创世区块; 所述创世区块包括所述DAG结构的账本名称。 0132 在本地的数据层的数据库中创建DAG结构的创世区块是构成DAG结构的图式账本 的基础。 分布式账本中的节点可以共同维护多个DAG结构的图式账本。 DAG结构的创世区块 记录有该DAG结构的图式账本的账本名称, 在生成第二个关于该账本的交易数据的区块时, 可以将第二区块连接创世区块, 以此依次连接后续生成的区块, 形成DAG结构的图式账本。 0133 本申请还会将账本名称和账本的存储地址以键值对的形式存储在分布式哈希表, 分布式哈希表也可以在。

49、本地节点的数据层设置。 以使交易生成的产块节点在生成相应的区 块后, 可以根据账本名称, 在分布式哈希表中匹配得到目标DAG结构的图式账本, 进而将生 成的区块连接在目标DAG结构的图式账本中。 0134 将所述DAG结构的账本名称和所述DAG结构的存储区域存储至本地存储系统; 所述 产块节点在本地的DAG结构中写入所述业务交易区块, 包括: 0135 根据存储数据的操作指令, 确定所述业务交易区块待写入的目标账本名称; 0136 本地存储系统指的是基于Key-Value的存储系统。 0137 例如, 在多个金融机构维护的分布式账本系统中, 交易数据可以是存款数据, 也可 以是转账数据或基金数。

50、据。 节点根据业务类型分别建立存款图式账本、 转账图式账本和基 说明书 8/15 页 12 CN 112116470 A 12 金图式账本, 节点在采集的转账数据达到预设的阈值后, 将转账数据打包生成新的业务交 易区块, 在分布式哈希表中, 确定转账图式账本的目标DAG结构, 在目标DAG结构中选择新的 业务交易区块的前驱区块, 连接新的业务交易区块和前驱区块。 其中存款图式账本、 转账图 式账本和基金图式账本等账本名称, 以及账本名称对应的账本的存储区域的信息可以存储 至本地存储系统。 在分布式账本系统的节点对存款数据生成业务交易区块时, 可以根据本 地存储系统的账本名称和存储区域确定正确的。

展开阅读全文
内容关键字: 基于 随机 见证 图式 账本 创建 方法 装置
关于本文
本文标题:基于随机见证的图式账本创建方法和装置.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10148910.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1 
 


收起
展开