System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及区块链,具体涉及一种区块链中可信时间服务预言机的方法和系统。
技术介绍
1、区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,以密码学方式保证不可篡改和不可伪造的分布式账本,区块链系统中各个节点通过共识算法达成数据一致性。其中,以以太坊为代表的区块链2.0引入智能合约概念,并为智能合约提供虚拟运行环境,智能合约是存储在区块链上,满足预设条件时可以自动执行、不需要第三方参与即可得到确定结果的程序,智能合约已经在保险、文娱、能源、教育、医疗、知识产权、政务、司法等领域得到广泛应用。为了保证调用智能合约交易在各节点验证时的一致性,智能合约不能通过网络访问包括当前时间在内的真实世界的数据,只能通过预言机 (oracle mechanism) 将真实世界的数据通知给智能合约。以以太坊为例,通过向智能合约地址发送一个交易即可触发智能合约执行及相关操作,每隔一段时间,这些交易以及这些交易所引起的智能合约账户状态和相关外部账户状态的变化,被获得记账权的节点打包到区块,区块以哈希指针的方式被串连成链。
2、以太坊交易数据结构中包含交易类型(type)、交易发起方交易计数(nonce)、向目标账户转账的金额(value)、交易接收方地址(receiveaddress)、为交易付出的燃料价格(gasprice)、为交易付出的燃料数(gas)、通过交易调用合约的调用数据(data)、交易签名结构体(vrs)等交易相关的重要信息。以太坊区块数据结构分为区块头和区块体,区块头包含父区块哈希(parenth
3、通过对以太坊智能合约运行机制以及区块数据结构、交易数据机构的分析,区块链只存储了交易的类型、参与双方、转账金额、合约调用数据等与交易直接相关的信息,父区块哈希、叔父区块哈希、区块创建者账户地址、账户状态树根哈希、交易树根哈希、收据树根哈希、区块难度系数、目标值、区块生成时间等区块重要信息。存储的交易信息中没有包含交易的发生时间,存储的区块生成时间来自于记账节点的本地时间。
4、区块链现有机制存在以下几个与实践相关的问题及缺陷:
5、(1)没有记录交易的真实发生时间,只在区块头中记录了区块生成时间,且区块生成时间来自于获得记账权节点的本地时间,该时间存在被记账节点篡改的可能性,即使记账节点记录了区块生成的真实时间,这个时间并不是交易发生的准确时间,无法对交易发生的先后顺序进行判断。
6、(2)智能合约没有记录合约调用的真实时间或者准确的真实时间,也不能获取真实世界的准确时间,无法有效控制与时间密切相关的操作,比如智能合约保险中,由于智能合约不能获取真实世界的准确时间,可能出现投保截止时间之后仍然能成功投保的情况。
7、因此,在区块链中进行可信的时间管理,是区块链以及智能合约应用进一步推广的重要影响因素。
技术实现思路
1、本专利技术提供一种区块链中可信时间服务预言机的方法和系统,旨在解决区块链交易时间不可信、区块生成时间不可信以及区块链智能合约如何获取可信时间的问题。
2、本专利技术提供一种区块链中可信时间服务预言机的方法和系统,旨在解决区块链交易时间不可信、区块生成时间不可信以及区块链智能合约如何获取可信时间的问题。
3、第一方面,本专利技术实施例提供的一种区块链中可信时间服务预言机的系统,包括位于客户端侧的应用客户端和服务端侧的区块链内和区块链外,所述区块链内包括业务智能合约、可信时间预言机和区块链节点,所述区块链外包括可信时间服务节点和授时中心;
4、所述应用客户端,用于发起区块链交易或智能合约调用,并通过所述可信时间服务节点为所述区块链交易添加交易发生的可信时间;
5、所述可信时间服务节点,用于为所述应用客户端发起的区块链交易或智能合约调用签发可信时间戳,并周期性向所述可信时间预言机发送可信当前时间;
6、所述授时中心,用于为所述可信时间服务节点提供标准时间;
7、所述业务智能合约,用于为应用提供核心业务逻辑处理;
8、所述可信时间预言机,用于为所述业务智能合约提供可信时间服务,所述可信时间预言机记录有可信时间服务网络的地址、当前时间、可信当前时间、可信上一时间以及可信当前时间与可信上一时间的时间间隔;
9、所述区块链节点,用于对包括交易时间在内的区块链交易进行有效性验证,并在生成区块的同时向所述可信时间服务节点申请区块生成的可信时间。
10、作为第一方面的一个具体实施方式,所述可信时间服务节点,具体用于,
11、对当前时间进行签名,生成包含当前时间及签名的可信当前时间;
12、生成可信时间预言机智能合约调用数据和包括可信时间更新调用数据的信标交易,并计算除交易时间与可信交易时间之外信标交易中第一剩余信息的哈希值;对所述信标交易进行可信时间签名,在所述信标交易中记录交易时间和可信交易时间签名;并向所述区块链节点周期性广播所述信标交易;
13、所述区块链节点,具体用于,验证所述信标交易的可信交易时间,根据所述信标交易中的可信时间预言机调用数据调用可信时间预言机的更新接口,并记录所述可信时间预言机的更新接口调用的结果;
14、所述可信时间预言机,具体用于,验证所述可信时间预言机调用数据中来自所述可信时间服务节点的可信当前时间,通过验签后将可信时间预言机的上一时间设置为当前时间,可信上一时间设置为可信当前时间,当前时间设置为来自可信时间服务的当前时间,可信当前时间设置为来自可信时间服务的可信当前时间。
15、作为第一方面的一个具体实施方式,所述应用客户端,具体用于,根据业务场景生成业务智能合约调用数据,
16、计算除交易时间及可信交易时间之外的交易第二剩余信息的哈希值,将所述交易第二剩余信息的哈希值作为参数发送给所述可信时间服务节点;
17、所述可信时间服务节点,具体用于,根据所述交易第二剩余信息的哈希值及当前时间对交易进行可信时间签名,并返回交易时间及可信交易时间签名给所述应用客户端;
18、所述应用客户端,还用于,设置交易中的交易时间为来自可信时间服务的交易时间,设置可信交易时间为来自可信时间服务的可信交易时间签名,并向区块链节点广播智能合约交易;
19、所述区块链节点,还用于,验证业务智能合约交易的可信交易时间,根据业务智能合约交易中的调用数据调用业务智能合约的接口;
20、所述业务智能合约,还用于,调用可信时间预言机接口获取并返回可信当前时间,以及比较业务智能合约调用交易的本文档来自技高网...
【技术保护点】
1.一种区块链中可信时间服务预言机的系统,其特征在于,包括位于客户端侧的应用客户端和服务端侧的区块链内和区块链外,所述区块链内包括业务智能合约、可信时间预言机和区块链节点,所述区块链外包括可信时间服务节点和授时中心;
2.根据权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,
3.根据权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,
4.根据权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,
5.根据权利要求4所述的区块链中可信时间服务预言机的系统,其特征在于,
6.根据权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,所述可信时间服务节点与所述授时中心通过在所述区块链外建立的可信时间网络保持时间同步。
7.一种区块链中可信时间服务预言机的方法,应用于如权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,所述系统包括位于客户端侧的应用客户端和服务端侧的区块链内和区块链外,所述区块链内包括业务智能合约、可信时间预言机和区块链节点,所述区块链外包括可信时
8.根据权利要求7所述的区块链中可信时间服务预言机的方法,其特征在于,
9.根据权利要求7所述的区块链中可信时间服务预言机的方法,其特征在于,
10.根据权利要求7所述的区块链中可信时间服务预言机的方法,其特征在于,所述方法还包括:
...【技术特征摘要】
1.一种区块链中可信时间服务预言机的系统,其特征在于,包括位于客户端侧的应用客户端和服务端侧的区块链内和区块链外,所述区块链内包括业务智能合约、可信时间预言机和区块链节点,所述区块链外包括可信时间服务节点和授时中心;
2.根据权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,
3.根据权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,
4.根据权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,
5.根据权利要求4所述的区块链中可信时间服务预言机的系统,其特征在于,
6.根据权利要求1所述的区块链中可信时间服务预言机的系统,其特征在于,所述可信...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。