一种基于中继设备跨链中转消息的方法和装置与流程

文档序号:25053779发布日期:2021-05-14 13:38阅读:97来源:国知局
一种基于中继设备跨链中转消息的方法和装置与流程

1.本说明书实施例涉及区块链技术领域,更具体地,涉及一种基于中继设备跨链中转消息的方法和装置。


背景技术:

2.区块链技术也被称之为分布式账本技术,是一种去中心化的分布式数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。区块链的每笔交易,都会广播到全网的区块链节点,每个全节点都有全量的、一致的数据。随着区块链技术的火热,出现了许多不同类型的链,应用在金融、健康医疗、供应链、资产管理和溯源等领域。然而大部分链上应用(加密货币或者智能合约)都无法跨越当前链的边界,不能与其他链协同合作实现价值的流通,从而限制了区块链的发挥空间。如何能让不同类型的链协同合作实现价值的流通成了探索的方向。
3.在现有的一种跨链技术中,在第一区块链中将跨链消息写入区块链的收据,链下的中继设备从第一区块链获取收据,将收据提供给第二区块链。假设第一区块链中通过简单支付验证(spv验证)方式对收据进行验证,从而,第二区块链中可通过调用与spv验证对应的消息验证合约,从而以spv验证的方式对所述收据进行验证,在验证通过之后,可从收据中取出跨链消息并提供给消息接收账户。在该方案中,第二区块链对收据的验证过程复杂,效率低下。
4.因此,需要一种更有效的跨链中转消息的方案。


技术实现要素:

