主页 > imtoken官网版 > 一种基于变色龙哈希函数的权限链构建与控制方法及过程

一种基于变色龙哈希函数的权限链构建与控制方法及过程

imtoken官网版 2023-11-06 05:11:43

本发明涉及网络安全

技术领域:

:,具体涉及一种基于变色龙哈希函数的权限链构建和控制方法。

背景技术:

:区块链的概念于2008年首次正式提出,可用于在去中心化环境下实现公共账本和不可更改的交易记录。 从技术上讲,区块链通常分为非许可链和许可链。 免许可链,又称公有链,是指以比特币为代表的完全去中心化的环境,任何节点都可以参与对区块的审计和验证。 许可链包括联盟链和私有链,是指只授权一部分验证节点参与审计区块的验证,具有部分去中心化的特点。 目前大部分商业应用还是基于许可链。 以金融行业为例,链上任何一个参与节点的身份都是已知的(比如对应于某个金融机构)。 这是因为银行拒绝与任何未经授权的方进行交易。 因此,一条对任何节点都开放的公链显然不能满足金融服务的需求。 从法律角度看,以比特币为代表的虚拟货币和区块链系统,在赋予每个节点公平性、匿名性和不可篡改性的同时,也形成了法律无法监管的灰色地带,滋生了恐怖、犯罪和破坏。金融秩序不能容忍。 因此,迫切需要一种允许区块链在合理范围内修改非法内容或错误交易信息的机制。 此外,该机制必须高效可行,而不是以区块链分叉为代价,例如著名的以太坊 dao 事件。 为了高效实现区块链区块的可修改内容,我们需要使用变色龙哈希函数(chameleonhash)。

2016年,ateniese等人在《redactableblokchain》一文中提出了基于变色龙哈希函数的可编辑区块链技术。 但是,这种方法远没有实用性,因为这种方法只是提出了编辑区块的思想,很多关键问题都没有解决,包括:(1)如何构建区块链; (2)如何编辑区块的交易记录; (3)如何定义区块链的编辑策略或逻辑; (4) 使用哪种共识算法等等。 技术实现要点: 本发明的目的在于解决许可链中的非法内容或错误交易信息无法修改,无法监管导致犯罪,破坏金融秩序的问题。 希腊函数的权限链构造与控制方法。 本发明采用的技术方案如下:一种基于变色龙哈希函数的权限链构建与控制方法,包括以下步骤: 步骤1、定义链管控机制,根据链条初始化权限链。管理机制; Step 2. 添加到权限链 添加新区块; Step 3. 根据链控机制对权限链中的区块进行监管,对不符合链控机制的区块进行控制。 进一步地,链控机制包括区块格式和区块控制条件,其中,区块格式包括区块头和区块体,区块头包括版本号version、哈希值pre-hash、随机数nonce、工作量证明难度值复数,时间戳时间戳,默克尔哈希树根节点root,变色龙随机数r,变色哈希值g; 区块体包括由多个交易记录集合tran-set组成的交易记录。

进一步地,块控制条件是区分正常块和异常块的标准,满足块控制条件中的任意一个块记录为异常块; 封禁条件包括:(一)涉及国家安全和网络空间安全的; (2) 与违法违纪、恐怖犯罪有关的; (三)涉及个人或者单位的重大隐私泄露; (4) 与虚假或错误交易有关的; (5) 因人为或机器错误造成的错误。 进一步地,在步骤1中,初始化许可链的具体步骤如下: 步骤1.1. 选择防碰撞哈希函数h和变色龙哈希函数g; 步骤 1.2。 将节点连接到许可链上,并选择部分节点作为验证节点; 步骤 1.3。 根据变色龙哈希函数g计算哈希密钥hk和哈希阈值tk,将哈希阈值tk按照选择的验证节点个数拆分成分片,所有验证节点都是分片的Master之一; 步骤 1.4。 定义ch-Pow算法; 步骤1.5通过链控机制、防碰撞哈希函数h、变色龙哈希函数g、ch-pow算法和dbft算法生成创世块。 进一步地,链控机制还包括块控操作,块控操作的方法为:执行dbft算法,配合所有验证节点控制异常块中的内容。 进一步地,步骤2的具体步骤如下: 步骤2.1. 根据ch-pow算法计算验证节点的nonce值; 步骤 2.2。 根据任一验证节点的nonce值,将交易记录打包形成一个新的区块; 步骤 2.3。 通过验证节点检查新区块的正确性。 如果验证通过,则将新区块添加到许可证链的末尾; 如果验证失败,则丢弃新块。 块。

