智能合约的白名单验证方法、装置、电子设备及存储介质与流程
- 国知局
- 2024-10-09 14:40:57
本申请涉及计算机,尤其涉及一种智能合约的白名单验证方法、装置、电子设备及存储介质。
背景技术:
1、随着区块链技术的发展,智能合约在金融、供应链管理等领域得到了广泛应用。智能合约通过自动执行预设的合约条款,实现了交易的透明和不可篡改。在这些应用场景中,通常需要限定特定用户才能执行某些业务逻辑,这就需要白名单机制来控制用户权限。
2、目前,智能合约中的白名单机制主要有以下两种实现方式:
3、第一种方式,利用链下的中心化数据库:
4、在这种方式中,白名单信息存储在链下的中心化数据库中,用户尝试执行智能合约时,系统会查询该数据库以验证用户是否在白名单内。中心化数据库存在重放攻击的风险,即攻击者可以捕获并重复发送合法的请求,导致系统重复执行操作。中心化数据库的使用降低了系统的透明性,因为白名单数据不在区块链上公开,依赖于单一的可信实体,增加了信任成本。
5、第二种方式,利用智能合约的mapping存储结构:
6、在这种方式中,白名单信息直接存储在智能合约的mapping结构中,用户执行智能合约时,智能合约会读取mapping结构以验证用户权限。mapping结构的存储和读写成本较高,特别是在白名单规模较大时,这会导致区块链资源的高消耗和较高的交易费用。
技术实现思路
1、有鉴于此,本申请实施例提供了一种智能合约的白名单验证方法、装置、电子设备及存储介质,以解决现有技术存在的中心化信任成本及读写成本高,系统安全性和透明性低的问题。
2、本申请实施例的第一方面,提供了一种智能合约的白名单验证方法,包括:获取公钥白名单,以得到公钥列表;对公钥列表内的元素进行排序,并根据公钥列表内的元素数量,对公钥列表进行处理,得到有序公钥列表;对有序公钥列表中的每对公钥进行哈希运算,生成相应的哈希值,递归对上一层生成的哈希值进行组合哈希运算,直到得到根哈希值,将根哈希值存储在智能合约的状态中;确定公钥在二叉树中的兄弟节点和父节点,并递归确定各层级中的兄弟节点,以构建验证路径;对公钥进行哈希运算,并利用验证路径逐级计算组合哈希值,直至得到最终哈希值,将最终哈希值与根哈希值进行比对,若相等则验证通过,否则验证失败;响应于用户调用智能合约的操作,获取用户对应公钥的验证路径,并将验证路径作为参数传入,并在需要验证白名单的业务方法前调用验证方法,若验证通过则继续执行业务逻辑,否则终止执行。
3、本申请实施例的第二方面,提供了一种智能合约的白名单验证装置,包括:获取模块,被配置为获取公钥白名单,以得到公钥列表;处理模块,被配置为对公钥列表内的元素进行排序,并根据公钥列表内的元素数量,对公钥列表进行处理,得到有序公钥列表;运算模块,被配置为对有序公钥列表中的每对公钥进行哈希运算,生成相应的哈希值,递归对上一层生成的哈希值进行组合哈希运算,直到得到根哈希值,将根哈希值存储在智能合约的状态中;构建模块,被配置为确定公钥在二叉树中的兄弟节点和父节点,并递归确定各层级中的兄弟节点,以构建验证路径;比对模块,被配置为对公钥进行哈希运算,并利用验证路径逐级计算组合哈希值,直至得到最终哈希值,将最终哈希值与根哈希值进行比对,若相等则验证通过,否则验证失败;验证模块,被配置为响应于用户调用智能合约的操作,获取用户对应公钥的验证路径,并将验证路径作为参数传入,并在需要验证白名单的业务方法前调用验证方法,若验证通过则继续执行业务逻辑,否则终止执行。
4、本申请实施例的第三方面,提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。
5、本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
6、本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
7、通过获取公钥白名单,以得到公钥列表;对公钥列表内的元素进行排序,并根据公钥列表内的元素数量,对公钥列表进行处理,得到有序公钥列表;对有序公钥列表中的每对公钥进行哈希运算,生成相应的哈希值,递归对上一层生成的哈希值进行组合哈希运算,直到得到根哈希值,将根哈希值存储在智能合约的状态中;确定公钥在二叉树中的兄弟节点和父节点,并递归确定各层级中的兄弟节点,以构建验证路径;对公钥进行哈希运算,并利用验证路径逐级计算组合哈希值,直至得到最终哈希值,将最终哈希值与根哈希值进行比对,若相等则验证通过,否则验证失败;响应于用户调用智能合约的操作,获取用户对应公钥的验证路径,并将验证路径作为参数传入,并在需要验证白名单的业务方法前调用验证方法,若验证通过则继续执行业务逻辑,否则终止执行。本申请降低中心化信任成本及读写成本,提高系统的安全性和透明性。
技术特征:1.一种智能合约的白名单验证方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述获取公钥白名单,以得到公钥列表,包括:
3.根据权利要求1所述的方法,其特征在于,所述对所述公钥列表内的元素进行排序,并根据所述公钥列表内的元素数量,对所述公钥列表进行处理,得到有序公钥列表,包括:
4.根据权利要求1所述的方法,其特征在于,所述对所述有序公钥列表中的每对公钥进行哈希运算,生成相应的哈希值,递归对上一层生成的哈希值进行组合哈希运算,直到得到根哈希值,包括:
5.根据权利要求1所述的方法,其特征在于,所述确定公钥在二叉树中的兄弟节点和父节点,并递归确定各层级中的兄弟节点,以构建验证路径,包括:
6.根据权利要求1所述的方法,其特征在于,所述对所述公钥进行哈希运算,并利用所述验证路径逐级计算组合哈希值,直至得到最终哈希值,将所述最终哈希值与所述根哈希值进行比对,若相等则验证通过,否则验证失败,包括:
7.根据权利要求6所述的方法,其特征在于,所述响应于用户调用智能合约的操作,获取所述用户对应公钥的验证路径,并将所述验证路径作为参数传入,并在需要验证白名单的业务方法前调用验证方法,若验证通过则继续执行业务逻辑,否则终止执行,包括:
8.一种智能合约的白名单验证装置,其特征在于,包括:
9.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
技术总结本申请提供一种智能合约的白名单验证方法、装置、电子设备及存储介质。该方法包括:获取公钥白名单,以得到公钥列表,对公钥列表内的元素进行排序,并对公钥列表进行处理,得到有序公钥列表;对有序公钥列表中的每对公钥进行哈希运算,生成哈希值,递归对上一层生成的哈希值进行组合哈希运算,直到得到根哈希值;确定公钥在二叉树中的兄弟节点和父节点,并递归确定各层级中的兄弟节点,以构建验证路径;对公钥进行哈希运算,并利用验证路径逐级计算组合哈希值,直至得到最终哈希值,将最终哈希值与根哈希值进行比对;将验证路径作为参数传入,并调用验证方法。本申请降低中心化信任成本及读写成本,提高系统的安全性和透明性。技术研发人员:何快洛受保护的技术使用者:重庆赛力斯凤凰智创科技有限公司技术研发日:技术公布日:2024/9/29本文地址:https://www.jishuxx.com/zhuanli/20241009/306093.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表