System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 智能合约的白名单验证方法、装置、电子设备及存储介质制造方法及图纸_技高网

智能合约的白名单验证方法、装置、电子设备及存储介质制造方法及图纸

技术编号:42904775 阅读:1 留言:0更新日期:2024-09-30 15:21
本申请提供一种智能合约的白名单验证方法、装置、电子设备及存储介质。该方法包括:获取公钥白名单,以得到公钥列表,对公钥列表内的元素进行排序,并对公钥列表进行处理,得到有序公钥列表;对有序公钥列表中的每对公钥进行哈希运算,生成哈希值,递归对上一层生成的哈希值进行组合哈希运算,直到得到根哈希值;确定公钥在二叉树中的兄弟节点和父节点,并递归确定各层级中的兄弟节点,以构建验证路径;对公钥进行哈希运算,并利用验证路径逐级计算组合哈希值,直至得到最终哈希值,将最终哈希值与根哈希值进行比对;将验证路径作为参数传入,并调用验证方法。本申请降低中心化信任成本及读写成本,提高系统的安全性和透明性。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种智能合约的白名单验证方法、装置、电子设备及存储介质


技术介绍

1、随着区块链技术的发展,智能合约在金融、供应链管理等领域得到了广泛应用。智能合约通过自动执行预设的合约条款,实现了交易的透明和不可篡改。在这些应用场景中,通常需要限定特定用户才能执行某些业务逻辑,这就需要白名单机制来控制用户权限。

2、目前,智能合约中的白名单机制主要有以下两种实现方式:

3、第一种方式,利用链下的中心化数据库:

4、在这种方式中,白名单信息存储在链下的中心化数据库中,用户尝试执行智能合约时,系统会查询该数据库以验证用户是否在白名单内。中心化数据库存在重放攻击的风险,即攻击者可以捕获并重复发送合法的请求,导致系统重复执行操作。中心化数据库的使用降低了系统的透明性,因为白名单数据不在区块链上公开,依赖于单一的可信实体,增加了信任成本。

5、第二种方式,利用智能合约的mapping存储结构:

6、在这种方式中,白名单信息直接存储在智能合约的mapping结构中,用户执行智能合约时,智能合约会读取mapping结构以验证用户权限。mapping结构的存储和读写成本较高,特别是在白名单规模较大时,这会导致区块链资源的高消耗和较高的交易费用。


技术实现思路

1、有鉴于此,本申请实施例提供了一种智能合约的白名单验证方法、装置、电子设备及存储介质,以解决现有技术存在的中心化信任成本及读写成本高,系统安全性和透明性低的问题。p>

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中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种智能合约的白名单验证方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述获取公钥白名单,以得到公钥列表,包括:

3.根据权利要求1所述的方法,其特征在于,所述对所述公钥列表内的元素进行排序,并根据所述公钥列表内的元素数量,对所述公钥列表进行处理,得到有序公钥列表,包括:

4.根据权利要求1所述的方法,其特征在于,所述对所述有序公钥列表中的每对公钥进行哈希运算,生成相应的哈希值,递归对上一层生成的哈希值进行组合哈希运算,直到得到根哈希值,包括:

5.根据权利要求1所述的方法,其特征在于,所述确定公钥在二叉树中的兄弟节点和父节点,并递归确定各层级中的兄弟节点,以构建验证路径,包括:

6.根据权利要求1所述的方法,其特征在于,所述对所述公钥进行哈希运算,并利用所述验证路径逐级计算组...

【专利技术属性】
技术研发人员:何快洛
申请(专利权)人:重庆赛力斯凤凰智创科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1