进一步地,变色龙哈希函数g包括三个子算法,分别是: (1)密钥生成算法:输入安全参数a,输出哈希密钥hk和哈希阈值tk。 (2)变色龙ha希腊算法:输入哈希密钥hk、随机数r和任意长度的消息m,输出变色哈希值g; (3)碰撞算法:输入变色哈希值g、哈希阈值tk和一个任意长度为m'的消息,输出一个随机数r'。 进一步地,步骤3的具体步骤如下: 步骤3.1. 根据异常区块的交易记录集tran-set生成新的交易记录集tran-set',并将交易记录集tran-set'request修改内容传播到网络中,进入步骤3.2; 步骤 3.2。 验证节点收到修改请求内容,根据链控机制判断修改请求内容是否合法,若合法则进入步骤3.3; 如果不合法,则丢弃修改请求内容; 步骤 3.3。 所有验证节点按照 dbft 算法进行投票。 如果所有验证节点都能达成共识,则进入步骤3.4; 如果所有验证节点不能达成共识,则丢弃修改请求的内容; 步骤 3.4。 哈希阈值tk分片共同参与变色龙哈希函数g的计算,将解记为r',进入步骤3.5; 步骤 3.5。 所有验证节点将交易记录集tran-set'中的每条交易记录作为Leaf节点,计算merkle哈希树的根节点root',根据r'和root'在权限链上查找对应的目标区块,并将异常块中对应的值替换为r'、root'和tran-set'。

进一步地,链控机制还包括控制要求,控制要求包括修改后的交易记录集tran-set'中的每条交易记录需要满足以下全部要求: (1)每条交易记录正确、可信; (2) 每笔交易记录都不会导致双花; (3) 每笔交易记录不会导致用户账户余额为负数; (4)交易记录集tran-set'record'i(1≤i≤n)中的每笔交易作为叶节点输入,通过merkle哈希树计算得到的输出值root'应该与修改前的根值; 控制要求还包括修改后得到的区块应满足以下各项要求: (1) 权限链保持一致; (2)修改块的参数必须正确。 进一步地,根据链控机制对许可链中的区块进行监管的方法是:将链控机制写入智能合约,智能合约定期检查网络中的区块是否满足区块控制条件,如果有的话网络中的区块 如果一个区块的交易记录集中的某笔交易记录满足区块控制条件,则满足区块控制条件的区块为异常区块。 综上所述,由于采用了上述技术方案,本发明的有益效果为: 1、本发明通过定义链上管控机制,对恶意信息和错误交易进行全局实时监控。实现所有节点关于区块的信息。 普通节点(即接入节点)可以向验证节点报告错误的块。 通过构建权限链,多个验证节点可以控制整个权限链。 在弱中心(或部分去中心化)环境下,实现许可链网络的可控性。 所有验证节点都可以通过计算变色龙哈希碰撞算法和dbft算法对区块进行有效修改,实现许可链的安全可控特性。

2、本发明通过定义链管控机制重新初始化权限链,然后根据链管控机制对权限链中的区块进行监管,对不符合链的区块进行监管管控机制受控,便于权限链的动态高效管控。 块,提高许可链的安全性。 3、本发明通过使用基于变色龙哈希函数的工作量证明(ch-pow)算法作为区块确认的共识算法,通过合法修改区块中的交易记录,高效实现数据可控,确保确保许可证链的安全运行。 4、本发明将链控机制写入智能合约,以拜占庭容错(dbft)算法为基础的共识算法作为区块修改,通过验证节点投票实现高效机制可控. 5、本发明通过链管理员动态维护的验证节点列表和dbft算法,实现了验证节点的动态接入机制,从而实现了验证节点的可控性。 附图说明为了更加清楚地说明本发明实施例的技术方案,下面对实施例中使用的附图进行简单介绍。 应当理解,以下附图仅示出了本发明的一些实施例,因此不应将其视为对范围的限制。 对于本领域的技术人员来说,在没有作出创造性劳动的情况下,根据这些附图,还可以得到其他相关附图。 图1为本发明的总体流程示意图。 具体实施方式为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。

