CN112491846A - 一种跨链的区块链通信方法及装置 - Google Patents
一种跨链的区块链通信方法及装置 Download PDFInfo
- Publication number
- CN112491846A CN112491846A CN202011294886.7A CN202011294886A CN112491846A CN 112491846 A CN112491846 A CN 112491846A CN 202011294886 A CN202011294886 A CN 202011294886A CN 112491846 A CN112491846 A CN 112491846A
- Authority
- CN
- China
- Prior art keywords
- cross
- chain
- node
- request
- proxy node
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3239—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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例提供了一种跨链的区块链通信方法及装置,该方法包括跨链验证节点接收第一代理节点发送的第一跨链密文,解密第一跨链密文得到第二跨链请求并验证第二跨链请求,在验证通过第二跨链请求后,触发第二代理节点所在的区块链系统处理第二跨链请求。由于代理节点用于对区块链系统内的节点的跨链消息进行转收发,且第一跨链密文是第一代理节点对本链节点发起的第一跨链请求进行共识后生成的,并在验证通过第二跨链请求后触发第二代理节点所在的区块链系统处理第二跨链请求,如此可以确保跨链通信的安全性。此外,该技术方案无需管理和维护大量用户证书的生成、颁发、撤销等,因此可以节约计算资源和存储资源。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种跨链的区块链通信方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
现阶段,采用面向CA(Certificate Authority,证书颁发机构)的准入机制用于物联网环境中各区块链平台(多个物联网设备分布在不同的区块链平台)之间的跨链通信。即,各区块链平台中的物联网设备用户在进行跨链通信前都会向所属管理节点发送证书请求文件,并在所属管理节点使用自己的私钥对证书请求文件进行签发后获取身份证书,以便在进行跨链通信时利用身份证书进行身份认证。然而,这种处理方式由于面向CA的准入机制需要管理和维护大量用户证书的生成、颁发、撤销等,因此需要消耗大量的计算资源和存储资源,导致跨链通信的效率低。
综上,目前亟需一种跨链的区块链通信方法,用以确保跨链通信的安全性,并可以节约计算资源和存储资源。
发明内容
本发明实施例提供了一种跨链的区块链通信方法及装置,用以确保跨链通信的安全性,并可以节约计算资源和存储资源。
第一方面,本发明实施例提供了一种跨链的区块链通信方法,适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发;所述方法包括:
跨链验证节点接收第一代理节点发送的第一跨链密文;所述第一跨链密文是所述第一代理节点对本链节点发起的第一跨链请求进行共识后生成的;
所述跨链验证节点解密所述第一跨链密文得到第二跨链请求并验证所述第二跨链请求;
所述跨链验证节点在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
上述技术方案中,通过解密第一跨链密文得到第二跨链请求并验证第二跨链请求,在验证通过第二跨链请求后触发第二代理节点所在的区块链系统处理第二跨链请求。由于代理节点用于对区块链系统内的节点的跨链消息进行转收发,且第一跨链密文是第一代理节点对本链节点发起的第一跨链请求进行共识后生成的,并在验证通过第二跨链请求后触发第二代理节点所在的区块链系统处理第二跨链请求,如此可以确保跨链通信的安全性。此外,该技术方案无需管理和维护大量用户证书的生成、颁发、撤销等,因此可以节约计算资源和存储资源,从而可以解决现有技术中存在面向CA的准入机制需要管理和维护大量用户证书的生成、颁发、撤销等,导致消耗大量的计算资源和存储资源的问题。
可选地,所述第一跨链密文是所述第一代理节点基于IBE算法生成的IBE密文;所述基于IBE算法生成的IBE密文为通过IBE算法对第一拼接消息进行加密得到的;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名;
所述跨链验证节点解密所述第一跨链密文得到第二跨链请求并验证所述第二跨链请求,包括:
所述跨链验证节点通过IBE算法解密所述第一跨链密文,得到第二拼接消息;所述第二拼接消息包括所述第二跨链请求、所述第一摘要和所述第一签名;
所述跨链验证节点生成所述第二跨链请求的第二摘要;
所述跨链验证节点确定所述第二摘要与所述第一摘要是否一致;
所述跨链验证节点根据所述第二摘要生成第二签名;
所述跨链验证节点确定所述第二签名与所述第一签名是否一致。
上述技术方案中,通过确定第二摘要与第一摘要是否一致,以及确定第二签名与第一签名是否一致,如此可以验证代理节点发送的消息的真实性,并可以避免消息在发送过程中存在篡改的风险,从而可以验证代理节点的身份信息的真实性。
可选地,所述第一摘要的第一签名是利用所述第一代理节点的私钥进行的基于双线性映射生成的签名;
通过下述方式生成所述第一签名:
所述第一代理节点的公钥、私钥存在如下关系:
d1=sQ1
根据双线性映射配对的性质,得到e(sQj,μ1Q1)=e(μ1Qj,sQ1),并基于所述第一代理节点的私钥,生成所述第一签名;所述第一签名满足如下形式:
e(sQj,μ1Q1)=e(μ1Qj,sQ1)=e(μQj,d1)
其中,e(μQj,d1)为所述第一签名,Q1为所述第一代理节点的公钥,μ为所述第一摘要,μ1为所述第二摘要,Qj为第二代理节点或公证人节点的公钥,d1为所述第一代理节点的私钥,s为第三方PKG的主密钥。
上述技术方案中,通过基于双线性映射配对的性质,生成摘要的签名,如此可以确保生成的签名的不可篡改性、可验证性,并可以为后续验证代理节点的身份信息的真实性提供支持。
可选地,所述跨链验证节点为公证人节点;
所述跨链验证节点在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求,包括:
所述公证人节点在验证通过所述第二跨链请求后,根据所述第二跨链请求生成第二跨链密文;
所述公证人节点将所述第二跨链密文发送至所述第二代理节点以通过所述第二代理节点所在的区块链系统处理所述第二跨链密文。
上述技术方案中,若跨链验证节点为公证人节点,则公证人节点在验证通过第二跨链请求后,根据第二跨链请求生成第二跨链密文,并将第二跨链密文发送至第二代理节点,如此基于公证人节点验证第一代理节点的身份,并通过公证人节点实现第一代理节点与第二代理节点的安全通信,从而可以确保跨链交互过程中数据的安全性。
可选地,所述根据所述第二跨链请求生成第二跨链密文,包括:
所述跨链验证节点确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统是否具有相同的配置;
所述跨链验证节点若确定具有相同的配置,则根据所述第二跨链请求生成所述第二跨链密文;
所述跨链验证节点若确定不具有相同的配置,则根据所述第二代理节点所在的区块链系统的配置调整所述第二跨链请求为第三跨链请求,根据所述第三跨链请求生成所述第二跨链密文。
上述技术方案中,通过在确定第一代理节点所在的区块链系统与第二代理节点所在的区块链系统不具有相同的配置时,根据第二代理节点所在的区块链系统的配置调整第二跨链请求,如此可以确保调整后的第二跨链请求的数据格式与第二代理节点所在的区块链系统的配置相匹配,以便实现第一代理节点与第二代理节点的安全通信。
可选地,所述跨链验证节点为第二代理节点;
在所述跨链验证节点接收第一代理节点发送的第一跨链密文之前,还包括:
所述第二代理节点与所述第一代理节点相互进行身份确认;所述身份确认是所述第一代理节点在接收到公证人节点配置一致指示后发起的;所述配置一致指示是所述公证人节点确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统具有相同的配置时发送的。
上述技术方案中,若跨链验证节点为第二代理节点,则第一代理节点在接收到配置一致指示后,与第二代理节点相互进行身份确认,如此可以准确地验证出第一代理节点、第二代理节点的身份信息的真实性,以便确保后续跨链通信的安全性,并为后续代理节点间发生消息真实性的争议时提供消息不可否认性的支持。
可选地,所述第二代理节点与所述第一代理节点相互进行身份确认,包括:
所述第二代理节点接收所述第一代理节点发送的第一标识;
所述第二代理节点基于第一随机数生成第一认证信息并发送给所述第一代理节点;所述第一认证信息用于所述第一代理节点对所述第二代理节点进行身份认证;
所述第二代理节点接收所述第一代理节点发送的第二认证信息并对所述第二认证信息进行验证;所述第二认证消息是所述第一代理节点基于第二随机数生成的。
上述技术方案中,第二代理节点基于第一随机数生成第一认证信息并发送给第一代理节点,以及第一代理节点基于第二随机数生成第二认证信息并发送给第二代理节点。如此,通过验证第一认证信息、第二认证信息,可以准确地验证出第一代理节点、第二代理节点的身份信息的真实性。
可选地,所述跨链验证节点为公证人节点;
所述第一跨链密文是所述第一代理节点通过签名机制生成的签名密文;所述签名密文包括对所述第一跨链请求的签名和所述第一跨链请求;
所述跨链验证节点在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求,包括:
所述公证人节点在确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统不具有相同的配置时,根据所述第二代理节点所在的区块链系统的配置调整所述第二跨链请求为第三跨链请求,根据所述第三跨链请求生成所述第二跨链密文;
所述公证人节点将所述第二跨链密文发送给所述第二代理节点。
上述技术方案中,若跨链验证节点为公证人节点,则公证人节点在确定第一代理节点所在的区块链系统与第二代理节点所在的区块链系统不具有相同的配置时,根据第二代理节点所在的区块链系统的配置调整第二跨链请求,如此可以确保调整后的第二跨链请求的数据格式与第二代理节点所在的区块链系统的配置相匹配,以便实现第一代理节点与第二代理节点的安全通信。
第二方面,本发明实施例提供了一种跨链的区块链通信方法,适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发;所述方法包括:
第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文;
所述第一代理节点将所述第一跨链密文发送给跨链验证节点;所述跨链验证节点用于解密所述第一跨链密文得到第二跨链请求并在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
上述技术方案中,第一代理节点通过对本链节点发起的第一跨链请求进行共识后,基于第一跨链请求生成第一跨链密文,并将第一跨链密文发送给跨链验证节点,以便跨链验证节点解密第一跨链密文得到第二跨链请求并在验证通过第二跨链请求后,触发第二代理节点所在的区块链系统处理第二跨链请求。由于代理节点用于对区块链系统内的节点的跨链消息进行转收发,且第一跨链密文是第一代理节点对本链节点发起的第一跨链请求进行共识后生成的,并在跨链验证节点验证通过第二跨链请求后触发第二代理节点所在的区块链系统处理第二跨链请求,如此可以确保跨链通信的安全性。此外,该技术方案无需管理和维护大量用户证书的生成、颁发、撤销等,因此可以节约计算资源和存储资源。
可选地,所述第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文,包括:
第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成签名密文;
所述第一代理节点将所述第一跨链密文发送给跨链验证节点之后,还包括:
所述第一代理节点接收所述跨链验证节点发送的配置一致指示;所述配置一致指示是所述跨链验证节点对所述签名密文验证通过且所述第一代理节点所在的区块链系统与第二代理节点所在的区块链系统具有相同的配置时发送的;
所述第一代理节点通过IBE算法对第一拼接消息进行加密得到IBE密文;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名;
所述第一代理节点将所述IBE密文发送给所述第二代理节点。
上述技术方案中,在接收到跨链验证节点发送的配置一致指示后,通过IBE算法对第一拼接消息进行加密得到IBE密文,并将IBE密文发送给第二代理节点,如此可以避免代理节点间进行跨链通信时存在作恶的风险,并可以确保代理节点间跨链通信的安全性。
可选地,所述第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文,包括:
第一代理节点对本链节点发起的第一跨链请求进行共识后,通过IBE算法对第一拼接消息进行加密得到IBE密文;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名。
上述技术方案中,通过基于IBE算法对第一拼接消息进行加密得到IBE密文,如此可以避免生成的跨链密文存在泄漏的风险,并可以确保生成的跨链密文的安全性。
可选地,根据下述方式确定所述第一代理节点:
针对所述区块链系统内的各节点,基于预设的选举规则,确定出所述各节点的局部密度;
针对每个节点,确定所述节点的局部密度是否为最大;若所述节点的局部密度为最大,则确定出所述节点与其它节点间的最大距离;若所述节点的局部密度不为最大,则确定出所述节点与其它节点间的最小距离;
通过对所述各节点的局部密度、最大距离、最小距离进行处理,将局部密度最大且距离最大对应的节点确定为所述第一代理节点。
上述技术方案中,通过预设的选举规则,确定出每个节点的局部密度、节点间距离,并对各节点的局部密度、节点间距离进行处理,如此可以准确高效地确定出代理节点,并可以确保代理节点的选取随机公平。
第三方面,本发明实施例提供了一种跨链的区块链通信装置,适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发;所述装置包括:
接收单元,用于接收第一代理节点发送的第一跨链密文;所述第一跨链密文是所述第一代理节点对本链节点发起的第一跨链请求进行共识后生成的;
第一处理单元,用于解密所述第一跨链密文得到第二跨链请求并验证所述第二跨链请求;在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
可选地,所述第一跨链密文是所述第一代理节点基于IBE算法生成的IBE密文;所述基于IBE算法生成的IBE密文为通过IBE算法对第一拼接消息进行加密得到的;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名;
所述第一处理单元还用于:
通过IBE算法解密所述第一跨链密文,得到第二拼接消息;所述第二拼接消息包括所述第二跨链请求、所述第一摘要和所述第一签名;
生成所述第二跨链请求的第二摘要;
确定所述第二摘要与所述第一摘要是否一致;
根据所述第二摘要生成第二签名;
确定所述第二签名与所述第一签名是否一致。
可选地,所述第一摘要的第一签名是利用所述第一代理节点的私钥进行的基于双线性映射生成的签名;
所述第一处理单元具体用于:
所述第一代理节点的公钥、私钥存在如下关系:
d1=sQ1
根据双线性映射配对的性质,得到e(sQj,μ1Q1)=e(μ1Qj,sQ1),并基于所述第一代理节点的私钥,生成所述第一签名;所述第一签名满足如下形式:
e(sQj,μ1Q1)=e(μ1Qj,sQ1)=e(μQj,d1)
其中,e(μQj,d1)为所述第一签名,Q1为所述第一代理节点的公钥,μ为所述第一摘要,μ1为所述第二摘要,Qj为第二代理节点或公证人节点的公钥,d1为所述第一代理节点的私钥,s为第三方PKG的主密钥。
可选地,所述跨链验证节点为公证人节点;
所述第一处理单元具体用于:
在验证通过所述第二跨链请求后,根据所述第二跨链请求生成第二跨链密文;
将所述第二跨链密文发送至所述第二代理节点以通过所述第二代理节点所在的区块链系统处理所述第二跨链密文。
可选地,所述第一处理单元具体用于:
确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统是否具有相同的配置;
若确定具有相同的配置,则根据所述第二跨链请求生成所述第二跨链密文;
若确定不具有相同的配置,则根据所述第二代理节点所在的区块链系统的配置调整所述第二跨链请求为第三跨链请求,根据所述第三跨链请求生成所述第二跨链密文。
可选地,所述跨链验证节点为第二代理节点;
所述第一处理单元还用于:
与所述第一代理节点相互进行身份确认;所述身份确认是所述第一代理节点在接收到公证人节点配置一致指示后发起的;所述配置一致指示是所述公证人节点确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统具有相同的配置时发送的。
可选地,所述第一处理单元具体用于:
接收所述第一代理节点发送的第一标识;
基于第一随机数生成第一认证信息并发送给所述第一代理节点;所述第一认证信息用于所述第一代理节点对所述第二代理节点进行身份认证;
接收所述第一代理节点发送的第二认证信息并对所述第二认证信息进行验证;所述第二认证消息是所述第一代理节点基于第二随机数生成的。
可选地,所述跨链验证节点为公证人节点;
所述第一跨链密文是所述第一代理节点通过签名机制生成的签名密文;所述签名密文包括对所述第一跨链请求的签名和所述第一跨链请求;
所述第一处理单元具体用于:
在确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统不具有相同的配置时,根据所述第二代理节点所在的区块链系统的配置调整所述第二跨链请求为第三跨链请求,根据所述第三跨链请求生成所述第二跨链密文;
将所述第二跨链密文发送给所述第二代理节点。
第四方面,本发明实施例提供了一种跨链的区块链通信装置,适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发;所述装置包括:
生成单元,用于对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文;
第二处理单元,用于将所述第一跨链密文发送给跨链验证节点;所述跨链验证节点用于解密所述第一跨链密文得到第二跨链请求并在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
可选地,所述第二处理单元具体用于:
对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成签名密文;
将所述第一跨链密文发送给跨链验证节点之后,还包括:
接收所述跨链验证节点发送的配置一致指示;所述配置一致指示是所述跨链验证节点对所述签名密文验证通过且所述第一代理节点所在的区块链系统与第二代理节点所在的区块链系统具有相同的配置时发送的;
通过IBE算法对第一拼接消息进行加密得到IBE密文;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名;
将所述IBE密文发送给所述第二代理节点。
可选地,所述第二处理单元具体用于:
对本链节点发起的第一跨链请求进行共识后,通过IBE算法对第一拼接消息进行加密得到IBE密文;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名。
可选地,所述第二处理单元具体用于:
针对所述区块链系统内的各节点,基于预设的选举规则,确定出所述各节点的局部密度;
针对每个节点,确定所述节点的局部密度是否为最大;若所述节点的局部密度为最大,则确定出所述节点与其它节点间的最大距离;若所述节点的局部密度不为最大,则确定出所述节点与其它节点间的最小距离;
通过对所述各节点的局部密度、最大距离、最小距离进行处理,将局部密度最大且距离最大对应的节点确定为所述第一代理节点。
第五方面,本发明实施例提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行跨链的区块链通信方法。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行跨链的区块链通信方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种跨链通信的系统架构的示意图;
图2为本发明实施例提供的一种跨链的区块链通信方法的流程示意图;
图3为本发明实施例提供的一种确定代理节点公钥、私钥的示意图;
图4为本发明实施例提供的一种跨链的区块链通信装置的结构示意图;
图5为本发明实施例提供的另一种跨链的区块链通信装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面首先对本发明实施例中涉及的部分用语进行解释说明,以便于本领域技术人员进行理解。
(1)双线性映射:
设G1是生成元为P的加法循环群,阶为p,G2是与G1具有相同阶的乘法循环群,a,b是Zp *(p阶素数循环群)中的元素。假设G1和G2的离散对数问题是难解的。则双线性映射定义为满足以下关系的映射e:G1×G1→G2:
a双线性(bilinearity):
对于任意的a,b∈Zp *,e(aP,bQ)=e(P,Q)ab成立,P、Q是G1的任意点。
b非退化性(non-degeneracy):
若P是G1的生成元,则e(P,P)是G2的生成元。
c可计算性(computability):
对于任意的a,b∈G1,存在有效的算法计算e(P,Q);
通过在椭圆曲线上计算Tate配对或者Weil配对可以得出双线性映射。IBE系统就是建立在有限域上超奇异椭圆曲线上的Weil配对来构造的。Weil配对e:G1×G1→G2满足以下性质:
对于任意a∈Zp *和的倍点aP,有e(aP,Q)=e(P,Q)a=e(P,aQ)。
(2)PKG(Private Key Generator,私钥生成器):一个可信的第三方实体,负责生成系统参数,根据用户提供的身份信息生成私钥并通过安全信道发送给用户。
PKG是一个可信第三方,内置初始化算法,可以生成系统参数。系统参数包括椭圆曲线上的双线性映射e、椭圆曲线的阶数q、椭圆曲线上的q阶加法循环群G1、椭圆曲线上的q阶乘法循环群G2、椭圆曲线的生成元P、系统主密钥s、系统公钥Ppub。具体地可以如表1所示。
表1
符号 | 含义 |
q | 椭圆曲线的阶数,是质数 |
e | 双线性映射,G<sub>1</sub>×G<sub>1</sub>→G<sub>2</sub> |
G<sub>1</sub> | q阶加法循环群 |
G<sub>2</sub> | q阶乘法循环群 |
P | G<sub>1</sub>的生成元 |
s | PKG主密钥,s∈Z<sub>p</sub><sup>*</sup> |
P<sub>pub</sub> | PKG公钥,P<sub>pub</sub>=s×P |
然后,PKG需要选择三个哈希函数,分别是H1:{0,1}*→G1,H2:G2→{0,1}n,H3:{0,1}n→Zp *。系统参数初始化完成后,PKG公开系统参数(q,G1,G2,P,e,Ppub,H1,H2,H3),主密钥s由PKG保管。
(3)IBE(Identity-Based Encryption,基于身份的加密):一种公钥加密方案,将可以唯一标识用户身份的任意字符串数据(比如Email地址)当作加密的公钥使用。
其中,IBE算法是由系统初始化、密钥提取、加密、解密这四个算法构成的。
a系统初始化算法:输入一个安全参数1k,运行系统初始化算法,生成系统参数params和主密钥s。系统参数params向用户公开,主密钥s保存在私钥生成器PKG上;
具体过程为:设G1是由生成元P生成的p阶加法循环群,G2是p阶乘法循环群,双线性映射e:G1×G1→G2。选取两个哈希函数H1:{0,1}*→G1,H2:G2→{0,1}n,其中n表示消息长度。然后,PKG选取随机数s作为主密钥,s∈Zp *。然后计算公钥Ppub=s×P。最后,保密私钥,公开params={G1,G2,n,p,e,P,Ppub,H1,H2}。
b密钥提取算法:输入用户身份ID、公共参数params和主密钥s,运行密钥提取算法,生成用户私钥dID,并且返回相对应的私钥。
具体过程为:通信方将自己的身份信息IDi发送给PKG,然后PKG计算对应公钥Qi=H1(IDi),私钥di=s×Qi。
c加密算法:输入身份ID、系统参数params和明文m,运行加密算法,生成密文c。
具体过程为:假设发送方要发送消息m给接收者的身份IDB。首先,随机选取r∈Zp *;然后,计算最后发送密文c=(V,W)。其中,P为加法循环群G1的生成元,哈希函数H2:G2→{0,1}n,Ppub为PKG的公钥Ppub=s×P。
d解密算法:输入密文c、用户身份ID、ID对应的私钥dID和系统参数params。运行解密算法,输出m则为解密成功,否则输出⊥则表示解密失败。
IBE算法满足一致性要求,对公钥为ID的用户运行密钥提取算法生成其用户私钥dID时,对于在明文空间的任意m来说,等式Decrypt(params,ID,dID,c)=m成立,其中,密文c=Encrypt(params,ID,m)。
(4)CA(Certificate Authority,证书颁发机构):一个可信的第三方实体,负责颁发数字证书和管理公钥证书,确保用户收到可以有效验证身份的唯一证书。
(5)联盟链:联盟链是指由若干个机构共同参与管理的区块链,属于一类介于公有链和私有链之间的混合式区块链;其中每个机构运行并管理着链上一个或多个节点,其数据只允许联盟内各机构进行读写,各机构间可发送交易,并共同来记录交易数据。
(6)共识算法:共识算法是一种程序,通过该程序区块链网络的所有节点都可以就分布式账本的当前状态达成共识。这样,共识算法可在区块链网络中实现可靠性,并在分布式计算环境中的未知节点之间建立信任。本质上,共识协议确保添加到区块链中的每个新区块都是区块链中所有节点都同意的唯一版本。
(7)PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)共识算法:可容忍不超过三分之一的故障节点和作恶节点,在少数节点作恶(如伪造消息)场景中达成共识。
(8)公证人机制:当跨链双方互不信任且信息不对称时,最简单的方法是寻找双方都信任的中介。公证人机制是通过选举一个或一组可信节点作为公证人,对区块链Y上是否发生了特定事件进行验证,并向区块链X上的节点进行证明。公证人群体通过特定的共识算法对事件是否发生达成共识。公证人模式是目前应用最广泛的一种模式。公证人机制是实现区块链之间互操作性的方案中较易实现的一种,无需进行复杂的工作量证明或权益证明,易于对接现有的区块链系统。
如上介绍了本发明实施例中涉及的部分用语,下面对本发明实施例涉及的技术特征进行介绍。
为了便于理解本发明实施例,首先以图1中示出的系统架构为例说明适用于本发明实施例跨链通信的系统架构。该跨链通信的系统架构可以应用于物联网环境下的物联网各系统平台(物联网设备分布在不同的物联网平台)的跨链通信,在实际应用场景中,本发明对此并不作限定。如图1所示,该系统架构可以包括至少两个区块链(区块链1、区块链2等)、跨链公证人102。其中,每一个区块链与跨链公证人102进行连接,比如可以通过有线方式连接,或者通过无线方式连接,具体不作限定。
其中,区块链1或区块链2等通过选举算法选举出自己的代理节点,并将选举出的代理节点作为对外通信的节点。对于区块链上的跨链请求,则由代理节点统一处理,并由代理节点通过区块链共识模块对跨链请求进行确认,然后在对跨链请求共识确认后,根据不同的应用需求,并基于跨链请求生成跨链信息或跨链密文。在发送跨链请求之前,代理节点首先将代理节点ID以及所属区块链的系统配置信息一起发送给跨链公证人。
跨链公证人102负责记录代理节点ID和所属区块链的系统配置信息的映射关系,并将代理节点ID发送给PKG。PKG通过IBE算法计算出跨链公证人和代理节点ID对应的私钥,通过安全方式返还给跨链公证人和代理节点。此外,跨链公证人102会对代理节点发送的跨链信息或跨链密文进行验证,并在验证成功后才进行后续通信处理。
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2示例性的示出了本发明实施例提供的一种跨链的区块链通信方法的流程,该流程可以由跨链的区块链通信装置执行。
如图2所示,该流程具体包括:
步骤201,第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文。
步骤202,所述第一代理节点发送所述第一跨链密文给跨链验证节点。
步骤203,所述跨链验证节点解密所述第一跨链密文得到第二跨链请求并验证所述第二跨链请求。
步骤204,所述跨链验证节点在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
上述步骤201和步骤202中,在第一代理节点对本链节点发起的第一跨链请求进行共识之前,需要通过预设的选举算法确定出第一代理节点。即,针对区块链系统内的各节点,基于预设的选举规则,确定出各节点的局部密度。并针对每个节点,确定该节点的局部密度是否为最大;若该节点的局部密度为最大,则确定出该节点与其它节点间的最大距离;若该节点的局部密度不为最大,则确定出该节点与其它节点间的最小距离。再通过对各节点的局部密度、最大距离、最小距离进行处理,将局部密度最大且距离最大对应的节点确定为第一代理节点,如此可以准确高效地确定出代理节点。然后在确定出第一代理节点后,第一代理节点可以代理处理本链节点发起的跨链请求。例如,第一代理节点对本链节点发起的第一跨链请求进行共识后,基于第一跨链请求生成第一跨链密文。即,针对第一代理节点所在的区块链系统中任一节点发起的跨链请求,第一代理节点都会对该跨链请求进行共识确认。在确定该跨链请求共识成功后,根据哈希算法或IBE算法对跨链请求进行处理,生成第一跨链密文。然后将第一跨链密文发送给跨链验证节点。如此,通过对跨链请求进行共识确认以及哈希算法或IBE算法对跨链请求进行处理,可以确保生成的第一跨链密文的安全性。其中,需要说明的是,该第一跨链密文可以是基于代理节点的私钥生成的签名密文,也可以是基于IBE算法生成的IBE密文。
上述步骤203和步骤204中,跨链验证节点接收第一代理节点发送的第一跨链密文。若第一跨链密文是第一代理节点基于IBE算法生成的IBE密文,则跨链验证节点通过IBE算法解密第一跨链密文,得到第二拼接消息,其中,第二拼接消息包括所述第二跨链请求、第一摘要和第一签名。再基于第二跨链请求生成第二跨链请求的第二摘要,并确定第二摘要与第一摘要是否一致。同时,根据第二摘要生成第二签名,并确定第二签名与第一签名是否一致。如此,通过确定第二摘要与第一摘要是否一致,以及确定第二签名与第一签名是否一致,如此可以验证代理节点发送的消息的真实性,并可以避免消息在发送过程中存在篡改的风险,从而可以验证代理节点的身份信息的真实性。其中,基于IBE算法生成的IBE密文为通过IBE算法对第一拼接消息进行加密得到的;第一拼接消息包括第一跨链请求、第一跨链请求的第一摘要和第一摘要的第一签名。
其中,第一摘要的第一签名是利用第一代理节点的私钥进行的基于双线性映射生成的签名;
通过下述方式生成所述第一签名:
第一代理节点的公钥、私钥存在如下关系:
d1=sQ1
根据双线性映射配对的性质,得到e(sQj,μ1Q1)=e(μ1Qj,sQ1),并基于第一代理节点的私钥,生成第一签名;第一签名满足如下形式:
e(sQj,μ1Q1)=e(μ1Qj,sQ1)=e(μQj,d1)
其中,e(μQj,d1)为第一签名,Q1为第一代理节点的公钥,μ为第一摘要,μ1为第二摘要,Qj为第二代理节点或公证人节点的公钥,d1为第一代理节点的私钥,s为第三方PKG的主密钥。
在第一跨链密文是第一代理节点基于IBE算法生成的IBE密文时,若跨链验证节点为公证人节点,则公证人节点在验证第二跨链请求成功后,根据第二跨链请求生成第二跨链密文。即,公证人节点确定第一代理节点所在的区块链系统与第二代理节点所在的区块链系统是否具有相同的配置。若确定具有相同的配置,则根据第二跨链请求生成第二跨链密文;若确定不具有相同的配置,则根据第二代理节点所在的区块链系统的配置调整第二跨链请求为第三跨链请求,根据第三跨链请求生成第二跨链密文,如此可以确保调整后的第二跨链请求的数据格式与第二代理节点所在的区块链系统的配置相匹配,以便实现第一代理节点与第二代理节点的安全通信。然后将第二跨链密文发送至第二代理节点以通过第二代理节点所在的区块链系统处理第二跨链密文。
在第一跨链密文是第一代理节点基于IBE算法生成的IBE密文时,若跨链验证节点为第二代理节点,则在接收第一代理节点发送的第一跨链密文之前,第二代理节点与第一代理节点相互进行身份确认。即,第二代理节点接收第一代理节点发送的第一标识,并基于第一随机数生成第一认证信息,之后将第一认证信息发送给第一代理节点,第一认证信息用于第一代理节点对第二代理节点进行身份认证。同时,接收第一代理节点发送的第二认证信息并对第二认证信息进行验证,第二认证消息是第一代理节点基于第二随机数生成的。如此,通过验证第一认证信息、第二认证信息,可以准确地验证出第一代理节点、第二代理节点的身份信息的真实性。然后在确定身份认证成功后,第一代理节点基于IBE算法和第二跨链请求生成第二跨链密文,并将第二跨链密文发送给第二代理节点以通过第二代理节点所在的区块链系统处理第二跨链密文。其中,身份确认是第一代理节点在接收到公证人节点配置一致指示后发起的;配置一致指示是公证人节点确定第一代理节点所在的区块链系统与第二代理节点所在的区块链系统具有相同的配置时发送的。
若第一跨链密文是基于代理节点的私钥生成的签名密文,跨链验证节点为公证人节点。公证人节点使用自己的私钥对签名密文进行解密,得到跨链请求以及跨链请求的摘要的签名。再使用第一代理节点的公钥对该签名进行验签,以确定该签名密文是否来自于第一代理节点,如此可以验证第一代理节点发送的签名密文的真实性。公证人节点在验证签名成功后,确定第一代理节点所在的区块链系统与第二代理节点所在的区块链系统是否具有相同的配置,若确定第一代理节点所在的区块链系统与第二代理节点所在的区块链系统具有相同的配置,则将签名密文验证通过且第一代理节点所在的区块链系统与第二代理节点所在的区块链系统具有相同的配置的消息发送给第一代理节点。第一代理节点与第二代理节点之间进行相互身份认证,并在在确定身份认证成功后,第一代理节点基于IBE算法和第二跨链请求生成第二跨链密文,并将第二跨链密文发送给第二代理节点以通过第二代理节点所在的区块链系统处理第二跨链密文。若确定第一代理节点所在的区块链系统与第二代理节点所在的区块链系统不具有相同的配置,则根据第二代理节点所在的区块链系统的配置调整第二跨链请求为第三跨链请求,基于IBE算法和第三跨链请求生成第二跨链密文,如此可以确保调整后的第二跨链请求的数据格式与第二代理节点所在的区块链系统的配置相匹配,以便实现第一代理节点与第二代理节点的安全通信。然后将第二跨链密文发送至第二代理节点以通过第二代理节点所在的区块链系统处理第二跨链密文。
由于面向CA的准入机制需要管理和维护大量用户证书的生成、颁发、撤销等行为,这将消耗大量计算资源和存储资源,因此不适合应用于用户数量庞大、设备资源受限的物联网环境中。而基于IBE算法的跨链通信方案可以将能够唯一标识用户身份信息的某个字符串直接当作公钥使用,如此可以省去面向CA的准入机制中公钥基础设施认证和管理用户证书的过程,并有助于节约大量计算资源和存储资源。因此,本发明实施例采用基于IBE算法的跨链通信方案,能很好地适用于用户数量庞大,设备资源受限的物联网环境。
鉴于此,下面对本发明实施例中跨链通信的实施过程进行具体描述。
Step1:区块链选举代理节点。
在不同的应用场景下,区块链代理节点的选举会依据具体应用而采取不同的策略,有很多需要考虑的因素。不同的区块链网络,会根据服务容量、交易效率的不同需求,接纳具有高算力并能高速接入区块链网络的计算节点。本发明实施例对于区块链代理节点的选取,可以通过采用选举算法来实现,比如本发明实施例采用的选举算法是基于密度峰值的聚类算法,在实际应用场景中,也可以采用其它选举算法,本发明实施例对此并不作限定。即,对具有高算力的节点中计算相应的参数进行对比选择,最后得到各区块链的代理节点。该聚类算法基于以下假设:聚类中心被具有较低局部密度的邻居节点包围,并且它们与具有较高局部密度的任何节点之间的距离都比较大,将聚类中心定义为数据点密度的局部最大值。基于此,可以根据不同区块链中节点的密集程度来选择代理节点。
示例性地,给定样本应用节点D={x1,x2,…,xm},共识服务节点集合为C={C1,C2,…,Ck},k为共识服务节点数,跨链交换的网络传输代价为:
基于上述公式可知,E值越小则网络传输代价越小。如此,在应用节点固定的情况下,可以通过对共识服务节点和跨链交换节点的合理设置使网络传输代价最小达到最优,同时区块链网络中交易和共识的效率也将达到最高。
对于每个满足性能要求的区块链节点i,计算出两个参数,即,局部密度ρi和该节点与具有更高密度的节点的距离δi。这两个参数仅取决于区块链节点(假定满足三角不等式)之间的距离dij。其中,区块链节点的局部密度定义为:
其中,当x<0,χ(x)=1;x≥0,χ(x)=0。dij是节点i到节点j之间的距离,dc是截断距离。基本上,ρi等于比dc更靠近节点i的节点数量。并可以根据不同区块链网络节点规模对参数进行设置。
通过计算节点i与密度更高的任何其它节点之间的最小距离得到δi。该最小距离的计算公式为:
对于密度最高的节点i,则通过下述公式计算出节点i与其它节点之间的最大距离:
基于此,只有对于密度为局部或全局最大值的节点,δi的值远远大于典型的最近邻距离。因此,根据局部密度ρi和距离δi,可以构造出决策图,并基于决策图,将具有较大距离δi且同时具有较大局部密度ρi的节点定义为聚类中心(代理节点)。如此,通过这两个参数(ρi和δi)的计算可以得到最优交换节点(代理节点),计算得到的最优交换节点会使其它节点与跨链交换节点交换数据的代价和最小,使跨链交换的网络传输代价最小。
Step2:代理节点将代理节点的ID以及所属区块链的系统配置信息发送给跨链公证人,以使跨链公证人基于代理节点的ID生成对应的公钥、私钥。
在确定出各区块链的代理节点之后,将各代理节点的ID、所属区块链的系统配置信息发送给跨链公证人,以便跨链公证人基于各代理节点的ID计算出各代理节点的公钥、私钥。其中,各代理节点的公钥、私钥用于各代理节点进行安全通信。
示例性地,图3为本发明实施例提供的一种确定代理节点公钥、私钥的示意图。下面结合图3对本发明实施例中确定代理节点公钥、私钥的实施过程进行描述。
a、PKG根据IBE初始化算法,生成系统参数(部分公开)和主密钥(保密)。
b、PKG接收跨链公证人发送的身份信息(比如ID),并根据跨链公证人的身份信息、系统参数以及主密钥计算出跨链公证人的私钥,然后通过安全信道将跨链公证人的私钥发送给跨链公证人。
c、跨链公证人接收各代理节点发送的ID以及所属区块链的系统配置信息,并记录各代理节点的ID和所属区块链的系统配置信息的映射关系,然后将各代理节点的ID发送给PKG,以使PKG根据各代理节点的ID、系统参数以及主密钥计算出各代理节点的公钥、私钥。其中,所属区块链的系统配置信息可以包括区块链系统底层架构、数据结构、接口协议、安全机制等信息。
d、PKG注册各代理节点的ID,并根据各代理节点的ID计算各代理节点的公钥QID=H1(ID)以及私钥dID=s×QID,然后将各代理节点的私钥通过安全信道发送给各代理节点,并将各代理节点的公钥通过安全信道发送给跨链公证人。
e、跨链公证人公开各代理节点的公钥,以便各区块链可通过代理节点和跨链公证人进行跨链安全通信。
Step3:区块链中任一节点发起跨链请求,代理节点通过共识算法确认本链节点发起的跨链请求。
在确定出各代理节点的公钥、私钥后,各区块链中任一节点可发起针对目标代理节点的跨链请求。在由代理节点发送跨链请求之前,需要通过共识算法对本链节点发起的跨链请求进行确认。下面对跨链请求的共识过程进行描述。
示例性地,本发明实施例以PBFT共识算法为例,对跨链请求的共识过程进行描述。
首先,对PBFT共识算法的共识过程进行介绍。该PBFT共识算法主要有2个线程,即PBFT密封器线程和PBFT共识线程。PBFT密封器线程从txPool中取出事务(比如跨链请求),并将事务打包成区块,将密封的区块封装到PBFT Prepare程序包中,然后将程序包发送给PBFT共识线程。PBFT共识线程从PBFT封闭器或P2P网络接收PBFT共识消息包,区块执行器Blockverifier模块响应执行区块,在共识过程完成后,已上链的事务将从txPool中删除。
具体地,PBFT共识过程包括三个阶段,即预先准备、准备和提交。其中,预先准备阶段为:节点执行程序块,生成签名包并将签名包广播到其它节点;准备阶段为:节点收集签名包,当收集(2×f+1)个签名包时,它将声明已从提交块准备就绪并开始广播Commit包进入提交阶段;提交阶段为:节点收集Commit包,当收集(2×f+1)个Commit包时,它将把本地缓存的最新区块提交到数据库。
需要说明的是,在基于PBFT共识机制的联盟链中,参与共识的所有区块链节点不会直接同步来自其它节点的状态数据,而是先下载来自其它节点的区块,验证区块中的PBFT共识签名,然后执行区块中的所有交易,根据交易的执行结果来更新状态数据,保证所有需要上链的数据都经过签名的校验和执行的验证。
基于此,针对区块链中任一节点发起跨链请求,代理节点会通过PBFT共识算法对跨链请求进行共识确认,并在共识成功后,由代理节点完成后续的针对跨链请求的工作。
Step4:跨链公证人接收代理节点发送的跨链请求后,对跨链请求进行验证,并在验证成功后,触发代理节点与目标代理节点的跨链通信。
在代理节点通过共识算法确认本链节点发起的跨链请求后,发送跨链请求给跨链公证人进行验证,以便实现代理节点与目标代理节点的跨链通信。下面对代理节点与目标代理节点进行跨链通信的实施过程进行描述。
a、代理节点利用SHA256算法对跨链请求进行处理,得到跨链请求的摘要,并使用自己的私钥对摘要进行签名,然后使用跨链公证人的公钥对签名和跨链请求进行加密,并将加密后的签名和跨链请求发送给跨链公证人。其中,跨链请求可以包括代理节点的ID、目标代理节点的ID等;跨链请求是指一个区块链(比如区块链1)上的某个节点想要与另一个区块链(比如区块链2)上的某个节点进行跨链交互所发起的请求,需要通过区块链1上的代理节点与区块链2上的代理节点进行跨链通信来完成。
b、跨链公证人收到代理节点发送的加密后的签名和跨链请求后,使用自己的私钥对加密后的签名和跨链请求进行解密得到签名和跨链请求,并对签名进行验证。
c、跨链公证人在确定签名验证通过后,基于代理节点的ID和目标代理节点的ID,从存储的各代理节点的ID和所属区块链的系统配置信息的映射关系中查询出代理节点所属区块链的系统配置信息和目标代理节点所属区块链的系统配置信息。并确定代理节点所属区块链的系统配置信息和目标代理节点所属区块链的系统配置信息是否匹配。如此,在进行系统配置信息匹配时,会出现两种情况,一种情况是系统配置信息一致;另一种情况是系统配置信息不一致。下面对出现的两种情况进行描述。
第一种情况为系统配置信息一致。此时代理节点与目标代理节点可以直接进行跨链通信。该跨链通信的具体过程为:
步骤1:代理节点接收跨链公证人发送签名验证通过以及系统配置信息一致的消息。
步骤2:代理节点和目标代理节点之间利用身份认证模块完成身份认证。即,在代理节点与目标代理节点进行跨链通信前,还需要对代理节点与目标代理节点的身份进行相互认证。下面对代理节点与目标代理节点进行身份认证的实施过程进行描述。
不同区块链的代理节点在通信前,需要进行身份认证。验证通过后才可以进行跨链通信。示例性地,在区块链1的代理节点1与区块链2的代理节点2开始通信前需要执行IBE身份认证算法,待双方通过身份认证后方可进行通信。其中,代理节点1可以为代理节点,代理节点2可以为目标代理节点;或者,代理节点1可以为目标代理节点,代理节点2可以为代理节点,本发明实施对此并不作限定。
1、代理节点1将自己的身份信息(比如ID)发送给代理节点2。即,基于代理节点1的ID,构建消息msg1-1:{ID1}。
2、代理节点2生成一个临时随机数nonce,记为N1,并生成收到代理节点1发送的消息msg1时的时间戳T0。再将N1与T0串联成X=N1||T0,并利用单向哈希函数计算出的摘要μ=H3(X),并使用自己的私钥对摘要进行基于双线性映射的签名,然后将摘要μ、签名以及X一起发送给代理节点1。即,msg2:{X,μ,e(μQ1,d2)}。其中,Q1为代理节点1的公钥,d2为代理节点2的私钥。
3、代理节点1生成收到代理节点2发送的消息msg2时的时间戳T1。为了确保本次收到的消息不是恶意消息,需要对时间戳进行校验。代理节点1校验T1与T0的时间间隔是否小于等于ΔT,如果不是,则确定消息来自于恶意攻击者,代理节点1会拒收该消息,并中断此次认证。如果是,则对消息的完整性做进一步验证,以避免消息被篡改。下面对代理节点1验证消息的完整性的实施过程进行描述。
A、代理节点1从msg2中提取出X、μ、e(μQ1,d2),并计算X的摘要μ1=H3(X)。
B、判断消息完整性:若此时计算出的μ1=μ,则确定X未被篡改;若不相等,则确定X被篡改过,然后终止认证。
C、在检查消息保持完整性后,基于双线性映射,计算出e(sQ1,μ1Q2),与e(μQ1,d2)进行对比,验证代理节点2的签名。如果相等,则代理节点2的签名验证通过,说明消息确实来源于代理节点2,如此可以再一次验证消息X未被篡改。
需要说明的是,在代理节点1生成时间戳T1的时候,代理节点1也会生成一个临时随机数nonce,记为N2,并将N2与T1串联成X1=N2||T1,并利用单向哈希函数计算出的摘要μ2=H3(X1),并使用自己的私钥对摘要进行基于双线性映射的签名,然后将摘要μ2、签名以及X1一起发送给代理节点2。即,msg1-2:{X1,μ2,e(μ2Q2,d1)}。其中,Q2为代理节点2的公钥,d1为代理节点1的私钥。
代理节点2生成收到代理节点1发送的消息msg1-2时的时间戳T2。并校验T2与T1的时间间隔是否小于等于ΔT,如果不是,则确定消息来自恶意攻击者,代理节点2会拒收消息,并中断认证过程。如果是,则对消息的完整性做进一步验证,以避免消息被篡改。下面对代理节点2验证消息的完整性的实施过程进行描述。
A、代理节点2从msg1-2中提取出X1、μ2、e(μ2Q2,d1),并计算X1的摘要μ3=H3(X1)。
B、判断消息完整性:若此时计算出的μ3=μ2,则确定X1未被篡改;若不相等,则确定X1被篡改过,然后终止认证。
C、在检查消息保持完整性后,基于双线性映射,计算出e(sQ2,μ3Q1),与e(μ2Q2,d1)进行对比,验证代理节点1的签名。如果相等,则代理节点1的签名验证通过,说明消息确实来源于代理节点1,如此可以再一次验证消息X1未被篡改。
此外,需要说明的是,IBE算法中用户的公私钥对是椭圆曲线上的一对点。公钥由用户身份信息经过哈希函数H1映射到椭圆曲线上的一个点,私钥由公钥映射的点与PKG的主密钥s进行点乘所得,因此,可以得到公钥Qi与私钥di存在关系:
di=sQi
根据双线性映射配对的性质,可以得到e(sQj,μ1Q1)=e(μ1Qj,sQ1),将d1=sQ1带入,则可以得到:
e(sQj,μ1Q1)=e(μ1Qj,sQ1)=e(μQj,d1)
其中,Q1为代理节点1的公钥,Qj为代理节点2或公证人节点的公钥。
如果发送过程中消息未被篡改,则代理节点2对消息X利用相同单向哈希函数计算得到的μ1满足等式μ1=μ;当等式e(sQ1,μ1Q2)=e(μQ1,d2)成立时,可以证明该消息是由代理节点2发送给代理节点1的,由此确认身份认证成功;同理等式e(sQ2,μ3Q1)=e(μ2Q2,d1)成立时,可以证明该消息是由代理节点1发送给代理节点2的,则确认身份认证成功。
另外,身份认证模块中的消息都不是明文发送,而是先通过哈希函数计算出哈希值,再用发送方的私钥对哈希值进行签名,将签名后的密文发送给接收方。所有经过篡改的消息,通过哈希函数都将得到完全不同的哈希值。在与原哈希值比对后,可以验证消息是否被改动过。若消息在发送途中被篡改,接收方可以很容易得就侦察到。
其中,数据完整性是指数据从发出到接收的过程中未经篡改,如此,可以保证数据的正确性。目前常用的保证数据完整性的方式是使用哈希函数处理消息然后对处理后的消息进行签名。当然,身份认证模块在每个步骤都会对消息进行签名,使得消息发送者不可否认其是消息来源者的身份,提供了消息不可否认性。
步骤3:代理节点基于IBE算法的加密算法对要发送的跨链请求消息m进行加密,生成跨链请求消息m对应的跨链密文,并将跨链密文发送给目标代理节点(比如目标代理节点的ID为ID2)。即,首先,随机选取r∈Zp *,然后,计算V=r×P,最后发送密文c=(V,W)给目标代理节点。
步骤4:目标代理节点收到密文后,基于IBE算法的解密算法对密文进行解密,计算可以得到跨链请求消息m,并从跨链请求消息m中提取出跨链请求,然后对跨链请求进行进一步处理。鉴于此,代理节点与目标代理节点进行了跨链通信。其中,d2为目标代理节点的私钥。
第二种情况为系统配置信息不一致。若系统配置信息不一致,则由跨链公证人基于异构系统中区块链系统底层架构、数据结构、接口协议、安全机制等存在的差异情况对跨链请求的数据格式进行调整。并在调整后,基于跨链公证人来实现代理节点与目标代理节点的跨链通信。该跨链通信的具体过程为:
步骤1:跨链公证人向代理节点发送签名验证通过以及系统配置信息不一致的消息。
步骤2:跨链公证人根据目标代理节点所属区块链的系统配置信息对跨链请求的数据格式进行调整,并使用跨链公证人的私钥对调整过的跨链请求进行签名,然后将签名和调整过的跨链请求串联成新的消息m′等待发送。
步骤3:跨链公证人基于IBE算法的加密算法对要发送的跨链请求消息m′进行加密,生成跨链请求消息m′对应的跨链密文,并将跨链密文发送给目标代理节点(比如目标代理节点的ID为ID2)。即,首先,随机选取r∈Zp *,然后,计算V=r×P,最后发送密文c=(V,W)给目标代理节点。
步骤4:目标代理节点收到密文后,基于IBE算法的解密算法对密文进行解密,计算可以得到跨链请求消息m′,并使用跨链公证人的公钥验证跨链公证人的签名,在验证通过后从m′中提取出跨链请求,然后对跨链请求进行进一步处理。鉴于此,代理节点与目标代理节点进行了跨链通信。其中,d2为目标代理节点的私钥。
需要说明的是,除了利用Step4的跨链通信方式可以实现代理节点与目标代理节点的跨链通信,本发明实施例还可以采用另一种方式实现代理节点与目标代理节点的跨链通信。下面对代理节点与目标代理节点进行跨链通信的另一实现方式进行描述。
a、代理节点利用SHA256算法对跨链请求y进行处理,得到跨链请求y的摘要μ=SHA256(y),并使用自己的私钥d1对摘要进行签名,然后将签名和跨链请求合并成跨链请求消息,即跨链请求消息n=y||μ||e(μQmid,d1)。其中,Qmid为跨链公证人的公钥,d1为代理节点的私钥。
b、代理节点基于IBE算法的加密算法对要发送的跨链请求消息n进行加密,生成跨链请求消息n对应的跨链密文,并将跨链密文发送给跨链公证人(比如跨链公证人的ID为IDmid)。即,首先,随机选取r∈Zp *,然后,计算V=r×P,最后发送密文c=(V,W)给跨链公证人。
d、跨链公证人利用SHA256算法对跨链请求y′进行处理,得到跨链请求y′的摘要μ1=SHA256(y′),若等式μ1=μ成立,则证明消息在发送过程中未被篡改,即y′=y。若等式μ1=μ不成立,则终止跨链过程,并返回失败信息给代理节点。
e、跨链公证人基于双线性映射,计算出e(dmid,μ1Q1),若等式e(dmid,μ1Q1)=e(μQmid,d1)成立,则签名验证通过,证明该消息来自于代理节点,若等式e(dmid,μ1Q1)=e(μQmid,d1)不成立,则终止跨链过程,并返回失败信息给代理节点。
f、跨链公证人从跨链请求y中提取出跨链相关信息,并从存储的各代理节点的ID和所属区块链的系统配置信息的映射关系中查询出跨链请求中两个代理节点所属区块链的系统配置信息是否匹配。
(1)若系统配置信息不一致,则由跨链公证人基于异构系统中区块链系统底层架构、数据结构、接口协议、安全机制等存在的差异情况对跨链请求的数据格式进行调整,并生成新的跨链请求ynew。
(2)若系统配置信息一致,则直接使用原来的跨链请求ynew=y。
g、跨链公证人利用SHA256算法对跨链请求ynew进行处理,得到跨链请求ynew的摘要μ2=SHA256(ynew),并使用自己的私钥dmid对摘要进行签名,然后将签名和跨链请求合并成跨链请求消息,即跨链请求消息n′=ynew||μ2||e(μ2Q2,dmid)。其中,Q2为目标代理节点的公钥,dmid为跨链公证人的私钥。
h、跨链公证人基于IBE算法的加密算法对要发送的跨链请求消息n′进行加密,生成跨链请求消息n′对应的跨链密文,并将跨链密文发送给目标代理节点(比如目标代理节点的ID为ID2)。即,首先,随机选取r∈Zp *,然后,计算V=r×P,最后发送密文c′=(V,W)给目标代理节点。
j、目标代理节点利用SHA256算法对跨链请求ynew′进行处理,得到跨链请求ynew′的摘要μ3=SHA256(ynew′),若等式μ3=μ2成立,则证明消息在发送过程中未被篡改,即ynew′=ynew。若等式μ3=μ2不成立,则终止跨链过程,并返回失败信息给跨链公证人。
k、目标代理节点基于双线性映射,计算出e(d2,μ3Qmid),若等式e(d2,μ3Qmid)=e(μ2Q2,dmid)成立,则签名验证通过,证明该消息来自于跨链公证人,若等式e(d2,μ3Qmid)=e(μ2Q2,dmid)不成立,则终止跨链过程,并返回失败信息给跨链公证人。
l、目标代理节点从跨链请求ynew中提取出跨链相关信息,然后对跨链相关信息进行进一步处理。
上述实施例表明,通过解密第一跨链密文得到第二跨链请求并验证第二跨链请求,在验证通过第二跨链请求后触发第二代理节点所在的区块链系统处理第二跨链请求。由于代理节点用于对区块链系统内的节点的跨链消息进行转收发,且第一跨链密文是第一代理节点对本链节点发起的第一跨链请求进行共识后生成的,并在验证通过第二跨链请求后触发第二代理节点所在的区块链系统处理第二跨链请求,如此可以确保跨链通信的安全性。此外,该技术方案无需管理和维护大量用户证书的生成、颁发、撤销等,因此可以节约计算资源和存储资源,从而可以解决现有技术中存在面向CA的准入机制需要管理和维护大量用户证书的生成、颁发、撤销等,导致消耗大量的计算资源和存储资源的问题。
基于相同的技术构思,图4示例性的示出了本发明实施例提供的一种跨链的区块链通信装置,该装置可以执行跨链的区块链通信方法的流程。其中,该装置适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发。
如图4所示,该装置包括:
接收单元401,用于接收第一代理节点发送的第一跨链密文;所述第一跨链密文是所述第一代理节点对本链节点发起的第一跨链请求进行共识后生成的;
第一处理单元402,用于解密所述第一跨链密文得到第二跨链请求并验证所述第二跨链请求;在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
可选地,所述第一跨链密文是所述第一代理节点基于IBE算法生成的IBE密文;所述基于IBE算法生成的IBE密文为通过IBE算法对第一拼接消息进行加密得到的;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名;
所述第一处理单元402还用于:
通过IBE算法解密所述第一跨链密文,得到第二拼接消息;所述第二拼接消息包括所述第二跨链请求、所述第一摘要和所述第一签名;
生成所述第二跨链请求的第二摘要;
确定所述第二摘要与所述第一摘要是否一致;
根据所述第二摘要生成第二签名;
确定所述第二签名与所述第一签名是否一致。
可选地,所述第一摘要的第一签名是利用所述第一代理节点的私钥进行的基于双线性映射生成的签名;
所述第一处理单元402具体用于:
所述第一代理节点的公钥、私钥存在如下关系:
d1=sQ1
根据双线性映射配对的性质,得到e(sQj,μ1Q1)=e(μ1Qj,sQ1),并基于所述第一代理节点的私钥,生成所述第一签名;所述第一签名满足如下形式:
e(sQj,μ1Q1)=e(μ1Qj,sQ1)=e(μQj,d1)
其中,e(μQj,d1)为所述第一签名,Q1为所述第一代理节点的公钥,μ为所述第一摘要,μ1为所述第二摘要,Qj为第二代理节点或公证人节点的公钥,d1为所述第一代理节点的私钥,s为第三方PKG的主密钥。
可选地,所述跨链验证节点为公证人节点;
所述第一处理单元402具体用于:
在验证通过所述第二跨链请求后,根据所述第二跨链请求生成第二跨链密文;
将所述第二跨链密文发送至所述第二代理节点以通过所述第二代理节点所在的区块链系统处理所述第二跨链密文。
可选地,所述第一处理单元402具体用于:
确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统是否具有相同的配置;
若确定具有相同的配置,则根据所述第二跨链请求生成所述第二跨链密文;
若确定不具有相同的配置,则根据所述第二代理节点所在的区块链系统的配置调整所述第二跨链请求为第三跨链请求,根据所述第三跨链请求生成所述第二跨链密文。
可选地,所述跨链验证节点为第二代理节点;
所述第一处理单元402还用于:
与所述第一代理节点相互进行身份确认;所述身份确认是所述第一代理节点在接收到公证人节点配置一致指示后发起的;所述配置一致指示是所述公证人节点确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统具有相同的配置时发送的。
可选地,所述第一处理单元402具体用于:
接收所述第一代理节点发送的第一标识;
基于第一随机数生成第一认证信息并发送给所述第一代理节点;所述第一认证信息用于所述第一代理节点对所述第二代理节点进行身份认证;
接收所述第一代理节点发送的第二认证信息并对所述第二认证信息进行验证;所述第二认证消息是所述第一代理节点基于第二随机数生成的。
可选地,所述跨链验证节点为公证人节点;
所述第一跨链密文是所述第一代理节点通过签名机制生成的签名密文;所述签名密文包括对所述第一跨链请求的签名和所述第一跨链请求;
所述第一处理单元402具体用于:
在确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统不具有相同的配置时,根据所述第二代理节点所在的区块链系统的配置调整所述第二跨链请求为第三跨链请求,根据所述第三跨链请求生成所述第二跨链密文;
将所述第二跨链密文发送给所述第二代理节点。
基于相同的技术构思,图5示例性的示出了本发明实施例提供的一种跨链的区块链通信装置,该装置可以执行跨链的区块链通信方法的流程。其中,该装置适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发。
如图5所示,该装置包括:
生成单元501,用于对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文;
第二处理单元502,用于将所述第一跨链密文发送给跨链验证节点;所述跨链验证节点用于解密所述第一跨链密文得到第二跨链请求并在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
可选地,所述第二处理单元502具体用于:
对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成签名密文;
将所述第一跨链密文发送给跨链验证节点之后,还包括:
接收所述跨链验证节点发送的配置一致指示;所述配置一致指示是所述跨链验证节点对所述签名密文验证通过且所述第一代理节点所在的区块链系统与第二代理节点所在的区块链系统具有相同的配置时发送的;
通过IBE算法对第一拼接消息进行加密得到IBE密文;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名;
将所述IBE密文发送给所述第二代理节点。
可选地,所述第二处理单元502具体用于:
对本链节点发起的第一跨链请求进行共识后,通过IBE算法对第一拼接消息进行加密得到IBE密文;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名。
可选地,所述第二处理单元502具体用于:
针对所述区块链系统内的各节点,基于预设的选举规则,确定出所述各节点的局部密度;
针对每个节点,确定所述节点的局部密度是否为最大;若所述节点的局部密度为最大,则确定出所述节点与其它节点间的最大距离;若所述节点的局部密度不为最大,则确定出所述节点与其它节点间的最小距离;
通过对所述各节点的局部密度、最大距离、最小距离进行处理,将局部密度最大且距离最大对应的节点确定为所述第一代理节点。
基于相同的技术构思,本发明实施例提供一种计算设备,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行跨链的区块链通信方法。
基于相同的技术构思,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行跨链的区块链通信方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (16)
1.一种跨链的区块链通信方法,其特征在于,适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发;所述方法包括:
跨链验证节点接收第一代理节点发送的第一跨链密文;所述第一跨链密文是所述第一代理节点对本链节点发起的第一跨链请求进行共识后生成的;
所述跨链验证节点解密所述第一跨链密文得到第二跨链请求并验证所述第二跨链请求;
所述跨链验证节点在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
2.如权利要求1所述的方法,其特征在于,所述第一跨链密文是所述第一代理节点基于IBE算法生成的IBE密文;所述基于IBE算法生成的IBE密文为通过IBE算法对第一拼接消息进行加密得到的;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名;
所述跨链验证节点解密所述第一跨链密文得到第二跨链请求并验证所述第二跨链请求,包括:
所述跨链验证节点通过IBE算法解密所述第一跨链密文,得到第二拼接消息;所述第二拼接消息包括所述第二跨链请求、所述第一摘要和所述第一签名;
所述跨链验证节点生成所述第二跨链请求的第二摘要;
所述跨链验证节点确定所述第二摘要与所述第一摘要是否一致;
所述跨链验证节点根据所述第二摘要生成第二签名;
所述跨链验证节点确定所述第二签名与所述第一签名是否一致。
3.如权利要求2所述的方法,其特征在于,所述第一摘要的第一签名是利用所述第一代理节点的私钥进行的基于双线性映射生成的签名;
通过下述方式生成所述第一签名:
所述第一代理节点的公钥、私钥存在如下关系:
d1=sQ1
根据双线性映射配对的性质,得到e(sQj,μ1Q1)=e(μ1Qj,sQ1),并基于所述第一代理节点的私钥,生成所述第一签名;所述第一签名满足如下形式:
e(sQj,μ1Q1)=e(μ1Qj,sQ1)=e(μQj,d1)
其中,e(μQj,d1)为所述第一签名,Q1为所述第一代理节点的公钥,μ为所述第一摘要,μ1为所述第二摘要,Qj为第二代理节点或公证人节点的公钥,d1为所述第一代理节点的私钥,s为第三方PKG的主密钥。
4.如权利要求1至3任一项所述的方法,其特征在于,所述跨链验证节点为公证人节点;
所述跨链验证节点在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求,包括:
所述公证人节点在验证通过所述第二跨链请求后,根据所述第二跨链请求生成第二跨链密文;
所述公证人节点将所述第二跨链密文发送至所述第二代理节点以通过所述第二代理节点所在的区块链系统处理所述第二跨链密文。
5.如权利要求4所述的方法,其特征在于,所述根据所述第二跨链请求生成第二跨链密文,包括:
所述跨链验证节点确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统是否具有相同的配置;
所述跨链验证节点若确定具有相同的配置,则根据所述第二跨链请求生成所述第二跨链密文;
所述跨链验证节点若确定不具有相同的配置,则根据所述第二代理节点所在的区块链系统的配置调整所述第二跨链请求为第三跨链请求,根据所述第三跨链请求生成所述第二跨链密文。
6.如权利要求1至3任一项所述的方法,其特征在于,所述跨链验证节点为第二代理节点;
在所述跨链验证节点接收第一代理节点发送的第一跨链密文之前,还包括:
所述第二代理节点与所述第一代理节点相互进行身份确认;所述身份确认是所述第一代理节点在接收到公证人节点配置一致指示后发起的;所述配置一致指示是所述公证人节点确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统具有相同的配置时发送的。
7.如权利要求1所述的方法,其特征在于,所述第二代理节点与所述第一代理节点相互进行身份确认,包括:
所述第二代理节点接收所述第一代理节点发送的第一标识;
所述第二代理节点基于第一随机数生成第一认证信息并发送给所述第一代理节点;所述第一认证信息用于所述第一代理节点对所述第二代理节点进行身份认证;
所述第二代理节点接收所述第一代理节点发送的第二认证信息并对所述第二认证信息进行验证;所述第二认证消息是所述第一代理节点基于第二随机数生成的。
8.如权利要求1所述的方法,其特征在于,所述跨链验证节点为公证人节点;
所述第一跨链密文是所述第一代理节点通过签名机制生成的签名密文;所述签名密文包括对所述第一跨链请求的签名和所述第一跨链请求;
所述跨链验证节点在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求,包括:
所述公证人节点在确定所述第一代理节点所在的区块链系统与所述第二代理节点所在的区块链系统不具有相同的配置时,根据所述第二代理节点所在的区块链系统的配置调整所述第二跨链请求为第三跨链请求,根据所述第三跨链请求生成所述第二跨链密文;
所述公证人节点将所述第二跨链密文发送给所述第二代理节点。
9.一种跨链的区块链通信方法,其特征在于,适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发;所述方法包括:
第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文;
所述第一代理节点将所述第一跨链密文发送给跨链验证节点;所述跨链验证节点用于解密所述第一跨链密文得到第二跨链请求并在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
10.如权利要求9所述的方法,其特征在于,所述第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文,包括:
第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成签名密文;
所述第一代理节点将所述第一跨链密文发送给跨链验证节点之后,还包括:
所述第一代理节点接收所述跨链验证节点发送的配置一致指示;所述配置一致指示是所述跨链验证节点对所述签名密文验证通过且所述第一代理节点所在的区块链系统与第二代理节点所在的区块链系统具有相同的配置时发送的;
所述第一代理节点通过IBE算法对第一拼接消息进行加密得到IBE密文;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名;
所述第一代理节点将所述IBE密文发送给所述第二代理节点。
11.如权利要求9所述的方法,其特征在于,所述第一代理节点对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文,包括:
第一代理节点对本链节点发起的第一跨链请求进行共识后,通过IBE算法对第一拼接消息进行加密得到IBE密文;所述第一拼接消息包括所述第一跨链请求、所述第一跨链请求的第一摘要和所述第一摘要的第一签名。
12.如权利要求9所述的方法,其特征在于,根据下述方式确定所述第一代理节点:
针对所述区块链系统内的各节点,基于预设的选举规则,确定出所述各节点的局部密度;
针对每个节点,确定所述节点的局部密度是否为最大;若所述节点的局部密度为最大,则确定出所述节点与其它节点间的最大距离;若所述节点的局部密度不为最大,则确定出所述节点与其它节点间的最小距离;
通过对所述各节点的局部密度、最大距离、最小距离进行处理,将局部密度最大且距离最大对应的节点确定为所述第一代理节点。
13.一种跨链的区块链通信装置,其特征在于,适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发;所述装置包括:
接收单元,用于接收第一代理节点发送的第一跨链密文;所述第一跨链密文是所述第一代理节点对本链节点发起的第一跨链请求进行共识后生成的;
第一处理单元,用于解密所述第一跨链密文得到第二跨链请求并验证所述第二跨链请求;在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
14.一种跨链的区块链通信装置,其特征在于,适用于具有代理节点的区块链系统;所述代理节点用于对所述区块链系统内的节点的跨链消息进行转收发;所述装置包括:
生成单元,用于对本链节点发起的第一跨链请求进行共识后,基于所述第一跨链请求生成第一跨链密文;
第二处理单元,用于将所述第一跨链密文发送给跨链验证节点;所述跨链验证节点用于解密所述第一跨链密文得到第二跨链请求并在验证通过所述第二跨链请求后,触发第二代理节点所在的区块链系统处理所述第二跨链请求。
15.一种计算设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行权利要求1至12任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行程序,所述计算机可执行程序用于使计算机执行权利要求1至12任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011294886.7A CN112491846B (zh) | 2020-11-18 | 2020-11-18 | 一种跨链的区块链通信方法及装置 |
PCT/CN2021/126988 WO2022105565A1 (zh) | 2020-11-18 | 2021-10-28 | 一种跨链的区块链通信方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011294886.7A CN112491846B (zh) | 2020-11-18 | 2020-11-18 | 一种跨链的区块链通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112491846A true CN112491846A (zh) | 2021-03-12 |
CN112491846B CN112491846B (zh) | 2023-04-18 |
Family
ID=74931384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011294886.7A Active CN112491846B (zh) | 2020-11-18 | 2020-11-18 | 一种跨链的区块链通信方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112491846B (zh) |
WO (1) | WO2022105565A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732800A (zh) * | 2021-03-30 | 2021-04-30 | 支付宝(杭州)信息技术有限公司 | 提供跨链消息的方法和装置 |
CN112804354A (zh) * | 2021-03-19 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 跨链进行数据传输的方法、装置、计算机设备和存储介质 |
CN113507364A (zh) * | 2021-07-14 | 2021-10-15 | 中国建设银行股份有限公司 | 一种交易账本的处理方法、装置、电子设备和存储介质 |
CN113904869A (zh) * | 2021-11-10 | 2022-01-07 | 深圳前海微众银行股份有限公司 | 一种区块链中恶意节点的检测方法及区块链 |
CN114297680A (zh) * | 2021-12-27 | 2022-04-08 | 广州大学 | 一种用于物联网环境的区块链跨链共识方法和系统 |
US20220164795A1 (en) * | 2020-11-23 | 2022-05-26 | Beijing University Of Posts And Telecommunications | Cross-chain Communication Method, Device and Storage Medium thereof |
WO2022105565A1 (zh) * | 2020-11-18 | 2022-05-27 | 深圳前海微众银行股份有限公司 | 一种跨链的区块链通信方法及装置 |
CN114760288A (zh) * | 2022-03-18 | 2022-07-15 | 国网四川省电力公司天府新区供电公司 | 一种基于区块链的文件跨链传输方法 |
CN115378942A (zh) * | 2022-10-10 | 2022-11-22 | 北京理工大学 | 一种区块链的信息跨链交互方法和交互装置 |
CN115941354A (zh) * | 2022-12-31 | 2023-04-07 | 杭州丽冠科技有限公司 | 基于区块链的跨链交互身份认证方法、装置及计算机可读介质 |
CN116321159A (zh) * | 2023-01-14 | 2023-06-23 | 国网湖北省电力有限公司荆门供电公司 | 一种基于北斗通信服务的分散场站数据传输方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174204A (zh) * | 2022-07-01 | 2022-10-11 | 京东科技控股股份有限公司 | 数据传输方法、装置和系统 |
CN115277110B (zh) * | 2022-07-04 | 2023-07-28 | 河北嘉朗科技有限公司 | 一种在云原生环境下解决区块链节点跨网通信问题的方法 |
CN115189965B (zh) * | 2022-09-06 | 2022-12-13 | 浙江数秦科技有限公司 | 一种区块链的跨链管理系统及跨链操作方法 |
CN115396122B (zh) * | 2022-10-27 | 2023-04-25 | 聚梦创新(北京)软件技术有限公司 | 消息处理方法、装置、电子设备及存储介质 |
CN116866009B (zh) * | 2023-06-15 | 2024-03-26 | 蚂蚁区块链科技(上海)有限公司 | 基于认证网络的跨链身份验证方法、装置、电子设备及存储介质 |
CN116506104B (zh) * | 2023-06-25 | 2023-08-29 | 天津市城市规划设计研究总院有限公司 | 基于跨链区块链的不同部门信息安全交互的方法及系统 |
CN117319083B (zh) * | 2023-11-27 | 2024-02-27 | 人民法院信息技术服务中心 | 一种异构隐私数据的跨链共享方法、装置、系统及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900585A (zh) * | 2018-06-15 | 2018-11-27 | 浙江华信区块链科技服务有限公司 | 跨链事务一致性实现方法 |
CN109559227A (zh) * | 2018-11-29 | 2019-04-02 | 咪咕文化科技有限公司 | 一种跨区块链网络的交易方法、装置及存储介质 |
CN110266655A (zh) * | 2019-05-30 | 2019-09-20 | 中国工商银行股份有限公司 | 一种基于区块链的跨链互联方法、设备以及系统 |
CN111080449A (zh) * | 2019-12-03 | 2020-04-28 | 深圳前海微众银行股份有限公司 | 区块链的跨链交易方法、管理节点、区块链网络 |
CN111681003A (zh) * | 2020-07-07 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 资源跨链转移方法、装置、计算机设备以及存储介质 |
CN111741114A (zh) * | 2020-06-24 | 2020-10-02 | 陈鹏 | 基于区块链的可监管跨链交互系统、方法及设备 |
CN111769948A (zh) * | 2020-06-15 | 2020-10-13 | 布比(北京)网络技术有限公司 | 基于区块链的链间交互方法、系统、装置和计算机设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11194837B2 (en) * | 2018-05-01 | 2021-12-07 | International Business Machines Corporation | Blockchain implementing cross-chain transactions |
CN111416808B (zh) * | 2020-03-13 | 2021-04-13 | 财付通支付科技有限公司 | 跨区块链的数据互存方法、装置、设备及存储介质 |
CN111770102B (zh) * | 2020-07-01 | 2022-07-19 | 中国建设银行股份有限公司 | 一种区块链跨链方法、装置、计算机设备及存储介质 |
CN112491846B (zh) * | 2020-11-18 | 2023-04-18 | 深圳前海微众银行股份有限公司 | 一种跨链的区块链通信方法及装置 |
-
2020
- 2020-11-18 CN CN202011294886.7A patent/CN112491846B/zh active Active
-
2021
- 2021-10-28 WO PCT/CN2021/126988 patent/WO2022105565A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900585A (zh) * | 2018-06-15 | 2018-11-27 | 浙江华信区块链科技服务有限公司 | 跨链事务一致性实现方法 |
CN109559227A (zh) * | 2018-11-29 | 2019-04-02 | 咪咕文化科技有限公司 | 一种跨区块链网络的交易方法、装置及存储介质 |
CN110266655A (zh) * | 2019-05-30 | 2019-09-20 | 中国工商银行股份有限公司 | 一种基于区块链的跨链互联方法、设备以及系统 |
CN111080449A (zh) * | 2019-12-03 | 2020-04-28 | 深圳前海微众银行股份有限公司 | 区块链的跨链交易方法、管理节点、区块链网络 |
CN111769948A (zh) * | 2020-06-15 | 2020-10-13 | 布比(北京)网络技术有限公司 | 基于区块链的链间交互方法、系统、装置和计算机设备 |
CN111741114A (zh) * | 2020-06-24 | 2020-10-02 | 陈鹏 | 基于区块链的可监管跨链交互系统、方法及设备 |
CN111681003A (zh) * | 2020-07-07 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 资源跨链转移方法、装置、计算机设备以及存储介质 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022105565A1 (zh) * | 2020-11-18 | 2022-05-27 | 深圳前海微众银行股份有限公司 | 一种跨链的区块链通信方法及装置 |
US20220164795A1 (en) * | 2020-11-23 | 2022-05-26 | Beijing University Of Posts And Telecommunications | Cross-chain Communication Method, Device and Storage Medium thereof |
US11631080B2 (en) * | 2020-11-23 | 2023-04-18 | Beijing University Of Posts And Telecommunications | Cross-chain communication method, device and storage medium thereof |
CN112804354A (zh) * | 2021-03-19 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 跨链进行数据传输的方法、装置、计算机设备和存储介质 |
CN112804354B (zh) * | 2021-03-19 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 跨链进行数据传输的方法、装置、计算机设备和存储介质 |
WO2022206439A1 (zh) * | 2021-03-30 | 2022-10-06 | 支付宝(杭州)信息技术有限公司 | 提供跨链消息的方法和装置 |
CN112732800A (zh) * | 2021-03-30 | 2021-04-30 | 支付宝(杭州)信息技术有限公司 | 提供跨链消息的方法和装置 |
CN113507364A (zh) * | 2021-07-14 | 2021-10-15 | 中国建设银行股份有限公司 | 一种交易账本的处理方法、装置、电子设备和存储介质 |
CN113904869A (zh) * | 2021-11-10 | 2022-01-07 | 深圳前海微众银行股份有限公司 | 一种区块链中恶意节点的检测方法及区块链 |
CN113904869B (zh) * | 2021-11-10 | 2024-04-19 | 深圳前海微众银行股份有限公司 | 一种区块链中恶意节点的检测方法及区块链 |
CN114297680A (zh) * | 2021-12-27 | 2022-04-08 | 广州大学 | 一种用于物联网环境的区块链跨链共识方法和系统 |
CN114297680B (zh) * | 2021-12-27 | 2024-05-17 | 广州大学 | 一种用于物联网环境的区块链跨链共识方法和系统 |
CN114760288A (zh) * | 2022-03-18 | 2022-07-15 | 国网四川省电力公司天府新区供电公司 | 一种基于区块链的文件跨链传输方法 |
CN114760288B (zh) * | 2022-03-18 | 2024-02-06 | 国网四川省电力公司天府新区供电公司 | 一种基于区块链的文件跨链传输方法 |
CN115378942A (zh) * | 2022-10-10 | 2022-11-22 | 北京理工大学 | 一种区块链的信息跨链交互方法和交互装置 |
CN115378942B (zh) * | 2022-10-10 | 2022-12-20 | 北京理工大学 | 一种区块链的信息跨链交互方法和交互装置 |
CN115941354A (zh) * | 2022-12-31 | 2023-04-07 | 杭州丽冠科技有限公司 | 基于区块链的跨链交互身份认证方法、装置及计算机可读介质 |
CN115941354B (zh) * | 2022-12-31 | 2024-04-19 | 广州市鑫澳康科技有限公司 | 基于区块链的跨链交互身份认证方法、装置及计算机可读介质 |
CN116321159B (zh) * | 2023-01-14 | 2024-01-02 | 国网湖北省电力有限公司荆门供电公司 | 一种基于北斗通信服务的分散场站数据传输方法 |
CN116321159A (zh) * | 2023-01-14 | 2023-06-23 | 国网湖北省电力有限公司荆门供电公司 | 一种基于北斗通信服务的分散场站数据传输方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022105565A1 (zh) | 2022-05-27 |
CN112491846B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112491846B (zh) | 一种跨链的区块链通信方法及装置 | |
US10841295B1 (en) | Extensions for using a digital certificate with multiple cryptosystems | |
CN110535628B (zh) | 通过证书签发进行多方安全计算的方法及装置 | |
CN108668258B (zh) | V2x通信快速身份认证系统及方法 | |
Wang et al. | Security analysis of a single sign-on mechanism for distributed computer networks | |
US9490979B2 (en) | System and method for providing credentials | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
CN109905877B (zh) | 通信网络系统的消息验证方法、通信方法和通信网络系统 | |
US11223486B2 (en) | Digital signature method, device, and system | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
CN114710275B (zh) | 物联网环境下基于区块链的跨域认证和密钥协商方法 | |
CN114499952B (zh) | 一种联盟链共识身份认证方法 | |
CN113630248B (zh) | 一种会话密钥协商方法 | |
CN113612610B (zh) | 一种会话密钥协商方法 | |
WO2023184858A1 (zh) | 一种时间戳生成方法、装置、电子设备及存储介质 | |
CN112187450A (zh) | 密钥管理通信的方法、装置、设备及存储介质 | |
Li et al. | Smart contract-based cross-domain authentication and key agreement system for heterogeneous wireless networks | |
CN115883102B (zh) | 基于身份可信度的跨域身份认证方法、系统及电子设备 | |
Yang et al. | Blockchain-based conditional privacy-preserving authentication protocol with implicit certificates for vehicular edge computing | |
Chen et al. | Provable secure group key establishment scheme for fog computing | |
CN113676330B (zh) | 一种基于二级密钥的数字证书申请系统及方法 | |
WO2023010688A1 (zh) | 一种密钥管理方法及装置 | |
Karacan et al. | Quantum secure communication between service provider and Sim | |
CN114615006A (zh) | 一种面向配电物联网的边缘层数据安全防护方法、系统及存储介质 | |
CN112423295A (zh) | 一种基于区块链技术的轻量级安全认证方法及系统 |
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 |