一种基于门限签名的分布式预言机实现方法及系统技术方案

技术编号:36429342 阅读:14 留言:0更新日期:2023-01-20 22:40
本发明专利技术属于区块链技术领域,提供了一种基于门限签名的分布式预言机实现方法及系统。该方法应用于预言机网络,包括:接收区块链发送的请求事件,以与指定的外部数据源建立TLS连接;根据请求事件,拥有私钥份额的节点使用各自的私钥份额进行签名得到各自的签名份额,并广播;若预言机网络中任一节点接收到签名份额的拥有数量超过门限值t,则构建完整签名,并将完整签名发送至区块链;以使区块链采用公钥验证完整签名通过后,根据请求标识获取用户合约指定的回调函数,执行该回调函数的结果返回给用户合约;其中,所述私钥份额和公钥为:采用分布式密钥生成协议为每个节点生成各自的私钥份额和公钥。本发明专利技术在签名过程中不会恢复出完整密钥。整密钥。整密钥。

【技术实现步骤摘要】
一种基于门限签名的分布式预言机实现方法及系统


[0001]本专利技术属于区块链
,尤其涉及一种基于门限签名的分布式预言机实现方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]区块链系统是一个封闭的体系,为了保证各节点数据的一致性,智能合约的执行需要产生确定性的、一致的结果。若允许智能合约访问外部数据,则可能会因为网络波动、节点性能等原因导致各节点智能合约执行结果的不一致,从而无法达成共识。因此智能合约无法通过网络调用、访问文件系统等操作主动获取外部数据。现实中的一些需求要求智能合约具备访问现实世界中的数据的能力,因此需要预言机获取现实世界的数据并将数据输入给智能合约。可将预言机视为区块链智能合约用以访问外部数据的可信中介,为智能合约提供安全的数据馈送服务,实现链上链下数据互通。
[0004]预言机需要保护从获取数据到返回到链上的过程的安全,保证所获取数据的可用性与完整性,即最终返回的数据来自于目标数据源且数据在传输过程中不被篡改,且所请求的外部数据始终是可访问的,避免单点故障。
[0005]Provable,即原Oraclize项目,开始于2015年,是最早被以太坊所使用的预言机服务之一。Provable是一个中心化的预言机,基于TLSNotary协议,在数据源、审核方、被审核方之间建立三方TLS握手,审核方和被审核方分别持有被拆分的TLS密钥份额,由审核方提供数据真实性证明,证明数据来自于指定的数据源。Provable通过在AWS上运行一个定制的开源系统镜像作为审核方,AWS可以证明该镜像自实例化以来未经过修改。Provable存在单点失败问题,且TLSNotary仅适用于TLS1.0和1.1版本。
[0006]Town Crier是最早提出的一个中心化的基于TEE的预言机方案。Town Crier使用TLS保证预言机节点与数据源之间的数据传输过程的安全,使用Intel SGX提供的可信执行环境保护TLS中的密钥协商及加解密数据包过程以及接收到数据后的数据处理及构造交易将数据上链过程不被篡改,但是Town Crier同样存在单点失败以及可扩展性问题。
[0007]申请号为“2020114580559”的中国专利公开了一种基于门限签名和预言机的区块链数据上链方法及装置,包括一个聚合层用于分发各节点签名的密钥份额,签名时各节点首先将密钥份额发送至聚合层,在聚合层恢复出完整密钥,然后使用该密钥进行签名。但是完整的密钥在聚合层恢复,会存在签名过程中密钥泄露的可能和聚合层单点失败的风险。
[0008]综上所述,现有的多是保护数据安全的单节点预言机方案,即使是多节点的预言机方案也存在签名过程中密钥泄露的可能和聚合层单点失败的风险。

技术实现思路