应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限制本发明,即所描述的实施例只是本发明的部分实施例,并不代表本发明的全部实施例。实施例。 可以以各种不同的配置布置和设计本文的附图中大体上描述和图示的本发明的实施例的组件。 因此,以下附图中提供的本发明实施例的详细描述并非旨在限制要求保护的本发明的范围,而仅代表本发明的选定实施例。 基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 需要说明的是,术语“第一”、“第二”等相关术语仅用于区分一个实体或业务与另一个实体或业务,并不一定要求或暗示这些实体或业务之间存在任何关系。 它们之间没有这样的实际关系或顺序。 此外,术语“包含”、“包含”或其任何其他变体旨在涵盖非排他性包含,使得包含一组要素的过程、方法、物品或装置不仅包括那些要素,而且还包括未明确列出的元素。 此类过程、方法、物品或设备的其他要素或还包括此类过程、方法、物品或设备中固有的要素。 在没有进一步限制的情况下,由短语“包含……”定义的元素不排除在包含所述元素的过程、方法、制品或设备中存在另外的相同元素。 实施例一本发明优选实施例提供的一种基于变色龙哈希函数的权限链构建与管理方法,包括以下步骤: 步骤1、定义链管理机制,根据链管理机制初始化权限链。

步骤 2. 将新区块添加到许可链。 Step 3. 根据链控机制对权限链中的区块进行监管,对不符合链控机制的区块进行控制。 其中,链控机制包括区块格式和区块控制条件。 区块格式包括区块头和区块体,区块大小为1m。 区块头包括版本号version、前一个区块的哈希值pre-hash、随机数nonce、工作量证明难度值复数、时间戳timestamp、merkle哈希树根节点root、变色龙随机数r、以及变色散列值g; 区块体包含一个交易记录集tran-set,交易记录集由多个交易记录组成,交易记录集的表达形式为:tran_set={recordi}1≤i≤n,其中i代表交易记录集中的每条交易记录的下标,n表示交易记录集中交易记录的条数。 块控制条件是区分正常块和异常块的标准。 封禁条件包括:(一)涉及国家安全和网络空间安全的; (2) 与违法违纪、恐怖犯罪有关的; (4) 虚假或错误的交易,如:是否导致双花,是否导致账户余额为负数; (5) 人为或机器错误造成的错误,如:账户错误、交易时间错误。 如果网络中任意一个区块的交易记录集中的某个交易记录满足区块控制条件,则满足区块控制条件中任意一个要求的区块将被记录为异常区块。

步骤1中,初始化权限链的具体步骤如下: Step 1.1. 选择防碰撞哈希函数 h 和变色龙哈希函数 g。 所选的防碰撞哈希函数h为系统哈希函数。 变色龙哈希函数g包括三个子算法,分别是: (1)密钥生成(gkeygen)算法:输入一个安全参数a,输出哈希密钥hk和哈希阈值tk。 (2)变色龙哈希(ghash)算法:输入哈希密钥hk、随机数r和任意长度的消息m,输出变色哈希值g。 (3)碰撞(gcol)算法:输入变色哈希值g、哈希阈值tk和任意长度的消息m',输出随机数r',使得ghash(m',hk,r' )=克。 步骤 1.2。 将节点连接到许可链上,并选择部分节点作为验证节点。 首先,链管理员通过一套认证机制接入节点加入网络,并选择部分节点作为验证节点,其余节点作为接入节点。 验证节点拥有对区块的审计和验证权限,访问节点用于读取权限链上的内容。 然后,链管理员保存所有验证节点的节点列表,并为节点动态准入机制实时维护节点列表。 步骤 1.3。 根据密钥生成算法计算出哈希密钥hk和哈希阈值tk,将哈希阈值tk按照选择的验证节点个数拆分成分片,所有验证节点掌握其中一个分片。 链管理员选择一个安全参数a作为输入,执行密钥生成算法得到哈希公钥hk和哈希阈值tk。

