发布信息

一种基于秘密握手的区块链分片方法 专利技术说明

作者:admin      2023-07-19 13:39:02     587



电子通信装置的制造及其应用技术1.本发明涉及区块链技术领域,更具体地,涉及一种基于秘密握手的区块链分片方法。背景技术:2.分片技术是区块链扩容技术之一。分片是指将区块链节点根据一定规则划分到不同的分区,各分区内的节点各自维护分区内的区块链账本,各个分区可单独并行完成共识,从而增加区块链系统的交易吞吐量。目前常见的分片技术包括网络分片、状态分片和交易分片等,但目前很少有分片技术考虑分片的隐私安全,从而导致分片过程中泄露隐私。3.秘密握手技术允许同属同一组织内的个体进行双向认证,而认证过程不泄露双方隐私。这一特点使得秘密握手技术在互联网用户认证场景中应用广泛。技术实现要素:4.本发明为克服上述现有技术中的缺陷,提供一种基于秘密握手的区块链分片方法,提高了分片的隐私性,同时也提高了分片区块的共识速度。5.为解决上述技术问题,本发明采用的技术方案是:一种基于秘密握手的区块链分片方法,包括区块链节点cn、发送交易的用户u和群管理节点ga三类实体,区块链节点与用户之间存在有效的点到点网络,区块链节点和用户与管理节点之间存在安全通道;其中区块链节点有n个,用户有l个,ga有m个,m,n,l为自然数;区块链节点cni和用户uj通过安全通道向gak注册,分别获得gak的凭证和其中1≤i≤n,1≤j≤l,1≤k≤m;包括以下步骤:6.s1.用户与点到点网络中的邻居节点执行秘密握手协议,发送加密交易;7.s2.区块链节点重加密并转发用户有效的交易,并将有效的交易打包;8.s3.区块链节点发布区块,参与有向无环图dag共识,更新dag区块链;9.s4.当dag链中有达成共识的新区块出现时,区块链节点与该区块的生成方执行秘密握手协议,更新分片区块链。10.在其中一个实施例中,所述的步骤s1具体包括:11.s11.设用户为ui,该用户向点到点网络中邻居区块链节点发送握手消息12.s12.用户uj的邻居区块链节点返回握手消息13.s13.用户uj与属于同一群管理节点gak的邻居区块链节点生成共享密钥14.s14.使用共享密钥及安全的对称加密算法加密交易获得加密交易15.s15.用户uj向属于同一群管理节点gak的邻居区块链节点发送加密交易16.在其中一个实施例中,所述的步骤s2具体包括:17.s21.区块链节点接收到用户uj的加密交易采用对称解密算法和共享密钥解密获得用户uj的交易18.s22.区块链节点根据区块链的验证规则验证用户交易的有效性,如果交易无效,则停止处理,否则判定为有效的用户交易;19.s23.区块链节点如果尚未转发过有效的用户交易则与区块链节点的邻居区块链节点执行秘密握手协议,使用秘密握手协议产生的共享密钥加密用户交易转发重加密的用户有效交易;其中区块链节点之间执行秘密握手的过程与用户与区块链节点执行秘密握手的过程相同,见步骤s11至s14;另外,属于同一群管理节点的区块链节点在建立一次秘密握手后,可使用秘密握手产生的共享密钥重新加密多个有效的用户交易,不必为每个用户交易执行秘密握手协议;20.s24.区块链节点为区块b生成一个区块加密密钥每得到一个有效的用户交易,就使用密钥及安全的对称加密算法加密用户交易,将加密的用户交易打包到区块b中。21.在其中一个实施例中,所述的步骤s3具体包括:22.s31.设置系统阈值tb,当区块链节点cni在区块中打包的加密交易数量超过系统阈值tb后,区块链节点cni设置区块头,包含区块链节点cni的握手消息、当前dag链中新近的两个区块的链接、以及共识信息,然后将完整的区块通过点到点网络向所有区块链节点广播;该步骤中的握手消息与步骤s11中的握手消息含义相同,都是秘密握手协议的第一条消息;23.s32.区块链节点cni收到区块后,根据区块头的共识信息完成dag共识过程,更新dag区块链。24.在其中一个实施例中,所述的步骤s4具体包括:25.s41.对于dag链中达成共识的新区块,区块链节点cni如果检查到新区块不是自己生成的,就采用区块头的握手信息,向新区块的生成方发送秘密握手消息;该步骤中向新区块生成方发送的秘密握手消息与步骤s12中的握手消息含义相同,都是秘密握手的第二条消息;26.s42.新区块的生成方收到秘密握手消息后,如果请求方与自己属于同一群管理节点,就生成共享密钥,返回用共享密钥及安全的对称加密算法加密的区块加密密钥,否则中止处理;该步骤中共享密钥与步骤s13中共享密钥的含义相同,都是秘密握手协议生成的共享密钥;27.s43.区块链节点cni在获得区块加密密钥后,解密验证区块的有效性,如果区块有效,则更新分片区块链,即追加解密后的明文区块pb到本地区块链中,否则中止处理。28.在其中一个实施例中,管理节点gak创建群gk,gk,gk′都是以大素数q为阶的循环群,定义双线性映射e:gk×gk→gk′,对于所有a,b∈zq,p,q∈gk,满足e(ap,bq)=e(p,q)ab;定义哈希函数h1和h2,其中h1:{0,1}*→gk,h2是sha-1函数;29.若有新的区块链节点cni或用户uj加入分片k,gak为其分配凭证和和包括群身份和群秘密信息和群秘密信息包括群身份和群秘密信息当要移除分片内某一节点时,gak向分片内其他节点广播该节点的群身份,并警告分片内节点不与该节点握手;30.其中,用户uj和点到点网络中邻居区块链节点秘密握手过程包括:31.用户uj生成并广播握手交易32.邻居区块链节点接收后,将自己的群身份和随机数发送给用户uj;33.用户uj接收和后,回应自己的群身份随机数和消息其中,34.邻居区块链节点收到用户回应后,生成验证是否等于若相等,则回应消息若验证不相等,则不回应;35.用户uj收到后,验证是否等于若相等,则用户uj和链节点完成秘密握手;若验证不相等,则握手失败。36.在其中一个实施例中,区块链节点cni在本地建立区块数据池、区块数据库,以及哈希确认列表;本地区块数据池存储未达成共识的区块哈希值,本地区块数据库存储已达成共识的区块哈希,哈希确认列表存储每一个区块哈希的确认数;区块的dag共识过程包括:37.区块链节点cni每打包一个区块,就将该区块的哈希值存入本地区块数据池中,且在本地哈希确认列表中添加节点cni为该区块哈希的确认节点,并初始化一个哈希列表,包括该区块的哈希值及节点cni的身份该将哈希列表作为共识信息封装进区块头中;完整的区块通过点到点网络向所有区块链节点广播;38.区块链节点cni收到区块后,根据区块头中的共识信息更新本地区块数据池和哈希确认列表,具体为:若收到的是新区块,则将共识信息中的区块哈希存入本地区块数据池,且在本地哈希确认列表中添加节点cni为该区块哈希的确认节点;当本地哈希确认列表中有区块哈希的确认节点数量大于等于则将该区块哈希存入本地区块数据库,且在区块数据池和哈希确认列表中删除;39.存入本地区块数据库的区块则完成共识,而区块数据库中的区块根据链接关系构成dag区块链。40.在其中一个实施例中,所述的对称加密算法包括aes-ccm算法,使用秘密握手时的握手消息作为密钥,即在步骤s12和s13中,将作为共享密钥41.在其中一个实施例中,采用数字签名验证用户交易的有效性;用户uj生成一笔转帐交易包含时间戳、交易类型,转账金额、目标用户身份、以及用户uj对交易内容的签名;用户uj与点到点网络中的邻居节点执行秘密握手协议,获得共享密钥使用对称加密算法加密交易获得加密交易用户uj向属于同一群管理节点gak的邻居区块链节点发送加密交易区块链节点接收到用户uj的加密交易采用对称解密算法和共享密钥解密获得用户uj的交易则区块链节点根据以下区块链的验证规则验证用户交易的有效性:42.检查交易签名是否有效,若有效则继续如下检查;43.若用户交易的交易类型为转账交易,则检查转账金额是否为非负数,若是,则继续如下检查,若否,则该交易无效;44.检查用户uj的区块链账户余额是否大于等于转帐金额,若是,则继续如下检查,若否,则该交易无效;45.检查目标用户是否为本区块链用户,若是,则该交易有效,若否,则该交易无效。46.在其中一个实施例中,采用验证区块中的每一个用户交易有效来验证区块有效;在步骤s43中,区块链节点cni在获得区块加密密钥后,解密区块,得到tb个解密的用户交易,若tb个用户交易均有效,则该区块有效,否则区块无效。47.与现有技术相比,有益效果是:本发明提供的一种基于秘密握手的区块链分片方法,分片区块链是通过秘密握手技术自然形成的,用户和区块链节点都仅知道自己所在分片的信息,隐藏了其它分片的信息,提高了分片的隐私性;另外,得益于dag图的内在关系,分片内的区块可以由所有区块链节点进行确认,从而提高分片内区块的共识速度。附图说明48.图1是本发明用户和区块链节点向管理节点注册的示意图。49.图2是本发明分片区块链形成示意图。具体实施方式50.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。下面结合具体实施方式对本发明作在其中一个实施例中说明。其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。51.实施例l:52.一种基于秘密握手的区块链分片方法,包括区块链节点cn、发送交易的用户u和群管理节点ga三类实体,区块链节点与用户之间存在有效的点到点网络,区块链节点和用户与管理节点之间存在安全通道;其中区块链节点有n个,用户有l个,ga有m个,m,n,l为自然数;区块链节点cni和用户uj通过安全通道向gak注册,分别获得gak的凭证和其中1≤i≤n,1≤j≤l,1≤k≤m;包括以下步骤:53.步骤1.用户与点到点网络中的邻居节点执行秘密握手协议,发送加密交易;步骤sl具体包括:54.s11.设用户为uj,该用户向点到点网络中邻居区块链节点发送握手消息55.s12.用户uj的邻居区块链节点返回握手消息56.s13.用户uj与属于同一群管理节点gak的邻居区块链节点生成共享密钥57.s14.使用共享密钥及安全的对称加密算法加密交易获得加密交易58.s15.用户uj向属于同一群管理节点gak的邻居区块链节点发送加密交易59.步骤2.区块链节点重加密并转发用户有效的交易,并将有效的交易打包;步骤s2具体包括:60.s21.区块链节点接收到用户uj的加密交易采用对称解密算法和共享密钥解密获得用户uj的交易61.s22.区块链节点根据区块链的验证规则验证用户交易的有效性,如果交易无效,则停止处理,否则判定为有效的用户交易;62.s23.区块链节点如果尚未转发过有效的用户交易则与区块链节点的邻居区块链节点执行秘密握手协议,使用秘密握手协议产生的共享密钥加密用户交易转发重加密的用户有效交易;其中区块链节点之间执行秘密握手的过程与用户与区块链节点执行秘密握手的过程相同,见步骤s11至s14;另外,属于同一群管理节点的区块链节点在建立一次秘密握手后,可使用秘密握手产生的共享密钥重新加密多个有效的用户交易,不必为每个用户交易执行秘密握手协议;63.s24.区块链节点为区块b生成一个区块加密密钥每得到一个有效的用户交易,就使用密钥及安全的对称加密算法加密用户交易,将加密的用户交易打包到区块b中。64.步骤3.区块链节点发布区块,参与有向无环图dag共识,更新dag区块链;步骤s3具体包括:65.s31.设置系统阈值tb,当区块链节点cni在区块中打包的加密交易数量超过系统阈值tb后,区块链节点cni设置区块头,包含区块链节点cni的握手消息、当前dag链中新近的两个区块的链接、以及共识信息,然后将完整的区块通过点到点网络向所有区块链节点广播;该步骤中的握手消息与步骤s11中的握手消息含义相同,都是秘密握手协议的第一条消息;66.s32.区块链节点cni收到区块后,根据区块头的共识信息完成dag共识过程,更新dag区块链。67.步骤4.当dag链中有达成共识的新区块出现时,区块链节点与该区块的生成方执行秘密握手协议,更新分片区块链;步骤s4具体包括:68.s41.对于dag链中达成共识的新区块,区块链节点cni如果检查到新区块不是自己生成的,就采用区块头的握手信息,向新区块的生成方发送秘密握手消息;该步骤中向新区块生成方发送的秘密握手消息与步骤s12中的握手消息含义相同,都是秘密握手的第二条消息;69.s42.新区块的生成方收到秘密握手消息后,如果请求方与自己属于同一群管理节点,就生成共享密钥,返回用共享密钥及安全的对称加密算法加密的区块加密密钥,否则中止处理;该步骤中共享密钥与步骤s13中共享密钥的含义相同,都是秘密握手协议生成的共享密钥;70.s43.区块链节点cni在获得区块加密密钥后,解密验证区块的有效性,如果区块有效,则更新分片区块链,即追加解密后的明文区块pb到本地区块链中,否则中止处理。71.在实施例1中并未指定dag链的共识方法、秘密握手协议的具体实现方式、采用的对称加密算法,验证用户交易有效性的方法,验证区块有效性的方法等内容。72.实施例273.本实施例采用dirk balfanz等人在2003年发表论文《secret handshakes from pairing-based keyagreements》中提出的基于双线性对的秘密握手方案。74.管理节点gak创建群gk,gk,gk′都是以大素数q为阶的循环群,定义双线性映射e:gk×gk→gk′,对于所有a,b∈zq,p,q∈gk,满足e(ap,bq)=e(p,q)ab。定义哈希函数h1和h2,其中h1:{0,1}*→gk,h2是sha-1函数。75.若有新的区块链节点cni或用户uj加入分片k,gak为其分配凭证和包括群身份和群秘密信息和群秘密信息包括群身份和群秘密信息当要移除分片内某一节点时,gak向分片内其他节点广播该节点的群身份,并警告分片内节点不与该节点握手。76.用户uj和点到点网络中邻居区块链节点秘密握手过程为:77.(1)用户uj生成并广播握手交易78.(2)邻居区块链节点接收后,将自己的群身份和随机数发送给用户uj;79.(3)用户uj接收和后,回应自己的群身份随机数和消息、其中,80.(4)邻居区块链节点收到用户回应后,生成验证是否等于若相等,则回应消息若验证不相等,则不回应;81.(5)用户uj收到后,验证是否等于若相等,则用户uj和链节点完成秘密握手。若验证不相等,则握手失败。82.实施例383.本实施例中将指定一种dag共识的实现方式。区块链节点cni在本地建立区块数据池、区块数据库,以及哈希确认列表。本地区块数据池存储未达成共识的区块哈希值,本地区块数据库存储已达成共识的区块哈希,哈希确认列表存储每一个区块哈希的确认数。本实施例中采用sha256哈希函数。84.区块的共识过程为:85.(1)区块链节点cni每打包一个区块,就将该区块的哈希值存入本地区块数据池中,且在本地哈希确认列表中添加节点cni为该区块哈希的确认节点。并初始化一个哈希列表,包括该区块的哈希值及节点cni的身份该将哈希列表作为共识信息封装进区块头中。完整的区块通过点到点网络向所有区块链节点广播。86.(2)区块链节点cni收到区块后,根据区块头中的共识信息更新本地区块数据池和哈希确认列表,具体为:若收到的是新区块,则将共识信息中的区块哈希存入本地区块数据池,且在本地哈希确认列表中添加节点cni为该区块哈希的确认节点。当本地哈希确认列表中有区块哈希的确认节点数量大于等于则将该区块哈希存入本地区块数据库,且在区块数据池和哈希确认列表中删除。87.存入本地区块数据库的区块则完成共识,而区块数据库中的区块根据链接关系构成dag区块链。88.实施例489.本实施例中,指定本发明中使用的对称加密算法为rfc6655中给出的aes-ccm算法,使用秘密握手时的握手消息作为密钥,即在实施例1中,步骤s12和s13中,将作为共享密钥90.实施例591.在实施例1中的步骤s22中,根据用户交易类型的不同,需要不同的用户交易有效性检查。本实施例中,采用ecdsa数字签名。92.用户uj生成一笔转帐交易包含时间戳、交易类型,转账金额、目标用户身份,以及用户uj对交易内容的签名。用户uj与点到点网络中的邻居节点执行秘密握手协议,获得共享密钥使用对称加密算法加密交易获得加密交易用户uj向属于同一群管理节点gak的邻居区块链节点发送加密交易区块链节点接收到用户uj的加密交易采用对称解密算法和共享密钥解密获得用户uj的交易则区块链节点根据以下区块链的验证规则验证用户交易的有效性:93.(1)检查交易签名是否有效,若有效则继续如下检查;94.(2)若用户交易的交易类型为转账交易,则检查转账金额是否为非负数,若是,则继续如下检查,若否,则该交易无效;95.(3)检查用户uj的区块链账户余额是否大于等于转帐金额,若是,则继续如下检查,若否,则该交易无效;96.(4)检查目标用户是否为本区块链用户,若是,则该交易有效,若否,则该交易无效.97.实施例698.本实施例中,采用验证区块中的每一个用户交易有效来验证区块有效。99.本实施例1中的步骤s43中,区块链节点cni在获得区块加密密钥后,解密区块,得到tb个解密的用户交易,若tb个用户交易均有效,则该区块有效,否则区块无效。100.显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部