5.本说明书实施例旨在提供一种更有效的跨链中转消息的方案,以解决现有技术中的不足。
6.为实现上述目的,本说明书一个方面提供一种基于中继设备跨链中转消息的方法,所述中继设备与第一区块链和第二区块链连接,并且所述中继设备中包括预言机,所述方法由所述中继设备执行,包括:从第一区块链获取所述第一数据及其证明数据,其中,所述第一数据中包括第一消息数据,所述第一消息数据中包括该第一消息数据的接收链标识;由所述预言机使用所述证明数据对所述第一数据进行验证;在验证通过的情况中,由所述预言机对所述第一消息数据进行数字签名;基于所述第一消息数据确定所述第一消息数据的接收链为第二区块链;以及将所述第一消息数据及对其的数字签名提供给所述第二区块链。
7.在一种实施方式中,在验证通过的情况中,由所述预言机对所述第一消息数据进行数字签名包括,在验证通过的情况中,由所述预言机将所述第一消息数据的格式转换为预定格式,由所述预言机对具有预定格式的第一消息数据进行数字签名。
8.在一种实施方式中,所述预言机为可信执行环境。
9.在一种实施方式中,所述可信执行环境中预先设置有与所述证明数据对应的验证算法,其中,使用所述证明数据对所述第一数据进行验证包括,通过执行所述验证算法,使用所述证明数据对所述第一数据进行验证。
10.在一种实施方式中,所述证明数据为spv证明数据。
11.在一种实施方式中,所述预言机为中继链,所述中继链包括多个中继节点,其中,所述数字签名包括每个中继节点的数字签名。
12.在一种实施方式中,所述第一数据为所述第一区块链中的以下任一种数据:区块头数据、交易数据、收据数据、账户状态数据。
13.本说明书另一方面提供一种基于中继设备跨链接收消息的方法,所述中继设备与第一区块链和第二区块链连接,并且,所述中继设备中包括预言机,所述方法由第二区块链执行,所述第二区块链中预先存储有所述预言机的公钥,所述方法包括:从所述中继设备获取第一消息数据及所述预言机对所述第一消息数据的数字签名,其中,所述第一消息数据由所述中继设备从所述第一区块链获取;使用所述预言机的公钥对所述数字签名进行验证;以及在验证通过之后,从所述第一消息数据解析获取所述第一消息。
14.在一种实施方式中,所述方法在第二区块链中执行由所述中继设备发送的第一交易时执行,其中,在所述第一交易中,以所述第一消息及其数字签名作为传入参数调用消息接收合约。
15.在一种实施方式中,所述方法还包括,基于所述第一消息内容,确定所述第一消息的接收账户为第一智能合约的合约账户,以所述第一消息作为传入参数调用所述第一智能合约。
16.本说明书另一方面提供一种基于中继设备跨链中转消息的装置,所述中继设备与第一区块链和第二区块链连接,并且所述中继设备中包括预言机,所述装置部署于所述中继设备,包括:获取单元,配置为,从第一区块链获取所述第一数据及其证明数据,其中,所述第一数据中包括第一消息数据,所述第一消息数据中包括该第一消息数据的接收链标识;验证单元,配置为,由所述预言机使用所述证明数据对所述第一数据进行验证;签名单元,配置为,在验证通过的情况中,由所述预言机对所述第一消息数据进行数字签名;确定单元,配置为,基于所述第一消息数据确定所述第一消息数据的接收链为第二区块链;以及提供单元,配置为,将所述第一消息数据及对其的数字签名提供给所述第二区块链。
17.在一种实施方式中,所述签名单元还配置为,在验证通过的情况中,将所述第一消息数据的格式转换为预定格式,对具有预定格式的第一消息数据进行数字签名。
18.在一种实施方式中,所述可信执行环境中预先设置有与所述证明数据对应的验证算法,其中,所述验证单元还配置为,通过执行所述验证算法,使用所述证明数据对所述第一数据进行验证。
19.本说明书另一方面提供一种基于中继设备跨链接收消息的装置,所述中继设备与
第一区块链和第二区块链连接,并且所述中继设备中包括预言机,所述装置部署于所述第二区块链中,所述第二区块链中预先存储有所述预言机的公钥,所述装置包括:获取单元,配置为,从所述中继设备获取第一消息数据及所述预言机对所述第一消息数据的数字签名,其中,所述第一消息数据由所述中继设备从所述第一区块链获取;验证单元,配置为,使用所述预言机的公钥对所述数字签名进行验证;以及解析单元,配置为,在验证通过之后,从所述第一消息数据解析获取所述第一消息。
20.在一种实施方式中,所述装置在第二区块链中执行由所述中继设备发送的第一交易时部署,其中,在所述第一交易中,以所述第一消息及其数字签名作为传入参数调用消息接收合约。
21.在一种实施方式中,所述装置还包括,确定单元,配置为,基于所述第一消息内容,确定所述第一消息的接收账户为第一智能合约的合约账户,以及调用单元,配置为,以所述第一消息作为传入参数调用所述第一智能合约。
22.本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
23.本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器在执行所述计算机程序时,实现上述任一项方法。
24.通过根据本说明书实施例的跨链中转消息的方案,在中继设备进行对消息的验证,从而将消息验证转化为简单的验证方式,提升了接收消息的区块链对消息的验证效率,另外,在本说明书实施例中,在中继设备将消息的数据格式转换为对合约友好的数据格式,进一步提升了合约解析数据的效率。
附图说明
25.通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:图1示出根据本说明书实施例的跨链系统的示意图;图2示出根据本说明书实施例的一种跨链中转消息的方法流程图;图3示出了在执行消息发送合约之后生成的日志的示意图;图4示出根据本说明书实施例的一种跨链接收消息的方法流程图;图5示出根据本说明书实施例的一种跨链中转消息的装置500;图6示出根据本说明书实施例的一种跨链接收消息的装置600。
具体实施方式
26.下面将结合附图描述本说明书实施例。
27.图1示出根据本说明书实施例的跨链系统的示意图。如图1所示,所述跨链系统包括第一区块链11、中继设备12和第二区块链13,其中,第一区块链11和第二区块链13分别与中继设备12连接。其中,第一区块链11中部署有第一合约和消息发送合约,第二区块链13中部署有消息接收合约和第四合约,中继设备12中包括预言机,预言机具有多种形式,例如其为可信执行环境(tee),该tee具有自身的硬件私钥和公钥。其中,所述第一合约和第四合约例如为用于进行跨链转账的合约。第一区块链11中的账户a例如希望给第二区块链13中的
账户b进行转账,账户a通过发送调用第一合约的交易而发起转账。当在第一区块链11中执行在该交易时,执行第一合约,从而对账户a的余额减去转账的数目,并执行第一合约中调用的消息发送合约,从而在第一区块链中存入例如收据m,收据m中包括待发送给第二区块链13中的第四合约的消息1。该消息1中例如包括该消息1的发送链标识、接收链(第二区块链13)标识、发送账户、接收账户(账户b)、接收合约账户(第四合约账户)及对账户b的余额增加的数目等内容。
28.第一区块链11和第二区块链13可以为任意区块链,如比特币链、以太坊链、hyperledger fabric区块链(下文称为fabric链)等等。不同的区块链具有不同的链上数据证明方式,例如,fabric链使用背书节点签名的方式,以太坊链使用spv证明的方式。不同的区块链也具有不同的数据格式,例如,fabric链的区块中的数据具有rotobuf格式,以太坊链的区块中的数据具有rlp格式。在这种情况下,如果如现有技术那样由第二区块链13中的消息接收合约对跨链数据(例如图1中的收据m)进行验证,将需要包括多种验证算法,以针对不同的证明方式进行验证,另外,也需要包括多种解析方式,以对不同格式的数据进行解析,并且这使得第二区块链13中的合约验证效率非常低。为了克服该问题,在本说明书实施例中,通过包括预言机的中继设备对数据进行验证和解析,从而可大大加快第二区块链13中的验证效率。
29.具体是,假设第一区块链为以太坊链,在第一区块链11中存入收据m之后,中继设备12可从第一区块链11中获取所述收据m及对应的spv证明数据,其中m为收据编号。中继设备12在获取收据m和spv证明数据之后,在预言机中执行以下步骤:通过spv验证方式对收据m进行验证,在验证通过之后,从收据m中取出消息1的数据,将消息1的数据格式转换为对合约友好的数据格式,然后,对经格式转换的消息1的数据进行数字签名。之后,中继设备向第二区块链13中发送交易n,该交易n中调用消息接收合约,并以消息1的数据及其数字签名作为消息接收合约的传入参数。当第二区块链13中的节点执行交易n时,也即在执行消息接收合约时,使用消息接收合约中预先写入的预言机的公钥对消息1的数据的数字签名进行验证,在验证通过之后,从消息1的数据解析出消息1。之后,基于消息1中的接收合约账户(即第四合约的合约账户),以消息1作为传入参数调用第四合约,从而将消息1传递给第四合约。第四合约在接收到消息1之后,根据消息1的内容将第二区块链13中的账户b的余额增加与预定数目对应的数目,从而完成所述转账过程。
30.可以理解,上述参考图1的描述只是示意性的,而不是用于限制本说明书实施例。例如,所述预言机可具有已知的各种形式,而不限于tee的形式。所述第一合约和第四合约不限于为用于转账的合约,而可以为其它合约。
31.下面将具体描述上述跨链中转消息的过程。
32.图2一种基于中继设备跨链中转消息的方法流程图,所述中继设备与第一区块链和第二区块链连接,并且所述中继设备中包括预言机,所述方法由所述中继设备执行,包括:步骤s202,从所述第一区块链获取所述第一数据及其证明数据,其中,所述第一数据中包括第一消息数据,所述第一消息数据中包括该第一消息数据的接收链标识;步骤s204,由所述预言机使用所述证明数据对所述第一数据进行验证;步骤s206,在验证通过的情况中,由所述预言机对所述第一消息数据进行数字签
名;步骤s208,基于所述第一消息数据确定所述第一消息数据的接收链为第二区块链;以及步骤s210,将所述第一消息数据及对其的数字签名提供给所述第二区块链。
33.如图1中所示,本说明书实施例中的中继设备中包括预言机,所述预言机是指对其对数据的处理过程可进行自证明以确保其对数据的处理真实可信的系统或装置。所述预言机例如可以为可信计算环境(trusted execution environment,tee),其例如为通过sgx、trust zone等技术生成的tee。任何需要的一方(例如第一区块链或第二区块链)都可以发送验证请求以对tee的处理过程进行验证。tee在接收所述验证请求之后,基于其内部机制生成认证信息,并将该认证信息发送给请求发送方以供其验证。所述认证信息例如包括所述tee的签名信息、硬件信息和软件信息等。其中,所述签名信息例如通过tee的硬件密钥生成;所述硬件信息例如包括,各种硬件的指标,比如cpu主频,内存容量等等;所述软件信息包括各个程序的代码哈希值、代码名称、版本、运行日志等。如本领域技术人员所知,tee可通过内存硬件执行对其中运行程序的“测量”,例如获取该程序的代码哈希值、该程序在特定执行点的内存占有的哈希值等等,并在所述认证信息中包括对所述程序的“测量”信息,由于该“测量”信息由该tee自身实体(内存硬件)执行,而不涉及任何软件、操作系统,因此是真实可信的。从而验证请求发送方在从tee接收到认证信息之后,可自身基于从tee接收的认证信息进行对tee的验证,或者可将所述认证信息发送给tee服务方,以通过tee的服务方获取对该tee的验证,从而可确定该tee是否可信,该tee中是否执行了预定程序,等等。
34.可以理解,所述预言机不限于为tee,而可以为任意符合上述预言机功能的系统或装置。例如,所述预言机可以为中继链,该中继链中包括多个中继节点,每个中继节点拥有其私钥和公钥,每个中继节点都对相同的数据进行同样的处理过程,只有在所述多个中继节点达成共识(即确定其对数据的处理结果是一致的)时,所述多个中继节点对相同的结果依次进行数字签名,从而可确保该数据处理结果是可信的。
35.下文中将以tee作为预言机的实例进行描述。
36.首先,在步骤s202,从所述第一区块链获取所述第一数据及其证明数据,其中,所述第一数据中包括第一消息数据,所述第一消息数据中包括该第一消息数据的接收链标识。
37.下文中将以第一区块链为以太坊链例进行示例描述,可以理解,在本说明书实施例中,所述第一区块链不限于为以太坊链,而可以为其它任意类型的区块链。所述第一数据例如为区块中的交易、收据,或者为账户状态等等,这些数据的共性为,其都在第一区块链中经过多个节点的共识之后存入第一区块链中,并且,基于区块的数据结构,可通过spv验证方式验证这些数据确实是第一区块链中的数据,即,第一数据为可认证数据,也即,第一数据中包括的跨链消息是可认证消息。
38.如图1中所示,在第一区块链中11,可通过消息发送合约将需要跨链发送的消息1以收据m的形式存入区块链中。该收据m为执行调用消息发送合约的交易所存入的收据,从而,该收据m中例如包括如图3所示的与消息发送合约对应的日志。图3示出了在执行消息发送合约之后生成的日志的示意图。如图3所示,该日志(log)具有预定主题(topic),例如该主题可以预设为“am”,以用于指示该日志是用于对链外发送消息的日志。在该日志中包括

