掌桥专利:专业的专利平台
掌桥专利
首页

一种秘密测试去中心化预言机的获取数据准确度的方法

文献发布时间:2024-04-18 19:48:15


一种秘密测试去中心化预言机的获取数据准确度的方法

技术领域

本发明涉及区块链、预言机技术领域,具体是一种秘密测试去中心化预言机的获取数据准确度的方法。

背景技术

区块链预言机(Blockchain Oracle)是连接区块链与现实世界数据的桥梁,它提供了一种将外部数据引入区块链的机制。在区块链中,智能合约通常只能访问链上的数据,无法直接获取外部数据或与外部系统进行交互。这限制了区块链应用的范围和实用性。

预言机的出现解决了这个问题,它可以将来自现实世界的数据引入区块链,并为智能合约提供可靠的外部数据来源。预言机充当了区块链与外部世界之间的中介角色,将外部数据转化为区块链可以理解和处理的格式。

预言机可以是具备数据获取能力和可信度的设备、传感器、API或其他第三方数据提供商。它们将外部数据获取、验证、转换和传递给智能合约。预言机的设计要考虑数据的可信性和完整性,以及预防潜在的攻击和欺诈行为。

通过预言机的引入,区块链可以实现更多的应用场景,如金融行业中的价格数据、物流行业中的物流信息、天气数据、运动数据等。预言机的使用扩展了区块链的功能和可用性,使得区块链系统能够更好地与现实世界进行互动和整合。然而,预言机的可信度和安全性仍然是一个重要的挑战,需要综合考虑多种因素来确保数据的准确性和可靠性。

去中心化预言机的贡献在于耦合了两个关键思想:(i)对于预言机节点和委员会成员的选择,我们采用加权随机算法和可验证随机函数,找到一组具有良好行为的预言机节点与使委员会成员匿名化;(ii)设计一种随机秘密测试机制,使预言机节点无法预测何时会有测试任务,但仍需要积极回应并提供正确的数据。

发明内容

本发明目的在于针对区块链不能访问外部数据的场景下,现有技术在预言机节点选择上和不能确定预言机节点提供的数据准确程度,提出一种秘密测试去中心化预言机的获取数据准确度方法,这种方法可以通过预言机节点获取区块链以外的信息,使用加权随机算法与秘密测试来保证返回数据真实性和正确性。

实现本发明目的的技术方案是:

一种秘密测试去中心化预言机的获取数据准确度的方法,包括委员会、数据源、数据请求者和区块链节点、预言机节点多方实体,所述方法包括如下步骤:

1)部署智能合约:通过使用区块链平台提供的开发工具和编程语言,创建并部署基于区块链的智能合约,该智能合约将承载数据获取的核心逻辑和规则的实现,确保数据的可靠获取和处理,将编写的智能合约代码进行编译,编译后的智能合约部署到目标区块链网络中,需创建并发布两个合约,即用户合约和预言机合约,前者在发起链下数据请求时创建,负责处理与其他智能合约交互,后者负责管理预言机节点、处理与外部世界交互过程和响应链下数据请求;

建立去中心化的预言机网络:首先基于ERC-20制定协议和标准,用于定义预言机网络中各个参与方的角色、通信规则、数据格式等,其次预言机网络接入多个数据源,这些数据源可以是传感器、API、第三方服务等,然后基于分布式存储技术、加密传输、数据备份等方法建立一个可靠的数据存储和传输机制,确保数据在网络中的可靠性和安全性,最后通过奖励代币来激励预言机节点的参与和诚实行为;

2)注册预言机节点:建立去中心化的预言机网络后,节点通过预言机合约注册加入预言机网络,节点是具备数据获取能力和可信性的设备、传感器或数据提供商,节点的注册过程包括身份验证、公钥和地址的注册;

3)定义数据请求接口:智能合约中定义了与数据获取相关的请求接口和函数,接口包括请求特定类型的数据、指定数据源或条件,指定数据源分别是测试数据源和常规数据源;

4)请求数据:用户在区块链上发起数据请求时,若该请求是测试请求,会调用智能合约中定义的数据请求接口,请求的参数包括数据类型、源地址、条件,该请求被记录在区块链上,用户合约开始执行相应的逻辑,接收该请求并根据需求调用预言机合约,预言机节点持续监听链上的数据请求,当有新的数据请求被发起时,预言机节点会检测到该请求;

5)可验证随机函数选取委员会成员:通过可验证随机函数实现匿名选取预言机节点组成委员会,以实现随机添加测试任务;