将哈希密钥hk公开,将哈希阈值tk以阈值秘密共享的方式拆分成多个分片,安全发送给所有验证节点,使每个验证节点掌握一部分哈希阈值tk。 步骤 1.4。 根据区块格式,防碰撞哈希函数h、变色龙哈希算法ghash、哈希密钥hk和哈希阈值tk定义了用于计算区块哈希值的ch-pow(基于变色龙ha的Proof-of-work Hive 函数)算法。 ch-pow算法的计算公式如下: h=h(version‖prehash‖nonce‖complex‖ghash(transet‖root‖timestamp,hk,r)) 其中h表示系统哈希函数h,ghash表示变色龙哈希算法ghash,version表示区块的版本号,prehash表示前一个区块的哈希值,complex表示工作量证明的难度值,transet表示区块的交易记录集,root表示merkle hash区块的树根节点,timestamp代表区块的时间戳,也就是区块产生的时间,hk代表哈希公钥hk比特币验证双花,r代表区块的变色龙随机数。 其中,难度值由系统根据挖矿难度自动调整; 变色龙随机数是节点在出块初期随机生成的。 任何节点重复执行 ch-pow 算法作为其工作证明。 验证节点通过反复选择nonce计算出区块的哈希值h,就是一个挖矿的过程。 当得到的哈希值h满足工作量证明的目标值要求时(例如:目标值以多个0哈希值开头),则说明已经挖到矿井,nonce为工作量证明的解的节点。

链控机制还包括区块控制操作和控制要求。 区块控制操作的方法是:执行dbft算法,联合所有验证节点修改异常区块中任意数量的交易记录,同时修改对应的默克尔哈希树根节点root和timestamp时间戳。 管控要求包括修改后的交易记录集trans-set'中的每笔交易记录需要满足以下全部要求:(1)每笔交易记录正确可信,即交易双方确认交易; (2)) 每笔交易记录都不会导致双重支出(doublespending),即同一笔钱被用于两次交易; (3) 每笔交易记录不会导致用户账户余额为负数; (4)交易记录集tran- set中的每条交易记录'i(1≤i≤n)'作为叶节点输入,通过merkle哈希树计算得到的输出值root'应该与修改前的根值。 控制要求还包括修改后的区块应满足以下各项要求: (1) 权限链应一致,即异常区块修改后,其哈希值h'应与哈希值相同修改前的块。 哈希值相同; (2) 修改区块的参数必须正确,即:version, pre-hash, nonce, complex 和old block要一致,在value后修改root', tran-set' and timestamp' .

步骤1.5通过链控机制、防碰撞哈希函数h、变色龙哈希函数g、ch-pow算法和dbft算法生成创世块。 dbft(拜占庭容错)算法、ch-pow算法、防碰撞哈希函数h、变色龙哈希函数g、链控机制、链管理员动态维护的验证节点列表指针、时间戳、版本号、创世记哈希值被写入创世块。 其中,创建哈希值由系统自己设置,时间戳和版本号的值由节点填写。 当一个新节点被链管理员授权时,链管理员更新验证节点列表,并将被撤销的验证节点持有的碎片转移给新节点,从而实现验证节点的动态准入机制。 创世块生成后,链管理员在网络中广播创世块。 步骤2的具体步骤如下: Step 2.1. 验证节点反复执行ch-pow算法,寻找满足工作量证明要求的nonce值。 步骤 2.2。 根据任意一个验证节点的nonce值,将区块在网络中当前一段时间内的交易记录打包,形成一个新的区块。 根据验证节点计算出的nonce值和创世块的格式,将网络中当前时间段内的交易记录打包填充到新的区块中,每条交易记录整合的交易记录集为放置在块体中,计算出的nonce值放置在块头中,新块在网络中传播。 打包形成的交易记录包含了用户在当前一段时间内在网络中的交易信息,还包含了一笔额外的手续费,手续费较高的区块可以尽快得到确认。

