【技术实现步骤摘要】
一种基于门限签名的分布式预言机实现方法及系统
[0001]本专利技术属于区块链
,尤其涉及一种基于门限签名的分布式预言机实现方法及系统。
技术介绍
[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]区块链系统是一个封闭的体系,为了保证各节点数据的一致性,智能合约的执行需要产生确定性的、一致的结果。若允许智能合约访问外部数据,则可能会因为网络波动、节点性能等原因导致各节点智能合约执行结果的不一致,从而无法达成共识。因此智能合约无法通过网络调用、访问文件系统等操作主动获取外部数据。现实中的一些需求要求智能合约具备访问现实世界中的数据的能力,因此需要预言机获取现实世界的数据并将数据输入给智能合约。可将预言机视为区块链智能合约用以访问外部数据的可信中介,为智能合约提供安全的数据馈送服务,实现链上链下数据互通。
[0004]预言机需要保护从获取数据到返回到链上的过程的安全,保证所获取数据的可用性与完整性,即最终返回的数据来自于目标数据源且数据在传输过程中不被篡改 ...
【技术保护点】
【技术特征摘要】
1.一种基于门限签名的分布式预言机实现方法,其特征在于,应用于预言机网络,包括:接收区块链发送的请求事件,以与指定的外部数据源建立TLS连接;根据请求事件,拥有私钥份额的节点使用各自的私钥份额进行签名得到各自的签名份额,并广播;若预言机网络中任一节点接收到签名份额的拥有数量超过门限值t,则构建完整签名,并将完整签名发送至区块链;以使区块链采用公钥验证完整签名通过后,根据请求标识获取用户合约指定的回调函数,执行该回调函数的结果返回给用户合约;其中,所述私钥份额和公钥为:采用分布式密钥生成协议为每个节点生成各自的私钥份额和公钥。2.根据权利要求1所述的基于门限签名的分布式预言机实现方法,其特征在于,所述请求事件包括:请求标识、外部数据源地址和请求参数,所述请求标识为区块链请求指定一个特定的标识ReqID。3.根据权利要求1所述的基于门限签名的分布式预言机实现方法,其特征在于,所述区块链包括:节点管理合约,用于记录当前预言机网络中各节点的信息,同时提供新节点注册以及节点信息查询方法;密钥管理合约,用于存储整个预言机网络执行分布式密钥生成协议所生成的用于验证完整签名的公钥,并根据当前预言机节点的数量计算门限值;预言机合约,用于向用户合约提供请求外部数据的方法,向预言机节点提供返回数据的方法。4.根据权利要求3所述的基于门限签名的分布式预言机实现方法,其特征在于,当有新的预言机节点加入时,执行节点管理合约提供的注册方法,注册该节点的区块链账户地址及网络地址,节点管理合约发布包含新节点账户地址及网络地址的注册事件日志,当前已有的预言机节点监听到注册事件后,向新节点发起远程证明请求,新节点生成SGX远程证明供其他节点进行验证,验证通过后新节点加入预言机网络,节点管理合约存储新节点身份信息,密钥管理合约计算门限值t并发布密钥生成事件,节点监听到该事件后执行分布式密钥生成协议,重新生成各节点的私钥份额以及用于验证完整签名的公钥。5.根据权利要求4所述的基于门限签名的分布式预言机实现方法,其特征在于,任一节点将公钥上链后,其他节点则不再将公钥上链,只需验证已上链公钥是否正确;若节点发现上链公钥与本地生成的公钥不同,执行密钥管理合约提供的公钥争议方法;当对当前公钥的正确性存在争议的节点超过门限值时,重新执行分布式密钥生成协议。6.一种基于门限签名的分布式预言机实现方法,其特征在于,应用于区块链,包括:采用分布式密钥生成协议为每个节点生成各自的私钥份额和公钥;根据用户合约的请求,向预言机网络发送请求事件,以使预言机网络根据请求事件与指定的外部数据源建立TLS连接,根据请求事件使用各自的私钥份额进行签名得到各自的签名份额,并广播;接收预言机网络发送的完整签名,所述完整签名根据预言机网络中任一节...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。