6)加权随机算法选择可信节点:设计加权随机算法在预言机网络中找到一组具有高质量的预言机节点;

7)可信数据的获取:预言机节点在数据获取任务中,会监听用户发起的链下数据请求,并按照智能合约的规则和请求条件与外部数据源、API或其他数据提供方进行交互,从中获取所需的数据,获取的数据通过预言机节点进行验证和处理,确保数据的可信性和完整性,验证和处理的操作包括对数据源进行验证、数据格式转换、计算操作,以确保获取到的数据符合要求;

8)数据返回链上:预言机节点经过验证和处理获取到数据后,将数据返回给智能合约,在智能合约中存储或作为执行结果返回给用户,并记录在区块链上。

9)数据验证:在发布的测试任务是具有标准答案的,委员会的验证者需要等待预言机节点将数据反馈到链上,此时该验证者将数据取出进行判断,恶意数据反馈为0,正确数据反馈为1,将该结果反馈给预言机合约,随后更新预言机的信誉值。

所述步骤2)中注册预言机节点的具体过程为:节点向预言机网络提交注册请求,收到确认后向预言机网络中的注册中心发送注册请求消息,提供节点的相关信息,注册中心对节点的身份进行验证,包括验证节点身份的真实性和合法性,以确保网络的安全性和可信度;注册成功后,节点需要同步预言机网络中的数据,从而获取预言机网络的最新状态、数据合约和相关参数,以便节点能够正确地提供数据验证和服务。

所述步骤5)中通过可验证随机函数实现匿名选取预言机节点组成委员会,以实现随机添加测试任务,具体步骤如下:

5.1)每个节点随机输入任意值,通过函数G生成一对非对称密钥:即公钥PK和私钥SK,将PK公开在区块链上;

G(x)→(PK,SK);

5.2)当委员会成员需要被选举时,节点生成一个随机种子seed作为输入,与SK通过函数F生成一个随机数r与证明proof;

F(seed,SK)→(r,proof);

5.3)将所有候选人提交的随机数r按照从小到大的顺序排序,与一个预定义的阈值进行比较,若r在该阈值之间,则此节点成为委员会成员之一;

通过步骤5.1)-步骤5.3),选择S个节点组成提问-验证委员会,随机发布测试问题,预言机节点将信息反馈到区块链上后,委员会成员进行验证。

所述步骤6)中加权随机算法选择可信节点的具体步骤如下:

6.1)为每个节点i计算信誉值R

6.2)将每个节点的权重W

6.3)使用随机数生成器产生一个随机变量r,范围为[0,1],用来指示选择哪个节点,保障了随机性与不可预测性;

6.4)将所有的P

6.5)从序列中的第一个元素进行遍历,累计每个节点的选择概率sum

现有技术相比,本技术方案具有以下优势:

1.结合加权随机算法,提出了本技术方案方法,解决异构网络中节点质量参差不齐的问题,提高数据的可信度。

2.为了使预言机节点之间不知道谁被选择成为委员会中的一员,本技术方案结合可验证随机函数选取委员会成员,使选择的过程需要匿名化,从而提高系统的安全性,并有效抵抗可能的恶意攻击。

3.针对预言机存在不良行为或被攻击导致数据异常的问题,设计随机秘密测试机制检测数据的准确度,相较于其他方式如设置数据筛选算法,提升数据的可信度和可用性。

附图说明

图1为实施例中数据交互过程图。

具体实施方式

下面结合附图和实施例对本发明的内容作进一步的阐述,但不是对本发明的限定。

实施例:

参照图1,一种秘密测试去中心化预言机的获取数据准确度的方法,包括委员会、数据源、数据请求者和区块链节点、预言机节点多方实体,本例假设有一个基于区块链的天气预报应用,用户可以查询某个地区的天气情况,所述方法包括如下步骤:

1)部署智能合约:通过使用区块链平台提供的开发工具和编程语言,创建并部署基于区块链的名为"WeatherContract"的智能合约,该智能合约包含查询天气的核心逻辑和规则,确保数据的可靠获取和处理,将编写的智能合约代码进行编译,编译后的智能合约部署到目标区块链网络中,需创建并发布两个合约,即用户合约和预言机合约,前者在发起链下数据请求时创建,负责处理与其他智能合约交互,后者负责管理预言机节点、处理与外部世界交互过程和响应链下数据请求;

