CN112953715A - 一种区块链节点动态识别密码算法的方法 - Google Patents
一种区块链节点动态识别密码算法的方法 Download PDFInfo
- Publication number
- CN112953715A CN112953715A CN202110108287.XA CN202110108287A CN112953715A CN 112953715 A CN112953715 A CN 112953715A CN 202110108287 A CN202110108287 A CN 202110108287A CN 112953715 A CN112953715 A CN 112953715A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- transaction
- hash
- block chain
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出一种区块链节点动态识别密码算法的方法,包括:每个区块链节点加载同一种密码算法和哈希算法;区块链节点使用同一种非对称密码算法和哈希算法,建立区块链运行网络,对客户端提交的交易进行区块链共识,生成区块,其中,客户端为非对称密码算法账户,使用的算法包括:非对称密码算法、对称密码算法和哈希算法。本发明解决了目前单个区块链网络只能在非对称密码算法、哈希算法、对称密码算法三类中每一类使用某一种特定密码算法的技术问题,提高了区块链网络的扩展性、灵活性。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种区块链节点动态识别密码算法的方法。
背景技术
随着区块链技术发展越来越成熟,使用场景越来越多,其安全性、扩展性、兼容性问题也日益突出。目前各种区块链网络一经发布,其使用的密码算法包括非对称密码算法、哈希算法、对称密码算法均是固定不变的,客户端账户的类型也只能根据区块链网络使用的密码算法进行对应的创建。客户端账户类型的单一性导致用户在创建自己的区块链账户时无法做出选择,使用自己认为安全性、算法效率更高的密码算法。在构建自己的交易时也无法使用自己信任的哈希算法及对称密码算法。极大的制约区块链网络的自主安全性及扩展度。
发明内容
针对背景技术中的问题,本发明提出一种区块链节点动态识别密码算法的方法,包括:每个区块链节点加载同一种密码算法和哈希算法;区块链节点使用同一种非对称密码算法和哈希算法,建立区块链运行网络,对客户端提交的交易进行区块链共识,生成区块,其中,客户端为非对称密码算法账户,使用的算法包括:非对称密码算法、对称密码算法和哈希算法。
可选地,区块链节点接收到客户端发送的交易后,动态识别交易使用的算法类型,并使用交易中对应的非对称密码算法进行交易的签名验签,使用对应的哈希算法计算交易哈希值,使用对应的对称算法进行对称加解密操作。
可选地,通过客户端或区块链节点创建账户。
可选地,区块链节点之间使用节点中配置的密码算法进行消息的处理发送。
可选地,区块链节点动态识别客户端交易,进行共识,生成区块。
可选地,区块链节点在构建区块默克尔树时,针对交易本身使用交易指定的哈希算法,交易正常验证,以及保证以交易哈希值进行交易订阅时可以正常返回值。
可选地,每个区块链节点的配置文件指定非对称算法类型及哈希算法类型,以供区块链节点启动时获取对应的算法类型。
可选地,在客户端创建账户时,指定非对称密码算法类型以生成对应的账户,以及,在客户端指定哈希算法及对称密码算法。
可选地,在区块默克尔树构建过程中涉及到的交易使用的哈希算法由交易本身确定。
可选地,通过对区块链交易中的用户公钥进行非对称密码算法识别,通过交易中指定的哈希算法和对称算法进行确定。
基于本发明的方法,在构建区块链网络时,可根据节点配置文件中指定的非对称密码算法及哈希算法构建、运行区块链网络。创建新账户时,可选择多种非对称密码算法,生成特定类型的账户。并且在客户端发送交易时指定使用的哈希算法及对称密码算法。使得整个区块链网络非常灵活且自主安全。
首先区块链节点,通过配置文件或者其他方式,灵活指定区块链节点程序运行时使用的非对称密码算法和哈希算法。使得区块链节点程序之间可以正常进行签名验签及构建生成区块。但同时区块链节点是支持多种非对称密码算法及哈希算法,以便在接收到使用不用算法类型的客户端程序发送的交易时,可以正确处理。
其次,在生成账户时,支持生成不同种类的非对称密码算法公私钥对作为账户。并且通过客户端构建交易时可以指定使用的哈希算法及对称算法。
最后在节点接收到交易后,根据交易中的公钥判断应该使用何种非对称密码算法、根据交易中指定的哈希算法及对称算法对该交易使用对应的密码算法进行处理验证,共识落块。
本发明的有益效果为:节点动态识别密码算法且算法相互兼容的方法,主要针对目前单个区块链网络只能在非对称密码算法、哈希算法、对称密码算法三类中每一类使用某一种特定密码算法的场景,进行升级,提高区块链网络的扩展性、灵活性,并提供同一区块链网络中客户端在账户种类的多样性,及密码算法可选择的安全性。
附图说明
为了更容易理解本发明,将通过参照附图中示出的具体实施方式更详细地描述本发明。这些附图只描绘了本发明的典型实施方式,不应认为对本发明保护范围的限制。
图1显示了节点如何指定密码算法及同时支持多种密码算法。
图2显示了客户端同时支持多种密码算法也可以只支持每种类型中的一个密码算法。
图3显示了整个区块链网络运行及不同算法类型客户端兼容性情况。
具体实施方式
下面参照附图描述本发明的实施方式,以便于本领域的技术人员可以更好的理解本发明并能予以实施,但所列举的实施例不作为本发明的限定,在不冲突的情况下,下述的实施例及实施例中的技术特征可以相互组合,其中相同的部件用相同的附图标记表示。
如图1所示,本发明的方法包括步骤S1-S5。
步骤S1,在区块链网络的每个节点中加载同一种密码算法和哈希算法。
具体地,如图1所示,节点本身有一个密码算法支持列表,在节点启动之前,从非对称密码算法和哈希算法中各选择一个,填写到节点配置文件中,且本次组建区块链网络的每个节点都使用同一种密码算法,之后需要加入网络的新节点也需要使用同一种密码算法。然后启动所有组网节点,组建区块链网络。
具体地,每个节点的配置文件需要指定非对称算法类型及哈希算法类型,以供节点启动时获取对应的算法类型。
步骤S2,在客户端或者通过节点来创建账户。
如果通过节点创建账户,通过节点上加载的程序获取已经支持的所有密码算法,从列表中选择使用的算法。如果不从列表选择,直接生成账户时,可以默认使用节点之间使用的非对称密码算法,即节点的配置文件中配置的算法。
如果在客户端上创建账户,可以是生成非对称密码算法账户,所述客户端支持非对称密码算法、对称密码算法和哈希算法,且每个客户端的算法可以不同。客户端上装载的密码算法可以跟区块链节点的密码算法类型不一致。在一个实例中,在客户端上创建账户,可以通过节点对外提供的websocket或者rpc接口获取节点已经支持的所有密码算法,然后从中选择。客户端不提供默认值。
具体地,如图2所示,客户端可以支持多类多种密码算法,也可以只支持每类中的某一种密码算法。用户可以通过节点或者客户端生成自己希望使用的非对称密码算法账户,然后使用支持此种非对称密码算法以及自己希望使用的哈希算法和对称密码算法的客户端。
也就是说,客户端可以选择链上支持的任意一种,包括非对称算法、哈希算法及对称算法,现有技术中的区块链系统没有该功能。
可选地,在客户端创建账户时,可以指定非对称密码算法类型,生成对应的账户。需在客户端全局指定哈希算法及对称密码算法,哈希算法用于交易签名时哈希值计算及交易本身哈希值计算。对称算法用于交易中部分数据的对称加密运算。
步骤S3,通过客户端发送区块链网络支持的交易(如转移Token),接收方客户端的账户是节点支持的任意非对称密码算法账户。其中,所述交易中指定了哈希算法和/或对称算法。
也就是说,使用不同公私钥算法的用户,可以在同一区块链网络中相互执行交易,如secp256k1生成的账户可以向国密sm2生成的账户转移区块链Token,
节点在接收到客户端提交的交易时,可以根据交易中的公钥判断交易使用的非对称算法类型,然后使用对应的密码算法对交易进行验签。并根据交易中哈希类型对该交易所有使用哈希算法的场景,如交易签名前的哈希计算和交易本身的哈希值计算都使用交易中指定的哈希算法。当交易验证或者处理过程中使用了对称算法,需要使用交易中指定的对称算法类型进行运算处理。
在一个实施方式中,节点在接收到客户端的交易时,因为交易在网络中以序列化形式存在,节点需要将交易反序列化获取交易中实际使用公钥及哈希算法和对称算法。公钥类型根据公钥的十六进制数据的第一位值进行类型判断(这一位在公钥生成时已经指定)。步骤S4,区块链节点接收到客户端发送的交易,动态识别交易使用的算法类型,并使用交易中对应的非对称密码算法进行交易的签名验签,使用对应的哈希算法计算交易哈希值,使用对应的对称算法进行对称加解密操作。
具体地,节点程序动态识别交易使用的算法类型,通过客户端中加载的公钥动态识别交易中使用的非对称密码算法,以及交易中指定的哈希算法和对称算法,进行对应算法的处理和验证。因此,本发明中,进行了两个验证,一个是客户端中加载的公钥动态识别交易中使用的非对称密码算法的验证,一个是交易中指定的哈希算法和/或对称算法的验证。
步骤S5,区块链所有节点对客户端提交的交易进行区块链共识,生成区块。
具体地,区块链所有节点之间使用节点中配置的密码算法(节点的配置文件中配置的)进行消息的处理发送,并动态识别客户端交易进行共识,最终生成区块,正确处理交易。
可见,区块链网络的运行、共识、生成区块的过程都使用区块链节点配置文件中指定的非对称密码算法及哈希算法,不受客户端使用的密码算法影响。包括:在各个节点之间传递消息时进行的交易签名及验签,消息的哈希值计算,构建区块中默克尔树时除去客户端交易本身作为叶子节点的默克尔树其他各个节点哈希值计算,不受客户端使用的各种密码算法影响,以保证区块链安全、稳定的运行。另外,为了能正确的验证区块中的交易以及以交易哈希值为键值的交易订阅能正常进行,在构建区块中的默克尔树时需要按照交易指定的哈希算法计算该交易的哈希值。
在此特别指出本发明在构建默克尔树的创新性。在节点接收到交易并反序列化后,需要根据交易指定的哈希算法进行相关计算,尤其是对默克尔树的改造,默认情况统一使用一种哈希算法,现有技术中构造区块默克尔树时,父节点在记录子节点信息时,需要重新获取交易使用的哈希值,重新计算交易哈希,保证记录的子节点交易哈希无误,但是将多个子节点一起计算哈希生成父节点哈希时,仍然使用节点配置的哈希算法计算。区块链节点在共识中验证其他区块链节点的默克尔树时,也必须执行上述验证计算,保证数据一致。本发明的方法使得同一区块链网络同时存在和接收多种密码算法,使得使用不同密码算法生成的区块链账户可以在同一区块链网络同时存在,并且相互转移区块链Token,参与区块链操作。如使用secp256k1算法生成的公私钥对所代表的区块链账户,与使用sm2国密算法生成的公私钥对所代表的区块链账户可以在同一区块链网络进行交互。
本发明的方法针对在区块链中不同账户之间进行对称密钥转移时,支持账户使用不同非对称算法。现有技术都是同一种非对称算法之间对对称密钥进行加密后,可以进行转加密。通过本发明,区块链节点或者客户端支持不同非对称算法,可以在不同非对称算法用户之间进行对称密钥的转加密,从而实现了不同非对称算法账户共同使用同一种对称密钥,而且能够安全的传递转移。通过本发明可以完成如下功能:使用secp256k1算法作为公私钥的账户有一个AES算法的对称密钥,通过本发明,则可以通过区块链传递给sm2算法作为公私钥的账户,sm2算法的公私钥账户可以使用AES算法的对称密钥。如此,打破了密码算法必须成套使用的场景(如sm4对称密钥必须配合sm2使用的方式)。
本发明的方法在使用中对于所有组网的区块链节点使用同一种密码算法,包括非对称加解密算法和哈希算法。
本发明的方法通过对区块链交易的必要字段:用户公钥进行非对称密码算法识别,及交易中指定的哈希算法和对称算法进行确定,使得该笔交易可以正确的进行验证、区块链共识、落入区块。
本发明的方法在区块默克尔树构建过程中涉及到具体交易使用的哈希算法由交易本身确定,其他部分由区块链节点本身设置的哈希算法进行计算。
本发明的方法极大的扩展了区块链的兼容性和灵活性,使其可以同时支持多种密码算法生成的区块链账户,以及该账户使用不同的哈希算法构造的交易。且使得用户可以使用自己认为安全的密码算法,而不是区块链网络本身使用的密码算法。极大的提供了用户的自主安全。
以上所述的实施例,只是本发明较优选的具体实施方式,本说明书使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本公开的相同或不同实施例中的一个或多个。本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (10)
1.一种区块链节点动态识别密码算法的方法,其特征在于,包括:
每个区块链节点加载同一种密码算法和哈希算法;
区块链节点使用同一种非对称密码算法和哈希算法,建立区块链运行网络,对客户端提交的交易进行区块链共识,生成区块,其中,客户端为非对称密码算法账户,使用的算法包括:非对称密码算法、对称密码算法和哈希算法。
2.根据权利要求1所述的方法,其特征在于,还包括:
区块链节点接收到客户端发送的交易后,动态识别交易使用的算法类型,并使用交易中对应的非对称密码算法进行交易的签名验签,使用对应的哈希算法计算交易哈希值,使用对应的对称算法进行对称加解密操作。
3.根据权利要求1所述的方法,其特征在于,还包括:
通过客户端或区块链节点创建账户。
4.根据权利要求1所述的方法,其特征在于,
区块链节点之间使用节点中配置的密码算法进行消息的处理发送。
5.根据权利要求1所述的方法,其特征在于,
区块链节点动态识别客户端交易,进行共识,生成区块。
6.根据权利要求1所述的方法,其特征在于,
区块链节点在构建区块默克尔树时,针对交易本身使用交易指定的哈希算法,交易正常验证,以及保证以交易哈希值进行交易订阅时可以正常返回值。
7.根据权利要求1所述的方法,其特征在于,
每个区块链节点的配置文件指定非对称算法类型及哈希算法类型,以供区块链节点启动时获取对应的算法类型。
8.根据权利要求2所述的方法,其特征在于,还包括:
在客户端创建账户时,指定非对称密码算法类型以生成对应的账户,以及,在客户端指定哈希算法及对称密码算法。
9.根据权利要求1所述的方法,其特征在于,
在区块默克尔树构建过程中涉及到的交易使用的哈希算法由交易本身确定。
10.根据权利要求1所述的方法,其特征在于,
通过对区块链交易中的用户公钥进行非对称密码算法识别,通过交易中指定的哈希算法和对称算法进行确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110108287.XA CN112953715B (zh) | 2021-01-27 | 2021-01-27 | 一种区块链节点动态识别密码算法的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110108287.XA CN112953715B (zh) | 2021-01-27 | 2021-01-27 | 一种区块链节点动态识别密码算法的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112953715A true CN112953715A (zh) | 2021-06-11 |
CN112953715B CN112953715B (zh) | 2023-03-14 |
Family
ID=76237484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110108287.XA Active CN112953715B (zh) | 2021-01-27 | 2021-01-27 | 一种区块链节点动态识别密码算法的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112953715B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495249A (zh) * | 2018-11-23 | 2019-03-19 | 全链通有限公司 | 一种区块链系统的数据存储方法、节点和区块链系统 |
CN109981297A (zh) * | 2019-04-11 | 2019-07-05 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备及存储介质 |
US20190342073A1 (en) * | 2018-05-03 | 2019-11-07 | Shanghai Netban Education Technology Company Limit Ed | Digital education record management method based on blockchain token technology |
CN111191294A (zh) * | 2019-12-27 | 2020-05-22 | 诚镌科技(广州)有限公司 | 基于区块链的单节点记账方法、系统、设备和存储介质 |
CN111310206A (zh) * | 2020-02-12 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种数据加密方法、节点设备及存储介质 |
CN111339199A (zh) * | 2020-02-28 | 2020-06-26 | 中国工商银行股份有限公司 | 一种区块链密钥恢复方法和装置 |
CN111768195A (zh) * | 2020-06-23 | 2020-10-13 | 江苏荣泽信息科技股份有限公司 | 加速区块链数据的计算的系统 |
-
2021
- 2021-01-27 CN CN202110108287.XA patent/CN112953715B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190342073A1 (en) * | 2018-05-03 | 2019-11-07 | Shanghai Netban Education Technology Company Limit Ed | Digital education record management method based on blockchain token technology |
CN109495249A (zh) * | 2018-11-23 | 2019-03-19 | 全链通有限公司 | 一种区块链系统的数据存储方法、节点和区块链系统 |
CN109981297A (zh) * | 2019-04-11 | 2019-07-05 | 百度在线网络技术(北京)有限公司 | 区块链处理方法、装置、设备及存储介质 |
CN111191294A (zh) * | 2019-12-27 | 2020-05-22 | 诚镌科技(广州)有限公司 | 基于区块链的单节点记账方法、系统、设备和存储介质 |
CN111310206A (zh) * | 2020-02-12 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种数据加密方法、节点设备及存储介质 |
CN111339199A (zh) * | 2020-02-28 | 2020-06-26 | 中国工商银行股份有限公司 | 一种区块链密钥恢复方法和装置 |
CN111768195A (zh) * | 2020-06-23 | 2020-10-13 | 江苏荣泽信息科技股份有限公司 | 加速区块链数据的计算的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112953715B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8402272B2 (en) | Master unit and slave unit | |
US8347079B2 (en) | Method and apparatus for managing authentication information in home network | |
US10142119B2 (en) | Communication method and apparatus using changing destination and return destination ID's | |
WO2010054578A1 (zh) | Wi-Fi点对点网络实现添加设备的方法、系统和设备 | |
WO2018177905A1 (en) | Hybrid key exchange | |
JP2013539248A (ja) | 通信ネットワークにおける安全なノード承認 | |
US10931447B2 (en) | Data receiving device, data transmission system, and key generating device | |
TW201618492A (zh) | 在安全系統中終端的改良式安裝 | |
EP3189618A1 (en) | Cryptographic system arranged for key sharing | |
JP2006065660A (ja) | 端末機器、情報配信サーバ、および情報配信方法 | |
CN104836784A (zh) | 一种信息处理方法、客户端和服务器 | |
CN111541776A (zh) | 一种基于物联网设备的安全通信装置及系统 | |
CN110602133B (zh) | 智能合约处理方法、区块链管理设备及存储介质 | |
CN112953715B (zh) | 一种区块链节点动态识别密码算法的方法 | |
CN110784318B (zh) | 群密钥更新方法、装置、电子设备、存储介质及通信系统 | |
CN111461718A (zh) | 区块链节点的接入方法、装置及系统 | |
CN110944052A (zh) | 文件传输方法、装置、系统、电子设备及存储介质 | |
CN111031012A (zh) | 一种实现dds域参与者安全认证的方法 | |
KR102377265B1 (ko) | 네트워크 내의 장치 | |
CN108337083B (zh) | 自动化测试过程中生成密钥的方法及装置 | |
CN115412288A (zh) | 一种密钥管理方法及装置 | |
CN114501473B (zh) | Mesh网络的配网方法、电子设备及计算机可读存储介质 | |
CN114157470A (zh) | 一种令牌管理方法和装置 | |
CN115913521A (zh) | 基于量子密钥进行身份认证的方法 | |
CN112422275A (zh) | Uart通信中的秘钥协商方法、系统、设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |