CN111769948A - 基于区块链的链间交互方法、系统、装置和计算机设备 - Google Patents
基于区块链的链间交互方法、系统、装置和计算机设备 Download PDFInfo
- Publication number
- CN111769948A CN111769948A CN202010542884.9A CN202010542884A CN111769948A CN 111769948 A CN111769948 A CN 111769948A CN 202010542884 A CN202010542884 A CN 202010542884A CN 111769948 A CN111769948 A CN 111769948A
- Authority
- CN
- China
- Prior art keywords
- chain
- cross
- interaction
- message
- contract
- 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/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
- H04L9/3255—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 using group based signatures, e.g. ring or threshold signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- 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
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于区块链的链间交互方法、系统、装置和计算机设备。该方法包括:接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将第一跨链交互消息存储至第一缓存队列中;对第一缓存队列中的第一跨链交互消息对应的跨链交互合约进行验证,将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;将第二跨链交互消息存储至第二缓存队列中,依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链,第二跨链交互消息用于指示第二区块链对与第二跨链交互消息对应的跨链交互合约进行处理,得到跨链数据交互处理结果。采用本方法减少跨链交互过程中的消息拥堵,提高区块链链间交互可靠性。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链的链间交互方法、系统、装置和计算机设备。
背景技术
随着区块链技术的发展,出现了区块链跨链数据交互技术,无论对于公有链、联盟链还是私有链,区块链跨链数据交互技术,都是把区块链从分散的孤岛中拯救出来的良药,是区块链连接及向外拓展的桥梁。
然而,目前的区块链跨链技术需要包括的公证人机制、侧链/中继、哈希锁定、分布式私钥控制等业务繁多,且代码实现起来复杂度高,容易出现数据传输过程中消息拥堵及消息丢失的问题,进而造成链与链间数据交互过程的可靠性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种基于区块链的链间交互方法、系统、装置和计算机设备。
一种基于区块链的链间交互方法,所述方法应用于区块链中的公证人节点,所述公证人节点是根据第一区块链和第二区块链的验证节点确定的,所述验证节点为区块链中进行合约共识的节点,所述方法包括:
接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将所述第一跨链交互消息存储至第一缓存队列中;
对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;
将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,所述第二跨链交互消息用于指示所述第二区块链对与所述第二跨链交互消息对应的所述跨链交互合约进行处理,得到跨链数据交互处理结果。
在其中一个实施例中,所述公证人节点的确定方法包括:
在所述第一区块链和所述第二区块链各验证节点列表中,指定初始公证人节点,同时记录跨链数据交互次数;
当所述跨链数据交互次数达到预设数目阈值时,将所述数目阈值对应的本次跨链数据交互过程中的目标跨链交互合约的哈希值,作为随机选取机制中的随机种子;
对所述随机种子进行取模计算,得到多个随机序列;
根据所述多个随机序列,对所述第一区块链和所述第二区块链中的所述各验证节点列表进行节点混洗,得到混洗后的各验证节点列表,并在所述混洗后的各验证节点列表内指定新的公证人节点。
在其中一个实施例中,所述对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息,包括:
根据所述第一缓存队列中的所述第一跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,所述目标跨链交互合约中包括跨链数据处理序号;
根据所述第一区块链当前跨链数据处理序号,对所述目标跨链交互合约中的所述跨链数据处理序号进行验证;
若所述目标跨链交互合约中的所述跨链数据处理序号验证通过,则将所述目标交互合约对应的跨链交互消息作为第二跨链交互消息。
在其中一个实施例中,所述将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,包括:
接收所述第二跨链交互消息,所述第二跨链交互消息中携带有队列索引序号、转移资产和跨链交互合约标识;
按照所述第二跨链交互消息中所述转移资产由大到小的顺序,对所述第二跨链交互消息中的所述队列索引序号进行排序,并依序将所述第二跨链交互消息存储至所述第二缓存队列中;
按照所述转移资产由大到小的顺序从所述第二缓存队列中读取所述第二跨链交互消息,并将所述第二跨链交互消息发送至第二区块链。
在一个实施例中,所述方法还包括:
根据所述第二跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,所述目标跨链交互合约中包括跨链数据处理序号、源链标识、目的链标识和合约支付凭证;
根据当前跨链数据处理序号、第一区块链标识和第二区块链标识,验证所述跨链数据处理序号、所述源链标识和所述目的链标识是否正确,判定所述第二跨链交互消息的有效性;
若所述第二跨链交互消息有效,则根据所述第一区块链和所述第二区块链全部跨链交互合约的哈希值验证所述目标跨链交互合约中合约支付凭证的合法性。
在一个实施例中,所述公证人节点包括所述第一区块链对应的第一公证人节点和所述第二区块链对应的第二公证人节点;
所述将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,包括:
所述第一公证人节点将所述第二跨链交互消息存储至第二缓存队列中;
所述第二公证人节点依次从所述第二缓存队列中读取所述第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链。
一种基于区块链的链间交互系统,所述链间交互系统包括区块链平台、第一区块链和第二区块链;
所述区块链平台,用于根据预设的随机选取机制,分别在第一区块链与第二区块链各验证节点列表中,选取出公证人节点,所述验证节点为区块链中进行合约共识的节点,所述公证人节点为跨链数据交互过程中对应的同一个合约进行公证的节点;
所述第一区块链,用于根据接收到的所述跨链交互请求,创建跨链交互合约,并生成第一跨链交互消息,将所述第一跨链交互消息发送给所述公证人节点;
所述公证人节点,用于将所述第一跨链交互消息存储至第一缓存队列中,对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的所述跨链交互合约对应的跨链交互消息作为第二跨链交互消息,将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链;
所述第二区块链,用于对接收到的所述跨链交互合约进行处理,得到跨链数据交互处理结果,并将所述跨链数据交互处理结果反馈给所述第一区块链。
一种基于区块链的链间交互装置,所述装置应用于区块链中的公证人节点,所述公证人节点是根据第一区块链和第二区块链的验证节点确定的,所述验证节点为区块链中进行合约共识的节点,所述装置包括:
接收模块,用于接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将所述第一跨链交互消息存储至第一缓存队列中;
验证模块,用于对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;
发送模块,用于将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,所述第二跨链交互消息用于指示所述第二区块链对与所述第二跨链交互消息对应的所述跨链交互合约进行处理,得到跨链数据交互处理结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将所述第一跨链交互消息存储至第一缓存队列中;
对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;
将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,所述第二跨链交互消息用于指示所述第二区块链对与所述第二跨链交互消息对应的所述跨链交互合约进行处理,得到跨链数据交互处理结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将所述第一跨链交互消息存储至第一缓存队列中;
对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;
将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,所述第二跨链交互消息用于指示所述第二区块链对与所述第二跨链交互消息对应的所述跨链交互合约进行处理,得到跨链数据交互处理结果。
上述基于区块链的链间交互方法、系统、装置、计算机设备和存储介质,其中,该方法应用于公证人节点,公证人节点接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将所述第一跨链交互消息存储至第一缓存队列中;对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,所述第二跨链交互消息用于指示所述第二区块链对与所述第二跨链交互消息对应的所述跨链交互合约进行处理,得到跨链数据交互处理结果。通过采用第一缓存队列和第二缓存队列的分别接收和发送跨链交互消息,减少了跨链交互过程中的消息拥堵,避免了跨链交互消息丢失的问题,进而提高了区块链链间交互过程的可靠性。
附图说明
图1为一个实施例中基于区块链的链间交互方法的应用环境图;
图2为一个实施例中基于区块链的链间交互方法的流程示意图;
图3为一个实施例中公证人节点确定方法步骤的流程示意图;
图4为一个实施例中选取公证人节点的示意图;
图5为一个实施例中验证第一跨链交互消息有效性的方法的流程示意图;
图6为一个实施例中读取并发送第二跨链交互消息的方法的流程示意图;
图7为一个实施例中第二跨链交互消息加入第二缓存队列的示意图;
图8为一个实施例中第二跨链交互消息移出第二缓存队列的示意图;
图9为一个实施例中对目标跨链交互合约合法性验证的方法的流程示意图;
图10为一个实施例中第一区块链同步第二区块链的交易树示意图;
图11为一个实施例中基于区块链的链间交互装置示意图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于区块链的链间交互方法,可以应用于如图1所示的区块链的链间交互系统100中。该区块链的链间交互系统100包括区块链平台110(图中未示出)、第一区块链120和第二区块链130。其中,区块链平台110,用于根据预设的随机选取机制,分别在第一区块链120与第二区块链130各验证节点列表中,选取出公证人节点,验证节点为区块链中进行合约共识的节点,公证人节点为跨链数据交互过程中对应同一个合约进行公证的节点;第一区块链120,用于根据接收到的跨链交互请求,创建跨链交互合约,并生成第一跨链交互消息,将第一跨链交互消息发送给公证人节点;公证人节点,用于将第一跨链交互消息存储至第一缓存队列中,对第一缓存队列中的第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息,将第二跨链交互消息存储至第二缓存队列中,依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链;第二区块链130,用于对接收到的跨链交互合约进行处理,得到跨链数据交互处理结果,并将跨链数据交互处理结果反馈给第一区块链。上述区块链链间交互系统通过预设的随机选取机制对公证人节点进行选取,使选取出的公证人节点更具公平性和可靠性,同时,设置了第一缓存队列和第二缓存队列分别进行接收和发送跨链交互消息,减少了跨链交互过程中的消息拥堵,避免了跨链交互消息丢失的问题,进而提高了区块链链间交互过程的可靠性。
在一个实施例中,如图2所示,提供了一种基于区块链的链间交互方法,以该方法应用于图1中区块链的链间交互系统的公证人节点为例进行说明,包括以下步骤:
步骤201,接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将第一跨链交互消息存储至第一缓存队列中。
在实施中,若第一区块链为跨链数据交互的发起方区块链,第一区块链的区块链平台(简称为第一区块链平台)接收到用户发送的跨链交互请求后会进行跨链交互合约的创建,然后,第一区块链的区块链平台对该跨链交互合约进行共识打包后,根据共识后的跨链交互数据包生成对应的第一跨链交互消息,并将第一跨链交互消息发送至公证人节点,公证人节点在接收到第一跨链交互消息后,将第一跨链交互消息存储至第一缓存队列中。
具体的,例如,用户Alice通过用户终端向第一区块链平台发送一个跨链交互请求,该跨链交互请求中携带有创建跨链交互合约所需的信息,第一区块链平台根据该跨链交互请求中携带的信息通过注册的业务模块创建跨链交互合约,跨链交互合约可以表示为[index,dest_addres,code,type,input,source_addres,sig],其中,index为第一区块链的区块链平台交易序号(或称为跨链数据处理序号),每创建一次跨链交互合约,该跨链交互合约中的交易序号均为前次跨链交互的交易序号加1,当前交易序号可以由当前处理的跨链交互合约中查询到;dest_addres为跨链交互合约地址;code为跨链交互合约所需执行代码;type为操作类型,包括转移、发行资产等;input为调用跨链交互合约的参数,包括具体的调用函数名和函数参数;source_addres为用户(例如,Alice)地址;sig为跨链交互发起方对本次跨链交互的签名。第一区块链平台通过对跨链交互合约设置交易序号(跨链数据处理序号)对该次跨链交互过程中的跨链交互数据(也可称为交易资产)进行锁定,并锁定交互地址为当前跨链交互合约地址dest_addres,其解锁的条件为第二区块链(跨链数据交互的接收方区块链)成功执行跨链交互后返回的反馈信息。另外,第一区块链平台还对该次跨链交互设置了交互时间阈值timeout,以进行交互时间限制。
然后,第一区块链平台将生成的跨链交互合约进行第一区块链内各验证节点间的合约共识,共识通过后的跨链交互合约数据包生成对应的第一跨链交互消息,并将该第一跨链交互消息发送给公证人节点,公证人节点在接收到该第一跨链交互消息后,将该第一跨链交互消息存储至第一缓存队列(也可以称为消息接收队列)中。
步骤202,对第一缓存队列中的第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息。
在实施中,公证人节点对存储在第一缓存队列中的第一跨链交互消息对应的跨链交互合约进行验证,如果某一跨链交互合约验证通过,则公证人节点将该验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息。
步骤203,将第二跨链交互消息存储至第二缓存队列中,依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链,第二跨链交互消息用于指示第二区块链对与第二跨链交互消息对应的跨链交互合约进行处理,得到跨链数据交互处理结果。
在实施中,确定出的第二跨链交互消息用于指示第二区块链的区块链平台对该第二跨链交互消息对应的跨链交互合约进行处理,得到跨链数据交互处理结果。因此,公证人节点将确定出的第二跨链交互消息存储至第二缓存队列(也可以称为消息发送队列)中,依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链。
上述基于区块链的链间交互方法中,公证人节点接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将第一跨链交互消息存储至第一缓存队列中;对第一缓存队列中的第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;将第二跨链交互消息存储至第二缓存队列中,依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链,第二跨链交互消息用于指示第二区块链对与第二跨链交互消息对应的跨链交互合约进行处理,得到跨链数据交互处理结果。通过采用第一缓存队列和第二缓存队列的分别接收和发送跨链交互消息,将发送和接收消息进行有效隔离,减少了跨链交互过程中的消息拥堵,避免了跨链交互消息丢失的问题,进而提高了区块链链间交互过程的可靠性。
在一个实施例中,如图3所示,公证人节点的确定方法的具体处理过程如下所示:
步骤301,在第一区块链和第二区块链各验证节点列表中,指定初始公证人节点,同时记录跨链数据交互次数。
在实施中,验证节点为区块链中进行合约共识的节点,在第一区块链和第二区块链中分别包括各自的验证节点列表。每个验证节点列表中包含多个验证节点,区块链平台在验证节点列表中按照预设公证人节点选取数目,指定初始公证人节点,即对公证人节点进行初始化,同时记录选定公证人节点后的各次跨链数据交互的次数。
具体的,如图4所示,例如,第一区块链中包含的验证节点列表为{3,4,6,7,8},第二区块链中包含的验证节点列表为{1,2,5,8,9},区块链平台包括第一区块链对应的第一区块链平台和第二区块链对应的第二区块链平台,则第一区块链平台根据预设的公证人节点选取数目(例如,选取数目设置为验证人节点列表数目的1/3,取上整),指定第一区块链中的验证节点3,4,7为公证人节点,第二区块链平台指定第二区块链中的验证节点1,9为公证人节点,则对应的公证人节点列表为{1,3,4,7,9}。同时,区块链平台在指定出初始公证人节点后,会对每次的跨链数据交互的交互次数进行记录。
步骤302,当跨链数据交互次数达到预设数目阈值时,将数目阈值对应的本次跨链数据交互过程中的目标跨链交互合约的哈希值,作为随机选取机制中的随机种子。
在实施中,当区块链平台记录的跨链数据交互次数到达预设数目阈值时,区块链平台将该数目阈值对应的该次跨链数据交互过程中的目标跨链交互合约的哈希值,作为随机选取机制中的随机种子。例如,预设数目阈值为以每10次跨链数据交互作为一次公证人节点的选取条件,第10次跨链数据交互对应的目标跨链交互合约的哈希值就作为随机选取机制中的随机种子。
具体的,区块链平台预设有随机选取机制,该随机选取机制所需的随机种子(或称为随机数)需要由初始化后的公证人节点进行签名产生。具体过程为采用阈值BLS签名算法,根据指定的初始化公证人节点生成当前初始化聚合公钥pAggregation=a1×p1+a3×p3+a4×p4+a7×p7+a9×p9,其中,ai为聚合系数,ai的取值为对应公证人节点的公钥哈希值ai=hash(pi,{p1,p3,p4,p7,p9})。i={1,3,4,7,9};pi为公证人节点的公钥。其中,i={1,3,4,7,9}。因为BLS签名具有唯一性并且所需存储空间小,不需要全部公证人节点进行签名,只要满足BLS预设的签名阈值即可,因此,可以避免因某一公证人节点故障造成的随机种子无法产生的问题,因此,公证人节点可以根据生成的聚合公钥对跨链数据交互合约的哈希值进行签名,而不需要全部公证人节点签名。例如,初始化的公证人节点对第一次的跨链交互合约的哈希值进行签名,可以表示为h1=hash(Aggregate_Sign(Tx1_H)),其中,Tx1_H为第一次的跨链交互合约的哈希值,Tx1_H对应的跨链交互信息Tx具体包括:{from,to,seq,proof,args{f_assets_addr,t_assets_addr,f_comm_id,f_comm_id,dest_address,code,input},version}其中,from中为发起方区块链(第一区块链)的id,to中为接收方区块链(第二区块链)的id;seq为跨链数据处理序号(等同于index交易序号),seq等于对应的发起方区块链当前跨链数据处理序号(交易序号)加一(seq+1);proof为跨链交互过程中发起方区块链(第一区块链)提供的SPV(Simplified Payment Verification,简单支付凭证);args中包括固定参数和自定义参数,其中,固定参数为:f_assets_addr为发送方跨链交互合约地址,t_comm_addr为接收方跨链交互合约地址,f_comm_id为发送方传输通道(第一缓存队列)的id,t_comm_id为接收方传输通道(第二缓存队列)id,dest_address为接收方区块链的目的地址,code为跨链交互合约所需执行代码,此外,还包括input的自定义参数,例如合约函数等。
同样的,该初始化公证人节点也可以对第2-10次跨链交互合约的哈希值进行签名认证,具体表示如下:
h2=hash(Aggregate_Sign(Tx2_H)+h1)
h3=hash(Aggregate_Sign(Tx3_H)+h2)
h4=hash(Aggregate_Sign(Tx4_H)+h3)
h5=hash(Aggregate_Sign(Tx5_H)+h4)
h6=hash(Aggregate_Sign(Tx6_H)+h5)
h7=hash(Aggregate_Sign(Tx7_H)+h6)
h8=hash(Aggregate_Sign(Tx8_H)+h7)
h9=hash(Aggregate_Sign(Tx9_H)+h8)
h10=hash(Aggregate_Sign(Tx9_H)+h9)
当第一区块链平台进行到第10次跨链数据交互时,跨链次数达到预设的跨链数据交互数目阈值,则区块链平台将初始化公证人节点签名的第10次跨链交互合约哈希值(即h10)的前三个字节,作为下一次公证人节点选取的随机种子。
步骤303,对随机种子进行取模计算,得到多个随机序列。
在实施中,区块链平台对选取出的随机种子进行取模运算,可以多个随机序列,例如,区块链平台可以对h10的前三个字节进行取模32(即mod32)的运算,可以得到32个相同步长(rand_size)的随机序列。
步骤304,根据多个随机序列,对第一区块链和第二区块链中的各验证节点列表进行节点混洗,得到混洗后的各验证节点列表,并在混洗后的各验证节点列表内指定新的公证人节点。
在实施中,区块链平台根据得到的多个随机序列,对各验证人节点列表进行循环处理,让每个验证节点在多个随机序列里彻底与其他验证节点交换位置,实现对各验证节点列表中验证节点的混洗,得到混洗后的各验证节点列表,进而,区块链平台在混洗后的各验证节点列表中指定出新的公证人节点。
本实施例中,将跨链数据交互次数达到预设数目阈值时对应的目标跨链交互合约的哈希值,作为公证人节点随机选取机制的随机种子,对第一区块链和第二区块链各验证节点列表中的验证节点进行混洗,进而选取出具有随机性的公证人节点。采用该方法选取出的公证人节点更具有公平性和可靠性,从而增强区块链的去中心化程度,避免了对公证人节点的恶意篡改问题。
在一个实施例中,如图5所示,步骤202的具体处理过程如下所示:
步骤2021,根据第一缓存队列中的第一跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,目标跨链交互合约中包括跨链数据处理序号。
在实施中,公证人节点根据第一缓存队列中的第一跨链交互消息中的跨链交互合约标识(例如,跨链交互合约id),确定目标跨链交互合约,对该跨链交互合约的跨链交互过程进行监听。其中,目标跨链交互合约中包括跨链数据处理序号。
步骤2022,根据第一区块链当前跨链数据处理序号,对目标跨链交互合约中的跨链数据处理序号进行验证。
在实施中,公证人节点根据第一区块链当前跨链数据处理序号,对目标交互合约中的跨链数据序号进行验证,具体的,公证人节点查询第一区块链当前正在执行的跨链交互合约的当前跨链数据处理序号,根据该当前跨链数据处理序号,对目标跨链交互合约中的跨链数据处理序号进行验证,目标交互合约为待公证的跨链交互合约,因此,目标交互合约中的跨链数据处理序号值应为当前跨链数据处理序号值加1。
步骤2023,若目标跨链交互合约中的跨链数据处理序号验证通过,则将目标交互合约对应的跨链交互消息作为第二跨链交互消息。
在实施中,若公证人节点对目标跨链交互合约中的跨链数据处理序号验证通过,即,目标跨链交互合约中的跨链数据处理序号值等于当前跨链数据处理序号值加1,则公证人节点将目标交互合约对应的跨链交互消息作为第二跨链交互消息。
本实施例中,公证人节点对目标跨链交互合约进行验证,通过确定目标跨链交互合约中跨链数据处理序号的有效性(即每次跨链数据交互过程中制定的跨链数据处理序号都是唯一的),对该次跨链数据交互过程进行锁定,避免跨链交互双方出现交互过程中的交易资产双花问题。
在一个实施例中,如图6所示,步骤203具体处理过程如下所示:
步骤2031,接收第二跨链交互消息,第二跨链交互消息中携带有队列索引序号、转移资产和跨链交互合约标识。
在实施中,公证人节点接收第二跨链交互消息,其中,第二跨链交互消息中携带有队列索引序号、转移资产和跨链交互合约标识,例如,第二跨链交互消息可以表示为<0,12,id_2>,其中,0表示该第二跨链交互消息在第二缓存队列中的队列索引,12表示该第二跨链交互消息对应的跨链交互过程中的转移资产值,id_2为该跨链交互合约的合约标识。
步骤2032,按照第二跨链交互消息中转移资产由大到小的顺序,对第二跨链交互消息中的队列索引序号进行排序,并依序将第二跨链交互消息存储至第二缓存队列中。
在实施中,公证人节点按照第二跨链交互消息中转移资产由大到小的顺序,采用优先堆排序的方法,对第二跨链交互消息中的队列索引序号进行排序,并依序将第二跨链交互消息存储至第二缓存队列中,例如,存在多个第二跨链交互消息,公证人节点采用优先堆排序的方法对这多个第二跨链交互消息以转移资产越大为优先大堆排序的方式进行排序,将这多个第二跨链交互消息存储至第二缓存队列(也可称为消息发送队列)中,其中,第二缓存队列中的存储顺序为<0,10,id_5>、<1,8,id_6>、<2,6,id_2>、<3,5,id_3>、<4,3,id_1>、<5,2,id_4>。若要加入新的第二跨链交互消息,例如,<x,12,id_7>,其中x表示该第二跨链交互消息中的队列索引序号还未确定,则如图7所示,第二缓存队列中所有的元素(跨链交互消息)都会往后移动,具体的队列集合为{<0,12,id_7>、<1,10,id_5>、<2,8,id_6>、<3,6,id_2>、<4,5,id_3>、<5,3,id_1>、<6,2,id_4>},然后,将<0,12,id_7>与<1,10,id_5>进行比较,确定<0,12,id_7>与<1,10,id_5>不需要移动和交换位置,<1,10,id_5>与<2,8,id_6>进行比较不需要交换位置;同样的,<2,8,id_6>与<3,6,id_2>,<3,6,id_2>与<4,5,id_3>,<4,5,id_3>与<5,3,id_1>,<5,3,id_1>与<6,2,id_4>比较,均不需要交换位置,则新加入元素后的第二缓存队列中的队列集合即为{<0,12,id_7>、<1,10,id_5>、<2,8,id_6>、<3,6,id_2>、<4,5,id_3>、<5,3,id_1>、<6,2,id_4>}。
步骤2033,按照转移资产由大到小的顺序从第二缓存队列中读取第二跨链交互消息,并将第二跨链交互消息发送至第二区块链。
在实施中,公证人节点按照转移资产由大到小的顺序从第二缓存队列中读取第二跨链交互消息,即并将第二跨链交互消息发送至第二区跨链。具体的,如图8所示,例如,公证人节点需要将<0,10,id_5>的内容发送给第二区块链,即为<0,10,id_5>出缓存队列,则<0,10,id_5>元素在队列中移除后,会导致第二缓存队列中整个集合中的元素前移为{<0,8,id_6>、<1,6,id_2>、<2,5,id_3>、<3,3,id_1>、<4,2,id_4>},然后,基于与步骤2032相同的比较方式,<0,8,id_6>与<1,6,id_2>比较不需要交换位置,<1,6,id_2>与<2,5,id_3>比较不需要交换位置,<2,5,id_3>与<3,3,id_1>,<3,3,id_1>与<4,2,id_4>比较,均不需要交换位置,则<0,10,id_5>出第二缓存队列后,第二缓存队列中的队列集合存储顺序为{<0,8,id_6>、<1,6,id_2>、<2,5,id_3>、<3,3,id_1>、<4,2,id_4>}。进一步地,公证人节点依序读取<0,8,id_6>、<1,6,id_2>等第二跨链交互消息,并以同样的方式出缓存队列,公证人节点将其发送至第二区块链。
本实施例中,采用优先堆排序的方式,以第二跨链交互消息中跨链转移资产越大越优先,对队列内各元素(各第二跨链交互消息)进行排序,防止消息的阻塞,同时通过对应的跨链交互合约标识,对第二跨链交互消息(也即第二跨链交互合约)进行区分,使公证人节点可以快速高效处理各跨链交互消息,并防止消息丢失。
在一个实施例中,公证人节点包括第一区块链对应的第一公证人节点和第二区块链对应的第二公证人节点。
具体的,如上述步骤301至304所述,公证人节点包括第一区块链对应的第一公证人节点(例如,第一公证人节点3,4,7)和第二区块链对应的第二公证人节点(例如,第二公证人节点1,9)。
则步骤203具体处理过程还包括:第一公证人节点将第二跨链交互消息存储至第二缓存队列中。第二公证人节点依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链。
在实施中,第一区块链对应的第一公证人节点对第一跨链交互消息对应的跨链交互合约进行验证之后,验证通过的跨链交互合约的跨链交互消息(即第二跨链交互消息)依序存储至第二缓存队列中(即上述步骤2031至2032)。然后,第二区块链对应的第二公证人节点再依次从第二缓存队列中读取第二跨链交互消息,对各第二跨链交互消息对应的跨链交互合约进行有效性验证,验证通过后将读取的第二跨链交互消息发送至第二区块链(即上述步骤2033)。
在一个实施例中,如图9所示,该基于区块链的链间交互方法还包括:
步骤204,根据第二跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,目标跨链交互合约中包括跨链数据处理序号、源链标识、目的链标识和合约支付凭证。
在实施中,第二区块链在接收到第二跨链交互消息后,第二区块链根据第二跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,该目标跨链交互合约中包括跨链数据处理序号、源链标识、目的链标识和合约支付凭证。
步骤205,根据当前跨链数据处理序号、第一区块链标识和第二区块链标识,验证跨链数据处理序号、源链标识和目的链标识是否正确,判定第二跨链交互消息的有效性。
在实施中,第二区块链根据当前跨链数据处理序号、第一区块链标识和第二区块链标识,验证目标跨链交互合约中的跨链数据处理序号、源链标识和目的链标识是否正确,如果目标跨链交互合约中的跨链数据处理序号值等于该当前跨链数据处理序号值加1,目标跨链数据交互合约中的源链标识与第一区块链标识一致,目的链标识与第二区块链标识一致,则判定该目标跨链交互合约对应的第二跨链交互消息有效。
步骤206,若第二跨链交互消息有效,则根据第一区块链和第二区块链全部跨链交互合约的哈希值验证目标跨链交互合约中合约支付凭证的合法性。
在实施中,若第二跨链交互消息有效,则第二区块链根据第一区块链与第二区块链全部跨链交互合约的哈希值验证目标跨链交互合约中合约支付凭证的有效性。
具体的,区块链头里面存储着上一个区块的哈希值和本申请体的哈希值以及时间戳,第二区块链根据第一区块链同步第二区块链的区块链头信息中包含的交易树和账号树的默克尔树根哈希值,来校验合约支付凭证(SPV)是否合法,如图10所示,以区块链头中的交易树为例进行说明,该默克尔交易树存储第一区块链和第二区块链的所有跨链数据交互过程中数据的哈希值信息,为了验证该目标跨链数据交互合约且降低验证数据量,本申请中在跨链交互合约创建时选用轻默克尔交易树,该轻默克尔交易树只需要从该交易树底部记录目标跨链数据交互合约中的目标数据(D<TargetData>),并向上记录相关的该次跨链交互中的交互信息哈希值,并存储在该交易树叶节点中,构成轻默克尔树,最终,第二区块链只需要通过根节点包含的交互信息的哈希值证明目标跨链数据交互合约中的数据(D<TargetData>)合法即可。
可选的,当该目标跨链交互合约验证通过后,第二区块链根据该目标跨链交互合约中的信息进行数据交互处理,并将执行结果反馈给第一区块链,第一区块链根据该执行结果判断此次跨链数据交互的有效性。
本实施例中,第二区块链通过轻默克尔交易树,对目标跨链数据交互合约的合法性进行验证,降低验证数据量,提高了合约验证效率。
应该理解的是,虽然图2-3、5-6和9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3、5-6和9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图1所示,提供了一种基于区块链的链间交互系统,区块链的链间交互系统包括区块链平台110(图中未示出)、第一区块链120和第二区块链130。
区块链平台110,用于根据预设的随机选取机制,分别在第一区块链与第二区块链各验证节点列表中,选取出公证人节点,验证节点为区块链中进行合约共识的节点,公证人节点为跨链数据交互过程中对应的同一个合约进行公证的节点。
第一区块链120,用于根据接收到的跨链交互请求,创建跨链交互合约,并生成第一跨链交互消息,将第一跨链交互消息发送给公证人节点。
公证人节点,用于将第一跨链交互消息存储至第一缓存队列中,对第一缓存队列中的第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约对应的跨链交互消息作为第二跨链交互消息,将第二跨链交互消息存储至第二缓存队列中,依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链。
第二区块链130,用于对接收到的跨链交互合约进行处理,得到跨链数据交互处理结果,并将跨链数据交互处理结果反馈给第一区块链。
上述基于区块链的链间交互系统,包括:区块链平台、第一区块链和第二区块链,采用该区块链的链间交互系统,利用预设的随机选取机制对公证人节点进行选取,使选取出的公证人节点更具公平性和可靠性,同时,设置了第一缓存队列和第二缓存队列分别进行接收和发送跨链交互消息,减少了跨链交互过程中的消息拥堵,避免了跨链交互消息丢失的问题,进而提高了区块链链间交互过程的可靠性。
在一个实施例中,如图11所示,提供了一种基于区块链的链间交互装置1110,该装置应用于区块链中的公证人节点,该公证人节点是根据第一区块链和第二区块链的验证节点确定的,验证节点为区块链中进行合约共识的节点,包括:接收模块1111、验证模块1112和发送模块1113,其中:
接收模块1111,用于接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将第一跨链交互消息存储至第一缓存队列中。
验证模块1112,用于对第一缓存队列中的第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息。
发送模块1113,用于将第二跨链交互消息存储至第二缓存队列中,依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链,第二跨链交互消息用于指示第二区块链对与第二跨链交互消息对应的跨链交互合约进行处理,得到跨链数据交互处理结果。
在一个实施例中,公证人节点的确定装置用于在第一区块链和第二区块链各验证节点列表中,指定初始公证人节点,同时记录跨链数据交互次数。
当跨链数据交互次数达到预设数目阈值时,将数目阈值对应的本次跨链数据交互过程中的目标跨链交互合约的哈希值,作为随机选取机制中的随机种子。
对随机种子进行取模计算,得到多个随机序列。
根据多个随机序列,对第一区块链和第二区块链中的各验证节点列表进行节点混洗,得到混洗后的各验证节点列表,并在混洗后的各验证节点列表内指定新的公证人节点。
在一个实施例中,验证模块具体用于根据第一缓存队列中的第一跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,目标跨链交互合约中包括跨链数据处理序号。
根据第一区块链当前跨链数据处理序号,对目标跨链交互合约中的跨链数据处理序号进行验证。
若目标跨链交互合约中的跨链数据处理序号验证通过,则将目标交互合约对应的跨链交互消息作为第二跨链交互消息。
在一个实施例中,发送模块具体用于接收第二跨链交互消息,第二跨链交互消息中携带有队列索引序号、转移资产和跨链交互合约标识。
按照第二跨链交互消息中转移资产由大到小的顺序,对第二跨链交互消息中的队列索引序号进行排序,并依序将第二跨链交互消息存储至第二缓存队列中。
按照转移资产由大到小的顺序从第二缓存队列中读取第二跨链交互消息,并将第二跨链交互消息发送至第二区块链。
在一个实施例中,该装置还包括:
根据第二跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,目标跨链交互合约中包括跨链数据处理序号、源链标识、目的链标识和合约支付凭证。
根据当前跨链数据处理序号、第一区块链标识和第二区块链标识,验证跨链数据处理序号、源链标识和目的链标识是否正确,判定第二跨链交互消息的有效性。
若第二跨链交互消息有效,则根据第一区块链和第二区块链全部跨链交互合约的哈希值验证目标跨链交互合约中合约支付凭证的合法性。
在一个实施例中,公证人节点包括第一区块链对应的第一公证人节点和第二区块链对应的第二公证人节点。
第一公证人节点将第二跨链交互消息存储至第二缓存队列中。
第二公证人节点依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链。
上述基于区块链的链间交互装置,包括接收模块1111、验证模块1112和发送模块1113,接收模块1111,用于接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将第一跨链交互消息存储至第一缓存队列中。验证模块1112,用于对第一缓存队列中的第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息。发送模块1113,用于将第二跨链交互消息存储至第二缓存队列中,依次从第二缓存队列中读取第二跨链交互消息,并将读取的第二跨链交互消息发送至第二区块链,第二跨链交互消息用于指示第二区块链对与第二跨链交互消息对应的跨链交互合约进行处理,得到跨链数据交互处理结果。通过采用第一缓存队列和第二缓存队列的分别接收和发送跨链交互消息,将发送和接收消息进行有效隔离,减少了跨链交互过程中的消息拥堵,避免了跨链交互消息丢失的问题,进而提高了区块链链间交互过程的可靠性。
关于基于区块链的链间交互装置的具体限定可以参见上文中对于基于区块链的链间交互方法的限定,在此不再赘述。上述基于区块链的链间交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储跨链数据交互数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的链间交互方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于区块链的链间交互方法,其特征在于,所述方法应用于区块链中的公证人节点,所述公证人节点是根据第一区块链和第二区块链的验证节点确定的,所述验证节点为区块链中进行合约共识的节点,所述方法包括:
接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将所述第一跨链交互消息存储至第一缓存队列中;
对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;
将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,所述第二跨链交互消息用于指示所述第二区块链对与所述第二跨链交互消息对应的所述跨链交互合约进行处理,得到跨链数据交互处理结果。
2.根据权利要求1所述的方法,其特征在于,所述公证人节点的确定方法包括:
在所述第一区块链和所述第二区块链各验证节点列表中,指定初始公证人节点,同时记录跨链数据交互次数;
当所述跨链数据交互次数达到预设数目阈值时,将所述数目阈值对应的本次跨链数据交互过程中的目标跨链交互合约的哈希值,作为随机选取机制中的随机种子;
对所述随机种子进行取模计算,得到多个随机序列;
根据所述多个随机序列,对所述第一区块链和所述第二区块链中的所述各验证节点列表进行节点混洗,得到混洗后的各验证节点列表,并在所述混洗后的各验证节点列表内指定新的公证人节点。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息,包括:
根据所述第一缓存队列中的所述第一跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,所述目标跨链交互合约中包括跨链数据处理序号;
根据所述第一区块链当前跨链数据处理序号,对所述目标跨链交互合约中的所述跨链数据处理序号进行验证;
若所述目标跨链交互合约中的所述跨链数据处理序号验证通过,则将所述目标交互合约对应的跨链交互消息作为第二跨链交互消息。
4.根据权利要求1所述的方法,其特征在于,所述将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,包括:
接收所述第二跨链交互消息,所述第二跨链交互消息中携带有队列索引序号、转移资产和跨链交互合约标识;
按照所述第二跨链交互消息中所述转移资产由大到小的顺序,对所述第二跨链交互消息中的所述队列索引序号进行排序,并依序将所述第二跨链交互消息存储至所述第二缓存队列中;
按照所述转移资产由大到小的顺序从所述第二缓存队列中读取所述第二跨链交互消息,并将所述第二跨链交互消息发送至第二区块链。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第二跨链交互消息中的跨链交互合约标识,确定目标跨链交互合约,所述目标跨链交互合约中包括跨链数据处理序号、源链标识、目的链标识和合约支付凭证;
根据当前跨链数据处理序号、第一区块链标识和第二区块链标识,验证所述跨链数据处理序号、所述源链标识和所述目的链标识是否正确,判定所述第二跨链交互消息的有效性;
若所述第二跨链交互消息有效,则根据所述第一区块链和所述第二区块链全部跨链交互合约的哈希值验证所述目标跨链交互合约中合约支付凭证的合法性。
6.根据权利要求1所述的方法,其特征在于,所述公证人节点包括所述第一区块链对应的第一公证人节点和所述第二区块链对应的第二公证人节点;
所述将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,包括:
所述第一公证人节点将所述第二跨链交互消息存储至第二缓存队列中;
所述第二公证人节点依次从所述第二缓存队列中读取所述第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链。
7.一种基于区块链的链间交互系统,所述区块链的链间交互系统包括区块链平台、第一区块链和第二区块链;
所述区块链平台,用于根据预设的随机选取机制,分别在第一区块链与第二区块链各验证节点列表中,选取出公证人节点,所述验证节点为区块链中进行合约共识的节点,所述公证人节点为跨链数据交互过程中对应的同一个合约进行公证的节点;
所述第一区块链,用于根据接收到的所述跨链交互请求,创建跨链交互合约,并生成第一跨链交互消息,将所述第一跨链交互消息发送给所述公证人节点;
所述公证人节点,用于将所述第一跨链交互消息存储至第一缓存队列中,对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的所述跨链交互合约对应的跨链交互消息作为第二跨链交互消息,将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链;
所述第二区块链,用于对接收到的所述跨链交互合约进行处理,得到跨链数据交互处理结果,并将所述跨链数据交互处理结果反馈给所述第一区块链。
8.一种基于区块链的链间交互装置,其特征在于,所述装置应用于区块链中的公证人节点,所述公证人节点是根据第一区块链和第二区块链的验证节点确定的,所述验证节点为区块链中进行合约共识的节点,所述装置包括:
接收模块,用于接收第一区块链根据创建的跨链交互合约所生成的第一跨链交互消息,将所述第一跨链交互消息存储至第一缓存队列中;
验证模块,用于对所述第一缓存队列中的所述第一跨链交互消息对应的跨链交互合约进行验证,并将验证通过的跨链交互合约的跨链交互消息作为第二跨链交互消息;
发送模块,用于将所述第二跨链交互消息存储至第二缓存队列中,依次从所述第二缓存队列中读取第二跨链交互消息,并将读取的所述第二跨链交互消息发送至所述第二区块链,所述第二跨链交互消息用于指示所述第二区块链对与所述第二跨链交互消息对应的所述跨链交互合约进行处理,得到跨链数据交互处理结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010542884.9A CN111769948B (zh) | 2020-06-15 | 2020-06-15 | 基于区块链的链间交互方法、系统、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010542884.9A CN111769948B (zh) | 2020-06-15 | 2020-06-15 | 基于区块链的链间交互方法、系统、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111769948A true CN111769948A (zh) | 2020-10-13 |
CN111769948B CN111769948B (zh) | 2023-06-02 |
Family
ID=72722173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010542884.9A Active CN111769948B (zh) | 2020-06-15 | 2020-06-15 | 基于区块链的链间交互方法、系统、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111769948B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491846A (zh) * | 2020-11-18 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种跨链的区块链通信方法及装置 |
CN112600905A (zh) * | 2020-12-09 | 2021-04-02 | 杭州复杂美科技有限公司 | 交易广播和区块生成方法、设备和存储介质 |
CN112615915A (zh) * | 2020-12-10 | 2021-04-06 | 浙商银行股份有限公司 | 一种在私有链之间构建联盟链的方法 |
CN112787999A (zh) * | 2020-12-25 | 2021-05-11 | 深圳前海微众银行股份有限公司 | 跨链调用方法、装置、系统与计算机可读存储介质 |
CN112953999A (zh) * | 2020-12-29 | 2021-06-11 | 合肥达朴汇联科技有限公司 | 应用于t1节点的区块链信息跨链交互方法、系统、设备 |
CN112994892A (zh) * | 2020-12-17 | 2021-06-18 | 中国工商银行股份有限公司 | 跨链交互方法、装置、系统和电子设备 |
CN113259120A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 同步节点信息列表的方法 |
CN113407977A (zh) * | 2021-07-21 | 2021-09-17 | 杭州链网科技有限公司 | 基于聚合签名的跨链扩展方法及系统 |
CN113704813A (zh) * | 2021-07-20 | 2021-11-26 | 武汉理工大学 | 海工装备二级标识数据存储方法及系统、验证方法及系统 |
WO2023124302A1 (zh) * | 2021-12-31 | 2023-07-06 | 杭州趣链科技有限公司 | 数据处理方法、装置、终端设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848119A (zh) * | 2018-04-03 | 2018-11-20 | 阿里巴巴集团控股有限公司 | 跨区块链的交互方法及装置、系统、电子设备 |
CN109087080A (zh) * | 2018-07-13 | 2018-12-25 | 杭州复杂美科技有限公司 | 跨链交易方法、设备和存储介质 |
CN110033271A (zh) * | 2019-03-22 | 2019-07-19 | 湖南天河国云科技有限公司 | 一种跨链交易方法、系统及计算机可读存储介质 |
US20190311337A1 (en) * | 2018-04-04 | 2019-10-10 | Vijay K. Madisetti | Method and System for Exchange of Value or Tokens Between Blockchain Networks |
CN111046109A (zh) * | 2019-12-27 | 2020-04-21 | 深圳市网心科技有限公司 | 一种跨链任务处理方法、装置、设备及可读存储介质 |
-
2020
- 2020-06-15 CN CN202010542884.9A patent/CN111769948B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848119A (zh) * | 2018-04-03 | 2018-11-20 | 阿里巴巴集团控股有限公司 | 跨区块链的交互方法及装置、系统、电子设备 |
US20190311337A1 (en) * | 2018-04-04 | 2019-10-10 | Vijay K. Madisetti | Method and System for Exchange of Value or Tokens Between Blockchain Networks |
CN109087080A (zh) * | 2018-07-13 | 2018-12-25 | 杭州复杂美科技有限公司 | 跨链交易方法、设备和存储介质 |
CN110033271A (zh) * | 2019-03-22 | 2019-07-19 | 湖南天河国云科技有限公司 | 一种跨链交易方法、系统及计算机可读存储介质 |
CN111046109A (zh) * | 2019-12-27 | 2020-04-21 | 深圳市网心科技有限公司 | 一种跨链任务处理方法、装置、设备及可读存储介质 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112491846A (zh) * | 2020-11-18 | 2021-03-12 | 深圳前海微众银行股份有限公司 | 一种跨链的区块链通信方法及装置 |
CN112491846B (zh) * | 2020-11-18 | 2023-04-18 | 深圳前海微众银行股份有限公司 | 一种跨链的区块链通信方法及装置 |
CN112600905A (zh) * | 2020-12-09 | 2021-04-02 | 杭州复杂美科技有限公司 | 交易广播和区块生成方法、设备和存储介质 |
CN112600905B (zh) * | 2020-12-09 | 2023-04-14 | 杭州复杂美科技有限公司 | 交易广播和区块生成方法、设备和存储介质 |
CN112615915B (zh) * | 2020-12-10 | 2022-05-24 | 浙商银行股份有限公司 | 一种在私有链之间构建联盟链的方法 |
CN112615915A (zh) * | 2020-12-10 | 2021-04-06 | 浙商银行股份有限公司 | 一种在私有链之间构建联盟链的方法 |
CN112994892A (zh) * | 2020-12-17 | 2021-06-18 | 中国工商银行股份有限公司 | 跨链交互方法、装置、系统和电子设备 |
CN112787999A (zh) * | 2020-12-25 | 2021-05-11 | 深圳前海微众银行股份有限公司 | 跨链调用方法、装置、系统与计算机可读存储介质 |
CN112787999B (zh) * | 2020-12-25 | 2023-02-17 | 深圳前海微众银行股份有限公司 | 跨链调用方法、装置、系统与计算机可读存储介质 |
CN112953999A (zh) * | 2020-12-29 | 2021-06-11 | 合肥达朴汇联科技有限公司 | 应用于t1节点的区块链信息跨链交互方法、系统、设备 |
CN112953999B (zh) * | 2020-12-29 | 2024-05-24 | 合肥达朴汇联科技有限公司 | 应用于t1节点的区块链信息跨链交互方法、系统、设备 |
CN113259120A (zh) * | 2021-06-02 | 2021-08-13 | 支付宝(杭州)信息技术有限公司 | 同步节点信息列表的方法 |
CN113704813A (zh) * | 2021-07-20 | 2021-11-26 | 武汉理工大学 | 海工装备二级标识数据存储方法及系统、验证方法及系统 |
CN113407977B (zh) * | 2021-07-21 | 2022-06-10 | 杭州链网科技有限公司 | 基于聚合签名的跨链扩展方法及系统 |
CN113407977A (zh) * | 2021-07-21 | 2021-09-17 | 杭州链网科技有限公司 | 基于聚合签名的跨链扩展方法及系统 |
WO2023124302A1 (zh) * | 2021-12-31 | 2023-07-06 | 杭州趣链科技有限公司 | 数据处理方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111769948B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111769948A (zh) | 基于区块链的链间交互方法、系统、装置和计算机设备 | |
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
CN108965258B (zh) | 一种基于全同态加密的云环境数据完整性验证方法 | |
CN107833139B (zh) | 交易数据处理方法、装置、计算机设备及存储介质 | |
Lindell et al. | An efficient protocol for secure two-party computation in the presence of malicious adversaries | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111522874B (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
CN112087502B (zh) | 处理请求的方法、装置、设备及存储介质 | |
JP2021515271A (ja) | コンピュータにより実施される投票処理およびシステム | |
CN112862490B (zh) | 一种异步网络下的输出共识方法 | |
CN110555079B (zh) | 数据处理方法、装置、设备以及存储介质 | |
AU2018422776A1 (en) | Sybil-resistant identity generation | |
CN110224984A (zh) | 一种基于区块链技术的多方授权方法及装置 | |
EP3920464A1 (en) | Method for storing transaction that represents asset transfer to distributed network and program for the same | |
CN110990484A (zh) | 基于区块链的信息存储方法、系统、计算机设备及存储介质 | |
CN110633071B (zh) | 一种随机数生成方法及装置 | |
CN110493323B (zh) | 基于区块链的公平性文件分发方法、系统及存储介质 | |
CN110620776A (zh) | 一种数据转移信息传输方法及其装置 | |
CN115396443B (zh) | 基于时间因子的联盟链共识方法、装置、设备及存储介质 | |
CN110266478B (zh) | 一种信息处理方法、电子设备 | |
Chen et al. | On proofs of security for DAA schemes | |
CN109410049A (zh) | 区块链记账方法、装置、计算机设备和存储介质 | |
CN116132052A (zh) | 跨链交易方法、装置、电子设备及存储介质 | |
CN110597466B (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 |