利索能及
我要发布
收藏
专利号: 2024101739048
申请人: 成都信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-05-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种区块链中可信时间服务预言机的系统,其特征在于,包括位于客户端侧的应用客户端和服务端侧的区块链内和区块链外,所述区块链内包括业务智能合约、可信时间预言机和区块链节点,所述区块链外包括可信时间服务节点和授时中心;

所述应用客户端,用于发起区块链交易或智能合约调用,并通过所述可信时间服务节点为所述区块链交易添加交易发生的可信时间;

所述可信时间服务节点,用于为所述应用客户端发起的区块链交易或智能合约调用签发可信时间戳,并周期性向所述可信时间预言机发送可信当前时间;

所述授时中心,用于为所述可信时间服务节点提供标准时间;

所述业务智能合约,用于为应用提供核心业务逻辑处理;

所述可信时间预言机,用于为所述业务智能合约提供可信时间服务,所述可信时间预言机记录有可信时间服务网络的地址、当前时间、可信当前时间、可信上一时间以及可信当前时间与可信上一时间的时间间隔;

所述区块链节点,用于对包括交易时间在内的区块链交易进行有效性验证,并在生成区块的同时向所述可信时间服务节点申请区块生成的可信时间;

所述可信时间服务节点,具体用于,

对当前时间进行签名,生成包含当前时间及签名的可信当前时间;

生成可信时间预言机智能合约调用数据和包括可信时间更新调用数据的信标交易,并计算除交易时间与可信交易时间之外信标交易中第一剩余信息的哈希值;对所述信标交易进行可信时间签名,在所述信标交易中记录交易时间和可信交易时间签名;并向所述区块链节点周期性广播所述信标交易;

所述区块链节点,具体用于,验证所述信标交易的可信交易时间,根据所述信标交易中的可信时间预言机调用数据调用可信时间预言机的更新接口,并记录所述可信时间预言机的更新接口调用的结果;

所述可信时间预言机,具体用于,验证所述可信时间预言机调用数据中来自所述可信时间服务节点的可信当前时间,通过验签后将可信时间预言机的上一时间设置为当前时间,可信上一时间设置为可信当前时间,当前时间设置为来自可信时间服务的当前时间,可信当前时间设置为来自可信时间服务的可信当前时间;

所述应用客户端,具体用于,根据业务场景生成业务智能合约调用数据,计算除交易时间及可信交易时间之外的交易第二剩余信息的哈希值,将所述交易第二剩余信息的哈希值作为参数发送给所述可信时间服务节点;

所述可信时间服务节点,具体用于,根据所述交易第二剩余信息的哈希值及当前时间对交易进行可信时间签名,并返回交易时间及可信交易时间签名给所述应用客户端;

所述应用客户端,还用于,设置交易中的交易时间为来自可信时间服务的交易时间,设置可信交易时间为来自可信时间服务的可信交易时间签名,并向区块链节点广播智能合约交易;

所述区块链节点,还用于,验证业务智能合约交易的可信交易时间,根据业务智能合约交易中的调用数据调用业务智能合约的接口;

所述业务智能合约,还用于,调用可信时间预言机接口获取并返回可信当前时间,以及比较业务智能合约调用交易的交易时间与可信时间预言机返回的可信当前时间,根据比较结果进入不同分支处理业务逻辑;

所述区块链节点,还用于记录业务智能合约的调用结果;

所述区块链节点,还用于通过设置的可信打包时间记录经过可信时间服务节点签名的区块产生时间以及通过设置的交易时间和可信交易时间记录经过可信时间服务节点签名的交易发生时间;

所述区块链节点,具体用于,将信标交易作为区块的第一笔交易,其余交易按照可信时间排序,进行新区块的打包,并计算除打包时间与可信打包时间之外区块第三剩余信息的哈希值;将所述区块第三剩余信息的哈希值作为参数发送给可信时间服务节点,以获取区块打包时间及可信打包时间签名;

所述可信时间服务节点,具体用于,对区块进行可信时间签名,返回区块打包时间及可信区块打包时间签名给所述区块链节点;

所述区块链节点,具体用于,在新区块中记录打包时间及可信打包时间;