to”字段,“from”字段和“data”字段。其中,“to”字段对应于被调用合约的账户,也即消息发送合约的账户,“from”字段对应于发起调用的合约的账户,也即第一合约的账户,“data”字段中即第一合约希望跨链发送的消息。其中,消息1可包括以下字段内容:发送链标识(即第一区块链11的标识)、接收链标识(即第二区块链13的标识)、发送账户(即账户a)、接收账户(即账户b)、接收合约账户(即第四合约的账户)及消息1(即第一消息)的消息内容。上述data字段对应的内容即构成消息1的数据,其以预定格式(如以太坊中的rlp格式存入区块链中)。可以理解,在本说明书实施例中,由于第一数据不限于为上述收据m,也可以为与其它交易相对应的收据,因此,第一数据中的第一消息不限于为上述收据m中的消息1的具体形式,例如,所述第一消息也可以为第一数据自身,或者可以为第一数据中包括的具有预定标识的部分数据,对此不作限定。
39.在以太坊链中,用于对第一数据进行spv验证的数据即为第一数据的证明数据。例如,第一数据为区块1中的收据m,收据m的spv证明数据包括:区块1的区块头哈希值、区块1中包括的收据树根哈希值、收据树中从收据m到根节点的树路径中其它各个节点的哈希值。
40.从而,中继设备12可对与消息发送合约对应的收据进行监听,每当确定第一区块链11中存入了执行消息发送合约所产生的收据时,即可从第一区块链11中读取该收据,并相应地读取该收据的spv证明数据。或者,第一区块链11中可主动进行信息推送,每次在确定第一区块链11中存入了执行消息发送合约所产生的收据时,将该收据及相应的spv证明数据主动推送给中继设备12。可以理解,在本说明书实施例中,不限于通过调用消息发送合约的方式来跨链发送消息,即,所述第一数据不限于为执行消息发送合约所存入区块链中的共识数据,而是可通过任何交易来跨链发送消息,即,所述第一数据可以为执行任何交易所存入区块链中的共识数据。
41.在步骤s204,由所述预言机使用所述证明数据对所述第一数据进行验证。
42.如上文所述,以预言机为tee为例,中继设备12的tee中预先设置了与各个区块链分别对应的验证算法。例如,tee中预设了与第一区块链11对应的spv验证算法,该spv验证算法中包括用于对来自第一区块链的数据进行spv验证所需要的代码及数据等。当中继设备确定第一数据(例如收据m)来自于第一区块链11之后,即可执行与第一区块链11对应的spv验证算法来使用spv证明数据对第一数据进行验证。
43.具体是,在预言机中可通过如下步骤对中继设备12获取的收据m进行验证:计算获取的收据m的哈希值;基于spv证明数据中包括的树路径中其它各节点的哈希值,计算区块1中收据树的根哈希值;将计算的根哈希值与spv证明数据中包括的区块1的收据树的根哈希值进行比较,以确定收据m是否为区块1中的收据m;以及,基于spv证明数据中包括区块1的区块头哈希值、以及spv验证算法中预先设置的第一区块链11的创世块的相关信息(例如创世块的哈希值),确定区块1是否为第一区块链11中的区块。
44.在步骤s206,在验证通过的情况中,由所述预言机对所述第一消息数据进行数字签名。
45.在上述验证都通过的情况中,即可验证收据m是第一区块链11中的区块1中的收据m,是经共识的可信数据。
46.在一种实施方式中,在第一数据为上述收据m的情况中,在验证通过之后,基于收据m中的数据结构,tee可从收据m中找到具有“am”主题的日志,获取该日志中包括的data字
段内容作为消息1的数据,然后,tee使用其私钥对该消息1的数据进行数字签名,从而以该数字签名作为消息1的数据的证明数据。
47.在一种实施方式中,在tee从收据m中获取消息1的数据之后,该消息1的数据具有以太坊链中的rlp格式,该格式较为复杂,解析过程较慢,为了进一步加速第二区块链13的消息验证过程,tee可使用预设的用于进行格式转换的程序对消息1的数据进行格式转换,例如,将其格式转换为对合约友好的json、tlv等数据格式,并在转换格式之后,对消息1的数据进行数字签名。
48.如果上述验证未通过,则证明中继设备12获取的收据m是不可信数据。tee将停止后续处理过程。
49.tee在对收据m进行处理之后,输出消息1的数据及与该数据对应的数字签名,其中,该消息1的数据可以为经格式转换的数据。
50.在步骤s208,基于所述第一消息数据确定所述第一消息数据的接收链为第二区块链。
51.中继设备1在从第一区块链11获取收据m之后,参考图3,可基于预定标识(例如“am”)从收据m中查找用于存储消息1的日志,并在查找到该日志之后,从该日志中读取消息1。通过读取消息1,基于消息1中的接收链标识字段内容,可确定消息1的接收链为第二区块链13。
52.在步骤s210,将所述第一消息数据及对其的数字签名提供给所述第二区块链。
53.如图1中所示,中继设备12在获取消息1的数据及其数字签名之后,基于消息1的消息内容,可确定该消息1将发送给第二区块链,从而,中继设备12可通过向第二区块链发送交易n的方式将消息1的数据及其数字签名提供给第二区块链。该交易n中例如以消息1的数据及其数字签名为传入参数调用消息接收合约。可以理解,所述交易n不限于通过调用消息接收合约的方式来提供消息1的数据及其数字签名,而可以为具有其它形式,只要交易n中有特定标识指示消息1的数据及其数字签名为跨链消息数据及其证明数据,从而指示第二区块链13使用数字签名对消息1的数据进行验证即可。
54.图4示出根据本说明书实施例的一种基于中继设备跨链接收消息的方法,所述中继设备与第一区块链和第二区块链连接,并且,所述中继设备中包括预言机,所述方法由第二区块链执行,所述第二区块链中预先存储有所述预言机的公钥,所述方法包括,包括:步骤s402,从所述中继设备获取第一消息数据及所述预言机对所述第一消息数据的数字签名,其中,所述第一消息数据由所述中继设备从所述第一区块链获取;步骤s404,使用所述预言机的公钥对所述数字签名进行验证;以及步骤s406,在验证通过之后,从所述第一消息数据解析获取所述第一消息。
55.首先,在步骤s402,从所述中继设备获取第一消息数据及所述预言机对所述第一消息数据的数字签名,其中,所述第一消息数据由所述中继设备从所述第一区块链获取。
56.图4所示方法可由第二区块链13中的任一节点执行。如上文所述,在中继设备12向第二区块链13发送交易n之后,第二区块链13中的每个节点都会获取交易n并执行交易n,从而将执行消息接收合约,以执行图4所示方法。在执行消息接收合约时,将从交易n获取其中的作为合约传入参数的消息1的数据及其数字签名。可以理解,如上文所述,交易n不限于调用消息接收合约,因此,在执行交易n时,不限于通过执行消息接收合约来执行图4所示方
法。
57.在步骤s404,使用所述预言机的公钥对所述数字签名进行验证。
58.消息接收合约中预先设置了上述tee的公钥,第二区块链13中的节点在执行消息接收合约时,使用tee的公钥对传入参数中的数字签名进行验证。所述验证的具体过程为,计算消息1的哈希值,使用tee的公钥对消息1的数字签名解析解密,比较消息1的哈希值与所述解密获取的值是否相同,如果相同,则说明所述数字签名确实是通过tee的私钥生成的数字签名,即从中继设备12接收的消息1的数据是真实可信的。该验证过程相比于现有技术中的在通过合约进行例如spv证明的过程将简单得多。
59.在上述预言机为中继链的情况中,预言机的公钥包括中继链中各个节点的公钥,消息1的数字签名包括中继链各个节点的数字签名,从而,对数字签名进行验证包括,按照预定顺序,使用各个公钥对各个数字签名依次验证。
60.在步骤s406,在验证通过之后,从所述第一消息数据解析获取所述第一消息。
61.在上述验证通过之后,消息接收合约中还预设了解析程序,用于对消息1的数据进行解析。在一种实施方式中,如上文所述,中继设备12将消息1的数据的格式转换为例如json格式,从而在消息接收合约中只需要预设用于json格式的解析程序,而不需要如现有技术那样预设与各种数据格式分别对应的多种解析程序,这样大大减少了消息接收合约包括的程序代码。并且,由于json格式为对合约友好的格式,消息接收合约只需要对json格式进行解析,也大大加快了数据解析速度。
62.如上文所述,消息1中包括其接收账户(例如第四合约的账户),该消息接收合约中包括调用接收账户合约的代码,从而,在执行消息接收合约的过程中,在解析获取消息1之后,从消息1中获取第四合约的账户,并以消息1为传入参数调用第四合约,从而将消息1传递给接收账户(即第四合约的账户)。
63.图5示出根据本说明书实施例的一种基于中继设备跨链中转消息的装置500,所述中继设备与第一区块链和第二区块链连接,并且所述中继设备中包括预言机,所述装置部署于所述中继设备,包括:获取单元51,配置为,从第一区块链获取所述第一数据及其证明数据,其中,所述第一数据中包括第一消息数据,所述第一消息数据中包括该第一消息数据的接收链标识;验证单元52,配置为,由所述预言机使用所述证明数据对所述第一数据进行验证;签名单元53,配置为,在验证通过的情况中,由所述预言机对所述第一消息数据进行数字签名;确定单元54,配置为,基于所述第一消息数据确定所述第一消息数据的接收链为第二区块链;以及提供单元55,配置为,将所述第一消息数据及对其的数字签名提供给所述第二区块链。
64.在一种实施方式中,所述签名单元53还配置为,在验证通过的情况中,将所述第一消息数据的格式转换为预定格式,对具有预定格式的第一消息数据进行数字签名。
65.在一种实施方式中,所述可信执行环境中预先设置有与所述证明数据对应的验证算法,其中,所述验证单元52还配置为,通过执行所述验证算法,使用所述证明数据对所述第一数据进行验证。
66.图6示出根据本说明书实施例的一种基于中继设备跨链接收消息的装置600,所述中继设备与第一区块链和第二区块链连接,并且所述中继设备中包括预言机,所述装置部署于所述第二区块链中,所述第二区块链中预先存储有所述预言机的公钥,所述装置包括:获取单元61,配置为,从所述中继设备获取第一消息数据及所述预言机对所述第一消息数据的数字签名,其中,所述第一消息数据由所述中继设备从所述第一区块链获取;验证单元62,配置为,使用所述预言机的公钥对所述数字签名进行验证;以及解析单元63,配置为,在验证通过之后,从所述第一消息数据解析获取所述第一消息。
67.在一种实施方式中,所述装置在第二区块链中执行由所述中继设备发送的第一交易时部署,其中,在所述第一交易中,以所述第一消息及其数字签名作为传入参数调用消息接收合约。
68.在一种实施方式中,所述装置600还包括,确定单元64,配置为,基于所述第一消息内容,确定所述第一消息的接收账户为第一智能合约的合约账户,以及调用单元65,配置为,以所述第一消息作为传入参数调用所述第一智能合约。
69.本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
70.本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器在执行所述计算机程序时,实现上述任一项方法。
71.通过根据本说明书实施例的跨链中转消息的方案,在中继设备进行对消息的验证,从而将消息验证转化为简单的验证方式,提升了接收消息的区块链对消息的验证效率,另外,在本说明书实施例中,在中继设备将消息的数据格式转换为对合约友好的数据格式,进一步提升了合约解析数据的效率。
72.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
73.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
74.本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
75.结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储
器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
76.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1