CN113645278A - 一种区块链的跨链消息传输方法、设备、存储介质 - Google Patents
一种区块链的跨链消息传输方法、设备、存储介质 Download PDFInfo
- Publication number
- CN113645278A CN113645278A CN202110838686.1A CN202110838686A CN113645278A CN 113645278 A CN113645278 A CN 113645278A CN 202110838686 A CN202110838686 A CN 202110838686A CN 113645278 A CN113645278 A CN 113645278A
- Authority
- CN
- China
- Prior art keywords
- chain
- node
- message
- cross
- consensus
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- 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)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种区块链的跨链消息传输方法、设备、存储介质,所述跨链消息传输方法创新性地将节点可靠度引入区块链跨链技术中,让跨链技术更贴合实际应用场景,由可靠度高的节点构建的共识链,其主节点从跨链消息接收方的区块链节点中选取,既符合消息接收方的安全考虑,又满足消息接收方对区块结构的要求,有助于提升消息跨链传输效率。同时,共识链基于已有区块链结构构建,无需新增节点或寻找第三方公证人,无需消耗更多资源,并且,由于跨链产生的共识链主节点是从原有区块链节点中可靠度高的节点中选取,其既是共识链主节点,又是原有区块链节点,该特点对于在有激励机制的区块链体系中,能够激励可靠度不高的节点向可靠度高的节点转变。
Description
技术领域
本发明涉及区块链技术领域,特别地,涉及一种区块链的跨链消息传输方法、设备、计算机可读取的存储介质。
背景技术
区块链技术作为一种分布式账本技术,是由多方共同维护,综合使用分布式账本、链式数据结构、点对点传输、共识机制、密码学原理等融合的一项技术,具有去中心化、开放透明、数据不可篡改、可追溯、隐私保护及高度自治等重要特性,在众多领域中具有广泛的应用。由于区块链的封闭性以及不同区块链之间的高度异构化,在不同区块链之间进行通信实现消息传递并完成区块上链是具有难度的。
当前跨链技术主要包括公证人机制、侧链/中继、哈希锁定和分布式私钥控制四种,其中,公证人机制是通过引入可信的第三方进行跨链消息的验证和转发,当在不同的区块链***中进行资产兑换和转移时,选举一个或者多个组织作为公证人来自动或者请求式监听不同链上的事件,并通过特定共识算法对事件是否发生达成共识,最后及时做出响应。公证人机制的优点是技术实现较为容易,但存在中心化风险。
侧链/中继机制是一种能够自行验证交易数据并且具有可扩展性的跨链技术,由一条中继链连接多条平行链,数据的发送、接收和验证在平行链上进行,中继链作为中间人收集不同链之间的数据状态并提供共识服务,该机制的优点是同时适用于同构和异构区块链,但部署难度较大,在跨链交互过程中需要等待信息上链,效率较低。
哈希锁定是在无需可信公证人的情况下,通过哈希锁和时间锁共同完成链间信息交互的一种跨链技术,该机制优点是技术实现难度较低,但使用范围比较局限,通常只能用于跨链的资产兑换,并不能实现资产的跨链转移。
分布式私钥控制是采用分布式节点来控制区块链***中各种资产的私钥,将数字资产的使用权和所有权分离,使得对链上资产的控制权能够转移到非中心化的***中,同时将链上的资产映射到跨链中,实现不同区块链***之间的资产流通和价值转移,该机制的优点是安全性较高,但技术实现难度较高,效率较低。
因此,基于上述对现有跨链技术的阐述,总结其缺点如下:
1、现有跨链技术在实现难度、安全性、执行效率上难以同时满足,最多只能同时满足其中1-2项。比如,公证人机制的技术实现难度较小,执行效率高,但安全性较低,同时存在中心化风险;侧链/中继机制技术的安全性较高,但技术实现难度较大,执行效率低;
2、现有跨链技术实现成本较高,存在资源消耗严重的情况,比如侧链/中继技术需要维护中继链的存在,中继链中各个服务器节点需要时刻消耗资源;公证人机制需要维护第三方公证人节点,也存在资源消耗的情况。
3、现有跨链技术不支持“待机”功能,即现有跨链技术不支持不同区块链之间需要进行跨链时才激活跨链功能,而在不需要进行跨链时,跨链功能处于未激活模式。“待机”功能的优势在于有助于维护区块链的独立性,节省跨链消耗的资源,同时提高跨链安全性。
发明内容
本发明提供了一种区块链的跨链消息传输方法、设备、计算机可读取的存储介质,以解决现有的跨链技术无法同时满足安全性高、实现难度低、执行效率高的要求的技术问题。
根据本发明的一个方面,提供一种区块链的跨链消息传输方法,包括以下内容:
步骤S1:在需要进行跨链消息传输的两个区块链的每个节点中预先布置用于监听消息跨链传输请求的路由代码和用于构建共识链并控制共识链运行状态的共识链代码;
步骤S2:第一区块链中的节点发起消息跨链传输请求,跨链功能激活,初始化跨链相关区块链中所有节点的配置,其中,第一区块链为消息发送方区块链;
步骤S3:第一区块链和第二区块链分别计算每个节点的可靠度,第二区块链为消息接收方区块链,并分别按照从高到低的顺序进行排序,分别从各自节点的可靠度序列中选取排序靠前的预设数量节点构建共识链,并从共识链中的多个第二区块链节点中随机选取一个节点作为主节点,剩余节点作为共识链的共识节点;
步骤S4:主节点接收第一区块链发送的跨链消息,对每个跨链消息附加一个ID,并对跨链消息进行一致性排序后打包成区块;
步骤S5:主节点将打包好的区块分发给共识链中的所有共识节点进行验证,所有共识节点对该区块是否具有跨链资格进行投票,只有当所有共识节点均投票时,该区块才具有跨链资格;
步骤S6:主节点将具有跨链资格的区块分发给第二区块链的所有节点,第二区块链的所有节点接收到区块后进行验证,若验证通过则更新本地账本。
进一步地,还包括以下内容:
步骤S7:当主节点在预设时间阈值内未接收到消息时,则共识链的所有节点服务器自动中断连接,此时共识链中断,待下次出现新的消息跨链传输请求时重新执行上述步骤S2至步骤S6。
进一步地,所述步骤S3中基于以下公式计算每个节点的可靠度:
NRi=λ1TSRi+λ2NNRi+λ3NCi+λ4EORi
其中,λ1、λ2、λ3、λ4表示权重系数,λ1,λ2,λ3,λ4∈(0,1)且λ1+λ2+λ3+λ4=1,NRi表示节点i的可靠度,TSRi表示节点交易成功率,NNRi表示邻居节点认可度,NCi表示节点贡献度,EORi表示节点有效在线率。
进一步地,所述节点交易成功率基于以下公式进行计算:
其中,SuccessNumij表示节点i与节点j的交易成功次数,Numij表示节点i与节点j的交易次数,n表示与节点i之间有交易的节点数;
所述邻居节点认可度基于以下公式进行计算:
其中,Neighborsi表示节点i的邻居节点集,|Neighborsi|表示节点i的邻居节点数,N为节点i所在区块链网络的节点数,邻居节点指的是在区块链网络中与节点i存在至少一次交易的节点;
所述节点贡献度基于以下公式进行计算:
所述节点有效在线率基于以下公式进行计算:
其中,Online-Timei为节点i在区块链网络中的在线时长,Timei为节点i加入区块链网络的总时长,EORi越接近1,表示节点有效在线率越高。
进一步地,所述步骤S4中基于以下公式计算每个跨链消息的ID:
其中,δ1、δ2为权重系数,δ1,δ2∈(0,1),且δ1+δ2=1,IDi为消息i的ID,timestampi为消息i的时间戳,NRi为消息i来源节点的可靠度,每次计算IDi时,δ1,δ2都从(0,1)之间随机生成。
进一步地,所述步骤S4中对跨链消息进行一致性排序的过程包括以下内容:
步骤S41:将接收到的多个跨链消息数据集分成若干个子集,每两个子集进行排序合并;
步骤S42:设定一个空序列和两个指针,且两个指针的最初位置分别为两个子集的起始位置;
步骤S43:将两个子集中指针最初位置对应的消息ID进行对比,ID小的消息放入空序列的第1位,此时该子集中的指针后移一个位置,再比较指针后移后对应消息的ID与另一个子集中指针对应消息的ID,ID小的消息放入空序列的第2位;
步骤S44:重复执行步骤S43,直至只有一个指针达到子集末尾,并将该子集最后的消息放到空序列的最后一位;
步骤S45:重复执行步骤S42至步骤S44,直到所有子集合并为一个按ID从小到大排列的有序序列。
进一步地,所述步骤S2中初始化配置的内容包括生成共识链的节点选取占比、共识链主节点消息监听时间阈值和共识链区块大小。
进一步地,在所述步骤S5中,若投票节点占比低于100%,则主节点需重新打包区块,再次发起投票。
另外,本发明还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。
另外,本发明还提供一种计算机可读取的存储介质,用于存储进行区块链的跨链消息传输的计算机程序,所述计算机程序在计算机上运行时执行如上所述的方法的步骤。
本发明具有以下效果:
本发明的区块链的跨链消息传输方法中,创新性地将节点可靠度引入区块链跨链技术中,让跨链技术更贴合实际应用场景,同时,由可靠度高的节点构建的共识链,其主节点从跨链消息接收方的区块链节点中选取,既符合消息接收方的安全考虑,又满足消息接收方对区块结构的要求,有助于提升消息跨链传输效率。同时,共识链基于已有区块链结构构建,无需新增节点或寻找第三方公证人,无需消耗更多资源,实现成本较低,并且,由于跨链产生的共识链主节点是从原有区块链节点中可靠度高的节点中选取,其既是共识链主节点,又是原有区块链节点,该特点对于在有激励机制的区块链体系中,能够激励可靠度不高的节点向可靠度高的节点转变。因此,本发明的区块链的跨链消息传输方法具有实现难度低、安全性高、消息处理效率高的优点。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明优选实施例的区块链的跨链消息传输方法的流程示意图。
图2是本发明优选实施例的区块链的跨链消息传输方法的另一具体实施方式的流程示意图。
图3是图1中步骤S4的子流程示意图。
图4是本发明优选实施例中的共识链进行跨链信息传输的示意图。
具体实施方式
以下结合附图对本发明的实施例进行详细说明,但是本发明可以由下述所限定和覆盖的多种不同方式实施。
如图1所示,本发明的优选实施例提供一种区块链的跨链消息传输方法,包括以下内容:
步骤S1:在需要进行跨链消息传输的两个区块链的每个节点中预先布置用于监听消息跨链传输请求的路由代码和用于构建共识链并控制共识链运行状态的共识链代码;
步骤S2:第一区块链中的节点发起消息跨链传输请求,跨链功能激活,初始化跨链相关区块链中所有节点的配置,其中,第一区块链为消息发送方区块链;
步骤S3:第一区块链和第二区块链分别计算每个节点的可靠度,第二区块链为消息接收方区块链,并分别按照从高到低的顺序进行排序,分别从各自节点的可靠度序列中选取排序靠前的预设数量节点构建共识链,并从共识链中的多个第二区块链节点中随机选取一个节点作为主节点,剩余节点作为共识链的共识节点;
步骤S4:主节点接收第一区块链发送的跨链消息,对每个跨链消息附加一个ID,并对跨链消息进行一致性排序后打包成区块;
步骤S5:主节点将打包好的区块分发给共识链中的所有共识节点进行验证,所有共识节点对该区块是否具有跨链资格进行投票,只有当所有共识节点均投票时,该区块才具有跨链资格;
步骤S6:主节点将具有跨链资格的区块分发给第二区块链的所有节点,第二区块链的所有节点接收到区块后进行验证,若验证通过则更新本地账本。
可以理解,本实施例的区块链的跨链消息传输方法中,创新性地将节点可靠度引入区块链跨链技术中,让跨链技术更贴合实际应用场景,同时,由可靠度高的节点构建的共识链,其主节点从跨链消息接收方的区块链节点中选取,既符合消息接收方的安全考虑,又满足消息接收方对区块结构的要求,有助于提升消息跨链传输效率。同时,共识链基于已有区块链结构构建,无需新增节点或寻找第三方公证人,无需消耗更多资源,实现成本较低,并且,由于跨链产生的共识链主节点是从原有区块链节点中可靠度高的节点中选取,其既是共识链主节点,又是原有区块链节点,该特点对于在有激励机制的区块链体系中,能够激励可靠度不高的节点向可靠度高的节点转变。因此,本发明的区块链的跨链消息传输方法具有实现难度低、安全性高、消息处理效率高的优点。
可以理解,如图2所示,所述区块链的跨链消息传输方法还包括以下内容:
步骤S7:当主节点在预设时间阈值内未接收到消息时,则共识链的所有节点服务器自动中断连接,此时共识链中断,待下次出现新的消息跨链传输请求时重新执行上述步骤S2至步骤S6。
可以理解,为了提高区块链之间跨链消息传输的安全性和区块链网络的公平性,共识链具有时效性,即共识链中的主节点负责监听通信消息,如果超过最大时间阈值未接收到新消息,则主节点通知共识链中的所有节点终止共识链的网络连接,共识链结束,直到下次有新的跨链通信时,重新计算节点可靠性并构建新的共识链进行消息跨链传输。因此,本发明的区块链的跨链消息传输方法创新性地提出跨链技术的“待机”功能,即在不同区块链之间需要进行跨链时才激活跨链功能,而在不需要进行跨链时,跨链功能处于未激活状态。此功能有助于维护区块链的独立性,节省跨链消耗的资源,同时提高跨链安全性。
可以理解,在所述步骤S1中,在需要进行跨链消息传输的两个区块链的所有节点中预先布置好路由代码和共识链代码,其中,路由代码用于监听消息跨链传输请求,一旦有区块链的节点发起消息跨链传输请求,则所有节点均可以监听到并实现跨链功能的激活,所述共识链代码则用于生成共识链、共识链中的主节点选举、实现共识算法、中断共识链等动作,共识链代码可以控制共识链的运行状态。另外,在本发明中,消息发送方区块链作为第一区块链,消息接收方区块链作为第二区块链。
可以理解,在所述步骤S2中,当第一区块链中的节点发起消息跨链传输请求时,跨链功能被激活,此时,第一区块链和第二区块链中的所有节点进行初始化配置,初始化内容包括生成共识链的节点选取占比、共识链主节点消息监听时间阈值和共识链区块大小,其中,生成共识链的节点选取占比一般选取可靠度高的前5%,共识链区块大小为一个区块最多包含500个消息,当然在本发明的其它实施例中,具体设置可以根据需要进行设定,在此不做具体限定。
可以理解,在所述步骤S3中,当跨链功能激活后,第一区块链和第二区块链分别计算其网络中每个节点的可靠度,具体基于以下公式计算每个节点的可靠度:
NRi=λ1TSRi+λ2NNRi+λ3NCi+λ4EORi
其中,λ1、λ2、λ3、λ4表示权重系数,λ1,λ2,λ3,λ4∈(0,1)且λ1+λ2+λ3+λ4=1,NRi表示节点i的可靠度,TSRi表示节点交易成功率,NNRi表示邻居节点认可度,NCi表示节点贡献度,EORi表示节点有效在线率。NRi值越大,节点i的可靠度越高。
可以理解,区块链可以看做一个由多个节点构成的复杂网络,在复杂网络中,节点与节点之间存在不同的特征属性,比如节点在网络中的位置、节点处理交易的效率以及节点的度分布等都可能不同,这类特征综合起来即节点的可靠度,可靠度高的节点往往能够更大程度地影响区块链网络的结构和功能。因此,如何衡量节点的可靠度是一个难点,也是本发明的创新点之一,在本发明中,节点可靠度的衡量考虑了节点自身交易历史数据以及与邻居节点的连接情况等,采用节点交易成功率、邻居节点认可度、节点贡献度和节点有效在线率这四个数据指标来对节点可靠度进行综合评价。
其中,节点交易成功率(Transaction Success Rate,TSR)是指在一定时间范围内节点i与其它节点成功完成的交易量(包括发起交易和接收交易)与它们之间产生总交易量的比值。所述节点交易成功率TSRi基于以下公式进行计算:
其中,SuccessNumij表示节点i与节点j的交易成功次数,Numij表示节点i与节点j的交易次数,n表示与节点i之间有交易的节点数。
而邻居节点(Neighbor node)是指在区块链网络中与节点i存在连边(即至少一次交易)的节点,邻居节点认可度(Neighbor Node Recognition,NNR)是指节点i的邻居节点数与区块链网络总节点数的比值。所述邻居节点认可度NNRi基于以下公式进行计算:
其中,Neighborsi表示节点i的邻居节点集,|Neighborsi|表示节点i的邻居节点数,N为节点i所在区块链网络的节点数。
而节点贡献度(Node Contribution,NC)用来描述节点在区块链网络中的数据贡献水平,相关参数包括节点上传和下载数据大小、节点发出和接收交易数量等。所述节点贡献度NCi基于以下公式进行计算:
而节点有效在线率(Effective Online Rate,EOR)表示节点在区块链网络中的在线时长与加入网络的总时长的比例。所述节点有效在线率基于以下公式进行计算:
其中,Online-Timei为节点i在区块链网络中的在线时长,Timei为节点i加入区块链网络的总时长,EORi越接近1,表示节点有效在线率越高。
然后,第一区块链和第二区块链基于上述公式计算得到每个节点的可靠度,然后分别按照从高到低的顺序进行排序,可以得到两个可靠度序列,然后分别从两个可靠度序列中选取前5%的节点来构建共识链,则抽取出来的这些节点既是共识链中的节点,又是原有区块链中的节点。
接着,在共识链的多个第二区块链节点中随机选取一个节点作为主节点,而共识链中的第一区块链节点和剩余的第二区块链节点则作为普通的共识节点。例如,区块链A向区块链B发送通信消息,则主节点则需要从区块链B中抽取出来的节点中随机选取。其中,主节点负责接收通信消息、采用归并排序算法对一定时间范围内接受到的消息进行排序、将消息打包区块并分发给共识链中的普通共识节点进行验证和投票、将验证投票通过的区块分发给接收消息的区块链中的所有节点,而其他普通共识节点则负责验证区块合法性、投票决定该区块是否能够跨链传输给接收方区块链。
可以理解,在所述步骤S4中,主节点在接收到第一区块链发送的跨链消息后,对每个消息附加一个ID号,作为后续进行一致性排序的标准。
其中,具体基于以下公式计算每个跨链消息的ID:
其中,δ1、δ2为权重系数,δ1,δ2∈(0,1),且δ1+δ2=1,IDi为消息i的ID,timestampi为消息i的时间戳,NRi为消息i来源节点的可靠度,每次计算IDi时,δ1,δ2都从(0,1)之间随机生成。
在共识链中,主节点获取一定时间范围内的跨链消息后,按每个消息的ID大小进行归并排序,以实现跨链消息数据的一致性。如图3所示,具体地,对跨链消息进行一致性排序的过程具体包括以下内容:
步骤S41:将接收到的多个跨链消息数据集分成若干个子集,每两个子集进行排序合并;
步骤S42:设定一个空序列和两个指针,且两个指针的最初位置分别为两个子集的起始位置;其中,空序列需要单独申请存储空间;
步骤S43:将两个子集中指针最初位置对应的消息ID进行对比,ID小的消息放入空序列的第1位,此时该子集中的指针后移一个位置,再比较指针后移后对应消息的ID与另一个子集中指针对应消息的ID,ID小的消息放入空序列的第2位;
步骤S44:重复执行步骤S43,直至只有一个指针达到子集末尾,并将该子集最后的消息放到空序列的最后一位;
步骤S45:重复执行步骤S42至步骤S44,直到所有子集合并为一个按ID从小到大排列的有序序列。
然后,主节点按照预设的区块大小从得到的有序序列中选取消息按照第二区块链的区块格式打包成区块,例如选取500个消息打包成区块。
可以理解,本发明的共识链采取归并排序算法对一定时间范围内接收到的消息进行排序,该算法是建立在归并操作上的一种有效的排序算法,采用了分治(Divide andConquer)思想,通过上述递归方式,归并排序能够高效地实现排序,相比大多数排序算法的时间复杂度,本发明的归并排序的时间复杂度明显较小,但代价是需要额外的内存空间。
可以理解,在所述步骤S5中,主节点将打包好的区块分发给共识链中的所有普通共识节点,共识链中的所有共识节点对区块内的消息数据进行验证,主节点再对验证通过后的区块发起跨链资格投票,当且仅当所有共识节点投票时,区块才拥有跨链资格。若投票节点占比低于100%,则主节点需重新打包区块,再次发起投票。
可以理解,在所述步骤S6中,主节点将投票通过后具有跨链资格的区块广播给第二区块链中的所有节点,第二区块链中的所有节点接收到区块进行验证后更新本地服务器数据,从而完成第二区块链的区块上链,进而实现第一区块链和第二区块链之间的消息跨链传输。
为了更好地阐述本发明的技术构思,如图4所示,以区块链1作为消息发送方、以区块链2作为消息接收方来进行示例性说明。从区块链1发送跨链消息至区块链2的过程为:
1、区块链1中的某个节点(消息发送方)发起跨链消息传输请求,激活跨链功能;
2、跨链功能激活后,区块链1和区块链2(消息接收方)中的所有节点服务器初始化跨链功能设置,计算节点可靠度,并各自生成可靠度排序序列,各自取可靠度序列前5%的节点自动构建共识链;
3、在共识链的消息接收方区块链2提供的节点中,随机抽取一个节点作为主节点,负责接收区块链1发送的消息,并对每个消息附加一个ID号,并按ID号对消息进行归并排序,生成有序的消息序列;
4、共识链的主节点(同时也是区块链2的节点)将消息序列中的消息按区块链2的区块格式打包成区块,并发送给共识链中的所有共识节点;其中,区块链1和区块链2可能是异构区块链,因此选取的主节点须为消息接收方区块链2中的节点,从而支持将区块链1节点发送的消息按区块链2的区块格式打包成区块;
5、共识链的所有共识节点对区块内的消息数据进行第一次验证(即模拟交易),主节点对验证通过的区块再发起跨链资格投票,当且仅当100%的共识节点投票时,区块才拥有跨链资格;
6、对拥有跨链资格的区块,共识链的主节点(同时也是区块链2的节点)将区块广播给区块链2的所有节点,区块链2的所有节点第二次验证后更新本地服务器数据,完成区块链2的区块上链。
可以理解,本发明的区块链的跨链消息传输方法具有以下优点:
1)、创新性地将节点可靠度引入区块链跨链技术中,让跨链技术更贴合实际应用场景,同时,由可靠度高的节点构建的共识链,其主节点从跨链消息接收方区块链节点中选取,既符合消息接收方的安全考虑,又满足消息接收方对区块结构的要求,有助于提升消息跨链传输效率;
2)、解决了现有跨链技术在实现难度、安全性、执行效率上无法同时满足的问题;
3)、解决现有跨链技术实现成本较高,存在资源消耗严重的问题,本发明提出的跨链消息传递技术基于已有区块链节点,无需新增节点或寻找第三方公证人,不存在消耗更多资源的问题;
4)、本发明创新性地提出跨链技术的“待机”功能,即在不同区块链之间需要进行跨链时才激活跨链功能,而在不需要进行跨链时,跨链功能处于未激活状态。此功能有助于维护区块链的独立性,节省跨链消耗的资源,同时提高跨链安全性。
另外,本发明的另一实施例还提供一种设备,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上所述的方法的步骤。
另外,本发明的另一实施例还提供一种计算机可读取的存储介质,用于存储进行区块链的跨链消息传输的计算机程序,其特征在于,所述计算机程序在计算机上运行时执行如上所述的方法的步骤。
一般计算机可读取介质的形式包括:软盘(floppy disk)、可挠性盘片(flexibledisk)、硬盘、磁带、任何其与的磁性介质、CD-ROM、任何其余的光学介质、打孔卡片(punchcards)、纸带(paper tape)、任何其余的带有洞的图案的物理介质、随机存取存储器(RAM)、可编程只读存储器(PROM)、可抹除可编程只读存储器(EPROM)、快闪可抹除可编程只读存储器(FLASH-EPROM)、其余任何存储器芯片或卡匣、或任何其余可让计算机读取的介质。指令可进一步被一传输介质所传送或接收。传输介质这一术语可包含任何有形或无形的介质,其可用来存储、编码或承载用来给机器执行的指令,并且包含数字或模拟通信信号或其与促进上述指令的通信的无形介质。传输介质包含同轴电缆、铜线以及光纤,其包含了用来传输一计算机数据信号的总线的导线。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种区块链的跨链消息传输方法,其特征在于,包括以下内容:
步骤S1:在需要进行跨链消息传输的两个区块链的每个节点中预先布置用于监听消息跨链传输请求的路由代码和用于构建共识链并控制共识链运行状态的共识链代码;
步骤S2:第一区块链中的节点发起消息跨链传输请求,跨链功能激活,初始化跨链相关区块链中所有节点的配置,其中,第一区块链为消息发送方区块链;
步骤S3:第一区块链和第二区块链分别计算每个节点的可靠度,第二区块链为消息接收方区块链,并分别按照从高到低的顺序进行排序,分别从各自节点的可靠度序列中选取排序靠前的预设数量节点构建共识链,并从共识链中的多个第二区块链节点中随机选取一个节点作为主节点,剩余节点作为共识链的共识节点;
步骤S4:主节点接收第一区块链发送的跨链消息,对每个跨链消息附加一个ID,并对跨链消息进行一致性排序后打包成区块;
步骤S5:主节点将打包好的区块分发给共识链中的所有共识节点进行验证,所有共识节点对该区块是否具有跨链资格进行投票,只有当所有共识节点均投票时,该区块才具有跨链资格;
步骤S6:主节点将具有跨链资格的区块分发给第二区块链的所有节点,第二区块链的所有节点接收到区块后进行验证,若验证通过则更新本地账本。
2.如权利要求1所述的区块链的跨链消息传输方法,其特征在于,还包括以下内容:
步骤S7:当主节点在预设时间阈值内未接收到消息时,则共识链的所有节点服务器自动中断连接,此时共识链中断,待下次出现新的消息跨链传输请求时重新执行上述步骤S2至步骤S6。
3.如权利要求1所述的区块链的跨链消息传输方法,其特征在于,所述步骤S3中基于以下公式计算每个节点的可靠度:
NRi=λ1TSRi+λ2NNRi+λ3NCi+λ4EORi
其中,λ1、λ2、λ3、λ4表示权重系数,λ1,λ2,λ3,λ4∈(0,1)且λ1+λ2+λ3+λ4=1,NRi表示节点i的可靠度,TSRi表示节点交易成功率,NNRi表示邻居节点认可度,NCi表示节点贡献度,EORi表示节点有效在线率。
4.如权利要求3所述的区块链的跨链消息传输方法,其特征在于,所述节点交易成功率基于以下公式进行计算:
其中,SuccessNumij表示节点i与节点j的交易成功次数,Numij表示节点i与节点j的交易次数,n表示与节点i之间有交易的节点数;
所述邻居节点认可度基于以下公式进行计算:
其中,Neighborsi表示节点i的邻居节点集,|Neighborsi|表示节点i的邻居节点数,N为节点i所在区块链网络的节点数,邻居节点指的是在区块链网络中与节点i存在至少一次交易的节点;
所述节点贡献度基于以下公式进行计算:
所述节点有效在线率基于以下公式进行计算:
其中,Online-Timei为节点i在区块链网络中的在线时长,Timei为节点i加入区块链网络的总时长,EORi越接近1,表示节点有效在线率越高。
6.如权利要求1所述的区块链的跨链消息传输方法,其特征在于,所述步骤S4中对跨链消息进行一致性排序的过程包括以下内容:
步骤S41:将接收到的多个跨链消息数据集分成若干个子集,每两个子集进行排序合并;
步骤S42:设定一个空序列和两个指针,且两个指针的最初位置分别为两个子集的起始位置;
步骤S43:将两个子集中指针最初位置对应的消息ID进行对比,ID小的消息放入空序列的第1位,此时该子集中的指针后移一个位置,再比较指针后移后对应消息的ID与另一个子集中指针对应消息的ID,ID小的消息放入空序列的第2位;
步骤S44:重复执行步骤S43,直至只有一个指针达到子集末尾,并将该子集最后的消息放到空序列的最后一位;
步骤S45:重复执行步骤S42至步骤S44,直到所有子集合并为一个按ID从小到大排列的有序序列。
7.如权利要求1所述的区块链的跨链消息传输方法,其特征在于,所述步骤S2中初始化配置的内容包括生成共识链的节点选取占比、共识链主节点消息监听时间阈值和共识链区块大小。
8.如权利要求1所述的区块链的跨链消息传输方法,其特征在于,在所述步骤S5中,若投票节点占比低于100%,则主节点需重新打包区块,再次发起投票。
9.一种设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如权利要求1~8任一项所述的方法的步骤。
10.一种计算机可读取的存储介质,用于存储进行区块链的跨链消息传输的计算机程序,其特征在于,所述计算机程序在计算机上运行时执行如权利要求1~8任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838686.1A CN113645278B (zh) | 2021-07-23 | 2021-07-23 | 一种区块链的跨链消息传输方法、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110838686.1A CN113645278B (zh) | 2021-07-23 | 2021-07-23 | 一种区块链的跨链消息传输方法、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113645278A true CN113645278A (zh) | 2021-11-12 |
CN113645278B CN113645278B (zh) | 2022-09-20 |
Family
ID=78418173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110838686.1A Active CN113645278B (zh) | 2021-07-23 | 2021-07-23 | 一种区块链的跨链消息传输方法、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113645278B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143367A (zh) * | 2021-11-29 | 2022-03-04 | 深圳壹账通智能科技有限公司 | 区块链网络中优化邻居节点的方法及装置 |
CN114297680A (zh) * | 2021-12-27 | 2022-04-08 | 广州大学 | 一种用于物联网环境的区块链跨链共识方法和*** |
CN115065688A (zh) * | 2022-06-06 | 2022-09-16 | 咪咕文化科技有限公司 | 一种数据传输方法、装置、设备及计算机可读存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190251199A1 (en) * | 2018-02-14 | 2019-08-15 | Ivan Klianev | Transactions Across Blockchain Networks |
CN110675148A (zh) * | 2019-09-11 | 2020-01-10 | 杭州秘猿科技有限公司 | 一种验证节点集合的同步方法、***及电子设备 |
US20200034356A1 (en) * | 2018-07-26 | 2020-01-30 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method, apparatus, device and storage medium for implementing application based on blockchain network |
CN111400399A (zh) * | 2020-03-04 | 2020-07-10 | 链农(深圳)信息科技有限公司 | 区块链***的账本同步方法、装置及硬件设备 |
CN111770102A (zh) * | 2020-07-01 | 2020-10-13 | 中国建设银行股份有限公司 | 一种区块链跨链方法、装置、计算机设备及存储介质 |
CN112104607A (zh) * | 2020-08-13 | 2020-12-18 | 北京新盛云佳科技有限公司 | 跨链通信的方法、装置、网络节点和存储介质 |
CN112217683A (zh) * | 2020-11-02 | 2021-01-12 | 西安西电链融科技有限公司 | 跨异构链数据可达性处理方法、***、介质、设备、终端 |
CN112862486A (zh) * | 2021-02-25 | 2021-05-28 | 杭州链网科技有限公司 | 一种基于镜像跨链的多方跨链方法及*** |
CN113067902A (zh) * | 2021-06-02 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 区块链消息的传输方法及装置 |
CN113067897A (zh) * | 2021-06-02 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 跨链交互方法及装置 |
CN113098689A (zh) * | 2021-02-25 | 2021-07-09 | 西安电子科技大学 | 一种信任建立的跨链共识方法、***、存储介质及应用 |
-
2021
- 2021-07-23 CN CN202110838686.1A patent/CN113645278B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190251199A1 (en) * | 2018-02-14 | 2019-08-15 | Ivan Klianev | Transactions Across Blockchain Networks |
US20200034356A1 (en) * | 2018-07-26 | 2020-01-30 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method, apparatus, device and storage medium for implementing application based on blockchain network |
CN110675148A (zh) * | 2019-09-11 | 2020-01-10 | 杭州秘猿科技有限公司 | 一种验证节点集合的同步方法、***及电子设备 |
CN111400399A (zh) * | 2020-03-04 | 2020-07-10 | 链农(深圳)信息科技有限公司 | 区块链***的账本同步方法、装置及硬件设备 |
CN111770102A (zh) * | 2020-07-01 | 2020-10-13 | 中国建设银行股份有限公司 | 一种区块链跨链方法、装置、计算机设备及存储介质 |
CN112104607A (zh) * | 2020-08-13 | 2020-12-18 | 北京新盛云佳科技有限公司 | 跨链通信的方法、装置、网络节点和存储介质 |
CN112217683A (zh) * | 2020-11-02 | 2021-01-12 | 西安西电链融科技有限公司 | 跨异构链数据可达性处理方法、***、介质、设备、终端 |
CN112862486A (zh) * | 2021-02-25 | 2021-05-28 | 杭州链网科技有限公司 | 一种基于镜像跨链的多方跨链方法及*** |
CN113098689A (zh) * | 2021-02-25 | 2021-07-09 | 西安电子科技大学 | 一种信任建立的跨链共识方法、***、存储介质及应用 |
CN113067902A (zh) * | 2021-06-02 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 区块链消息的传输方法及装置 |
CN113067897A (zh) * | 2021-06-02 | 2021-07-02 | 支付宝(杭州)信息技术有限公司 | 跨链交互方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143367A (zh) * | 2021-11-29 | 2022-03-04 | 深圳壹账通智能科技有限公司 | 区块链网络中优化邻居节点的方法及装置 |
CN114297680A (zh) * | 2021-12-27 | 2022-04-08 | 广州大学 | 一种用于物联网环境的区块链跨链共识方法和*** |
CN114297680B (zh) * | 2021-12-27 | 2024-05-17 | 广州大学 | 一种用于物联网环境的区块链跨链共识方法和*** |
CN115065688A (zh) * | 2022-06-06 | 2022-09-16 | 咪咕文化科技有限公司 | 一种数据传输方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113645278B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113645278B (zh) | 一种区块链的跨链消息传输方法、设备、存储介质 | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
EP3647955B1 (en) | Consensus-forming method in network, and node for configuring network | |
CN109246176B (zh) | 软件定义网络中基于区块链的多控制器同步方法及装置 | |
CN113347164B (zh) | 基于区块链的分布式共识***及方法、设备、存储介质 | |
CN107888562A (zh) | 互联链体系结构 | |
CN106682984A (zh) | 基于区块链的交易事务处理方法及*** | |
CN110046896A (zh) | 一种区块处理方法和节点以及*** | |
CN110599177A (zh) | 一种交易验证方法及相关设备 | |
CN109146490A (zh) | 区块生成方法、装置和*** | |
CN111698315B (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
CN110166249B (zh) | 一种信息传输方法、装置、验证端及计算机可读存储介质 | |
CN111815321A (zh) | 交易提案的处理方法、装置、***、存储介质和电子装置 | |
CN113886501A (zh) | 一种基于多链架构下的区块链业务模块扩展方法 | |
CN112995167A (zh) | 基于Kafka机制的用电信息采集方法、区块链网络及用户端 | |
KR20210109767A (ko) | 블록 체인 모니터링 기반 자산 탈취 방지 서비스 제공 방법 및 그 장치 | |
CN116389504A (zh) | 基于区块链的身份认证快速共识方法、***、设备及介质 | |
US20230291656A1 (en) | Operation of a distributed deterministic network | |
CN111953546B (zh) | 基于区块链***的物联网设备管理方法和智能家居*** | |
CN115701078A (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
EP3928461A1 (en) | Energized identity powered blockchain | |
CN115022324B (zh) | 基于边缘计算的网点集群处理方法及*** | |
CN113922953B (zh) | 一种数据处理方法及装置 | |
CN116977073A (zh) | 交易处理方法、装置、设备及介质 | |
CN115913517A (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 |