所述可信时间服务节点与所述授时中心通过在所述区块链外建立的可信时间网络保持时间同步。

2.一种区块链中可信时间服务预言机的方法,应用于如权利要求1所述的区块链中可信时间服务预言机的系统,所述系统包括位于客户端侧的应用客户端和服务端侧的区块链内和区块链外,所述区块链内包括业务智能合约、可信时间预言机和区块链节点,所述区块链外包括可信时间服务节点和授时中心;

所述方法包括以下步骤:

所述应用客户端发起区块链交易或智能合约调用,并通过所述可信时间服务节点为所述区块链交易添加交易发生的可信时间;

所述可信时间服务节点为所述应用客户端发起的区块链交易或智能合约调用签发可信时间戳,并周期性向所述可信时间预言机发送可信当前时间;

所述授时中心为所述可信时间服务节点提供标准时间;

所述业务智能合约为应用提供核心业务逻辑处理;

所述可信时间预言机为所述业务智能合约提供可信时间服务,所述可信时间预言机记录有可信时间服务网络的地址、当前时间、可信当前时间、可信上一时间以及可信当前时间与可信上一时间的时间间隔;

所述区块链节点对包括交易时间在内的区块链交易进行有效性验证,并在生成区块的同时向所述可信时间服务节点申请区块生成的可信时间;

所述可信时间服务节点对当前时间进行签名,生成包含当前时间及签名的可信当前时间;

生成可信时间预言机智能合约调用数据和包括可信时间更新调用数据的信标交易,并计算除交易时间与可信交易时间之外信标交易中第一剩余信息的哈希值;对所述信标交易进行可信时间签名,在所述信标交易中记录交易时间和可信交易时间签名;并向所述区块链节点周期性广播所述信标交易;

所述区块链节点验证所述信标交易的可信交易时间,根据所述信标交易中的可信时间预言机调用数据调用可信时间预言机的更新接口,并记录所述可信时间预言机的更新接口调用的结果;

所述可信时间预言机验证所述可信时间预言机调用数据中来自所述可信时间服务节点的可信当前时间,通过验签后将可信时间预言机的上一时间设置为当前时间,可信上一时间设置为可信当前时间,当前时间设置为来自可信时间服务的当前时间,可信当前时间设置为来自可信时间服务的可信当前时间;

所述应用客户端根据业务场景生成业务智能合约调用数据,计算除交易时间及可信交易时间之外的交易第二剩余信息的哈希值,将所述交易第二剩余信息的哈希值作为参数发送给所述可信时间服务节点;

所述可信时间服务节点根据所述交易第二剩余信息的哈希值及当前时间对交易进行可信时间签名,并返回交易时间及可信交易时间签名给所述应用客户端;

所述应用客户端设置交易中的交易时间为来自可信时间服务的交易时间,设置可信交易时间为来自可信时间服务的可信交易时间签名,并向区块链节点广播智能合约交易;

所述区块链节点验证业务智能合约交易的可信交易时间,根据业务智能合约交易中的调用数据调用业务智能合约的接口;

所述业务智能合约调用可信时间预言机接口获取并返回可信当前时间,以及比较业务智能合约调用交易的交易时间与可信时间预言机返回的可信当前时间,根据比较结果进入不同分支处理业务逻辑;

所述区块链节点记录业务智能合约的调用结果;

所述方法还包括:

所述区块链节点还通过设置的可信打包时间记录经过可信时间服务节点签名的区块产生时间以及通过设置的交易时间和可信交易时间记录经过可信时间服务节点签名的交易发生时间;

所述方法具体包括:

所述区块链节点将信标交易作为区块的第一笔交易,其余交易按照可信时间排序,进行新区块的打包,并计算除打包时间与可信打包时间之外区块第三剩余信息的哈希值;将所述区块第三剩余信息的哈希值作为参数发送给可信时间服务节点,以获取区块打包时间及可信打包时间签名;

所述可信时间服务节点对区块进行可信时间签名,返回区块打包时间及可信区块打包时间签名给所述区块链节点;

所述区块链节点在新区块中记录打包时间及可信打包时间。