CN114357495A - 基于区块链的预言机链下聚合方法、装置、设备和介质 - Google Patents
基于区块链的预言机链下聚合方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114357495A CN114357495A CN202210250975.4A CN202210250975A CN114357495A CN 114357495 A CN114357495 A CN 114357495A CN 202210250975 A CN202210250975 A CN 202210250975A CN 114357495 A CN114357495 A CN 114357495A
- Authority
- CN
- China
- Prior art keywords
- node
- data access
- request message
- predictive
- access result
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
本公开提供了一种基于区块链的预言机链下聚合方法、装置、设备和介质,涉及计算机技术领域,尤其涉及区块链技术。该方法应用于预言机网络,包括:获取到区块链节点产生的链下数据访问请求;根据所述链下数据访问请求,向所述预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问;与所述预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;其中,所述聚合数据访问结果包括满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果;将所述聚合数据访问结果反馈给区块链节点。上述技术方案解决了预言机节点的作恶行为,提高了区块链***的安全性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及区块链技术。
背景技术
由于区块链***是确定性的环境,所以,如果要访问链外数据源时,可通过预言机(Oracle)机制实现。预言机机制是在区块链的链外设置预言机节点,预言机节点可访问链外数据源,并将访问结果反馈给区块链。
但是,在现有的预言机机制中,预言机节点的服务容易出现单点故障,如宕机、网络不通,会影响区块链应用的可用性;预言机节点还会出现作恶行为,影响整个***的安全性。
发明内容
本公开提供了一种基于区块链的预言机链下聚合方法、装置、设备和介质,以解决预言机节点的作恶行为,提高区块链***的安全性。
根据本公开的一方面,提供了一种基于区块链的预言机链下聚合方法,应用于预言机网络,由所述预言机网络中的领导者节点执行,所述方法包括:
获取到区块链节点产生的链下数据访问请求;
根据所述链下数据访问请求,向所述预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问;
与所述预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;其中,所述聚合数据访问结果包括满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果;
将所述聚合数据访问结果反馈给所述区块链节点。
根据本公开的另一方面,提供了一种基于区块链的预言机链下聚合方法,应用于预言机网络,由所述预言机网络中的普通节点执行,所述方法包括:
接收所述预言机网络中领导者节点发送的数据请求消息,并根据所述数据请求消息执行链下数据访问;其中,所述数据请求消息由区块链节点产生的链下数据访问请求触发;
与所述领导者节点执行拜占庭共识算法,以确定聚合数据访问结果,并反馈给所述区块链节点;其中,所述聚合数据访问结果包括满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果。
根据本公开的另一方面,提供了一种基于区块链的预言机链下聚合装置,应用于预言机网络,配置于所述预言机网络中的领导者节点,所述装置包括:
访问请求获取模块,用于获取到区块链节点产生的链下数据访问请求;
请求消息发送模块,用于根据所述链下数据访问请求,向所述预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问;
访问结果确定模块,用于与所述预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;其中,所述聚合数据访问结果包括满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果;
访问结果反馈模块,用于将所述聚合数据访问结果反馈给所述区块链节点。
根据本公开的另一方面,提供了一种基于区块链的预言机链下聚合装置,应用于预言机网络,配置于所述预言机网络中的普通节点,所述装置包括:
请求消息接收模块,用于接收所述预言机网络中领导者节点发送的数据请求消息,并根据所述数据请求消息执行链下数据访问;其中,所述数据请求消息由区块链节点产生的链下数据访问请求触发;
访问结果确定模块,用于与所述领导者节点执行拜占庭共识算法,以确定聚合数据访问结果,并反馈给所述区块链节点;其中,所述聚合数据访问结果包括满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果。
根据本公开的另一方面,还提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开实施例所提供的任意一种基于区块链的预言机链下聚合方法。
根据本公开的另一方面,还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行本公开实施例所提供的任意一种基于区块链的预言机链下聚合方法。
根据本公开的另一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开实施例所提供的任意一种基于区块链的预言机链下聚合方法。
根据本公开的技术,解决了预言机节点的作恶行为,提高了区块链***的安全性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例提供的一种基于区块链的预言机链下聚合方法的示意图;
图2是根据本公开实施例提供的另一种基于区块链的预言机链下聚合方法的示意图;
图3是根据本公开实施例提供的又一种基于区块链的预言机链下聚合方法的示意图;
图4是根据本公开实施例提供的又一种基于区块链的预言机链下聚合方法的示意图;
图5是根据本公开实施例提供的一种基于区块链的预言机链下聚合装置的结构示意图;
图6是根据本公开实施例提供的一种基于区块链的预言机链下聚合装置的结构示意图;
图7是用来实现本公开实施例的基于区块链的预言机链下聚合的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例提供的一种基于区块链的预言机链下聚合方法的示意图,本公开实施例可适用于区块链***基于预言机机制访问链外数据源的情况。本公开实施例的技术方案应用于预言机网络,预言机网络包括多个语言机节点,预言机节点进一步区分角色,包括一个领导者节点,其他预言机节点为普通节点,优选是还可以包括传输器节点。各种角色可以在各预言机节点之间切换,例如通过轮询或随机选择等方式来切换。同一个预言机节点可以同时承担领导者节点、传输器节点和普通节点这三种角色中的一个、两个或三个。预言机网络与区块链网络相互独立运行,但是可以实现节点之间的点对点通信交互。预言机节点上也可以部署区块链的客户端,从而能够向区块链网络发起事务请求。执行区块链链上事务的节点可称为链上节点,对应的预言机网络中执行可以称为链下事务或链下业务。
本实施例的方法可由一种基于区块链的预言机链下聚合装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为预言机网络中的领导者节点。参考图1,本实施例的方法应用于预言机网络,由预言机网络中的领导者节点执行,该方法具体包括如下:
S110、获取到区块链节点产生的链下数据访问请求。
其中,链下数据访问请求可以是链上节点对链外数据源的数据获取请求。链下数据访问请求可以由部署在区块链节点的预言机合约请求产生,具体可以是区块链节点在执行业务事务请求过程中,调用预言机合约,以请求执行链下数据访问请求。
预言机合约可以是预先部署在区块链节点中的用于为链上用户提供链外数据源获取服务的智能合约。业务事务请求可以是由用户根据自身需求通过区块链的客户端向业务智能合约所发起的事务请求。业务智能合约可以是在区块链***中部署的能够实现相应的业务功能各种智能合约。例如,业务功能可以是电子货物购买、电子游戏等直接提供给用户的功能。
例如,在区块链节点执行由用户发起的游戏抽奖功能时,需要向链外获取随机数,此时,区块链节点可以调用预言机合约执行向链外获取随机数的请求,该请求即为链下数据访问请求。
其中,执行获取链下数据访问请求的可以是预言机网络中的领导者节点。领导者节点可以是预言机网络的各节点中的任意一个,具体可以由预言机网络随机选取确定。通过定期随机选取领导者节点的方式能够使得预言机网络中的所有节点均有可能作为领导者节点执行获取请求、收集数据等职能,避免每次使用相同预言机节点作为领导者节点的作恶行为。
示例性的,用户可以根据实际需求,基于区块链的客户端向区块链发起业务事务请求,区块链节点在执行业务事务请求过程中,当需要进行链外数据获取时,调用预言机合约产生链下数据访问请求,并由预言机网络中预先选取的领导者节点获取区块链节点产生的链下数据访问请求。
需要说明的是,区块链节点可以采用接口调用的方式将链下数据访问请求发送至预言机网络。具体可以是使区块链网络中的各区块链节点分别与预言机网络的预言机节点进行接口通讯,从而实现预言机网络的领导者节点对链下数据访问请求的获取。然而,区块链网络包括多个区块链节点,若分别与预言机节点进行接口调用,则可能产生大量的访问请求。
可选的,可以采用事件日志监听的方式,实现预言机网络的领导者节点对链下数据访问请求的获取。
在一个可选实施例中,获取到区块链节点产生的链下数据访问请求包括:监听区块中的事件日志;如果监听到存在链下访问需求的事件日志,则从区块中读取链下数据访问请求。
其中,事件日志中所要记录的内容可以由相关技术人员在区块链节点进行预言机合约部署时预先设定。例如,事件日志可以是预言机合约执行链下数据访问请求的过程中所产生的事件信息。事件日志可以被记录在区块中的区块头或区块体中。
示例性的,区块链节点可以将产生的链下数据访问请求进行广播,并由预言机网络进行监听,当预言机网络的领导者节点监听到区块链节点中存在链下访问需求的事件日志时,从区块链节点中读取链下数据访问请求。
本可选实施例方案通过监听区块中的事件日志的方式,从区块链节点中获取链下数据访问请求,实现了对链下数据访问请求的及时获取,使得区块链节点的预言机合约无需对特定的预言机节点进行接口调用。区块链网络包括多个区块链节点,若分别调用预言机节点,则可能产生大量的调用请求。
S120、根据链下数据访问请求,向预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问。
其中,数据请求消息可以是领导者节点向其他预言机节点发送的链下数据访问结果的获取请求消息。其中,其他预言机节点可以是预言机网络中除领导者节点之外的其他节点,即普通节点。
示例性的,领导者节点可以在获取到链下数据访问请求后,向预言机网络的其他预言机节点发送数据请求消息,从而使得其他预言机节点收到数据请求消息后向至少一个链外数据源获取链下数据。
S130、与预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;其中,聚合数据访问结果包括满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果。
其中,拜占庭共识算法可以由相关技术人员在预言机网络中进行预先设定。满足拜占庭数量要求的预言机节点可以是执行拜占庭共识算法过程中达成共识的预言机节点。链下数据访问结果可以是预言机节点向至少一个链外数据源访问得到的链下数据。拜占庭节点数量可以由相关技术人员根据预言机节点数量进行预先设定。
需要说明的是,若预言机节点向多个链外数据源访问数据,得到多个链外数据源反馈的多条链下数据,则可以将多个链外数据源反馈的多条链下数据,作为该预言机节点的链下数据访问结果;还可以由该预言机节点根据预设的聚合规则,对多个链外数据源反馈的多条链下数据进行聚合,并将对多条链下数据进行聚合后得到的数据结果,作为该预言机节点的链下数据访问结果。其中,聚合规则可以由相关技术人员预先设定,例如,聚合规则可以是取中位数或平均数等。
示例性的,领导者节点和预言机网络中的其他预言机节点执行拜占庭共识算法,确定满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果。
S140、将聚合数据访问结果反馈给区块链节点。
示例性的,预言机网络向区块链节点反馈的可以是满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果,即聚合数据访问结果;也可以是对所有满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果,进行聚合后得到的聚合结果。领导者节点进行的聚合操作,可以是对各预言机节点反馈的结果进行二次数据处理,例如取中位数或平均数等操作,也可以是将各结果记录在一起,形成结果集。
若向区块链节点反馈的为满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果,则可以由区块链节点在获取到聚合数据访问结果之后,调用预言机合约,基于预设的聚合规则,对聚合数据访问结果进行聚合,得到最终的聚合结果。其中,聚合规则可以是取中位数或平均数等。
可选的,预言机节点可以采用发起事务请求的方式,反馈聚合数据访问结果。示例性的,预言机节点可以基于区块链的客户端,向区块链节点发起数据反馈事务请求;区块链节点获取到数据反馈事务请求后,可以调用预言机合约对数据反馈事务请求进行处理,从而得到聚合数据访问结果。
本公开实施例通过获取区块链节点产生的链下数据访问请求;根据链下数据访问请求,向预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问;与预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;将聚合数据访问结果反馈给区块链节点。上述方案通过采用分布式的预言机节点获取链外数据,避免了网络不通或宕机等引起的单点故障的情况发生,实现了区块链节点对链外数据的及时获取,提高了对链外数据的获取效率,解决了区块链应用的可用性的问题。通过预言机网络中各预言机节点执行拜占庭共识算法,确定聚合数据访问结果的方式,解决了预言机节点的作恶行为,提高了聚合数据访问结果的可靠性,提高了整个区块链***的安全性。
图2是根据本公开实施例提供的另一种基于区块链的预言机链下聚合方法的示意图,本实施例是在上述实施例的基础上提出的一种可选方案。
参见图2,本实施例提供的基于区块链的预言机链下聚合的方法包括:
S210、获取到区块链节点产生的链下数据访问请求。
S220、根据链下数据访问请求,向预言机网络中的各预言机节点发送第一请求消息,以请求预言机节点执行链下数据访问。
S230、接收响应第一请求消息的第一响应消息。
其中,第一请求消息为预言机网络中的领导者节点向其他各预言机节点发送的数据请求消息。第一响应消息可以是其他预言机节点根据接收到的第一请求消息生成的响应消息。其中,第一响应消息中可以携带有预言机节点自身获取的链下数据访问结果和/或预言机节点的签名。
示例性的,预言机网络中的其他预言机节点获取由领导者节点发送的第一请求消息,根据第一请求消息向链外数据源访问链下数据;各预言机节点将获取到的链下数据访问结果和预言机节点的签名作为第一响应消息发送至领导者节点,以供领导者节点对第一响应消息进行验证。
S240、如果第一响应消息的数量满足第一数量门限值,则将各第一响应消息中的链下数据访问结果,携带在第二请求消息中发送给第一目标预言机节点,以请求第一目标预言机节点对第二请求消息进行验证;其中,第一目标预言机节点为反馈第一响应消息的预言机节点。
其中,第一数量门限值可以由相关技术人员预先设定,具体可以是根据预设的拜占庭节点数量进行确定。例如,第一数量门限值可以等于2f+1,其中,f等于预设的拜占庭节点数量。拜占庭节点的数量可以由相关技术人员根据预言机网络中的预言机节点数量进行预先设定,例如,f可以满足n>3f+1的关系。其中,n为预言机网络中预言机节点的总数量。
其中,第二请求消息可以是预言机网络中的领导者节点基于第一响应消息,向第一目标预言机节点发送的数据请求消息。
需要说明的是,在预言机网络中,接收到第一请求消息的所有预言机节点中,可能有部分预言机节点存在安全性等问题,造成无法生成或向预言机节点发送第一响应消息,从而导致可能只有大部分的预言机节点针对第一请求消息生成了第一响应消息并发送至领导者节点。相应的,成功的生成并向领导者节点反馈第一响应消息的预言机节点,即为第一目标预言机节点。
示例性的,确定第一响应消息的数量是否满足第一数量门限值的判断依据可以是若第一响应消息的数量大于或等于第一数量门限值,则可以认为第一响应消息的数量满足第一数量门限值。可选的,为确保获取到的第一响应消息具有时效性,从而确保后续获取到的链下数据访问结果的可靠性,还可以为获取第一响应消息的过程设定宽限期,即,宽限期到达时停止再获取和统计第一响应消息,宽限期可以在发送第一请求消息时启动计时。
在一个可选实施例中确定第一响应消息的数量满足第一数量门限值包括:领导者节点在设定宽限期的时间范围内,确定第一响应消息的数量满足第一数量门限值。
其中,宽限期的时间范围可以由相关技术人员预先设定,例如,宽限期的时间范围为从开始发送第一请求消息起2秒内。
示例性的,如果领导者节点在设定宽限期的时间范围内,获取到的第一响应消息的数量不小于第一数量门限值,则可以认为第一响应消息的数量满足第一数量门限值;如果领导者节点在设定宽限期的时间范围内,获取的第一响应消息的数量小于第一数量门限值,则可以认为第一响应消息的数量不满足第一数量门限值。
本可选实施例通过设定宽限期的时间范围,判断领导者节点获取的第一响应消息的数量是否满足第一数量门限值的方式,保证了第一响应消息具有时效性,从而确保了后续获取到的链下数据访问结果的可靠性。
示例性的,领导者节点可以获取预设宽限期的时间范围内,其他各预言机节点发送的第一响应消息,并判断获取到的第一响应消息的数量是否满足第一数量门限值;若是,则将获取到的各第一响应消息中的链下数据访问结果,携带在第二请求消息中,并将第二消息请求发送给反馈第一响应消息的预言机节点,以请求反馈第一响应消息的预言机节点对第二请求消息进行验证;若否,则可以认为本次消息处理失败。
其中,链下数据访问结果可以是一个预言机节点访问一个或多个链外数据源后,经过在预言机节点本地聚合而产生的结果;也可以是一个预言机节点访问一个或多个链外数据源得到的,未在本地进行聚合的一个或多个链下数据结果。
需要说明的是,为确保后续第一目标预言机节点对第二请求消息验证的全面性,第一响应消息中还可以包括预言机节点的签名。
在一个可选实施例中,将各第一响应消息中的链下数据访问结果,携带在第二请求消息中发送给第一目标预言机节点包括:将各第一响应消息,携带在第二请求消息中发送给第一目标预言机节点;第一响应消息中包括链下数据访问结果和预言机节点的签名。
其中,预言机节点的签名可以是预言机节点对获取的链下数据访问结果的签名。第一目标预言机节点可以是反馈链下数据访问结果和预言机节点的签名的预言机节点。
示例性的,领导者节点将获取到的各预言机节点的链下数据访问结果和预言机节点的签名,携带在第二请求消息中,并发送给反馈链下数据访问结果和预言机节点的签名的预言机节点。
本可选实施例通过将各第一响应消息中的链下数据访问结果和预言机节点的签名,携带在第二请求消息中发送给第一目标预言机节点,提高了后续第一目标预言机节点对第二请求消息验证的全面性,从而提高了后续获取的第二响应消息数量的准确性。
S250、接收响应第二请求消息已验证通过的第二响应消息。
其中,第二响应消息可以是其他预言机节点根据接收到的第二请求消息生成的响应消息。第二响应消息可以包括聚合链下数据访问结果和预言机节点的签名,其中,聚合数据访问结果可以包括满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果。
可选的,第二响应消息可以包括经过聚合的聚合链下数据访问结果和预言机节点的签名。其中,经过聚合的聚合链下数据访问结果可以是对满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果进行聚合后得到的聚合结果。
示例性的,其他预言机节点可以在接收到第二请求消息之后,对第二请求消息中的各预言机节点的链下数据访问结果以及其他预言机的签名进行验证,并将验证通过的各预言机节点的链下数据访问结果作为聚合链下数据访问结果。已验证通过的预言机节点将聚合链下数据访问结果和自己的预言机节点的签名作为第二响应消息发送至领导者节点。上述过程,使得每个接收到第二请求消息的预言机节点,能够进一步对所有链下数据访问结果进行验证,显著提供了可靠性。
为提高区块链节点的预言机合约的处理效率,可以由预言机网络在链下完成对聚合链下数据访问结果的聚合过程。同时,为提高获取得到的第二响应消息的准确性,领导者节点可以在接收由各预言机节点发送的第二响应消息后,对第二响应消息进行验证。
在一个可选实施例中,接收响应第二请求消息已验证通过的第二响应消息之后,还包括:领导者节点从各第二响应消息中获取经过聚合的聚合链下数据访问结果和反馈第二响应消息的预言机节点的签名,并进行验证。
其中。经过聚合的聚合链下数据访问结果可以是其他预言机节点对满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果进行聚合后得到的聚合结果。
示例性的,领导者节点接收到第二响应消息之后,从各第二响应消息中获取各预言机节点反馈的经过聚合的聚合链下数据访问结果和预言机节点的签名,并对经过聚合的聚合链下数据访问结果和预言机节点的签名进行验证。具体可以是验证获取的各经过聚合的聚合链下数据访问结果是否一致,以及预言机节点的签名是否正确,若聚合结果一致且签名正确,则可以认为接收到的第二响应消息验证通过;若存在聚合结果与其他聚合结果不一致或预言机节点的签名不正确的第二响应消息,则可以认为该第二响应消息的验证不通过。
本可选实施例通过领导者节点在接收到第二响应消息之后,对第二响应消息中的聚合后的聚合链下数据访问结果和预言机节点的签名进行验证的方式,提高了对获取到的第二响应消息的准确性验证,从而提高了聚合后的聚合数据访问结果的准确度,进而提高了后续确定聚合后的聚合数据访问结果是否通过拜占庭共识算法的确定准确度。
S260、如果第二响应消息的数量满足第二数量门限值,则确认各链下数据访问结果经过聚合的聚合数据访问结果,通过拜占庭共识算法。
其中,第二数量门限值可以由相关技术人员预先设定,具体可以是根据预设的拜占庭节点数量进行确定。例如,第二数量门限值可以等于f+1,其中,f等于预设的拜占庭节点数量。
可选的,第二响应消息的数量满足第二数量门限值的条件可以是经领导者节点对第二响应消息进行验证后,验证通过的第二响应消息的数量不小于第二数量门限值,则可以认为第二响应消息的数量满足第二数量门限值。
示例性的,如果经领导者节点对获取的各第二响应消息进行验证后,验证通过的第二响应消息的数量不小于第二数量门限值,则可以认为经过聚合的各链下数据访问结果对应的聚合数据访问结果,通过拜占庭共识算法。
S270、将聚合数据访问结果反馈给区块链节点。
示例性的,可以将确认通过拜占庭共识算法的各链下数据访问结果经过聚合的聚合数据访问结果,反馈给区块链节点。
示例性的,也可以将通过拜占庭共识算法的各链下数据访问结果的聚合数据访问结果,反馈给区块链节点。
在一个可选实施例中,将聚合数据访问结果反馈给区块链节点包括:将聚合数据访问结果和第二目标预言机节点的签名,反馈给区块链节点中的预言机合约;其中,第二目标预言机节点为反馈第二响应消息的预言机节点,签名用于供预言机合约进行签名验证和签名数量验证。
示例性的,可以由领导者节点直接将聚合数据访问结果和第二目标预言机节点的签名,反馈给区块链节点中的预言机合约。由预言机合约对第二目标预言机节点的签名进行签名验证和签名数量验证,并在验证通过后,基于预设的聚合规则,对获取到的聚合数据访问结果进行聚合。其中,聚合规则可以是取中位数或均值。
本可选实施例通过将聚合数据访问结果和第二目标预言机节点的签名反馈给区块链节点的预言机合约,由预言机合约对反馈的签名和结果进行验证的方式,实现了对反馈的聚合数据访问结果的准确性的验证,通过验证签名的方式,确保了区块链节点得到的聚合数据访问结果的具有可靠性。
在一个可选实施例中,将聚合数据访问结果反馈给区块链节点包括:将聚合数据访问结果和第二目标预言机节点的签名,携带在第三请求消息中发送给第二目标预言机节点,以请求第二目标预言机节点将聚合数据访问结果和第二目标预言机节点的签名,通过预言机网络中的传输器节点反馈给区块链节点。
其中,第二目标预言机节点为反馈第二响应消息的预言机节点。需要说明的是,在所有获取到第二请求消息的预言机节点中,可能存在部分预言机节点对第二请求消息的验证不通过,即无法向领导者节点成功反馈第二响应消息。因此,第二目标预言机节点即为对第二请求消息的验证通过并成功向领导者节点反馈第二响应消息的预言机节点。
其中,第三请求消息可以是预言机网络中的领导者节点基于第二响应消息,向第二目标预言机节点发送的数据请求消息。
其中,传输器节点可以是从预言机网络中预先选取的用于向区块链节点传输数据的预言机节点。传输器节点的数量有且仅有一个,具体可以是从预言机网络中随机选取。
在一个可选实施例中,传输器节点是在产生第三请求消息之后,由预言机网络选取确定;其中,选取的方式包括轮询选取或随机选取。
在领导者节点产生第三请求消息之后,由预言机网络轮询选取或随机选取传输器节点,能够避免被攻击,避免了提前选好传输器节点作恶攻击的可能性发生,减小了聚合数据访问结果向区块链节点反馈失败的可能性。
示例性的,领导者节点从第二响应消息中获取聚合数据访问结果和第二目标预言机节点的签名,并将获取到的聚合数据访问结果和预言机节点的签名,携带在第三请求消息中,发送给第二目标预言机节点,并由第二目标预言机节点向区块链节点反馈结果,同时,由预言机网络随机选取传输器节点。第二目标预言机节点获取到第三请求消息后,从第三请求消息中获取聚合数据访问结果和第二预言机节点的签名,通过随机选取的传输器节点,将聚合数据访问结果和第二目标预言机节点的签名反馈至区块链节点。
本可选实施例通过将聚合数据访问结果和第二目标预言机节点的签名携带在第三请求消息中并发送给第二目标预言机节点,由第二目标预言机节点通过传输器节点向区块链节点反馈数据。通过仅由传输器节点向区块链节点传输数据的方式,减少了区块链连上的网络拥堵,避免了多个预言机节点同时向区块链节点发送数据导致的数据传输效率低的情况发生,使得区块链节点能够及时获取到预言机网络反馈的数据结果。
本公开实施例方案通过接收响应第一请求消息的第一响应消息;如果第一响应消息的数量满足第一数量门限值,则将各第一响应消息中的链下数据访问结果,携带在第二请求消息中发送给第一目标预言机节点;接收响应第二请求消息已验证通过的第二响应消息;如果第二响应消息的数量满足第二数量门限值,则确认各链下数据访问结果经过聚合的聚合数据访问结果,通过拜占庭共识算法。上述方案通过领导者节点与其他预言机节点之间进行两次消息请求和响应消息验证的方式,实现了对经过聚合的聚合数据访问结果是否通过拜占庭共识算法的准确确定。避免了由少量预言机节点联合形成攻击造成的数据结果不准确或不可用的情况发生。通过各预言机节点之间的共识机制,减少了拜占庭作恶的情况发生。
图3是根据本公开实施例提供的一种基于区块链的预言机链下聚合方法的示意图,本公开实施例可适用于区块链***基于预言机机制访问链外数据源的情况。该方法可由一种区块链的链外服务实现装置来执行,该装置可采用硬件和/或软件的方式来实现,可配置于电子设备中,该电子设备可以为预言机网络中的预言机节点。参考图3,该方法应用于预言机网络,由预言机网络中的普通节点执行,该方法具体包括如下:
S310、接收预言机网络中领导者节点发送的数据请求消息,并根据数据请求消息执行链下数据访问;其中,数据请求消息由区块链节点产生的链下数据访问请求触发。
其中,领导者节点可以是预言机网络的各节点中的任意一个,具体可以由预言机网络随机选取确定。
示例性的,预言机网络中的普通节点接收预言机网络中的领导者节点发送的数据请求消息;普通节点在获取到数据请求消息后,向至少一个链外数据源访问获取链下数据,从而得到链下数据访问结果。其中,普通节点可以是预言机网络中,除领导者节点之外的其他预言机节点。
S320、与领导者节点执行拜占庭共识算法,以确定聚合数据访问结果,并反馈给区块链节点;其中,聚合数据访问结果包括满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果。
其中,拜占庭共识算法可以由相关技术人员在预言机网络中进行预先设定。满足拜占庭数量要求的预言机节点可以是执行拜占庭共识算法过程中达成共识的预言机节点。链下数据访问结果可以是预言机节点向至少一个链外数据源访问得到的链下数据。拜占庭节点数量可以由相关技术人员根据预言机节点数量进行预先设定。
示例性的,预言机网络中的普通节点和领导者节点执行拜占庭共识算法,确定满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果,并将聚合数据访问结果反馈至区块链节点。
需要说明的是,向区块链节点反馈的可以是满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果,即聚合数据访问结果;也可以是对所有满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果,进行聚合后得到的聚合结果。
本公开实施例通过接收预言机网络中领导者节点发送的数据请求消息,并根据数据请求消息执行链下数据访问;与领导者节点执行拜占庭共识算法,以确定聚合数据访问结果,并反馈给区块链节点。上述方案通过采用分布式的预言机节点获取链外数据,避免了网络不通或宕机等引起的单点故障的情况发生,实现了区块链节点对链外数据的及时获取,提高了对链外数据的获取效率,解决了区块链应用的可用性的问题。通过预言机网络中各预言机节点执行拜占庭共识算法,确定聚合数据访问结果的方式,解决了预言机节点的作恶行为,提高了聚合数据访问结果的可靠性,提高了整个区块链***的安全性。
图4是根据本公开实施例提供的另一种基于区块链的预言机链下聚合方法的示意图,本实施例是在上述实施例的基础上提出的一种可选方案。
参见图4,本实施例提供的基于区块链的预言机链下聚合的方法包括:
S410、接收预言机网络中领导者节点发送的第一请求消息,并根据第一请求消息执行链下数据访问。
其中,第一请求消息由区块链节点产生的链下数据访问请求触发。
S420、根据链下数据访问结果产生第一响应消息,反馈给领导者节点。
其中,第一响应消息可以是普通节点根据接收到的第一请求消息,基于链下数据访问结果产生的响应消息。其中,第一响应消息中可以携带有普通节点自身获取的链下数据访问结果和/或普通节点的签名。普通节点的签名可以是普通节点对自身获取的链下数据访问结果的签名。
示例性的,预言机网络中的普通节点获取由领导者节点发送的第一请求消息,根据第一请求消息向链外数据源访问链下数据,得到链下数据访问结果;普通节点将获取到的链下数据访问结果和普通节点的签名作为第一响应消息发送至领导者节点,以供领导者节点对第一响应消息进行验证。
S430、接收领导者节点发送的第二请求消息,其中,第二请求消息中携带有领导者节点接收到的各第一响应消息。
示例性的,领导者节点接收响应第一请求消息的第一响应消息,并对第一响应消息进行验证,领导者节点将验证通过的各第一响应消息中的链下数据访问结果,携带在第二请求消息中发送给普通节点;普通节点接收领导者节点发送的第二请求消息。其中,第二请求消息中携带有领导者节点接收到的各第一响应消息。
S440、分别对第二请求消息中各第一响应消息的签名进行验证。
普通节点验证第一响应消息的签名是否正确,若是,则对第一响应消息的签名的验证通过,若否,则对第一响应消息的签名的验证不通过。
S450、将验证通过的各第一响应消息中的链下访问结果进行聚合,形成聚合数据访问结果并携带在第二响应消息中,且对第二响应消息进行签名。
其中,聚合数据访问结果包括满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果。
示例性的,普通节点将验证通过的第一响应消息中的链下访问结果进行聚合,得到聚合数据访问结果;将聚合数据访问结果携带在第二响应消息中,并对第二响应消息进行签名。
S460、将第二响应消息反馈给领导者节点。
示例性的,将第二响应消息反馈给领导者节点,以供领导者节点对第二响应消息进行验证,并将验证通过的第二响应消息中的聚合数据访问结果和第二目标预言机节点的签名,携带在第三请求消息中发送给第二目标预言机节点。
S470、接收领导者节点发送的第三请求消息。
其中,第三请求消息中携带有聚合数据访问结果和各第二目标预言机节点的签名,第二目标预言机节点为反馈第二响应消息的普通节点。
S480、对第三请求消息中的签名验证通过后,将聚合数据访问结果和第二目标预言机节点的签名,通过预言机网络中的传输器节点反馈给区块链节点。
其中,传输器节点是在产生第三请求消息之后,由预言机网络选取确定,选取的方式包括轮询选取或随机选取。
在领导者节点产生第三请求消息之后,由预言机网络轮询选取或随机选取传输器节点,能够避免被攻击,避免了提前选好传输器节点作恶攻击的可能性发生,减小了聚合数据访问结果向区块链节点反馈失败的可能性。
本公开实施例方案通过根据链下数据访问结果产生第一响应消息,反馈给领导者节点;接收领导者节点发送的第二请求消息并进行验证;将验证通过的链下访问结果进行聚合,形成聚合数据访问结果并携带在第二响应消息中并进行签名后将反馈给领导者节点。上述方案通过普通节点与领导者节点之间进行两次消息请求和响应消息验证的方式,实现了对经过聚合的聚合数据访问结果是否通过拜占庭共识算法的准确确定,减少了拜占庭作恶的情况发生,避免了由少量预言机节点联合形成攻击造成的数据结果不准确或不可用的情况发生。通过接收领导者节点发送的第三请求消息并进行验证;验证通过后将聚合数据访问结果和第二目标预言机节点的签名,由传输器节点反馈给区块链节点,减少了区块链连上的网络拥堵,避免了多个预言机节点同时向区块链节点发送数据导致的数据传输效率低的情况发生,使得区块链节点能够及时获取到预言机网络反馈的数据结果。
图5是根据本公开实施例提供的一种基于区块链的预言机链下聚合装置的示意图,本实施例可适用于区块链***基于预言机机制访问链外数据源的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的基于区块链的预言机链下聚合方法。该电子设备可以为预言机网络中的领导者节点,参考图5,该基于区块链的预言机链下聚合装置500具体包括如下:
访问请求获取模块501,用于获取到区块链节点产生的链下数据访问请求;
请求消息发送模块502,用于根据所述链下数据访问请求,向所述预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问;
访问结果确定模块503,用于与所述预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;其中,所述聚合数据访问结果包括满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果;
访问结果反馈模块504,用于将所述聚合数据访问结果反馈给所述区块链节点。
本公开实施例通过获取区块链节点产生的链下数据访问请求;根据链下数据访问请求,向预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问;与预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;将聚合数据访问结果反馈给区块链节点。上述方案通过采用分布式的预言机节点获取链外数据,避免了网络不通或宕机等引起的单点故障的情况发生,实现了区块链节点对链外数据的及时获取,提高了对链外数据的获取效率,解决了区块链应用的可用性的问题。通过预言机网络中各预言机节点执行拜占庭共识算法,确定聚合数据访问结果的方式,解决了预言机节点的作恶行为,提高了聚合数据访问结果的可靠性,提高了整个区块链***的安全性。
在一种可选的实施方式中,所述数据请求消息记为第一请求消息,则所述访问结果确定模块503,包括:
第一响应消息接收单元,用于接收响应所述第一请求消息的第一响应消息;
第二请求消息发送单元,用于如果所述第一响应消息的数量满足第一数量门限值,则将各所述第一响应消息中的链下数据访问结果,携带在第二请求消息中发送给第一目标预言机节点,以请求所述第一目标预言机节点对第二请求消息进行验证;其中,所述第一目标预言机节点为反馈所述第一响应消息的预言机节点;
第二响应消息接收单元,用于接收响应所述第二请求消息已验证通过的第二响应消息;
数据访问结果确定单元,用于如果所述第二响应消息的数量满足第二数量门限值,则确认各所述链下数据访问结果经过聚合的聚合数据访问结果,通过拜占庭共识算法。
在一种可选的实施方式中,所述第二请求消息发送单元,包括:
第二请求消息发送子单元,用于将各所述第一响应消息,携带在第二请求消息中发送给第一目标预言机节点;所述第一响应消息中包括链下数据访问结果和预言机节点的签名。
在一种可选的实施方式中,所述访问结果确定模块503,还包括:
结果验证单元,用于在接收响应所述第二请求消息已验证通过的第二响应消息之后,从各所述第二响应消息中获取经过聚合的聚合链下数据访问结果和反馈所述第二响应消息的预言机节点的签名,并进行验证。
在一种可选的实施方式中,所述访问结果确定模块503,还包括:
数量满足条件确定单元,用于确定所述第一响应消息的数量满足第一数量门限值;
所述数量满足条件确定单元,包括:
数量满足条件确定子单元,用于在设定宽限期的时间范围内,确定所述第一响应消息的数量满足第一数量门限值。
在一种可选的实施方式中,所述访问结果反馈模块504,包括:
第三请求消息发送单元,用于将所述聚合数据访问结果和第二目标预言机节点的签名,携带在第三请求消息中发送给所述第二目标预言机节点,以请求所述第二目标预言机节点将所述聚合数据访问结果和第二目标预言机节点的签名,通过预言机网络中的传输器节点反馈给区块链节点;
其中,所述第二目标预言机节点为反馈所述第二响应消息的预言机节点。
在一种可选的实施方式中,所述传输器节点是在产生所述第三请求消息之后,由所述预言机网络选取确定;其中,所述选取的方式包括轮询选取或随机选取。
在一种可选的实施方式中,所述访问结果反馈模块504,包括:
结果反馈单元,用于将所述聚合数据访问结果和第二目标预言机节点的签名,反馈给所述区块链节点中的预言机合约;其中,所述第二目标预言机节点为反馈所述第二响应消息的预言机节点,所述签名用于供所述预言机合约进行签名验证和签名数量验证。
在一种可选的实施方式中,所述第一数量门限值等于2f+1,所述第二数量门限值等于f+1,f等于预设的拜占庭节点数量,f满足n > 3f + 1的关系,n为所述预言机网络中预言机节点的总数量。
在一种可选的实施方式中,所述访问请求获取模块501,包括:
事件日志监听单元,用于监听区块中的事件日志;
数据访问请求读取单元,用于如果监听到存在链下访问需求的事件日志,则从区块中读取链下数据访问请求。
在一种可选的实施方式中,所述领导者节点由预言机网络随机选取确定。
本公开实施例的技术方案所提供的一种基于区块链的预言机链下聚合装置可执行本公开任意实施例所提供的基于区块链的预言机链下聚合方法,具备执行基于区块链的预言机链下聚合方法相应的功能模块和有益效果。
图6是根据本公开实施例提供的一种基于区块链的预言机链下聚合装置的示意图,本实施例可适用于区块链***基于预言机机制访问链外数据源的应用场景,该装置配置于电子设备中,可实现本公开任意实施例所述的基于区块链的预言机链下聚合方法。该电子设备可以为预言机网络中的普通节点,参考图6,该基于区块链的预言机链下聚合装置600具体包括如下:
请求消息接收模块601,用于接收所述预言机网络中领导者节点发送的数据请求消息,并根据所述数据请求消息执行链下数据访问;其中,所述数据请求消息由区块链节点产生的链下数据访问请求触发;
访问结果确定模块602,用于与所述领导者节点执行拜占庭共识算法,以确定聚合数据访问结果,并反馈给所述区块链节点;其中,所述聚合数据访问结果包括满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果。
本公开实施例通过接收预言机网络中领导者节点发送的数据请求消息,并根据数据请求消息执行链下数据访问;与领导者节点执行拜占庭共识算法,以确定聚合数据访问结果,并反馈给区块链节点。上述方案通过采用分布式的预言机节点获取链外数据,避免了网络不通或宕机等引起的单点故障的情况发生,实现了区块链节点对链外数据的及时获取,提高了对链外数据的获取效率,解决了区块链应用的可用性的问题。通过预言机网络中各预言机节点执行拜占庭共识算法,确定聚合数据访问结果的方式,解决了预言机节点的作恶行为,提高了聚合数据访问结果的可靠性,提高了整个区块链***的安全性。
在一种可选的实施方式中,所述数据请求消息记为第一请求消息,所述访问结果确定模块602,包括:
第一响应消息反馈单元,用于根据链下数据访问结果产生第一响应消息,反馈给所述领导者节点;
第二请求消息接收单元,用于接收所述领导者节点发送的第二请求消息,其中,所述第二请求消息中携带有领导者节点接收到的各第一响应消息;
签名验证单元,用于分别对所述第二请求消息中各第一响应消息的签名进行验证;
结果聚合单元,用于将验证通过的各第一响应消息中的链下访问结果进行聚合,形成聚合数据访问结果并携带在第二响应消息中,且对所述第二响应消息进行签名;
第二响应消息反馈单元,用于将所述第二响应消息反馈给所述领导者节点。
在一种可选的实施方式中,所述装置600还包括:
第三请求消息接收模块,用于接收领导者节点发送的第三请求消息;其中,所述第三请求消息中携带有所述聚合数据访问结果和各第二目标预言机节点的签名,所述第二目标预言机节点为反馈所述第二响应消息的普通节点;
签名验证模块,用于对所述第三请求消息中的签名验证通过后,将所述聚合数据访问结果和第二目标预言机节点的签名,通过预言机网络中的传输器节点反馈给区块链节点。
在一种可选的实施方式中,所述传输器节点是在产生所述第三请求消息之后,由所述预言机网络选取确定;
其中,所述选取的方式包括轮询选取或随机选取。
本公开实施例的技术方案所提供的一种基于区块链的预言机链下聚合装置可执行本公开任意实施例所提供的基于区块链的预言机链下聚合方法,具备执行基于区块链的预言机链下聚合方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的链下数据访问请求、数据请求消息、数据访问结果等的收集、存储、使用、加工、传输、提供和公开等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如基于区块链的预言机链下聚合方法。例如,在一些实施例中,基于区块链的预言机链下聚合方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的基于区块链的预言机链下聚合方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于区块链的预言机链下聚合方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)区块链网络和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作***、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (19)
1.一种基于区块链的预言机链下聚合方法,应用于预言机网络,由所述预言机网络中的领导者节点执行,所述方法包括:
获取到区块链节点产生的链下数据访问请求;
根据所述链下数据访问请求,向所述预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问;
与所述预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;其中,所述聚合数据访问结果包括满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果;
将所述聚合数据访问结果反馈给所述区块链节点。
2.根据权利要求1所述的方法,其中,所述数据请求消息记为第一请求消息,则与所述预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果包括:
接收响应所述第一请求消息的第一响应消息;
如果所述第一响应消息的数量满足第一数量门限值,则将各所述第一响应消息中的链下数据访问结果,携带在第二请求消息中发送给第一目标预言机节点,以请求所述第一目标预言机节点对第二请求消息进行验证;其中,所述第一目标预言机节点为反馈所述第一响应消息的预言机节点;
接收响应所述第二请求消息已验证通过的第二响应消息;
如果所述第二响应消息的数量满足第二数量门限值,则确认各所述链下数据访问结果经过聚合的聚合数据访问结果,通过拜占庭共识算法。
3.根据权利要求2所述的方法,其中,将各所述第一响应消息中的链下数据访问结果,携带在第二请求消息中发送给第一目标预言机节点包括:
将各所述第一响应消息,携带在第二请求消息中发送给第一目标预言机节点;所述第一响应消息中包括链下数据访问结果和预言机节点的签名。
4.根据权利要求2所述的方法,接收响应所述第二请求消息已验证通过的第二响应消息之后,还包括:
从各所述第二响应消息中获取经过聚合的聚合链下数据访问结果和反馈所述第二响应消息的预言机节点的签名,并进行验证。
5.根据权利要求2所述的方法,其中,确定所述第一响应消息的数量满足第一数量门限值包括:
在设定宽限期的时间范围内,确定所述第一响应消息的数量满足第一数量门限值。
6.根据权利要求2所述的方法,其中,将所述聚合数据访问结果反馈给区块链节点包括:
将所述聚合数据访问结果和第二目标预言机节点的签名,携带在第三请求消息中发送给所述第二目标预言机节点,以请求所述第二目标预言机节点将所述聚合数据访问结果和第二目标预言机节点的签名,通过预言机网络中的传输器节点反馈给区块链节点;
其中,所述第二目标预言机节点为反馈所述第二响应消息的预言机节点。
7.根据权利要求6所述的方法,其中,所述传输器节点是在产生所述第三请求消息之后,由所述预言机网络选取确定;
其中,所述选取的方式包括轮询选取或随机选取。
8.根据权利要求2所述的方法,其中,将所述聚合数据访问结果反馈给区块链节点包括:
将所述聚合数据访问结果和第二目标预言机节点的签名,反馈给所述区块链节点中的预言机合约;其中,所述第二目标预言机节点为反馈所述第二响应消息的预言机节点,所述签名用于供所述预言机合约进行签名验证和签名数量验证。
9. 根据权利要求2所述的方法,其中,所述第一数量门限值等于2f+1,所述第二数量门限值等于f+1,f等于预设的拜占庭节点数量,f满足n > 3f + 1的关系,n为所述预言机网络中预言机节点的总数量。
10.根据权利要求1所述的方法,其中,获取到区块链节点产生的链下数据访问请求包括:
监听区块中的事件日志;
如果监听到存在链下访问需求的事件日志,则从区块中读取链下数据访问请求。
11.根据权利要求1所述的方法,其中,所述领导者节点由预言机网络随机选取确定。
12.一种基于区块链的预言机链下聚合方法,应用于预言机网络,由所述预言机网络中的普通节点执行,所述方法包括:
接收所述预言机网络中领导者节点发送的数据请求消息,并根据所述数据请求消息执行链下数据访问;其中,所述数据请求消息由区块链节点产生的链下数据访问请求触发;
与所述领导者节点执行拜占庭共识算法,以确定聚合数据访问结果,并反馈给所述区块链节点;其中,所述聚合数据访问结果包括满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果。
13.根据权利要求12所述的方法,其中,所述数据请求消息记为第一请求消息,则与所述领导者节点执行拜占庭共识算法,以确定聚合数据访问结果包括:
根据链下数据访问结果产生第一响应消息,反馈给所述领导者节点;
接收所述领导者节点发送的第二请求消息,其中,所述第二请求消息中携带有领导者节点接收到的各第一响应消息;
分别对所述第二请求消息中各第一响应消息的签名进行验证;
将验证通过的各第一响应消息中的链下访问结果进行聚合,形成聚合数据访问结果并携带在第二响应消息中,且对所述第二响应消息进行签名;
将所述第二响应消息反馈给所述领导者节点。
14.根据权利要求12所述的方法,还包括:
接收领导者节点发送的第三请求消息;其中,所述第三请求消息中携带有所述聚合数据访问结果和各第二目标预言机节点的签名,所述第二目标预言机节点为反馈所述第二响应消息的普通节点;
对所述第三请求消息中的签名验证通过后,将所述聚合数据访问结果和第二目标预言机节点的签名,通过预言机网络中的传输器节点反馈给区块链节点。
15.根据权利要求14所述的方法,其中,所述传输器节点是在产生所述第三请求消息之后,由所述预言机网络选取确定;
其中,所述选取的方式包括轮询选取或随机选取。
16.一种基于区块链的预言机链下聚合装置,应用于预言机网络,配置于所述预言机网络中的领导者节点,所述装置包括:
访问请求获取模块,用于获取到区块链节点产生的链下数据访问请求;
请求消息发送模块,用于根据所述链下数据访问请求,向所述预言机网络中的各预言机节点发送数据请求消息,以请求预言机节点执行链下数据访问;
访问结果确定模块,用于与所述预言机网络中的预言机节点执行拜占庭共识算法,以确定聚合数据访问结果;其中,所述聚合数据访问结果包括满足拜占庭数量要求的预言机节点各自反馈的链下数据访问结果;
访问结果反馈模块,用于将所述聚合数据访问结果反馈给所述区块链节点。
17.一种基于区块链的预言机链下聚合装置,应用于预言机网络,配置于所述预言机网络中的普通节点,所述装置包括:
请求消息接收模块,用于接收所述预言机网络中领导者节点发送的数据请求消息,并根据所述数据请求消息执行链下数据访问;其中,所述数据请求消息由区块链节点产生的链下数据访问请求触发;
访问结果确定模块,用于与所述领导者节点执行拜占庭共识算法,以确定聚合数据访问结果,并反馈给所述区块链节点;其中,所述聚合数据访问结果包括满足拜占庭数量要求的普通节点各自反馈的链下数据访问结果。
18. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11或12-15中任一项所述的基于区块链的预言机链下聚合方法。
19.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11或12-15中任一项所述的基于区块链的预言机链下聚合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210250975.4A CN114357495B (zh) | 2022-03-15 | 2022-03-15 | 基于区块链的预言机链下聚合方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210250975.4A CN114357495B (zh) | 2022-03-15 | 2022-03-15 | 基于区块链的预言机链下聚合方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114357495A true CN114357495A (zh) | 2022-04-15 |
CN114357495B CN114357495B (zh) | 2022-06-17 |
Family
ID=81094807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210250975.4A Active CN114357495B (zh) | 2022-03-15 | 2022-03-15 | 基于区块链的预言机链下聚合方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114357495B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115206018A (zh) * | 2022-06-16 | 2022-10-18 | 湖南天河国云科技有限公司 | 基于区块链预言机的抽奖方法和抽奖设备 |
CN116049319A (zh) * | 2023-03-07 | 2023-05-02 | 天聚地合(苏州)科技股份有限公司 | 一种基于预言机信誉值的链外数据获取方法和装置 |
CN116722966A (zh) * | 2023-07-26 | 2023-09-08 | 云南大学 | 一种基于dag预言机网络的高效可信链下数据馈送方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003941A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 分发链下数据请求的方法、***、节点设备与存储介质 |
CN112948900A (zh) * | 2021-03-31 | 2021-06-11 | 工银科技有限公司 | 应用于区块链***的链下数据获取方法和装置 |
WO2021179661A1 (zh) * | 2020-03-13 | 2021-09-16 | 腾讯科技(深圳)有限公司 | 跨区块链的数据互存方法、装置、设备及存储介质 |
-
2022
- 2022-03-15 CN CN202210250975.4A patent/CN114357495B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021179661A1 (zh) * | 2020-03-13 | 2021-09-16 | 腾讯科技(深圳)有限公司 | 跨区块链的数据互存方法、装置、设备及存储介质 |
CN112003941A (zh) * | 2020-08-25 | 2020-11-27 | 杭州时戳信息科技有限公司 | 分发链下数据请求的方法、***、节点设备与存储介质 |
CN112948900A (zh) * | 2021-03-31 | 2021-06-11 | 工银科技有限公司 | 应用于区块链***的链下数据获取方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115206018A (zh) * | 2022-06-16 | 2022-10-18 | 湖南天河国云科技有限公司 | 基于区块链预言机的抽奖方法和抽奖设备 |
CN116049319A (zh) * | 2023-03-07 | 2023-05-02 | 天聚地合(苏州)科技股份有限公司 | 一种基于预言机信誉值的链外数据获取方法和装置 |
CN116049319B (zh) * | 2023-03-07 | 2023-07-25 | 天聚地合(苏州)科技股份有限公司 | 一种基于预言机信誉值的链外数据获取方法和装置 |
CN116722966A (zh) * | 2023-07-26 | 2023-09-08 | 云南大学 | 一种基于dag预言机网络的高效可信链下数据馈送方法 |
CN116722966B (zh) * | 2023-07-26 | 2024-03-12 | 云南大学 | 一种基于dag预言机网络的高效可信链下数据馈送方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114357495B (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114357495B (zh) | 基于区块链的预言机链下聚合方法、装置、设备和介质 | |
US10997063B1 (en) | System testing from production transactions | |
CN109542718B (zh) | 服务调用的监控方法、装置、存储介质及服务器 | |
CN114327803A (zh) | 区块链访问机器学习模型的方法、装置、设备和介质 | |
CN112346936A (zh) | 应用故障根因定位方法及*** | |
CN114328132A (zh) | 外部数据源的状态监控方法、装置、设备和介质 | |
CN112804333B (zh) | 出块节点的异常处理方法、装置、设备和存储介质 | |
CN109728981A (zh) | 一种云平台故障监测方法及装置 | |
CN114327804B (zh) | 基于区块链的分布式事务处理方法、装置、设备和介质 | |
US10135939B2 (en) | Method and apparatus for sending delivery notification of network application-related product | |
CN117651003B (zh) | Erp信息传输安全监控*** | |
CN113485862B (zh) | 业务故障的管理方法、装置、电子设备及存储介质 | |
CN105530110A (zh) | 一种网络故障检测方法以及相关网元 | |
CN112883106A (zh) | 一种区块链的出块节点确定方法、装置、设备和介质 | |
CN116431505A (zh) | 一种回归测试方法、装置、电子设备、存储介质及产品 | |
CN114338051B (zh) | 区块链获取随机数的方法、装置、设备和介质 | |
CN111901174B (zh) | 一种服务状态通知的方法、相关装置及存储介质 | |
CN113225356B (zh) | 一种基于ttp的网络安全威胁狩猎方法及网络设备 | |
CN112054926B (zh) | 集群管理方法、装置、电子设备及存储介质 | |
CN107707383B (zh) | 放通处理方法、装置、第一网元及第二网元 | |
CN114338536B (zh) | 基于区块链的调度方法、装置、设备和介质 | |
CN116016265B (zh) | 消息全链路监控方法、装置、***、设备和存储介质 | |
CN116723111B (zh) | 业务请求的处理方法、***及电子设备 | |
US20230089235A1 (en) | Transaction processing method and apparatus, medium, and electronic device | |
CN114189454B (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 |