[0009]为了解决上述
技术介绍
中存在的技术问题,本专利技术提供一种基于门限签名的分布
式预言机实现方法及系统,其使用分布式密钥生成协议用来生成各节点的密钥份额,由各节点协商生成,无需一个第三方聚合层用于分配密钥。签名时各节点首先生成各自的签名份额,然后广播给其他节点,任一节点收到超过门限值数量的签名份额即可构建出完整签名,签名过程中不会恢复出完整密钥,且无需聚合层用于构建完整签名,避免了签名过程中密钥泄露的可能和聚合层单点失败的风险。
[0010]为了实现上述目的,本专利技术采用如下技术方案:
[0011]本专利技术的第一个方面提供一种基于门限签名的分布式预言机实现方法。
[0012]一种基于门限签名的分布式预言机实现方法,应用于预言机网络,包括:
[0013]接收区块链发送的请求事件,以与指定的外部数据源建立TLS连接;
[0014]根据请求事件,拥有私钥份额的节点使用各自的私钥份额进行签名得到各自的签名份额,并广播;
[0015]若预言机网络中任一节点接收到签名份额的拥有数量超过门限值t,则构建完整签名,并将完整签名发送至区块链;
[0016]以使区块链采用公钥验证完整签名通过后,根据请求标识获取用户合约指定的回调函数,执行该回调函数的结果返回给用户合约;
[0017]其中,所述私钥份额和公钥为:采用分布式密钥生成协议为每个节点生成各自的私钥份额和公钥。
[0018]进一步地,所述请求事件包括:请求标识、外部数据源地址和请求参数,所述请求标识为区块链请求指定一个特定的标识ReqID。
[0019]本专利技术的第二个方面提供一种基于门限签名的分布式预言机实现方法。
[0020]一种基于门限签名的分布式预言机实现方法,应用于区块链,包括:
[0021]采用分布式密钥生成协议为每个节点生成各自的私钥份额和公钥;
[0022]根据用户合约的请求,向预言机网络发送请求事件,以使预言机网络根据请求事件与指定的外部数据源建立TLS连接,根据请求事件使用各自的私钥份额进行签名得到各自的签名份额,并广播;
[0023]接收预言机网络发送的完整签名,所述完整签名根据预言机网络中任一节点接收到签名份额的拥有数量超过门限值t时构建完成;
[0024]采用公钥验证完整签名通过后,根据请求标识获取用户合约指定的回调函数,执行该回调函数的结果返回给用户合约。
[0025]进一步地,所述请求事件包括:请求标识、外部数据源地址和请求参数,所述请求标识为区块链请求指定一个特定的标识ReqID;
[0026]本专利技术的第三个方面提供一种基于门限签名的分布式预言机实现系统。
[0027]一种基于门限签名的分布式预言机实现系统,其上存储有计算机程序,该程序被处理器执行时实现如第一个方面所述的基于门限签名的分布式预言机实现方法或者实现如第二个方面所述的基于门限签名的分布式预言机实现方法中的步骤。
[0028]本专利技术的第四个方面提供一种计算机可读存储介质。
[0029]一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一个方面所述的基于门限签名的分布式预言机实现方法或者实现如第二个方面所述的基于门限签名的分布式预言机实现方法中的步骤。
[0030]本专利技术的第五个方面提供一种计算机设备。
[0031]一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一个方面所述的基于门限签名的分布式预言机实现方法或者实现如第二个方面所述的基于门限签名的分布式预言机实现方法中的步骤。
[0032]与现有技术相比,本专利技术的有益效果是:
[0033]预言机节点与外部数据源之间使用TLS保证数据传输过程的安全,使用SGX确保预言机节点获取数据后对数据进行处理并构造交易上链的过程中数据不会被篡改,同时SGX提供的远程证明功能可以在新节点加入时验证新节点是否可信。
[0034]使用多个预言机节点组成预言机网络,避免了节点单点失败问题;使用分布式密钥生成协议为每个节点生成各自的私本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于门限签名的分布式预言机实现方法,其特征在于,应用于预言机网络,包括:接收区块链发送的请求事件,以与指定的外部数据源建立TLS连接;根据请求事件,拥有私钥份额的节点使用各自的私钥份额进行签名得到各自的签名份额,并广播;若预言机网络中任一节点接收到签名份额的拥有数量超过门限值t,则构建完整签名,并将完整签名发送至区块链;以使区块链采用公钥验证完整签名通过后,根据请求标识获取用户合约指定的回调函数,执行该回调函数的结果返回给用户合约;其中,所述私钥份额和公钥为:采用分布式密钥生成协议为每个节点生成各自的私钥份额和公钥。2.根据权利要求1所述的基于门限签名的分布式预言机实现方法,其特征在于,所述请求事件包括:请求标识、外部数据源地址和请求参数,所述请求标识为区块链请求指定一个特定的标识ReqID。3.根据权利要求1所述的基于门限签名的分布式预言机实现方法,其特征在于,所述区块链包括:节点管理合约,用于记录当前预言机网络中各节点的信息,同时提供新节点注册以及节点信息查询方法;密钥管理合约,用于存储整个预言机网络执行分布式密钥生成协议所生成的用于验证完整签名的公钥,并根据当前预言机节点的数量计算门限值;预言机合约,用于向用户合约提供请求外部数据的方法,向预言机节点提供返回数据的方法。4.根据权利要求3所述的基于门限签名的分布式预言机实现方法,其特征在于,当有新的预言机节点加入时,执行节点管理合约提供的注册方法,注册该节点的区块链账户地址及网络地址,节点管理合约发布包含新节点账户地址及网络地址的注册事件日志,当前已有的预言机节点监听到注册事件后,向新节点发起远程证明请求,新节点生成SGX远程证明供其他节点进行验证,验证通过后新节点加入预言机网络,节点管理合约存储新节点身份信息,密钥管理合约计算门限值t并发布密钥生成事件,节点监听到该事件后执行分布式密钥生成协议,重新生成各节点的私钥份额以及用于验证完整签名的公钥。5.根据权利要求4所述的基于门限签名的分布式预言机实现方法,其特征在于,任一节点将公钥上链后,其他节点则不再将公钥上链,只需验证已上链公钥是否正确;若节点发现上链公钥与本地生成的公钥不同,执行密钥管理合约提供的公钥争议方法;当对当前公钥的正确性存在争议的节点超过门限值时,重新执行分布式密钥生成协议。6.一种基于门限签名的分布式预言机实现方法,其特征在于,应用于区块链,包括:采用分布式密钥生成协议为每个节点生成各自的私钥份额和公钥;根据用户合约的请求,向预言机网络发送请求事件,以使预言机网络根据请求事件与指定的外部数据源建立TLS连接,根据请求事件使用各自的私钥份额进行签名得到各自的签名份额,并广播;接收预言机网络发送的完整签名,所述完整签名根据预言机网络中任一节...

【专利技术属性】
技术研发人员:张旭张国艳
申请(专利权)人:山东区块链研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1