CN112738280B - 一种用于区块链与链下设备之间的通信方法和装置 - Google Patents

一种用于区块链与链下设备之间的通信方法和装置 Download PDF

Info

Publication number
CN112738280B
CN112738280B CN202110340111.7A CN202110340111A CN112738280B CN 112738280 B CN112738280 B CN 112738280B CN 202110340111 A CN202110340111 A CN 202110340111A CN 112738280 B CN112738280 B CN 112738280B
Authority
CN
China
Prior art keywords
session
transaction
blockchain
message
state
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.)
Active
Application number
CN202110340111.7A
Other languages
English (en)
Other versions
CN112738280A (zh
Inventor
邱鸿霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd, Ant Blockchain Technology Shanghai Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110340111.7A priority Critical patent/CN112738280B/zh
Priority to CN202110998412.9A priority patent/CN113691633A/zh
Publication of CN112738280A publication Critical patent/CN112738280A/zh
Application granted granted Critical
Publication of CN112738280B publication Critical patent/CN112738280B/zh
Priority to PCT/CN2021/133008 priority patent/WO2022205956A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Abstract

本说明书实施例提供了一种用于区块链与链下设备之间的通信方法和装置,所述方法由区块链节点执行,包括:执行第一交易,以向链下设备提供第一会话的预开启消息,其中,所述第一会话为所述区块链与所述链下设备的会话;执行由所述链下设备发送的第二交易,以向所述链下设备提供所述第一会话的开启消息,所述第二交易中包括对所述预开启消息的确认信息。

Description

一种用于区块链与链下设备之间的通信方法和装置
技术领域
本说明书实施例涉及区块链技术领域,更具体地,涉及一种用于区块链与链下设备之间的通信方法和装置。
背景技术
区块链技术也被称之为分布式账本技术,是一种去中心化的分布式数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。区块链的每笔交易,都会广播到全网的区块链节点,每个全节点都有全量的、一致的数据。由于区块链是一个封闭的环境,区块链无法主动发起网络调用,链上智能合约也只能被动接收数据,因此,区块链无法主动获取链外的数据或资源。在现有技术中,为了克服上述问题,链下可信设备通过登录区块链客户端与区块链智能合约之间进行信息交互,从而可向区块链提供链外的数据或资源,例如可向区块链提供链外信息、链外数据处理能力等等。然而,在目前已有的区块链与链下设备的通信方案中,只实现了区块链通过合约从链下设备接收信息的单方向通信。
因此,需要一种更有效的在区块链与链下设备进行通信的方案。
发明内容
本说明书实施例旨在提供一种更有效的用于区块链与链下设备之间的通信方案,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种用于区块链与链下设备之间的通信方法,所述方法由区块链节点执行,包括:
执行第一交易,以向链下设备提供第一会话的预开启消息,其中,所述第一会话为所述区块链与所述链下设备的会话;
执行由所述链下设备发送的第二交易,以向所述链下设备提供所述第一会话的开启消息,所述第二交易中包括对所述预开启消息的确认信息。
在一种实施方式中,执行第一交易还包括,执行第一交易,以在所述区块链中存入所述第一会话的预开启消息。
在一种实施方式中,执行第一交易还包括,执行第一交易,以在所述区块链中将所述第一会话的状态记录为预开启状态。
在一种实施方式中,所述第一交易中调用第一合约,其中,在所述区块链中将所述第一会话的状态记录为预开启状态包括,在所述第一合约的账户状态中将所述第一会话的状态记录为预开启状态。
在一种实施方式中,所述第二交易中调用所述第一合约,所述执行由所述链下设备发送的第二交易包括,执行所述第二交易中调用的所述第一合约,使得确定是否在第一预定时段内执行所述第二交易,在确定在第一预定时段内执行所述第二交易的情况中,向链下设备提供第一会话的开启消息。
在一种实施方式中,执行所述第二交易中调用的所述第一合约还使得,在确定在第一预定时段之后执行所述第二交易的情况中,结束所述第一会话。
在一种实施方式中,向所述链下设备提供第一会话的开启消息包括,将所述第一会话的状态修改为开启状态。
在一种实施方式中,向所述链下设备提供第一会话的开启消息包括,在区块链中存入所述第一会话的开启消息。
在一种实施方式中,所述方法还包括,在向所述链下设备提供第一会话的开启消息之后,执行调用第一合约的第三交易,所述第三交易中包括待处理的第一数据,以使得,确定所述第一会话的状态是否为开启状态,在确定所述第一会话的状态为开启状态的情况中,在区块链中与所述第一会话关联地存入所述第一数据。
在一种实施方式中,所述方法还包括:
执行由所述链下设备发送的第四交易,所述第四交易中包括预关闭信息,
以使得,确定是否接收到由所述链下设备发送的全部消息;
在确定接收到由所述链下设备发送的全部消息的情况中,向所述链下设备提供所述第一会话的关闭消息。
在一种实施方式中,向所述链下设备提供所述第一会话的关闭消息包括,将所述第一会话的状态修改为关闭状态。
在一种实施方式中,执行所述第四交易还使得,在确定未接收到至少部分由所述链下设备发送的消息的情况中,在区块链中与所述第一会话关联地存入请求信息,所述请求信息用于请求所述链下设备重新发送所述至少部分消息。
在一种实施方式中,执行所述第四交易还使得,在确定未接收到至少部分由所述链下设备发送的消息的情况中,将所述第一会话的状态修改为预关闭状态。
本说明书另一方面提供一种用于区块链与链下设备之间的通信方法,所述方法由链下设备执行,包括:
从区块链获取第一会话的预开启消息,所述第一会话为所述区块链与所述链下设备的会话;
向所述区块链发送第二交易,所述第二交易中包括对所述预开启消息的确认信息;
开启所述第一会话的数据保留时段。
在一种实施方式中,向所述区块链发送第二交易包括,在第一预定时段内向所述区块链发送第二交易。
在一种实施方式中,所述方法还包括,在开启数据保留时段之后,在第二预定时段内确定是否从所述区块链获取所述第一会话的开启消息,当在第二预定时段内未从所述区块链获取所述第一会话的开启消息的情况中,结束所述数据保留时段。
在一种实施方式中,所述方法还包括,在符合预设条件时,向所述区块链发送第四交易,所述第四交易包括所述第一会话的预关闭信息。
在一种实施方式中,所述方法还包括,在向所述区块链发送第四交易之后,从所述区块链获取所述第一会话的关闭消息;结束所述数据保留时段。
在一种实施方式中,所述方法还包括,在向所述区块链发送第四交易之后,从所述区块链获取对已发送的所述第一会话中的至少部分消息的请求消息;向所述区块链发送第五交易,所述第五交易中包括所述至少部分消息。
本说明书另一方面提供一种用于区块链与链下设备之间的通信装置,所述装置部署于区块链节点,包括:
第一执行单元,配置为,执行第一交易,以向链下设备提供第一会话的预开启消息,其中,所述第一会话为所述区块链与所述链下设备的会话;
第二执行单元,配置为,执行由所述链下设备发送的第二交易,以向所述链下设备提供所述第一会话的开启消息,所述第二交易中包括对所述预开启消息的确认信息。
在一种实施方式中,所述第一执行单元还配置为,执行第一交易,以在所述区块链中存入所述第一会话的预开启消息。
在一种实施方式中,所述第一执行单元还配置为,执行第一交易,以在所述区块链中将所述第一会话的状态记录为预开启状态。
在一种实施方式中,所述第一交易中调用第一合约,其中,所述第一执行单元还配置为,在所述第一合约的账户状态中将所述第一会话的状态记录为预开启状态。
在一种实施方式中,所述第二交易中调用所述第一合约,所述第二执行单元还配置为,执行所述第二交易中调用的所述第一合约,使得确定是否在第一预定时段内执行所述第二交易,在确定在第一预定时段内执行所述第二交易的情况中,向链下设备提供第一会话的开启消息。
在一种实施方式中,所述第一执行单元还配置为,在确定在第一预定时段之后执行所述第二交易的情况中,结束所述第一会话。
在一种实施方式中,所述第二执行单元还配置为,将所述第一会话的状态修改为开启状态。
在一种实施方式中,所述第二执行单元还配置为,在区块链中存入所述第一会话的开启消息。
在一种实施方式中,所述装置还包括,第三执行单元,配置为,在向所述链下设备提供第一会话的开启消息之后,执行调用第一合约的第三交易,所述第三交易中包括待处理的第一数据,以使得,确定所述第一会话的状态是否为开启状态,在确定所述第一会话的状态为开启状态的情况中,在区块链中与所述第一会话关联地存入所述第一数据。
在一种实施方式中,所述装置还包括:
第四执行单元,配置为,执行由所述链下设备发送的第四交易,所述第四交易中包括预关闭信息,
以使得,确定是否接收到由所述链下设备发送的全部消息;
在确定接收到由所述链下设备发送的全部消息的情况中,向所述链下设备提供所述第一会话的关闭消息。
在一种实施方式中,所述第四执行单元还配置为,将所述第一会话的状态修改为关闭状态。
在一种实施方式中,所述第四执行单元还配置为,在确定未接收到至少部分由所述链下设备发送的消息的情况中,在区块链中与所述第一会话关联地存入请求信息,所述请求信息用于请求所述链下设备重新发送所述至少部分消息。
在一种实施方式中,所述第四执行单元还配置为,在确定未接收到至少部分由所述链下设备发送的消息的情况中,将所述第一会话的状态修改为预关闭状态。
本说明书另一方面提供一种用于区块链与链下设备之间的通信装置,所述装置部署于链下设备,包括:
第一获取单元,配置为,从区块链获取第一会话的预开启消息,所述第一会话为所述区块链与所述链下设备的会话;
第一发送单元,配置为,向所述区块链发送第二交易,所述第二交易中包括对所述预开启消息的确认信息;
开启单元,配置为,开启所述第一会话的数据保留时段。
在一种实施方式中,所述第一发送单元还配置为,在第一预定时段内向所述区块链发送第二交易。
在一种实施方式中,所述装置还包括,确定单元,配置为,在开启数据保留时段之后,在第二预定时段内确定是否从所述区块链获取所述第一会话的开启消息,第一结束单元,配置为,当在第二预定时段内未从所述区块链获取所述第一会话的开启消息的情况中,结束所述数据保留时段。
在一种实施方式中,所述装置还包括,第二发送单元,配置为,在符合预设条件时,向所述区块链发送第四交易,所述第四交易包括所述第一会话的预关闭信息。
在一种实施方式中,所述装置还包括,第二获取单元,配置为,在向所述区块链发送第四交易之后,从所述区块链获取所述第一会话的关闭消息;第二结束单元,配置为,结束所述数据保留时段。
在一种实施方式中,所述装置还包括,第三获取单元,配置为,在向所述区块链发送第四交易之后,从所述区块链获取对已发送的所述第一会话中的至少部分消息的请求消息;第三发送单元,配置为,向所述区块链发送第五交易,所述第五交易中包括所述至少部分消息。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器在执行所述计算机程序时,实现上述任一项方法。
通过根据本说明书实施例的用于区块链与链下设备之间的通信方案,可在区块链与链下设备都进行信道确认之后开启会话,并且,链下设备在会话开启期间保证会话数据保留时段,保证了区块链与链下设备之间的安全双向通信。另外,在本说明书实施例中,通过使用区块链中的智能合约与链下设备之间进行会话,并在智能合约的账户状态中记录会话的状态,方便各个节点对会话状态的查询,并可基于会话状态进行与链下设备的通信。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出根据本说明书实施例的区块链系统示意图;
图2示出根据本说明书实施例的区块链11与链下设备12之间的通信方法流程图;
图3示出根据本说明书实施例的一种用于区块链与链下设备之间的通信装置300;
图4为根据本说明书实施例的一种用于区块链与链下设备之间的通信装置400。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出根据本说明书实施例的区块链系统示意图。如图1所示,所述系统包括区块链11和链下设备12。其中,区块链11中部署有合约C1和通信合约C2。其中,所述通信合约C2用于与链下设备进行双向通信,合约C1通过调用通信合约C2而实现与链下设备的数据交互。链下设备12为可信设备,该可信设备可通过硬件、软件等形式来实现其可信性,例如,链下设备12中可包括可信执行环境(TEE),该TEE具有自身的硬件私钥和公钥,或者链下设备12中通过安全多方计算、零知识实现等算法实现其可信性,或者链下设备12可以为可信权威方的设备,等等。
所述通信合约C2可以与至少一个链下设备进行会话。通信合约C2中例如包括请求开启会话函数、会话开启函数、数据发送函数、结果返回函数、和会话关闭函数,并且,在区块链11的账户数据库中记录有通信合约C2与各个链下设备的会话状态,所述会话状态例如包括:预开启状态、开启状态、预关闭状态和关闭状态。
例如,区块链11中的节点1希望调用合约C1进行数据处理,由于合约C1中调用通信合约C2,因此,节点1可首先在区块链的账户数据库中查询通信合约C2的状态,以确定通信合约C2是否已经与链下设备12建立会话。如果查询到通信合约C2与链下设备12的会话状态为关闭状态,节点1可发送交易1,并在交易1中调用通信合约C2中的请求开启会话函数,以向链下设备12发送预开启消息。当区块链11的节点执行该交易1之后,在区块链中存入通信合约C2发送给链下设备12的“预开启消息”,同时将通信合约C2的与链下设备的会话1的状态记录为“预开启状态”。链下设备12可通过读取区块链11中的数据而读取到上述“预开启消息”,并向区块链11发送交易2,该交易2调用通信合约C2中的会话开启函数。链下设备12在发送交易2的同时开启数据保留时段,从而保证会话中的数据的安全性。区块链11中的节点在执行该交易2之后,将会话1的状态修改为“开启状态”。
节点1在确定会话1的状态变为“开启状态”之后,可发送调用合约C1的交易3,如图1中所示,合约C1中以数据D1为参数调用通信合约C2中的数据发送函数。区块链11中的节点执行交易3时,执行其中调用的通信合约C2,从而在区块链中存入用于发送给链下设备12的数据D1。例如,如图1中所示,在区块链11中以包括数据D1的收据R1和Spv证明的形式将数据D1发送给链下设备12。区块链11可以为任意区块链,如比特币链、以太坊链、HyperledgerFabric区块链(下文称为Fabric链)等等。不同的区块链具有不同的链上数据证明方式,例如,Fabric链使用背书节点签名的方式,以太坊链使用Spv证明的方式。下文中以区块链11为太坊链进行示例说明。
然后,链下设备12可从区块链11中读取所述收据R1及其Spv证明。链下设备12中包括Spv客户端,在获取收据R1和Spv证明之后,链下设备12使用所述Spv客户端通过Spv验证方式对收据R1进行验证,并在验证之后从收据R1中获取由通信合约C2发送的数据D1,并对数据D1进行数据处理。
链下设备12例如为TEE设备,其在处理数据D1之后,例如获取的处理结果为处理结果E1。链下设备12使用其硬件私钥对处理结果E1进行签名,并向区块链发送调用通信合约C2的交易4,其中,该调用以处理结果E1及其签名为参数调用通信合约C2的结果返回函数,以将处理结果E1及其签名提供给通信合约C2。从而,当在区块链中执行该交易4时,使得通信合约C2使用其中预设的链下设备12的公钥对处理结果E1的签名进行验证,并在验证通过之后通过回调合约C1而将处理结果E1提供给合约C1。
链下设备12在将要结束与通信合约C2的会话时,向区块链11发送交易5,在交易5中调用通信合约C2的请求关闭会话函数。当区块链11中的节点在执行交易5时,确定对来自链下设备12的数据是否接收完成,在确定接收完成的情况中,使得在区块链中存入“会话关闭消息”,同时将会话1的状态修改为关闭状态,从而结束对交易5的执行。链下设备12在从区块链11中读取到“会话关闭消息”之后结束上述数据保留时段,即,对上述会话中的数据进行删除。
可以理解,上述参考图1的描述只是示意性的,而不用于对本说明书实施例的范围进行限制。例如,在区块链11中不限于通过合约C1调用通信合约,例如也可以在交易中直接以数据D1为传入参数调用通信合约C2,以通过链外设备12对数据D1进行处理。下文将详细描述上述区块链与链下设备之间的通信过程。
图2示出根据本说明书实施例的区块链11与链下设备12之间的通信方法流程图。
如图2中所示,该方法由区块链11和链下设备12交互通信,从而实现区块链11与链下设备12之间的会话。当区块链11中的节点希望向链下设备12发送数据时,区块链11中的节点可通过发送交易而将希望发送的数据以可证明数据(例如交易收据、账户数据等)的形式存入区块链中,从而链下设备12可通过读取区块链中的收据而接收到该数据。当链下设备12希望向链上发送数据时,链下设备12可通过其中的区块链客户端向区块链发送交易,从而通过该交易向区块链提供数据。在一种实施方式中,在区块链11中可通过执行调用通信合约C2的交易,从而与链下设备12进行通信,下文中将以此为示例进行描述。可以理解,本说明书实施例提供的通信方法不限于通过执行调用通信合约C2的交易进行,而也可以通过执行包括数据字段的交易而执行,只要通过该交易的数据字段可明确发送的消息、及消息的接收方或发送方即可。
首先,在步骤S202,区块链11向链下设备12发送预开启消息。
如上文所述,通信合约C2的账户状态中记录了通信合约C2与链下设备的会话状态。例如,在初始,通信合约C2的账户状态中记录了与链下设备12的会话1的状态为关闭状态,或者通信合约C2的账户状态中未记录与链下设备12的任意会话,也即,通信合约C2与链下设备的会话状态为关闭状态。区块链11中的节点1在希望通过调用通信合约C2进行数据处理时,可首先查询通信合约C2的账户状态,从而可获知通信合约C2还未与链下设备12建立会话。因此,节点1可发送交易1,其中,在交易1中以链下设备12标识为传入参数调用通信合约C2中的请求开启会话函数,以向链下设备12发送预开启消息。
区块链中的各个节点在对交易1进行共识之后分别执行交易1以获取一致的状态。区块链中的任一节点在执行交易1时,在区块链中存入交易1的收据R1,该收据R1中包括通信合约C2的账户、链下设备12的标识、以及预开启消息,所述预开启消息例如为“OpenSyncMsg”。在一种实施方式中,在所述收据R1中还可以包括会话1的标识(例如“会话1”)。同时,区块链中的节点还在通信合约C2的账户状态中记录通信合约C2与链下设备12的会话状态,例如以会话1作为该会话的标识,并将会话1的状态记录为“预开启状态”。表1示意示出在区块链节点中的通信合约C2的账户状态中记录的会话状态的表格。
表1
Figure 12737DEST_PATH_IMAGE001
如表1中所示,在通信合约C2的账户状态中可能记录了多个会话,例如会话1,会话2,不同的会话为与不同的链下设备进行的会话,并且可具有不同的会话状态。例如,会话1为通信合约C2与链下设备12之间的会话,并且会话1的状态为预开启状态。
链下设备12可通过其Spv客户端对包括通信合约C2的账户地址和链下设备12标识的收据进行监听,或者链下设备12可对包括“会话1”的收据进行监听,每当确定区块链11中存入了所述收据时,即可从区块链11中读取该收据,并相应地读取该收据的Spv证明数据。或者,区块链11中可主动进行信息推送,每次在确定区块链11中存入了执行通信合约C2所产生发送给链下设备12的收据时,将该收据及相应的Spv证明数据主动推送给链下设备12。从而,在区块链11中存入上述收据R1之后,链下设备12可从区块链11读取收据R1及其Spv证明,即接收到收据R1中的会话1的预开启消息。
可以理解,上文中虽然描述了以收据的形式向链下设备12提供预开启消息,本说明书实施例不限于此。例如,区块链11可通过通信合约C2的账户状态中的会话1的状态向链下设备12提供预开启消息。链下设备12通过在区块链11中读取会话1的状态从而可获取该消息。
区块链11中的节点1可在交易1成块之后的预定数目的区块中查询是否包括由链下设备12发送的用于确认上述预开启消息的交易,如果不包括,节点1可如图2中虚线所示,发送调用通信合约C2中的会话关闭函数的交易,该交易在执行之后使得将通信合约C2的账户状态中记录的会话1的信息删除,或者将会话1的状态修改为关闭状态。可选地,该交易在被执行之后,向区块链11中存入会话关闭消息,以使得链下设备12可获取该信息。
在步骤S204,链下设备12向区块链11发送预开启确认信息。
链下设备12在读取收据R1及其Spv证明之后,通过Spv客户端使用所述Spv证明对收据R1进行验证。在验证通过之后,可从收据R1中读取“OpenSyncMsg”消息。链下设备12可在读取收据R1之后的预定时段内通过客户端向区块链11发送交易2,该交易2中例如调用通信合约C2中的会话开启函数,以向区块链11发送预开启确认信息。在发送交易2之后,链下设备12开启了与区块链11中的通信合约C2的会话,并相应地开启与该会话对应的数据保留时段,在该数据保留时段中,链下设备12对该时段中的与通信合约C2的任何通信数据进行保留,以保证数据安全性。表2示意示出了在链下设备12中记录的各个会话的数据保留时段的表格。
表2
Figure 398719DEST_PATH_IMAGE003
如表2所示,通信设备12可与多个合约建立会话,例如会话1和会话2等等。在通信设备12中,可将各个会话中的通信数据与“会话1”进行关联,从而,当根据表2,会话1的数据保留时段为开启时,在通信设备12中保留会话1中的通信数据,当根据表2,确定会话2的数据保留时段为关闭时,则可删除会话2中的通信数据,并在表2中删除对会话2的记录。
在步骤S206,区块链11向链下设备12发送开启消息。
当区块链11中的节点在对交易2进行共识之后执行交易2时,首先确定会话1的状态是否为预开启状态。如果会话1的状态为预开启状态,则将会话1的状态修改为开启状态,并在区块链11中存入与交易2对应的收据R2,该收据R2中包括通信合约C2的账户、链下设备12的标识和开启消息(例如OpenMsg)。如果通信合约C2的账户状态中不包括会话1的信息(或者会话1的状态为关闭状态),则结束对交易2的执行,即不进行上述对会话状态的修改和存入收据R2的操作。
链下设备12在发送交易2之后,确定是否在预定时段内读取到由区块链11发送的上述开启消息,如果在预定时段内读取到上述开启消息,则可确认区块链11接收到其发送的交易2,则继续保留上述数据保留时段(如图2中的数据保留时段T1所示),如果在预定时段内未读取到上述开启消息,则结束上述数据保留时段(如图2中的数据保留时段T2所示)。该预定时段可基于区块链11中的交易成块时间预先确定。在一种实施方式中,在执行交易2之后,不向区块链11中存入上述收据R2,链下设备12可在发送交易2之后,确定是否在预定时段内读取到由区块链11向其发送的待处理数据,如果在预定时段内读取到向其发送的待处理数据,则继续保留数据保留时段,如果在预定时段内未读取到所述待处理数据,则结束数据保留时段。
在步骤S208,区块链11向链下设备12发送待处理的数据D1。
节点1在执行交易2以使得会话1的状态变为开启状态之后,节点1可开始通过链下设备12进行数据处理。节点1例如发送交易3,该交易3中以数据D1和链下设备12标识为参数调用通信合约C2中的数据发送函数。区块链中的节点在对交易3进行共识之后执行交易3,在执行交易3之后存入交易3的收据3。该收据3中包括通信合约C2的标识、链下设备12标识和数据D1。与上述读取收据R1类似地,链下设备12可通过客户端从区块链11读取收据3及其Spv证明,对收据3进行验证,并从收据3中获取数据D1和通信合约C2的标识。
在步骤S210,链下设备12向区块链11发送数据D1的处理结果。
链下设备12例如为TEE设备,其中预设了数据处理程序,并且具有其硬件私钥和公钥。链下设备12在获取数据D1和通信合约C2的标识之后,使用预设的数据处理程序对数据D1进行处理,从而获取数据D1的处理结果(处理结果E1),并使用其硬件私钥对处理结果E1进行数字签名。之后,链下设备12向区块链11发送交易4,在该交易4中以处理结果E1及TEE签名为传入参数调用通信合约C2中的结果返回函数。该结果返回函数中预设有链下设备12的硬件公钥,当区块链11中的节点1在执行交易4时,使用硬件公钥对TEE签名进行验证,在验证通过之后可获取数据D1的处理结果E1。当如图1中所示交易3中调用合约C1、且合约C1中调用通信合约C2的情况中,则在交易4中调用通信合约C2中的结果返回函数,并在该函数中以处理结果E1为传入参数调用合约C1,从而,当节点1执行交易4时,在通过通信合约C2获取处理结果E1之后以处理结果E1为参数执行合约C1,从而获取最终合约C1的执行结果。
区块链11中的其它节点(例如节点2)在希望调用通信合约C2时,也与节点1类似地,首先在通信合约C2的账户状态中查询通信合约C2与链下设备12的会话状态,当查询到通信合约C2与链下设备12之间的会话1的状态为开启状态的情况中,节点2可与节点1类似地向链下设备12发送数据(例如图2中所示的数据D2)并接收数据D2的处理结果E2。
在步骤S212,链下设备12向区块链11发送预关闭信息。
链下设备12在符合预定条件时向区块链发送对会话1的预关闭消息。所述预定条件例如为以下任一种:链下设备12在连续预定长度时间中未接收到待处理数据、区块链11中通过执行通信合约C2向区块链11中存入用于请求链下设备12关闭会话1的消息、链下设备12处理完成预定数量的数据,等等。
具体是,链下设备12通过客户端向区块链11发送交易5,在交易5中调用通信合约C2的关闭会话函数,以向区块链11发送预关闭消息。
在步骤S214,区块链11向链下设备12发送关闭消息。
区块链11中的节点在执行交易5时,确定是否接收到全部由链下设备12发送的消息或数据;在确定接收到全部由链下设备12发送的消息或数据的情况中,将通信合约C2中账户状态中的会话1的状态删除(即关闭会话1),或者将会话1的状态修改为关闭状态,结束对交易5的执行,并在区块链11中存入收据5,该收据5中包括通信合约C2的账户、链下设备12的标识以及会话关闭消息(例如“CloseMsg”)。
其中,在执行交易5时,根据通信合约C2与链下设备12之间的预先设定,可通过不同的方法确定是否接收到全部由链下设备12发送的消息或数据。
在一种实施方式中,通信合约C2可对每次发送的数据进行编号,例如如图2中所示,将发送的数据编号为数据D1、数据D2,链下设备12也相应地对发送回区块链的数据结果进行编号,例如将数据D1的处理结果编号为处理结果E1,将数据D2的处理结果编号为处理结果E2。区块链11可基于接收的处理结果的编号确定该处理结果是与哪个数据对应的处理结果。当链下设备12发送预关闭消息中可在交易5中将其发送的最后一个处理结果的编号(例如“10”)作为参数调用通信合约C2中的请求关闭会话函数,从而当在区块链11中执行交易5时,确定是否已经接收到处理结果E1-处理结果E10,从而确定是否接收到全部由链下设备12发送的消息或数据。在该实施方式中,在链下设备12通过交易5发送预关闭消息之后,有可能在区块链11侧已经向链下设备12发送了待处理的数据D11、数据D12等等,在执行交易5时,还可以在通信合约C2的会话1的状态中记录这些数据编号,以供用户查询,或者下次会话开启时进行处理。
在另一种实施方式中,例如,通信合约C2与链下设备12预先设定:链下设备12在处理完预定数目(例如20)个数据之后关闭会话。从而,在区块链11中执行交易5时,可确定是否已经接收到20个处理结果,从而确定是否接收到全部由链下设备12发送的消息或数据。
在一种实施方式中,例如在区块链中执行调用合约C1的交易以进行数据处理,其中合约C1中调用通信合约C2。链下设备12通过回调通信合约C2的交易返回对数据的处理,其中通信合约C2通过回调合约C1将返回的处理结果返回给合约C1,合约C1在获取处理结果之后将该处理结果存储到合约C1的账户状态中。从而,区块链节点可通过查询合约C1的账户状态从而确定是否接收到全部由链下设备12发送的消息或数据。
链下设备12在从区块链11读取到收据5及其Spv证明之后,对收据5进行验证,并从收据5中获取通信合约C2的账户及“CloseMsg”,从而将与通信合约C2对应的数据保留时段T1结束,即,将会话1中的通信数据删除,从而结束会话1。
当在执行交易5时,在确定未接收到部分由链下设备12发送的消息的情况中,在区块链中存入收据5,该收据5中包括通信合约C2的账户、链下设备12的标识以及未接收到的部分消息的标识(例如消息编号),并将会话1的状态修改为预关闭状态。链下设备12在读取到该收据5之后,发送交易6,在该交易6中以所述部分消息为传入参数调用通信合约C2的关闭会话函数,区块链11在接收到交易6并执行交易6之后,在确定接收到全部由链下设备12发送的消息或数据的情况中,将通信合约C2中账户状态中的会话1的信息删除(即关闭会话1),或者将会话1的状态修改为关闭状态,并在区块链11中存入收据6,该收据6中包括通信合约C2的账户、链下设备12的标识以及会话关闭消息(例如“CloseMsg”)。
可以理解,上文中虽然以通信合约C2为例对本说明书实施例提供的通信方案进行了描述,本说明书实施例不限于此,例如,可在区块链11侧通过发送包括数据字段的交易而进行图2所示的通信过程,其中,在每次发送消息时,在交易的数据字段中包括会话标识(例如“会话1”)和消息内容(如预开启消息、预开启确认消息、开启消息、待处理数据、预关闭消息、关闭消息等),从而在各个交易中记录会话状态及数据。优选地,区块链节点还可以在本地创建会话状态数据库,以与合约账户状态中类似地记录各个会话的状态,从而便于会话状态的查询。
另外,在上文的描述中,当区块链11的节点需要确定区块链11与链下设备12的会话状态时,通过查询通信合约C2的账户状态中的会话状态来确定,可以理解,本申请实施例不限于此,区块链11中的节点还可以通过在区块链的账本数据中查询与会话1相关的各个交易的收据,从而确定会话1的状态。例如,当在账本数据中查询到交易2的收据,但是未查询包括由链下设备12发送的预关闭消息的收据时,则可确定会话1的状态为开启状态。类似地,可基于查询到的与会话1相关的其它交易收据情况确定会话1的其它状态。也就是说,在本申请实施例的方案中,在通信合约C2的账户状态中记录会话1的状态并不是必需的。
图3为根据本说明书实施例的一种用于区块链与链下设备之间的通信装置300,所述装置部署于区块链节点,包括:
第一执行单元31,配置为,执行第一交易,以向链下设备提供第一会话的预开启消息,其中,所述第一会话为所述区块链与所述链下设备的会话;
第二执行单元32,配置为,执行由所述链下设备发送的第二交易,以向所述链下设备提供所述第一会话的开启消息,所述第二交易中包括对所述预开启消息的确认信息。
在一种实施方式中,所述第一执行单元31还配置为,执行第一交易,以在所述区块链中存入所述第一会话的预开启消息。
在一种实施方式中,所述第一执行单元31还配置为,执行第一交易,以在所述区块链中将所述第一会话的状态记录为预开启状态。
在一种实施方式中,所述第一交易中调用第一合约,其中,所述第一执行单元31还配置为,在所述第一合约的账户状态中将所述第一会话的状态记录为预开启状态。
在一种实施方式中,所述第二交易中调用所述第一合约,所述第二执行单元32还配置为,执行所述第二交易中调用的所述第一合约,使得确定是否在第一预定时段内执行所述第二交易,在确定在第一预定时段内执行所述第二交易的情况中,向链下设备提供第一会话的开启消息。
在一种实施方式中,所述第一执行单元31还配置为,在确定在第一预定时段之后执行所述第二交易的情况中,结束所述第一会话。
在一种实施方式中,所述第二执行单元32还配置为,将所述第一会话的状态修改为开启状态。
在一种实施方式中,所述第二执行单元32还配置为,在区块链中存入所述第一会话的开启消息。
在一种实施方式中,所述装置300还包括,第三执行单元33,配置为,在向所述链下设备提供第一会话的开启消息之后,执行调用第一合约的第三交易,所述第三交易中包括待处理的第一数据,以使得,确定所述第一会话的状态是否为开启状态,在确定所述第一会话的状态为开启状态的情况中,在区块链中与所述第一会话关联地存入所述第一数据。
在一种实施方式中,所述装置300还包括:
第四执行单元34,配置为,执行由所述链下设备发送的第四交易,所述第四交易中包括预关闭信息,
以使得,确定是否接收到由所述链下设备发送的全部消息;
在确定接收到由所述链下设备发送的全部消息的情况中,向所述链下设备提供所述第一会话的关闭消息。
在一种实施方式中,所述第四执行单元34还配置为,将所述第一会话的状态修改为关闭状态。
在一种实施方式中,所述第四执行单元34还配置为,在确定未接收到至少部分由所述链下设备发送的消息的情况中,在区块链中与所述第一会话关联地存入请求信息,所述请求信息用于请求所述链下设备重新发送所述至少部分消息。
在一种实施方式中,所述第四执行单元34还配置为,在确定未接收到至少部分由所述链下设备发送的消息的情况中,将所述第一会话的状态修改为预关闭状态。
图4示出根据本说明书实施例的一种用于区块链与链下设备之间的通信装置400,所述装置部署于链下设备,包括:
第一获取单元401,配置为,从区块链获取第一会话的预开启消息,所述第一会话为所述区块链与所述链下设备的会话;
第一发送单元402,配置为,向所述区块链发送第二交易,所述第二交易中包括对所述预开启消息的确认信息;
开启单元403,配置为,开启所述第一会话的数据保留时段。
在一种实施方式中,所述第一发送单元402还配置为,在第一预定时段内向所述区块链发送第二交易。
在一种实施方式中,所述装置400还包括,确定单元404,配置为,在开启数据保留时段之后,在第二预定时段内确定是否从所述区块链获取所述第一会话的开启消息,第一结束单元405,配置为,当在第二预定时段内未从所述区块链获取所述第一会话的开启消息的情况中,结束所述数据保留时段。
在一种实施方式中,所述装置400还包括,第二发送单元406,配置为,在符合预设条件时,向所述区块链发送第四交易,所述第四交易包括所述第一会话的预关闭信息。
在一种实施方式中,所述装置400还包括,第二获取单元407,配置为,在向所述区块链发送第四交易之后,从所述区块链获取所述第一会话的关闭消息;第二结束单元408,配置为,结束所述数据保留时段。
在一种实施方式中,所述装置还包括,第三获取单元409,配置为,在向所述区块链发送第四交易之后,从所述区块链获取对已发送的所述第一会话中的至少部分消息的请求消息;第三发送单元410,配置为,向所述区块链发送第五交易,所述第五交易中包括所述至少部分消息。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器在执行所述计算机程序时,实现上述任一项方法。
通过根据本说明书实施例的用于区块链与链下设备之间的通信方案,可在区块链与链下设备都进行信道确认之后开启会话,并且,链下设备在会话开启期间保证会话数据保留时段,保证了区块链与链下设备之间的安全双向通信。另外,在本说明书实施例中,通过使用区块链中的智能合约与链下设备之间进行会话,并在智能合约的账户状态中记录会话的状态,方便各个节点对会话状态的查询,并可基于会话状态进行与链下设备的通信。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。其中,软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (40)

1.一种用于区块链与链下设备之间的通信方法,所述方法由区块链节点执行,包括:
执行第一交易,以向链下设备提供第一会话的预开启消息,其中,所述第一会话为所述区块链与所述链下设备的会话;
执行由所述链下设备发送的第二交易,以向所述链下设备提供所述第一会话的开启消息,所述第二交易中包括对所述预开启消息的确认信息;所述第二交易的发送对应于所述链下设备对数据保留时段的开启。
2.根据权利要求1所述的方法,其中,执行第一交易还包括,执行第一交易,以在所述区块链中存入所述第一会话的预开启消息。
3.根据权利要求1或2所述的方法,执行第一交易还包括,执行第一交易,以在所述区块链中将所述第一会话的状态记录为预开启状态。
4.根据权利要求3所述的方法,其中,所述第一交易中调用第一合约,其中,在所述区块链中将所述第一会话的状态记录为预开启状态包括,在所述第一合约的账户状态中将所述第一会话的状态记录为预开启状态。
5.根据权利要求4所述的方法,其中,所述第二交易中调用所述第一合约,所述执行由所述链下设备发送的第二交易包括,执行所述第二交易中调用的所述第一合约,使得确定是否在第一预定时段内执行所述第二交易,在确定在第一预定时段内执行所述第二交易的情况中,向链下设备提供第一会话的开启消息。
6.根据权利要求5所述的方法,其中,执行所述第二交易中调用的所述第一合约还使得,在确定在第一预定时段之后执行所述第二交易的情况中,结束所述第一会话。
7.根据权利要求1-2、4-6任一项所述的方法,其中,向所述链下设备提供第一会话的开启消息包括,将所述第一会话的状态修改为开启状态。
8.根据权利要求7所述的方法,其中,向所述链下设备提供第一会话的开启消息包括,在区块链中存入所述第一会话的开启消息。
9.根据权利要求8所述的方法,还包括,在向所述链下设备提供第一会话的开启消息之后,执行调用第一合约的第三交易,所述第三交易中包括待处理的第一数据,以使得,确定所述第一会话的状态是否为开启状态,在确定所述第一会话的状态为开启状态的情况中,在区块链中与所述第一会话关联地存入所述第一数据。
10.根据权利要求1所述的方法,还包括:
执行由所述链下设备发送的第四交易,所述第四交易中包括预关闭信息,
以使得,确定是否接收到由所述链下设备发送的全部消息;
在确定接收到由所述链下设备发送的全部消息的情况中,向所述链下设备提供所述第一会话的关闭消息。
11.根据权利要求10所述的方法,其中,向所述链下设备提供所述第一会话的关闭消息包括,将所述第一会话的状态修改为关闭状态。
12.根据权利要求10所述的方法,其中,执行所述第四交易还使得,在确定未接收到至少部分由所述链下设备发送的消息的情况中,在区块链中与所述第一会话关联地存入请求信息,所述请求信息用于请求所述链下设备重新发送所述至少部分消息。
13.根据权利要求12所述的方法,其中,执行所述第四交易还使得,在确定未接收到至少部分由所述链下设备发送的消息的情况中,将所述第一会话的状态修改为预关闭状态。
14.一种用于区块链与链下设备之间的通信方法,所述方法由链下设备执行,包括:
从区块链获取第一会话的预开启消息,所述第一会话为所述区块链与所述链下设备的会话;
向所述区块链发送第二交易,所述第二交易中包括对所述预开启消息的确认信息;
开启所述第一会话的数据保留时段。
15.根据权利要求14所述的方法,其中,向所述区块链发送第二交易包括,在第一预定时段内向所述区块链发送第二交易。
16.根据权利要求14或15所述的方法,还包括,在开启数据保留时段之后,在第二预定时段内确定是否从所述区块链获取所述第一会话的开启消息,当在第二预定时段内未从所述区块链获取所述第一会话的开启消息的情况中,结束所述数据保留时段。
17.根据权利要求14所述的方法,还包括,在符合预设条件时,向所述区块链发送第四交易,所述第四交易包括所述第一会话的预关闭信息。
18.根据权利要求17所述的方法,还包括,在向所述区块链发送第四交易之后,从所述区块链获取所述第一会话的关闭消息;结束所述数据保留时段。
19.根据权利要求17所述的方法,还包括,在向所述区块链发送第四交易之后,从所述区块链获取对已发送的所述第一会话中的至少部分消息的请求消息;向所述区块链发送第五交易,所述第五交易中包括所述至少部分消息。
20.一种用于区块链与链下设备之间的通信装置,所述装置部署于区块链节点,包括:
第一执行单元,配置为,执行第一交易,以向链下设备提供第一会话的预开启消息,其中,所述第一会话为所述区块链与所述链下设备的会话;
第二执行单元,配置为,执行由所述链下设备发送的第二交易,以向所述链下设备提供所述第一会话的开启消息,所述第二交易中包括对所述预开启消息的确认信息;所述第二交易的发送对应于所述链下设备对数据保留时段的开启。
21.根据权利要求20所述的装置,其中,所述第一执行单元还配置为,执行第一交易,以在所述区块链中存入所述第一会话的预开启消息。
22.根据权利要求20或21所述的装置,所述第一执行单元还配置为,执行第一交易,以在所述区块链中将所述第一会话的状态记录为预开启状态。
23.根据权利要求22所述的装置,其中,所述第一交易中调用第一合约,其中,所述第一执行单元还配置为,在所述第一合约的账户状态中将所述第一会话的状态记录为预开启状态。
24.根据权利要求23所述的装置,其中,所述第二交易中调用所述第一合约,所述第二执行单元还配置为,执行所述第二交易中调用的所述第一合约,使得确定是否在第一预定时段内执行所述第二交易,在确定在第一预定时段内执行所述第二交易的情况中,向链下设备提供第一会话的开启消息。
25.根据权利要求24所述的装置,其中,所述第一执行单元还配置为,在确定在第一预定时段之后执行所述第二交易的情况中,结束所述第一会话。
26.根据权利要求20-21、23-24任一项所述的装置,其中,所述第二执行单元还配置为,将所述第一会话的状态修改为开启状态。
27.根据权利要求26所述的装置,其中,所述第二执行单元还配置为,在区块链中存入所述第一会话的开启消息。
28.根据权利要求27所述的装置,还包括,第三执行单元,配置为,在向所述链下设备提供第一会话的开启消息之后,执行调用第一合约的第三交易,所述第三交易中包括待处理的第一数据,以使得,确定所述第一会话的状态是否为开启状态,在确定所述第一会话的状态为开启状态的情况中,在区块链中与所述第一会话关联地存入所述第一数据。
29.根据权利要求20所述的装置,还包括:
第四执行单元,配置为,执行由所述链下设备发送的第四交易,所述第四交易中包括预关闭信息,
以使得,确定是否接收到由所述链下设备发送的全部消息;
在确定接收到由所述链下设备发送的全部消息的情况中,向所述链下设备提供所述第一会话的关闭消息。
30.根据权利要求29所述的装置,其中,所述第四执行单元还配置为,将所述第一会话的状态修改为关闭状态。
31.根据权利要求29所述的装置,其中,所述第四执行单元还配置为,在确定未接收到至少部分由所述链下设备发送的消息的情况中,在区块链中与所述第一会话关联地存入请求信息,所述请求信息用于请求所述链下设备重新发送所述至少部分消息。
32.根据权利要求31所述的装置,其中,所述第四执行单元还配置为,在确定未接收到至少部分由所述链下设备发送的消息的情况中,将所述第一会话的状态修改为预关闭状态。
33.一种用于区块链与链下设备之间的通信装置,所述装置部署于链下设备,包括:
第一获取单元,配置为,从区块链获取第一会话的预开启消息,所述第一会话为所述区块链与所述链下设备的会话;
第一发送单元,配置为,向所述区块链发送第二交易,所述第二交易中包括对所述预开启消息的确认信息;
开启单元,配置为,开启所述第一会话的数据保留时段。
34.根据权利要求33所述的装置,其中,所述第一发送单元还配置为,在第一预定时段内向所述区块链发送第二交易。
35.根据权利要求33或34所述的装置,还包括,确定单元,配置为,在开启数据保留时段之后,在第二预定时段内确定是否从所述区块链获取所述第一会话的开启消息,第一结束单元,配置为,当在第二预定时段内未从所述区块链获取所述第一会话的开启消息的情况中,结束所述数据保留时段。
36.根据权利要求33所述的装置,还包括,第二发送单元,配置为,在符合预设条件时,向所述区块链发送第四交易,所述第四交易包括所述第一会话的预关闭信息。
37.根据权利要求36所述的装置,还包括,第二获取单元,配置为,在向所述区块链发送第四交易之后,从所述区块链获取所述第一会话的关闭消息;第二结束单元,配置为,结束所述数据保留时段。
38.根据权利要求36所述的装置,还包括,第三获取单元,配置为,在向所述区块链发送第四交易之后,从所述区块链获取对已发送的所述第一会话中的至少部分消息的请求消息;第三发送单元,配置为,向所述区块链发送第五交易,所述第五交易中包括所述至少部分消息。
39.一种计算机可读存储介质,其上存储有计算机程序或指令,当所述计算机程序或指令在计算机中执行时,令计算机执行权利要求1-19中任一项的所述的方法。
40.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序或指令,所述处理器在执行所述计算机程序或指令时,实现权利要求1-19中任一项所述的方法。
CN202110340111.7A 2021-03-30 2021-03-30 一种用于区块链与链下设备之间的通信方法和装置 Active CN112738280B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110340111.7A CN112738280B (zh) 2021-03-30 2021-03-30 一种用于区块链与链下设备之间的通信方法和装置
CN202110998412.9A CN113691633A (zh) 2021-03-30 2021-03-30 一种用于区块链与链下设备之间的通信方法和装置
PCT/CN2021/133008 WO2022205956A1 (zh) 2021-03-30 2021-11-25 一种用于区块链与链下设备之间的通信方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110340111.7A CN112738280B (zh) 2021-03-30 2021-03-30 一种用于区块链与链下设备之间的通信方法和装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110998412.9A Division CN113691633A (zh) 2021-03-30 2021-03-30 一种用于区块链与链下设备之间的通信方法和装置

Publications (2)

Publication Number Publication Date
CN112738280A CN112738280A (zh) 2021-04-30
CN112738280B true CN112738280B (zh) 2021-07-23

Family

ID=75596143

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110998412.9A Pending CN113691633A (zh) 2021-03-30 2021-03-30 一种用于区块链与链下设备之间的通信方法和装置
CN202110340111.7A Active CN112738280B (zh) 2021-03-30 2021-03-30 一种用于区块链与链下设备之间的通信方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202110998412.9A Pending CN113691633A (zh) 2021-03-30 2021-03-30 一种用于区块链与链下设备之间的通信方法和装置

Country Status (2)

Country Link
CN (2) CN113691633A (zh)
WO (1) WO2022205956A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113691633A (zh) * 2021-03-30 2021-11-23 支付宝(杭州)信息技术有限公司 一种用于区块链与链下设备之间的通信方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109670335A (zh) * 2018-12-20 2019-04-23 众安信息技术服务有限公司 用于在区块链与链外数据之间进行交互的方法及装置
CN110378690A (zh) * 2019-06-13 2019-10-25 北京航空航天大学 匿名安全支付通道方法及装置
CN111047450A (zh) * 2020-03-18 2020-04-21 支付宝(杭州)信息技术有限公司 链上数据的链下隐私计算方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018122997A1 (de) * 2018-09-19 2020-03-19 Infineon Technologies Ag Blockkettenentität, kettenexterne entität, zertifizierungsvorrichtung für blockkettenoperationen und verfahren zum durchführen einer kooperation zwischen einer blockkettenentität und einer kettenexternen entität
TWI708154B (zh) * 2019-04-24 2020-10-21 國際信任機器股份有限公司 適用於區塊鏈與鏈下間協作的驗證系統與方法
CN110210845B (zh) * 2019-06-11 2021-06-18 网易(杭州)网络有限公司 用于区块链数据迁移的方法、装置、介质和计算设备
CN112202715A (zh) * 2020-08-31 2021-01-08 北京锐格信安技术有限公司 一种物联网与区块链可信交互的系统、方法及装置
CN113691633A (zh) * 2021-03-30 2021-11-23 支付宝(杭州)信息技术有限公司 一种用于区块链与链下设备之间的通信方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109670335A (zh) * 2018-12-20 2019-04-23 众安信息技术服务有限公司 用于在区块链与链外数据之间进行交互的方法及装置
CN110378690A (zh) * 2019-06-13 2019-10-25 北京航空航天大学 匿名安全支付通道方法及装置
CN111047450A (zh) * 2020-03-18 2020-04-21 支付宝(杭州)信息技术有限公司 链上数据的链下隐私计算方法及装置

Also Published As

Publication number Publication date
CN113691633A (zh) 2021-11-23
WO2022205956A1 (zh) 2022-10-06
CN112738280A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
US11388152B2 (en) Manicoding for communication verification
Kiayias et al. Fair and robust multi-party computation using a global transaction ledger
Angel et al. Unobservable communication over fully untrusted infrastructure
WO2020258846A1 (zh) 一种跨链发送可认证消息的方法和装置
CN105306534B (zh) 一种基于开放平台的信息校验方法和开放平台
CN110881063B (zh) 一种隐私数据的存储方法、装置、设备及介质
CN110430235B (zh) 跨链发送可认证消息的方法、装置、存储介质和计算设备
CN112686668A (zh) 联盟链跨链系统及方法
CN111224962B (zh) 一种基于区块链的物联网设备联网控制方法、控制系统
CN113556362B (zh) 基于区块链智能合约的加密会话建立及维持方法
CN112738280B (zh) 一种用于区块链与链下设备之间的通信方法和装置
Canetti et al. Universally composable end-to-end secure messaging
CN112148796A (zh) 一种电子贸易单据共享方法、装置、设备及介质
CN109167771B (zh) 基于联盟链的鉴权方法、装置、设备及可读存储介质
KR102298716B1 (ko) 통신 노드, 이의 동작 방법 및 협업 시스템
CN116668165A (zh) 基于区块链的可信通信的交互方法
Badertscher et al. On composable security for digital signatures
CN113872974B (zh) 网络会话加密的方法、服务器和计算机可读存储介质
Cachin et al. Stateful multi-client verifiable computation
CN115378605A (zh) 基于区块链的数据处理方法及装置
JP5001968B2 (ja) ソーシャルネット内の各ユーザの公開鍵の正当性を保証する認証局を設定する認証局設定装置及び認証局設定方法
Dagdelen et al. Intercepting tokens: The empire strikes back in the clone wars
CN116074115B (zh) 一种基于智能合约实现跨链加密会话方法
CN117560190A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN116467062A (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