步骤 2.3。 通过验证节点验证新区块的正确性。 如果验证通过,则将新区块添加到权限链的末尾; 如果验证失败,则丢弃新块。 任何验证节点都可以验证新区块的正确性。 验证的内容包括但不限于:(1)交易签名的正确性; (2)该区块的变色哈希值g是否满足g=ghash(transet‖root‖timestamp‖hk‖r); (3)区块的哈希值h是否正确,即判断区块包含的内容计算出的哈希值与区块头中的哈希值是否一致。 如果验证通过,则将新块添加到权限链的末尾。 同时验证节点继续寻找满足工作量证明目标值要求的nonce值,即验证节点在出块后继续挖矿; 如果验证失败,则丢弃新块。 当两个或多个验证节点发现满足工作量证明要求的不同nonce值时,权限链就会分叉。 这个时候还是遵循长链优化的原则。 即:每个验证节点都可以选择在其中任何一个发布的区块后面继续挖矿,但系统只跟随最长的链。 因此,如果一个验证节点后面的区块较少,分叉将被自动丢弃。 步骤3中,根据链控机制对权限链中的区块进行监管的方法为:将链控机制写入智能合约,智能合约周期性检查网络中的区块是否满足区块控制条件。 如果区块的交易记录集中的某条交易记录满足区块控制条件,则满足区块控制条件的区块为异常区块。

步骤3的具体步骤如下: Step 3.1. 根据异常块的交易记录集tran-set生成新的交易记录集tran-set',并在网络中发送包含交易记录集tran-set'的请求修改内容Propagation,进行步骤3.2。 当任一节点(验证节点或接入节点)在区块中发现异常交易记录时,通过修改异常区块中任意数量的交易记录生成一个新的交易记录集合tran-set',并且(trans-set',h ,reason) 作为修改请求在网络中广播。 其中,h表示异常块的哈希值,reason表示请求修改的原因和依据。 步骤 3.2。 验证节点收到修改请求内容,根据链控机制判断修改请求内容是否合法。 如果合法,则继续执行步骤3.3; 如果不是,则丢弃修改请求内容。 验证节点收到修改请求后,根据创世块定义的链控机制中的区块控制条件判断修改请求是否合法。 步骤 3.3。 所有验证节点按照 dbft 算法进行投票。 如果所有验证节点都能达成共识,则转步骤3.4; 如果所有验证节点不能达成共识,则丢弃修改请求的内容。 由于dbft算法支持动态准入机制,具有投票权的验证节点均来自节点列表。 即:实时加入的新验证节点可以参与新一轮的验证,被撤销的验证节点没有投票权。

步骤 3.4。 所有验证节点根据掌握的哈希极限阈值tk分片参与变色龙哈希算法ghash的计算,将解记为r',进入步骤3.5。 每个验证节点将通过门限秘密共享得到的tk分片作为输入,共同参与gcol算法解r'的计算。 计算公式如下: r'=gcol(transet'||root'||timestamp',tk, g) 其中,最后的r'是满足ghash算法的随机值,即r'可以满足: ghash(transet∥root‖timestamp,hk,r)=g=ghash(transet'||root'||timestamp ′,hk′,r′) 可以看出修改后的区块的哈希值没有更改了,并且块的内容已被合法修改。 步骤 3.5。 所有验证节点将交易记录集tran-set'中的每条交易记录作为叶子节点,计算merkle哈希树的根节点root',搜索对应的目标块,将(r,root,tran- set) 在目标块中使用新的 (r', root', tran-set')。 至此,对异常块的修改完成,任何节点都可以读取到修改后的块的内容。 以上所述仅为本发明的优选实施例而已,并不用于限制本发明。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。 范围内。 当前页 1 12当前页 1 12

技术特点:

技术概要

本发明公开了一种基于变色龙哈希函数的许可链构建与控制方法,涉及网络安全技术领域,包括以下步骤: 步骤1、定义链管控机制,根据规则初始化许可链。连锁经营机制; Step 2. 将区块中的交易记录打包形成新区块,并将新区块加入权限链; step 3. 根据链控机制对权限链中的区块进行监管,对不符合链控机制的区块进行区块链控制。 本发明实现了全节点对区块恶意信息和错误交易信息的全局实时监控比特币验证双花,任何接入节点都可以向验证节点报告错误区块,实现了验证节点对整个权限的管控通过构建权限链来链接。 在部分去中心化的环境中,实现了许可链网络的可控性。 所有验证节点都可以通过计算变色龙哈希碰撞和DBFT共识来有效修改区块,实现许可链的安全性和可控性。

技术研发人员:张晓松; 黄可; 牛维娜

受保护技术用户:电子科技大学

技术研发日:2018.06.27

技术公告日期:2018.11.16