全网唯一标准王
(19)国家知识产权局 (12)发明 专利 (10)授权公告 号 (45)授权公告日 (21)申请 号 202111638682.5 (22)申请日 2021.12.3 0 (65)同一申请的已公布的文献号 申请公布号 CN 114003972 A (43)申请公布日 2022.02.01 (73)专利权人 北京连琪科技有限公司 地址 100085 北京市海淀区上地四街1号25 号楼9单元1层112 (72)发明人 陈胜 蒋步云  (74)专利代理 机构 北京律和信知识产权代理事 务所(普通 合伙) 11446 专利代理师 项荣 刘兴 (51)Int.Cl. G06F 21/64(2013.01) G06F 21/60(2013.01)G06F 16/22(2019.01) G06F 16/27(2019.01) H04L 9/06(2006.01) H04L 9/32(2006.01) 审查员 丁蓬莉 (54)发明名称 生成区块状态承诺和证明及验证区块状态 证明的方法 (57)摘要 本申请提供一种生成区块状态承诺和证明 及验证区块状态证明的方法, 包括: 每次在区块 中写入状态时, 记录写入状态的版本; 将所述写 入状态的状态名和所述版本输入全局过滤器, 得 到过滤器结果, 并在所述区块中记录所述过滤器 结果作为不存在性承诺; 对所述区块所有写入状 态的状态名和复合状态值进行计算, 将计算结果 作为存在性承诺; 在区块中记录所述存在性承 诺; 其中, 所述区块包含全部区块的所有非过期 写入状态的不存在性承诺。 通过以区块为单位组 织状态树, 状态树的规模小, 结合写入状态的过 期机制, 在全局状态规模巨大但活跃状态规模有 限的场景下, 极大降低了计算状态存在性证明的 代价, 缩短了 状态证明数据的长度。 权利要求书6页 说明书21页 附图12页 CN 114003972 B 2022.06.10 CN 114003972 B 1.一种生成区块状态承诺的方法, 其特 征在于, 包括: 每次在区块中写入状态时, 记录写入状态的版本; 将所述写入状态 的状态名和所述版本输入全局过滤器, 得到过滤器结果, 并在所述区 块中记录所述过 滤器结果作为 不存在性承诺; 对所述写入状态的原始值、 状态的当前版本、 所在区块高度进行编码, 生成复合状态 值; 对所述区块所有写入状态的状态名和复合状态值进行计算, 将计算结果作为存在性承 诺; 在区块中记录所述存在性承诺; 其中, 所述区块包 含全部区块的所有非过期写入状态的不存在性承诺; 其中, 在所述区块中记录所述过 滤器结果作为 不存在性承诺, 包括: 获取所述区块的写入状态集 合; 根据写入状态的版本命名规则和上一版本, 获取写入状态的当前 版本; 对写入状态的状态名和当前 版本进行编码, 生成复合状态名; 将每个写入状态 的所述复合状态名输入全局过滤器, 进行过滤器计算, 得到过滤器结 果, 作为不存在性承诺; 其中, 所述获取写入状态的当前 版本, 包括以下操作: 操作1: 根据所述状态的当前 版本和所述版本命名规则, 获取状态的下一版本; 操作2: 根据写入状态的状态名和下一版本进行编码, 生成下一版本的复合状态名; 操作3: 对所述下一版本的复合状态名进行独立过滤器计算, 将计算结果与所述不存在 性承诺进行比对, 判断下一版本的复合状态名是否已存在; 操作4: 如果是, 写入状态的当前 版本切换到下一版本; 重复操作1 ‑4, 直至获得 所述区块的所有 写入状态的当前 版本。 2.根据权利要求1所述的方法, 其特征在于, 所述在所述 区块中记录所述过滤器结果作 为不存在性承诺, 还 包括: 依据当前区块高度, 对输入的复合状态名建立区块高度 ‑复合状态名索引。 3.根据权利要求1所述的方法, 其特 征在于, 还 包括: 从全局过滤器删除写入状态的最后写入版本的复合状态名, 更新区块高度 ‑复合状态 名索引; 如果写入状态 的版本是初始版本, 或者写入的状态是过期状态, 将全局过滤器的元素 总数加1; 如果全局过滤器的元素总数超出预设上限, 按照区块高度 ‑复合状态名索引, 从全局过 滤器中删除1个最 早写入的复合状态名, 并更新区块高度 ‑复合状态名索引; 如果删除之后该区块高度对应的状态列表不为空, 记录该状态所在的区块高度为过期 区块高度, 否则增加区块高度, 直到找到一个对应的状态列 表不为空的区块高度, 记录该区 块高度为过期区块高度。 4.根据权利要求3所述的方法, 其特征在于, 所述独立过滤器和所述全局过滤器包括: 支持元素移除的布谷鸟过 滤器。 5.根据权利要求1所述的方法, 其特 征在于, 所述在区块中记录所述存在性承诺, 包括:权 利 要 求 书 1/6 页 2 CN 114003972 B 2获取所述区块的写入状态集 合; 对所述区块所有写入状态, 将状态名和复合状态值作为键值对写入区块链的状态数据 库; 对所述区块所有写入状态, 依据状态名和复合状态值建立状态树, 并计算状态树树根 作为所有 写入状态的存在性承诺。 6.根据权利要求5所述的方法, 其特 征在于, 所述建立状态树包括: 通过梅克尔树或沃克尔树计算得到状态树。 7.根据权利要求1所述的方法, 其特征在于, 所述存在性承诺采用梅克尔 树根或沃克尔 树根表示。 8.一种生成区块状态证明的方法, 其特 征在于, 包括: 获取状态名; 获取状态的最 新版本; 获取状态的后续版本在全局的不存在性承诺; 基于状态 的最新版本, 以及状态的后续版本在全局的不存在性承诺, 证明状态在全局 中的时效性; 所述证明状态在全局中的时效性, 包括: 根据指定的状态名, 获取最后一次写入该状态的区块头; 获取最新高度的区块头; 获取最后一次写入该状态的区块对应的状态树; 获取最后一次写入该状态的区块头中的存在性承诺; 根据指定的状态名及所述状态树, 计算得到指定的状态名在所述状态树中的梅克尔路 径或沃克尔路径作为状态的存在性证明; 依据所述状态名和状态的版本命名规则, 计算状态的后续版本的复合状态名; 对所述复合状态名进行独立过滤器计算, 并与最新高度的区块头 中包含的状态的不存 在性承诺比对, 得到比对结果; 根据所述状态的存在性证明和所述比对结果, 生成状态证明。 9.根据权利要求8所述的方法, 其特征在于, 所述获取最后 一次写入该状态的区块头包 括: 根据指定的状态名, 从键值数据库读取复合状态值; 解码复合状态值, 得到状态的原 始值、 状态的当前 版本、 所在区块高度; 根据所在区块高度, 获取最后一次写入该状态的区块头 。 10.根据权利要求8所述的方法, 其特征在于, 所述根据所述状态的存在性证明和所述 比对结果, 生成状态证明包括: 判断如果最后一次写入状态的区块高度不大于过期区块高度, 则状态过期, 调用状态 更新合约, 将状态的当前 版本切换到下一版本作为状态的新版本; 如果状态未 过期, 则判断状态的后续版本的复合状态名是否被误判为已存在; 如果有误判, 调用状态更新 合约, 将状态的当前 版本切换到下一版本; 根据包含状态更新的新出区块的区块头、 状态名、 新复合状态值, 生成状态证明; 如果未发现误判或状态过期, 根据状态名、 复合状态值、 最后一次写入该状态的区块权 利 要 求 书 2/6 页 3 CN 114003972 B 3

.PDF文档 专利 生成区块状态承诺和证明及验证区块状态证明的方法

文档预览
中文文档 40 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共40页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 生成区块状态承诺和证明及验证区块状态证明的方法 第 1 页 专利 生成区块状态承诺和证明及验证区块状态证明的方法 第 2 页 专利 生成区块状态承诺和证明及验证区块状态证明的方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-19 04:15:59上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。