建立去中心化的预言机网络:首先基于ERC-20制定协议和标准,用于定义预言机网络中各个参与方的角色、通信规则、数据格式等,其次预言机网络接入多个数据源,这些数据源可以是传感器、API、第三方服务等,然后基于分布式存储技术、加密传输、数据备份等方法建立一个可靠的数据存储和传输机制,确保数据在网络中的可靠性和安全性,最后通过奖励代币来激励预言机节点的参与和诚实行为;

2)注册预言机节点:建立去中心化的预言机网络后,具备获取天气数据的传感器节点通过预言机合约进行注册,这些节点是气象台设备、传感器或天气数据提供商的API,节点的注册过程包括身份验证、公钥和地址的注册;

3)定义数据请求接口:智能合约中定义"getWeather"函数,接收用户请求并包含参数如地区、日期等,用于查询特定地区的天气数据;

4)请求数据:用户在区块链上发起数据请求时,调用"getWeather"函数,并提供所需的参数,如地区为"New York",日期为"2023-07-11";

5)可验证随机函数选取委员会成员:通过可验证随机函数实现匿名选取预言机节点组成委员会,秘密添加测试任务,使预言机节点能够诚实工作;

6)加权随机算法选择可信节点:通过设计加权随机算法,在预言机网络中筛选出一组高质量的预言机节点,以提供可靠和准确的数据;

7)可信数据的获取:预言机节点在数据获取任务中,会监听用户发起的链下数据请求,并按照智能合约的规则和请求条件与外部数据源、API或其他数据提供方进行交互,从中获取所需的天气数据,例如,预言机节点可能通过与气象台设备或天气数据提供商的API进行交互,获取"New York"在"2023-07-11"的天气数据,获取的天气数据通过预言机节点进行验证和处理,确保数据的可信性和完整性,验证和处理的操作包括对数据源进行验证、数据格式转换、计算操作,以确保获取到的数据符合要求;

8)数据返回链上:预言机节点经过验证和处理获取到天气数据后,将天气数据返回给智能合约,在智能合约中存储或作为执行结果返回给用户,并记录在区块链上。

9)数据验证:由于天气数据是具有标准答案的,委员会的验证者需要等待预言机节点将数据反馈到链上,此时该验证者将数据取出进行判断,恶意数据反馈为0,正确数据反馈为1,将该结果反馈给预言机合约,随后更新预言机的信誉值。

通过以上步骤1)-步骤9),用户可以在区块链上发起天气查询请求,预言机节点将从外部数据源获取天气数据,并返回到智能合约中。这样,用户可以获得可信、不可篡改的天气数据,实现了区块链应用在天气预报领域的应用。

所述步骤2)中注册预言机节点的具体过程为:节点向预言机网络提交注册请求,收到确认后向预言机网络中的注册中心发送注册请求消息,提供节点的相关信息,注册中心对节点的身份进行验证,包括验证节点身份的真实性和合法性,以确保网络的安全性和可信度;注册成功后,节点需要同步预言机网络中的数据,从而获取预言机网络的最新状态、数据合约和相关参数,以便节点能够正确地提供数据验证和服务。

所述步骤5)中通过可验证随机函数实现匿名选取预言机节点组成委员会,以实现随机添加测试任务,具体步骤如下:

5.1)每个节点随机输入任意值,通过函数G生成一对非对称密钥:即公钥PK和私钥SK,将PK公开在区块链上;

G(x)→(PK,SK);

5.2)当委员会成员需要被选举时,节点生成一个随机种子seed作为输入,与SK通过函数F生成一个随机数r与证明proof;

F(seed,SK)→(r,proof);

5.3)将所有候选人提交的随机数r按照从小到大的顺序排序,与一个预定义的阈值进行比较,若r在该阈值之间,则此节点成为委员会成员之一;

通过步骤5.1)-步骤5.3),选择S个节点组成提问—验证委员会,随机发布测试问题,预言机节点将信息反馈到区块链上后,委员会成员进行验证。

所述步骤6)中加权随机算法选择可信节点的具体步骤如下:

6.1)为每个节点i计算信誉值R

6.2)将每个节点的权重W

6.3)使用随机数生成器产生一个随机变量r,范围在[0,1],用来指示选择哪个节点,保障了随机性与不可预测性;

6.4)将所有的P

6.5)从序列中的第一个元素进行遍历,累计每个节点的选择概率sum

相关技术
  • 一种去中心化AGV交通管制的方法
  • 一种基于区块链去中心化的比率预言方法及预言机
  • 一种基于去中心化预言机的状态通道监控方法
技术分类

06120116309809